/[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.10 - (show annotations) (download)
Thu Jun 21 00:29:33 2007 UTC (16 years, 11 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint59e, checkpoint59d, checkpoint59f
Changes since 1.9: +15 -15 lines
new S/R name: {PKG}_DIAGNOSTICS_STATE which fill diagnostics array
 for {PKG} state variables , and called from DO_STATEVARS_DIAGS.
(keep {PKG}_DIAGNOSTICS_FILL  for non-state variables diagnostics)

1 C $Header: /u/gcmpack/MITgcm/model/src/do_statevars_diags.F,v 1.9 2007/06/07 13:47:07 mlosch 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 INTEGER bi, bj
57
58 C-- Fill-in Diagnostics pkg storage array (for state-variables)
59 IF ( usediagnostics ) THEN
60
61 C- select which group of state-var diagnostics to fill-in,
62 C depending on: where this S/R is called from (seqFlag)
63 C and stagger/synchronous TimeStep
64 selectVars = 0
65 IF ( staggerTimeStep ) THEN
66 IF ( seqFlag.EQ.0 ) selectVars = 2
67 IF ( seqFlag.EQ.1 ) selectVars = 1
68 ELSE
69 IF ( seqFlag.EQ.0 ) selectVars = 3
70 ENDIF
71 IF ( seqFlag.EQ.2 ) selectVars = 4
72 CALL DIAGNOSTICS_FILL_STATE(selectVars, myThid)
73
74 #ifdef ALLOW_PTRACERS
75 IF ( (selectVars.EQ.1 .OR. selectVars.EQ.3)
76 & .AND. usePTRACERS ) THEN
77 CALL PTRACERS_DIAGNOSTICS_STATE( myThid )
78 ENDIF
79 #endif
80
81 #ifdef ALLOW_SEAICE
82 IF ( seqFlag.EQ.0 .AND. useSEAICE ) THEN
83 CALL SEAICE_DIAGNOSTICS_STATE( myTime, myIter, myThid )
84 ENDIF
85 #endif /* ALLOW_SEAICE */
86
87 #ifdef ALLOW_THSICE
88 IF ( seqFlag.EQ.0 .AND. useThSIce ) THEN
89 DO bj=myByLo(myThid),myByHi(myThid)
90 DO bi=myBxLo(myThid),myBxHi(myThid)
91 CALL THSICE_DIAGNOSTICS_STATE( myTime,myIter,bi,bj,myThid )
92 ENDDO
93 ENDDO
94 ENDIF
95 #endif /* ALLOW_THSICE */
96
97 #ifdef ALLOW_LAND
98 IF ( seqFlag.EQ.0 .AND. useLand ) THEN
99 DO bj=myByLo(myThid),myByHi(myThid)
100 DO bi=myBxLo(myThid),myBxHi(myThid)
101 CALL LAND_DIAGNOSTICS_STATE( myTime,myIter, bi,bj, myThid )
102 ENDDO
103 ENDDO
104 ENDIF
105 #endif /* ALLOW_LAND */
106
107 ENDIf
108 #endif /* ALLOW_DIAGNOSTICS */
109
110 RETURN
111 END

  ViewVC Help
Powered by ViewVC 1.1.22