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

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

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

revision 1.100 by jmc, Mon Jul 26 20:18:14 2004 UTC revision 1.101 by stephd, Wed Sep 1 16:25:06 2004 UTC
# Line 4  C $Name$ Line 4  C $Name$
4  #include "PACKAGES_CONFIG.h"  #include "PACKAGES_CONFIG.h"
5  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
6    
 cswdptr -- add --  
7  #ifdef ALLOW_GCHEM  #ifdef ALLOW_GCHEM
8  # include "GCHEM_OPTIONS.h"  # include "GCHEM_OPTIONS.h"
9  #endif  #endif
10  cswdptr -- end add ---  #ifdef ALLOW_OFFLINE
11    # include "OFFLINE_OPTIONS.h"
12    #endif
13    
14    
15  CBOP  CBOP
16  C     !ROUTINE: FORWARD_STEP  C     !ROUTINE: FORWARD_STEP
# Line 216  CADJ STORE ptracer  = comlev1, key = ike Line 218  CADJ STORE ptracer  = comlev1, key = ike
218  # endif  # endif
219  #endif  #endif
220    
221    #ifdef ALLOW_OFFLINE
222            call OFFLINE_FIELDS_LOAD( myTime, myIter, myThid )
223    #endif
224    
225  #ifdef ALLOW_PTRACERS  #ifdef ALLOW_PTRACERS
226  # ifdef ALLOW_GCHEM  # ifdef ALLOW_GCHEM
227           CALL GCHEM_FIELDS_LOAD( mytime, myiter, mythid )           CALL GCHEM_FIELDS_LOAD( mytime, myiter, mythid )
# Line 255  C--     Step forward fields and calculat Line 261  C--     Step forward fields and calculat
261         CALL DO_ATMOSPHERIC_PHYS( myTime, myIter, myThid )         CALL DO_ATMOSPHERIC_PHYS( myTime, myIter, myThid )
262         CALL TIMER_STOP ('DO_ATMOSPHERIC_PHYS [FORWARD_STEP]',mythid)         CALL TIMER_STOP ('DO_ATMOSPHERIC_PHYS [FORWARD_STEP]',mythid)
263    
264    #ifndef ALLOW_OFFLINE
265  #ifdef ALLOW_DEBUG  #ifdef ALLOW_DEBUG
266         IF ( debugLevel .GE. debLevB )         IF ( debugLevel .GE. debLevB )
267       &    CALL DEBUG_CALL('DO_OCEANIC_PHYS',myThid)       &    CALL DEBUG_CALL('DO_OCEANIC_PHYS',myThid)
# Line 262  C--     Step forward fields and calculat Line 269  C--     Step forward fields and calculat
269         CALL TIMER_START('DO_OCEANIC_PHYS     [FORWARD_STEP]',mythid)         CALL TIMER_START('DO_OCEANIC_PHYS     [FORWARD_STEP]',mythid)
270         CALL DO_OCEANIC_PHYS( myTime, myIter, myThid )         CALL DO_OCEANIC_PHYS( myTime, myIter, myThid )
271         CALL TIMER_STOP ('DO_OCEANIC_PHYS     [FORWARD_STEP]',mythid)         CALL TIMER_STOP ('DO_OCEANIC_PHYS     [FORWARD_STEP]',mythid)
272    #endif
273    
274        IF ( .NOT.staggerTimeStep ) THEN        IF ( .NOT.staggerTimeStep ) THEN
275  #ifdef ALLOW_DEBUG  #ifdef ALLOW_DEBUG
# Line 292  C      Read in coupling data that I impo Line 300  C      Read in coupling data that I impo
300  #endif /* COMPONENT_MODULE */  #endif /* COMPONENT_MODULE */
301    
302  C--   Step forward fields and calculate time tendency terms.  C--   Step forward fields and calculate time tendency terms.
303    #ifndef ALLOW_OFFLINE
304  #ifndef ALLOW_AUTODIFF_TAMC  #ifndef ALLOW_AUTODIFF_TAMC
305        IF ( momStepping ) THEN        IF ( momStepping ) THEN
306  #endif  #endif
# Line 305  C--   Step forward fields and calculate Line 314  C--   Step forward fields and calculate
314  #ifndef ALLOW_AUTODIFF_TAMC  #ifndef ALLOW_AUTODIFF_TAMC
315        ENDIF        ENDIF
316  #endif  #endif
317    #endif
318    
319  #ifdef ALLOW_NONHYDROSTATIC  #ifdef ALLOW_NONHYDROSTATIC
320  C--   Step forward W field in N-H algorithm  C--   Step forward W field in N-H algorithm
# Line 375  C      => Filtering of uVel,vVel is nece Line 385  C      => Filtering of uVel,vVel is nece
385  C--   Solve elliptic equation(s).  C--   Solve elliptic equation(s).
386  C     Two-dimensional only for conventional hydrostatic or  C     Two-dimensional only for conventional hydrostatic or
387  C     three-dimensional for non-hydrostatic and/or IGW scheme.  C     three-dimensional for non-hydrostatic and/or IGW scheme.
388    #ifndef ALLOW_OFFLINE
389        IF ( momStepping ) THEN        IF ( momStepping ) THEN
390          CALL TIMER_START('SOLVE_FOR_PRESSURE  [FORWARD_STEP]',myThid)          CALL TIMER_START('SOLVE_FOR_PRESSURE  [FORWARD_STEP]',myThid)
391          CALL SOLVE_FOR_PRESSURE(myTime, myIter, myThid)          CALL SOLVE_FOR_PRESSURE(myTime, myIter, myThid)
392          CALL TIMER_STOP ('SOLVE_FOR_PRESSURE  [FORWARD_STEP]',myThid)          CALL TIMER_STOP ('SOLVE_FOR_PRESSURE  [FORWARD_STEP]',myThid)
393        ENDIF        ENDIF
394    #endif
395    
396  C--   Correct divergence in flow field and cycle time-stepping momentum  C--   Correct divergence in flow field and cycle time-stepping momentum
397  c     IF ( momStepping ) THEN  c     IF ( momStepping ) THEN
398    #ifndef ALLOW_OFFLINE
399          CALL TIMER_START('UV_CORRECTION_STEP  [FORWARD_STEP]',myThid)          CALL TIMER_START('UV_CORRECTION_STEP  [FORWARD_STEP]',myThid)
400          CALL MOMENTUM_CORRECTION_STEP(myTime, myIter, myThid)          CALL MOMENTUM_CORRECTION_STEP(myTime, myIter, myThid)
401          CALL TIMER_STOP ('UV_CORRECTION_STEP  [FORWARD_STEP]',myThid)          CALL TIMER_STOP ('UV_CORRECTION_STEP  [FORWARD_STEP]',myThid)
402    #endif
403  c     ENDIF  c     ENDIF
404    
405  #ifdef EXACT_CONSERV  #ifdef EXACT_CONSERV
# Line 497  C--   State-variables statistics (time-a Line 511  C--   State-variables statistics (time-a
511        CALL DO_STATEVARS_DIAGS( myTime, myIter, myThid )        CALL DO_STATEVARS_DIAGS( myTime, myIter, myThid )
512        CALL TIMER_STOP ('DO_STATEVARS_DIAGS  [FORWARD_STEP]',myThid)        CALL TIMER_STOP ('DO_STATEVARS_DIAGS  [FORWARD_STEP]',myThid)
513    
514    #ifndef ALLOW_OFFLINE
515  #ifdef ALLOW_MONITOR  #ifdef ALLOW_MONITOR
516  C--   Check status of solution (statistics, cfl, etc...)  C--   Check status of solution (statistics, cfl, etc...)
517        CALL TIMER_START('MONITOR             [FORWARD_STEP]',myThid)        CALL TIMER_START('MONITOR             [FORWARD_STEP]',myThid)
518        CALL MONITOR( myIter, myTime, myThid )        CALL MONITOR( myIter, myTime, myThid )
519        CALL TIMER_STOP ('MONITOR             [FORWARD_STEP]',myThid)        CALL TIMER_STOP ('MONITOR             [FORWARD_STEP]',myThid)
520  #endif /* ALLOW_MONITOR */  #endif /* ALLOW_MONITOR */
521    #endif
522    
523  C--   Do IO if needed.  C--   Do IO if needed.
524    #ifdef ALLOW_OFFLINE
525          CALL TIMER_START('OFFLINE_MODEL_IO     [FORWARD_STEP]',myThid)
526          CALL OFFLINE_MODEL_IO( myTime, myIter, myThid )
527          CALL TIMER_STOP ('OFFLINE_MODEL_IO     [FORWARD_STEP]',myThid)
528    #else
529        CALL TIMER_START('DO_THE_MODEL_IO     [FORWARD_STEP]',myThid)        CALL TIMER_START('DO_THE_MODEL_IO     [FORWARD_STEP]',myThid)
530        CALL DO_THE_MODEL_IO( myTime, myIter, myThid )        CALL DO_THE_MODEL_IO( myTime, myIter, myThid )
531        CALL TIMER_STOP ('DO_THE_MODEL_IO     [FORWARD_STEP]',myThid)        CALL TIMER_STOP ('DO_THE_MODEL_IO     [FORWARD_STEP]',myThid)
532    #endif
533    
534  C--   Save state for restarts  C--   Save state for restarts
535        CALL TIMER_START('WRITE_CHECKPOINT    [FORWARD_STEP]',myThid)        CALL TIMER_START('WRITE_CHECKPOINT    [FORWARD_STEP]',myThid)
536        CALL PACKAGES_WRITE_PICKUP(        CALL PACKAGES_WRITE_PICKUP(
537       I               .FALSE., myTime, myIter, myThid )       I               .FALSE., myTime, myIter, myThid )
538    #ifndef ALLOW_OFFLINE
539        CALL WRITE_CHECKPOINT(        CALL WRITE_CHECKPOINT(
540       I               .FALSE., myTime, myIter, myThid )         I               .FALSE., myTime, myIter, myThid )  
541    #endif
542        CALL TIMER_STOP ('WRITE_CHECKPOINT    [FORWARD_STEP]',myThid)        CALL TIMER_STOP ('WRITE_CHECKPOINT    [FORWARD_STEP]',myThid)
543    
544  #ifdef ALLOW_DEBUG  #ifdef ALLOW_DEBUG

Legend:
Removed from v.1.100  
changed lines
  Added in v.1.101

  ViewVC Help
Powered by ViewVC 1.1.22