4 |
Notes on tags used in MITgcmUV |
Notes on tags used in MITgcmUV |
5 |
============================== |
============================== |
6 |
|
|
7 |
|
o pkg/seaice: another attempt to make the adjoint work for sea ice dynamics |
8 |
|
- re-initialize more variables in seaice_lsr: u/vIceC, u/vIceNm1 |
9 |
|
- add an auxilliary variable "bet" and fix store directives and keys in |
10 |
|
seaice_lsr_tridiagu/v, this seems to do the trick (i.e. more or |
11 |
|
less exact gradients in my tests); but there are still |
12 |
|
recomputation warning (although gradients are sort of OK), when |
13 |
|
SEAICE_LSR_VECTORIZE is not defined, so this flag and |
14 |
|
SEAICE_LSR_VECTORIZE_ZEBRA are recommended for efficiency. |
15 |
|
- update verification experiments lab_sea. |
16 |
|
- change some comments in S/R seaice_calc_viscosities |
17 |
|
o model/src: |
18 |
|
- if staggerTimeStep=T, always apply exchange to velocity field in |
19 |
|
do_stagger_fields_exchanges.F instead of in do_fields_blocking_exchanges.F |
20 |
|
(independent of using multi-dim advection or not); no effect on FWD run |
21 |
|
but affects AD results (at machine truncation level): update output of |
22 |
|
experiment 1D_ocean_ice_column (ad: 12 digits), hs94.1x64x5 (ad,oad: 13.d) |
23 |
|
and isomip (oad: 12.d). |
24 |
|
o pkg/generic_advdiff: |
25 |
|
- stop if doAB_onGtGs is set to FALSE but ignored |
26 |
|
- refine warning related to stability of tracer time-stepping |
27 |
|
regarding internal wave dynamics. |
28 |
|
- setting of AdamsBashforth_T,S when doAB_onGtGs=F: remove condition |
29 |
|
on staggerTimeStep & implicitIntGravWave (will now get a warning |
30 |
|
if potentially unstable). |
31 |
|
o pkg/kl10: |
32 |
|
- add new pkg "kl10" for mixing due to internal wave breaking, from |
33 |
|
http://www.sciencedirect.com/science/article/pii/S1463500310000144 |
34 |
|
(contribution from Jody Klymak), tested in verification experiment |
35 |
|
verification/internal_wave/input.kl10/ |
36 |
|
o isomip experiment: |
37 |
|
- test pkg/shelfice with Non-Lin Free-Surf in one of the FWD set-up |
38 |
|
(input.htd) and update the output. |
39 |
|
o cd_code experiments: |
40 |
|
- use default cd_code options (#undef CD_CODE_NO_AB_MOMENTUM & |
41 |
|
#undef CD_CODE_NO_AB_CORIOLIS) in experiments: cfc_example (fwd) |
42 |
|
global_ocean.90x40x15 (ad & oad) and OpenAD (ad & oad) and |
43 |
|
update the corresponding output. |
44 |
|
o pkg/seaice: |
45 |
|
- reduce the number of include files and store directives in |
46 |
|
S/R seaice_lsr_tridiagu/v |
47 |
|
- change the order of loops in one case in S/R seaice_lsr_tridiagv |
48 |
|
(only for SEAICE_VECTORIZE_LSR_ZEBRA defined), which allows me to |
49 |
|
get rid off one store directive (a TAF bug?) |
50 |
|
- add one more instance of ifdef SEAICE_VECTORIZE_LSR_ZEBRA in |
51 |
|
S/R seaice_lsr_tridiagv to change the loop range for consistency |
52 |
|
- remove ilcall, m from parameter list of S/R seaice_lsr_tridiagu/v |
53 |
|
- fix a bug that affects the JFNK solver: replace sNx/y by i/jMax in |
54 |
|
S/R seaice_lsr_tridiagu/v (requires update of |
55 |
|
offline_exf_seaice/input.dyn_jfnk) |
56 |
|
|
57 |
|
checkpoint65a (2014/07/27) |
58 |
|
o model/src: |
59 |
|
- Non-Lin Free-Surf in p/z coords: allows hFacW,S to be larger than |
60 |
|
surrounding hFacC=1 @ edge of a step with different kSurfC on either side |
61 |
|
(topo in p-coords, ice-shelf in z-coords); update output of experiments |
62 |
|
tutorial_global_oce_in_p and isomip (both AD and OpenAD output). |
63 |
|
o model/src: |
64 |
|
- collect momentum forcing tendency into local 2-D array (passed as argument |
65 |
|
to apply_forcing S/R); this simplifies mom. Forcing diagnostics and CD_CODE |
66 |
|
parts in timestep.F (without CD_CODE_NO_AB_MOMENTUM defined = the default); |
67 |
|
affects results at machine truncation level (e.g., if using OBCS_SPONGE). |
68 |
|
- collect T & S forcing tendency into local 2-D array (passed as argument to |
69 |
|
apply_forcing S/R); add 3-D diagnostics for temp & salt forcing tendency. |
70 |
|
affects results at machine truncation level (e.g., ocean: if using |
71 |
|
SHORTWAVE_HEATING and atmos:, if using FrictionHeating or (atm_Rq<>0) |
72 |
|
moist correction due to vertical advection). |
73 |
|
- update output of experiments: fizhi-cs-32x32x40 (13 digits), |
74 |
|
global_ocean.cs32x15 (fwd: icedyn, seaice, thsice, all 3 @ 11d; adm & tml: |
75 |
|
seaice_dynmix & thsice, fwd grd @ 3 & 8), hs94.1x64x5 (ad grd @ 13), |
76 |
|
obcs_ctrl (ad & fwd grd @ 12 & 7). |
77 |
|
o pkg/ptracers & diagnostics: |
78 |
|
- use ptracers (short) name (instead of long one) to make ptracers diagnostics |
79 |
|
title (to avoid some unexpected truncation); sort out ptracers diags units. |
80 |
|
- collect ptracer forcing tendency into local 2-D array (passed as argument |
81 |
|
to apply_forcing S/R); add 3-D diagnostics for ptracers forcing tendency. |
82 |
|
|
83 |
|
checkpoint65 (2014/07/18) |
84 |
|
o pkg/fizhi: |
85 |
|
- add parenthesis around fizhi tendencies in fizhi_tendency_apply.F: this |
86 |
|
affects results at machine truncation level. Update output of experiments |
87 |
|
fizhi-cs-32x32x40 (12 digits for cg2d) & fizhi-cs-aqualev20 (13 digits). |
88 |
o pkg/seaice: more clean up |
o pkg/seaice: more clean up |
89 |
- rename TAF common block tapes to be more consistent and remove |
- rename TAF common block tapes to be more consistent and remove |
90 |
unnecessary duplicates |
unnecessary duplicates |
91 |
- add store directives to remove more recomputations, |
- add store directives to remove more recomputations, but use smaller |
92 |
but use smaller tapes (and adjust keys) when |
tapes (and adjust keys) when SEAICE_LSR_ADJOINT_ITER is undefined. |
93 |
SEAICE_LSR_ADJOINT_ITER is undefined. The idea behind this flag is |
The idea behind this flag is to reduce the memory footprint when the |
94 |
to reduce the memory footprint when the adjoint of the LSR is not |
adjoint of the LSR is not required. As of now, defining the flag |
95 |
required. As of now, defining the flag SEAICE_LSR_ADJOINT_ITER |
SEAICE_LSR_ADJOINT_ITER increases 4 common block tapes for 2D field by |
96 |
increase 4 common block tapes for 2D field by a factor of |
a factor of SOLV_MAX_FIXED (=500 by default in SEAICE_SIZE.h). |
97 |
SOLV_MAX_FIXED (=500 by default in SEAICE_SIZE.h). For experiment |
For experiment offline_exf_seaice, this means on a linux box with gfortran |
98 |
offline_exf_seaice, this means on a linux box with gfortran nearly |
nearly a factor of 10 (but keep in mind there is mostly seaice code in |
99 |
a factor of 10 (but keep in mind there is mostly seaice code |
this experiment): |
|
in this experiment) |
|
100 |
> size mitgcmuv_ad |
> size mitgcmuv_ad |
101 |
text data bss dec hex |
text data bss dec hex |
102 |
5100659 1216 220458952 225560827 d71c8fb |
5100659 1216 220458952 225560827 d71c8fb |
103 |
5339425 1200 1868783272 1874123897 6fb4dc79 (SEAICE_LSR_ADJOINT_ITER) |
5339425 1200 1868783272 1874123897 6fb4dc79 (SEAICE_LSR_ADJOINT_ITER) |
104 |
but only a moderate increase of 36% for global_ocean.cs32x15 |
but only a moderate increase of 36% for global_ocean.cs32x15: |
105 |
text data bss dec hex |
text data bss dec hex |
106 |
6695027 1648 1014578664 1021275339 3cdf6ccb |
6695027 1648 1014578664 1021275339 3cdf6ccb |
107 |
6695203 1648 1382505320 1389202171 52cd8afb (SEAICE_LSR_ADJOINT_ITER) |
6695203 1648 1382505320 1389202171 52cd8afb (SEAICE_LSR_ADJOINT_ITER) |
108 |
- note: there are still recomputations in global_ocean.cs32x15 and |
- note: there are still recomputations in global_ocean.cs32x15 and |
109 |
the gradient agreement changes (gets a little worse) |
offline_exf_seaice and the gradient agreement changes (gets a |
110 |
|
little worse) for global_ocean.cs32x15 (-> update output_adm.seaice.txt) |
111 |
- in general, the AD gradients still are wrong |
- in general, the AD gradients still are wrong |
112 |
o OpenAD |
o OpenAD |
113 |
- clean up code_oad/ directories somewhat by moving files |
- clean up code_oad/ directories somewhat by moving files |