--- mitgcm.org/sealion/code_reference/callTree.html 2001/10/11 13:38:03 1.1 +++ mitgcm.org/sealion/code_reference/callTree.html 2001/10/22 02:54:39 1.3 @@ -1,351 +1,358 @@ - - - -

Browse Hypertext Code Online

-Browse MITgcm source code in hyperlinked form. -
-Select links from the calling tree below or select from the side bar menu to access -alphabetic lists of model subroutines and functions, runtime parameters, compile time parameters -and model source files. -
The botton link at the side (all symbols) displays lists of all symbols -used in MITgcm. This list is quite long and can take some time to display. - -

MITgcm Release 1 Main Call Tree

-
- 
-  Invocation from WRAPPER level...
-   :
-   :
-   |
-   |-THE_MODEL_MAIN :: Primary driver for the MITgcm algorithm
-     |              :: Called from WRAPPER level numerical
-     |              :: code innvocation routine. On entry
-     |              :: to THE_MODEL_MAIN separate thread and
-     |              :: separate processes will have been established.
-     |              :: Each thread and process will have a unique ID
-     |              :: but as yet it will not be associated with a
-     |              :: specific region in decomposed discrete space.
-     |
-     |-INITIALISE_FIXED :: Set fixed model arrays such as topography, 
-     | |                :: grid, solver matrices etc..
-     | |              
-     | |-INI_PARMS :: Routine to set kernel model parameters.
-     | |           :: By default kernel parameters are read from file 
-     | |           :: "data" in directory in which code executes.
-     | |
-     | |-MON_INIT :: Initialises monitor pacakge ( see pkg/monitor )
-     | |
-     | |-INI_GRID :: Control grid array (vert. and hori.) initialisation.
-     | | |        :: Grid arrays are held and described in GRID.h.
-     | | |
-     | | |-INI_VERTICAL_GRID        :: Initialise vertical grid arrays.
-     | | |
-     | | |-INI_CARTESIAN_GRID       :: Cartesian horiz. grid initialisation
-     | | |                          :: (calculate grid from kernel parameters).
-     | | |
-     | | |-INI_SPHERICAL_POLAR_GRID :: Spherical polar horiz. grid 
-     | | |                          :: initialisation (calculate grid from 
-     | | |                          :: kernel parameters).
-     | | |
-     | | |-INI_CURVILINEAR_GRID     :: General orthogonal, structured horiz.
-     | |                            :: grid initialisations. ( input from raw
-     | |                            :: grid files, LONC.bin, DXF.bin etc... )
-     | |
-     | |-INI_DEPTHS    :: Read (from "bathyFile") or set bathymetry/orgography.
-     | |
-     | |-INI_MASKS_ETC :: Derive horizontal and vertical cell fractions and
-     | |               :: land masking for solid-fluid boundaries.
-     | |
-     | |-INI_LINEAR_PHISURF :: Set ref. surface Bo_surf
-     | |
-     | |-INI_CORI          :: Set coriolis term. zero, f-plane, beta-plane,
-     | |                   :: sphere optins are coded.
-     | |
-     | |-PACKAGES_BOOT      :: Start up the optional package environment.
-     | |                    :: Runtime selection of active packages.
-     | |
-     | |-PACKAGES_READPARMS    :: Call active package internal parameter load.
-     | | |
-     | | |-GMREDI_READPARMS    :: GM Package. see pkg/gmredi
-     | | |-KPP_READPARMS       :: KPP Package. see pkg/kpp
-     | | |-SHAP_FILT_READPARMS :: Shapiro filter package. see pkg/shap_filt
-     | | |-OBCS_READPARMS      :: Open bndy package. see pkg/obcs
-     | | |-COST_READPARMS      :: Cost function package. see pkg/cost
-     | | |-CTRL_INIT           :: Control vector support package. see pkg/ctrl
-     | | |-OPTIM_READPARMS     :: Optimisation support package. see pkg/ctrl 
-     | | |-GRDCHK_READPARMS    :: Gradient check package. see pkg/grdchk
-     | | |-ECCO_READPARMS      :: ECCO Support Package. see pkg/ecco
-     | |
-     | |-PACKAGES_CHECK        :: Control checking package configuration.
-     | | |
-     | | |-KPP_CHECK           :: KPP Package. pkg/kpp
-     | | |-OBCS_CHECK          :: Open bndy Pacakge. pkg/obcs
-     | | |-GMREDI_CHECK        :: GM Package. pkg/gmredi
-     | |
-     | |-PACKAGES_INIT_FIXED   :: Fixed initialisation of packages
-     | | |-OBCS_INIT_FIXED     :: Open bndy Package. see pkg/obcs
-     | | |-FLT_INIT            :: Floats Package. see pkg/flt
-     | |
-     | |-ZONAL_FILT_INIT       :: FFT filter Package. see pkg/zonal_filt
-     | |
-     | |-INI_CG2D              :: 2d con. grad solver initialisation.
-     | |
-     | |-INI_CG3D              :: 3d con. grad solver initialisation.
-     | |
-     | |-CONFIG_SUMMARY        :: Provide synopsis of kernel setup.
-     |                         :: Includes annotated table of kernel 
-     |                         :: parameter settings.
-     |
-     |-CTRL_UNPACK :: Control vector support package. see pkg/ctrl
-     |
-     |-ADTHE_MAIN_LOOP :: Derivative evaluating form of main time stepping loop
-     !                 :: Auotmatically gerenrated by TAMC/TAF.
-     |
-     |-CTRL_PACK   :: Control vector support package. see pkg/ctrl
-     |
-     |-GRDCHK_MAIN :: Gradient check package. see pkg/grdchk
-     |
-     |-THE_MAIN_LOOP :: Main timestepping loop routine.
-     | |
-     | |-INITIALISE_VARIA :: Set the initial conditions for time evolving 
-     | | |                :: variables
-     | | |
-     | | |-INI_LINEAR_PHISURF :: Set ref. surface Bo_surf
-     | | |
-     | | |-INI_CORI     :: Set coriolis term. zero, f-plane, beta-plane,
-     | | |              :: sphere optins are coded.
-     | | |
-     | | |-INI_CG2D     :: 2d con. grad solver initialisation.
-     | | |-INI_CG3D     :: 3d con. grad solver initialisation.
-     | | |-INI_MIXING   :: Initialise diapycnal diffusivity.
-     | | |-INI_DYNVARS  :: Initialise to zero all DYNVARS.h arrays (dynamical
-     | | |              :: fields).
-     | | |
-     | | |-INI_FIELDS   :: Control initialising model fields to non-zero
-     | | | |-INI_VEL    :: Initialize 3D flow field.
-     | | | |-INI_THETA  :: Set model initial temperature field.
-     | | | |-INI_SALT   :: Set model initial salinity field.
-     | | | |-INI_PSURF  :: Set model initial free-surface height/pressure.
-     | | |
-     | | |-INI_TR1      :: Set initial tracer 1 distribution.
-     | | |
-     | | |-THE_CORRECTION_STEP :: Step forward to next time step.
-     | | | |                   :: Here applied to move restart conditions
-     | | | |                   :: (saved in mid timestep) to correct level in 
-     | | | |                   :: time (only used for pre-c35).
-     | | | |
-     | | | |-CALC_GRAD_PHI_SURF :: Return DDx and DDy of surface pressure
-     | | | |-CORRECTION_STEP    :: Pressure correction to momentum
-     | | | |-CYCLE_TRACER       :: Move tracers forward in time.
-     | | | |-OBCS_APPLY_UV      :: Open bndy package. see pkg/obcs
-     | | | |-SHAP_FILT_APPLY    :: Shapiro filter package. see pkg/shap_filt
-     | | | |-ZONAL_FILT_APPLY   :: FFT filter package. see pkg/zonal_filt
-     | | | |-CONVECTIVE_ADJUSTMENT :: Control static instability mixing.
-     | | | | |-FIND_RHO  :: Find adjacent densities.
-     | | | | |-CONVECT   :: Mix static instability.
-     | | | | |-TIMEAVE_CUMULATE :: Update convection statistics.
-     | | | | 
-     | | | |-CALC_EXACT_ETA        :: Change SSH to flow divergence.     
-     | | | 
-     | | |-CONVECTIVE_ADJUSTMENT_INI :: Control static instability mixing
-     | | | |                         :: Extra time history interactions.
-     | | | |                       
-     | | | |-FIND_RHO  :: Find adjacent densities.
-     | | | |-CONVECT   :: Mix static instability.
-     | | | |-TIMEAVE_CUMULATE :: Update convection statistics.
-     | | |
-     | | |-PACKAGES_INIT_VARIABLES :: Does initialisation of time evolving 
-     | | | |                       :: package data.
-     | | | |
-     | | | |-GMREDI_INIT          :: GM package. ( see pkg/gmredi )
-     | | | |-KPP_INIT             :: KPP package. ( see pkg/kpp )
-     | | | |-KPP_OPEN_DIAGS       :: Open diagnostic output files.
-     | | | |-OBCS_INIT_VARIABLES  :: Open bndy. package. ( see pkg/obcs )
-     | | | |-AIM_INIT             :: Interm. atmos package. ( see pkg/aim )
-     | | | |-CTRL_MAP_INI         :: Control vector package.( see pkg/ctrl )
-     | | | |-COST_INIT            :: Cost function package. ( see pkg/cost )
-     | | | |-ECCO_INIT            :: ECCO support package. ( see pkg/ecco )
-     | | | |-INI_FORCING          :: Set model initial forcing fields.
-     | | |   |                    :: Either set in-line or from file as shown.
-     | | |   |-READ_FLD_XY_RS(zonalWindFile)  :: Load forcing file
-     | | |   |-READ_FLD_XY_RS(meridWindFile)  :: Load forcing file
-     | | |   |-READ_FLD_XY_RS(surfQFile)      :: Load forcing file
-     | | |   |-READ_FLD_XY_RS(EmPmRfile)      :: Load forcing file
-     | | |   |-READ_FLD_XY_RS(thetaClimFile)  :: Load forcing file
-     | | |   |-READ_FLD_XY_RS(saltClimFile)   :: Load forcing file
-     | | |   |-READ_FLD_XY_RS(surfQswFile)    :: Load forcing file
-     | | |
-     | | |-CALC_SURF_DR   :: Calculate the new surface level thickness.
-     | | |-UPDATE_SURF_DR :: Update the surface-level thickness fraction.
-     | | |-UPDATE_CG2D    :: Update 2d conjugate grad. for Free-Surf.
-     | | |-STATE_SUMMARY    :: Summarize model prognostic variables.
-     | | |-TIMEAVE_STATVARS :: Time averaging package ( see pkg/timeave ).
-     | |
-     | |-WRITE_STATE      :: Controlling routine for IO to dump model state.
-     | | |-WRITE_REC_XYZ_RL :: Single file I/O
-     | | |-WRITE_FLD_XYZ_RL :: Multi-file I/O
-     | | 
-     | |-MONITOR          :: Monitor state ( see pkg/monitor )
-     | |-CTRL_MAP_FORCING :: Control vector support package. ( see pkg/ctrl )
- ====|>| 
- ====|>| ****************************
- ====|>| BEGIN MAIN TIMESTEPPING LOOP
- ====|>| ****************************
- ====|>| 
- /\  | |-FORWARD_STEP     :: Step forward a time-step ( AT LAST !!! )
- /\  | | |
- /\  | | |-DUMMY_IN_STEPPING :: autodiff package ( pkg/autoduff ).
- /\  | | |-CALC_EXACT_ETA :: Change SSH to flow divergence.
- /\  | | |-CALC_SURF_DR   :: Calculate the new surface level thickness.
- /\  | | |-EXF_GETFORCING :: External forcing package. ( pkg/exf )
- /\  | | |-EXTERNAL_FIELDS_LOAD :: Control loading time dep. external data.
- /\  | | | |                    :: Simple interpolcation between end-points 
- /\  | | | |                    :: for forcing datasets.
- /\  | | | |                  
- /\  | | | |-EXCH_XY_RX :: Sync forcing. in overlap regions.
- /\  | | |
- /\  | | |-THERMODYNAMICS :: theta, salt + tracer equations driver.
- /\  | | | |
- /\  | | | |-INTEGRATE_FOR_W :: Integrate for vertical velocity.
- /\  | | | |-OBCS_APPLY_W    :: Open bndy. package ( see pkg/obcs ).
- /\  | | | |-FIND_RHO        :: Calculates [rho(S,T,z)-Rhonil] of a slice
- /\  | | | |-GRAD_SIGMA      :: Calculate isoneutral gradients
- /\  | | | |-CALC_IVDC       :: Set Implicit Vertical Diffusivity for Convection
- /\  | | | |
- /\  | | | |-OBCS_CALC             :: Open bndy. package ( see pkg/obcs ).
- /\  | | | |-EXTERNAL_FORCING_SURF :: Accumulates appropriately dimensioned 
- /\  | | | |                       :: forcing terms.
- /\  | | | |
- /\  | | | |-GMREDI_CALC_TENSOR   :: GM package ( see pkg/gmredi ).
- /\  | | | |-GMREDI_CALC_TENSOR_DUMMY :: GM package ( see pkg/gmredi ). 
- /\  | | | |-KPP_CALC             :: KPP package ( see pkg/kpp ).
- /\  | | | |-KPP_CALC_DUMMY       :: KPP package ( see pkg/kpp ).
- /\  | | | |-AIM_DO_ATMOS_PHYSICS :: Intermed. atmos package ( see pkg/aim ).
- /\  | | | |-GAD_ADVECTION        :: Generalised advection driver (multi-dim
- /\  | | | |                         advection case) (see pkg/gad).
- /\  | | | |-CALC_COMMON_FACTORS  :: Calculate common data (such as volume flux)
- /\  | | | |-CALC_DIFFUSIVITY     :: Calculate net vertical diffusivity
- /\  | | | | |
- /\  | | | | |-GMREDI_CALC_DIFF   :: GM package ( see pkg/gmredi ).
- /\  | | | | |-KPP_CALC_DIFF      :: KPP package ( see pkg/kpp ).
- /\  | | | |
- /\  | | | |-CALC_GT              :: Calculate the temperature tendency terms
- /\  | | | | |
- /\  | | | | |-GAD_CALC_RHS       :: Generalised advection package 
- /\  | | | | |                    :: ( see pkg/gad )
- /\  | | | | |-EXTERNAL_FORCING_T :: Problem specific forcing for temperature.
- /\  | | | | |-ADAMS_BASHFORTH2   :: Extrapolate tendencies forward in time.
- /\  | | | | |-FREESURF_RESCALE_G :: Re-scale Gt for free-surface height.
- /\  | | | |
- /\  | | | |-TIMESTEP_TRACER      :: Step tracer field forward in time
- /\  | | | |
- /\  | | | |-CALC_GS              :: Calculate the salinity tendency terms
- /\  | | | | |
- /\  | | | | |-GAD_CALC_RHS       :: Generalised advection package 
- /\  | | | | |                    :: ( see pkg/gad )
- /\  | | | | |-EXTERNAL_FORCING_S :: Problem specific forcing for salt.
- /\  | | | | |-ADAMS_BASHFORTH2   :: Extrapolate tendencies forward in time.
- /\  | | | | |-FREESURF_RESCALE_G :: Re-scale Gs for free-surface height.
- /\  | | | |
- /\  | | | |-TIMESTEP_TRACER       :: Step tracer field forward in time
- /\  | | | |
- /\  | | | |-CALC_GTR1             :: Calculate other tracer(s) tendency terms
- /\  | | | | |
- /\  | | | | |-GAD_CALC_RHS        :: Generalised advection package 
- /\  | | | | |                     :: ( see pkg/gad )
- /\  | | | | |-EXTERNAL_FORCING_TR :: Problem specific forcing for tracer.
- /\  | | | | |-ADAMS_BASHFORTH2    :: Extrapolate tendencies forward in time.
- /\  | | | | |-FREESURF_RESCALE_G  :: Re-scale Gs for free-surface height.
- /\  | | | |
- /\  | | | |-TIMESTEP_TRACER      :: Step tracer field forward in time
- /\  | | | |-OBCS_APPLY_TS        :: Open bndy. package (see pkg/obcs ).
- /\  | | | |-FREEZE               :: Limit range of temperature.
- /\  | | | |
- /\  | | | |-IMPLDIFF             :: Solve vertical implicit diffusion equation.
- /\  | | | |-OBCS_APPLY_TS        :: Open bndy. package (see pkg/obcs ). 
- /\  | | | |
- /\  | | | |-AIM_AIM2DYN_EXCHANGES :: Inetermed. atmos (see pkg/aim).
- /\  | | | |-EXCH_XYZ_RX          :: Update overlaps
- /\  | | |
- /\  | | |-DYNAMICS       :: Momentum equations driver.
- /\  | | | |
- /\  | | | |-CALC_GRAD_PHI_SURF :: Calculate the gradient of the surface 
- /\  | | | |                       Potential anomaly.
- /\  | | | |-CALC_VISCOSITY     :: Calculate net vertical viscosity
- /\  | | | | |-KPP_CALC_VISC    :: KPP package ( see pkg/kpp ).
- /\  | | | |                                                      
- /\  | | | |-CALC_PHI_HYD       :: Integrate the hydrostatic relation.
- /\  | | | |-MOM_FLUXFORM       :: Flux form mom eqn. package ( see
- /\  | | | |                       pkg/mom_fluxform ).
- /\  | | | |-MOM_VECINV         :: Vector invariant form mom eqn. package ( see
- /\  | | | |                       pkg/mom_vecinv   ).
- /\  | | | |-TIMESTEP           :: Step momentum fields forward in time
- /\  | | | |-OBCS_APPLY_UV      :: Open bndy. package (see pkg/obcs ).
- /\  | | | |
- /\  | | | |-IMPLDIFF           :: Solve vertical implicit diffusion equation.
- /\  | | | |-OBCS_APPLY_UV      :: Open bndy. package (see pkg/obcs ).
- /\  | | | |
- /\  | | | |-TIMEAVE_CUMUL_1T   :: Time averaging package ( see pkg/timeave ).
- /\  | | | |-TIMEAVE_CUMULATE   :: Time averaging package ( see pkg/timeave ).
- /\  | | | |-DEBUG_STATS_RL     :: Quick debug package ( see pkg/debug ).
- /\  | | |
- /\  | | |-CALC_GW        :: vert. momentum tendency terms ( NH, QH only ).
- /\  | | |
- /\  | | |-UPDATE_SURF_DR :: Update the surface-level thickness fraction.
- /\  | | |
- /\  | | |-UPDATE_CG2D    :: Update 2d conjugate grad. for Free-Surf.
- /\  | | |
- /\  | | |-SOLVE_FOR_PRESSURE           :: Find surface pressure.
- /\  | | | |-CALC_DIV_GHAT     :: Form the RHS of the surface pressure eqn.
- /\  | | | |-CG2D              :: Two-dim pre-con. conjugate-gradient.
- /\  | | | |-CG3D              :: Three-dim pre-con. conjugate-gradient solver.
- /\  | | |
- /\  | | |-THE_CORRECTION_STEP          :: Step forward to next time step.
- /\  | | | |
- /\  | | | |-CALC_GRAD_PHI_SURF :: Return DDx and DDy of surface pressure
- /\  | | | |-CORRECTION_STEP    :: Pressure correction to momentum
- /\  | | | |-CYCLE_TRACER       :: Move tracers forward in time.
- /\  | | | |-OBCS_APPLY_UV      :: Open bndy package. see pkg/obcs
- /\  | | | |-SHAP_FILT_APPLY    :: Shapiro filter package. see pkg/shap_filt
- /\  | | | |-ZONAL_FILT_APPLY   :: FFT filter package. see pkg/zonal_filt
- /\  | | | |-CONVECTIVE_ADJUSTMENT :: Control static instability mixing.
- /\  | | | | |-FIND_RHO  :: Find adjacent densities.
- /\  | | | | |-CONVECT   :: Mix static instability.
- /\  | | | | |-TIMEAVE_CUMULATE :: Update convection statistics.
- /\  | | | | 
- /\  | | | |-CALC_EXACT_ETA        :: Change SSH to flow divergence.     
- /\  | | |
- /\  | | |-DO_FIELDS_BLOCKING_EXCHANGES :: Sync up overlap regions.
- /\  | | | |-EXCH_XYZ_RX    :: Update overlaps
- /\  | | |
- /\  | | |-FLT_MAIN         :: Float package ( pkg/flt ).
- /\  | | |
- /\  | | |-MONITOR          :: Monitor package ( pkg/monitor ).
- /\  | | |
- /\  | | |-DO_THE_MODEL_IO  :: Standard diagnostic I/O.
- /\  | | | |-WRITE_STATE    :: Core state I/O
- /\  | | | |-TIMEAVE_STATV_WRITE :: Time averages. see pkg/timeave
- /\  | | | |-AIM_WRITE_DIAGS     :: Intermed. atmos diags. see pkg/aim
- /\  | | | |-GMREDI_DIAGS        :: GM diags. see pkg/gmredi
- /\  | | | |-KPP_DO_DIAGS        :: KPP diags. see pkg/kpp
- /\  | | |
- /\  | | |-WRITE_CHECKPOINT :: Do I/O for restart files.
- /\  | |
- /\  | |-COST_TILE        :: Cost function package. ( see pkg/cost )
- <===|=|
- <===|=| **************************
- <===|=| END MAIN TIMESTEPPING LOOP
- <===|=| **************************
- <===|=|
-     | |-COST_FINAL       :: Cost function package. ( see pkg/cost )
-     |
-     |-WRITE_CHECKPOINT :: Final state storage, for restart.
-     |
-     |-TIMER_PRINTALL :: Computational timing summary
-     |
-     |-COMM_STATS     :: Summarise inter-proc and inter-thread communication
-                      :: events.
-  
-
- - + + + + + + callTree + + + +

