Home Contact Us Site Map  
 
       
   

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.

MITgcm Development Main Call Tree

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