/[MITgcm]/MITgcm/model/src/the_model_main.F
ViewVC logotype

Diff of /MITgcm/model/src/the_model_main.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.53 by heimbach, Fri Mar 7 05:51:52 2003 UTC revision 1.60 by edhill, Thu Oct 9 04:19:18 2003 UTC
# Line 91  C    | | |-CTRL_INIT           :: Contro Line 91  C    | | |-CTRL_INIT           :: Contro
91  C    | | |-OPTIM_READPARMS     :: Optimisation support package. see pkg/ctrl  C    | | |-OPTIM_READPARMS     :: Optimisation support package. see pkg/ctrl
92  C    | | |-GRDCHK_READPARMS    :: Gradient check package. see pkg/grdchk  C    | | |-GRDCHK_READPARMS    :: Gradient check package. see pkg/grdchk
93  C    | | |-ECCO_READPARMS      :: ECCO Support Package. see pkg/ecco  C    | | |-ECCO_READPARMS      :: ECCO Support Package. see pkg/ecco
94    C    | | |-PTRACERS_READPARMS  :: multiple tracer package, see pkg/ptracers
95    C    | | |-GCHEM_READPARMS     :: tracer interface package, see pkg/gchem
96  C    | |  C    | |
97  C    | |-PACKAGES_CHECK  C    | |-PACKAGES_CHECK
98  C    | | |  C    | | |
# Line 101  C    | | Line 103  C    | |
103  C    | |-PACKAGES_INIT_FIXED  C    | |-PACKAGES_INIT_FIXED
104  C    | | |-OBCS_INIT_FIXED     :: Open bndy Package. see pkg/obcs  C    | | |-OBCS_INIT_FIXED     :: Open bndy Package. see pkg/obcs
105  C    | | |-FLT_INIT            :: Floats Package. see pkg/flt  C    | | |-FLT_INIT            :: Floats Package. see pkg/flt
106    C    | | |-GCHEM_INIT_FIXED    :: tracer interface pachage, see pkg/gchem
107  C    | |  C    | |
108  C    | |-ZONAL_FILT_INIT       :: FFT filter Package. see pkg/zonal_filt  C    | |-ZONAL_FILT_INIT       :: FFT filter Package. see pkg/zonal_filt
109  C    | |  C    | |
# Line 178  C    | | | |-GMREDI_INIT          :: GM Line 181  C    | | | |-GMREDI_INIT          :: GM
181  C    | | | |-KPP_INIT             :: KPP package. ( see pkg/kpp )  C    | | | |-KPP_INIT             :: KPP package. ( see pkg/kpp )
182  C    | | | |-KPP_OPEN_DIAGS      C    | | | |-KPP_OPEN_DIAGS    
183  C    | | | |-OBCS_INIT_VARIABLES  :: Open bndy. package. ( see pkg/obcs )  C    | | | |-OBCS_INIT_VARIABLES  :: Open bndy. package. ( see pkg/obcs )
184    C    | | | |-PTRACERS_INIT        :: multi. tracer package,(see pkg/ptracers)
185    C    | | | |-GCHEM_INIT           : : tracer interface pkg (see pkh/gchem)
186  C    | | | |-AIM_INIT             :: Interm. atmos package. ( see pkg/aim )  C    | | | |-AIM_INIT             :: Interm. atmos package. ( see pkg/aim )
187  C    | | | |-CTRL_MAP_INI         :: Control vector package.( see pkg/ctrl )  C    | | | |-CTRL_MAP_INI         :: Control vector package.( see pkg/ctrl )
188  C    | | | |-COST_INIT            :: Cost function package. ( see pkg/cost )  C    | | | |-COST_INIT            :: Cost function package. ( see pkg/cost )
# Line 221  C/\  | | | |                    :: for f Line 226  C/\  | | | |                    :: for f
226  C/\  | | | |                    C/\  | | | |                  
227  C/\  | | | |-EXCH :: Sync forcing. in overlap regions.  C/\  | | | |-EXCH :: Sync forcing. in overlap regions.
228  C/\  | | |-SEAICE_MODEL   :: Compute sea-ice terms. ( pkg/seaice )  C/\  | | |-SEAICE_MODEL   :: Compute sea-ice terms. ( pkg/seaice )
229    C/\  | | |-GCHEM_FIELD_LOAD :: load tracer forcing fields (pkg/gchem)
230  C/\  | | |  C/\  | | |
231  C/\  | | |-THERMODYNAMICS :: theta, salt + tracer equations driver.  C/\  | | |-THERMODYNAMICS :: theta, salt + tracer equations driver.
232  C/\  | | | |  C/\  | | | |
# Line 232  C/\  | | | |-CALC_IVDC       :: Set Impl Line 238  C/\  | | | |-CALC_IVDC       :: Set Impl
238  C/\  | | | |  C/\  | | | |
239  C/\  | | | |-OBCS_CALC            :: Open bndy. package ( see pkg/obcs ).  C/\  | | | |-OBCS_CALC            :: Open bndy. package ( see pkg/obcs ).
240  C/\  | | | |-EXTERNAL_FORCING_SURF:: Accumulates appropriately dimensioned  C/\  | | | |-EXTERNAL_FORCING_SURF:: Accumulates appropriately dimensioned
241  C/\  | | | |                      :: forcing terms.  C/\  | | | | |                    :: forcing terms.
242    C/\  | | | | |-PTRACERS_FORCING_SURF :: Tracer package ( see pkg/ptracers ).
243  C/\  | | | |  C/\  | | | |
244  C/\  | | | |-GMREDI_CALC_TENSOR   :: GM package ( see pkg/gmredi ).  C/\  | | | |-GMREDI_CALC_TENSOR   :: GM package ( see pkg/gmredi ).
245  C/\  | | | |-GMREDI_CALC_TENSOR_DUMMY :: GM package ( see pkg/gmredi ).  C/\  | | | |-GMREDI_CALC_TENSOR_DUMMY :: GM package ( see pkg/gmredi ).
# Line 250  C/\  | | | | Line 257  C/\  | | | |
257  C/\  | | | |-CALC_GT              :: Calculate the temperature tendency terms  C/\  | | | |-CALC_GT              :: Calculate the temperature tendency terms
258  C/\  | | | | |  C/\  | | | | |
259  C/\  | | | | |-GAD_CALC_RHS       :: Generalised advection package  C/\  | | | | |-GAD_CALC_RHS       :: Generalised advection package
260  C/\  | | | | |                    :: ( see pkg/gad )  C/\  | | | | | |                  :: ( see pkg/gad )
261    C/\  | | | | | |-KPP_TRANSPORT_T  :: KPP non-local transport ( see pkg/kpp ).
262    C/\  | | | | |
263  C/\  | | | | |-EXTERNAL_FORCING_T :: Problem specific forcing for temperature.  C/\  | | | | |-EXTERNAL_FORCING_T :: Problem specific forcing for temperature.
264  C/\  | | | | |-ADAMS_BASHFORTH2   :: Extrapolate tendencies forward in time.  C/\  | | | | |-ADAMS_BASHFORTH2   :: Extrapolate tendencies forward in time.
265  C/\  | | | | |-FREESURF_RESCALE_G :: Re-scale Gt for free-surface height.  C/\  | | | | |-FREESURF_RESCALE_G :: Re-scale Gt for free-surface height.
# Line 260  C/\  | | | | Line 269  C/\  | | | |
269  C/\  | | | |-CALC_GS              :: Calculate the salinity tendency terms  C/\  | | | |-CALC_GS              :: Calculate the salinity tendency terms
270  C/\  | | | | |  C/\  | | | | |
271  C/\  | | | | |-GAD_CALC_RHS       :: Generalised advection package  C/\  | | | | |-GAD_CALC_RHS       :: Generalised advection package
272  C/\  | | | | |                    :: ( see pkg/gad )  C/\  | | | | | |                  :: ( see pkg/gad )
273    C/\  | | | | | |-KPP_TRANSPORT_S  :: KPP non-local transport ( see pkg/kpp ).
274    C/\  | | | | |
275  C/\  | | | | |-EXTERNAL_FORCING_S :: Problem specific forcing for salt.  C/\  | | | | |-EXTERNAL_FORCING_S :: Problem specific forcing for salt.
276  C/\  | | | | |-ADAMS_BASHFORTH2   :: Extrapolate tendencies forward in time.  C/\  | | | | |-ADAMS_BASHFORTH2   :: Extrapolate tendencies forward in time.
277  C/\  | | | | |-FREESURF_RESCALE_G :: Re-scale Gs for free-surface height.  C/\  | | | | |-FREESURF_RESCALE_G :: Re-scale Gs for free-surface height.
# Line 271  C/\  | | | |-CALC_GTR1            :: Cal Line 282  C/\  | | | |-CALC_GTR1            :: Cal
282  C/\  | | | | |  C/\  | | | | |
283  C/\  | | | | |-GAD_CALC_RHS       :: Generalised advection package  C/\  | | | | |-GAD_CALC_RHS       :: Generalised advection package
284  C/\  | | | | |                    :: ( see pkg/gad )  C/\  | | | | |                    :: ( see pkg/gad )
285    C/\  | | | | |
286  C/\  | | | | |-EXTERNAL_FORCING_TR:: Problem specific forcing for tracer.  C/\  | | | | |-EXTERNAL_FORCING_TR:: Problem specific forcing for tracer.
287  C/\  | | | | |-ADAMS_BASHFORTH2   :: Extrapolate tendencies forward in time.  C/\  | | | | |-ADAMS_BASHFORTH2   :: Extrapolate tendencies forward in time.
288  C/\  | | | | |-FREESURF_RESCALE_G :: Re-scale Gs for free-surface height.  C/\  | | | | |-FREESURF_RESCALE_G :: Re-scale Gs for free-surface height.
289  C/\  | | | |  C/\  | | | |
290  C/\  | | | |-TIMESTEP_TRACER      :: Step tracer field forward in time  C/\  | | | |-TIMESTEP_TRACER      :: Step tracer field forward in time
291    C/\  | | | |
292    C/\  | | | |-PTRACERS_INTEGRATE   :: Integrate other tracer(s) ( see pkg/ptracers ).
293    C/\  | | | | |
294    C/\  | | | | |-GAD_CALC_RHS       :: Generalised advection package
295    C/\  | | | | | |                  :: ( see pkg/gad )
296    C/\  | | | | | |-KPP_TRANSPORT_PTR:: KPP non-local transport ( see pkg/kpp ).
297    C/\  | | | | |
298    C/\  | | | | |-PTRACERS_FORCING   :: Problem specific forcing for tracer.
299    C/\  | | | | |-GCHEM_FORCING_INT  :: tracer forcing for gchem pkg (if all
300    C/\  | | | | |                       tendancy terms calcualted together)
301    C/\  | | | | |-ADAMS_BASHFORTH2   :: Extrapolate tendencies forward in time.
302    C/\  | | | | |-FREESURF_RESCALE_G :: Re-scale Gs for free-surface height.
303    C/\  | | | | |-TIMESTEP_TRACER    :: Step tracer field forward in time
304    C/\  | | | |
305  C/\  | | | |-OBCS_APPLY_TS        :: Open bndy. package (see pkg/obcs ).  C/\  | | | |-OBCS_APPLY_TS        :: Open bndy. package (see pkg/obcs ).
306  C/\  | | | |-FREEZE               :: Limit range of temperature.  C/\  | | | |-FREEZE               :: Limit range of temperature.
307  C/\  | | | |  C/\  | | | |
# Line 336  C/\  | | | Line 362  C/\  | | |
362  C/\  | | |-DO_FIELDS_BLOCKING_EXCHANGES :: Sync up overlap regions.  C/\  | | |-DO_FIELDS_BLOCKING_EXCHANGES :: Sync up overlap regions.
363  C/\  | | | |-EXCH                                                    C/\  | | | |-EXCH                                                  
364  C/\  | | |  C/\  | | |
365    C/\  | | |-GCHEM_FORCING_SEP :: tracer forcing for gchem pkg (if
366    C/\  | | |                      tracer dependent tendencies calculated
367    C/\  | | |                      separatly)
368    C/\  | | |
369  C/\  | | |-FLT_MAIN         :: Float package ( pkg/flt ).  C/\  | | |-FLT_MAIN         :: Float package ( pkg/flt ).
370  C/\  | | |  C/\  | | |
371  C/\  | | |-MONITOR          :: Monitor package ( pkg/monitor ).  C/\  | | |-MONITOR          :: Monitor package ( pkg/monitor ).
# Line 348  C/\  | | | |-GMREDI_DIAGS        :: GM d Line 378  C/\  | | | |-GMREDI_DIAGS        :: GM d
378  C/\  | | | |-KPP_DO_DIAGS        :: KPP diags. see pkg/kpp  C/\  | | | |-KPP_DO_DIAGS        :: KPP diags. see pkg/kpp
379  C/\  | | | |-SBO_CALC            :: SBO diags. see pkg/sbo  C/\  | | | |-SBO_CALC            :: SBO diags. see pkg/sbo
380  C/\  | | | |-SBO_DIAGS           :: SBO diags. see pkg/sbo  C/\  | | | |-SBO_DIAGS           :: SBO diags. see pkg/sbo
381    C/\  | | | |-GCHEM_DIAGS         :: gchem diags. see pkg/gchem
382  C/\  | | |  C/\  | | |
383  C/\  | | |-WRITE_CHECKPOINT :: Do I/O for restart files.  C/\  | | |-WRITE_CHECKPOINT :: Do I/O for restart files.
384  C/\  | |  C/\  | |
# Line 371  C Line 402  C
402  CEOI  CEOI
403    
404    
405    #include "PACKAGES_CONFIG.h"
406  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
407    
408  CBOP  CBOP
# Line 465  CEOP Line 497  CEOP
497  c--   set default:  c--   set default:
498        lastdiva = .TRUE.        lastdiva = .TRUE.
499    
500    #ifndef DISABLE_DEBUGMODE
501          IF (debugMode) CALL DEBUG_ENTER('THE_MODEL_MAIN',myThid)
502    #endif
503    
504  C--   This timer encompasses the whole code  C--   This timer encompasses the whole code
505        CALL TIMER_START('ALL                    [THE_MODEL_MAIN]',myThid)        CALL TIMER_START('ALL                    [THE_MODEL_MAIN]',myThid)
506    
507    #ifndef DISABLE_DEBUGMODE
508          IF (debugMode) CALL DEBUG_CALL('INITIALISE_FIXED',myThid)
509    #endif
510    
511  C--   Set model configuration (fixed arrays)  C--   Set model configuration (fixed arrays)
512        CALL TIMER_START('INITIALISE_FIXED       [THE_MODEL_MAIN]',myThid)        CALL TIMER_START('INITIALISE_FIXED       [THE_MODEL_MAIN]',myThid)
513        CALL INITIALISE_FIXED( myThid )        CALL INITIALISE_FIXED( myThid )
# Line 476  C--   Set model configuration (fixed arr Line 516  C--   Set model configuration (fixed arr
516        myCurrentTime = startTime        myCurrentTime = startTime
517        myCurrentIter = nIter0        myCurrentIter = nIter0
518    
519  #if ( defined (ALLOW_ADJOINT_RUN) || \  #if ( defined (ALLOW_ADMTLM_RUN) )
520    c
521          CALL TIMER_START('ADMTLM_DRIVER          [THE_MODEL_MAIN]',mythid)
522          CALL ADMTLM_DRIVER ( myThid )
523          CALL TIMER_STOP ('ADMTLM_DRIVER          [THE_MODEL_MAIN]',mythid)
524    c
525    #elif ( defined (ALLOW_ADJOINT_RUN) || \
526        defined (ALLOW_TANGENTLINEAR_RUN) || \        defined (ALLOW_TANGENTLINEAR_RUN) || \
527        defined (ALLOW_GRADIENT_CHECK) || \        defined (ALLOW_GRADIENT_CHECK) || \
528        defined (ALLOW_ECCO_OPTIMIZATION) )        defined (ALLOW_ECCO_OPTIMIZATION) )
# Line 496  C--   Set model configuration (fixed arr Line 542  C--   Set model configuration (fixed arr
542        CALL COST_DEPENDENT_INIT ( mythid )        CALL COST_DEPENDENT_INIT ( mythid )
543        _BARRIER        _BARRIER
544    
545  #if ( defined (ALLOW_ADJOINT_RUN) || \  # if ( defined (ALLOW_TANGENTLINEAR_RUN) )
546        defined (ALLOW_ECCO_OPTIMIZATION) )  c
547  # ifdef ALLOW_DIVIDED_ADJOINT        CALL TIMER_START('G_THE_MAIN_LOOP           [TANGENT RUN]',mythid)
548          CALL G_THE_MAIN_LOOP ( myCurrentTime, myCurrentIter, myThid )
549          CALL TIMER_STOP ('G_THE_MAIN_LOOP           [TANGENT RUN]',mythid)
550    c
551    # elif ( defined (ALLOW_ADJOINT_RUN) || \
552             defined (ALLOW_ECCO_OPTIMIZATION) )
553    c
554    #  ifdef ALLOW_DIVIDED_ADJOINT
555  c-- The following assumes the TAF option '-pure'  c-- The following assumes the TAF option '-pure'
556        inquire( file='costfinal', exist=exst )        inquire( file='costfinal', exist=exst )
557        IF ( .NOT. exst) THEN        IF ( .NOT. exst) THEN
# Line 513  c-- The following assumes the TAF option Line 566  c-- The following assumes the TAF option
566           CALL COST_FINAL_RESTORE ( mythid, lastdiva )           CALL COST_FINAL_RESTORE ( mythid, lastdiva )
567        ENDIF        ENDIF
568  c--  c--
569  # else  #  else /* ALLOW_DIVIDED_ADJOINT undef */
570        CALL TIMER_START('ADTHE_MAIN_LOOP          [ADJOINT RUN]', mythid)        CALL TIMER_START('ADTHE_MAIN_LOOP          [ADJOINT RUN]', mythid)
571        CALL ADTHE_MAIN_LOOP ( mythid )        CALL ADTHE_MAIN_LOOP ( mythid )
572        CALL TIMER_STOP ('ADTHE_MAIN_LOOP          [ADJOINT RUN]', mythid)        CALL TIMER_STOP ('ADTHE_MAIN_LOOP          [ADJOINT RUN]', mythid)
573    #  endif /* ALLOW_DIVIDED_ADJOINT */
574    c
575  # endif  # endif
 c--  
 #elif (defined (ALLOW_TANGENTLINEAR_RUN))  
       CALL TIMER_START('G_THE_MAIN_LOOP           [TANGENT RUN]',mythid)  
       CALL G_THE_MAIN_LOOP ( myCurrentTime, myCurrentIter, myThid )  
       CALL TIMER_STOP ('G_THE_MAIN_LOOP           [TANGENT RUN]',mythid)  
 #endif  
       _BARRIER  
