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

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

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


Revision 1.28 - (show annotations) (download)
Mon Mar 23 21:12:54 2015 UTC (9 years, 1 month ago) by gforget
Branch: MAIN
CVS Tags: checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint65z, checkpoint65x, checkpoint65y, checkpoint65r, checkpoint65s, checkpoint65p, checkpoint65q, checkpoint65v, checkpoint65w, checkpoint65t, checkpoint65u, checkpoint65k, checkpoint65n, checkpoint65o, checkpoint65l, checkpoint65m, HEAD
Changes since 1.27: +9 -1 lines
- fix missing cosphi initialization.

1 C $Header: /u/gcmpack/MITgcm/pkg/ecco/ecco_cost_init_varia.F,v 1.27 2014/10/16 20:02:34 gforget Exp $
2 C $Name: $
3
4 #include "ECCO_OPTIONS.h"
5 #include "AD_CONFIG.h"
6
7 subroutine ecco_cost_init_varia( mythid )
8
9 c ==================================================================
10 c SUBROUTINE ecco_cost_init_varia
11 c ==================================================================
12 c
13 c o Initialise the variable cost function part.
14 c
15 c started: Christian Eckert eckert@mit.edu 30-Jun-1999
16 c changed: Christian Eckert eckert@mit.edu 18-Apr-2000
17 c - Restructured the code in order to create a package
18 c for the MITgcmUV.
19 c heimbach@mit.edu 05-Nov-2003 Now ecco part of cost
20 c
21 c ==================================================================
22 c SUBROUTINE ecco_cost_init_varia
23 c ==================================================================
24
25 implicit none
26
27 c == global variables ==
28
29 #include "EEPARAMS.h"
30 #include "SIZE.h"
31 #include "GRID.h"
32
33 #ifdef ALLOW_ECCO
34 # ifdef ECCO_CTRL_DEPRECATED
35 # include "ecco_cost.h"
36 # else
37 # include "ecco.h"
38 # endif
39 #endif
40 #ifdef ALLOW_CTRL
41 # include "CTRL_OBCS.h"
42 #endif
43 #ifdef ALLOW_COST
44 # include "cost.h"
45 #endif
46
47 c == routine arguments ==
48
49 integer mythid
50
51 c == local variables ==
52
53 integer bi,bj
54 integer itlo,ithi
55 integer jtlo,jthi
56 integer imin, imax
57 integer jmin, jmax
58 integer i,j,k
59 integer num_file,num_var
60
61 logical exst
62
63 c == external functions ==
64
65 c == end of interface ==
66 jtlo = mybylo(mythid)
67 jthi = mybyhi(mythid)
68 itlo = mybxlo(mythid)
69 ithi = mybxhi(mythid)
70 jmin = 1-OLy
71 jmax = sny+OLy
72 imin = 1-OLx
73 imax = snx+OLy
74
75 c-- Initialise adjoint of monthly mean files calculated
76 c-- in cost_averagesfields (and their ad...).
77 call cost_averagesinit( mythid )
78 _BARRIER
79
80 #ifndef ALLOW_TANGENTLINEAR_RUN
81 cph(
82 cph The following init. shoud not be applied if in the middle
83 cph of a divided adjoint run
84 cph)
85 c inquire( file='costfinal', exist=exst )
86 c if ( .NOT. exst) then
87 c call ecco_cost_init_barfiles( mythid )
88 c endif
89 #endif
90
91 c-- Initialize the tiled cost function contributions.
92 do bj = jtlo,jthi
93 do bi = itlo,ithi
94 #ifdef ECCO_CTRL_DEPRECATED
95 objf_hflux(bi,bj) = 0. _d 0
96 objf_hfluxm(bi,bj) = 0. _d 0
97 objf_sflux(bi,bj) = 0. _d 0
98 objf_sfluxm(bi,bj) = 0. _d 0
99 objf_tauu(bi,bj) = 0. _d 0
100 objf_tauum(bi,bj) = 0. _d 0
101 objf_tauv(bi,bj) = 0. _d 0
102 objf_tauvm(bi,bj) = 0. _d 0
103 objf_temp(bi,bj) = 0. _d 0
104 objf_salt(bi,bj) = 0. _d 0
105 objf_temp0(bi,bj) = 0. _d 0
106 objf_salt0(bi,bj) = 0. _d 0
107 objf_temp0smoo(bi,bj) = 0. _d 0
108 objf_salt0smoo(bi,bj) = 0. _d 0
109 objf_etan0(bi,bj) = 0. _d 0
110 objf_uvel0(bi,bj) = 0. _d 0
111 objf_vvel0(bi,bj) = 0. _d 0
112 objf_tmi(bi,bj) = 0. _d 0
113 objf_sst(bi,bj) = 0. _d 0
114 objf_sss(bi,bj) = 0. _d 0
115 objf_bp(bi,bj) = 0. _d 0
116 objf_h(bi,bj) = 0. _d 0
117 objf_tp(bi,bj) = 0. _d 0
118 objf_ers(bi,bj) = 0. _d 0
119 objf_gfo(bi,bj) = 0. _d 0
120 objf_ctdt(bi,bj) = 0. _d 0
121 objf_ctds(bi,bj) = 0. _d 0
122 objf_ctdtclim(bi,bj) = 0. _d 0
123 objf_ctdsclim(bi,bj) = 0. _d 0
124 objf_xbt(bi,bj) = 0. _d 0
125 objf_argot(bi,bj) = 0. _d 0
126 objf_argos(bi,bj) = 0. _d 0
127 objf_drift(bi,bj) = 0. _d 0
128 objf_wdrift(bi,bj) = 0. _d 0
129 objf_sdrift(bi,bj) = 0. _d 0
130 objf_tdrift(bi,bj) = 0. _d 0
131 objf_scatx(bi,bj) = 0. _d 0
132 objf_scaty(bi,bj) = 0. _d 0
133 objf_scatxm(bi,bj) = 0. _d 0
134 objf_scatym(bi,bj) = 0. _d 0
135 objf_atemp(bi,bj) = 0. _d 0
136 objf_aqh(bi,bj) = 0. _d 0
137 objf_precip(bi,bj) = 0. _d 0
138 objf_swflux(bi,bj) = 0. _d 0
139 objf_swdown(bi,bj) = 0. _d 0
140 objf_lwflux(bi,bj) = 0. _d 0
141 objf_lwdown(bi,bj) = 0. _d 0
142 objf_uwind(bi,bj) = 0. _d 0
143 objf_vwind(bi,bj) = 0. _d 0
144 #if ( defined (ALLOW_COST) && defined (ALLOW_COST_ATLANTIC) )
145 objf_atl(bi,bj) = 0. _d 0
146 #endif
147 objf_curmtr(bi,bj) = 0. _d 0
148 objf_diffkr(bi,bj) = 0. _d 0
149 objf_kapgm(bi,bj) = 0. _d 0
150 objf_kapredi(bi,bj) = 0. _d 0
151 objf_theta_ini_fin(bi,bj) = 0. _d 0
152 objf_salt_ini_fin(bi,bj) = 0. _d 0
153 objf_eddytau(bi,bj) = 0. _d 0
154 objf_bottomdrag(bi,bj) = 0. _d 0
155 do k=1,NUSERCOST
156 objf_usercost(k,bi,bj) = 0. _d 0
157 enddo
158 do k=1,NSSHV4COST
159 objf_sshv4cost(k,bi,bj) = 0. _d 0
160 enddo
161 num_hflux(bi,bj) = 0. _d 0
162 num_hfluxm(bi,bj) = 0. _d 0
163 num_hfluxmm(bi,bj) = 0. _d 0
164 num_sflux(bi,bj) = 0. _d 0
165 num_sfluxm(bi,bj) = 0. _d 0
166 num_sfluxmm(bi,bj) = 0. _d 0
167 num_tauu(bi,bj) = 0. _d 0
168 num_tauum(bi,bj) = 0. _d 0
169 num_tauv(bi,bj) = 0. _d 0
170 num_tauvm(bi,bj) = 0. _d 0
171 num_temp(bi,bj) = 0. _d 0
172 num_salt(bi,bj) = 0. _d 0
173 num_temp0(bi,bj) = 0. _d 0
174 num_salt0(bi,bj) = 0. _d 0
175 num_etan0(bi,bj) = 0. _d 0
176 num_uvel0(bi,bj) = 0. _d 0
177 num_vvel0(bi,bj) = 0. _d 0
178 num_tmi(bi,bj) = 0. _d 0
179 num_sst(bi,bj) = 0. _d 0
180 num_sss(bi,bj) = 0. _d 0
181 num_bp(bi,bj) = 0. _d 0
182 num_h(bi,bj) = 0. _d 0
183 num_tp(bi,bj) = 0. _d 0
184 num_ers(bi,bj) = 0. _d 0
185 num_gfo(bi,bj) = 0. _d 0
186 num_ctdt(bi,bj) = 0. _d 0
187 num_ctds(bi,bj) = 0. _d 0
188 num_ctdtclim(bi,bj) = 0. _d 0
189 num_ctdsclim(bi,bj) = 0. _d 0
190 num_xbt(bi,bj) = 0. _d 0
191 num_argot(bi,bj) = 0. _d 0
192 num_argos(bi,bj) = 0. _d 0
193 num_drift(bi,bj) = 0. _d 0
194 num_wdrift(bi,bj) = 0. _d 0
195 num_sdrift(bi,bj) = 0. _d 0
196 num_tdrift(bi,bj) = 0. _d 0
197 num_scatx(bi,bj) = 0. _d 0
198 num_scaty(bi,bj) = 0. _d 0
199 num_scatxm(bi,bj) = 0. _d 0
200 num_scatym(bi,bj) = 0. _d 0
201 num_atemp(bi,bj) = 0. _d 0
202 num_aqh(bi,bj) = 0. _d 0
203 num_precip(bi,bj) = 0. _d 0
204 num_swflux(bi,bj) = 0. _d 0
205 num_swdown(bi,bj) = 0. _d 0
206 num_lwflux(bi,bj) = 0. _d 0
207 num_lwdown(bi,bj) = 0. _d 0
208 num_uwind(bi,bj) = 0. _d 0
209 num_vwind(bi,bj) = 0. _d 0
210 num_curmtr(bi,bj) = 0. _d 0
211 num_diffkr(bi,bj) = 0. _d 0
212 num_kapgm(bi,bj) = 0. _d 0
213 num_kapredi(bi,bj) = 0. _d 0
214 num_eddytau(bi,bj) = 0. _d 0
215 num_bottomdrag(bi,bj) = 0. _d 0
216 do k=1,NUSERCOST
217 num_usercost(k,bi,bj) = 0. _d 0
218 enddo
219 do k=1,NSSHV4COST
220 num_sshv4cost(k,bi,bj) = 0. _d 0
221 enddo
222 num_theta_ini_fin(bi,bj) = 0. _d 0
223 num_salt_ini_fin(bi,bj) = 0. _d 0
224 #endif /* ECCO_CTRL_DEPRECATED */
225
226 #ifdef ALLOW_GENCOST_CONTRIBUTION
227 do k=1,NGENCOST
228 objf_gencost(bi,bj,k) = 0. _d 0
229 num_gencost(bi,bj,k) = 0. _d 0
230 enddo
231 #endif
232
233 #if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS))
234 objf_obcsn(bi,bj) = 0. _d 0
235 objf_obcss(bi,bj) = 0. _d 0
236 objf_obcsw(bi,bj) = 0. _d 0
237 objf_obcse(bi,bj) = 0. _d 0
238 objf_ageos(bi,bj) = 0. _d 0
239 num_obcsn(bi,bj) = 0. _d 0
240 num_obcss(bi,bj) = 0. _d 0
241 num_obcsw(bi,bj) = 0. _d 0
242 num_obcse(bi,bj) = 0. _d 0
243 num_ageos(bi,bj) = 0. _d 0
244 #endif
245
246 do j = jmin,jmax
247 do i = imin,imax
248 frame(i,j) = 1. _d 0
249 cosphi(i,j,bi,bj) = 1. _d 0
250 enddo
251 enddo
252
253 enddo
254 enddo
255
256 #ifdef ECCO_CTRL_DEPRECATED
257
258 k = 1
259 do bj = jtlo,jthi
260 do bi = itlo,ithi
261 do j = jmin,jmax
262 do i = imin,imax
263 #ifdef ALLOW_SSH_COST_CONTRIBUTION
264 if (_hFacC(i,j,k,bi,bj) .eq. 0.) then
265 mdtmask(i,j,bi,bj) = 0. _d 0
266 else
267 mdtmask(i,j,bi,bj) = 1. _d 0
268 endif
269 mdt(i,j,bi,bj) = 0. _d 0
270 #endif
271 #ifdef ALLOW_SSH_TPANOM_COST_CONTRIBUTION
272 if (_hFacC(i,j,k,bi,bj) .eq. 0.) then
273 tpmask(i,j,bi,bj) = 0. _d 0
274 else
275 tpmask(i,j,bi,bj) = 1. _d 0
276 endif
277 tpobs(i,j,bi,bj) = 0. _d 0
278 #endif
279 #ifdef ALLOW_SSH_ERSANOM_COST_CONTRIBUTION
280 if (_hFacC(i,j,k,bi,bj) .eq. 0.) then
281 ersmask(i,j,bi,bj) = 0. _d 0
282 else
283 ersmask(i,j,bi,bj) = 1. _d 0
284 endif
285 ersobs(i,j,bi,bj) = 0. _d 0
286 #endif
287 #ifdef ALLOW_SSH_GFOANOM_COST_CONTRIBUTION
288 if (_hFacC(i,j,k,bi,bj) .eq. 0.) then
289 gfomask(i,j,bi,bj) = 0. _d 0
290 else
291 gfomask(i,j,bi,bj) = 1. _d 0
292 endif
293 gfoobs(i,j,bi,bj) = 0. _d 0
294 #endif
295 #ifdef ALLOW_TMI_SST_COST_CONTRIBUTION
296 if (_hFacC(i,j,k,bi,bj) .eq. 0.) then
297 tmimask(i,j,bi,bj) = 0. _d 0
298 else
299 tmimask(i,j,bi,bj) = 1. _d 0
300 endif
301 #endif
302 #ifdef ALLOW_SST_COST_CONTRIBUTION
303 if (_hFacC(i,j,k,bi,bj) .eq. 0.) then
304 sstmask(i,j,bi,bj) = 0. _d 0
305 else
306 sstmask(i,j,bi,bj) = 1. _d 0
307 endif
308 #endif
309 #ifdef ALLOW_SSS_COST_CONTRIBUTION
310 if (_hFacC(i,j,k,bi,bj) .eq. 0.) then
311 sssmask(i,j,bi,bj) = 0. _d 0
312 else
313 sssmask(i,j,bi,bj) = 1. _d 0
314 endif
315 #endif
316 #ifdef ALLOW_BP_COST_CONTRIBUTION
317 if (_hFacC(i,j,k,bi,bj) .eq. 0.) then
318 bpmask(i,j,bi,bj) = 0. _d 0
319 else
320 bpmask(i,j,bi,bj) = 1. _d 0
321 endif
322 bpdat(i,j,bi,bj) = 0. _d 0
323 #endif
324 enddo
325 enddo
326 enddo
327 enddo
328
329 #ifdef GENERIC_BAR_MONTH
330 do bj = jtlo,jthi
331 do bi = itlo,ithi
332 do k =1,Nr
333 do j = jmin,jmax
334 do i = imin,imax
335 tbar_gen(i,j,k,bi,bj) = 0. _d 0
336 sbar_gen(i,j,k,bi,bj) = 0. _d 0
337 enddo
338 enddo
339 enddo
340 enddo
341 enddo
342 #endif
343
344 c-- Initialise the "global" parts of the cost function.
345 _BEGIN_MASTER( mythid )
346 objf_hmean = 0. _d 0
347 objf_hfluxmm = 0. _d 0
348 objf_sfluxmm = 0. _d 0
349 objf_transp = 0. _d 0
350 num_hmean = 0. _d 0
351 num_transp = 0. _d 0
352 _END_MASTER( mythid )
353
354 #endif /* ECCO_CTRL_DEPRECATED */
355
356 c-- Initialise the "global" parts of the cost function.
357 #if (defined (ALLOW_CTRL) && defined (ALLOW_OBCS))
358 _BEGIN_MASTER( mythid )
359 objf_obcsvol = 0. _d 0
360 num_obcsvol = 0. _d 0
361 _END_MASTER( mythid )
362 #endif
363
364 _BARRIER
365
366 return
367 end
368

  ViewVC Help
Powered by ViewVC 1.1.22