+Browse Hypertext Code Online

+Browse MITgcm source code in hyperlinked form. +

Select links from the calling tree below or select from the side bar +menu to access alphabetic lists of model subroutines and functions, runtime +parameters, compile time parameters and model source files. +

The 'all symbols' link at the bottom on the side displays lists of all +symbols used in MITgcm. This list is quite long and can take some time +to display. +

+MITgcm Release 1 Main Call Tree

+ +
 
+  Invocation from WRAPPER level...
+   :
+   :
+   |
+   |-THE_MODEL_MAIN :: Primary driver for the MITgcm algorithm
+     |              :: Called from WRAPPER level numerical
+     |              :: code innvocation routine. On entry
+     |              :: to THE_MODEL_MAIN separate thread and
+     |              :: separate processes will have been established.
+     |              :: Each thread and process will have a unique ID
+     |              :: but as yet it will not be associated with a
+     |              :: specific region in decomposed discrete space.
+     |
+     |-INITIALISE_FIXED :: Set fixed model arrays such as topography, 
+     | |                :: grid, solver matrices etc..
+     | |              
+     | |-INI_PARMS :: Routine to set kernel model parameters.
+     | |           :: By default kernel parameters are read from file 
+     | |           :: "data" in directory in which code executes.
+     | |
+     | |-MON_INIT :: Initialises monitor pacakge ( see pkg/monitor )
+     | |
+     | |-INI_GRID :: Control grid array (vert. and hori.) initialisation.
+     | | |        :: Grid arrays are held and described in GRID.h.
+     | | |
+     | | |-INI_VERTICAL_GRID        :: Initialise vertical grid arrays.
+     | | |
+     | | |-INI_CARTESIAN_GRID       :: Cartesian horiz. grid initialisation
+     | | |                          :: (calculate grid from kernel parameters).
+     | | |
+     | | |-INI_SPHERICAL_POLAR_GRID :: Spherical polar horiz. grid 
+     | | |                          :: initialisation (calculate grid from 
+     | | |                          :: kernel parameters).
+     | | |
+     | | |-INI_CURVILINEAR_GRID     :: General orthogonal, structured horiz.
+     | |                            :: grid initialisations. ( input from raw
+     | |                            :: grid files, LONC.bin, DXF.bin etc... )
+     | |
+     | |-INI_DEPTHS    :: Read (from "bathyFile") or set bathymetry/orgography.
+     | |
+     | |-INI_MASKS_ETC :: Derive horizontal and vertical cell fractions and
+     | |               :: land masking for solid-fluid boundaries.
+     | |
+     | |-INI_LINEAR_PHISURF :: Set ref. surface Bo_surf
+     | |
+     | |-INI_CORI          :: Set coriolis term. zero, f-plane, beta-plane,
+     | |                   :: sphere optins are coded.
+     | |
+     | |-PACKAGES_BOOT      :: Start up the optional package environment.
+     | |                    :: Runtime selection of active packages.
+     | |
+     | |-PACKAGES_READPARMS    :: Call active package internal parameter load.
+     | | |
+     | | |-GMREDI_READPARMS    :: GM Package. see pkg/gmredi
+     | | |-KPP_READPARMS       :: KPP Package. see pkg/kpp
+     | | |-SHAP_FILT_READPARMS :: Shapiro filter package. see pkg/shap_filt
+     | | |-OBCS_READPARMS      :: Open bndy package. see pkg/obcs
+     | | |-COST_READPARMS      :: Cost function package. see pkg/cost
+     | | |-CTRL_INIT           :: Control vector support package. see pkg/ctrl
+     | | |-OPTIM_READPARMS     :: Optimisation support package. see pkg/ctrl 
+     | | |-GRDCHK_READPARMS    :: Gradient check package. see pkg/grdchk
+     | | |-ECCO_READPARMS      :: ECCO Support Package. see pkg/ecco
+     | |
+     | |-PACKAGES_CHECK        :: Control checking package configuration.
+     | | |
+     | | |-KPP_CHECK           :: KPP Package. pkg/kpp
+     | | |-OBCS_CHECK          :: Open bndy Pacakge. pkg/obcs
+     | | |-GMREDI_CHECK        :: GM Package. pkg/gmredi
+     | |
+     | |-PACKAGES_INIT_FIXED   :: Fixed initialisation of packages
+     | | |-OBCS_INIT_FIXED     :: Open bndy Package. see pkg/obcs
+     | | |-FLT_INIT            :: Floats Package. see pkg/flt
+     | |
+     | |-ZONAL_FILT_INIT       :: FFT filter Package. see pkg/zonal_filt
+     | |
+     | |-INI_CG2D              :: 2d con. grad solver initialisation.
+     | |
+     | |-INI_CG3D              :: 3d con. grad solver initialisation.
+     | |
+     | |-CONFIG_SUMMARY        :: Provide synopsis of kernel setup.
+     |                         :: Includes annotated table of kernel 
+     |                         :: parameter settings.
+     |
+     |-CTRL_UNPACK :: Control vector support package. see pkg/ctrl
+     |
+     |-ADTHE_MAIN_LOOP :: Derivative evaluating form of main time stepping loop
+     !                 :: Auotmatically gerenrated by TAMC/TAF.
+     |
+     |-CTRL_PACK   :: Control vector support package. see pkg/ctrl
+     |
+     |-GRDCHK_MAIN :: Gradient check package. see pkg/grdchk
+     |
+     |-THE_MAIN_LOOP :: Main timestepping loop routine.
+     | |
+     | |-INITIALISE_VARIA :: Set the initial conditions for time evolving 
+     | | |                :: variables
+     | | |
+     | | |-INI_LINEAR_PHISURF :: Set ref. surface Bo_surf
+     | | |
+     | | |-INI_CORI     :: Set coriolis term. zero, f-plane, beta-plane,
+     | | |              :: sphere optins are coded.
+     | | |
+     | | |-INI_CG2D     :: 2d con. grad solver initialisation.
+     | | |-INI_CG3D     :: 3d con. grad solver initialisation.
+     | | |-INI_MIXING   :: Initialise diapycnal diffusivity.
+     | | |-INI_DYNVARS  :: Initialise to zero all DYNVARS.h arrays (dynamical
+     | | |              :: fields).
+     | | |
+     | | |-INI_FIELDS   :: Control initialising model fields to non-zero
+     | | | |-INI_VEL    :: Initialize 3D flow field.
+     | | | |-INI_THETA  :: Set model initial temperature field.
+     | | | |-INI_SALT   :: Set model initial salinity field.
+     | | | |-INI_PSURF  :: Set model initial free-surface height/pressure.
+     | | |
+     | | |-INI_TR1      :: Set initial tracer 1 distribution.
+     | | |
+     | | |-THE_CORRECTION_STEP :: Step forward to next time step.
+     | | | |                   :: Here applied to move restart conditions
+     | | | |                   :: (saved in mid timestep) to correct level in 
+     | | | |                   :: time (only used for pre-c35).
+     | | | |
+     | | | |-CALC_GRAD_PHI_SURF :: Return DDx and DDy of surface pressure
+     | | | |-CORRECTION_STEP    :: Pressure correction to momentum
+     | | | |-CYCLE_TRACER       :: Move tracers forward in time.
+     | | | |-OBCS_APPLY_UV      :: Open bndy package. see pkg/obcs
+     | | | |-SHAP_FILT_APPLY    :: Shapiro filter package. see pkg/shap_filt
+     | | | |-ZONAL_FILT_APPLY   :: FFT filter package. see pkg/zonal_filt
+     | | | |-CONVECTIVE_ADJUSTMENT :: Control static instability mixing.
+     | | | | |-FIND_RHO  :: Find adjacent densities.
+     | | | | |-CONVECT   :: Mix static instability.
+     | | | | |-TIMEAVE_CUMULATE :: Update convection statistics.
+     | | | | 
+     | | | |-CALC_EXACT_ETA        :: Change SSH to flow divergence.     
+     | | | 
+     | | |-CONVECTIVE_ADJUSTMENT_INI :: Control static instability mixing
+     | | | |                         :: Extra time history interactions.
+     | | | |                       
+     | | | |-FIND_RHO  :: Find adjacent densities.
+     | | | |-CONVECT   :: Mix static instability.
+     | | | |-TIMEAVE_CUMULATE :: Update convection statistics.
+     | | |
+     | | |-PACKAGES_INIT_VARIABLES :: Does initialisation of time evolving 
+     | | | |                       :: package data.
+     | | | |
+     | | | |-GMREDI_INIT          :: GM package. ( see pkg/gmredi )
+     | | | |-KPP_INIT             :: KPP package. ( see pkg/kpp )
+     | | | |-KPP_OPEN_DIAGS       :: Open diagnostic output files.
+     | | | |-OBCS_INIT_VARIABLES  :: Open bndy. package. ( see pkg/obcs )
+     | | | |-AIM_INIT             :: Interm. atmos package. ( see pkg/aim )
+     | | | |-CTRL_MAP_INI         :: Control vector package.( see pkg/ctrl )
+     | | | |-COST_INIT            :: Cost function package. ( see pkg/cost )
+     | | | |-ECCO_INIT            :: ECCO support package. ( see pkg/ecco )
+     | | | |-INI_FORCING          :: Set model initial forcing fields.
+     | | |   |                    :: Either set in-line or from file as shown.
+     | | |   |-READ_FLD_XY_RS(zonalWindFile)  :: Load forcing file
+     | | |   |-READ_FLD_XY_RS(meridWindFile)  :: Load forcing file
+     | | |   |-READ_FLD_XY_RS(surfQFile)      :: Load forcing file
+     | | |   |-READ_FLD_XY_RS(EmPmRfile)      :: Load forcing file
+     | | |   |-READ_FLD_XY_RS(thetaClimFile)  :: Load forcing file
+     | | |   |-READ_FLD_XY_RS(saltClimFile)   :: Load forcing file
+     | | |   |-READ_FLD_XY_RS(surfQswFile)    :: Load forcing file
+     | | |
+     | | |-CALC_SURF_DR   :: Calculate the new surface level thickness.
+     | | |-UPDATE_SURF_DR :: Update the surface-level thickness fraction.
+     | | |-UPDATE_CG2D    :: Update 2d conjugate grad. for Free-Surf.
+     | | |-STATE_SUMMARY    :: Summarize model prognostic variables.
+     | | |-TIMEAVE_STATVARS :: Time averaging package ( see pkg/timeave ).
+     | |
+     | |-WRITE_STATE      :: Controlling routine for IO to dump model state.
+     | | |-WRITE_REC_XYZ_RL :: Single file I/O
+     | | |-WRITE_FLD_XYZ_RL :: Multi-file I/O
+     | | 
+     | |-MONITOR          :: Monitor state ( see pkg/monitor )
+     | |-CTRL_MAP_FORCING :: Control vector support package. ( see pkg/ctrl )
+ ====|>| 
+ ====|>| ****************************
+ ====|>| BEGIN MAIN TIMESTEPPING LOOP
+ ====|>| ****************************
+ ====|>| 
+ /\  | |-FORWARD_STEP     :: Step forward a time-step ( AT LAST !!! )
+ /\  | | |
+ /\  | | |-DUMMY_IN_STEPPING :: autodiff package ( pkg/autoduff ).
+ /\  | | |-CALC_EXACT_ETA :: Change SSH to flow divergence.
+ /\  | | |-CALC_SURF_DR   :: Calculate the new surface level thickness.
+ /\  | | |-EXF_GETFORCING :: External forcing package. ( pkg/exf )
+ /\  | | |-EXTERNAL_FIELDS_LOAD :: Control loading time dep. external data.
+ /\  | | | |                    :: Simple interpolcation between end-points 
+ /\  | | | |                    :: for forcing datasets.
+ /\  | | | |                  
+ /\  | | | |-EXCH_XY_RX :: Sync forcing. in overlap regions.
+ /\  | | |
+ /\  | | |-THERMODYNAMICS :: theta, salt + tracer equations driver.
+ /\  | | | |
+ /\  | | | |-INTEGRATE_FOR_W :: Integrate for vertical velocity.
+ /\  | | | |-OBCS_APPLY_W    :: Open bndy. package ( see pkg/obcs ).
+ /\  | | | |-FIND_RHO        :: Calculates [rho(S,T,z)-Rhonil] of a slice
+ /\  | | | |-GRAD_SIGMA      :: Calculate isoneutral gradients
+ /\  | | | |-CALC_IVDC       :: Set Implicit Vertical Diffusivity for Convection
+ /\  | | | |
+ /\  | | | |-OBCS_CALC             :: Open bndy. package ( see pkg/obcs ).
+ /\  | | | |-EXTERNAL_FORCING_SURF :: Accumulates appropriately dimensioned 
+ /\  | | | |                       :: forcing terms.
+ /\  | | | |
+ /\  | | | |-GMREDI_CALC_TENSOR   :: GM package ( see pkg/gmredi ).
+ /\  | | | |-GMREDI_CALC_TENSOR_DUMMY :: GM package ( see pkg/gmredi ). 
+ /\  | | | |-KPP_CALC             :: KPP package ( see pkg/kpp ).
+ /\  | | | |-KPP_CALC_DUMMY       :: KPP package ( see pkg/kpp ).
+ /\  | | | |-AIM_DO_ATMOS_PHYSICS :: Intermed. atmos package ( see pkg/aim ).
+ /\  | | | |-GAD_ADVECTION        :: Generalised advection driver (multi-dim
+ /\  | | | |                         advection case) (see pkg/gad).
+ /\  | | | |-CALC_COMMON_FACTORS  :: Calculate common data (such as volume flux)
+ /\  | | | |-CALC_DIFFUSIVITY     :: Calculate net vertical diffusivity
+ /\  | | | | |
+ /\  | | | | |-GMREDI_CALC_DIFF   :: GM package ( see pkg/gmredi ).
+ /\  | | | | |-KPP_CALC_DIFF      :: KPP package ( see pkg/kpp ).
+ /\  | | | |
+ /\  | | | |-CALC_GT              :: Calculate the temperature tendency terms
+ /\  | | | | |
+ /\  | | | | |-GAD_CALC_RHS       :: Generalised advection package 
+ /\  | | | | |                    :: ( see pkg/gad )
+ /\  | | | | |-EXTERNAL_FORCING_T :: Problem specific forcing for temperature.
+ /\  | | | | |-ADAMS_BASHFORTH2   :: Extrapolate tendencies forward in time.
+ /\  | | | | |-FREESURF_RESCALE_G :: Re-scale Gt for free-surface height.
+ /\  | | | |
+ /\  | | | |-TIMESTEP_TRACER      :: Step tracer field forward in time
+ /\  | | | |
+ /\  | | | |-CALC_GS              :: Calculate the salinity tendency terms
+ /\  | | | | |
+ /\  | | | | |-GAD_CALC_RHS       :: Generalised advection package 
+ /\  | | | | |                    :: ( see pkg/gad )
+ /\  | | | | |-EXTERNAL_FORCING_S :: Problem specific forcing for salt.
+ /\  | | | | |-ADAMS_BASHFORTH2   :: Extrapolate tendencies forward in time.
+ /\  | | | | |-FREESURF_RESCALE_G :: Re-scale Gs for free-surface height.
+ /\  | | | |
+ /\  | | | |-TIMESTEP_TRACER       :: Step tracer field forward in time
+ /\  | | | |
+ /\  | | | |-CALC_GTR1             :: Calculate other tracer(s) tendency terms
+ /\  | | | | |
+ /\  | | | | |-GAD_CALC_RHS        :: Generalised advection package 
+ /\  | | | | |                     :: ( see pkg/gad )
+ /\  | | | | |-EXTERNAL_FORCING_TR :: Problem specific forcing for tracer.
+ /\  | | | | |-ADAMS_BASHFORTH2    :: Extrapolate tendencies forward in time.
+ /\  | | | | |-FREESURF_RESCALE_G  :: Re-scale Gs for free-surface height.
+ /\  | | | |
+ /\  | | | |-TIMESTEP_TRACER      :: Step tracer field forward in time
+ /\  | | | |-OBCS_APPLY_TS        :: Open bndy. package (see pkg/obcs ).
+ /\  | | | |-FREEZE               :: Limit range of temperature.
+ /\  | | | |
+ /\  | | | |-IMPLDIFF             :: Solve vertical implicit diffusion equation.
+ /\  | | | |-OBCS_APPLY_TS        :: Open bndy. package (see pkg/obcs ). 
+ /\  | | | |
+ /\  | | | |-AIM_AIM2DYN_EXCHANGES :: Inetermed. atmos (see pkg/aim).
+ /\  | | | |-EXCH_XYZ_RX          :: Update overlaps
+ /\  | | |
+ /\  | | |-DYNAMICS       :: Momentum equations driver.
+ /\  | | | |
+ /\  | | | |-CALC_GRAD_PHI_SURF :: Calculate the gradient of the surface 
+ /\  | | | |                       Potential anomaly.
+ /\  | | | |-CALC_VISCOSITY     :: Calculate net vertical viscosity
+ /\  | | | | |-KPP_CALC_VISC    :: KPP package ( see pkg/kpp ).
+ /\  | | | |                                                      
+ /\  | | | |-CALC_PHI_HYD       :: Integrate the hydrostatic relation.
+ /\  | | | |-MOM_FLUXFORM       :: Flux form mom eqn. package ( see
+ /\  | | | |                       pkg/mom_fluxform ).
+ /\  | | | |-MOM_VECINV         :: Vector invariant form mom eqn. package ( see
+ /\  | | | |                       pkg/mom_vecinv   ).
+ /\  | | | |-TIMESTEP           :: Step momentum fields forward in time
+ /\  | | | |-OBCS_APPLY_UV      :: Open bndy. package (see pkg/obcs ).
+ /\  | | | |
+ /\  | | | |-IMPLDIFF           :: Solve vertical implicit diffusion equation.
+ /\  | | | |-OBCS_APPLY_UV      :: Open bndy. package (see pkg/obcs ).
+ /\  | | | |
+ /\  | | | |-TIMEAVE_CUMUL_1T   :: Time averaging package ( see pkg/timeave ).
+ /\  | | | |-TIMEAVE_CUMULATE   :: Time averaging package ( see pkg/timeave ).
+ /\  | | | |-DEBUG_STATS_RL     :: Quick debug package ( see pkg/debug ).
+ /\  | | |
+ /\  | | |-CALC_GW        :: vert. momentum tendency terms ( NH, QH only ).
+ /\  | | |
+ /\  | | |-UPDATE_SURF_DR :: Update the surface-level thickness fraction.
+ /\  | | |
+ /\  | | |-UPDATE_CG2D    :: Update 2d conjugate grad. for Free-Surf.
+ /\  | | |
+ /\  | | |-SOLVE_FOR_PRESSURE           :: Find surface pressure.
+ /\  | | | |-CALC_DIV_GHAT     :: Form the RHS of the surface pressure eqn.
+ /\  | | | |-CG2D              :: Two-dim pre-con. conjugate-gradient.
+ /\  | | | |-CG3D              :: Three-dim pre-con. conjugate-gradient solver.
+ /\  | | |
+ /\  | | |-THE_CORRECTION_STEP          :: Step forward to next time step.
+ /\  | | | |
+ /\  | | | |-CALC_GRAD_PHI_SURF :: Return DDx and DDy of surface pressure
+ /\  | | | |-CORRECTION_STEP    :: Pressure correction to momentum
+ /\  | | | |-CYCLE_TRACER       :: Move tracers forward in time.
+ /\  | | | |-OBCS_APPLY_UV      :: Open bndy package. see pkg/obcs
+ /\  | | | |-SHAP_FILT_APPLY    :: Shapiro filter package. see pkg/shap_filt
+ /\  | | | |-ZONAL_FILT_APPLY   :: FFT filter package. see pkg/zonal_filt
+ /\  | | | |-CONVECTIVE_ADJUSTMENT :: Control static instability mixing.
+ /\  | | | | |-FIND_RHO  :: Find adjacent densities.
+ /\  | | | | |-CONVECT   :: Mix static instability.
+ /\  | | | | |-TIMEAVE_CUMULATE :: Update convection statistics.
+ /\  | | | | 
+ /\  | | | |-CALC_EXACT_ETA        :: Change SSH to flow divergence.     
+ /\  | | |
+ /\  | | |-DO_FIELDS_BLOCKING_EXCHANGES :: Sync up overlap regions.
+ /\  | | | |-EXCH_XYZ_RX    :: Update overlaps
+ /\  | | |
+ /\  | | |-FLT_MAIN         :: Float package ( pkg/flt ).
+ /\  | | |
+ /\  | | |-MONITOR          :: Monitor package ( pkg/monitor ).
+ /\  | | |
+ /\  | | |-DO_THE_MODEL_IO  :: Standard diagnostic I/O.
+ /\  | | | |-WRITE_STATE    :: Core state I/O
+ /\  | | | |-TIMEAVE_STATV_WRITE :: Time averages. see pkg/timeave
+ /\  | | | |-AIM_WRITE_DIAGS     :: Intermed. atmos diags. see pkg/aim
+ /\  | | | |-GMREDI_DIAGS        :: GM diags. see pkg/gmredi
+ /\  | | | |-KPP_DO_DIAGS        :: KPP diags. see pkg/kpp
+ /\  | | |
+ /\  | | |-WRITE_CHECKPOINT :: Do I/O for restart files.
+ /\  | |
+ /\  | |-COST_TILE        :: Cost function package. ( see pkg/cost )
+ <===|=|
+ <===|=| **************************
+ <===|=| END MAIN TIMESTEPPING LOOP
+ <===|=| **************************
+ <===|=|
+     | |-COST_FINAL       :: Cost function package. ( see pkg/cost )
+     |
+     |-WRITE_CHECKPOINT :: Final state storage, for restart.
+     |
+     |-TIMER_PRINTALL :: Computational timing summary
+     |
+     |-COMM_STATS     :: Summarise inter-proc and inter-thread communication
+                      :: events.
+
+ + +