/[MITgcm]/MITgcm/pkg/ecco/ecco_cost_init_barfiles.F
ViewVC logotype

Contents of /MITgcm/pkg/ecco/ecco_cost_init_barfiles.F

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


Revision 1.11 - (show annotations) (download)
Sat Oct 18 12:52:20 2008 UTC (15 years, 7 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint61f, checkpoint61g, checkpoint61e, checkpoint61n, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61h, checkpoint61i
Changes since 1.10: +2 -0 lines
Another call.

1 C $Header: /u/gcmpack/MITgcm/pkg/ecco/ecco_cost_init_barfiles.F,v 1.9 2008/02/05 12:49:10 heimbach Exp $
2 C $Name: $
3
4 #include "PACKAGES_CONFIG.h"
5 #include "AD_CONFIG.h"
6 #include "COST_CPPOPTIONS.h"
7
8
9 subroutine ecco_cost_init_barfiles( mythid )
10
11 c ==================================================================
12 c SUBROUTINE ecco_cost_init_barfiles
13 c ==================================================================
14 c
15 c-- Initialise adjoint of monthly mean files calculated
16 c-- in cost_averagesfields (and their ad...).
17 c
18 c started: heimbach@mit.edu 20-Mar-2002
19 c
20 c ==================================================================
21 c SUBROUTINE ecco_cost_cost_init_barfiles
22 c ==================================================================
23
24 implicit none
25
26 c == global variables ==
27
28 #include "EEPARAMS.h"
29 #include "SIZE.h"
30 #include "PARAMS.h"
31
32 #include "optim.h"
33 #include "ecco_cost.h"
34 #include "ctrl.h"
35 #include "ctrl_dummy.h"
36 #ifdef ALLOW_SEAICE
37 # include "SEAICE_COST.h"
38 #endif
39
40 c == routine arguments ==
41
42 integer mythid
43
44 #ifdef ALLOW_COST
45 c == local variables ==
46
47 integer bi,bj
48 integer i,j,k
49 integer itlo,ithi
50 integer jtlo,jthi
51 integer jmin,jmax
52 integer imin,imax
53
54 integer ilps, ils, ilt, irec
55
56 character*(128) fnamepsbar
57 character*(128) fnametbar
58 character*(128) fnamesbar
59 character*(128) fnamesstbar
60 character*(128) fnameubar
61 character*(128) fnamevbar
62 character*(128) fnamewbar
63 character*(128) fnametauxbar
64 character*(128) fnametauybar
65 character*(128) fnamehfluxbar
66 character*(128) fnamesfluxbar
67 character*(128) fnamesmrareabar
68 c
69 character*(128) adfnamepsbar
70 character*(128) adfnametbar
71 character*(128) adfnamesbar
72 character*(128) adfnamesstbar
73 character*(128) adfnameubar
74 character*(128) adfnamevbar
75 character*(128) adfnamewbar
76 character*(128) adfnametauxbar
77 character*(128) adfnametauybar
78 character*(128) adfnamehfluxbar
79 character*(128) adfnamesfluxbar
80 character*(128) adfnamesmrareabar
81
82 c == external functions ==
83
84 integer ilnblnk
85 external ilnblnk
86
87 c == end of interface ==
88
89 jtlo = mybylo(mythid)
90 jthi = mybyhi(mythid)
91 itlo = mybxlo(mythid)
92 ithi = mybxhi(mythid)
93 jmin = 1
94 jmax = sny
95 imin = 1
96 imax = snx
97
98 do bj = jtlo,jthi
99 do bi = itlo,ithi
100 do j = jmin,jmax
101 do i = imin,imax
102 tmpfld2d(i,j,bi,bj) = 0. _d 0
103 enddo
104 enddo
105 enddo
106 enddo
107 do bj = jtlo,jthi
108 do bi = itlo,ithi
109 do k = 1,nr
110 do j = jmin,jmax
111 do i = imin,imax
112 tmpfld3d(i,j,k,bi,bj) = 0. _d 0
113 enddo
114 enddo
115 enddo
116 enddo
117 enddo
118
119 cgg( Also initialize the tmp fields used in ctrl_getobcs and cost_obcs.
120 #ifdef OBCS_CONTROL
121 do bj = jtlo,jthi
122 do bi = itlo,ithi
123 do k = 1,nr
124 do j = jmin,jmax
125 tmpfldyz (j,k,bi,bj) = 0. _d 0
126 tmpfldyz2(j,k,bi,bj) = 0. _d 0
127 enddo
128 enddo
129 enddo
130 enddo
131 do bj = jtlo,jthi
132 do bi = itlo,ithi
133 do k = 1,nr
134 do i = imin,imax
135 tmpfldxz (i,k,bi,bj) = 0. _d 0
136 tmpfldxz2(i,k,bi,bj) = 0. _d 0
137 enddo
138 enddo
139 enddo
140 enddo
141 #endif
142 cgg)
143
144 #ifdef ALLOW_SSH_COST_CONTRIBUTION
145 c-- Save psbar on file.
146 ilps=ilnblnk( psbarfile )
147 write(fnamepsbar,'(2a,i10.10)')
148 & psbarfile(1:ilps), '.', optimcycle
149 write(adfnamepsbar,'(3a,i10.10)')
150 & yadprefix, psbarfile(1:ilps), '.', optimcycle
151
152 do irec = 1, ndaysrec
153 c call active_write_xy( fnamepsbar, tmpfld2d, irec,
154 c & optimcycle, mythid, xx_psbar_mean_dummy )
155 #ifndef ALLOW_TANGENTLINEAR_RUN
156 call active_write_xy( adfnamepsbar, tmpfld2d, irec,
157 & optimcycle,mythid, xx_psbar_mean_dummy )
158 #endif
159 enddo
160 #endif /* ALLOW_SSH_COST_CONTRIBUTION */
161
162 #if (defined (ALLOW_THETA_COST_CONTRIBUTION) || \
163 defined (ALLOW_CTDT_COST_CONTRIBUTION) || \
164 defined (ALLOW_CTDTCLIM_COST_CONTRIBUTION) || \
165 defined (ALLOW_XBT_COST_CONTRIBUTION) || \
166 defined (ALLOW_DRIFT_COST_CONTRIBUTION) || \
167 defined (ALLOW_OBCS_COST_CONTRIBUTION))
168 c-- Save tbar on file.
169 ilt=ilnblnk( tbarfile )
170 write(fnametbar,'(2a,i10.10)')
171 & tbarfile(1:ilt), '.', optimcycle
172 write(adfnametbar,'(3a,i10.10)')
173 & yadprefix, tbarfile(1:ilt), '.', optimcycle
174
175 do irec = 1,nmonsrec
176 c call active_write_xyz( fnametbar, tmpfld3d, irec,
177 c & optimcycle, mythid, xx_tbar_mean_dummy )
178 #ifndef ALLOW_TANGENTLINEAR_RUN
179 call active_write_xyz( adfnametbar, tmpfld3d, irec,
180 & optimcycle, mythid, xx_tbar_mean_dummy )
181 #endif
182 enddo
183 #else
184 #ifdef ALLOW_SST_COST_CONTRIBUTION
185 c-- Save tbar on file.
186 ilt=ilnblnk( tbarfile )
187 write(fnametbar,'(2a,i10.10)')
188 & tbarfile(1:ilt), '.', optimcycle
189 write(adfnametbar,'(3a,i10.10)')
190 & yadprefix, tbarfile(1:ilt), '.', optimcycle
191 do irec = 1,nmonsrec
192 c call active_write_xy( fnametbar, tmpfld2d, irec,
193 c & optimcycle, mythid, xx_tbar_mean_dummy )
194 #ifndef ALLOW_TANGENTLINEAR_RUN
195 call active_write_xy( adfnametbar, tmpfld2d, irec,
196 & optimcycle, mythid, xx_tbar_mean_dummy )
197 #endif
198 enddo
199 #endif
200 #endif
201
202 #ifdef ALLOW_SEAICE_COST_AREASST
203 c-- Save tbar on file.
204 ilt=ilnblnk( sstbarfile )
205 write(fnamesstbar,'(2a,i10.10)')
206 & sstbarfile(1:ilt), '.', optimcycle
207 write(adfnamesstbar,'(3a,i10.10)')
208 & yadprefix, sstbarfile(1:ilt), '.', optimcycle
209 do irec = 1,ndaysrec
210 c call active_write_xy( fnamesstbar, tmpfld2d, irec,
211 c & optimcycle, mythid, xx_sstbar_mean_dummy )
212 #ifndef ALLOW_TANGENTLINEAR_RUN
213 call active_write_xy( adfnamesstbar, tmpfld2d, irec,
214 & optimcycle, mythid, xx_sstbar_mean_dummy )
215 #endif
216 enddo
217 #endif
218
219 #if (defined (ALLOW_SALT_COST_CONTRIBUTION) || \
220 defined (ALLOW_CTDS_COST_CONTRIBUTION) || \
221 defined (ALLOW_CTDSCLIM_COST_CONTRIBUTION) || \
222 defined (ALLOW_DRIFT_COST_CONTRIBUTION) || \
223 defined (ALLOW_OBCS_COST_CONTRIBUTION))
224 c-- Save sbar.
225 ils=ilnblnk( sbarfile )
226 write(fnamesbar,'(2a,i10.10)')
227 & sbarfile(1:ils), '.', optimcycle
228 write(adfnamesbar,'(3a,i10.10)')
229 & yadprefix, sbarfile(1:ils), '.', optimcycle
230
231 do irec = 1,nmonsrec
232 c call active_write_xyz( fnamesbar, tmpfld3d, irec,
233 c & optimcycle, mythid, xx_sbar_mean_dummy)
234 #ifndef ALLOW_TANGENTLINEAR_RUN
235 call active_write_xyz( adfnamesbar, tmpfld3d, irec,
236 & optimcycle, mythid, xx_sbar_mean_dummy)
237 #endif
238 enddo
239 #else
240 #ifdef ALLOW_SST_COST_CONTRIBUTION
241 c-- Save sbar.
242 ils=ilnblnk( sbarfile )
243 write(fnamesbar,'(2a,i10.10)')
244 & sbarfile(1:ils), '.', optimcycle
245 write(adfnamesbar,'(3a,i10.10)')
246 & yadprefix, sbarfile(1:ils), '.', optimcycle
247
248 do irec = 1,nmonsrec
249 c call active_write_xy( fnamesbar, tmpfld2d, irec,
250 c & optimcycle, mythid, xx_sbar_mean_dummy)
251 #ifndef ALLOW_TANGENTLINEAR_RUN
252 call active_write_xy( adfnamesbar, tmpfld2d, irec,
253 & optimcycle, mythid, xx_sbar_mean_dummy)
254 #endif
255 enddo
256 #endif
257 #endif
258
259 #if (defined (ALLOW_DRIFTER_COST_CONTRIBUTION) || \
260 defined (ALLOW_OBCS_COST_CONTRIBUTION))
261 cph There's a mismatch between the cost_drifer and the
262 cph cost_obcs usage of ubar, vbar.
263 cph cost_obcs refers to monthly means, cost_drifer to total mean.
264 cph Needs to be updated for cost_drifer.
265
266 c-- Save ubar and vbar.
267 ils=ilnblnk( ubarfile )
268 write(fnameubar,'(2a,i10.10)')
269 & ubarfile(1:ils), '.', optimcycle
270 write(fnamevbar,'(2a,i10.10)')
271 & vbarfile(1:ils), '.', optimcycle
272 write(adfnameubar,'(3a,i10.10)')
273 & yadprefix, ubarfile(1:ils), '.', optimcycle
274 write(adfnamevbar,'(3a,i10.10)')
275 & yadprefix, vbarfile(1:ils), '.', optimcycle
276
277 do irec = 1,nmonsrec
278 c call active_write_xyz( fnameubar, tmpfld3d, irec,
279 c & optimcycle, mythid, xx_ubar_mean_dummy)
280 c call active_write_xyz( fnamevbar, tmpfld3d, irec,
281 c & optimcycle, mythid, xx_vbar_mean_dummy)
282 #ifndef ALLOW_TANGENTLINEAR_RUN
283 call active_write_xyz( adfnameubar, tmpfld3d, irec,
284 & optimcycle, mythid, xx_ubar_mean_dummy)
285 call active_write_xyz( adfnamevbar, tmpfld3d, irec,
286 & optimcycle, mythid, xx_vbar_mean_dummy)
287 #endif
288 enddo
289 #endif
290
291 #ifdef ALLOW_DRIFTW_COST_CONTRIBUTION
292 c-- Save wbar
293 ils=ilnblnk( wbarfile )
294 write(fnamewbar,'(2a,i10.10)')
295 & wbarfile(1:ils), '.', optimcycle
296 write(adfnamewbar,'(3a,i10.10)')
297 & yadprefix, wbarfile(1:ils), '.', optimcycle
298
299 do irec = 1,nmonsrec
300 c call active_write_xyz( fnamewbar, tmpfld3d, irec,
301 c & optimcycle, mythid, xx_wbar_mean_dummy)
302 #ifndef ALLOW_TANGENTLINEAR_RUN
303 call active_write_xyz( adfnamewbar, tmpfld3d, irec,
304 & optimcycle, mythid, xx_wbar_mean_dummy)
305 #endif
306 enddo
307 #endif
308
309 #ifdef ALLOW_SCAT_COST_CONTRIBUTION
310 c-- Save tauxbar, tauybar on file.
311 ilps=ilnblnk( tauxbarfile )
312 write(fnametauxbar,'(2a,i10.10)')
313 & tauxbarfile(1:ilps), '.', optimcycle
314 write(adfnametauxbar,'(3a,i10.10)')
315 & yadprefix, tauxbarfile(1:ilps), '.', optimcycle
316 ilps=ilnblnk( tauybarfile )
317 write(fnametauybar,'(2a,i10.10)')
318 & tauybarfile(1:ilps), '.', optimcycle
319 write(adfnametauybar,'(3a,i10.10)')
320 & yadprefix, tauybarfile(1:ilps), '.', optimcycle
321
322 do irec = 1, nmonsrec
323 c call active_write_xy( fnametauxbar, tmpfld2d, irec,
324 c & optimcycle, mythid, xx_taux_mean_dummy )
325 c call active_write_xy( fnametauybar, tmpfld2d, irec,
326 c & optimcycle, mythid, xx_tauy_mean_dummy )
327 #ifndef ALLOW_TANGENTLINEAR_RUN
328 call active_write_xy( adfnametauxbar, tmpfld2d, irec,
329 & optimcycle,mythid, xx_taux_mean_dummy )
330 call active_write_xy( adfnametauybar, tmpfld2d, irec,
331 & optimcycle,mythid, xx_tauy_mean_dummy )
332 #endif
333 enddo
334 #endif
335
336 #ifdef ALLOW_MEAN_HFLUX_COST_CONTRIBUTION
337 c-- Save hfluxbar on file.
338 ilps=ilnblnk( hfluxbarfile )
339 write(fnamehfluxbar,'(2a,i10.10)')
340 & hfluxbarfile(1:ilps), '.', optimcycle
341 write(adfnamehfluxbar,'(3a,i10.10)')
342 & yadprefix, hfluxbarfile(1:ilps), '.', optimcycle
343
344 do irec = 1, nyearsrec
345 c call active_write_xy( fnamehfluxbar, tmpfld2d, irec,
346 c & optimcycle, mythid, xx_hflux_mean_dummy )
347 #ifndef ALLOW_TANGENTLINEAR_RUN
348 call active_write_xy( adfnamehfluxbar, tmpfld2d, irec,
349 & optimcycle,mythid, xx_hflux_mean_dummy )
350 #endif
351 enddo
352 #endif
353
354 #ifdef ALLOW_MEAN_SFLUX_COST_CONTRIBUTION
355 c-- Save sfluxbar on file.
356 ilps=ilnblnk( sfluxbarfile )
357 write(fnamesfluxbar,'(2a,i10.10)')
358 & sfluxbarfile(1:ilps), '.', optimcycle
359 write(adfnamesfluxbar,'(3a,i10.10)')
360 & yadprefix, sfluxbarfile(1:ilps), '.', optimcycle
361
362 do irec = 1, nyearsrec
363 c call active_write_xy( fnamesfluxbar, tmpfld2d, irec,
364 c & optimcycle, mythid, xx_sflux_mean_dummy )
365 #ifndef ALLOW_TANGENTLINEAR_RUN
366 call active_write_xy( adfnamesfluxbar, tmpfld2d, irec,
367 & optimcycle,mythid, xx_sflux_mean_dummy )
368 #endif
369 enddo
370 #endif
371
372 #ifdef ALLOW_SEAICE
373 if (useSEAICE) then
374
375 #ifdef ALLOW_SEAICE_COST_SMR_AREA
376 ilps=ilnblnk( smrareabarfile )
377 write(fnamesmrareabar,'(2a,i10.10)')
378 & smrareabarfile(1:ilps), '.', optimcycle
379 write(adfnamesmrareabar,'(3a,i10.10)')
380 & yadprefix, smrareabarfile(1:ilps), '.', optimcycle
381
382 do irec = 1, ndaysrec
383 c call active_write_xy( fnamesmrareabar, tmpfld2d, irec,
384 c & optimcycle, mythid, xx_smrareabar_mean_dummy )
385 #ifndef ALLOW_TANGENTLINEAR_RUN
386 call active_write_xy( adfnamesmrareabar, tmpfld2d, irec,
387 & optimcycle,mythid, xx_smrareabar_mean_dummy )
388 #endif
389 enddo
390 #endif /* ALLOW_SEAICE_COST_SMR_AREA */
391
392 endif
393 #endif /* ALLOW_SEAICE */
394
395 #endif /* ALLOW_COST */
396
397 return
398 end
399

  ViewVC Help
Powered by ViewVC 1.1.22