/[MITgcm]/MITgcm_contrib/dgoldberg/code_ad_flowline/do_statevars_diags.F
ViewVC logotype

Contents of /MITgcm_contrib/dgoldberg/code_ad_flowline/do_statevars_diags.F

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


Revision 1.1 - (show annotations) (download)
Fri Jul 20 13:42:08 2012 UTC (11 years, 10 months ago) by heimbach
Branch: MAIN
CVS Tags: HEAD
Add a complete config. directory

1 C $Header: /u/gcmpack/MITgcm/model/src/do_statevars_diags.F,v 1.16 2011/11/30 21:00:22 jmc Exp $
2 C $Name: $
3
4 #include "PACKAGES_CONFIG.h"
5 #include "CPP_OPTIONS.h"
6
7
8 CBOP
9 C !ROUTINE: DO_STATEVARS_DIAGS
10 C !INTERFACE:
11 SUBROUTINE DO_STATEVARS_DIAGS( myTime, seqFlag, myIter, myThid )
12 C !DESCRIPTION: \bv
13 C *==========================================================*
14 C | SUBROUTINE DO_STATEVARS_DIAGS
15 C | o Controlling routine for state variables diagnostics
16 C *==========================================================*
17 C | Computing diagnostics of the model state (state-variables)
18 C | is done at this level ;
19 C | by contrast, other diagnostics (fluxes, tendencies)
20 C | remain within the computation sequence.
21 C *==========================================================*
22 C \ev
23
24 C !USES:
25 IMPLICIT NONE
26 C == Global variables ===
27 #include "SIZE.h"
28 #include "EEPARAMS.h"
29 #include "PARAMS.h"
30
31 C !INPUT/OUTPUT PARAMETERS:
32 C == Routine arguments ==
33 C myTime :: Current time of simulation ( s )
34 C seqFlag :: flag that indicate where this S/R is called from:
35 C :: =0 called from the beginning of forward_step
36 C :: =1 called from the middle of forward_step
37 C :: =2 called from the end of forward_step
38 C myIter :: Iteration number
39 C myThid :: my Thread Id number
40 _RL myTime
41 INTEGER seqFlag
42 INTEGER myIter
43 INTEGER myThid
44 CEOP
45
46 #ifdef ALLOW_DIAGNOSTICS
47 C !LOCAL VARIABLES:
48 C == Local variables ==
49 C selectVars :: select which group of dianostics variables to fill-in
50 C = 1 :: fill-in diagnostics for tracer variables only
51 C = 2 :: fill-in diagnostics for momentum variables only
52 C = 3 :: fill-in diagnostics for momentum & tracer variables
53 C = 4 :: fill-in state variable tendency diagnostics the second time
54 C bi,bj :: tile indices
55 INTEGER selectVars
56 #if defined(ALLOW_THSICE) || defined(ALLOW_LAND)
57 INTEGER bi, bj
58 #endif
59
60 C-- Fill-in Diagnostics pkg storage array (for state-variables)
61 IF ( usediagnostics ) THEN
62
63 C- select which group of state-var diagnostics to fill-in,
64 C depending on: where this S/R is called from (seqFlag)
65 C and stagger/synchronous TimeStep
66 selectVars = 0
67 IF ( staggerTimeStep ) THEN
68 IF ( seqFlag.EQ.0 ) selectVars = 2
69 IF ( seqFlag.EQ.1 ) selectVars = 1
70 ELSE
71 IF ( seqFlag.EQ.0 ) selectVars = 3
72 ENDIF
73 IF ( seqFlag.EQ.2 ) selectVars = 4
74 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
83 IF ( (selectVars.EQ.1 .OR. selectVars.EQ.3)
84 & .AND. usePTRACERS ) THEN
85 CALL PTRACERS_DIAGNOSTICS_STATE( myTime, myIter, myThid )
86 ENDIF
87 #endif /* ALLOW_PTRACERS */
88
89 #ifdef ALLOW_BBL
90 IF ( seqFlag.EQ.0 .AND. useBBL ) THEN
91 CALL BBL_DIAGNOSTICS_STATE( myTime, myIter, myThid )
92 ENDIF
93 #endif /* ALLOW_BBL */
94
95 #ifdef ALLOW_SEAICE
96 IF ( seqFlag.EQ.0 .AND. useSEAICE ) THEN
97 CALL SEAICE_DIAGNOSTICS_STATE( myTime, myIter, myThid )
98 ENDIF
99 #endif /* ALLOW_SEAICE */
100
101 #ifdef ALLOW_STREAMICE
102 IF ( seqFlag.EQ.2 .AND. useStreamIce ) THEN
103 CALL STREAMICE_DIAGNOSTICS_STATE( myTime, myIter, myThid )
104 ENDIF
105 #endif /* ALLOW_SEAICE */
106
107
108 #ifdef ALLOW_THSICE
109 IF ( seqFlag.EQ.0 .AND. useThSIce ) THEN
110 DO bj=myByLo(myThid),myByHi(myThid)
111 DO bi=myBxLo(myThid),myBxHi(myThid)
112 CALL THSICE_DIAGNOSTICS_STATE( myTime,myIter,bi,bj,myThid )
113 ENDDO
114 ENDDO
115 ENDIF
116 #endif /* ALLOW_THSICE */
117
118 #ifdef ALLOW_LAND
119 IF ( seqFlag.EQ.0 .AND. useLand ) THEN
120 DO bj=myByLo(myThid),myByHi(myThid)
121 DO bi=myBxLo(myThid),myBxHi(myThid)
122 CALL LAND_DIAGNOSTICS_STATE( myTime,myIter, bi,bj, myThid )
123 ENDDO
124 ENDDO
125 ENDIF
126 #endif /* ALLOW_LAND */
127
128 #ifdef ALLOW_MYPACKAGE
129 IF ( seqFlag.EQ.0 .AND. useMYPACKAGE ) THEN
130 CALL MYPACKAGE_DIAGNOSTICS_STATE( myTime, myIter, myThid )
131 ENDIF
132 #endif /* ALLOW_MYPACKAGE */
133
134 ENDIf
135 #endif /* ALLOW_DIAGNOSTICS */
136
137 RETURN
138 END

  ViewVC Help
Powered by ViewVC 1.1.22