


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 solidfluid boundaries.
C  
C  INI_LINEAR_PHSURF :: Set ref. surface Bo_surf
C  
C  INI_CORI :: Set coriolis term. zero, fplane, betaplane,
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, fplane, betaplane,
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 nonzero
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 freesurface 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 prec35).
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 inline 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 surfacelevel thickness fraction.
C   UPDATE_CG2D :: Update 2d conjugate grad. for FreeSurf.
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 :: Multifile 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 timestep ( 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 endpoints
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 (multidim
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 :: Rescale Gt for freesurface 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 :: Rescale Gs for freesurface 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 :: Rescale Gs for freesurface 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 surfacelevel thickness fraction.
C/\   
C/\   UPDATE_CG2D :: Update 2d conjugate grad. for FreeSurf.
C/\   
C/\   SOLVE_FOR_PRESSURE :: Find surface pressure.
C/\    CALC_DIV_GHAT :: Form the RHS of the surface pressure eqn.
C/\    CG2D :: Twodim precon. conjugategradient.
C/\    CG3D :: Threedim precon. conjugategradient 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 interproc and interthread communication
C :: events.
Copyright © 2002
Massachusetts Institute of Technology 

