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

Annotation 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 - (hide annotations) (download)
Sat Oct 18 12:52:20 2008 UTC (15 years, 8 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 heimbach 1.10 C $Header: /u/gcmpack/MITgcm/pkg/ecco/ecco_cost_init_barfiles.F,v 1.9 2008/02/05 12:49:10 heimbach Exp $
2 jmc 1.7 C $Name: $
3 heimbach 1.1
4 heimbach 1.11 #include "PACKAGES_CONFIG.h"
5     #include "AD_CONFIG.h"
6 heimbach 1.1 #include "COST_CPPOPTIONS.h"
7    
8 heimbach 1.3
9 heimbach 1.1 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 heimbach 1.8 #include "PARAMS.h"
31 heimbach 1.1
32     #include "optim.h"
33     #include "ecco_cost.h"
34     #include "ctrl.h"
35     #include "ctrl_dummy.h"
36 heimbach 1.5 #ifdef ALLOW_SEAICE
37     # include "SEAICE_COST.h"
38     #endif
39 heimbach 1.1
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 heimbach 1.10 character*(128) fnamesstbar
60 heimbach 1.1 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 heimbach 1.5 character*(128) fnamesmrareabar
68     c
69 heimbach 1.1 character*(128) adfnamepsbar
70     character*(128) adfnametbar
71     character*(128) adfnamesbar
72 heimbach 1.10 character*(128) adfnamesstbar
73 heimbach 1.1 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 heimbach 1.5 character*(128) adfnamesmrareabar
81 heimbach 1.1
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 jmc 1.7 write(fnamepsbar,'(2a,i10.10)')
148 heimbach 1.1 & psbarfile(1:ilps), '.', optimcycle
149     write(adfnamepsbar,'(3a,i10.10)')
150     & yadprefix, psbarfile(1:ilps), '.', optimcycle
151    
152     do irec = 1, ndaysrec
153 heimbach 1.3 c call active_write_xy( fnamepsbar, tmpfld2d, irec,
154     c & optimcycle, mythid, xx_psbar_mean_dummy )
155 heimbach 1.1 #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 jmc 1.7 write(fnametbar,'(2a,i10.10)')
171 heimbach 1.1 & tbarfile(1:ilt), '.', optimcycle
172 jmc 1.7 write(adfnametbar,'(3a,i10.10)')
173 heimbach 1.1 & yadprefix, tbarfile(1:ilt), '.', optimcycle
174    
175     do irec = 1,nmonsrec
176 heimbach 1.3 c call active_write_xyz( fnametbar, tmpfld3d, irec,
177     c & optimcycle, mythid, xx_tbar_mean_dummy )
178 heimbach 1.1 #ifndef ALLOW_TANGENTLINEAR_RUN
179 jmc 1.7 call active_write_xyz( adfnametbar, tmpfld3d, irec,
180 heimbach 1.1 & optimcycle, mythid, xx_tbar_mean_dummy )
181     #endif
182     enddo
183 heimbach 1.3 #else
184     #ifdef ALLOW_SST_COST_CONTRIBUTION
185     c-- Save tbar on file.
186     ilt=ilnblnk( tbarfile )
187 jmc 1.7 write(fnametbar,'(2a,i10.10)')
188 heimbach 1.3 & tbarfile(1:ilt), '.', optimcycle
189 jmc 1.7 write(adfnametbar,'(3a,i10.10)')
190 heimbach 1.3 & 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 jmc 1.7 call active_write_xy( adfnametbar, tmpfld2d, irec,
196 heimbach 1.3 & optimcycle, mythid, xx_tbar_mean_dummy )
197     #endif
198     enddo
199     #endif
200 heimbach 1.1 #endif
201    
202 heimbach 1.10 #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 heimbach 1.1 #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 jmc 1.7 write(fnamesbar,'(2a,i10.10)')
227 heimbach 1.1 & sbarfile(1:ils), '.', optimcycle
228 jmc 1.7 write(adfnamesbar,'(3a,i10.10)')
229 heimbach 1.1 & yadprefix, sbarfile(1:ils), '.', optimcycle
230    
231     do irec = 1,nmonsrec
232 heimbach 1.3 c call active_write_xyz( fnamesbar, tmpfld3d, irec,
233     c & optimcycle, mythid, xx_sbar_mean_dummy)
234 heimbach 1.1 #ifndef ALLOW_TANGENTLINEAR_RUN
235     call active_write_xyz( adfnamesbar, tmpfld3d, irec,
236     & optimcycle, mythid, xx_sbar_mean_dummy)
237     #endif
238     enddo
239 heimbach 1.3 #else
240     #ifdef ALLOW_SST_COST_CONTRIBUTION
241     c-- Save sbar.
242     ils=ilnblnk( sbarfile )
243 jmc 1.7 write(fnamesbar,'(2a,i10.10)')
244 heimbach 1.3 & sbarfile(1:ils), '.', optimcycle
245 jmc 1.7 write(adfnamesbar,'(3a,i10.10)')
246 heimbach 1.3 & 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 heimbach 1.1 #endif
258    
259     #if (defined (ALLOW_DRIFTER_COST_CONTRIBUTION) || \
260 heimbach 1.3 defined (ALLOW_OBCS_COST_CONTRIBUTION))
261 jmc 1.7 cph There's a mismatch between the cost_drifer and the
262 heimbach 1.1 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 jmc 1.7 write(fnameubar,'(2a,i10.10)')
269 heimbach 1.1 & ubarfile(1:ils), '.', optimcycle
270 jmc 1.7 write(fnamevbar,'(2a,i10.10)')
271 heimbach 1.1 & vbarfile(1:ils), '.', optimcycle
272 jmc 1.7 write(adfnameubar,'(3a,i10.10)')
273 heimbach 1.1 & yadprefix, ubarfile(1:ils), '.', optimcycle
274 jmc 1.7 write(adfnamevbar,'(3a,i10.10)')
275 heimbach 1.1 & yadprefix, vbarfile(1:ils), '.', optimcycle
276    
277     do irec = 1,nmonsrec
278 heimbach 1.3 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 heimbach 1.1 #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 jmc 1.7 write(fnamewbar,'(2a,i10.10)')
295 heimbach 1.1 & wbarfile(1:ils), '.', optimcycle
296 jmc 1.7 write(adfnamewbar,'(3a,i10.10)')
297 heimbach 1.1 & yadprefix, wbarfile(1:ils), '.', optimcycle
298    
299     do irec = 1,nmonsrec
300 heimbach 1.3 c call active_write_xyz( fnamewbar, tmpfld3d, irec,
301     c & optimcycle, mythid, xx_wbar_mean_dummy)
302 heimbach 1.1 #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 jmc 1.7 write(fnametauxbar,'(2a,i10.10)')
313 heimbach 1.1 & tauxbarfile(1:ilps), '.', optimcycle
314     write(adfnametauxbar,'(3a,i10.10)')
315     & yadprefix, tauxbarfile(1:ilps), '.', optimcycle
316     ilps=ilnblnk( tauybarfile )
317 jmc 1.7 write(fnametauybar,'(2a,i10.10)')
318 heimbach 1.1 & tauybarfile(1:ilps), '.', optimcycle
319     write(adfnametauybar,'(3a,i10.10)')
320     & yadprefix, tauybarfile(1:ilps), '.', optimcycle
321    
322     do irec = 1, nmonsrec
323 heimbach 1.3 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 heimbach 1.1 #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 jmc 1.7 write(fnamehfluxbar,'(2a,i10.10)')
340 heimbach 1.1 & hfluxbarfile(1:ilps), '.', optimcycle
341     write(adfnamehfluxbar,'(3a,i10.10)')
342     & yadprefix, hfluxbarfile(1:ilps), '.', optimcycle
343    
344 heimbach 1.9 do irec = 1, nyearsrec
345 heimbach 1.3 c call active_write_xy( fnamehfluxbar, tmpfld2d, irec,
346     c & optimcycle, mythid, xx_hflux_mean_dummy )
347 heimbach 1.1 #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 jmc 1.7 write(fnamesfluxbar,'(2a,i10.10)')
358 heimbach 1.1 & sfluxbarfile(1:ilps), '.', optimcycle
359     write(adfnamesfluxbar,'(3a,i10.10)')
360     & yadprefix, sfluxbarfile(1:ilps), '.', optimcycle
361    
362 heimbach 1.6 do irec = 1, nyearsrec
363 heimbach 1.3 c call active_write_xy( fnamesfluxbar, tmpfld2d, irec,
364     c & optimcycle, mythid, xx_sflux_mean_dummy )
365 heimbach 1.1 #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 heimbach 1.5 #ifdef ALLOW_SEAICE
373 heimbach 1.8 if (useSEAICE) then
374 heimbach 1.5
375     #ifdef ALLOW_SEAICE_COST_SMR_AREA
376     ilps=ilnblnk( smrareabarfile )
377 jmc 1.7 write(fnamesmrareabar,'(2a,i10.10)')
378 heimbach 1.5 & 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 heimbach 1.8 endif
393 heimbach 1.5 #endif /* ALLOW_SEAICE */
394    
395 heimbach 1.1 #endif /* ALLOW_COST */
396    
397     return
398     end
399    

  ViewVC Help
Powered by ViewVC 1.1.22