/[MITgcm]/MITgcm/pkg/land/land_do_diags.F
ViewVC logotype

Contents of /MITgcm/pkg/land/land_do_diags.F

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


Revision 1.1 - (show annotations) (download)
Mon Feb 14 00:36:47 2005 UTC (19 years, 4 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint57e_post, checkpoint57f_pre, eckpoint57e_pre
rename LAND_DIAGNOSTICS to LAND_DO_DIAGS to avoid confusion with
 pkg/diagnostics dedicated S/R.

1 C $Header: /u/gcmpack/MITgcm/pkg/land/land_diagnostics.F,v 1.3 2004/06/21 16:50:21 jmc Exp $
2 C $Name: $
3
4 #include "LAND_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: LAND_DO_DIAGS
8 C !INTERFACE:
9 SUBROUTINE LAND_DO_DIAGS(
10 I land_frc, bi,bj, myTime, myIter, myThid )
11
12 C !DESCRIPTION: \bv
13 C *==========================================================*
14 C | S/R LAND_DO_DIAGS
15 C | o Calculate Land diagnostics
16 C *==========================================================*
17 C \ev
18
19 C !USES:
20 IMPLICIT NONE
21
22 C == Global variables ===
23 C-- size for MITgcm & Land package :
24 #include "LAND_SIZE.h"
25
26 #include "EEPARAMS.h"
27 #include "PARAMS.h"
28 #include "LAND_PARAMS.h"
29 #include "LAND_VARS.h"
30 #include "LAND_TAVE.h"
31
32 C !INPUT/OUTPUT PARAMETERS:
33 C == Routine arguments ==
34 C land_frc :: land fraction [0-1]
35 C bi,bj :: Tile index
36 C myTime :: Current time of simulation ( s )
37 C myIter :: Current iteration number in simulation
38 C myThid :: Number of this instance of the routine
39 _RS land_frc(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
40 INTEGER bi, bj, myIter, myThid
41 _RL myTime
42 CEOP
43
44 #ifdef ALLOW_LAND
45
46 LOGICAL DIFFERENT_MULTIPLE
47 EXTERNAL DIFFERENT_MULTIPLE
48
49 C == Local Variables ==
50 INTEGER k, iterWr
51 CHARACTER*(MAX_LEN_MBUF) suff
52
53 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
54
55 IF (
56 & DIFFERENT_MULTIPLE(land_diagFreq,myTime+land_deltaT,myTime)
57 & .OR. myTime+land_deltaT .EQ. endTime
58 & ) THEN
59 iterWr = myIter+1
60 WRITE(suff,'(I10.10)') iterWr
61
62 c _BARRIER
63 c _BEGIN_MASTER( myThid )
64
65 DO k=1,land_nLev
66 C-- Write ground Temp and soil moisture :
67 CALL WRITE_LOCAL_RL('land_groundT','I10',1,
68 & land_groundT(1-OLx,1-OLy,k,bi,bj),bi,bj,k,iterWr,myThid)
69 CALL WRITE_LOCAL_RL('land_enthalp','I10',1,
70 & land_enthalp(1-OLx,1-OLy,k,bi,bj),bi,bj,k,iterWr,myThid)
71 CALL WRITE_LOCAL_RL('land_groundW','I10',1,
72 & land_groundW(1-OLx,1-OLy,k,bi,bj),bi,bj,k,iterWr,myThid)
73 ENDDO
74 CALL WRITE_LOCAL_RL('land_skinT', 'I10',1,
75 & land_skinT(1-OLx,1-OLy,bi,bj), bi,bj,1,iterWr,myThid)
76 CALL WRITE_LOCAL_RL('land_hSnow', 'I10',1,
77 & land_hSnow(1-OLx,1-OLy,bi,bj), bi,bj,1,iterWr,myThid)
78 CALL WRITE_LOCAL_RL('land_snAge', 'I10',1,
79 & land_snowAge(1-OLx,1-OLy,bi,bj),bi,bj,1,iterWr,myThid)
80 CALL WRITE_LOCAL_RL('land_RunOff','I10',1,
81 & land_runOff(1-OLx,1-OLy,bi,bj), bi,bj,1,iterWr,myThid)
82 CALL WRITE_LOCAL_RL('land_enRnOf','I10',1,
83 & land_enRnOf(1-OLx,1-OLy,bi,bj), bi,bj,1,iterWr,myThid)
84
85 CALL WRITE_LOCAL_RL('land_HeatFx','I10',1,
86 & land_HeatFlx(1-OLx,1-OLy,bi,bj), bi,bj,1,iterWr,myThid)
87 CALL WRITE_LOCAL_RL('land_frWaFx','I10',1,
88 & land_Pr_m_Ev(1-OLx,1-OLy,bi,bj), bi,bj,1,iterWr,myThid)
89 CALL WRITE_LOCAL_RL('land_EnWaFx','I10',1,
90 & land_EnWFlux(1-OLx,1-OLy,bi,bj), bi,bj,1,iterWr,myThid)
91
92 c _END_MASTER( myThid )
93 c _BARRIER
94 C--
95 ENDIF
96
97 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
98
99 #ifdef ALLOW_LAND_TAVE
100
101 IF (land_taveFreq.GT.0.) THEN
102
103 C-- Sum ground Temp, soil moisture and Run-Off:
104 CALL TIMEAVE_CUMULATE(land_grTtave,land_groundT,land_nLev,
105 & land_deltaT, bi, bj, myThid )
106 CALL TIMEAVE_CUMULATE(land_entave, land_enthalp,land_nLev,
107 & land_deltaT, bi, bj, myThid )
108 CALL TIMEAVE_CUMULATE(land_grWtave,land_groundW,land_nLev,
109 & land_deltaT, bi, bj, myThid )
110 CALL TIMEAVE_CUMULATE(land_sTtave, land_skinT ,1,
111 & land_deltaT, bi, bj, myThid )
112 CALL TIMEAVE_CUMULATE(land_hStave, land_hSnow ,1,
113 & land_deltaT, bi, bj, myThid )
114 CALL TIMEAVE_CUMULATE(land_sAtave, land_snowAge,1,
115 & land_deltaT, bi, bj, myThid )
116 CALL TIMEAVE_CUMULATE(land_ROftave,land_runOff,1,
117 & land_deltaT, bi, bj, myThid )
118 CALL TIMEAVE_CUMULATE(land_eROtave,land_enRnOf,1,
119 & land_deltaT, bi, bj, myThid )
120
121 C- Keep record of how much time has been integrated over
122 DO K=1,Nr
123 land_timeAve(k,bi,bj)=land_timeAve(k,bi,bj)+land_deltaT
124 ENDDO
125
126 ENDIF
127
128 #endif /* ALLOW_LAND_TAVE */
129
130 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
131
132 #ifdef ALLOW_DIAGNOSTICS
133
134 IF ( useDiagnostics ) THEN
135
136 CALL DIAGNOSTICS_FILL(land_runOff, 'RUNOFF ',0,1,
137 & 1,bi,bj,myThid)
138 CALL DIAGNOSTICS_FILL(land_enRnOf, 'EnRunOff',0,1,
139 & 1,bi,bj,myThid)
140 CALL DIAGNOSTICS_FILL(land_HeatFlx,'landHFlx',0,1,
141 & 1,bi,bj,myThid)
142 CALL DIAGNOSTICS_FILL(land_Pr_m_Ev,'landPmE ',0,1,
143 & 1,bi,bj,myThid)
144 CALL DIAGNOSTICS_FILL(land_EnWFlux,'ldEnFxPr',0,1,
145 & 1,bi,bj,myThid)
146
147 ENDIF
148
149 #endif /* ALLOW_DIAGNOSTICS */
150
151 #endif /* ALLOW_LAND */
152
153 RETURN
154 END

  ViewVC Help
Powered by ViewVC 1.1.22