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

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

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

revision 1.9 by mlosch, Thu Jun 7 13:47:07 2007 UTC revision 1.18 by jmc, Tue Mar 20 23:38:03 2012 UTC
# Line 11  C     !INTERFACE: Line 11  C     !INTERFACE:
11        SUBROUTINE DO_STATEVARS_DIAGS( myTime, seqFlag, myIter, myThid )        SUBROUTINE DO_STATEVARS_DIAGS( myTime, seqFlag, myIter, myThid )
12  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
13  C     *==========================================================*  C     *==========================================================*
14  C     | SUBROUTINE DO_STATEVARS_DIAGS                                  C     | SUBROUTINE DO_STATEVARS_DIAGS
15  C     | o Controlling routine for state variables diagnostics  C     | o Controlling routine for state variables diagnostics
16  C     *==========================================================*  C     *==========================================================*
17  C     | Computing diagnostics of the model state (state-variables)  C     | Computing diagnostics of the model state (state-variables)
18  C     | is done at this level ;  C     | is done at this level ;
19  C     | by contrast, other diagnostics (fluxes, tendencies)  C     | by contrast, other diagnostics (fluxes, tendencies)
20  C     | remain within the computation sequence.    C     | remain within the computation sequence.
21  C     *==========================================================*  C     *==========================================================*
22  C     \ev  C     \ev
23    
# Line 36  C             :: =0 called from the begi Line 36  C             :: =0 called from the begi
36  C             :: =1 called from the middle of forward_step  C             :: =1 called from the middle of forward_step
37  C             :: =2 called from the end of forward_step  C             :: =2 called from the end of forward_step
38  C     myIter  :: Iteration number  C     myIter  :: Iteration number
39  C     myThid  :: Thread number for this instance of the routine.  C     myThid  :: my Thread Id number
40        _RL     myTime        _RL     myTime
41        INTEGER seqFlag        INTEGER seqFlag
42        INTEGER myIter        INTEGER myIter
# Line 50  C     selectVars :: select which group o Line 50  C     selectVars :: select which group o
50  C            = 1 :: fill-in diagnostics for tracer   variables only  C            = 1 :: fill-in diagnostics for tracer   variables only
51  C            = 2 :: fill-in diagnostics for momentum variables only  C            = 2 :: fill-in diagnostics for momentum variables only
52  C            = 3 :: fill-in diagnostics for momentum & tracer variables  C            = 3 :: fill-in diagnostics for momentum & tracer variables
53  C            = 4 :: fill-in state variable tendency diagnostics the second time  C            = 4 :: fill-in state variable tendency diagnostics the second time
54  C     bi,bj      :: tile indices  C     bi,bj      :: tile indices
55        INTEGER selectVars        INTEGER selectVars
56    #if defined(ALLOW_THSICE) || defined(ALLOW_LAND)
57        INTEGER bi, bj        INTEGER bi, bj
58    #endif
59    
60  C--   Fill-in Diagnostics pkg storage array (for state-variables)  C--   Fill-in Diagnostics pkg storage array (for state-variables)
61        IF ( usediagnostics ) THEN        IF ( usediagnostics ) THEN
62    
63  C-    select which group of state-var diagnostics to fill-in,  C-    select which group of state-var diagnostics to fill-in,
64  C      depending on: where this S/R is called from (seqFlag)  C      depending on: where this S/R is called from (seqFlag)
65  C                    and stagger/synchronous TimeStep  C                    and stagger/synchronous TimeStep
66          selectVars = 0          selectVars = 0
67          IF ( staggerTimeStep ) THEN          IF ( staggerTimeStep ) THEN
68            IF ( seqFlag.EQ.0 ) selectVars = 2            IF ( seqFlag.EQ.0 ) selectVars = 2
69            IF ( seqFlag.EQ.1 ) selectVars = 1            IF ( seqFlag.EQ.1 ) selectVars = 1
70          ELSE          ELSE
71            IF ( seqFlag.EQ.0 ) selectVars = 3            IF ( seqFlag.EQ.0 ) selectVars = 3
72          ENDIF          ENDIF
73          IF ( seqFlag.EQ.2 ) selectVars = 4          IF ( seqFlag.EQ.2 ) selectVars = 4
74          CALL DIAGNOSTICS_FILL_STATE(selectVars, myThid)          CALL DIAGNOSTICS_FILL_STATE( selectVars, myIter, myThid )
75    
76    #ifdef ALLOW_GENERIC_ADVDIFF
77            IF ( seqFlag.EQ.0 .AND. useGAD ) THEN
78              CALL GAD_DIAGNOSTICS_STATE( myTime, myIter, myThid )
79            ENDIF
80    #endif /* ALLOW_GENERIC_ADVDIFF */
81    
82  #ifdef ALLOW_PTRACERS  #ifdef ALLOW_PTRACERS
83          IF ( (selectVars.EQ.1 .OR. selectVars.EQ.3)          IF ( (selectVars.EQ.1 .OR. selectVars.EQ.3)
84       &      .AND. usePTRACERS ) THEN       &      .AND. usePTRACERS ) THEN
85            CALL PTRACERS_DIAGNOSTICS_FILL(myThid)            CALL PTRACERS_DIAGNOSTICS_STATE( myTime, myIter, myThid )
86          ENDIF          ENDIF
87  #endif  #endif /* ALLOW_PTRACERS */
88    
89    #ifdef ALLOW_GMREDI
90           IF ( seqFlag.EQ.2 .AND. useGMRedi ) THEN
91             CALL GMREDI_DIAGNOSTICS_IMPL( myTime, myIter, myThid )
92           ENDIF
93    #endif /* ALLOW_GMREDI */
94    
95    #ifdef ALLOW_BBL
96           IF ( seqFlag.EQ.0 .AND. useBBL ) THEN
97             CALL BBL_DIAGNOSTICS_STATE( myTime, myIter, myThid )
98           ENDIF
99    #endif /* ALLOW_BBL */
100    
101    #ifdef ALLOW_FRAZIL
102           IF ( seqFlag.EQ.0 .AND. useFRAZIL ) THEN
103            CALL FRAZIL_DIAGNOSTICS_STATE( myTime, myIter, myThid )
104           ENDIF
105    #endif /* ALLOW_FRAZIL */
106    
107  #ifdef ALLOW_SEAICE  #ifdef ALLOW_SEAICE
108         IF ( seqFlag.EQ.0 .AND. useSEAICE ) THEN         IF ( seqFlag.EQ.0 .AND. useSEAICE ) THEN
109          CALL SEAICE_DIAGNOSTICS_FILL( myTime, myIter, myThid )          CALL SEAICE_DIAGNOSTICS_STATE( myTime, myIter, myThid )
110         ENDIF         ENDIF
111  #endif /* ALLOW_SEAICE */  #endif /* ALLOW_SEAICE */
112    
# Line 88  C                    and stagger/synchro Line 114  C                    and stagger/synchro
114         IF ( seqFlag.EQ.0 .AND. useThSIce ) THEN         IF ( seqFlag.EQ.0 .AND. useThSIce ) THEN
115          DO bj=myByLo(myThid),myByHi(myThid)          DO bj=myByLo(myThid),myByHi(myThid)
116           DO bi=myBxLo(myThid),myBxHi(myThid)           DO bi=myBxLo(myThid),myBxHi(myThid)
117            CALL THSICE_DIAGNOSTICS_FILL( myTime,myIter, bi,bj, myThid )            CALL THSICE_DIAGNOSTICS_STATE( myTime,myIter,bi,bj,myThid )
118           ENDDO           ENDDO
119          ENDDO          ENDDO
120         ENDIF         ENDIF
# Line 98  C                    and stagger/synchro Line 124  C                    and stagger/synchro
124         IF ( seqFlag.EQ.0 .AND. useLand ) THEN         IF ( seqFlag.EQ.0 .AND. useLand ) THEN
125          DO bj=myByLo(myThid),myByHi(myThid)          DO bj=myByLo(myThid),myByHi(myThid)
126           DO bi=myBxLo(myThid),myBxHi(myThid)           DO bi=myBxLo(myThid),myBxHi(myThid)
127            CALL LAND_DIAGNOSTICS_FILL( myTime,myIter, bi,bj, myThid )            CALL LAND_DIAGNOSTICS_STATE( myTime,myIter, bi,bj, myThid )
128           ENDDO           ENDDO
129          ENDDO          ENDDO
130         ENDIF         ENDIF
131  #endif /* ALLOW_LAND */  #endif /* ALLOW_LAND */
132    
133    #ifdef ALLOW_MYPACKAGE
134           IF ( seqFlag.EQ.0 .AND. useMYPACKAGE ) THEN
135             CALL MYPACKAGE_DIAGNOSTICS_STATE( myTime, myIter, myThid )
136           ENDIF
137    #endif /* ALLOW_MYPACKAGE */
138    
139        ENDIf        ENDIf
140  #endif /* ALLOW_DIAGNOSTICS */  #endif /* ALLOW_DIAGNOSTICS */
141    

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.18

  ViewVC Help
Powered by ViewVC 1.1.22