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

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

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


Revision 1.13 - (show annotations) (download)
Tue Feb 12 20:27:00 2008 UTC (16 years, 3 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint60, checkpoint61, checkpoint59q, checkpoint59p, checkpoint59r, checkpoint59o, checkpoint61f, checkpoint61g, checkpoint61d, checkpoint61e, checkpoint61b, checkpoint61c, checkpoint61a, checkpoint61n, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61h, checkpoint61i, checkpoint61r, checkpoint61p, checkpoint61q
Changes since 1.12: +7 -1 lines
SOM: add diagnostics for 1srt & 2nd Order moments and sub-grid variance.

1 C $Header: /u/gcmpack/MITgcm/model/src/do_statevars_diags.F,v 1.12 2008/01/27 20:55:43 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 :: Thread number for this instance of the routine.
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, 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( myThid )
86 ENDIF
87 #endif
88
89 #ifdef ALLOW_SEAICE
90 IF ( seqFlag.EQ.0 .AND. useSEAICE ) THEN
91 CALL SEAICE_DIAGNOSTICS_STATE( myTime, myIter, myThid )
92 ENDIF
93 #endif /* ALLOW_SEAICE */
94
95 #ifdef ALLOW_THSICE
96 IF ( seqFlag.EQ.0 .AND. useThSIce ) THEN
97 DO bj=myByLo(myThid),myByHi(myThid)
98 DO bi=myBxLo(myThid),myBxHi(myThid)
99 CALL THSICE_DIAGNOSTICS_STATE( myTime,myIter,bi,bj,myThid )
100 ENDDO
101 ENDDO
102 ENDIF
103 #endif /* ALLOW_THSICE */
104
105 #ifdef ALLOW_LAND
106 IF ( seqFlag.EQ.0 .AND. useLand ) THEN
107 DO bj=myByLo(myThid),myByHi(myThid)
108 DO bi=myBxLo(myThid),myBxHi(myThid)
109 CALL LAND_DIAGNOSTICS_STATE( myTime,myIter, bi,bj, myThid )
110 ENDDO
111 ENDDO
112 ENDIF
113 #endif /* ALLOW_LAND */
114
115 #ifdef ALLOW_MYPACKAGE
116 IF ( seqFlag.EQ.0 .AND. useMYPACKAGE ) THEN
117 CALL MYPACKAGE_DIAGNOSTICS_STATE( myTime, myIter, myThid )
118 ENDIF
119 #endif /* ALLOW_MYPACKAGE */
120
121 ENDIf
122 #endif /* ALLOW_DIAGNOSTICS */
123
124 RETURN
125 END

  ViewVC Help
Powered by ViewVC 1.1.22