/[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.114 by dgoldberg, Tue Sep 17 17:54:47 2013 UTC revision 1.115 by jmc, Fri Nov 22 01:06:09 2013 UTC
# Line 198  CEOI Line 198  CEOI
198  # include "STREAMICE_OPTIONS.h"  # include "STREAMICE_OPTIONS.h"
199  #endif  #endif
200    
   
201  CBOP  CBOP
202  C     !ROUTINE: THE_MODEL_MAIN  C     !ROUTINE: THE_MODEL_MAIN
203    
# Line 283  C     myTime :: Time counter for this th Line 282  C     myTime :: Time counter for this th
282  C     myIter :: Iteration counter for this thread  C     myIter :: Iteration counter for this thread
283        INTEGER myIter        INTEGER myIter
284        _RL     myTime        _RL     myTime
285        LOGICAL  exst        LOGICAL exst
286        LOGICAL  lastdiva        LOGICAL lastdiva
   
   
287  CEOP  CEOP
288  c--   set default:  
289    C--   set default:
290        exst     = .TRUE.        exst     = .TRUE.
291        lastdiva = .TRUE.        lastdiva = .TRUE.
292    
293  #ifdef ALLOW_PETSC  #ifdef ALLOW_PETSC
294        call streamice_initialize_petsc        call streamice_initialize_petsc
295  #endif  #endif
296    
297  #ifdef ALLOW_DEBUG  #ifdef ALLOW_DEBUG
# Line 318  C--   Set model configuration (fixed arr Line 316  C--   Set model configuration (fixed arr
316        myIter = nIter0        myIter = nIter0
317    
318  #if ( defined (ALLOW_ADMTLM) )  #if ( defined (ALLOW_ADMTLM) )
319  c  
320        STOP 'should never get here; ADMTLM_DSVD calls ADMTLM_DRIVER'        STOP 'should never get here; ADMTLM_DSVD calls ADMTLM_DRIVER'
321  c  
322  #elif ( defined (ALLOW_AUTODIFF))  #elif ( defined (ALLOW_AUTODIFF))
323    
324  # ifndef EXCLUDE_CTRL_PACK  # ifndef EXCLUDE_CTRL_PACK
# Line 337  c Line 335  c
335    
336  # ifdef ALLOW_COST  # ifdef ALLOW_COST
337        CALL COST_DEPENDENT_INIT ( myThid )        CALL COST_DEPENDENT_INIT ( myThid )
       _BARRIER  
338  # endif  # endif
339    
340  # if ( defined (ALLOW_TANGENTLINEAR_RUN) )  # if ( defined (ALLOW_TANGENTLINEAR_RUN) )
341  c  
342  #  ifdef ALLOW_DEBUG  #  ifdef ALLOW_DEBUG
343        IF (debugMode) CALL DEBUG_CALL('G_THE_MAIN_LOOP',myThid)        IF (debugMode) CALL DEBUG_CALL('G_THE_MAIN_LOOP',myThid)
344  #  endif  #  endif
345        CALL TIMER_START('G_THE_MAIN_LOOP           [TANGENT RUN]',myThid)        CALL TIMER_START('G_THE_MAIN_LOOP           [TANGENT RUN]',myThid)
346        CALL G_THE_MAIN_LOOP ( myTime, myIter, myThid )        CALL G_THE_MAIN_LOOP ( myTime, myIter, myThid )
347        CALL TIMER_STOP ('G_THE_MAIN_LOOP           [TANGENT RUN]',myThid)        CALL TIMER_STOP ('G_THE_MAIN_LOOP           [TANGENT RUN]',myThid)
348  c  
349  # elif ( defined (ALLOW_ADJOINT_RUN) || \  # elif ( defined (ALLOW_ADJOINT_RUN) || \
350           defined (ALLOW_ECCO_OPTIMIZATION) )           defined (ALLOW_ECCO_OPTIMIZATION) )
351  c  
352  #  ifdef ALLOW_DIVIDED_ADJOINT  #  ifdef ALLOW_DIVIDED_ADJOINT
353  c-- The following assumes the TAF option '-pure'  C-- The following assumes the TAF option '-pure'
354        inquire( file='costfinal', exist=exst )        inquire( file='costfinal', exist=exst )
355        IF ( .NOT. exst) THEN        IF ( .NOT. exst) THEN
356  #   ifdef ALLOW_DEBUG  #   ifdef ALLOW_DEBUG
# Line 372  c-- The following assumes the TAF option Line 369  c-- The following assumes the TAF option
369           CALL TIMER_STOP ('ADTHE_MAIN_LOOP       [ADJOINT RUN]', myThid)           CALL TIMER_STOP ('ADTHE_MAIN_LOOP       [ADJOINT RUN]', myThid)
370           CALL COST_FINAL_RESTORE ( myThid, lastdiva )           CALL COST_FINAL_RESTORE ( myThid, lastdiva )
371        ENDIF        ENDIF
372  c--  
373  #  else /* ALLOW_DIVIDED_ADJOINT undef */  #  else /* ALLOW_DIVIDED_ADJOINT undef */
374  #   ifdef ALLOW_DEBUG  #   ifdef ALLOW_DEBUG
375        IF (debugMode) CALL DEBUG_CALL('ADTHE_MAIN_LOOP',myThid)        IF (debugMode) CALL DEBUG_CALL('ADTHE_MAIN_LOOP',myThid)
# Line 381  c-- Line 378  c--
378        CALL ADTHE_MAIN_LOOP ( myThid )        CALL ADTHE_MAIN_LOOP ( myThid )
379        CALL TIMER_STOP ('ADTHE_MAIN_LOOP          [ADJOINT RUN]', myThid)        CALL TIMER_STOP ('ADTHE_MAIN_LOOP          [ADJOINT RUN]', myThid)
380  #  endif /* ALLOW_DIVIDED_ADJOINT */  #  endif /* ALLOW_DIVIDED_ADJOINT */
381  c  
382  # else /* forward run only within AD setting */  # else /* forward run only within AD setting */
383    
384  #  ifdef ALLOW_DEBUG  #  ifdef ALLOW_DEBUG
385        IF (debugMode) CALL DEBUG_CALL('THE_MAIN_LOOP',myThid)        IF (debugMode) CALL DEBUG_CALL('THE_MAIN_LOOP',myThid)
386  #  endif  #  endif
387  C--   Call time stepping loop of full model  C--   Call time stepping loop of full model
 #  ifdef ALLOW_DEBUG  
       IF (debugMode) CALL DEBUG_CALL('THE_MAIN_LOOP',myThid)  
 #  endif  
