/[MITgcm]/MITgcm/pkg/dic/dic_aver_init.F
ViewVC logotype

Annotation of /MITgcm/pkg/dic/dic_aver_init.F

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


Revision 1.12 - (hide annotations) (download)
Wed Oct 14 20:12:30 2009 UTC (14 years, 11 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint62, checkpoint61z, checkpoint61x, checkpoint61y
Changes since 1.11: +2 -2 lines
Move init. of totcost

1 heimbach 1.12 C $Header: /u/gcmpack/MITgcm/pkg/dic/dic_aver_init.F,v 1.11 2009/04/28 18:10:47 jmc Exp $
2 jmc 1.2 C $Name: $
3    
4 stephd 1.4 #include "DIC_OPTIONS.h"
5 stephd 1.1
6     CStartOfInterFace
7     SUBROUTINE DIC_AVER_INIT(
8     I myThid)
9    
10     C /==========================================================\
11     C | SUBROUTINE DIC_AVER_INIT i |
12     C |==========================================================|
13     IMPLICIT NONE
14    
15     C == GLobal variables ==
16     #include "SIZE.h"
17     #include "DYNVARS.h"
18     #include "EEPARAMS.h"
19     #include "PARAMS.h"
20     #include "GRID.h"
21 jmc 1.2 #include "PTRACERS_SIZE.h"
22 jmc 1.5 #include "PTRACERS_FIELDS.h"
23 dfer 1.7 #include "DIC_VARS.h"
24 stephd 1.1 #ifdef DIC_BIOTIC
25     #include "DIC_DIAGS.h"
26     #include "DIC_COST.h"
27     #endif
28    
29     C == Routine arguments ==
30     INTEGER myThid
31    
32     #ifdef ALLOW_DIC_COST
33    
34     C == Local variables ==
35     INTEGER i, j, bi, bj, k, it
36 jmc 1.10 _RL po4av(Nr)
37     _RL o2av(Nr)
38     _RL volvar(Nr)
39 stephd 1.1 cswdmonth -add-
40     _RL po4avm(12,4)
41     _RL o2avm(12,4)
42     _RL rdt
43     INTEGER nForcingPeriods,Imytm,Ifprd,Ifcyc,Iftm
44    
45     cswddmonth -- end-
46     c
47     c initialize to zero
48 heimbach 1.12 cph totcost=0.d0
49 stephd 1.1 DO bj = myByLo(myThid), myByHi(myThid)
50     DO bi = myBxLo(myThid), myBxHi(myThid)
51     CALL TIMEAVE_RESET(PO4obs, Nr, bi, bj, myThid)
52     CALL TIMEAVE_RESET(O2obs, Nr, bi, bj, myThid)
53     cswdmonth
54     CALL TIMEAVE_RESET(PO4obsl1, Nr, bi, bj, myThid)
55     CALL TIMEAVE_RESET(PO4obsl2, Nr, bi, bj, myThid)
56     CALL TIMEAVE_RESET(PO4obsl3, Nr, bi, bj, myThid)
57     cQQ CALL TIMEAVE_RESET(PO4obsl4, Nr, bi, bj, myThid)
58     CALL TIMEAVE_RESET(O2obsl1, Nr, bi, bj, myThid)
59     CALL TIMEAVE_RESET(O2obsl2, Nr, bi, bj, myThid)
60     CALL TIMEAVE_RESET(O2obsl3, Nr, bi, bj, myThid)
61     cQQ CALL TIMEAVE_RESET(O2obsl4, Nr, bi, bj, myThid)
62     cswdmonth -end-
63     do k=1,Nr
64     OBS_Timetave(bi,bj,k)=0.d0
65     po4av(k)=0.d0
66     o2av(k)=0.d0
67     po4var(k)=0.d0
68     o2var(k)=0.d0
69     volvar(k)=0.d0
70 jmc 1.5 enddo
71 stephd 1.1 cswdmonth
72     do k=1,3
73     do it=1,12
74     OBSM_Timetave(bi,bj,it)=0.d0
75     po4avm(it,k)=0.d0
76     o2avm(it,k)=0.d0
77     po4varm(it,k)=0.d0
78     o2varm(it,k)=0.d0
79     enddo
80     enddo
81     ENDDO
82 jmc 1.5 ENDDO
83     CALL READ_FLD_XYZ_RL( 'input/po4obs.bin', ' ',
84     & po4obs, 0, myThid )
85     CALL READ_FLD_XYZ_RL( 'input/o2obs.bin', ' ',
86 stephd 1.1 & o2obs, 0, myThid )
87     cswdmonth
88     CALL READ_FLD_XYZ_RL( 'input/po4lev1.bin', ' ',
89     & po4obsl1, 0, myThid )
90     CALL READ_FLD_XYZ_RL( 'input/po4lev2.bin', ' ',
91     & po4obsl2, 0, myThid )
92     CALL READ_FLD_XYZ_RL( 'input/po4lev3.bin', ' ',
93     & po4obsl3, 0, myThid )
94     cQQ CALL READ_FLD_XYZ_RL( 'input/po4lev4.bin', ' ',
95     cQQ & po4obsl4, 0, myThid )
96     CALL READ_FLD_XYZ_RL( 'input/o2lev1.bin', ' ',
97     & o2obsl1, 0, myThid )
98     CALL READ_FLD_XYZ_RL( 'input/o2lev2.bin', ' ',
99     & o2obsl2, 0, myThid )
100     CALL READ_FLD_XYZ_RL( 'input/o2lev3.bin', ' ',
101     & o2obsl3, 0, myThid )
102     cQQ CALL READ_FLD_XYZ_RL( 'input/o2lev4.bin', ' ',
103     cQQ & o2obsl4, 0, myThid )
104     cswdmonth -end-
105 jmc 1.11 _EXCH_XYZ_RL(po4obs , myThid )
106     _EXCH_XYZ_RL(o2obs , myThid )
107 stephd 1.1 cswdmonth -add-
108 jmc 1.11 _EXCH_XYZ_RL(po4obsl1 , myThid )
109     _EXCH_XYZ_RL(po4obsl2 , myThid )
110     _EXCH_XYZ_RL(po4obsl3 , myThid )
111     cQQ _EXCH_XYZ_RL(po4obsl4 , myThid )
112     _EXCH_XYZ_RL(o2obsl1 , myThid )
113     _EXCH_XYZ_RL(o2obsl2 , myThid )
114     _EXCH_XYZ_RL(o2obsl3 , myThid )
115     cQQ _EXCH_XYZ_RL(o2obsl4 , myThid )
116 stephd 1.1 cswdmonth -end-
117    
118     c calculate layer means
119     do k=1,Nr
120 jmc 1.10 call tracer_meanarea(po4obs, k,
121     & po4av(k),myThid)
122     call tracer_meanarea(o2obs, k,
123     & o2av(k),myThid)
124 stephd 1.1 c print*,po4av(k), o2av(k)
125     enddo
126     cswdmonth -add-
127 jmc 1.10 do it=1,MIN(12,Nr)
128     call tracer_meanarea(po4obsl1,it,
129     & po4avm(it,1),myThid)
130     call tracer_meanarea(po4obsl2,it,
131     & po4avm(it,2),myThid)
132     call tracer_meanarea(po4obsl3,it,
133     & po4avm(it,3),myThid)
134     cQQ call tracer_meanarea(po4obsl4,it,
135     cQQ & po4avm(it,4),myThid)
136     call tracer_meanarea(o2obsl1,it,
137     & o2avm(it,1),myThid)
138     call tracer_meanarea(o2obsl2,it,
139     & o2avm(it,2),myThid)
140     call tracer_meanarea(o2obsl3,it,
141     & o2avm(it,3),myThid)
142     cQQ call tracer_meanarea(o2obsl4,it,
143     cQQ & o2avm(it,4),myThid)
144 stephd 1.1
145     enddo
146     c calculate layer variance
147     DO bj = myByLo(myThid), myByHi(myThid)
148     DO bi = myBxLo(myThid), myBxHi(myThid)
149 jmc 1.10 DO j=1,sNy
150     DO i=1,sNx
151 stephd 1.1 DO k=1,Nr
152     volvar(k)=volvar(k)+
153     & rA(i,j,bi,bj)*drF(k)*maskC(i,j,k,bi,bj)
154     po4var(k)=po4var(k)+(po4obs(i,j,k,bi,bj)-po4av(k))**2
155     & *rA(i,j,bi,bj)*drF(k)*maskC(i,j,k,bi,bj)
156     o2var(k)=o2var(k)+(o2obs(i,j,k,bi,bj)-o2av(k))**2
157     & *rA(i,j,bi,bj)*drF(k)*maskC(i,j,k,bi,bj)
158     ENDDO
159     cswdmonth -add-
160     DO it=1,12
161     po4varm(it,1)=po4varm(it,1)+
162     & (po4obsl1(i,j,it,bi,bj)-po4avm(it,1))**2
163     & *rA(i,j,bi,bj)*drF(1)*maskC(i,j,1,bi,bj)
164     po4varm(it,2)=po4varm(it,2)+
165     & (po4obsl2(i,j,it,bi,bj)-po4avm(it,2))**2
166     & *rA(i,j,bi,bj)*drF(2)*maskC(i,j,2,bi,bj)
167     po4varm(it,3)=po4varm(it,3)+
168     & (po4obsl3(i,j,it,bi,bj)-po4avm(it,3))**2
169     & *rA(i,j,bi,bj)*drF(3)*maskC(i,j,3,bi,bj)
170     cQQ po4varm(it,4)=po4varm(it,4)+
171     cQQ & (po4obsl4(i,j,it,bi,bj)-po4avm(it,4))**2
172     cQQ & *rA(i,j,bi,bj)*drF(4)*maskC(i,j,4,bi,bj)
173     o2varm(it,1)=o2varm(it,1)+
174     & (o2obsl1(i,j,it,bi,bj)-o2avm(it,1))**2
175     & *rA(i,j,bi,bj)*drF(1)*maskC(i,j,1,bi,bj)
176     o2varm(it,2)=o2varm(it,2)+
177     & (o2obsl2(i,j,it,bi,bj)-o2avm(it,2))**2
178     & *rA(i,j,bi,bj)*drF(2)*maskC(i,j,2,bi,bj)
179     o2varm(it,3)=o2varm(it,3)+
180     & (o2obsl3(i,j,it,bi,bj)-o2avm(it,3))**2
181     & *rA(i,j,bi,bj)*drF(3)*maskC(i,j,3,bi,bj)
182     cQQ o2varm(it,4)=o2varm(it,4)+
183     cQQ & (o2obsl4(i,j,it,bi,bj)-o2avm(it,4))**2
184     cQQ & *rA(i,j,bi,bj)*drF(4)*maskC(i,j,4,bi,bj)
185    
186     ENDDO
187     ENDDO
188     ENDDO
189     ENDDO
190     ENDDO
191     DO k=1,Nr
192     po4var(k)=po4var(k)/volvar(k)
193     o2var(k)=o2var(k)/volvar(k)
194     cQQ print*,po4var(k),o2var(k)
195     ENDDO
196     cswdmonth- add-
197     DO k=1,3
198     Do it=1,12
199     po4varm(it,k)=po4varm(it,k)/volvar(k)
200     o2varm(it,k)=o2varm(it,k)/volvar(k)
201     ENDDO
202     ENDDO
203     cswdmonth -end-
204     C
205     C Reset averages to zero
206 dfer 1.9 print*,'QQ dic_aver_init, set to zero'
207 stephd 1.1 DO bj = myByLo(myThid), myByHi(myThid)
208     DO bi = myBxLo(myThid), myBxHi(myThid)
209     CALL TIMEAVE_RESET(PO4ann,Nr,bi,bj,myThid)
210     CALL TIMEAVE_RESET(O2ann,Nr,bi,bj,myThid)
211     CALL TIMEAVE_RESET(PO4lev1, 12, bi, bj, myThid)
212     CALL TIMEAVE_RESET(PO4lev2, 12, bi, bj, myThid)
213     CALL TIMEAVE_RESET(PO4lev3, 12, bi, bj, myThid)
214     cQQ CALL TIMEAVE_RESET(PO4lev4, 12, bi, bj, myThid)
215     CALL TIMEAVE_RESET(O2lev1, 12, bi, bj, myThid)
216     CALL TIMEAVE_RESET(O2lev2, 12, bi, bj, myThid)
217     CALL TIMEAVE_RESET(O2lev3, 12, bi, bj, myThid)
218     cQQ CALL TIMEAVE_RESET(O2lev4, 12, bi, bj, myThid)
219    
220     do k=1,Nr
221     OBS_Timetave(bi,bj,k)=0.d0
222     enddo
223     do it=1,12
224     OBSM_Timetave(bi,bj,it)=0.d0
225     enddo
226     ENDDO
227     ENDDO
228     c
229     #endif
230     c
231     RETURN
232     END

  ViewVC Help
Powered by ViewVC 1.1.22