576    
577        _BEGIN_MASTER( mythid )        _BEGIN_MASTER( mythid )
578        IF ( myProcId .eq. 0 .AND. lastdiva ) THEN        IF ( myProcId .eq. 0 .AND. lastdiva ) THEN
# Line 534  c-- Line 582  c--
582        ENDIF        ENDIF
583        _END_MASTER( mythid )        _END_MASTER( mythid )
584        _BARRIER        _BARRIER
585    c
586    
587  #ifdef ALLOW_GRADIENT_CHECK  # ifdef ALLOW_GRADIENT_CHECK
588        IF ( useGrdchk .AND. lastdiva ) THEN        IF ( useGrdchk .AND. lastdiva ) THEN
589           CALL TIMER_START('GRDCHK_MAIN         [THE_MODEL_MAIN]',mythid)           CALL TIMER_START('GRDCHK_MAIN         [THE_MODEL_MAIN]',mythid)
590           CALL GRDCHK_MAIN( mythid )           CALL GRDCHK_MAIN( mythid )
591           CALL TIMER_STOP ('GRDCHK_MAIN         [THE_MODEL_MAIN]',mythid)           CALL TIMER_STOP ('GRDCHK_MAIN         [THE_MODEL_MAIN]',mythid)
592           _BARRIER           _BARRIER
593        ENDIF        ENDIF
594  #endif  # endif
595    
596  #else /* ALLOW_ADJOINT_RUN undef */  #else /* ALL AD-related undef */
597    
598    #ifndef DISABLE_DEBUGMODE
599          IF (debugMode) CALL DEBUG_CALL('THE_MAIN_LOOP',myThid)
600    #endif
601    
602  C--   Call time stepping loop of full model  C--   Call time stepping loop of full model
603        CALL TIMER_START('THE_MAIN_LOOP          [THE_MODEL_MAIN]',myThid)        CALL TIMER_START('THE_MAIN_LOOP          [THE_MODEL_MAIN]',myThid)
604        CALL THE_MAIN_LOOP( myCurrentTime, myCurrentIter, myThid )        CALL THE_MAIN_LOOP( myCurrentTime, myCurrentIter, myThid )
605        CALL TIMER_STOP ('THE_MAIN_LOOP          [THE_MODEL_MAIN]',myThid)        CALL TIMER_STOP ('THE_MAIN_LOOP          [THE_MODEL_MAIN]',myThid)
606    
607  #endif /* ALLOW_ADJOINT_RUN */  #endif /* ALLOW_TANGENTLINEAR_RUN ALLOW_ADJOINT_RUN ALLOW_ADMTLM_RUN */
608    
609  C--   Sea-ice checkpoint (in case the in-loop checkpoint was missed)  C--   Sea-ice checkpoint (in case the in-loop checkpoint was missed)
610  #ifdef ALLOW_SEAICE  #ifdef ALLOW_SEAICE
# Line 574  C--   Write timer statistics Line 627  C--   Write timer statistics
627         CALL COMM_STATS         CALL COMM_STATS
628        ENDIF        ENDIF
629    
630    #ifndef DISABLE_DEBUGMODE
631          IF (debugMode) CALL DEBUG_LEAVE('THE_MODEL_MAIN',myThid)
632    #endif
633    
634        RETURN        RETURN
635        END        END

Legend:
Removed from v.1.53  
changed lines
  Added in v.1.60

  ViewVC Help
Powered by ViewVC 1.1.22