/[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.14 - (show annotations) (download)
Sat Feb 2 02:34:14 2008 UTC (16 years, 3 months ago) by gforget
Branch: MAIN
CVS Tags: checkpoint60, checkpoint61, checkpoint59q, checkpoint59p, checkpoint59r, checkpoint59o, checkpoint59n, checkpoint61f, checkpoint61g, checkpoint61d, checkpoint61e, checkpoint61b, checkpoint61c, checkpoint61a, checkpoint61n, checkpoint61o, checkpoint61l, checkpoint61m, checkpoint61j, checkpoint61k, checkpoint61h, checkpoint61i, checkpoint61v, checkpoint61w, checkpoint61t, checkpoint61u, checkpoint61r, checkpoint61s, checkpoint61p, checkpoint61q, checkpoint61x
Changes since 1.13: +3 -1 lines
introduce isopycnal diffusion coefficient control.

1 C $Header: /u/gcmpack/MITgcm/pkg/ecco/ecco_cost_init_varia.F,v 1.13 2007/10/09 00:02:51 jmc Exp $
2 C $Name: $
3
4 #include "AD_CONFIG.h"
5 #include "COST_CPPOPTIONS.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 #include "ecco_cost.h"
34
35 c == routine arguments ==
36
37 integer mythid
38
39 c == local variables ==
40
41 integer bi,bj
42 integer itlo,ithi
43 integer jtlo,jthi
44 integer imin, imax
45 integer jmin, jmax
46 integer i,j,k
47 integer num_file,num_var
48
49 logical exst
50
51 c == external functions ==
52
53 c == end of interface ==
54 jtlo = mybylo(mythid)
55 jthi = mybyhi(mythid)
56 itlo = mybxlo(mythid)
57 ithi = mybxhi(mythid)
58 jmin = 1-OLy
59 jmax = sny+OLy
60 imin = 1-OLx
61 imax = snx+OLy
62
63 c-- Initialise adjoint of monthly mean files calculated
64 c-- in cost_averagesfields (and their ad...).
65 call cost_averagesinit( mythid )
66 _BARRIER
67
68 #ifndef ALLOW_TANGENTLINEAR_RUN
69 cph(
70 cph The following init. shoud not be applied if in the middle
71 cph of a divided adjoint run
72 cph)
73 c inquire( file='costfinal', exist=exst )
74 c if ( .NOT. exst) then
75 c call ecco_cost_init_barfiles( mythid )
76 c endif
77 #endif
78
79 c-- Initialize the tiled cost function contributions.
80 do bj = jtlo,jthi
81 do bi = itlo,ithi
82 objf_hflux(bi,bj) = 0. _d 0
83 objf_hfluxm(bi,bj) = 0. _d 0
84 objf_sflux(bi,bj) = 0. _d 0
85 objf_sfluxm(bi,bj) = 0. _d 0
86 objf_tauu(bi,bj) = 0. _d 0
87 objf_tauum(bi,bj) = 0. _d 0
88 objf_tauv(bi,bj) = 0. _d 0
89 objf_tauvm(bi,bj) = 0. _d 0
90 objf_temp(bi,bj) = 0. _d 0
91 objf_salt(bi,bj) = 0. _d 0
92 objf_temp0(bi,bj) = 0. _d 0
93 objf_salt0(bi,bj) = 0. _d 0
94 objf_temp0smoo(bi,bj) = 0. _d 0
95 objf_salt0smoo(bi,bj) = 0. _d 0
96 objf_tmi(bi,bj) = 0. _d 0
97 objf_sst(bi,bj) = 0. _d 0
98 objf_sss(bi,bj) = 0. _d 0
99 objf_bp(bi,bj) = 0. _d 0
100 objf_h(bi,bj) = 0. _d 0
101 objf_tp(bi,bj) = 0. _d 0
102 objf_ers(bi,bj) = 0. _d 0
103 objf_gfo(bi,bj) = 0. _d 0
104 objf_ctdt(bi,bj) = 0. _d 0
105 objf_ctds(bi,bj) = 0. _d 0
106 objf_ctdtclim(bi,bj) = 0. _d 0
107 objf_ctdsclim(bi,bj) = 0. _d 0
108 objf_xbt(bi,bj) = 0. _d 0
109 objf_argot(bi,bj) = 0. _d 0
110 objf_argos(bi,bj) = 0. _d 0
111 objf_drift(bi,bj) = 0. _d 0
112 objf_wdrift(bi,bj) = 0. _d 0
113 objf_sdrift(bi,bj) = 0. _d 0
114 objf_tdrift(bi,bj) = 0. _d 0
115 objf_scatx(bi,bj) = 0. _d 0
116 objf_scaty(bi,bj) = 0. _d 0
117 objf_scatxm(bi,bj) = 0. _d 0
118 objf_scatym(bi,bj) = 0. _d 0
119 objf_atemp(bi,bj) = 0. _d 0
120 objf_aqh(bi,bj) = 0. _d 0
121 objf_precip(bi,bj) = 0. _d 0
122 objf_swflux(bi,bj) = 0. _d 0
123 objf_swdown(bi,bj) = 0. _d 0
124 objf_uwind(bi,bj) = 0. _d 0
125 objf_vwind(bi,bj) = 0. _d 0
126 objf_obcsn(bi,bj) = 0. _d 0
127 objf_obcss(bi,bj) = 0. _d 0
128 objf_obcsw(bi,bj) = 0. _d 0
129 objf_obcse(bi,bj) = 0. _d 0
130 objf_curmtr(bi,bj) = 0. _d 0
131 objf_ageos(bi,bj) = 0. _d 0
132 objf_diffkr(bi,bj) = 0. _d 0
133 objf_kapgm(bi,bj) = 0. _d 0
134 objf_kapredi(bi,bj) = 0. _d 0
135 objf_theta_ini_fin(bi,bj) = 0. _d 0
136 objf_salt_ini_fin(bi,bj) = 0. _d 0
137 objf_eddytau(bi,bj) = 0. _d 0
138 objf_bottomdrag(bi,bj) = 0. _d 0
139 do k=1,NGENCOST
140 objf_gencost(k,bi,bj) = 0. _d 0
141 enddo
142 c
143 num_hflux(bi,bj) = 0. _d 0
144 num_hfluxm(bi,bj) = 0. _d 0
145 num_hfluxmm(bi,bj) = 0. _d 0
146 num_sflux(bi,bj) = 0. _d 0
147 num_sfluxm(bi,bj) = 0. _d 0
148 num_sfluxmm(bi,bj) = 0. _d 0
149 num_tauu(bi,bj) = 0. _d 0
150 num_tauum(bi,bj) = 0. _d 0
151 num_tauv(bi,bj) = 0. _d 0
152 num_tauvm(bi,bj) = 0. _d 0
153 num_temp(bi,bj) = 0. _d 0
154 num_salt(bi,bj) = 0. _d 0
155 num_temp0(bi,bj) = 0. _d 0
156 num_salt0(bi,bj) = 0. _d 0
157 num_tmi(bi,bj) = 0. _d 0
158 num_sst(bi,bj) = 0. _d 0
159 num_sss(bi,bj) = 0. _d 0
160 num_bp(bi,bj) = 0. _d 0
161 num_h(bi,bj) = 0. _d 0
162 num_tp(bi,bj) = 0. _d 0
163 num_ers(bi,bj) = 0. _d 0
164 num_gfo(bi,bj) = 0. _d 0
165 num_ctdt(bi,bj) = 0. _d 0
166 num_ctds(bi,bj) = 0. _d 0
167 num_ctdtclim(bi,bj) = 0. _d 0
168 num_ctdsclim(bi,bj) = 0. _d 0
169 num_xbt(bi,bj) = 0. _d 0
170 num_argot(bi,bj) = 0. _d 0
171 num_argos(bi,bj) = 0. _d 0
172 num_drift(bi,bj) = 0. _d 0
173 num_wdrift(bi,bj) = 0. _d 0
174 num_sdrift(bi,bj) = 0. _d 0
175 num_tdrift(bi,bj) = 0. _d 0
176 num_scatx(bi,bj) = 0. _d 0
177 num_scaty(bi,bj) = 0. _d 0
178 num_scatxm(bi,bj) = 0. _d 0
179 num_scatym(bi,bj) = 0. _d 0
180 num_atemp(bi,bj) = 0. _d 0
181 num_aqh(bi,bj) = 0. _d 0
182 num_precip(bi,bj) = 0. _d 0
183 num_swflux(bi,bj) = 0. _d 0
184 num_swdown(bi,bj) = 0. _d 0
185 num_uwind(bi,bj) = 0. _d 0
186 num_vwind(bi,bj) = 0. _d 0
187 num_obcsn(bi,bj) = 0. _d 0
188 num_obcss(bi,bj) = 0. _d 0
189 num_obcsw(bi,bj) = 0. _d 0
190 num_obcse(bi,bj) = 0. _d 0
191 num_curmtr(bi,bj) = 0. _d 0
192 num_ageos(bi,bj) = 0. _d 0
193 num_diffkr(bi,bj) = 0. _d 0
194 num_kapgm(bi,bj) = 0. _d 0
195 num_kapredi(bi,bj) = 0. _d 0
196 num_eddytau(bi,bj) = 0. _d 0
197 num_bottomdrag(bi,bj) = 0. _d 0
198 do k=1,NGENCOST
199 num_gencost(k,bi,bj) = 0. _d 0
200 enddo
201 num_theta_ini_fin(bi,bj) = 0. _d 0
202 num_salt_ini_fin(bi,bj) = 0. _d 0
203 enddo
204 enddo
205
206 k = 1
207 do bj = jtlo,jthi
208 do bi = itlo,ithi
209 do j = jmin,jmax
210 do i = imin,imax
211 #ifdef ALLOW_SSH_COST_CONTRIBUTION
212 if (_hFacC(i,j,k,bi,bj) .eq. 0.) then
213 tpmeanmask(i,j,bi,bj) = 0. _d 0
214 else
215 tpmeanmask(i,j,bi,bj) = 1. _d 0
216 endif
217 tpmean(i,j,bi,bj) = 0. _d 0
218 #endif
219 #ifdef ALLOW_SSH_TPANOM_COST_CONTRIBUTION
220 if (_hFacC(i,j,k,bi,bj) .eq. 0.) then
221 tpmask(i,j,bi,bj) = 0. _d 0
222 else
223 tpmask(i,j,bi,bj) = 1. _d 0
224 endif
225 tpobs(i,j,bi,bj) = 0. _d 0
226 #endif
227 #ifdef ALLOW_SSH_ERSANOM_COST_CONTRIBUTION
228 if (_hFacC(i,j,k,bi,bj) .eq. 0.) then
229 ersmask(i,j,bi,bj) = 0. _d 0
230 else
231 ersmask(i,j,bi,bj) = 1. _d 0
232 endif
233 ersobs(i,j,bi,bj) = 0. _d 0
234 #endif
235 #ifdef ALLOW_SSH_GFOANOM_COST_CONTRIBUTION
236 if (_hFacC(i,j,k,bi,bj) .eq. 0.) then
237 gfomask(i,j,bi,bj) = 0. _d 0
238 else
239 gfomask(i,j,bi,bj) = 1. _d 0
240 endif
241 gfoobs(i,j,bi,bj) = 0. _d 0
242 #endif
243 #ifdef ALLOW_TMI_SST_COST_CONTRIBUTION
244 if (_hFacC(i,j,k,bi,bj) .eq. 0.) then
245 tmimask(i,j,bi,bj) = 0. _d 0
246 else
247 tmimask(i,j,bi,bj) = 1. _d 0
248 endif
249 tmidat(i,j,bi,bj) = 0. _d 0
250 #endif
251 #ifdef ALLOW_SST_COST_CONTRIBUTION
252 if (_hFacC(i,j,k,bi,bj) .eq. 0.) then
253 sstmask(i,j,bi,bj) = 0. _d 0
254 else
255 sstmask(i,j,bi,bj) = 1. _d 0
256 endif
257 sstdat(i,j,bi,bj) = 0. _d 0
258 #endif
259 #ifdef ALLOW_SSS_COST_CONTRIBUTION
260 if (_hFacC(i,j,k,bi,bj) .eq. 0.) then
261 sssmask(i,j,bi,bj) = 0. _d 0
262 else
263 sssmask(i,j,bi,bj) = 1. _d 0
264 endif
265 sssdat(i,j,bi,bj) = 0. _d 0
266 #endif
267 #ifdef ALLOW_BP_COST_CONTRIBUTION
268 if (_hFacC(i,j,k,bi,bj) .eq. 0.) then
269 bpmask(i,j,bi,bj) = 0. _d 0
270 else
271 bpmask(i,j,bi,bj) = 1. _d 0
272 endif
273 bpdat(i,j,bi,bj) = 0. _d 0
274 #endif
275 enddo
276 enddo
277 enddo
278 enddo
279
280 c-- Initialise the "global" parts of the cost function.
281 _BEGIN_MASTER( mythid )
282 objf_obcsvol = 0. _d 0
283 objf_hmean = 0. _d 0
284 objf_hfluxmm = 0. _d 0
285 objf_sfluxmm = 0. _d 0
286 objf_transp = 0. _d 0
287 num_obcsvol = 0. _d 0
288 num_hmean = 0. _d 0
289 num_transp = 0. _d 0
290 _END_MASTER( mythid )
291
292 _BARRIER
293
294 return
295 end
296

  ViewVC Help
Powered by ViewVC 1.1.22