/[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.75 by edhill, Fri Mar 19 03:28:36 2004 UTC revision 1.91 by ce107, Thu Dec 22 01:05:26 2005 UTC
# Line 146  C    | | | |-INI_THETA  :: Set model ini Line 146  C    | | | |-INI_THETA  :: Set model ini
146  C    | | | |-INI_SALT   :: Set model initial salinity field.  C    | | | |-INI_SALT   :: Set model initial salinity field.
147  C    | | | |-INI_PSURF  :: Set model initial free-surface height/pressure.  C    | | | |-INI_PSURF  :: Set model initial free-surface height/pressure.
148  C    | | | |-INI_PRESSURE :: Compute model initial hydrostatic pressure  C    | | | |-INI_PRESSURE :: Compute model initial hydrostatic pressure
149  C    | | |  C    | | | |-READ_CHECKPOINT :: Read the checkpoint
 C    | | |-INI_TR1      :: Set initial tracer 1 distribution.  
150  C    | | |  C    | | |
151  C    | | |-THE_CORRECTION_STEP :: Step forward to next time step.  C    | | |-THE_CORRECTION_STEP :: Step forward to next time step.
152  C    | | | |                   :: Here applied to move restart conditions  C    | | | |                   :: Here applied to move restart conditions
# Line 279  C/\  | | | | |-FREESURF_RESCALE_G :: Re- Line 278  C/\  | | | | |-FREESURF_RESCALE_G :: Re-
278  C/\  | | | |  C/\  | | | |
279  C/\  | | | |-TIMESTEP_TRACER      :: Step tracer field forward in time  C/\  | | | |-TIMESTEP_TRACER      :: Step tracer field forward in time
280  C/\  | | | |  C/\  | | | |
 C/\  | | | |-CALC_GTR1            :: Calculate other tracer(s) tendency terms  
 C/\  | | | | |  
 C/\  | | | | |-GAD_CALC_RHS       :: Generalised advection package  
 C/\  | | | | |                    :: ( see pkg/gad )  
 C/\  | | | | |  
 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/\  | | | |  
281  C/\  | | | |-TIMESTEP_TRACER      :: Step tracer field forward in time  C/\  | | | |-TIMESTEP_TRACER      :: Step tracer field forward in time
282  C/\  | | | |  C/\  | | | |
283  C/\  | | | |-PTRACERS_INTEGRATE   :: Integrate other tracer(s) ( see pkg/ptracers ).  C/\  | | | |-PTRACERS_INTEGRATE   :: Integrate other tracer(s) ( see pkg/ptracers ).
# Line 469  C     == Global variables === Line 459  C     == Global variables ===
459  #include "EEPARAMS.h"  #include "EEPARAMS.h"
460  #include "PARAMS.h"  #include "PARAMS.h"
461  #include "DYNVARS.h"  #include "DYNVARS.h"
 #ifdef ALLOW_NONHYDROSTATIC  
 # include "CG3D.h"  
 #endif  
462    
 #ifdef ALLOW_ECCO_OPTIMIZATION  
 # include "optim.h"  
 #endif  
463  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
464  # include "tamc.h"  # include "tamc.h"
465  #endif  #endif
466    #ifdef ALLOW_CTRL
467    # include "optim.h"
468    #endif
469    
470  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
471  C     == Routine arguments ==  C     == Routine arguments ==
# Line 498  C     myCurrentIter - Iteration counter Line 485  C     myCurrentIter - Iteration counter
485        _RL     myCurrentTime        _RL     myCurrentTime
486        logical  exst        logical  exst
487        logical  lastdiva        logical  lastdiva
 #ifndef ALLOW_ECCO_OPTIMIZATION  
       integer optimcycle  
 #endif  
488  CEOP  CEOP
489  c--   set default:  c--   set default:
 #ifndef ALLOW_ECCO_OPTIMIZATION  
       optimcycle = 0  
 #endif  
490        lastdiva = .TRUE.        lastdiva = .TRUE.
491    
492  #ifdef ALLOW_DEBUG  #ifdef ALLOW_DEBUG
493        IF (debugMode) CALL DEBUG_ENTER('THE_MODEL_MAIN',myThid)        IF (debugMode) CALL DEBUG_ENTER('THE_MODEL_MAIN',myThid)
494  #endif  #endif
495    
496    #ifdef USE_PAPI
497          CALL TIMER_CONTROL('','INIT','THE_MODEL_MAIN',myThid)
498    #endif
499  C--   This timer encompasses the whole code  C--   This timer encompasses the whole code
500        CALL TIMER_START('ALL                    [THE_MODEL_MAIN]',myThid)        CALL TIMER_START('ALL                    [THE_MODEL_MAIN]',myThid)
501    
# Line 529  C--   Set model configuration (fixed arr Line 513  C--   Set model configuration (fixed arr
513    
514  #if ( defined (ALLOW_ADMTLM) )  #if ( defined (ALLOW_ADMTLM) )
515  c  c
516        CALL TIMER_START('ADMTLM_DRIVER          [THE_MODEL_MAIN]',mythid)        STOP 'should never get here; ADMTLM_DSVD calls ADMTLM_DRIVER'
       CALL ADMTLM_DRIVER ( myThid )  
       CALL TIMER_STOP ('ADMTLM_DRIVER          [THE_MODEL_MAIN]',mythid)  
517  c  c
518  #elif ( defined (ALLOW_AUTODIFF))  #elif ( defined (ALLOW_AUTODIFF))
519    
# Line 539  c Line 521  c
521        _BEGIN_MASTER( mythid )        _BEGIN_MASTER( mythid )
522        IF (myProcId .eq. 0) THEN        IF (myProcId .eq. 0) THEN
523           inquire( file='costfinal', exist=exst )           inquire( file='costfinal', exist=exst )
524           IF ( .NOT. exst .AND. niter0 .EQ. 0 ) THEN           IF ( .NOT. exst ) THEN
525              CALL TIMER_START('CTRL_UNPACK      [THE_MODEL_MAIN]',mythid)              IF ( optimcycle.NE.0 ) THEN
526              CALL CTRL_UNPACK( .TRUE. , mythid )                 CALL TIMER_START('CTRL_UNPACK   [THE_MODEL_MAIN]',mythid)
527              CALL TIMER_STOP ('CTRL_UNPACK      [THE_MODEL_MAIN]',mythid)                 CALL CTRL_UNPACK( .TRUE. , mythid )
528              IF ( optimcycle.EQ.0 .AND. mycurrentiter.EQ.niter0 ) THEN                 CALL TIMER_STOP ('CTRL_UNPACK   [THE_MODEL_MAIN]',mythid)
                CALL TIMER_START('CTRL_PACK     [THE_MODEL_MAIN]',mythid)  
                CALL CTRL_PACK( .TRUE. , mythid )  
                CALL TIMER_STOP ('CTRL_PACK     [THE_MODEL_MAIN]',mythid)  
529              ENDIF              ENDIF
530           ENDIF           ENDIF
531        ENDIF        ENDIF
# Line 554  c Line 533  c
533        _BARRIER        _BARRIER
534  # endif /* EXCLUDE_CTRL_PACK */  # endif /* EXCLUDE_CTRL_PACK */
535    
536    # ifdef ALLOW_COST
537        CALL COST_DEPENDENT_INIT ( mythid )        CALL COST_DEPENDENT_INIT ( mythid )
538        _BARRIER        _BARRIER
539    # endif
540    
541  # if ( defined (ALLOW_TANGENTLINEAR_RUN) )  # if ( defined (ALLOW_TANGENTLINEAR_RUN) )
542  c  c
# Line 588  cph      CALL ADTHE_MAIN_LOOP ( mythid ) Line 569  cph      CALL ADTHE_MAIN_LOOP ( mythid )
569        CALL TIMER_STOP ('ADTHE_MAIN_LOOP          [ADJOINT RUN]', mythid)        CALL TIMER_STOP ('ADTHE_MAIN_LOOP          [ADJOINT RUN]', mythid)
570  #  endif /* ALLOW_DIVIDED_ADJOINT */  #  endif /* ALLOW_DIVIDED_ADJOINT */
571  c  c
572    # else /* forward run only within AD setting */
573    
574    #ifdef ALLOW_DEBUG
575          IF (debugMode) CALL DEBUG_CALL('THE_MAIN_LOOP',myThid)
576    #endif
577    C--   Call time stepping loop of full model
578          CALL TIMER_START('THE_MAIN_LOOP          [THE_MODEL_MAIN]',myThid)
579          CALL THE_MAIN_LOOP( myCurrentTime, myCurrentIter, myThid )
580          CALL TIMER_STOP ('THE_MAIN_LOOP          [THE_MODEL_MAIN]',myThid)
581    
582  # endif  # endif
583    
584  # ifndef EXCLUDE_CTRL_PACK  # ifndef EXCLUDE_CTRL_PACK
# Line 596  c Line 587  c
587           CALL TIMER_START('CTRL_PACK           [THE_MODEL_MAIN]',mythid)           CALL TIMER_START('CTRL_PACK           [THE_MODEL_MAIN]',mythid)
588           call CTRL_PACK( .FALSE. , mythid )           call CTRL_PACK( .FALSE. , mythid )
589           CALL TIMER_STOP ('CTRL_PACK           [THE_MODEL_MAIN]',mythid)           CALL TIMER_STOP ('CTRL_PACK           [THE_MODEL_MAIN]',mythid)
590             IF ( optimcycle.EQ.0 .AND. mycurrentiter.EQ.niter0 ) THEN
591                CALL TIMER_START('CTRL_PACK     [THE_MODEL_MAIN]',mythid)
592                CALL CTRL_PACK( .TRUE. , mythid )
593                CALL TIMER_STOP ('CTRL_PACK     [THE_MODEL_MAIN]',mythid)
594             ENDIF
595        ENDIF        ENDIF
596        _END_MASTER( mythid )        _END_MASTER( mythid )
597        _BARRIER        _BARRIER
# Line 616  c Line 612  c
612  #ifdef ALLOW_DEBUG  #ifdef ALLOW_DEBUG
613        IF (debugMode) CALL DEBUG_CALL('THE_MAIN_LOOP',myThid)        IF (debugMode) CALL DEBUG_CALL('THE_MAIN_LOOP',myThid)
614  #endif  #endif
   
615  C--   Call time stepping loop of full model  C--   Call time stepping loop of full model
616        CALL TIMER_START('THE_MAIN_LOOP          [THE_MODEL_MAIN]',myThid)        CALL TIMER_START('THE_MAIN_LOOP          [THE_MODEL_MAIN]',myThid)
617        CALL THE_MAIN_LOOP( myCurrentTime, myCurrentIter, myThid )        CALL THE_MAIN_LOOP( myCurrentTime, myCurrentIter, myThid )
618        CALL TIMER_STOP ('THE_MAIN_LOOP          [THE_MODEL_MAIN]',myThid)        CALL TIMER_STOP ('THE_MAIN_LOOP          [THE_MODEL_MAIN]',myThid)
619    
620  #endif /* ALLOW_TANGENTLINEAR_RUN ALLOW_ADJOINT_RUN ALLOW_ADMTLM_RUN */  #endif /* ALLOW_TANGENTLINEAR_RUN ALLOW_ADJOINT_RUN ALLOW_ADMTLM */
621    
622  C--   Final checkpoint (in case the in-loop checkpoint was missed)  C--   Final checkpoint (in case the in-loop checkpoint was missed)
623        CALL TIMER_START('WRITE_CHECKPOINT       [THE_MODEL_MAIN]',myThid)        CALL TIMER_START('WRITE_CHECKPOINT       [THE_MODEL_MAIN]',myThid)
# Line 634  C--   Final checkpoint (in case the in-l Line 629  C--   Final checkpoint (in case the in-l
629    
630        CALL TIMER_STOP ('ALL                    [THE_MODEL_MAIN]',myThid)        CALL TIMER_STOP ('ALL                    [THE_MODEL_MAIN]',myThid)
631    
632    #ifdef ALLOW_DIAGNOSTICS
633          IF (useDiagnostics) THEN
634    C       Close all diagnostics output files
635            CALL DIAGSTATS_CLOSE_IO( myThid )
636          ENDIF
637    #endif
638    
639  #ifdef ALLOW_MNC  #ifdef ALLOW_MNC
640  C     Close all open NetCDF files        IF (useMNC) THEN
641        _BEGIN_MASTER( mythid )  C       Close all open NetCDF files
642        CALL MNC_FILE_CLOSE_ALL( myThid )          _BEGIN_MASTER( mythid )
643        _END_MASTER( mythid )          CALL MNC_FILE_CLOSE_ALL( myThid )
644            _END_MASTER( mythid )
645          ENDIF
646  #endif  #endif
647    
648  C--   Write timer statistics  C--   Write timer statistics

Legend:
Removed from v.1.75  
changed lines
  Added in v.1.91

  ViewVC Help
Powered by ViewVC 1.1.22