388        CALL TIMER_START('THE_MAIN_LOOP          [THE_MODEL_MAIN]',myThid)        CALL TIMER_START('THE_MAIN_LOOP          [THE_MODEL_MAIN]',myThid)
389        CALL THE_MAIN_LOOP( myTime, myIter, myThid )        CALL THE_MAIN_LOOP( myTime, myIter, myThid )
390        CALL TIMER_STOP ('THE_MAIN_LOOP          [THE_MODEL_MAIN]',myThid)        CALL TIMER_STOP ('THE_MAIN_LOOP          [THE_MODEL_MAIN]',myThid)
# Line 416  C--   Call time stepping loop of full mo Line 410  C--   Call time stepping loop of full mo
410           CALL TIMER_START('GRDCHK_MAIN         [THE_MODEL_MAIN]',myThid)           CALL TIMER_START('GRDCHK_MAIN         [THE_MODEL_MAIN]',myThid)
411           CALL GRDCHK_MAIN( myThid )           CALL GRDCHK_MAIN( myThid )
412           CALL TIMER_STOP ('GRDCHK_MAIN         [THE_MODEL_MAIN]',myThid)           CALL TIMER_STOP ('GRDCHK_MAIN         [THE_MODEL_MAIN]',myThid)
          _BARRIER  
413        ENDIF        ENDIF
414  # endif  # endif
415    
# Line 433  C--   Call time stepping loop of full mo Line 426  C--   Call time stepping loop of full mo
426  #endif /* ALLOW_TANGENTLINEAR_RUN ALLOW_ADJOINT_RUN ALLOW_ADMTLM */  #endif /* ALLOW_TANGENTLINEAR_RUN ALLOW_ADJOINT_RUN ALLOW_ADMTLM */
427    
428  #ifdef ALLOW_PETSC  #ifdef ALLOW_PETSC
429        call streamice_finalize_petsc        call streamice_finalize_petsc
430  #endif  #endif
431    
432  #ifdef ALLOW_MNC  #ifdef ALLOW_MNC

Legend:
Removed from v.1.114  
changed lines
  Added in v.1.115

  ViewVC Help
Powered by ViewVC 1.1.22