1 |
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ |
2 |
_/ _/ |
3 |
_/ T angent linear and _/ |
4 |
_/ A djoint Version 5.2.14 _/ |
5 |
_/ M odel _/ |
6 |
_/ C ompiler _/ |
7 |
_/ _/ |
8 |
_/ Copyright (c) 1995-2000 Ralf Giering _/ |
9 |
_/ _/ |
10 |
_/ only for use at MIT EAPS Phys. Ocean., Cambridge _/ |
11 |
_/ _/ |
12 |
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ |
13 |
|
14 |
tamc_code_ecco.f: |
15 |
parsing subroutine ** grad_sigma ** |
16 |
parsing subroutine ** calc_buoyancy ** |
17 |
parsing subroutine ** calc_common_factors ** |
18 |
parsing subroutine ** calc_diffusivity ** |
19 |
parsing subroutine ** calc_div_ghat ** |
20 |
parsing subroutine ** calc_grad_phi_surf ** |
21 |
parsing subroutine ** calc_gs ** |
22 |
parsing subroutine ** calc_gt ** |
23 |
parsing subroutine ** calc_ivdc ** |
24 |
parsing subroutine ** calc_mom_rhs ** |
25 |
parsing subroutine ** calc_phi_hyd ** |
26 |
parsing subroutine ** comm_stats ** |
27 |
parsing subroutine ** convect ** |
28 |
parsing subroutine ** convective_adjustment ** |
29 |
parsing subroutine ** correction_step ** |
30 |
parsing subroutine ** cycle_tracer ** |
31 |
parsing function ** different_multiple ** |
32 |
parsing subroutine ** do_fields_blocking_exchanges ** |
33 |
parsing subroutine ** do_the_model_io ** |
34 |
parsing subroutine ** dynamics ** |
35 |
parsing subroutine ** external_forcing_u ** |
36 |
parsing subroutine ** external_forcing_v ** |
37 |
parsing subroutine ** external_forcing_t ** |
38 |
parsing subroutine ** external_forcing_s ** |
39 |
parsing subroutine ** external_forcing_surf ** |
40 |
parsing subroutine ** find_alpha ** |
41 |
parsing subroutine ** find_beta ** |
42 |
parsing subroutine ** find_rho ** |
43 |
parsing subroutine ** freeze ** |
44 |
parsing subroutine ** get_offline_fields ** |
45 |
parsing subroutine ** impldiff ** |
46 |
parsing subroutine ** ini_cartesian_grid ** |
47 |
parsing subroutine ** ini_cg2d ** |
48 |
parsing subroutine ** ini_communication_patterns ** |
49 |
parsing subroutine ** ini_cori ** |
50 |
parsing subroutine ** ini_depths ** |
51 |
parsing subroutine ** ini_fields ** |
52 |
parsing subroutine ** ini_forcing ** |
53 |
parsing subroutine ** ini_grid ** |
54 |
parsing subroutine ** ini_masks_etc ** |
55 |
parsing subroutine ** ini_procs ** |
56 |
parsing subroutine ** ini_psurf ** |
57 |
parsing subroutine ** ini_salt ** |
58 |
parsing subroutine ** ini_spherical_polar_grid ** |
59 |
parsing subroutine ** ini_theta ** |
60 |
parsing subroutine ** ini_uvel ** |
61 |
parsing subroutine ** ini_vertical_grid ** |
62 |
parsing subroutine ** ini_vvel ** |
63 |
parsing subroutine ** ini_wvel ** |
64 |
parsing subroutine ** initialise_varia ** |
65 |
parsing subroutine ** integrate_for_w ** |
66 |
parsing subroutine ** modeldata_example ** |
67 |
parsing subroutine ** nml_filter ** |
68 |
parsing subroutine ** packages_init_variables ** |
69 |
parsing subroutine ** plot_field_xyrs ** |
70 |
parsing subroutine ** plot_field_xyrl ** |
71 |
parsing subroutine ** plot_field_xyzrs ** |
72 |
parsing subroutine ** plot_field_xyzrl ** |
73 |
parsing subroutine ** solve_for_pressure ** |
74 |
parsing subroutine ** state_summary ** |
75 |
parsing subroutine ** timestep ** |
76 |
parsing subroutine ** the_correction_step ** |
77 |
parsing subroutine ** the_main_sens ** |
78 |
parsing subroutine ** timestep_tracer ** |
79 |
parsing subroutine ** swfrac ** |
80 |
parsing subroutine ** kpp_calc ** |
81 |
parsing subroutine ** kpp_calc_diff ** |
82 |
parsing subroutine ** kpp_do_diags ** |
83 |
parsing subroutine ** kpp_init ** |
84 |
parsing subroutine ** kpp_open_diags ** |
85 |
parsing subroutine ** kppmix ** |
86 |
parsing subroutine ** bldepth ** |
87 |
parsing subroutine ** wscale ** |
88 |
parsing subroutine ** ri_iwmix ** |
89 |
parsing subroutine ** z121 ** |
90 |
parsing subroutine ** kpp_smooth_horiz ** |
91 |
parsing subroutine ** smooth_horiz ** |
92 |
parsing subroutine ** blmix ** |
93 |
parsing subroutine ** enhance ** |
94 |
parsing subroutine ** statekpp ** |
95 |
parsing subroutine ** kpp_transport_s ** |
96 |
parsing subroutine ** kpp_transport_t ** |
97 |
parsing subroutine ** gmredi_calc_diff ** |
98 |
parsing subroutine ** gmredi_calc_tensor ** |
99 |
parsing subroutine ** gmredi_calc_tensor_dummy ** |
100 |
parsing subroutine ** gmredi_diags ** |
101 |
parsing subroutine ** gmredi_init ** |
102 |
parsing subroutine ** gmredi_rtransport ** |
103 |
parsing subroutine ** gmredi_slope_limit ** |
104 |
parsing subroutine ** gmredi_xtransport ** |
105 |
parsing subroutine ** gmredi_ytransport ** |
106 |
parsing subroutine ** ctrl_map_ini ** |
107 |
parsing subroutine ** ctrl_map_forcing ** |
108 |
parsing subroutine ** cost_final ** |
109 |
parsing subroutine ** cost_init ** |
110 |
parsing subroutine ** cost_test ** |
111 |
|
112 |
========================================= |
113 |
semantic analysis |
114 |
========================================= |
115 |
|
116 |
========================================= |
117 |
normalization |
118 |
========================================= |
119 |
|
120 |
========================================= |
121 |
control flow analysis |
122 |
========================================= |
123 |
control flow analysis of subroutine nml_filter |
124 |
==> irreducible control flow graph |
125 |
|
126 |
========================================= |
127 |
data dependence analysis |
128 |
========================================= |
129 |
|
130 |
========================================= |
131 |
global data flow analysis |
132 |
========================================= |
133 |
determine required routines and statements for subroutine : the_main_sens |
134 |
dependent variable(s) = |
135 |
fc |
136 |
|
137 |
determine dependent routines and statements : |
138 |
independent variable(s) = |
139 |
xx_hflux_dummy xx_salt_dummy xx_sflux_dummy xx_sss_dummy xx_sst_dummy xx_tauu_dummy xx_tauv_dummy xx_theta_dummy |
140 |
|
141 |
the independent variable(s) are : |
142 |
xx_hflux_dummy xx_salt_dummy xx_sflux_dummy xx_sss_dummy xx_sst_dummy xx_tauu_dummy xx_tauv_dummy xx_theta_dummy |
143 |
|
144 |
the dependent variable(s) are : |
145 |
fc |
146 |
|
147 |
TAMC WARNING: toplevel routine overwrites the input variables: |
148 |
niter0 |
149 |
|
150 |
========================================= |
151 |
generate adjoint common blocks |
152 |
========================================= |
153 |
original common block ( 2): controlvars_r |
154 |
derivative common block ( 2): adcontrolvars_r |
155 |
original common block ( 14): cost_r |
156 |
derivative common block ( 2): adcost_r |
157 |
original common block ( 10): ctrl_dummy |
158 |
derivative common block ( 8): adctrl_dummy |
159 |
original common block ( 7): dynvars_cd |
160 |
derivative common block ( 7): addynvars_cd |
161 |
original common block ( 14): dynvars_r |
162 |
derivative common block ( 14): addynvars_r |
163 |
original common block ( 7): ffields |
164 |
derivative common block ( 6): adffields |
165 |
original common block ( 3): gm_wtensor |
166 |
derivative common block ( 3): adgm_wtensor |
167 |
original common block ( 5): kpp |
168 |
derivative common block ( 5): adkpp |
169 |
original common block ( 1): kpp_short |
170 |
derivative common block ( 1): adkpp_short |
171 |
original common block ( 5): tendency_forcing |
172 |
derivative common block ( 4): adtendency_forcing |
173 |
|
174 |
========================================= |
175 |
generate adjoint routines |
176 |
========================================= |
177 |
begin generate adjoint computations of : the_main_sens |
178 |
begin generate adjoint computations of : cost_final |
179 |
end generate adjoint computations of : cost_final |
180 |
begin generate adjoint computations of : cost_test |
181 |
end generate adjoint computations of : cost_test |
182 |
begin generate adjoint computations of : do_fields_blocking_exchanges |
183 |
end generate adjoint computations of : do_fields_blocking_exchanges |
184 |
begin generate adjoint computations of : the_correction_step |
185 |
begin generate adjoint computations of : convective_adjustment |
186 |
begin generate adjoint computations of : convect |
187 |
end generate adjoint computations of : convect |
188 |
begin generate adjoint computations of : find_rho |
189 |
end generate adjoint computations of : find_rho |
190 |
end generate adjoint computations of : convective_adjustment |
191 |
begin generate adjoint computations of : cycle_tracer |
192 |
end generate adjoint computations of : cycle_tracer |
193 |
begin generate adjoint computations of : correction_step |
194 |
end generate adjoint computations of : correction_step |
195 |
begin generate adjoint computations of : calc_grad_phi_surf |
196 |
end generate adjoint computations of : calc_grad_phi_surf |
197 |
end generate adjoint computations of : the_correction_step |
198 |
begin generate adjoint computations of : solve_for_pressure |
199 |
TAMC INFO tamc_code_ecco.f:122841 : subroutine cg2d is self adjoint |
200 |
TAMC WARNING tamc_code_ecco.f:122841 : self adjoint routine has more than one active input |
201 |
TAMC WARNING tamc_code_ecco.f:122841 : adjoint input variable adcg2d_x will be reset |
202 |
begin generate adjoint computations of : calc_div_ghat |
203 |
end generate adjoint computations of : calc_div_ghat |
204 |
end generate adjoint computations of : solve_for_pressure |
205 |
begin generate adjoint computations of : dynamics |
206 |
begin generate adjoint computations of : impldiff |
207 |
TAMC INFO DOLOOP_STMT tamc_code_ecco.f:67555 in impldiff |
208 |
handled as sequential loop, only flow dependencies for : gynm1 |
209 |
TAMC INFO DOLOOP_STMT tamc_code_ecco.f:67543 in impldiff |
210 |
handled as sequential loop, only flow dependencies for : gynm1 |
211 |
TAMC INFO DOLOOP_STMT tamc_code_ecco.f:67522 in impldiff |
212 |
handled as sequential loop, only flow dependencies for : bet |
213 |
end generate adjoint computations of : impldiff |
214 |
begin generate adjoint computations of : timestep |
215 |
end generate adjoint computations of : timestep |
216 |
begin generate adjoint computations of : calc_mom_rhs |
217 |
begin generate adjoint computations of : external_forcing_v |
218 |
end generate adjoint computations of : external_forcing_v |
219 |
begin generate adjoint computations of : external_forcing_u |
220 |
end generate adjoint computations of : external_forcing_u |
221 |
end generate adjoint computations of : calc_mom_rhs |
222 |
begin generate adjoint computations of : calc_phi_hyd |
223 |
end generate adjoint computations of : calc_phi_hyd |
224 |
begin generate adjoint computations of : freeze |
225 |
end generate adjoint computations of : freeze |
226 |
begin generate adjoint computations of : timestep_tracer |
227 |
end generate adjoint computations of : timestep_tracer |
228 |
begin generate adjoint computations of : calc_gs |
229 |
begin generate adjoint computations of : external_forcing_s |
230 |
end generate adjoint computations of : external_forcing_s |
231 |
begin generate adjoint computations of : kpp_transport_s |
232 |
end generate adjoint computations of : kpp_transport_s |
233 |
begin generate adjoint computations of : gmredi_rtransport |
234 |
end generate adjoint computations of : gmredi_rtransport |
235 |
begin generate adjoint computations of : gmredi_ytransport |
236 |
end generate adjoint computations of : gmredi_ytransport |
237 |
begin generate adjoint computations of : gmredi_xtransport |
238 |
end generate adjoint computations of : gmredi_xtransport |
239 |
end generate adjoint computations of : calc_gs |
240 |
begin generate adjoint computations of : calc_gt |
241 |
begin generate adjoint computations of : external_forcing_t |
242 |
end generate adjoint computations of : external_forcing_t |
243 |
begin generate adjoint computations of : kpp_transport_t |
244 |
end generate adjoint computations of : kpp_transport_t |
245 |
end generate adjoint computations of : calc_gt |
246 |
begin generate adjoint computations of : calc_diffusivity |
247 |
begin generate adjoint computations of : kpp_calc_diff |
248 |
end generate adjoint computations of : kpp_calc_diff |
249 |
begin generate adjoint computations of : gmredi_calc_diff |
250 |
end generate adjoint computations of : gmredi_calc_diff |
251 |
end generate adjoint computations of : calc_diffusivity |
252 |
begin generate adjoint computations of : calc_common_factors |
253 |
end generate adjoint computations of : calc_common_factors |
254 |
begin generate adjoint computations of : kpp_calc |
255 |
begin generate adjoint computations of : swfrac |
256 |
end generate adjoint computations of : swfrac |
257 |
begin generate adjoint computations of : kppmix |
258 |
begin generate adjoint computations of : enhance |
259 |
end generate adjoint computations of : enhance |
260 |
begin generate adjoint computations of : blmix |
261 |
begin generate adjoint computations of : wscale |
262 |
end generate adjoint computations of : wscale |
263 |
end generate adjoint computations of : blmix |
264 |
begin generate adjoint computations of : bldepth |
265 |
end generate adjoint computations of : bldepth |
266 |
begin generate adjoint computations of : ri_iwmix |
267 |
end generate adjoint computations of : ri_iwmix |
268 |
end generate adjoint computations of : kppmix |
269 |
begin generate adjoint computations of : kpp_smooth_horiz |
270 |
end generate adjoint computations of : kpp_smooth_horiz |
271 |
begin generate adjoint computations of : statekpp |
272 |
begin generate adjoint computations of : find_beta |
273 |
end generate adjoint computations of : find_beta |
274 |
begin generate adjoint computations of : find_alpha |
275 |
end generate adjoint computations of : find_alpha |
276 |
end generate adjoint computations of : statekpp |
277 |
end generate adjoint computations of : kpp_calc |
278 |
begin generate adjoint computations of : gmredi_calc_tensor |
279 |
begin generate adjoint computations of : gmredi_slope_limit |
280 |
end generate adjoint computations of : gmredi_slope_limit |
281 |
end generate adjoint computations of : gmredi_calc_tensor |
282 |
begin generate adjoint computations of : gmredi_calc_tensor_dummy |
283 |
end generate adjoint computations of : gmredi_calc_tensor_dummy |
284 |
begin generate adjoint computations of : external_forcing_surf |
285 |
end generate adjoint computations of : external_forcing_surf |
286 |
begin generate adjoint computations of : calc_ivdc |
287 |
end generate adjoint computations of : calc_ivdc |
288 |
begin generate adjoint computations of : grad_sigma |
289 |
end generate adjoint computations of : grad_sigma |
290 |
TAMC INFO avoiding recomputation of : help_h |
291 |
begin generate adjoint computations of : integrate_for_w |
292 |
end generate adjoint computations of : integrate_for_w |
293 |
end generate adjoint computations of : dynamics |
294 |
TAMC INFO tamc_code_ecco.f:131666 : tape computations inserted |
295 |
TAMC INFO tamc_code_ecco.f:131666 : tape computations inserted |
296 |
TAMC INFO tamc_code_ecco.f:131642 : tape computations inserted |
297 |
begin generate adjoint computations of : ctrl_map_forcing |
298 |
end generate adjoint computations of : ctrl_map_forcing |
299 |
begin generate adjoint computations of : initialise_varia |
300 |
begin generate adjoint computations of : packages_init_variables |
301 |
begin generate adjoint computations of : ctrl_map_ini |
302 |
end generate adjoint computations of : ctrl_map_ini |
303 |
end generate adjoint computations of : packages_init_variables |
304 |
end generate adjoint computations of : initialise_varia |
305 |
TAMC INFO tamc_code_ecco.f:131666 : tape computations inserted |
306 |
TAMC INFO tamc_code_ecco.f:131666 : tape computations inserted |
307 |
TAMC INFO tamc_code_ecco.f:131642 : tape computations inserted |
308 |
TAMC INFO avoiding recomputation of : max_lev2 |
309 |
TAMC INFO avoiding recomputation of : max_lev3 |
310 |
TAMC INFO avoiding recomputation of : empmr,fu,fv,qnet,sss,sst |
311 |
TAMC INFO avoiding recomputation of : kmixcbm2,kmixcws1,kmixcws2,kmixcws3,kmixcws4,kpp_bldepth15,kpp_i1,kpp_r11,kpp_r12,kpp_r13,niter0,qsw |
312 |
TAMC INFO tamc_code_ecco.f:131573 : function and tape computations inserted |
313 |
TAMC WARNING tamc_code_ecco.f:131688 : storing of variable uvel not necessary |
314 |
TAMC WARNING tamc_code_ecco.f:131689 : storing of variable vvel not necessary |
315 |
TAMC WARNING tamc_code_ecco.f:131673 : tape comlev1_kpp_sm not used |
316 |
TAMC WARNING tamc_code_ecco.f:131573 : tape dummytape not used |
317 |
TAMC WARNING tamc_code_ecco.f:150702 : tape z121tape not used |
318 |
end generate adjoint computations of : the_main_sens |
319 |
|
320 |
========================================= |
321 |
generate auxiliary routines |
322 |
========================================= |
323 |
generate initialization of global adjoint variables |
324 |
TAMC INFO adjoint of common block variable fc not initialized |
325 |
TAMC INFO adjoint of common block variable xx_theta_dummy not initialized |
326 |
TAMC INFO adjoint of common block variable xx_salt_dummy not initialized |
327 |
TAMC INFO adjoint of common block variable xx_hflux_dummy not initialized |
328 |
TAMC INFO adjoint of common block variable xx_sflux_dummy not initialized |
329 |
TAMC INFO adjoint of common block variable xx_tauu_dummy not initialized |
330 |
TAMC INFO adjoint of common block variable xx_tauv_dummy not initialized |
331 |
TAMC INFO adjoint of common block variable xx_sss_dummy not initialized |
332 |
TAMC INFO adjoint of common block variable xx_sst_dummy not initialized |
333 |
|
334 |
========================================= |
335 |
Fortran dialect transformations |
336 |
========================================= |
337 |
|
338 |
========================================= |
339 |
write modified and adjoint code |
340 |
========================================= |
341 |
tamc_code_ecco_ad.f: |
342 |
writing subroutine ** mdbldepth ** |
343 |
writing subroutine ** adbldepth ** |
344 |
writing subroutine ** mdblmix ** |
345 |
writing subroutine ** adblmix ** |
346 |
writing subroutine ** adcalc_common_factors ** |
347 |
writing subroutine ** adcalc_diffusivity ** |
348 |
writing subroutine ** adcalc_div_ghat ** |
349 |
writing subroutine ** adcalc_grad_phi_surf ** |
350 |
writing subroutine ** adcalc_gs ** |
351 |
writing subroutine ** adcalc_gt ** |
352 |
writing subroutine ** adcalc_ivdc ** |
353 |
writing subroutine ** adcalc_mom_rhs ** |
354 |
writing subroutine ** adcalc_phi_hyd ** |
355 |
writing subroutine ** adconvect ** |
356 |
writing subroutine ** mdconvective_adjustment ** |
357 |
writing subroutine ** adconvective_adjustment ** |
358 |
writing subroutine ** adcorrection_step ** |
359 |
writing subroutine ** adcost_final ** |
360 |
writing subroutine ** adcost_test ** |
361 |
writing subroutine ** adctrl_map_forcing ** |
362 |
writing subroutine ** adctrl_map_ini ** |
363 |
writing subroutine ** adcycle_tracer ** |
364 |
writing subroutine ** addo_fields_blocking_exchanges ** |
365 |
writing subroutine ** mddynamics ** |
366 |
writing subroutine ** addynamics ** |
367 |
writing subroutine ** adenhance ** |
368 |
writing subroutine ** adexternal_forcing_s ** |
369 |
writing subroutine ** adexternal_forcing_surf ** |
370 |
writing subroutine ** adexternal_forcing_t ** |
371 |
writing subroutine ** adexternal_forcing_u ** |
372 |
writing subroutine ** adexternal_forcing_v ** |
373 |
writing subroutine ** adfind_alpha ** |
374 |
writing subroutine ** adfind_beta ** |
375 |
writing subroutine ** adfind_rho ** |
376 |
writing subroutine ** adfreeze ** |
377 |
writing subroutine ** adgmredi_calc_diff ** |
378 |
writing subroutine ** adgmredi_calc_tensor ** |
379 |
writing subroutine ** adgmredi_calc_tensor_dummy ** |
380 |
writing subroutine ** adgmredi_rtransport ** |
381 |
writing subroutine ** adgmredi_slope_limit ** |
382 |
writing subroutine ** adgmredi_xtransport ** |
383 |
writing subroutine ** adgmredi_ytransport ** |
384 |
writing subroutine ** adgrad_sigma ** |
385 |
writing subroutine ** adimpldiff ** |
386 |
writing subroutine ** adinitialise_varia ** |
387 |
writing subroutine ** adintegrate_for_w ** |
388 |
writing subroutine ** mdkpp_calc ** |
389 |
writing subroutine ** adkpp_calc ** |
390 |
writing subroutine ** adkpp_calc_diff ** |
391 |
writing subroutine ** adkpp_smooth_horiz ** |
392 |
writing subroutine ** adkpp_transport_s ** |
393 |
writing subroutine ** adkpp_transport_t ** |
394 |
writing subroutine ** mdkppmix ** |
395 |
writing subroutine ** adkppmix ** |
396 |
writing subroutine ** adpackages_init_variables ** |
397 |
writing subroutine ** adri_iwmix ** |
398 |
writing subroutine ** adsolve_for_pressure ** |
399 |
writing subroutine ** adstatekpp ** |
400 |
writing subroutine ** adswfrac ** |
401 |
writing subroutine ** mdthe_correction_step ** |
402 |
writing subroutine ** adthe_correction_step ** |
403 |
writing subroutine ** adthe_main_sens ** |
404 |
writing subroutine ** adtimestep ** |
405 |
writing subroutine ** adtimestep_tracer ** |
406 |
writing subroutine ** adwscale ** |
407 |
writing subroutine ** adzero ** |