/[MITgcm]/MITgcm/doc/tag-index
ViewVC logotype

Diff of /MITgcm/doc/tag-index

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

revision 1.125 by jmc, Mon Jan 27 21:42:19 2003 UTC revision 1.904 by jmc, Mon Nov 5 19:38:59 2007 UTC
# Line 1  Line 1 
1  $Header$  $Header$
2    $Name$
3    
4      Notes on tags used in MITgcmUV      Notes on tags used in MITgcmUV
5      ==============================      ==============================
6    
7    o split PTRACERS.h in 2 header files: PTRACERS_FIELDS.h & PTRACERS_PARAMS.h
8     (keep a temporary version of PTRACERS.h in verification/OpenAD/code_ad_openad
9      to allow to compile customized code before the update)
10    o cleaning-up:
11      - fix CPP instruction syntax in pkg/obcs
12      - replace (some) call to MDSIO S/R with call to RW interface S/R ; and
13        add #ifdef ALLOW_MDSIO elsewhere (allows to compile without pkg/mdsio)
14      - fix some threads issue in IO parts.
15    o pkg/dic:
16      - add tons of "_d 0" (--> much better testreports !)
17       and then update outputs of tutorial_global_oce_biogeo
18    o pkg/mom_fluxform:
19      add a special version of momentum advection intended to conserve momentum
20      next to a bathymetry step or a coastline edge. (default = off = #undef)
21    o new read/write pickup version:
22      - for now, only implemented for main (mdsio) pickup file.
23      - write out only what is needed to restart; merge pickup_nh , pickup_ph
24        and main pickup together.
25      - read meta file; read only what is needed to restart; stop if a field
26        is missing (if pickupStrictlyMatch=T, = the default) or try to restart
27        if it make sense (even if the restart is not perfect).
28      - if no meta file, assume that pickup to read corresponds exactly to
29        a pickup that would currently be written.
30      - read pickup written in the old format (until checkpoint59i) if it
31        recognizes an old meta file (no field-list).
32      - add a meta file in exp. which starts from a pickup: 2 cases:
33        a) minimal meta file (with just file precision) + pickupStrictlyMatch=F
34         e.g.: global_ocean.90x40x15/input/pickup.0000036000.meta
35        b) a meta file describing the content of the associated pickup file
36         e.g.: tutorial_global_oce_biogeo/input/pickup.0004248000.meta
37    o pkg/mdsio & pkg/rw:
38      - new routine to read a meta file ; new set of routine to read
39        Multiple-fields file (with meta file).
40    o added open boundary conditions capability for seaice
41        HSNOW, HSALT, UICE, and VICE
42    
43    checkpoint59i
44    o adjoint:
45      * fix multiDimAdvection adjoint
46        (partial recomputation problem by TAF for fVerT(:,:,kDown)
47        and comlev1 size definition (maxpass vs. max. number of tracers)
48      * verification/global_ocean.90x45x15 adjoint now tests
49        NLFS and multiDimAdvection using DST3 (=30)
50      * verification/lab_sea now tests multiDimAdvection using DST3 (=30)
51    o pkg/kpp: add "_d 0" to real constant (if missing);
52      update output of exp: natl_box (10.digits); vermix (std, 7.digits)
53      and lab_sea, 3.FW (only 6,4,6 digits match) & AD (8.digits).
54    o prepare for "clever pickup" implementation: add new header file "RESTART.h"
55      for internal parameters related to restart process (formerly from PARAMS.h)
56      and add startAB parameter to argument list of S/R ADAMS_BASHFORTH2.
57    o more standard interface to {PKG}_WRITE_PICKUP with pickup suffix passed
58      as argument. (only atm2d & obcs write_pickup have not yet been updated)
59    o pkg/monitor:
60      - use GLOBAL_SUM_TILE instead of _GLOBAL_SUM
61      - fix mon_stats_rs (statistics over the full domain, even where field is zero)
62      - account for deep Atmosphere factor and density factor (anelastic)
63    o added open boundary conditions capability for seaice HEFF and AREA
64    o pkg/shelfice: add option for convservative form of Hellmer&Olbers (1989)
65      thermodynamics
66      - requires a little reorganization, which affects the testreport results
67        of isomip.htd (only 7 digits of cg2d agree) => update/modify experiment,
68        so that now the conservative form is tested
69      - add a few comments
70    o add missing cvs Header: or Name: in eesupp/*, pkg/* & verification/code*
71    o add a little bit of code to gad_os7mp_adv_?.F to help vectorization
72    o add new diagnostics to seaice: advective, diffusive fluxes (only for
73      multidim-advection, for scheme 2 they are not filled) and transports,
74      thermodynamic growth rates
75    o change units of EmPmR (inside the code, + within coupling interface)
76      from m/s to kg/m2/s (mass flux) but leave input file unchanged.
77      Affects results @ truncation level (cg2d match) and update output of
78       experiments: lab_sea(6), global_ocean.90x40x15(10),
79      global_ocean.cs32x15(11x3,10), natl_box(11), tutorial_global_oce_latlon(11)
80      + adjoint results: global_ocean_ebm(11) and lab_sea (12).
81      Coupled set-up: allow to restart from previous pickups (cpl_oldPickup=T).
82      Next: will retire convertEmP2rUnit (simply using mass2rUnit instead).
83    
84    checkpoint59h
85    o pkg/exf:
86      - improve vectorization by moving if-statement out of loops in
87        exf_mapfields, exf_radiation
88      - exf_bulkformulae.F: introduce 2D fields and vectorize code
89    o pkg/kpp: added the salt plume scheme (ALLOW_SALT_PLUME) to KPP package
90    o testreport:
91      - allow to test for Qnet & SeaIce monitor output; clean-up ALLOW_BULK_OFFLINE
92        monitor & update offline_exf_seaice exp. output.
93      - AD testing: pass/FAIL according to Grad. output accuracy (instead of Cost)
94    o pkg/seaice:
95      - bug fix in the evp solver: boundary conditions were affected be
96        masking of zMax/zMin (changes results)
97      - minor bug fix in boundary conditions in seaice_calc_strainrates
98        (changes results for no_slip)
99      - seaice_lsr.F: make interpolation of eta dependent on boundaries
100      - replace hardcoded lower limit for zeta (zMin) by runtime parameter
101      - add a test to lab_sea, that tests the Hibler and Bryan (1987) ocean
102        stress formulation and no-slip boundary conditions
103    o pkg/ptracers: Temporary fix for PTRACERS_useGMRedi & PTRACERS_useKPP
104      in gad_calc_rhs.F ; add few safety stops in initialisation phase.
105    o pkg/seaice: a first HSALT time stepping equation has been checked in
106    o pkg/seaice: replaced maskW with seaiceMaskU and maskS with seaiceMaskV
107      in seaice_lsr.F; this solves the pkg/seaice-pkg/obcs problem
108      without requiring DO-IF statements
109    o pkg/thsice:
110      use continuous power-law function for partition of energy between lateral
111      melting/freezing and thinning/thickening ; old code using step function
112      still available with #undef THSICE_FRACEN_POWERLAW
113      update output of exp: aim.5l_cs.thSI, global_ocean.cs32x15.icedyn & .thsice
114    o testreport: change AD testing : check against results/output_adm.txt
115      using same scripts as for forward test.
116    
117    checkpoint59g
118    o adjoint testing: in preparation for changing testreport:
119      - output format: cost and grad written on separated lines
120      - ad output results in directory "results" (instead of "results_ad")
121    o pkg/seaice: adding ice salinity HSALT as a prognostic variable
122    o pkg/seaice: changes for using pkg/seaice with pkg/obcs
123    o pkg/ecco: allow user defined cost function contributions
124    o testreport:
125      Allow to choose (per experiment) the list of tested output variables
126       and the main variable (used to issue a pass/FAIL ) ;
127      - for now, done by adding the specific list in file: [exp]/input/tr_checklist
128      - default is unchanged: >cg2d< , (T,S,U,V,5 tracers)_[min,max,mean,StD] ;
129      Also modify printing of summary:
130       a) ">" NN "<" indicates the "main" variable (used for pass/FAIL)
131       b) echo the list of tested variables in the individual summary.txt of
132          each experiment.
133    o new S/R GLOBAL_SUM_TILE to compute global sum independently of number of
134      threads and number of processes (with #define GLOBAL_SUM_SEND_RECV)
135      (but still depend on the tile decompostion of the domain).
136    o pkg/seaice: change a discretization detail to make the B-grid code
137      "more symmetric". This change is likely to remove all "ridges/leads" that
138      where quasi-aligned with the grid in B-grid solutions. It may also be
139      the solution to the stress coupling issues with the B-grid.
140    o each tested exp: add a "run" directory with a standard ".cvsignore" file ;
141      remove .cvsignore from input dir. (since testreport no longer run here).
142    o pkg/thsice:
143     - cleaning: move common block out of "THSICE_2DYN.h" (removed) to "THSICE_VARS.h"
144     - fix reshaping of sea-ice just after advection:
145       melt all the ice only if ice-volume is too small.
146     - re-visit lateral/thinning repartition of melting (modifs from May 04, 2007):
147       prevent lateral melting if sea-ice fraction is too close to iceMaskMin ;
148     and update experiment global_ocean.cs32x15.icedyn (+start from pickup files).
149    o external_forcing_surf : extend the use of salt_EvPrRn & temp_EvPrRn (fresh-water
150      tracer content) to linFS or no RealFreshWaterFlux ; default remains unchanged.
151    o define mass2rUnit & rUnit2mass as units conversion factor, used for surface
152      forcing. mass2rUnit: from mass per unit area [kg/m2] to r-coordinate unit
153      (z-coord: =1/rhoConst ; p-coord: =gravity) ; rUnit2mass is just the reverse;
154      and remove horiVertRatio (& recip_horiVertRatio). Affects truncation error
155      of exp. global_oce_in_p: 10 16 16 14 16 13 16 16 16 13 13 13 16 13 13 12 16
156      -> update output.txt
157    o pkg/cd_code: add brackets in multiple terms sum (S/R CD_CODE_SCHEME):
158     this affects truncation error: -> update output.txt of exp:
159      global_ocean.90x40x15 (fw&adm), lab_sea (fw&adm) & lab_sea.lsr,
160      ideal_2D_oce, isomip.htd, natl_box, tutorial_global_oce_latlon.
161    
162    checkpoint59f
163    o pkg/autodiff: zero_adj resets an ajoint variable to zero (in adjoint mode)
164    o pkg/ctrl: ctrl_bound  forces parameter corrections to stay in
165      a bounded range (in forward mode)
166    o pkg/ecco, ctrl, autodiff and mom_common:
167     internal parameter controls, completements of implementations
168    o add few EXCH S/R (UV_BGRID, UV_DGRID, SM) for B & D-Grid velocity & 2nd Moment Sxy.
169    o use UV_BGRID exch for dxV,dyU: for now, only with pkg/exch2 & forward ;
170      (not seem any difference in testing results).
171    o pkg/cd_code: use the right EXCH calls (for CS-grid); but problem remains
172       at face corners.
173    o pkg/generic_advdiff:
174     - in GAD.h, define as parameters (iMinAdvR,iMaxAdvR,jMinAdvR,jMaxAdvR)
175      loop range indices for computing vertical advection tendency
176      and do the calculation in the interior only (no overlap) ;
177      for now, only implemented for SOM advection (to save CPU time).
178     - add argument "withSigns" to S/R FILL_CS_CORNER_TR_RL (needed for SOM_xy moment)
179    o exch2 adjoint
180      First set of changes:
181      - add exch2 hand-written adjoint templates
182      - exch2 hand-written no longer use TAF-flag 'nownew_arg'
183        This will require cleanup in pkg/autodiff/*.F
184        (changed routines currently kept separate in verif. code/)
185      - Comment all relevant #ifndef ALLOW_AUTODIFF_TAMC
186        that used to hide exch2 or cubed-sphere specific code
187        (commented via 'cph-exch2')
188    o pkg/seaice
189      - Close southern and western boundaries for UICE/VICE when useOBCS=.TRUE.
190    o pkg/bulk_force: fix loading into Qsw of Short-Wave flux; and update
191       output of global_ocean.cs32x15.thsice .
192    
193    checkpoint59e
194    o exch2: new S/R that only use the cube-tracer (center-position) exchange:
195      for B-grid vector (not yet tested) and C-grid vector (<- only used
196      when option W2_USE_R1_ONLY in W2_OPTIONS.h is defined).
197    o starting implementation of Duffy et al. (GRL 1999) salt plume scheme
198      (#ifdef ALLOW_SALT_PLUME)
199    o gather_2d/scatter_2d: removed halo regions
200    o gmredi: add option (GM_taper_scheme='fm07') for Ferrari & McWilliams 2007
201      scheme and the corresponding test case (under front_relax dir). For now,
202      only available with Skew-flux form and not yet tested in realistic set-up.
203      adjoint: store directives updated, but gradient checks deteriorated,
204      so maybe GM/Redi adjoint is now broken.
205    o seaice adjoint
206      * add AREA, HEFF, HSNOW as control variable
207        (should not change lab_sea results)
208      * CTRL_OPTIONS.h needs new flag: CTRL_SET_OLD_MAXCVARS_40
209    o pkg/seaice:
210      * added computation of saltFlux in seaice_growth;
211        For time being, sea ice salinity is assumed constant
212        contribution of snow flooding to freshening of sea ice is neglected.
213        SEAICE_salinity is set in SEAICE_PARM01 of data.seaice and it
214        defaults to 0.0 in order to maintain backward compatibility.
215        Typical values for SEAICE_salinity are 4 to 10 g/kg.
216      * replaced dRf(1) with dRf(kSurface)*hFacC(kSurface) in seaice_growth.F
217      * added SEAICE_availHeatFrac, which specifies fraction of surface level
218        heat content used to melt or grow ice
219      * commented out cap of HICE: it helps keep ice thinner
220      * reintroduced cap of HEFF via MAX_HEFF and SEAICE_CAP_HEFF option
221      * applied OBCS T/S mask to HEFFM sea ice mask
222    
223    checkpoint59d
224    o standard name: {PKG}_DIAGNOSTICS_STATE to fill diagnostics array
225     for {PKG} state variables, and called from DO_STATEVARS_DIAGS.
226     (keep {PKG}_DIAGNOSTICS_FILL for non-state variables diagnostics)
227    o pkg/gmredi (gmredi_readparms.F): add some missing "_d 0"
228     and change default value of parameter "GM_Small_Number";
229     update output of exp: lab_sea (x2), cfc_example, global_ocean.90x40x15,
230       global_ocean.cs32x15 (x4), global_ocean_ebm, global_with_exf,  
231       tutorial_global_oce_biogeo, tutorial_global_oce_latlon
232    o pkg/ecco: cost function when applying pkg/smooth to controls
233    o pkg/ctrl: add forcingPrecond run time parameter
234    o pkg/seaice:
235     - replace ZMIN=4.e8 with ZMIN=0. in dynsolver.F as in C-grid code
236     - fix bug in metric terms of u-equation in LSR solver (implicit part),
237       changes verification/lab_sea
238     - rearrange implicit part of u-equation in LSR solver to make it easier to
239       read, understand, and debug. This causes changes at the truncation level.
240     - fix (serious) bug in the boundary conditions (sign error in the implicit
241       part) of the LSR solver. Changes all LSR results.
242     - fixed problem with HSNOW initialization to avoid thick snow when AREA
243       is initilized with small values - does not change lab_sea results.
244     - added HsnowFile initialization capability
245    o pkg/smooth: addition to model/src and pkg/ctrl so allow
246     initialization of pkg/smooth and application to control vector
247    o pkg/seaice: fix another bug in the LSR no-slip boundary conditons
248    o dependencies: pkg/profiles requires pkg/cal
249    o pkg/profiles:
250     - added option ALLOW_PROFILES_GENERICGRID
251         -> pkg/profiles can thus be used with any grid (e.g. cs32x15) assuming
252         that interpolation information (grid points and coefficients) is provided
253         within the netcdf input files.
254         -> sample matlab scripts can be found in MITgcm_contrib/gael
255         that allow you to prepare netcdf input files.
256     - also modified: cleaner include statements, cleaner error print statements,
257       cleaner stops when error, and more tests of the netcdf input files consistency.
258    o additional test (in global_ocean.cs32x15) using seaice+thsice pkgs.
259    o pkg/seaice:
260     - move seaice-diagnostics from seaice_do_diags to do_statevars_diags; this
261       requires a new routine: seaice_diagnostics_fill.F
262     - make sure that seaice does not move if not forced (pressure replacement
263       method, Hibler and Ip, 1995), changes results
264     - and new damping criterion for EVP solver according to Hunke, JCP, 2001
265     - SEAICE_evpDampC = > 0. turns it on (615. is the recommended value).
266       It is turned off by default (=-1.), because it changes the results.
267     - make it possible to read AREA from a file, too.
268    
269    checkpoint59c
270    o add S/R and diagnostics for oceanic mixed-layer depth
271    o move GMRedi call after all vertical mixing schemes (including KPP)
272    o pkg/thsice:
273     - ensure iceMask > iceMaskMin : this problem appeared after May-04 modifs
274      (melt only laterally if thin ice): update output of global_ocean.cs32x15.thsice
275    o pkg/obcs:
276     - bug fix for balance code
277    o pkg/seaice:
278      - allow values of SEAICE_elasticParm > 1
279      - add new parameter SEAICE_evpTauRelax as an alternative
280        to SEAICE_elasticParm
281      - make lsr boundary conditions free slip (by default), changes result
282      - add code for no slip boundary conditions for lsr
283      - set minimum of zeta to zero (and not 4e8) (changes results)
284      - add a cap on AREA after advecting AREA if seaice_growth is not called
285    o change calculation of Visbeck K:
286      - no longer depend on tapering scheme; instead, compute slope (limited
287        by GM_maxSlope). this is equivalent to what was comuted before with
288        clipping or linear tappering.
289      - fix vertical averaging (wrong by 1/2 level)
290      - leave the old version (but will not be maintained) within
291        #ifdef OLD_VISBECK_CALC / #endif
292      - update output of exp. ideal_2D_oce
293    o change error catch in calc_r_star to improve vectorization
294    o exf runoff and seaice: remove ALLOW_SEAICE from exf pkg files and
295      add #define ALLOW_RUNOFF in SEAICE_OPTIONS.h (when not using exf).
296    o adjoint:
297      Re-organized adjoint checkpointing according to Matt Mazloff
298      (but with modifs/completions/cleanups)
299      Storing is now bundled into large arrays to optimized I/O
300      (and second step in cleanup of the_main_loop)
301    
302    checkpoint59b
303    o coupler (pkg/atm_ocn_coupler, pkg/ocn_compon_interf, pkg/atm2d):
304      - export/import (between ocean & coupler) fields needed for ocean DIC.
305    o pkg/seaice:
306      - get rid of three more exchanges seaice_calc_viscosities (required
307        different loop boundaries in seaice_lsr and seaice_ocean_stress)
308      - bug fix in seaice_ocean_stress (update of lab_sea required)
309      - reduce loop boundaries to necessary minimum also in seaice_evp
310      - go back to the old way of computing deltaC/Z as the adjoint likes that
311        better
312    o Refresh of tutorial_global_oce_latlon (includes changing salinity-like
313      passive tracer to an Age Tracer) + update output.txt
314    o pkg/exf:
315      - implement A-grid / C-grid selection for wind-stress input files.
316      - clean-up exf_wind.F (remove us, use wspeed instead ; add wStress)
317      for now, in exf_bulk_largeyeager04.F only :
318      - change implementation for case where windspeed + 2. components wind-stress
319        are read-in. AND use rhoConstFresh to convert evap.
320    o pkg/seaice:
321      - use correct EXCH_UV for wind-forcing (on A-grid).
322      - change SEAICE_OPTIONS.h to limit the number of option combinations (regarding
323        SEAICE_EXTERNAL_FORCING & SEAICE_EXTERNAL_FLUXES); add corresponding stops.
324    o pkg/exf:
325      - default EXF options are now set in EXF_OPTIONS.h (ifndef ALLOW_AUTODIFF_TAMC)
326      EXF_INTERPOLATION:
327      - merge global_with_exf/code version of exf_interp_read.F
328        to the main code ;
329      - Add new option: EXF_INTERP_USE_DYNALLOC to use Dynamical Allocation when
330        reading the file ; Important: This options needs to be defined to recover
331        previous code.
332        otherwise, use fixed size array to read in (size=exf_interp_bufferSize).
333      - no longer loose real*8 precision along the way when using exf_iprec=64.
334    o pkg/seaice: rearrangement of common blocks (really needs more cleaning up)
335      - change discretisation of evp-solver in order to avoid another exchange
336        (changes lab_sea) and clean up a little
337      - replace SQRT(MAX(deltaC,SEAICE_EPS)) by MAX(SQRT(deltaC),SEAICE_EPS)
338        help the adjoint (this also changes the results slightly)
339      - add a few "_d 0" where they had been missing in seaice_evp.F
340      - cleaning up: remove unused seaice_calc_rhs.F
341    o pkg/exf: some cleaning-up:
342      - change various "constants" into runtime parameters
343      - cleaned-up Large&Yeager04 routine which should eventually
344        replace exf_bulkformulae.F (changed names of S/R and CPP)
345        and merged various ALLOW_ATM_WIND options
346     only used with thsice pkg (in thsice_get_exf.F):
347      - implement fixed turbulent transfert Coeff over ice (as in Large&Yeager04)
348        which are used when useStabilityFct_overIce=TRUE (= the default)
349      - change default values of ice & snow emissivity and scale downward LW
350        by ice & snow emissivity.
351    o pkg/thsice:
352     fix few little problems, in thsice_calc_thickn.F:
353      - growth vertically (and not laterally) if iceFrac == iceMaskMax
354      - melt only laterally if hIce < hThinIce (as the comments say)
355      and in thsice_extend.F:
356      - allow to form ice even when iceFrac == iceMaskMax (by increasing thickness)
357      - start to form ice as soon as the minimum ice-volume is reachable.
358     update output of test-exp: aim.5l_cs(thSI), global_ocean.cs32x15(thsice),
359      and cpl_aim+ocn
360    o pkg/kpp
361     - move computation of surface related input fields to KPP into a new
362       subroutine kpp_forcing_surf.F
363     - remove wrong (within bi,bj loops) EXCH calls.
364     - little cleaning (add argument myThid in last position, cvs header ...)
365     - for now, fix conservation problem by exchanging KPPviscAz (may not
366       be the best fix)
367    o pkg/seaice
368     - check for inconsistent evp parameter/cpp-flag combination
369     - remove leftover errIO flat for obsolete name list error handling
370    o OpenAD
371     - changed verification/OpenAD to full baroclinic setup (including GM/Redi)
372    
373    checkpoint59a
374    o pkg/seaice: some parameter clarifications and a little bit of clean up
375    o pkg/thsice: rename run-time parameters:
376       himin       -> hIceMin
377       himin0      -> hThinIce
378       hihig       -> hThickIce
379       i0          -> i0swFrac
380       transCoef   -> bMeltCoef
381       frac_energy -> fracMelting
382      add new parameters: hNewIceMax, fracFreezing, dhSnowLin
383       with default values (for now) that do not change the results.
384      remove old version of thsice vars advection in pkg/seaice.
385    o in FFIELDS.h:
386      - replace #ifndef ALLOW_EXF  by #ifndef EXCLUDE_FFIELDS_LOAD
387      - make pLoad & sIceLoad always available (but still only used if
388         ATMOSPHERIC_LOADING is #define).
389    o pkg/kpp: replaced _KPP_RL with _RL
390    o bug fixes for vertical diffusivity computations when both KPP and
391        3D diffusivity arrays are used; pkg/kpp/kpp_calc_diff_s & _t.F
392        are no longer updating the vertical diffusivity array
393        (passed as argument) but are (re-) setting those arrays.
394    o pkg/seaice: fix bug in evp solver, while doing that
395      - change (improve?) discretization of stress computations for both
396        cgrid-lsr and evp solver
397      - add a new routine to compute strain rates
398      - the above changes lab_sea results
399      - add no slip conditions for evp solver (off by default), lsr-version
400        may follow
401      - fix exchange for shear at Z-points (does not change lab_sea)
402      - retire SEAICEuseEVP, instead turn on EVP by setting SEAICE_deltaTevp
403        (to force the user to pick a time step since there is not "safe" way
404        of choosing it)
405      - add principal stress diagnostics
406      - rearrange fields for evp a little to avoid having to call a: too many
407        exchanges and b: exchanges for stress trensor components which we do
408        not have.
409      - modify Hibler+Bryan (1987) stress coupling so that it reuses information
410        of evp, complete rewrite for lsr case (latter is does not yet work
411        in all cases)
412    o pkg/kpp: add code to have mixing in shelf ice caverns
413      - add myThid to all kpp routines (long overdue)
414    
415    checkpoint59
416    o pkg/exf:
417      - fix wind-stress location: defined on A-grid (if ALLOW_ATM_WIND &
418        ALLOW_BULKFORMULAE or USE_EXF_INTERPOLATION), otherwise, defined on C-grid
419      - move exf header files from lower_case.h to UPPER_CASE.h ;
420        add missing cvs Header & Name
421      - add adjoint routines and flow dirs for newly used exch_uv_agrid routines
422      - add namelist param. selectStressGridPosition, exf_monFreq
423      - retire many _CLIM routines, and remove data.exf_clim
424        + params moved to data.exf
425        + climsst, climsss now handled by exf_set_gen, i.e.
426          climss?period=0 refers to constant field,
427          climss?period=-12 to monthly forcing
428      - split up namelists in data.exf
429    o pkg/seaice:
430      - remove seaice_exch and seaice_exch_uv
431      - remove superfluous exchange of theta
432      - add myThid to seaice_budget_ocean/ice
433      - add new interface for atmospheric wind forcing (C-grid only)
434        + new routine
435        + two new field (taux, tauy for stress over ice)
436        + removed one global field (DAIRN) for C-grid case only
437    o pkg/thsise
438      - 2nd set of modifs for thsice adjoint in conjunction with exf
439    o enable runtime flag useEXF (useCAL is set to .T. if useEXF=.T.)
440    
441    checkpoint58y_post
442    o Added capability for latitudinal dependence of Bryan and Lewis, 1979
443      vertical diffusivity, similar to that in MOM4; turned on using
444      #define ALLOW_BL79_LAT_VARY in CPP_OPTIONS.h and specified using
445      diffKrBL79*, diffKrBLEQ*, and BL79LatVary in runtime data file.
446    o Added capability for 3D specification of background vertical diffusion
447      coefficient.  This is done by (i) #define ALLOW_3D_DIFFKR
448      in CPP_OPTIONS.h and (ii) specifying file diffKrFile in runtime
449      "data" file that contains the 3D vertical diffusivity coefficients.
450    o ice dynamics (pkg/seaice) with thsice thermodynamics:
451      - add code within pkg thsice to advect & diffuse sea-ice fields
452      similar to (and will replace) what has been added in  seaice_advdiff.F,
453      but: - conserving Mass, Heat & Salt.
454           - better when using non-linear advection scheme (not yet fully tested)
455           - can also be used in atmospheric set-up (for now, only the diffusion).
456    
457    checkpoint58x_post
458    o IO option for global-file compact format:
459      - add options when generating topology (utils/exch2/matlab-topology-generator)
460      - add I/O capability (pkg/mdsio).
461      - adapt utils/matlab/rdmds.m to read this format.
462      for now long-line format not yet supported by pkg/mdsio (& exch2).
463    o shelfice: add a few diagnostics
464    
465    checkpoint58w_post
466    o p-coord. non-hydrostatic using reference profile for w <-> omega conversion:
467      rVel2wUnit & wUnit2rVel are computed from reference profile Tref,Sref
468      (and replace horiVertRatio in NH code).
469      Update output of exp.: tutorial_global_oce_in_p (useNHMTerms !)
470                         and tutorial_plume_on_slope (sensitive to truncation)
471    o seaice: if ALLOW_ATM_WIND is undefined use wind stress
472      directly to drive seaice model (C-grid only)
473    o exf: when input wind-stress (#undef ALLOW_ATM_WIND):
474     - reintroduce computation of wind from stress,
475     - compute tau (in exf_bulkformulae.F) from windstress averaged to
476       mass points to avoid tau = 0
477     - fix serious bug: (1/3) in Fortran is not the same as (1./3.)
478    o rdmnc.m: make it work with "global" files created with gluemnc
479    o rdmnc.m : some improvements in dealing with singleton dimension
480      (tested on all testreport mnc output files).
481    o genmake2: disable pkg/profiles if netcdf test fails.
482    o cpl_aim+ocn exp.: use consistent rhoConstFresh in Atm & Ocn; update output.
483    o move call to cal_readparms up to make calendar parameters/variable available
484      to all packages
485    
486    checkpoint58v_post
487    o change EOS (from POLY3 to JMD95P) in global_ocean.90x45x15 to get
488      useDynP_inEos_Zc tested.
489    o pkg/exf: changes to properly interpolate/mask/scale initial fields
490    o utils/matlab/cs_grid/read_cs: routines to speed up reading of CS510 fields
491      and portions thereof.  See read_cs.txt for description and examples.
492    o utils/matlab/cs_grid/bk_line: to compute transport through passages,
493      add a script (grt_circ_bkl.m) to generate broken-line between 2 points,
494      following the great-circle arc between those 2 points.
495    o trap un-initialized variable with pathscale compiler on weddell.mit.edu
496      (thanks to Constantinos): fix few problems and get (almost) all exp to pass.
497    o 2nd-Order Moment Advection Scheme (Prather, 1986): first check-in
498     - enable by setting #define GAD_ALLOW_SOM_ADVECT (in GAD_OPTIONS.h)
499     - used without limiter (AdvScheme=80) or with Prather limiter (AdvScheme=81)
500     - still needs work (not working with some options ; efficiency to improve)
501       and serious testing.
502     - use this scheme for temperature & salinity in 2 advection test exp.:
503       advect_xy & advect_xz, respectively.
504    
505    checkpoint58u_post
506    o new test-exp: fizhi-cs-32x32x40 (40 levels) to replace the 10 levels.
507    o move call to INI_FORCING from PACKAGES_INIT_VARIABLES to INITIALISE_VARIA.
508    o testreport: add option "-skipdir" to skip some test.
509    o exf: when input wind-stress (#undef ALLOW_ATM_WIND), by-pass turbulent
510      momentum calculation.
511    o gad_advection: fix vertAdvecScheme (if different from advectionScheme)
512    o some cleaning: usePickupBeforeC35 no longer supported ; remove this option.
513      remove checkpoint.F and the_correction_step.F (no longer used);
514      do the k loop inside CYCLE_TRACER (supposed to be more efficient).
515    o add option (linFSConserveTr) to correct for tracer source/sink due to
516      Linear Free surface
517    o pkg/seaice: fix a bug in the flooding algorithm: turn off the snow machine
518    o pkg/thsice: fix reading mnc-pickups
519    
520    checkpoint58t_post
521    o pkg/diagnostics: fix multi-threaded output (when singleCpuIO=F)
522    o pkg/mdsio:
523     - clean-up mdsio_readfield.F & mdsio_writefield_new.F and
524       move to new files: mdsio_read_field.F (S/R MDS_READ_FIELD) &
525       mdsio_write_field.F (S/R MDS_WRITE_FIELD);
526     - fix multi-threaded singleCpuIO option in MDS_WRITE_FIELD
527     - collect old S/R  in one file: mdsio_rw_field.F (now just a call to
528       either MDS_READ_FIELD or MDS_WRITE_FIELD )
529     - new S/R (to replace MDSWRITEMETA), which allows to write more
530       informations (variable names, time ...) to meta files.
531     - modify rdmds.m to give back the meta file content.
532    o pkg/diagnostics: change vertical interpolation to be safer, and more
533       flexible (define p-levels to interpolate to in data.diagnostics);
534      add argument to S/R DIAGNOSTICS_GET_POINTERS to catch the right
535       diagnostic pointer.
536    o pkg/seaice: more cleaning up of seaice_growth, added many comments
537    o pkg/exf: put runoff0 and runoff1 into the appropriate common block
538    o fix multi-category seaice:
539     - change cpp flag SEAICE_MULTILEVEL to more meaningful name:
540       SEAICE_MULTICATEGORY
541     - fix short wave heat flux
542    o pkg/seaice: change default (SEAICE_OPTIONS.h): use C-grid dynamics
543       and allow to use EVP solver. Change forward lab_sea: test both EVP
544       solver and LSR solver, and use C-grid dynamics (like lab_sea adjoint)
545    o Initial check-in of lab_sea adjoint
546      (very similar to natl_box_adjoint/code_seaice)
547      * used C-grid and EVP solver
548      * used KPP, GM/Redi
549      * uses inAdExact=.TRUE.
550      * gradient checks fail for both ADM and TLM
551        due to sensitive snow melt code in seaice_grwoth (look for "JZ")
552        f.d. gradients actually seem more problematic than ADM, TLM gradients;
553        issue is related to forward mismatch between g77 an ifort
554    o pkg/seaice: overhaul of thermodynamics
555     - growth.F and groatb.F are replaced by new routine seaice_growth.F
556     - budget.F is replaced by two new routines seaice_budget_ocean/ice.F
557     - move a few global fields out of SEAICE.h into seaice_growth.F and
558       make them 2D (FICE/QNETO/ ...)
559     - remove FO (it is the same as QNETO)
560     - introduce a few local fields to avoid modifying external fields such
561       as atemp, etc.
562    
563    checkpoint58s_post
564    o pkg/exf: moved exf_init_runoff.F to exf_init.F and exf_set_gen.F
565      changed exf_set_gen.F so that
566        genperiod=0 means input file is one time-constant field and
567        genperiod=-12 means input file contains 12 monthly means
568    o CG2D: use pre-computed solver main-diagonal (stored in common block);
569      this affects truncation error ; generate new output file for exp. which
570      fails: exp4(12d), fizhi-cs-aqualev20(12d), front_relax(10d),
571        global_ocean.90x40x15(10d), global_ocean.cs32x15(10d).thsice(11d).viscA4(10d),
572        ideal_2D_oce(10d), internal_wave(09d), isomip.htd(11d), matrix_example(07d),
573        MLAdjust(4x11d,12d), natl_box(11d), rotating_tank(12d),
574        tutorial_global_oce_in_p(10d), tutorial_plume_on_slope(11d),
575        vermix(12d).ggl90(12d).my82(11d).opps(12d).pp81(11d)
576    o start implementation of deep-atmosphere and anelastic formulation
577    o verification: remove 2nd copy of input files and use script "prepare_run"
578      to make a symbolic link to the 1rst copy (reduce downloaded size by ~81.M)
579    o mom_common/vecinv/fluxform: fix a few initialisation isssues
580    o profiles: fix for multithreaded case
581    
582    o diagnostics: rename few diags:
583      s/'PRESSURE'/'RCENTER '/g
584      s/'TICE    '/'oceFreez'/g
585      s/'TAUX    '/'oceTAUX '/g
586      s/'TAUY    '/'oceTAUY '/g
587      s/'SWFLUX  '/'oceQsw  '/g
588      s/DIFx/DFxE/g
589      s/DIFy/DFyE/g
590      and add few ocean-forcing diagnostics:
591      atmPload, sIceLoad, oceQnet, oceFWflx, oceSflux, surForcT & surForcS
592    o modifications to pkg/seaice/growth.F and budget.F, which change results of
593      lab_sea experiment: HSNOW was sometimes treated as effective and sometimes
594      as actual snow thickness.  It now refers everywhere to effective snow
595      thickness, meaning that for non-zero AREA, actual thickness is HEFF/AREA.
596    
597    checkpoint58r_post
598    o modifications to pkg/seaice/growth.F, which change results of
599      lab_sea experiment: fixes pertain to melting snow over open water, to
600      masking EVAP under sea ice, and to using the correct AREA variable for
601      computations of EVAP, PRECIP, HSNOW, and GHEFF
602    o add ability to read bathy, salt, and theta using MNC (off by def)
603    o add flooding algorithm and advection of HSNOW for pkg/seaice;
604      both are turned off by default and do no change any results
605    o seaice advection with pkg/thsice: a step toward the use of non-linear
606      advection scheme, but #ifdef or commented out for now (requires more EXCH).
607    o use standard version of PTRACERS_INI_VARIA in tutorial_tracer_adjsens
608      (identical results) and the standard version of EXTERNAL_FIELDS_LOAD
609      in natl_box (affects results @ truncation level: update output.txt)
610    o multi-threading and IO:
611      - replace some call to MDSIO S/R by the corresponding READ/WRITE_FLD S/R.
612      - remove most of BEGIN_MASTER/ END_MASTER around READ/WRITE_FLD S/R calls
613        (needed to work with SingleCpuIO): tested in all verif. exp.
614    o GAD: use simpler DST3 formulation as default (old version left within #ifdef)
615      affects the results (but none of the verification test uses this scheme).
616    o Adding some pkg/diagnostics capability to pkg/seaice
617      (will certainly be subject to changes)
618    o ctrl: adding new control variables:
619      lwflux, lwdown, evap, snowprecip, apressure, runoff
620    
621    checkpoint58q_post
622    o added CPP_EEOPTIONS.h flag DISABLE_MPI_READY_TO_RECEIVE.  Speeds up
623      1/6-deg Southern Ocean configuration by 8% on IBM Datastar and
624      high_res_cube configuration by 4% on Columbia.
625    o clean-up multi-threaded problems (reported by debugger tcheck on ACES);
626      add (in global_with_exf/code) a version of EXF_INTERP_READ without
627      dynamical allocation (seems to work in multi-threaded).
628    o new function "MASTER_CPU_IO" (=T if master thread & master CPU, if using
629      single CPU io) so that TAF does not have to see EESUPPORT.h
630    o pkg/seaice: implement sea-ice loading (when using RealFreshWaterFlux)
631    
632    checkpoint58p_post
633    o obcs: stop if obcs is used with useCDscheme = .true.
634    o shelfice:
635     - fix a sign error so that no slip at shelfice interface works
636     - remove stop for combination non-hydrostatic code and shelfice. That does
637       not mean, that the results are correct, but at least they are numerically
638       stable
639    o diagnoctics: modify UVELPHI and VVELPHI to include hfac (i.e. mass-weighted)
640    o added adjoint exch routined for all exch*3d* routines
641      and updated flow directives
642    
643    checkpoint58o_post
644    o replace calls to EXCH_Z & EXCH_UV_AGRID: use the new _3D_ version ;
645      remove old subroutines (_XY_ & _XYZ_); update the adjoint version.
646    o change controling S/R for writing pickup file (new S/R do_write_pickup)
647      and clean-up reading/writing of pickup files.
648    o fix local version of read/write pickup (NH part) in rotating_tank/code
649    o simplify EXCH interface:
650     - change _XYZ_ interface to _3D_ subroutine (with 3rd dim in argument list)
651     - not often used EXCH S/R (exch_z, exch_uv_agrid): keep only the _3D_ version
652    o added the regrid package
653    o shelfice:
654     - add a simple boundary layer scheme to reduce noise
655     - fix the indexing in shelfice_u/v_drag so that there will be actually drag
656    
657    checkpoint58n_post
658    o fix globalArea multi-threaded calculation: need to apply GLOBAL_SUM to
659       local variable (not in common block).
660    o lot of small changes for multi-threaded. Most tests (using OMP & ifort) pass.
661      - still problems with pkgs: mnc, exp2, dic, cal, exf (and probably more);
662      - still BEGIN_MASTER/END_MASTER to remove around READ/WRITE_FLD S/R calls
663        to work with SingleCpuIO.
664    o add "_d 0" to real constant of pkg/cfc subroutines ;
665       update exp. cfc_exemple & tutorial_cfc_offline output files.
666    o multi-threading and IO:
667      - all threads call READ_FLD S/R (needed if using SingleCpuIO):
668        (no BEGIN_MASTER/ END_MASTER around the call, but inside MDSIO S/R.
669      - barrier before and after reading.
670      - stop if other than master is calling MDS_WRITELOCAL (if #undef IO_THREAD_SAFE)
671      - avoid using MDS_WRITELOCAL for LAND pkg output.
672      - new S/R AIM_WRITE_PHYS (replaces AIM_WRITE_LOCAL) to write AIM physics
673        common-block variables ; Allows multi-threading with master-thread IO.
674    o change default MAX_NO_THREADS from 32 to 4 ;
675      and stop cleanly when MAX_NO_THREADS is too small.
676    o add S/R BAR_CHECK to check multi-threaded barrier synchronization
677    
678    checkpoint58m_post
679    o add a Non-Hydroatatic test (with 3-D Coriolis, NHMTerms, biharmonic Visc.
680       and side-drag) on CS-grid : global_ocean.cs32x15.viscA4
681    o make "tutorial_global_oce_latlon" from standard "global_ocean.90x40x15" exp.
682       keep global_ocean.90x40x15 (for AD testing) with former secondary test
683       (".qshyd") as the main test (mv output.qshyd.txt to output.txt)
684    o CVS modules: update MITgcm_verif_basic; remove MITgcm_verif_ocean & _verif_atmos;
685        add MITgcm_tutorials (= code + all the tutorials)
686    o ecco, option to compute cost for total ssh (mean+anom)
687    o consistent with addition of ptracer and ssh in pkg/profiles
688    o profiles: adding ptracer and ssh
689    o testreport: change multi-test output-file name
690      (from output.txt.{name} to output.{name}.txt)
691    o profiles: now ok for mutli-tiles case
692    o seaice: add 4 parameters for different advection schemes for area,
693      (effective) seaice thickness, enthalphy, and snow height. Their default
694      is the standard parameter SEAICEadvScheme
695    o calc_gw:
696     - add cosFacU in zonal viscous flux (harmonic.visc.).
697     - put back side-drag (call new S/R MOM_W_SIDEDRAG) and output.txt.
698       of tutorial_plume_on_slope.
699    o obcs_calc.F : fix index Pb in OBSeta & OBNeta (Thanks to Gianmaria).
700    o calc_gw: true flux-form, account for horizontal grid spacing.
701      update rotating_tank results, but not plume_on_slope (affected at
702      truncation level, 11 digits).
703    
704    checkpoint58l_post
705    o calc_gw:
706     - take bi,bj loops outside calc_gw to fix Pb with local array KappaRU,V
707     - remove side-drag for now (need to fix it); update plume_on_slope results.
708     - fix for partial-cell & non-uniform dz; update plume_on_slope results.
709    o commit code to make SST/SSS weights spatially variable
710      (based on either variable in-situ or variable initial T/S weights)
711    o pkg/ecco:
712      * commit code to relax deviations of xx_theta, xx_salt to 5*sigma,
713        now based on horizontally varying weights wthetaLev, wsaltLev
714      * cost_averagesflags now returns year indices in addition to day, month
715      * sflux balance is performed on annual basis
716        (sflxumm, sfluxmm2, bal_sfluxmm)
717      * for SSH anomaly, separate more cleanly contrib from T/P, ERS, GFO,
718        including separate counting and multipliers
719    o pkg/rbcs
720      * add all necessary infrastructure for pkg/rbcs levN adjoint checkpointing
721    
722    checkpoint58k_post
723    o testreport:
724     - always build in dir. "build" (if not there, mkdir build instead of building
725       & running in input)
726     - run in dir run (if it exists), in build otherwise.
727     - call prepare_run (if input/prepare_run exists)
728     - run multi-threaded test (with new option: "-mth") if file input/eedata.mth exists.
729    o pkg/exf modifications to interpolation and rotation routines for more
730       reasonable treatment of North Pole singularity: for tracers North Pole
731       value is set to northernmost zonal-mean value, for zonal velocity it is
732       set to zero, and for meridional velocity it is set to northernmost value.
733    o pkg/exf/exf_check_range.F
734     - add tile index to diagnostics and move stop statement to the very
735       end of the routine.
736    o pkg/diagnostics: (diagnostics_main_init.F)
737      define title of isomorphic variables according to the current config.
738    o pkg/thsice with pkg/seaice dynamics:
739    - fix domain of computation (interior only, required for exf) and do exchanges
740    - seaice-dynamics forcing: add atmospheric and seaice loading to SSH gradient
741    o towards a standard way of dealing with multi-threading in MONITOR
742      and ${PKG}_MONITOR (all except ptracers_monitor) subroutines.
743    o Pass variable viscosities (vertical and horizontal, e.g., KPP or Leith)
744       to W momentum equation in nonhydrostatic and quasihydrostatic runs.  
745    o make exf_monitor & seaice_monitor independant of the main (dynamics) monitor.
746    o pkg/seaice: fix SEAICEuseEVPpickup parameter (put it in a commom block)
747    o generic_advdiff: DST advection S/R : use local copy of velocity to compute CFL
748       (problems ? with gradient check in bottom_ctrl_5x5 adjoint test)
749    o tracer advection:
750     - clean-up and simplify calc_common_factors.F
751     - make a local copy of velocity and pass it (as u,v,r_Trans) to DST tracer
752       advection subroutine (but still not used within DST advection S/R)
753    o rename pkg aim_ocn_coupler to atm_ocn_coupler (later on, will be used without aim)
754    
755    checkpoint58j_post
756    o new driver S/R: LOAD_FIELDS_DRIVER to load external forcing fields
757      from file (collects calls previously in FORWARD_STEP)
758    o move call to SEAICE_MODEL from FORWARD_STEP to DO_OCEANIC_PHYS
759    o adjoint store dir. adjusted accordingly
760    o genmake2
761      replace target "ad_taf" by $(EXE_AD) ; add $(EXE_AD) to the make CLEAN list.
762    
763    checkpoint58i_post
764    o pkg/seaice: add parameter that allows to scale/turn off effect of seaice
765      on wind stress (SEAICEstressFactor defaults to 1.)
766    o Total number of Timers is finite (<=40): comment out 2 non-essential one
767      in the_main_loop.F to avoid Pb (e.g., when running fizhi test)
768    o vector_invariant: fix highOrderVorticity(=4.th.Order) advection
769      on CS-grid: no longer loosing mass.
770    o exf & curvilinear-grid: no longer modify longitude xC & xG.
771    o pkg/ggl90: fix sloppy output and fix a bug
772    o pkg/seaice: added SEAICEuseEVPpickup parameter
773      - Set to false in order to start EVP solver with
774        non-EVP pickup files when using SEAICEuseEVP
775      - fix sign error in diffusion in seaice_calc_rhs
776    
777    checkpoint58h_post
778    * Modifications for bottom topography control
779      o replace hFacC by _hFacC at various places
780      o replace ALLOW_HFACC_CONTROL by ALLOW_DEPTH_CONTROL
781      o add non-self-adjoint cg2d_nsa
782      o update autodiff support routines
783      o re-initialise hfac after ctrl_depth_ini
784      o works for 5x5 box, doesnt work for global_ocean.90x40x15
785    * Adding verification for 5x5 box (4-layer) bottom topography control
786    
787    checkpoint58g_post
788    o pkg/diagnostics: implement "periodic averaging diagnostics" (e.g.,
789       used for mean seasonal cycle, mean diurnal cycle); add an example
790       in verification/global_ocean.cs32x15/input.thsice/data.diagnostics
791    o pkg/ggl90:
792      - add parameter (minimum surface kinetic energy)
793      - fix bug (avoiding division by zero)
794    o couple pkg/thsice to pkg/seaice:
795      - modify advection in seaice to accomodate new scalar fields to be advected
796      - only muliDimAdection scheme work with seaice/thsice
797      - mapping of thsice-variables to seaice-variables, back and forth
798      - does not break the verification experiments, but does not give the
799        desired results either
800    o pkg/seaice
801      - make (default) second order advection a bit less confusing?
802    
803    checkpoint58f_post
804    o couple pkg/thsice and pkg/exf (as a preparation for coupling pkg/thsice
805      to pkg/seaice):
806      - new routines thsice_map_exf and thsice_get_exf provide the interface
807      - add an additional formal parameter to thsice_solve4temp
808    o pkg/exf:
809      - add new fields wspeed, snowprecip (to be able to couple to thsice)
810      - correct Stefan-Boltzmann constant
811      - new parameter for longwave surface emittance
812      - separate some stuff from exf_bulkformulae into new routines  
813        exf_radiation, exf_wind
814      - add new parameters and constants: longwave emissivity for ocean, ice
815        and snow, evaporation parameters over ice
816      - decouple wind/stress computation from ALLOW_BULKFORMULA: always compute
817        either wind from stress or stress from wind
818    o pkg/thSIce:
819    - split thsice_step_fwd.F in 2 S/R: thsice_step_temp.F & thsice_step_fwd.F
820    - put i,j loops inside S/R: THSICE_ALBEDO, THSICE_SOLVE4TEMP, THSICE_EXTEND
821       and THSICE_CALC_THICKN
822    - for now, call to THSICE_GET_BULKF remains inside i,j loops.
823    - add CPP option: ALLOW_DBUG_THSICE and header file THSICE_DEBUG.h
824      to make debugging easier.
825    - affects results (@ truncation level) of global_ocean.cs32x15.thsice: update output
826    o pkg/bulk_force:
827      - clean-up comments and parameters ;
828      - add new Bulk-Formulae from Large and Yeager, 2004, NCAR/TN-460+STR ;
829    o fix bug in aim+thsice albedo: snow & ice thickness arguments were switched;
830      generate new output for test-experiment: aim.5l_cs.thSI
831    o results_ad : rename "output.txt_adm" to "output_adm.txt" and change
832      testreport accordingly
833    
834    checkpoint58e_post
835    o SEAICE_CGRID adjoint done
836    o R_STAR adjoint implemented.
837      * Seems to just work (based on global_ocean.90x40x15/code_ad_nlfs/ )
838      * need to sort out init. of h0facc, etc.
839    o Make pkg/profile fully independent of ecco,cost, etc. stuff
840      to be able to use it in pure forward.
841    
842    checkpoint58d_post
843    o upgrade simple test-experiment to tutorial example:
844     step.1: duplicate the experiment and (step.2) will remove the old copy.
845      tutorial_barotropic_gyre      <- copy of exp0     (R1:barotropic_gyre_in_a_box)
846      tutorial_baroclinic_gyre      <- copy of exp1     (R1:baroclinic_gyre_on_a_sphere)
847      tutorial_global_oce_latlon    <- empty for now    (R1:global_ocean_circulation)
848      tutorial_global_oce_biogeo    <- copy of dic_example
849      tutorial_deep_convection      <- almost like exp5 (R1:nonhydrostatic_deep_convection)
850      tutorial_plume_on_slope       <- copy of plume_on_slope
851      tutorial_tracer_adjsens       <- copy of carbon   (R1:tracer_adjoint_sensitivity)
852      tutorial_global_oce_optim     <- empty for now (David ?)
853      tutorial_global_oce_in_p      <- copy of global_ocean_pressure
854     some tutorials (R1) were already checked-in under tutorial_examples in release1_branch
855    o correct a sign problem in cost_scat.F
856    o obcs and ptracers: fix boundary conditions for advections schemes
857      with larger stencil
858    o thsice adjoint: start
859    o mom_vecinv: add ISOTROPIC_COS_SCALING flags to mom_vi_hdissip for
860      completeness
861    o mom_fluxform: fixing the mutual use of ISOTROPIC_COS_SCALING
862      and COSINEMETH_III, add comments in default CPP_OPTIONS.h
863    o ptracers adjoint:
864      * avoid extensive recomputatations
865      * fix missing re-init. of gptr (missed by TAF)
866    o obcs: add a flag (OBCSprintDiags, defaults is true) that allows
867      me to turn off the excessive output to STDOUT that this package produces
868    o move NH metric terms & 3.D Coriolis S/R to pkg/mom_common
869      and add those terms in Vector-Invariant formulation.
870    o in ctrl pkg, if ALLOW_CAL, use monthly mean controls
871      if the control period (xx_hfluxperiod etc) is 0
872    o in profiles pkg, clean routines and fix details
873    o in ecco pkg, reading ssh data:
874      fix problem in case the model does not start at iter0=0
875    o fix mnc-pickup/restart for ptracers
876    o new package prifiles:
877      code to compute profile-based cost by Gael Forget
878      (modifs in ecco, ctrl, autodiff)
879    o Benign bug fix in initialization (spotted by M. Mazloff) of
880      ctrl_set_globfld_xz.F ctrl_set_globfld_yz.F
881    
882    checkpoint58c_post
883    o adjoint: finish NLFS adjoint and provide reference output in
884      verification/global_ocean.90x40x15/results_ad_nlfs
885    o seaice: add an EVP solver following Hunke and Dukowicz (1997) and the
886      documentation of CICE. Turn on by defining SEAICE_ALLOW_EVP in
887      SEAICE_OPTIONS.h and SEAICEuseEVP=.true. in data.seaice. Works only
888      with SEAICE_CGRID defined.
889    o move calendarDumps from "data" to "data.cal" and clean-up the code
890      with a simple call to pkg/cal S/R: CAL_TIME2WRITE
891    o add useEXF & useCAL flags (for now, set in hard-coded way)
892    o add S/R to compute NH-metrics terms & Coriolis f' in vertical momentum
893      (were missing in NH mode, and wrong in quasihydrostatic mode).
894      waiting for Chris updated version of calc_gw to add those CALLs.
895    o fix bug in quasihydrostatic S/R ;
896      add a test for this option: global_ocean.90x40x15.qshyd
897    o new S/R "SET_PARMS": set parameters that might depend on the use of some pkgs.
898      (called from INITIALISE_FIXED, after INI_PARMS & PACKAGES_READPARAMS)
899    o add on/off flag useOffLine for package OFFLINE
900    o seaice:
901      - modify advection so that it works also on the C-grid
902      - extend loop ranges in seaice_lsr and seaice_dynsolver; fixes
903        problem in multi-tile runs with C-grid
904      - add flags for clipping ice velocities and/or masking solver forcing
905      - fix drag (ocean on ice) formulation and a bug that caused noise in the
906        C-grid solver
907      - added a few comments to seaice_diffusion.F
908      - separate C-grid and B-grid versions more cleanly (UVM and seaiceMaskU/V
909        are now exclusive)
910      - add a new ocean-ice stress coupling method (Hibler and Bryan, 1987) which
911        required re-ordering the code a little:
912       + make DAIRN global variable (defined in SEAICE)
913       + move computation of the viscosities eta and zeta into a new separate
914         routine (because I need to recompute them in seaice_ocean_stress.F)
915    
916    checkpoint58b_post
917    o AIM+thSIce: fix sign of Short-Wave through the Ice ;
918      update output.txt of exp. aim.5l_cs.thSI
919    o various mnc cleanups and improvements:
920      + shrink lookup tables by factor of ~4
921      + better error reporting when running out of lookup space
922      + able to handle longer path/file names (up to 500 chars)
923    o adjoint:
924      - Another overhaul of store dirs. for NLFS to eliminate  "hidden" recomputations.
925      - TBD: "hidden" mom_vecinv recomp. in dynamics
926    o change forcing_In_AB to affects both T,S forcing and Momentum forcing
927     (allow to differentiate between forcing components using new integer flags:
928      momForcingOutAB=1/0 & tracForcingOutAB=1/0)
929     and add new flag to put Dissipation tendency out of Adams-Bashforth.
930    o ecco
931      - enable trend removal from SSH anomaly obs.
932    o adjoint
933      - a fix for PmEpR when #undef EXACT_CONSERV
934      - fix of "hidden" recomp. in thermodynamics (no TAF warnings)
935      - try to fix "hidden" recomp. in forward_step for NLFS
936        (NLFS seems broken sometimes after I checked it in)
937    o seaice:
938     - add c-grid version of the dynamic solver:
939       + three new routines that are the c-grid substitute lsr, dynsolver
940         and ostres
941       + put a few fields that were local to dynsolver into global common
942         blocks, so that I can move the computation of stresses etc into
943         seaice_lsr (saves coding but may break the adjoint).
944     - replace more hardwired parameters by runtime parameters
945     - add ice masks that mask the rhs of the implicit solvers where there
946       is no ice (commented out in seaice_dynsolver, because i am not sure
947       if this works properly), eventually this should replace the clipping
948       of ice velocities in seaice_dynsolver to +/-40cm/s.
949    o remove the BUILD_INFO.h include from CPP_EEOPTIONS.h and explicitly
950      include it only where its needed
951    o move balancing of fluxes before the call of external_forcing_surf
952    o seaice:
953      - correct units of turning angles (now they are really in degrees)
954      - move computation of GWATX/Y out of main routine into dynsolver
955      - initialize GWATX/Y in seaice_init
956    o Apply mask on Fresh-Water flux (needed for SSH forcing).
957      update output.txt of exp. global_ocean_ebm & cpl_aim+ocn (affects cg2d residual)
958    o seaice: add runtime flags for turning angles (default to zero)
959    o Adding runtime parameter to exf/, ctrl/, to remove on-the-fly global mean
960      and trend from exf forcing and ctrl control adjustments
961    o fix variable aliasing in gad_calc_rhs that cannot be handled by TAF
962      (since checkpoint57x_post)
963    o change the default rotation period to 86164.s = the Earth rotation
964    o 1rst implementation of Implicit IGW using the 3-D solver (use3Dsolver=T)
965      and based on a reference stratification. Tested within hs94.cs-32x32x5.
966    o seaice advection: add code for choosing between the default (2nd order
967      central differences) and multiDim advection schemes provided by
968      pkg/generic_advdiff
969    o seaice:
970      - removed all references to SEAICE_GRID.h fields from
971        dynsolver, advect, diffus, lsr, without changing the results of lab_sea
972        (cubed-sphere configuration will change a little)
973      - grid computations in seaice_init are obsolete now.
974      - cleaned up code a little so that is easier to read (hopefully).
975      - added new (better?) discretizations of default advection and diffusion
976        (turn on with SEAICEuseFluxForm)
977      - replace 1 in 3d global fields by kSurface in growth.F
978      
979    checkpoint58a_post
980    o seaice:
981      - bug fix in advect.F
982    o shelfice:
983      - separate shelfice load anomaly from pload (breaks with time
984        dependent forcing), => introduce constant field shelficeLoadAnomaly.
985        Its default is 0., but it may be computed more cleverly from (unknown)
986        t- and s-profiles (tRef, sRef) and actual EOS. For now this has to be
987        done offline. A good approximation of the pressure load anomaly is
988        necessary to avoid large initial adjustment processes underneath
989        deep-reaching shelfice.
990      - small fix in ISOMIP shelfice_thermodynamics
991      - add more sophisticated thermodynamics of Hellmer (1989), this is
992        now the default
993      - give a few constants more intuitive names
994    o add code to balance EmPmP and Qnet at the end of do_ocean_physics. Useful
995      if bulk formulae are used in long integration (especially EmPmR). Turn
996      on with balanceEmPmR = .true. or balanceQnet = .true. in data, PARM01
997      if balancePrintMean, the imbalance that is substracted is printed to
998      STDOUT.
999    o fix bug (typo) in obcs_apply_eta.F
1000    o add a new package shelfice which enables us to model the circulation
1001      underneath shelf-ice with draughts of hundreds of meters.
1002     - works
1003     - to do: + include improved thermodynamics
1004              + check whether kSurfC (from model/inc/SURFACE.h) can be used
1005                instead of new field kTopC
1006              + can we use topoFile, Ro_surf and existing code in ini_depth.F
1007                instead of new field R_shelfIce and new code in ini_depth.F
1008                and ini_mask_etc.F?
1009              + adjust vertical mixing schemes?
1010    o seaice pkg:
1011     - add a cpp-flag to include a simple formula for a salinity dependent
1012       freezing point of sea water at the surface
1013     - change the contents of SEAICE_TEST_ICE_STRESS_1 so that zonal and
1014       meridional stresses are now different (and hopefully correct)
1015    o AIM pkg: change threshold on large-scale condensation to conserve Heat.
1016       update results of aim.5l_LatLon test ; fix title & units of AIM diagnostics
1017       and  change 3 diagnostics names (OSR,OSRCLR,KM -> TSR,TSRCLR,DRAG)
1018    o pkg/diagnostics: add options and parameters for regional-statistics
1019       diagnostics ; define regions by reading a region-mask from a file
1020       (might add other options later)
1021    o pkg/bulk_force:
1022     - add option and parameters to use AIM surface-flux formulae.
1023     - Change loading part: S/R BULKF_FIELDS_LOAD only take care of bulkf_fields ;
1024       others forcing fields (defined in PARM05, parameter file "data") are loaded
1025       from S/R EXTERNAL_FIELDS_LOAD, as usually (with useBulkforce = T or F).
1026     - initialise all bulkf_fields in bulkf_init.F ; do in-lining of exf_bulkcdn.F
1027     - use the right EXCH call for uwind,vwind (to work on CS-grid).
1028     - re-arrange header files (move parameters from BULKF.h to BULKF_PARAMS.h)
1029       and parameters (note: calcWindStress replaces .NOT.readwindstress).
1030     - cleaner interface with pkg/thSIce (new S/R THSICE_GET_PRECIP).
1031    
1032    checkpoint58
1033    o add "--embed-source" option to genmake2 which, when the supporting
1034      tools can be compiled (as determined by genmake2) will turn on the
1035      embed_files package which then embeds the entire MITgcm source code
1036      (*.[fFhc] + Makefile) used for the build within the executable
1037      - requested by CNH but off by default
1038      - adds a paltry <9MB to the mitgcmuv executable in most cases
1039      - only writes the output when useEMBEDSRC in eedata is true
1040    o clean up 3-dim. relaxation codes:
1041      * Fix I/O inconsistency in pkg/rbcs: replace precFloat32 by readBinaryPrec
1042      * Remove 3-dim. relaxation code from pkg/exf (now use only pkg/rbcs)
1043      * Thanks to Tom Haine for testing!
1044    
1045    checkpoint57z_post
1046    o make CG3D solver compatible with Free-surface at k > 1 (p-coordinate):
1047      affects output (@ truncation level) of exp. plume_on_slope ; updated.
1048    o fix the pickup behavior for obcs in combination with ptracers
1049    o fix a bug in ptracers_external_fields_load
1050    o no AB-2 at the first iteration for Gw (consistent with Gu,Gv,Gt,Gs ...)
1051      affects results of NH experiments (but all our NH tests have Gw[it=1]==0 !!)
1052    o transfered surface NH pressure to eta field (if exactConserv).
1053    o gmredi: fix bugs in slope tapering ldd97 (depthZ had the wrong sign)
1054         and update lab_sea output.txt file.
1055    o completing 3-dim. relaxation code: additional term
1056         1/tau*( theta(i,j,k) - thetaStar(i,j,k) )
1057      in S/R EXTERNAL_FORCING_T (file external_forcing.F)
1058      * At compile time, in "EXF_OPTIONS.h" set
1059          #define  ALLOW_CLIMTEMP_RELAXATION
1060          #define  ALLOW_CLIMSALT_RELAXATION
1061      * At runtime in "data", under &PARM03 set (e.g., units in seconds)
1062          tauThetaClimRelax3Dim = 15552000.0,
1063          tauSaltClimRelax3Dim  = 15552000.0,
1064      * 3 cases:
1065          1) Use a constant-in-time 3-dim. field
1066          2) Provide 12 3-dim. fields corresponding to Jan., ... , Dec.
1067          3) Real-time relax. to time-evolving prescribed field
1068    o Adding Laplacian-type smoothness constraint on
1069      initial and boundary (forcing) controls (ic, bc)
1070      * enable at compile-time via
1071        ALLOW_SMOOTH_IC_COST_CONTRIBUTION, ALLOW_SMOOTH_BC_COST_CONTRIBUTION
1072      * enable at run-time via mult_smooth_ic = 1, mult_smooth_bc = 1
1073      * Absolute scale somewhat unclear so far
1074      * no area weighting was included since no other cost term does so far
1075    
1076    checkpoint57y_post
1077    First step for a NLFS adjoint
1078    o initially suppress rStar (new flag DISABLE_RSTAR_CODE)
1079    o new init. routines for calc_r_star, calc_surf_dr
1080    o still need to deal with ini_masks_etc
1081    o testreport seemed happy
1082    checkpoint57y_pre
1083    
1084    o obcs: always reset wVel & eta (to zero or prescribe it) at the OBs.
1085    o add new package rbcs (for relaxing ptracers at boundaries/depth/surface etc)
1086    o add new offset feature to offline pkg (plus minor cleanup)
1087    o cfc fixes for final year of integration
1088    o clean up GCHEM_OPTIONS.h/DIC_OPTIONS.h (all options should
1089      be in GCHEM_OPTIONS).
1090    
1091    checkpoint57x_post
1092    o fix testreport Pb in multiple test experiment.
1093    o cleanup our namelist syntax in verification:
1094      - make it more F95 standards compliant (some work still needed)
1095      - allows the vast majority of our tests to work with gfortran
1096    o Non-Hydrostatic:
1097     - put all NH variables (formerly in DYNVARS.h & GW.h) in NH_VARS.h
1098     - fix exchange calls for CS-grid using the new EXCH_S3D_RL.
1099    o Allow to apply AB on T,S rather than on AB(gT,gS):
1100     - implemented within #ifdef ALLOW_ADAMSBASHFORTH_3
1101     - use the same arrays (gtNm,gsNm) to hold tracer field at previous
1102       time-steps (if AB(T,S)) and tendencies (if AB(gT,gS)).
1103     - need a "clever" read_pickup to restart from the other AB formulation
1104    o move local commom bloc /GlobalLo/ (used for singleCpuIO) in EESUPPORT.h
1105    o remove some unused variables (reduces number of compiler warnings)
1106    o adjoint
1107      * Disable useVariableViscosity for adjoint for time being
1108        (there are a number of extensive recomputations)
1109      * Initialize certain variables needed for adjoint
1110    
1111    checkpoint57w_post
1112    o pkg/mdsio: use MAX_LEN_FNAM (instead of hard coded 80) for file-names
1113                 fix the singleCpuIO RS version of MDSWRITEFIELD
1114       and add a WARNING if using globalFiles=T with multi-processors.
1115    o write grid-file(s) in only one format (MDS or MNC): default=MNC (if
1116      using MNC); can force MDS output by setting writegrid_mnc=F in data.mnc
1117    o tracer advection scheme:
1118      add DST-2 (=Lax-Wendroff) & 1rst order upwind schemes (the way to get
1119       those 2 schemes before, changing GAD_FLUX_LIMITER.h + to recompile,
1120       was not very convenient).
1121      add implicit version for DST-3 & DST3_Flux_Limit vertical advection;  
1122       (further tests needed for the implicit DST & Flux-Limiter schemes).
1123    o PTRACERS: added namelist parameter PTRACERS_ref in analogy to tRef
1124      and sRef for convenience, handy, when you want to initialize
1125      ptracers in a large domain with a constant non-zero value. Also,
1126      untangle ptracers_init.F a little.
1127    
1128    checkpoint57v_post
1129    o change dome exp. to use variable viscosity in side-drag terms.
1130    o remove all the files from the cfc_offline test since they are now
1131      incorporated into tutorial_cfc_offline which has been producing
1132      identical results for a few days of testing
1133    o add new parameter: sideDragFactor to enable half-slip-side BC
1134      and change side-drag S/R to use viscosity from mom_calc_visc
1135      (can switch back by setting sideDragFactor=0.); affects results at
1136      truncation level; regenerate output for exp.: global_ocean.cs32x10(x3),
1137       global_ocean_ebm, global_ocean_pressure, matrix_example & MLAdjust(x5).
1138    o vorticity & strain are now computed without masking, to account for
1139      no-slip-side BC in variable viscosity calculation ; mask is applied
1140      anyway later on, before computing advection/coriolis terms.
1141    o modify exp4 to test new obcs support for reading from external files
1142      and for passive tracers
1143    o fix behavior of ptracers_monitor when monitor output is written to a
1144      netcdf-file; still not independent of monitor.F (writes in the same
1145      file).
1146    o change default value of tRef (put a uniform, meaningful value for ocean
1147      & atmos) and initialize sRef (was missing, as Martin mentioned).
1148    o Redefine viscC?Leith*.  Change the coefficients of Leith viscosity
1149      to be proportional to enstrophy dissipation length.  Thus,
1150       viscC?leith?_new=pi*(viscC?leith?_old)^(1/3)
1151      This is now consistent with Smagorinsky and with the manual.
1152    
1153    checkpoint57u_post
1154    o OBCS and PTRACERS: add open boundary support for passive tracers
1155      - either use homogenous (pseudo) v.Neumann conditions or prescribe
1156        OB-values from file; this is not different from the way theta and salinity
1157        are treated
1158      - however, Orlanski-radiation conditions are not supported, and the model
1159        will stop if you use pTracers and Orlanski at the same time.
1160      - beefed up the rountine obcs_external_fields_load: now only those open
1161        boundary values are overwritten with values from files for which there
1162        are really files, otherwise the OB-fields remain untouched. This makes
1163        it possible to use different OBs at different ends of the domain (as
1164        with EXF)
1165    o reduce number of exch calls in shap_filt (s2).
1166    o CS-grid: fix divergence contribution to Leith viscosity. Affects (@
1167      truncation level) 4/5 MLAdjust test results (11&12 digits match).
1168    
1169    checkpoint57t_post
1170    o test biharmonic viscosity + no-slip with exp: global_ocean.cs32x15.viscA4
1171    o finish adding brackets (coriolis S/R, vecinv) in multi-terms sum to get
1172      same truncation, independent of the face number: affects affects several
1173      test. exp.: Update global_ocean.cs32x15 (+.thsice) & MLAdjust (all 5).
1174    o fix bug in mom_v_sidedrag (biharmonic viscosity was counted 2 times);
1175      note that biharmonic viscosity + no-slip was not tested in any experiment.
1176    o fix bug in non-linear free-surf side-drag ; generate new output for
1177      global_ocean.cs32x15(+.thsice) & global_ocean_pressure.
1178    o make mnc honor the writeBinaryPrec flag for most kinds of output
1179    o eesupp: split EEPARAMS into EESIZE/EEPARAMS and add a vector global sum
1180    o minor change in averaging W (mom_vi_?_vertshear.F) that affects truncation
1181      error; update output from global_ocean.cs32x15(+.thsice) & MLAdjust (all 5).
1182    o add brackets in multi-terms sum to get same truncation, independent of
1183      the face number (manage to get exactly same value of gU,gV at the cs-edge)
1184      affects several test. exp. Update global_ocean.cs32x15 (+.thsice).
1185    o Clean, new version of mom_calc_visc.  Adds a new feature, viscAhRemax
1186      and viscA4Remax, which allow one to limit the minimum viscosity by specifying
1187      a maximum grid-scale Reynolds number.  Also, changes all length calculations
1188      in the case of grid anisotropy to geometric mean of dx**2 and dy**2.
1189      Suggested values of viscosity parameters found in mom_calc_visc.
1190      Many new viscosity diagnostics available.
1191    
1192    checkpoint57s_post
1193    o Add clearing-house for viscosity calculations, mom_calc_visc and
1194      correct numerous bugs in LeithD and Smagorinsky discretizations.  
1195      mom_calc_visc now allows for Smagorinsky, Leith and LeithD to be
1196      used simultaneously, and to be used in mom_vecinv and mom_fluxform.
1197      Mom_vecinv can be used with standard viscous calculation (mom_vi_hdissip.F)
1198      and with Strain-Tension viscous term calculation (mom_hdissip.F).  
1199      The Strain-Tension form is now called with useStrainTensonVisc=.true.
1200      ViscAhStrain and viscAhTension are now retired.
1201    o diagnostics "VISCAHD" & "VISCA4D" replace "VISCAH" & "VISCA4".
1202    o In response to JMC's bug report, genmake2 now ignores any soft-links
1203      that it finds in the *current* directory when searching for files.
1204      Soft-links found in any other source directories will still work as
1205      they did before.
1206    o add HAVE_SETRLSTK define and useSETRLSTK flag (eedata) which calls
1207      a C routine to unlimit the stack size
1208    o mnc-ify pkg/aim snapshot vars
1209    o mnc-ify pkg/land as requested by Daniel
1210    o various changes to mnc including:
1211      - all files use the new "BASENAME[[.ITER].{t|f}NUM].nc" format
1212      - output can now be grouped so that all files within a group
1213          change the ITER portion of their names in lock-step together
1214      - can now read ("global") PER-FACE (in addition to PER-TILE) files
1215          and works with both EXCH1 and EXCH2 (but needs more testing)
1216      - writing works for all verification test cases w/ g77 on Linux
1217    
1218    checkpoint57r_post
1219    o make MNC variable initialization happen earlier
1220    o add diagnostics for (almost) each term of the momentum Eq.
1221    o remove SST,SSS,UVEL_k2,VVEL_k2 diagnostics.
1222    o move pkg timeave out of pkg-groups "oceanic" & "atmospheric" (pkg/pkg_groups)
1223    o remove MINIMAL_TAVE_OUTPUT option ;
1224      add "dumpInitAndLast" to replace "nodumps" (and MINIMAL_TAVE_OUTPUT).
1225    o move some basic S/R (used elsewhere in the code) from pkg/mdsio to eesupp/src
1226      allows to compile without pkg/mdsio (& test successfully hs94.1x64x5)
1227    o add MNC output for adjoint of EXF (adexf), SEAICE (adseaice)
1228    o add time-dependent SST, SSS control
1229    o cost terms in ecco/ modularized (new cost_generic.F)
1230    o cost_averages routines are modularized (new cost_averagesgeneric.F)
1231    o new infrastructure for seaice model vs. obs misfits in seaice/
1232      * driver from the_main_loop.F is seaice_cost_driver.F
1233      * first term is AREA vs. SMR observation misfit (ALLOW_SEAICE_COST_SMR_AREA)
1234      * gradient check in Exp. 6a of natl_box_adjoint/
1235    o natl_box_adjoint input_seaice for Lab. Sea now available online via wget
1236      (see README file)
1237    
1238    checkpoint57q_post
1239    o fix initialisation Pb in calc_gw (get NANs in exp5 with g77)
1240    o fix annoying months-old bug in mnc/mdsio output for seaice pkg
1241      - bug was reported by Jean-Michel and Ian Fenty
1242    o fix initialization Pb in AIM-Ocean coupled model (aim_sice2aim.F)
1243      update exp. cpl_aim+ocn output.
1244    o Implement 4-level checkpointing: AUTODIFF_4_LEVEL_CHECKPOINT
1245      Needed for high-res. runs with large global files
1246      to be able to limit tapelev size
1247    o Changed some tests for adjoint:
1248      * carbon/ now tests AUTODIFF_2_LEVEL_CHECKPOINT
1249      * natl_box_adjoint/code_bulk/ tests AUTODIFF_4_LEVEL_CHECKPOINT
1250      * global_ocean.90x40x15/ back to default 3-level checkpointing
1251    o Modifications to enable scripted COMMON to MODULE conversion
1252      * verification/OpenAD/code/ has necessary scripts and description;
1253      * converts, compiles and runs successfully;
1254    
1255    checkpoint57p_post
1256    o reading of delXfile & delYfile moved from ini_parms.F to ini_grid.F
1257    o move ${PKG}_MNC_INIT from ${PKG}_READ_PARAMS to ${PKG}_INIT_FIXED
1258      (already the case for some pkgs, including recent MNC_init, e.g. thsice)
1259    o call CALC_GW from DYNAMICS (instead of from FORWARD_STEP)
1260    o Dissipation & phiHyd gradient are always added to gU,gV in timestep.F
1261      (was already the case for dissipation with mom_vecinv,
1262       and also the case for grad.PhiHyd when staggered-timeStep)
1263      This will allow to put dissipation out-off the AB time-stepping.
1264     Unfortunately, affects truncation error. Update output of exp. that "fails"
1265      (cg2d matching number) and leave the others for later: front_relax(10),
1266      global_ocean_pressure(10),ideal_2D_oce(10),internal_wave(9),lab_sea(12),
1267      matrix_example(7!),natl_box(12),plume_on_slope(11),vermix(12x3,11x2).
1268    
1269    checkpoint57o_post
1270    o fix MNC/MDSIO flags in PTRACERS so that (1) it works, and
1271      (2) its ready to be documented during the 20050801 DocFest
1272    o MNC-ify the gmredi package -- tested and works w/ and w/o mnc
1273      for ideal_2D_oce and lab_sea on linux_ia32_g77
1274    o set to #undef CTRL_SET_OLD_MAXCVARS_30
1275      in global1x1_tot/code_seaice_adj to access indices 32, 33
1276      (worth another tag)
1277    
1278    checkpoint57n_post
1279    o adding precip control xx_precip 32
1280    o adding swflux control xx_swflux 33
1281    o Replacing 10 forcing penalty cost routines by 1 generic.
1282    o Implementing partitioning in time-mean and variable adjustment
1283      for atmos. state.
1284    o Time-mean constant error is now read in data.ecco (instead of hard-coded)
1285    o in natl_box_adjoint:
1286      * updated exp 1 to 10
1287        (but does not have time-mean vs. variable split results yet)
1288    o updated global1x1/*_seaice_adj/
1289      to incorporate latest changes
1290    o enable useSingleCpuIO for mdsio vector routines
1291      (applies in particular to tapelev I/O)
1292    o removed inefficient K-loop in all active_file*control*.F
1293    
1294    checkpoint57m_post
1295    o re-arrange exp. adjustment.cs-32x32x1 (adjust_nlfs.cs-32x32x1 merge into)
1296      and advect_cs (use EXCH-2 and standard cs-32 grid files).
1297    o pkg/exch2: filling of face-corner halo regions is optional
1298      (ifdef W2_FILL_NULL_REGIONS) and is turned off by default.
1299    
1300    checkpoint57l_post
1301     tag before updating tutorials (pre-release-2)
1302    o add cos & sin of grid-direction orientation angle (curvilinear grid only,
1303       for output and interpolation of input fields onto model grid)
1304    o fix radius in mom_v_metric_cylinder.F (wrong by dy/2).
1305       Affects results of exp. rotating_tank ; update output.txt.
1306    o pkg/diagnostics: 2 new S/R to fill a diagnostics using a scaling factor
1307          and taking the square quantity and/or using a fraction-weight field.
1308    o fix aim_diagnostics_init.F mate numbers.
1309    o add mnc output capability to diagnostics/diagstat and update
1310      our cvsignore files for the ACSII output generated
1311    
1312    checkpoint57k_post
1313    o lab_sea now uses diagnostics package and provides a suite of
1314      new EXF diagnostics output.
1315    
1316    checkpoint57j_post
1317    o exf
1318      * bug fix in exf_bulkformulae for psimh (spotted by Eliyahu Biton):
1319        Bracket missing in eqn. for psimh (eqn. 7 of Large & Pond, 1982);
1320        terms -2*ATAN(x) + pi/2 were added to both stable and unstable case.
1321      * extended diagnostics output
1322        - now includes all EXF variables
1323        - hs, hl moved to common block
1324        - separate S/R for diagnostics, called after ctrl vector is added
1325        - name changed for EXFsw -> EXFswnet, EXFlw -> EXFlwnet
1326        - EXFqnet contains true Qnet (i.e. includes qsw)
1327      * updated verif. lab_sea, global_with_exf
1328      * Rearranging hflux (exf_mapfields -> exf_getforcing)
1329        to ensure that diagnostics sees a true EXFqnet
1330    o add matlab scripts for CS-grid vectors (in utils/cs_grid)
1331    o diagnostics pkg: change pointers so that 1 diagnostic can be used
1332      several times with different frequencies.
1333    o mnc-ify the thsice package as requested by Daniel Enderton
1334      - the monitor--MNC output needs work
1335      - many attributes need to be added (most are currently blank)
1336    o mnc-ify theaim_v23 package as requested by Daniel Enderton
1337      - many attributes need to be added (most are currently blank)
1338    o remove "groundAtK1" & "rkFac" (replaced by usingPCoords & -rkSign)
1339    o add Sadourny like discretization to the 4th.O vorticity advection scheme
1340    o fix bug in rStar code (calc_r_star.F) when used with topo/bathy.
1341      update output.txt from: aim.5l_cs (& .thSI), cpl_aim+ocn,
1342         fizhi-gridalt-hs and global_ocean.cs32x15 (& .thsice).
1343    o fix few little things to avoid floating error with -ftrapuv (ifort v9)
1344     (ini_spherical_polar_grid.F, calc_r_star.F, monitor/mon_surfcor.F)
1345    
1346    checkpoint57i_post
1347    o Diagnostics package was changed: diagnostic allocation is now deactivated
1348      by setting an empty file name in the namelist (used to be by setting 0 frequency)
1349    o momentum advection (VI form) options: activate 4th.O vorticity Coriolis ;
1350      add 1rst Order upwind vertical Shear.
1351    o add a quick fix for A/B checkpointing in OFFLINE mode
1352    o add IGNORE_TIME define and -ignore_time option to genmake2 as an
1353      end-run around the C/Fortran linking horror in eesup/src/timers.F
1354    o added pkg/runclock: allows user to terminate run based on wall clock
1355    o added non-hydrostatic scaling parameter: nh_am2
1356    o pkg/my82: futile attempt to make results compiler-independent by adding
1357      some "_d 0", etc. no effect.
1358    o for mnc output, fill the 'T' coordinate var with myTime and create a
1359      separate 'iter' variable for iteration count
1360    o pkg/diagnostics:
1361      add new capability: output of Global/Regional & per-level statistics ;
1362      tested against monitor output (including land & thSIce) on various exp.
1363    o make seaice-pkg I/O type flags (MNC/MDS) more standard.
1364    
1365    checkpoint57h_done
1366      tag after changing user customized files (DIAGNOSTICS_SIZE.h,
1367      data.diagnostics, data.gchem, data.ptracers) is done.
1368    
1369    o pkg/diagnostics: prepare for Global/Regional statistics.
1370      add 2nd namelist in data.diagnostics and update DIAGNOSTICS_SIZE.h
1371    o remove "baseTime" (no used) from arg. list of DIFF_BASE_MULTIPLE
1372      and rename it: DIFFERENT_MULTIPLE
1373    
1374    checkpoint57h_post
1375    o move tIter0 from data.gchem to PTRACERS_Iter0 in data.ptracers
1376    o pkg/diagnostics: change output frequency, now in seconds (instead
1377      of Nb of iterations). This requires to change data.diagnostics.
1378    checkpoint57h_pre
1379    
1380    o in mnc, let the user create the output dir if both mnc_outdir_date
1381      and mnc_outdir_num are false
1382    o add fflags() to pkg/diagnostics which allows one to specify, on a
1383      per-file basis, the file precision [default behavior is unchanged]
1384    o added diagnostics to pkg/kpp, including computation of mixed layer
1385      depth based on a temperature/density criterion
1386    o updated verification/natl_box to test the new pkg/kpp diagnostics
1387    o bugs fixed (with useAbsVorticity=T & with useJamartMomAdv=T)
1388    o test AB-3 code with 4th.Order advection scheme (advect_xy/input.ab3_c4)
1389    o fix mnc flags in pkg/seaice so that they are "owned" by seaice,
1390      not mnc -- this mistake was found by JMC and is now corrected
1391    
1392    checkpoint57g_post
1393    o add Adams-Bashforth 3rd Order time stepping:
1394      - default remains AB-2 (#undef ALLOW_ADAMSBASHFORTH_3)
1395      - not yet implemented with NH, CD_Scheme, pTracers, MNC_pickup ...
1396    checkpoint57g_pre
1397    
1398    o make lambda[Theta,Salt]ClimRelax spatially varying
1399      (default remains spatially uniform constant based on tau)
1400    o added new control variables
1401      * init. uVel, vVel, etanN
1402      * lambda[Theta,Salt]ClimRelax
1403    o separate masks used for ctrl_pack/unpack 'from write_grid' output
1404      (suggested by G. Forget)
1405    
1406    checkpoint57f_post
1407    o add parameter "baseTime" = model base time = time at iteration zero
1408      new function DIFF_BASE_MULTIPLE (replace DIFFERENT_MULTIPLE) to
1409      account for baseTime shift
1410    o move Coriolis arrays from PARAMS.h to GRID.h
1411    checkpoint57f_pre
1412    
1413    o mnc-ifying the seaice package
1414    o introduced an alternative length scale calculation for use in the limiting
1415      maximum viscosity (off by default, see mom_vi_hdissip.F for details)
1416    o S/R ptracers_calc_diff: argument list bug for CALL KPP_CALC_DIFF_S
1417    o added modified Leith scheme with viscosity proportional to grad(Hdiv)
1418      as well as grad(vort3).  Made it compatible with both approximate form
1419      for the cubed sphere and full form of these gradients.  Added flag
1420      useFullLeith to select between approximate and full form.  
1421    o add "d0" in getcon.F to reduce differences between compilers/platforms
1422      update output.txt of exp. fizhi-gridalt-hs
1423    o change port_rand funtion to allow to set the seed.
1424    o fix obscure MNC bug involving conversion between reals and integers
1425      - it caused no problems with certain (eg. gcc, ifc) compilers but the
1426        new version is now more standards-compliant
1427    o adjoint-related modifications
1428      * gad_dst3_adv_?: to be able to use advscheme=30 in adjoint
1429      * gad_calc_rhs: fool adjoint, revert to advscheme=30 in reverse when using 33
1430      * mom_vi_hdissip: to be able to use Leith scheme in adjoint
1431    
1432    checkpoint57e_post
1433    o Adding eddy stress controls a la Ferreira et al.
1434    checkpoint57e_pre (actually was tagged: eckpoint57e_pre)
1435    
1436    o fizhi pkg: fix AtoC and CtoA when called with same input & output array
1437      update output.txt of exp. fizhi-gridalt-hs
1438    o add more "Z" dimensions and associated coordinate vars to MNC
1439    o pkg/exf: added twoDigitYear capability for option useExfYearlyFields
1440    o parameter calendarDumps: when set, approximate months (30-31 days) and years
1441      (360-372 days) for parameters chkPtFreq, pChkPtFreq, taveFreq, SEAICE_taveFreq,
1442      KPP_taveFreq, and freq in pkg/diagnostics are converted to exact calendar
1443      months and years.  Requires pkg/cal.
1444    o diagnostics: add pickup functionality
1445      - off by default for backwards compatibility
1446      - current version only uses MDSIO -- MNC will be added
1447    o allow to use pkg diagnostics for LAND pkg output & Shapiro Tendencies.
1448    o pkg/shap_filt: fix for multi-tiles per face (CS-grid with EXCH2)
1449    
1450    checkpoint57d_post
1451    o pkg/thsice used in the ocean: fix tile Pb related to sIceLoad forcing
1452    o modify verification/ideal_2D_oce so that it tests the creation of mnc
1453      output from the diagnostics package
1454    o temporary fix in EXCH2_UV: add a 3rd call to fix the 24.tiles CS-grid set-up
1455    o make genmake2 more portable by using ".$FS" instead of ".f" for more
1456      of the test compilations (eg. IBM xlf on Mac OSX w/HFS filesys)
1457    o add coordinate variables to the MNC output from the diagnostics package
1458    o change MNC-flags default value: true when useMNC=TRUE
1459    o add a "readgrid_mnc" flag to MNC and give model/src/ini_curvilinear_grid.F
1460      the ability (off by default) to read the grid information using MNC
1461    o lab_sea: use LSR_ERROR=1.E-12 for testing ; update output.txt
1462    o diagnostics: fix a bug (sub-set of levels); keep full precision when averaging
1463    o do snap-shot diagnostics at the middle of the time-interval (instead of
1464      at the end).
1465    o update exp. aim.5l_cs (use default LAND_OPTIONS.h file) and add
1466      new test for AIM with thSIce + slab-ocean
1467    o cpl_aim+ocn test: update output (optfile & default GMREDI_OPTIONS.h)
1468    o move state variable diagnostics to the beginning of the time step ;
1469      (note: still needs some work specially for snap-shot diagnostics)
1470      duplicate & replace UVELVVEL diagnostics with UV_VEL_C & UV_VEL_Z
1471    
1472    checkpoint57c_post
1473    o Change testing option (-ieee) to get closer agreement between g77 & ifort
1474    o generate new output.txt files on faulks with g77 & the new -ieee option
1475    checkpoint57c_pre
1476    
1477    o add "_d 0" in freeze ; change some "FLOAT" to "DFLOAT" and went back (TAF);
1478      update output.txt of exp. global_ocean.90x40x15
1479    o fix in ini_eos.F (one "_d 0" was missing): now g77 & ifc give much closer
1480      results; update global_ocean_pressure & global_ocean.cs32x15 output.txt
1481    o add saltFlux(+File) forcing capability with periodicExternalForcing
1482    o allow to use pkg diagnostics for GM-Redi & ThSIce output
1483    o diagnostics_fill: fill in up to sNx+1 or sNy+1 (if U,V or Z pt) for mnc.
1484    o improvements for the MNC output from DIAGNOSTICS:
1485      - correct handling of the unlimitied dimension
1486      - all dims now have associated coordinate variables
1487      - variables located at U, V, and Corner ("Z") points are now written
1488        with the correct horzontal dimensions (eg. 'Xp1', 'Yp1') so that
1489        *all* data points are output
1490    o added seaice_summary.F and removed obsolete ALLOW_SEAICE's from pkg/seaice
1491    o added pkg/seaice/seaice_monitor.F
1492    o mdsio_readfield.F can now read files visible only to master MPI process.
1493    o pkg/seaice: some test code for ice-modified ocean stress
1494    o exf_getffields interpolation defaults to bilinear for all scalar forcing
1495      fields (remains bicubic for wind velocity and stress).  This avoids, e.g.,
1496      spurious negative numbers for precipitation and humidity.  Will cause
1497      some small numerical differences for integrations using pkg/exf/exf_interp.F.
1498    o pkg/ctrl/
1499      * Add ctrlvec diagnostics in pack/unpack for nondimensional I/O
1500        May be enabled via doPackDiag
1501      *  introduce z-scaling of
1502         + gradient (doZscalePack) and
1503         + control (doZscaleUnpack)
1504    o pkg/mdsio/
1505      * enable useSingleCpuIO for state estimation (ctrl_pack/unpack) mdsio_gl.F
1506      * N.B.: leave tiled I/O for tapelev (i.e. mds...vector)
1507    
1508    checkpoint57b_post
1509    o simplify options in diagnostics_fill arguments (remove weird combinations)
1510    o fix MNC coordinate variables so that they now contain per-face index
1511      values (instead of xC,xG,yC,yG values) when run with EXCH2 since, in
1512      general, EXCH2 grids are only aligned to a "local" coordinate system
1513    o test diagnostics pkg in dic_example (no output) and ideal_2D_oce (with ouput)
1514    o Implement instantaneous output within pkg diagnostics:
1515      setting a negative frequency in data.diagnostics produces
1516     "snap-shot" output (as opposed to time-average if freq > 0)
1517    o move out off EQUIVALENCE all diagnostics that fizhi does not use ;
1518      NOTE: change ptracer diagnostics name: use 2 characters to work with
1519            more than 9 tracers. Add also diagnostics of advect & diffus flux.
1520    o more CF compliance: convert all MNC 'iter' variables to 'T' so that it
1521      becomes the coordinate variable for the 'T' dimension
1522    o add CF-style coordinate variables to MNC
1523      - just a first cut:  numbers are meaningless on the cubesphere and
1524        missing along the T axis but otherwise it works!
1525    o add surface flux diagnostics: TAUX, TAUY, TFLUX, TRELAX, TICE, SFLUX, SRELAX
1526    o pkg/thSIce: read initial state from 6 files ; allow monitor to use MNC.
1527    o add diagnostics of advective & diffusive flux for T & S (pTracers coming soon)
1528      this is based directly on what the model compute, so that the content of
1529      each diagnostics might be affected by switching options (e.g., implicitDiffusion)
1530    o small changes for diagnostics (gad_biharm_?.F, arguments of S/R impldiff.F)
1531    o clean up build options files for SunOS, in particular
1532      - remove -traditional from xmakedepend
1533      - change -xarch=v9 to -xarch=native for f77
1534      - restore use of make (not gmake)
1535      - add CC=gcc if using g77
1536    o changes per discussion of AM, JMC, & EH3 today:
1537      - move redundant "grid" variables out of "state" -- in preparation of
1538        creating proper CF-style coordinate variables and in recognition
1539        that any/all grid variables can be easily copied (eg. w/NCO) from
1540        the grid files into any of the other NetCDF files
1541      - *always* output grid variables with MDSIO (this will eventually be
1542        changed)
1543      - output MNC grid file if useMNC is true
1544    o every instance of _END_MASTER() has been found and replaced with
1545      _END_MASTER( myThid ) in order to satisfy certain picky Sun
1546      preprocessors
1547    o re-arrange diagnostics pkg initialisation:
1548     - allow each package to extend the available diagnostics list
1549     - add some checking and fix small problems (multi-threaded, ...)
1550     - new S/R diagnostics_fill (replace fill_diagnostics):
1551       look through the short list of active diag. (instead of the long list)
1552       create function DIAGNOSTICS_IS_ON to tell if a diagnostics is active
1553    
1554    checkpoint57a_post
1555    o this set of changes restores TAMC compatibility
1556      tested for global_ocean.90x40x15 adjoint on trough
1557      (what a pain)
1558    
1559    checkpoint57a_pre
1560    o some modifs in tools/build_options for sunos
1561    o call ctrl_pack for ctrl at end for optimcycle=0
1562    
1563    checkpoint57
1564    o add horizontal bi-harmonic viscosity for vertical velocity
1565      - new parameter viscA4W (defaults to viscA4)
1566      - affects only non-hydrostatic code
1567      - to be done: no-slip lateral boundary conditions
1568    o switch back to "sflux = sflux - runoff" in exf_getforcing.F
1569    o implement Implicit Vertical advection for pTracers
1570    o depth convergence accelerator: replace deltaTtracer by dTtracerLev(k)
1571      (implemented also for implicit vertical diffusion & advection)
1572    o OBCS: extend application of tracer open boundary conditions
1573      to a strip beyond the boundary of width Olx/Oly
1574    o add call monitor to TAF set of required calls (flow directives)
1575      and include in natl_box_adjoint
1576    o untangle a few ifdefs related to cost, ctrl, autodiff
1577      untangel a few ALLOW_ECCO_OPTIMIZATION
1578    o Apply Cooper & Haines representative estimates also at sub-surface (k=Nr)
1579      (theta2, salt2 in ecco_cost_weights)
1580    
1581    checkpoint56c_post
1582    o OBCS as control variables
1583      - update ctrl_ad_diff.list, obcs_ad_diff.list
1584      - remove balance of obcs controls from default
1585      - fix index bug nobcs in ctrl_init
1586      - fix dummy fields filen in ctrl_pack
1587      - add dummy weights for obcs
1588    o lsopt: comment out fort.94 output
1589    o optim:
1590      - remove unnecessary header files
1591      - adjusted namelists
1592      - add xerbla.F to Makefile
1593    o exf:
1594      - multiple modifications of exf_check_range
1595      - unit change in exf_init_runoff from [m/year] to [m/s]
1596    o mdsio:
1597      - i/o-vector change debugLevel from debLevA to debLevB
1598    
1599    checkpoint56b_post
1600    o collect all ptracers output in an new routine (PTRACERS_OUTPUT) that
1601      is called from DO_THE_MODEL_IO
1602      - rename PTRACERS_STATV_WRITE to PTRACERS_WRITE_TIMEAVE
1603      - introduce new parameter PTRACERS_dumpFreq (defaults to dumpFreq)
1604      - clean up PTRACERS_WRITE_TIMEAVE a little
1605    o add another verification experiment that tests both the cfc-pkg and
1606      the gchem-pkg with GCHEM_SEPARATE_FORCING undefined, that is with
1607      reactive tendencies treated inline with regular timestepping
1608    o testreport previously did a lousy job of comparing small numbers, so
1609      we (Ed and Martin) changed the  way the cut-off of 1.e-12 is
1610      implemented in the little c-progam tmp_cmpnum.c which is embedded in
1611      testreport.
1612    o ptracers_monitor: bug fix for MPI
1613    
1614    checkpoint56a_post
1615    o GCHEM: finish reorganizating the package
1616      - forward_step calls GCHEM_CALC_TENDENDY, which computes gchemTendency
1617        (introduces another 3D-array for each passive tracer, but only if
1618        GCHEM_SEPARATE_FORCING is undefined. For GCHEM_SEPARATE_FORCING
1619        gchemTendency is not needed because the timestep is done separately)
1620      - gchemTendency is added to gPtr in GCHEM_ADD_TENDENCY
1621      - GCHEM is now---more or less cleanly---separate from PTRACERS
1622      - to bo done: handling of surfaceForcingPtr that is needed for KPP not
1623        so clear to me how that should be done in a general way.
1624    o CFC: improve formatting of output in CFC_ATMOS
1625    o PTRACERS:
1626      - rename GCHEM_MONITOR to PTRACERS_MONITOR and call it from MONITOR, so
1627        that ALL experiments with ptracers enable can be checked. This makes
1628        GCHEM_MONITOR obsolete.
1629      - include a runtime parameter PTRACERS_monitorFreq that defaults to
1630        monitorFreq
1631      - set default PTRACERS_write_mdsio to false if PTRACERS_write_mnc is true
1632    o add PTRACERS (PTR0[1-5]) to testreport output
1633    o exf_check_range:
1634      * default changed to .TRUE.
1635      * will check values for niter0 if debLevA, every timestep if debLevB
1636      * STOP in exf_check_range if 'out of range'
1637      * range chosen generous to allow for potential extema
1638      TBD: a version with stricter range
1639           permitted range would be runtime parameters
1640    o GMredi:
1641      - fix ldd97 slope limit ; extend valid domain of Psi-Bolus ;
1642      - change S/R GRAD_SIGMA to be valid in the overlap on CS-grid.
1643      - change the default GMREDI_OPTIONS.h: compile everything except Visbeck
1644    o GCHEM:
1645      - move call to GCHEM_FORCING_SEP, so that it is now called before
1646        the blocking exchanges to avoid computing halos in GCHEM_FORCING_SEP
1647      - introduced a useGCHEM runtime flag and applied it everywhere.
1648      - renamed PTRACERS_SEPARATE_FORCING to GCHEM_SEPARATE_FORCING;
1649        this flag is now only visible within GCHEM-pkg routines.
1650      - moved gchem_forcing_int temporarily into ptracers_forcing, this will
1651        be replaced by a 3D array that is computed before thermodynamics; for
1652        this, the tracer ID iTracer had to be included into the parameter list
1653        of ptracers_forcing
1654      - set up forward_step to call gchem_forcing, that will replace
1655        gchem_forcing_int in ptracers_forcing
1656      - cleaning up
1657    o small cleaning of exch2: remove files that are also in eesupp/src
1658    
1659    checkpoint56
1660    o AIM: read land-Fraction earlier (from ini-fixed) and monitor land at nIter0
1661    o mnc: cleanup "full" files--fixes out-of-memory problem
1662    o ECCO-GODAE
1663      * model/, pkg/, code/, input/ now complete w.r.t. ECCO-GODAE production setup
1664      * fully merged and updated from SIO code
1665        windstress sign change affects
1666        - exf_inscal_[u/v]stress
1667        - sign of xx_tau[u/v] adjustments
1668        - signs in cost_scat
1669      * ctrl_get_gen: avoid update of tau[u/v] for first few days
1670      * natl_box_adjoint updated and compressed
1671      * 2-level checkpoint switch added
1672        (tested in EXP. 1 of natl_box_adjoint)
1673      * new switch doInitXX to avoid init. of xx_... in optimcycle=0
1674    o SVD
1675      * first complete, non-hacked version for SVD calculations
1676      * all interfaces clean w.r.t to handling of xx_..., adxx_..., g_xx_...
1677        performed via direct access files admtlm_vector.it????
1678        (via ctrl_[un]pack)
1679      * optimcycle is used for ARPACK iteration counter
1680        (note: adxx_... is iterated, rather than xx_...; latter is constant!)
1681      * EV problem ok w.r.t. L2-norm in tangent space; need to check other norms
1682        and add linear transforms where necessary
1683      * controls are initial/final SST, SSS (can be extended; need to check
1684        ctrl_set_[un]pack_xyz.F according to ctrl_set_[un]pack_xy.F
1685    o mdsio: filename info to both stderr, stdout
1686    o exf: exf_inscal_runoff: separated default conversion [m/year] -> [m/sec]
1687      from sign change
1688    
1689    checkpoint55j_post
1690    o isolate dissipation tendency (allow to keep it out off AB) in V.I form.
1691      affects (truncation level) output.txt of global_ocean.cs32x15(&.thsice)
1692    o add consistent build directories and .cvsignore files to verification
1693    o added viscA4GridMin and viscA4GridMax for more control on biharmonic viscosity
1694    o make all subroutines 30 or less characters in length for certain older
1695      compilers to work (a thorough search only turns up two routines in
1696      pkg/ptracers)
1697    o allow (vecinv only) a different horiz. viscosity for Divergence and Vorticity;
1698      affects (truncation level) output.txt of global_ocean.cs32x15(&.thsice)
1699    
1700    checkpoint55i_post
1701    o change arrays for total vertical diffusivity (2.D if explicit,
1702      3.D if implicit) ; each ptracer uses its own background value.
1703    o added mnc/NetCDF output capability to ocn_compon_interf
1704      - added bits to verification/cpl_aim+ocn so that it can run on
1705        ITRDA and other clusters without the mpirun "-wd" option
1706    o fixed wayward endif in mom_fluxform.F that messed up cyclindrical
1707      configuration
1708    o give MNC the ability to create additional files rather than
1709      exceeding a specified file size limit "MNC_MAX_FILESIZE"
1710      - the default is just less than 2GB which is a practical limit
1711        on many systems
1712    o Compute the non-local term using either KPP vertical diffusivity (=default)
1713       or the total vertical diffusivity (when KPP_ghatUseTotalDiffus=T)
1714    
1715    checkpoint55h_post
1716    o add verification test "vermix"
1717    o remove all the *_ioinc flags and replace with the single global
1718      outputTypesInclusive flag
1719    o allow to set a vertical profile of vertical diffusivity for T & S
1720    o call PACKAGE_BOOT & PACKAGES_READPARMS just after INI_PARMS
1721    o useMNC moved from data.mnc to data.pkg
1722    
1723    checkpoint55g_post
1724    o Renaming carbon AD experiments to comply with testreport conventions
1725    o Updating adjoint of Held-Suarez hs94.1x64x5
1726    o Fixing directives for non-ECCO forward_step, after ECCO directives
1727      have been fixed to avoid recomp. of do_oceanic_phys
1728      Works well for global_ocean.90x40x15,
1729      but recomp. issue remains for carbon
1730    o Updating adjoint output for natl_box_adjoint after
1731      pkg/ecco has been modified (see taga c55d_post)
1732    
1733    checkpoint55f_post
1734    o rename to timeave_init_fixed
1735    
1736    checkpoint55e_post
1737    o some delicate re-shuffle of store directives to avoid one
1738      extra call of do_oceanic_physics
1739      affects ecco_the_main_loop.F, do_oceanic_physics.F
1740      checkpoint_lev1_directives.h
1741    o NB: this may break global_ocean adjoint temporarily,
1742      but it is clear how to fix it. Will do later, need this now.
1743    
1744    checkpoint55d_post
1745    o ECCO specific cost function terms (up-to-date with 1x1 runs)
1746    o ecco_cost_weights is modified to 1x1 runs
1747    o modifs to allow observations to be read in as
1748      single file or yearly files
1749    o enable to read exf forcing fields as either
1750      single file or yearly files (flag useExfYearlyFields)
1751    checkpoint55d_pre
1752    
1753    o switch between 2-level and 3-level checkpointing
1754    o add ability of MNC to write local and "partial" (eg. 2D slices where
1755      the full 3D field is never actually stored) arrays to NetCDF files
1756      with the correct (that is, the complete multi-dimensional) set of
1757      array indicies
1758      - used in mom_vecinv() to write the diagFreq output
1759      - tested (demonstrated) in verification/aim.5l_cs
1760    o further mnc-ification
1761      - add verification/lab_sea to the list with mnc setups
1762      - fix undefined mnc v-names in cd_code
1763      - add kpp to mnc output (both snapshot and timeave)
1764    o non-hydrostatic code
1765      - added horizontal viscosity parameter viscAhW for w, that replaces viscAh
1766        in calc_gw.F
1767      - defaults to viscAh
1768      - this is useful, when I want to use viscAh=0 (e.g., only biharmonic
1769        friction or Leith) in non-hydrostatic mode, as long as there is
1770        no biharmonic friction and/or Leigth or equivalent for vertical velocity.
1771    o pkg/cost
1772      extend simple cost functions to treat time mean quantities
1773      (T,U,V) via cost_accumulate_state from cost_tile
1774    o multidimAdvection on CS-grid: implement the full 3 pass ; overlap needs to
1775        be 2 times larger than the minimum size the advection scheme requires.
1776        now get a perfect conservation of salt in advect_cs test-exp (updated)
1777    o GGL90 (Gaspar's TKE mixed layer)
1778      - add horizontal diffusion of TKE, requires exchanges in
1779        do_fields_blocking_exchanges, horizontal diffusivity is zero by
1780        default. In OPA there is no horizontal diffusion of TKE but the
1781        mixing coefficients are computed from a horizontal average of TKE of
1782        6 points or so. I think that diffusion has a little more physical
1783        justification.
1784      - clean up ggl90_calc in the hope of reducing memory usage (this hope
1785        was in vain)
1786      - mask tke-variable in ggl90_init
1787    o fix mask Pb in multidimAdvection on CS-grid (still a small Pb with ipass)
1788    o fix biharmonic diffusion on CS-grid.
1789    o more obcs stuff
1790      - added obcs_external_fields_load as an alternative to the EXF-pkg option
1791        for reading boundary values. This routine is called from
1792        obcs_prescribe_read
1793      - updated obcs_check
1794      - changed sponge layer relaxation parameter units for days to seconds
1795      - turned off sponge layer by default
1796      - changed argument list of OBCS_CALC to myTime+deltaTclock
1797      - fixed about 35 bugs in obcs_external_fields_load
1798    
1799    checkpoint55c_post
1800    o obcs stuff
1801      - new runtime flags useOBCSprescribe, useOBCSbalance
1802      - re-arranged obcs_calc
1803      - moved exf_getobcs to obcs_prescibe_read
1804        obcs_prescibe_read is called after ORLANSKI stuff
1805        and independent of it (executable can contain all).
1806      - updated obcs_check
1807      - added exchanges for U,V,gU,gV for useOBCSprescribe=.TRUE.
1808        These may be necessary only if tangential velocities are
1809        prescribed at OB, not sure, needs testing.
1810    o make the MNC_CW_ADD_VATTR_* subroutines all take scalar arguments
1811      which simplifies the calls and passes the ifc check-bounds test
1812    
1813    checkpoint55b_post
1814    o add a 2D scalar, Z location, exchange_2 routine.
1815    o EXCH_UV for CS-grid: add one u,v in the corner-halo region, allows
1816      to compute vorticity on a wider stencil [e.g., vort3(0,1)&(1,0)]
1817      affects advect_cs results (for the wrong reason): update output.txt
1818    o use a more standard discretization for biharmonic viscosity ;
1819     (original version still available with #define MOM_VI_ORIGINAL_VISCA4 )
1820      affects results of dome set-up: update output.txt
1821    o fix gad_advection.F (CubedSphere part), back to version 1.23
1822    o fix bug in mom_vi_del2uv.F (CubedSphere part).
1823    
1824    checkpoint55a_post
1825    o merged code to
1826      * prescribe/read time-dependent open boundaries
1827        (works in conjunction with exf, cal)
1828      * sponge layer code for open boundaries
1829      * each boundary N/S/E/W now has its own CPP option
1830        (healthy for the adjoint)
1831    
1832    checkpoint55
1833    o up-to-date adjoint of previous breaks
1834      - natl_box_adjoint: problem for exp 12, 13: cost = 0. needs fix
1835      - global_ocean_ebm: adjoint still needs fix (TLM ok)
1836      - global_ocean.90x40x15: extended GMREDI_OPTIONS.h
1837      - carbon: * remove tr1-related adjoint verification
1838                * add ptracer as control variable
1839    o remove all tr1-related code (ALLOW_PASSIVE_TRACER)
1840      (adjoint stuff still has some tr1 'names', but all use ptracer arrays)
1841    
1842    checkpoint54f_post
1843    o in verification/carbin/ remove experiment related to
1844      ALLOW_PASSIVE_TRACER (array tr1 etc)
1845      code_ad/ input_ad/ results_ad
1846    
1847    o add two new packages
1848      - ggl90, TKE-model of Gaspar et al. (1990), Blanke+Delecluse (1993)
1849        + subject to optimization (memory)
1850      - opps, OPPS (ocean penetrative plume scheme) of Paluszkiewicz+Romea (1997)
1851        + subject to reordering (many GOTOs in the original code)
1852        + so far opps is called for every (i,j) point, and then operates in
1853          the vertical; one may want to reorder the scheme in order operate in
1854          horizontal slabs at the cost of (a lot of) memory, at least ten new 3D
1855          fields)
1856    o overhaul of IO so that we now have flags for MDSIO and/or MNC
1857      - all verification tests compile and run with linux_ia32_g77
1858      - defaults are compatible with current input files--nothing
1859        should change if you were not previously using MNC
1860      - MNC output has been added in numerous places (eg. timeave)
1861        but there are still a few writes not yet do-able with MNC
1862        (this is in progress)
1863      - flags now allow for either/or/both use of MDSIO and MNC and
1864        documentation will soon follow
1865      - numerous small formatting cleanups for ProTeX
1866    o add version info (via BUILD_INFO.h) to MNC and stdout
1867    
1868    checkpoint54e_post
1869    o add two new packages
1870      - pp81 (Packanowski and Philander, 1981), Richardson number and
1871        stratification dependent mixing
1872      - my82 (Mellor and Yamada, 1982) level 2 turbulence closure scheme
1873      - these scheme operate in a similar manner as KPP (without ghat, of
1874        course), however there is only one diffusivity that is used for both
1875        temperature and salinity (and passive tracers)ç
1876    o add offline package
1877    o add "verification/dic_example" which contains a dic-gchem-ptracer setup
1878      provided by Stephanie Dutkiewicz
1879    o genmake2: add ability to search for C compilers and cleanup test output
1880      - fixes recent SX-6 problems and should help with others (eg. HP-UX)
1881    
1882    checkpoint54d_post
1883    o data.diagnostics: if levels() is unspecified then ALL levels are diagnosed
1884    o bug fix in pkg/cal/cal_addtime.F for TheCalendar='model' day count is wrong,
1885      leading to additional shift by 5 days each year of integration
1886       (i.e. leading to considerable offset over the years)
1887    o update global_ocean.cs32x15/thsice: use z* + RealFW + staggerTimeStep
1888    o start with no AB and no initial filtering (staggerTimeStep):
1889      change the results of test-exp: hs94.128x64x5, hs94.1x64x5 & hs94.cs-32x32x5
1890    o move ocean specific S/R calls from forward_step.F to do_oceanic_phys.F
1891      (external loading & cpl import/export stay in forward_step.F)
1892    o update coupling interface to work with new staggerTimeStep
1893    o change MDSIO ptracers_pickup.
1894    o fix a bug in Flux deriv. vs Ts (pkg/aim_v23/phy_suflux_sice.F);
1895    o genmake2 fixes so netcdf now works on halem ("osf1_alpha_*")
1896    o bugs fixed in kpp_calc.F (ustarY) and external_forcing.F (Qsw & Partial-cell)
1897    
1898    checkpoint54c_post
1899    o replace surfaceTendency U,V,S,T,Tice,Ptr by surfaceForcing U,V,S,T,Tice,Ptr
1900      this affects (truncation error) output.txt of test-exp:
1901       global_ocean_ebm,_pressure,.cs32x15(&.thsice), lab_sea & natl_box
1902    o pkg/kpp: replace pMask by maskC to reduce memory size (one 3.D array)
1903    o change Qnet to always be the net heat flux, (+upward).
1904      affects (truncation error) output of natl_box exp.: updated
1905    o define the max number of passive tracers in PTRACERS_SIZE.h
1906    o start to test mnc routinely in exp0
1907    o add sea-ice loading (sIceLoad) as a new forcing field.
1908    
1909    checkpoint54b_post
1910    o add testreport "-j JOBS" option for parallel builds (tested and pretty
1911       impressive on Altix and Opteron systems)
1912    o diagnostics can now write NetCDF files through the mnc package
1913    o staggerTimeStep & NLFS: update pkg aim_v23 & thsice; update aim.5l_cs output
1914    o staggerTimeStep & multi-Dim-Advec: Exch(U,V) added
1915    o staggerTimeStep & NLFS: rescale T & S surface tendencies.
1916      affects (truncation error) output of lab_sea & natl_box exp.: updated
1917    o change pickup _cd & _ptracers (old pickup restart: usePickupBeforeC54=.T.)
1918    
1919    checkpoint54a_post
1920    o re-write staggerTimeStep: step fwd U,V and then T,S (reverse the order).
1921    o change pickup file (to restart from old pickup, set usePickupBeforeC54=.T.)
1922    o get a perfect restart when using RealFreshWaterFlux + NLFS (not finished)
1923    o update output of all exp. that use staggerTimeStep (except hs94.cs & 2D)
1924      + internal_wave (shift in writing cg2d_ini_res)
1925    checkpoint54a_pre
1926    
1927    o require forcing_In_AB=.FALSE. and remove surfaceTendencyTice from pkg/seaice
1928      - modified verification/lab_sea and natl_box_adjoint accordingly
1929    
1930    checkpoint54
1931    checkpoint53g_post
1932    o prepare splitting of thermodynamics: store convect.counter in common block
1933    o store d.etaH/dt (instead of Div.hV) in common ; affects (truncation error)
1934      output of: global_ocean.cs32x15, global_ocean_pressure & internal_wave
1935    o cnh's modifs to gad_advection.F for cube-sphere multi-dim advection
1936    o new parameter "nShapS": allow to treat differently S from T (nShapT)
1937    o separate Vert.Advec.Scheme from horizontal Advec.Scheme (T & S)
1938    o restore adjointability
1939    
1940    checkpoint53f_post
1941    o modifications that affect AIM experiment results (update output.txt):
1942      - no advection of S at top interface Nr (pkg/generic_advdiff)
1943      - air surf. temp: use lower value between T0 & T1 (phy_suflux_prep.F)
1944    o AIM pkg:
1945      - include stability function into surf.Flux derivative relative to Tsurf
1946      - calculate clear-sky radiation & surface temp. change (for diagnostics)
1947    
1948    checkpoint53e_post
1949    o merged cylindrical coord configuration
1950    o added rotating_tank experiment
1951    checkpoint53e_pre
1952    
1953    checkpoint53d_post
1954    o faulks upgraded: re-generate output.txt that have changed:
1955       global_ocean.cs32x15(.thsice), global_ocean_ebm, lab_sea, natl_box
1956    o Added Bryan and Lewis, 1979, vertical diffusivity profile
1957    o pkg/land: fix problem in land_impl_temp.F when Ts arround freezing.
1958    o added Sadourny discretization of Coriolis
1959      - moved some PARAMETERS from mom_*_coriolis.F to PARAMS.h
1960      - re-enabled use of omega3 (useAbsVorticity)
1961    o added Leith (Phys. Fluids, 1968, 10, 1409-1416) variable viscosity for
1962      vector-invariant equations
1963      - note: does *NOT* yet use same variable visc. for no-slip BC's.
1964    o recoded the lateral boundary conditions for non-hydrostatic w, this time
1965      hopefully without new bugs
1966      - still to do: biharmonic friction for non-hydrostatic w
1967    o bug fix for mom_*_sidedrag: rA -> rAs,rAw
1968    o regenerated output for global_ocean_ebm (using -ieee)
1969    o fix mom_common/mom_*_sidedrag.F to recover numeric output prior to creation
1970      of mom_common/
1971      - simple re-arrangement of instructions within computing loop
1972    checkpoint53d_pre
1973    
1974    checkpoint53c_post
1975    o new version of coupler for AIM+thSIce and Ocean models
1976     - new fields (SSS,h_MixLayer ...) are exchanged through the coupler
1977     - land: change Evaporation of snow
1978     - aim with thSIce: fix bug in snow-precip.
1979    o changes to calc_gw.F
1980     - bug fix for w^2 term near the bottom boundary
1981     - (hopefully) improve the lateral slip boundary condtions for use with
1982        partial/looped cells
1983      - because the bug fix changes two verification experiments anyway (exp5
1984        and plume on slope), change the lateral boundary condition from half slip
1985        to the value of no_slip_sides
1986    o ebm package wasnt quite up to the parallel task. Fixed that.
1987    o Adjoint of EBM package + verification
1988      * TLM OK
1989      * ADM not sufficient accuracy yet (needs further testing)
1990    
1991    checkpoint53b_post
1992    o Commiting new energy balance model to repository
1993      * package is pkg/ebm
1994      * verif. is verification/global_ocean_ebm
1995      * references are in ebm_driver.F
1996    C      * X. Wang, P. Stone and J. Marotzke, 1999:
1997    C        Global thermohaline circulation. Part I:
1998    C        Sensitivity to atmospheric moisture transport.
1999    C        J. Climate 12(1), 71-82
2000    C      * X. Wang, P. Stone and J. Marotzke, 1999:
2001    C        Global thermohaline circulation. Part II:
2002    C        Sensitivity with interactive transport.
2003    C        J. Climate 12(1), 83-91
2004    C      * M. Nakamura, P. Stone and J. Marotzke, 1994:
2005    C        Destabilization of the thermohaline circulation
2006    C        by atmospheric eddy transports.
2007    C        J. Climate 7(12), 1870-1882
2008    o Will need long integration testing.
2009    checkpoint53b_pre
2010    
2011    o created pkg/mom_common in preparation for variable viscosity code
2012    o renamed and split ini_mnc_io
2013    o pkg/land: only liquid water can diffuse or run-off
2014    o AIM using land: soil wetness availability account for snow
2015    o added printMapIncludesZeros to EEPARMS namelist
2016    
2017    checkpoint53a_post
2018    o restore TAMC compatiility for exf_constants.h
2019      (no usage of _d in .h)
2020    o Additional storing in KPP in an attempt to fix
2021      TAMC problem with adjoint of KPP code.
2022      (no success...)
2023      Identical code works fine with TAF.
2024    o Fixed verification/natl_box_adjoint experiments.
2025      Initial conditions for Experiments 4 and 5 are now
2026      set to "SEAICE_initialHEFF=0", which is more reasonable,
2027      and hence gives results closer to that of Experiment 2.
2028      Experiment 6 requires "SEAICE_initialHEFF=1" and is working once again.
2029    
2030    checkpoint53
2031    o stable checkpoint with up to date adjoint
2032      TLM tests only run for 1st grdchk at the moment. Its unclear if
2033      this is a code problem or a problem with resetting code for g_
2034      variables that is being autogenerated wrong.
2035      Otherwise:
2036       o code is testing well on Linux (P4 and AMD), SGI Alitix and Irix.
2037       o IBM and HPQ tests could not be run because NCAR (IBM) and NCCS (HPQ)
2038         are both still in chaos following their security messes.
2039    
2040    checkpoint52n_post
2041    o various build (mostly genmake2) changes including:
2042      - ability to build/run more easily within Cygwin and MacOS X
2043      - more complicated Makefiles with a stronger dependence on Gnu Make
2044    o pkg/seaice modifications
2045      - added SEAICE_deltaTtherm and SEAICE_deltaTdyn in order to reduce cost
2046        of pkg/seaice.  For time being, SEAICE_deltaTtherm = deltaTtracer
2047        and SEAICE_deltaTdyn must be integer multiple of SEAICE_deltaTtherm
2048      - changed proxy for geostrophic velocity and updated
2049        verification/lab_sea/results/* accordingly
2050      - removed ADI dynamic solver from pkg/seaice
2051      - replaced all occurrences of 1/CSTICE or 1/CSUICE
2052        they caused a segmentation fault under certain circumstances
2053      - removed unused field WATR
2054    o bug fix in exf-package:
2055      -  u/vwind are defined at tracer/pressure points. The values of u/vwindmask
2056         now reflect that.
2057    o small fixes in the cal-package:
2058      - set reference date to first of January for the 'model'-calendar
2059      - failing of cal_CheckDate in cal_FullDate now actually results in a
2060        warning
2061    o small modifications in exf-package to increase flexibility:
2062      - change climtempfreeze from a constant to a runtime parameter that
2063        is specified in data.exf_clim (default = -1.9)
2064      - introduce runtime parameter windstressmax (default = 2.0) that is
2065        specified in data.exf
2066    o fix in pkg/thsice:
2067      - update Evap (Tsf changes) to be consistent with Latent heat flux
2068      - maintain snow precipitation unchanged (even if Tsf >=0).
2069     both affect global_ocean.cs32x15/(.thsice) results ; update output.txt.thsice
2070    
2071    checkpoint52m_post
2072    o commented out call to cal_GetMonthsRec in swfrac.F and added some comments;
2073      this does not change any of the results, because myIter=0 in swfrac always
2074      lead to jwtype=2 (the default anyway), but the call makes little sense
2075      as a default
2076    o no SHORTWAVE HEATING lost at the bottom; affects lab_sea output; updated
2077    o re-work pkg/thsice interface with ocean & bulk_force pkg to allow
2078      atmospheric model (AIM) to use it ; add a "slab ocean" component.
2079    o pkg/aim_v23 : add interface to call thermodynamic sea-ice (thsice)
2080    o update global_ocean.cs32x15/output (.thsice) after changes in pkg/thsice
2081    o extending useSingleCpuIO option to work with new exch2 I/O format
2082      - old-style, missing-tile I/O is still accessible by defining CPP
2083        option MISSING_TILE_IO in pkg/mdsio/MDSIO_OPTIONS.h
2084    o monitor package can write to NetCDF files and/or STDOUT
2085    o fix re-definition bug in MNC_GRID_INIT_ALL()
2086    o doc/api_reference added
2087      - a framework for building an API Reference Manual using all
2088        the "protex" comments embedded in the code
2089      - see pkg/generic_advdiff, pkg/mnc for examples
2090    o MNC:
2091      - make myThid the last argument for all subroutines
2092      - new default for the grid files: NO halos
2093      - add useMNC and other run-time flags
2094      - separate per-file-group handling of the unlimited dimension
2095      - early initialization of MNC w/ flags read at the eeboot stage
2096        and lookup tables set in initialize_fixed
2097      - write all MNC output to a freshly-created directory
2098    o thermodynamics sea-ice (thsice) is now tested with testreport.
2099    o test exp. advect_cs: use the standard cs32 grid ; update output.
2100    o Added functionality to grdchk:
2101      pick global i,j,k position (or nearest wet) where to perform check.
2102    
2103    checkpoint52l_post
2104    o new land formulation:
2105      a) use ground enthalpy as prognostic variable to ensure exact
2106         energy conservation.
2107      b) account for water temperature and for latent heat of freezing
2108         in all processes (rain, run-off, ground storage)
2109      c) compute surface and ground temperature implicitly.
2110    o aim_v23 modification for new land model:
2111      a) Treat separately land / ocean / sea-ice surface fluxes
2112         to allow implicit computation of land & sea-ice surface temp.
2113      b) add snow precipitation.
2114    checkpoint52l_pre
2115    
2116    o fix problem (when 1 tile is empty) in min/max monitor.
2117    o fix bug in timeAve (u,vZetatave in common block)
2118    o no restoring terms under ice for pkg/seaice
2119    o moved SEAICE_DO_DIAGS to S/R do_the_model_io
2120    o bug fix for pkg/seaice pickups
2121    o change MNC call locations and add coordinate attributes
2122    o mask vorticity at the corner ; affects global_ocean.cs output
2123    o fix ini_curvilinear_grid ; test CS experiments with mpi
2124    o aim.5l_cs: modify sea-ice fraction input file ; update output
2125    o exf: Adding simple range check routine for exf fields after read
2126    
2127    checkpoint52k_post
2128    o removed top-level directory "diags"
2129      - we migrated these functions to pkg/timeave a long time ago
2130    o fixed bug introduced in pkg/monitor
2131    o accuracy ctrlprec = 32 insuffient for gradient checks using
2132      averaged fields (I/O via cost_averages)
2133      -> use ctrl.h in active_file*.F to control I/O precision.
2134    o paramter list of CALL ADTHE_MAIN_LOOP
2135    o added initial do_the_model_io to ecco
2136    o set all ...Freq to zero after cost_final
2137      taveFreq, dumpFreq, pChkptFreq
2138    o MAIN and ECCO differentiability restored
2139    
2140    checkpoint52j_post
2141    o fix nchklev in tamc.h for global_ocean...
2142    o Bringing flow and store directives up-to-date
2143    o Really weird thing!
2144      call do_the_model_io from the_main_loop with parameters
2145      starttime, niter0, instead of mytime, myiter, screws up the adjoint:
2146      TAF places a faulty re-call of initialise_varia
2147      after cost_final call which should not be there!
2148    checkpoint52j_pre
2149    
2150    o tweaked pkg/mdsio/mdsio_readfield.F to have more useful logic and
2151      error messages
2152    o fix errorMessageUnit problem. remove old version of mdsio from eesup/src
2153    o modified pkg/mdsio/mdsio_readfield.F -- commented out diskspace-eating
2154      debug output
2155    o modfied mdsio_writefield.F to handle non-global files under exch2
2156    o update AIM Cubed-Sphere exp (aim.5l_cs):
2157      use land, p*, and Franco.M forcing fields with fractional land-sea mask.
2158    o update AIM Equatorial Channel exp:
2159      use standard aim_v23 pkg and change the SST fields to be more realistic.
2160    o globalFile now works with exch2
2161    o merged mom_vi_calc_relvort3.F, mom_vi_del2uv.F and
2162      mon_vort3.F to make exch2 friendly with >1 tile per cube face
2163    o limit timeave output for hi-res integrations
2164    
2165    checkpoint52i_post
2166    o removed CPP_EEOPTIONS.h from verification/*/code
2167    o updated the tiling for global_ocean_pressure
2168    checkpoint52i_pre
2169    
2170    o update aim.5l_LatLon using the standard aim_v23 pkg (instead of
2171      the old pkg/aim).
2172    
2173    checkpoint52h_pre
2174    o shortened offending lines in exch2_send_rx?.template
2175    o modified W2_EXCH2_TOPOLOGY.h to reflect current topology generator
2176    o genmake2: add build & execute test for NetCDF code
2177    o modded aim.5l_cs and global_ocean.cs32x15 to use exch2, removed
2178      old grid files, moved CPP_EEMACROS.h to pkg/exch2
2179    o added useSingleCPUIO flag to monitor.F and mon_out.F
2180    o added temporary hack for sea-ice dynamics on the cube:
2181      metric terms are ignored and it is assumed that
2182      there is no sea-ice on cube faces 1, 2, 4, and 5.
2183    
2184    checkpoint52f_post
2185    o added exch2 cube routines to pkg/exch2
2186    o modified hs94.cs-32x32x5 to use it
2187    o added new grid files to hs94.cs-32x32x5
2188    checkpoint52f_pre
2189    
2190    checkpoint52e_post
2191    o first attempt to solve vertical advection (momemtum & T,S) Implicitly
2192      for now, only implemented with Lax-Wendroff (tracer) and VectInv (mom)
2193    o step.1 : rewrite (as in MultiDimAdvec) explicit tracer stepping (gad_calc_rhs.F)
2194      to work with implicit vertical advection and AB ;
2195    o Implic. vert. advect. implemented with flux-limiter, c2, u3 and c4 scheme.
2196    o update output (gad_calc_rhs.F changes affect truncation error) of exp:
2197     front_relax, global_ocean .cs32x15 & _pressure, internal_wave, lab_sea, natl_box
2198    checkpoint52e_pre
2199    
2200    o fix bug in impldiff when Nr=1 or Nr=2.
2201    o change the albedo in pkg/thsice (as GISS model); update output_thsice.txt
2202    o little changes (fftpack, aim/phy_suflux ...) to pass the "checkbounds" test.
2203    o fix deltaTfreesurf in update_cg2d.F (left from c45d_post): affects 2
2204      ocean exp. that use NLFS: global_ocean.cs32x15 & global_ocean_pressure
2205    o added exf_offset_atemp for Celsius to Kelvin conversion of atemp
2206    o eesupp/inc/EEPARAMS.h: MAX_NO_PROCS=1024
2207    o pkg/cal/cal_toseconds.F fix for long (>60 years) integrations
2208    
2209    checkpoint52d_post
2210    o re-tiled many expts to allow comparison in multi-processor mode
2211      - updated output accordingly
2212      - changed hs94.128x64x5 to use intial T from file rather than use the
2213        random number generator
2214    o add infrastructure in model routines for fizhi and gridalt packages
2215    o change global_ocean.cs32x15 because of Pb with GM on CS-grid.
2216    o changes to permit hi-res, cubed-sphere, configuration
2217      - added useSingleCpuIO capability to mdsio_readfield.F and exf_interp.F
2218      - added "#undef ALLOW_USE_MPI" support to eesupp/src/scatter_2d.F
2219      - added pkg/exf/exf_set_uv.F for on-the-fly interpolation and rotation
2220        of surface winds for the cube
2221      (A verification experiment, based on global_ocean.cs32x15, but with
2222       pkg/seaice turned on and with on-the-fly interpolation from the NCEP
2223       Gaussian grid is described in MITgcm_contrib/high_res_cube/README_ice,
2224       complete with example surface forcing files and matlab scripts to look
2225       at the output and compare it with that of global_ocean.cs32x15.)
2226    o packages pickup: $PKG_write_pickup called from packages_write_pickup ;
2227       but call to $PKG_read_pickup remains in $PKG_ini_vars: change CD_code
2228       to conform to the common rule.
2229    o check-in the first version of the coupler + interfaces for multi-components
2230       set-up (Chris's version, adapted to work on cubed-sphere grid); use MPI.
2231       - imply modification in eesupp (MPI_COMM_MODEL < MPI_COMM_WORLD).
2232       - atmosphere: use pkg aim_v23 ; no sea-ice for now.
2233       - ocean and atmos. share the same horizontal grid (no interpolation).
2234       - exchanges between component and coupler is done in forward_step
2235    o new verification experiment, cpl_aim+ocn:
2236       coupled ocean - AIM atmosphere on cs32 grid.
2237    
2238    checkpoint52d_pre
2239    o surface flux time-av diagnostic modified for NLFS & RealFreshWater
2240    o add call to AIM pendant S/R in external_forcing & external_fields_load.F
2241    
2242    checkpoint52c_post
2243    o Fixing OPTIONS files for use of exf:
2244      - ALLOW_ECCO not needed
2245      - ECCO_CPPOPTIONS.h should not be included from
2246        EXF_OPTIONS.h/CAL_OPTIONS.h, but from CPP_OPTIONS.h
2247        as has been the case in the past
2248      - All cal/exf related options are currently set in
2249        single header file. Should remain so until we
2250        agree on a consistent new policy.
2251    o Removed all CPP options for cal package.
2252      cal has no more CPP options.
2253    o modified STOREs in GAD_ADVECTION
2254    o corrected key comp. for passkey
2255    
2256    checkpoint52b_post
2257    o new version: "thsice" of thermodynamic sea-ice pkg:
2258     - only 1 call from "forward_step"; conserve energy, fresh-water & salt.
2259     - modify fluxes but do not change theta directly;
2260     - light cleaning of bulk_force pkg (still needed with thsice).
2261     - add forcing fields + data files in global_ocean.cs32x15/inp_thsice
2262       + output_thsice.txt to test thsice & bulk_force pkgs.
2263    o put back grid & coriolis monitor output.
2264    checkpoint52b_pre
2265    
2266    o call "do_the_model_io" at the beginning (=> dump initial state)
2267    o use rhoConstFresh to define convertEmP2rUnit (was done only in ocean-P)
2268    o sort out interplay between tamc.h and PTRACERS_OPTIONS.h
2269      (need info on NUMBER_OF_PTRACERS)
2270    o missing PTRACERS headers in some routines
2271    o default tamc.h in pkg/autodiff supposed to crash
2272      to ensure proper customization
2273    
2274    checkpoint52a_post
2275    o modifications to make FREEZE (_SURFACE) flux visible to pkg/kpp
2276      - moved surfaceTendencyTice from pkg/seaice to main code
2277      - subroutine FREEZE_SURFACE now limits only surface temperature
2278        and is called in FORWARD_STEP (if allowFreezing=.TRUE.)
2279        => new output.txt for global_ocean.cs32x15 & global_with_exf
2280      - keep the old version of FREEZE for backward compatibility;
2281        global_ocean.90x40x15 left unchanged using useOldFreezing=.TRUE.
2282      - corresponding modifs for TAF directives
2283    o added surface flux output variables to TIMEAVE_STATVARS
2284    o time-averaged output for pkg/ptracers
2285    o fix problem with ECCO-related divided adjoint
2286      snapshot file was missing some ad-variables,
2287      but no warning issued by TAF
2288    
2289    checkpoint52a_pre
2290    o some bug fixes for #undef REAL4_IS_SLOW
2291    
2292    checkpoint52 = ecco_c52_e35
2293    o after testing adjoints of checkpoint51u_post
2294    
2295    checkpoint51u_post
2296    o this is the post-merge tag of the ecco-branch
2297      (needs another clean checkout and re-testing)
2298    o various natl_box_adjoint configs and results
2299      but no input fields
2300    o obcs adjoint not yet merged!
2301    o adding ECCO global 1x1 and 2x2 degree configs
2302    o updated/extended some store directives for seaice
2303    o pkg/ecco now containes ecco-specific part of cost function
2304    o top level routines the_main_loop, forward_step
2305      supersede those in model/src/
2306      previous input data.cost now in data.ecco
2307      (new namelist ecco_cost_nml)
2308    o in ctrl/ cleaned some cross-dependencies and updated CPP options
2309    
2310    checkpoint51t_post
2311    o this is the pre-merge tag of the ecco-branch
2312    
2313    checkpoint51s_post
2314    o cleanup: removed various obsolete #define-s
2315    o pkg/grdchk
2316      - renamed 'ph-grd 3' to 'grad-res'
2317      - merged from ecco-branch
2318        (remaining bug fixes for obcs gradient checks)
2319      - additional high-precision output for testreport
2320        (grep for 'precision_grdchk_result')
2321    
2322    checkpoint51r_post
2323    o cleaned up or removed CPP_OPTIONS.h files
2324    o updated results for some of the tests to reflect the new
2325      optfiles (-ieee: -O0 instead of -O3)
2326    
2327    checkpoint51q_post
2328    o cd_code:
2329      - moved cd_scheme.F -> cd_code_scheme.F
2330      - separate read_checkpoint from cd_code_ini_vars.F
2331      - separated cd_code part from write_checkpoint
2332      - updated AD_SOURCE, generated .flow
2333      - added CD_CODE_VARS.h to the_main_loop
2334      - Moving cd_code specific store dir.s to pkg/cd_code
2335    o ctrl package totally restructured
2336      - pack/unpack now optional and decoupled from
2337        xx_/adxx_ I/O
2338      - ctrl_pack/unpack cleaned
2339        (new routines ctrl_init_ctrlvar.F, pkg/ctrl/ctrl_init_wet.F)
2340      - confined inclusion of AD_CONFIG.h to where necessary.
2341    o genmake2: changed AD dependencies from SRCFILES to AD_FILES
2342    
2343    checkpoint51p_post
2344    o create initial cd_code package
2345      - WARNING: the initialization of fields within packages
2346        is broken because INI_FIELDS (where READ_CHECKPOINT is
2347        called) is called *before* PACKAGES_INIT_VARIABLES.
2348        This seems to be backwards since
2349        1) its important to initially zero the entire field including
2350           the "halo" region
2351        2) zeroing needs to be done *before* reading pickup info
2352           and the pickup call might or might not happen in any
2353           particular run
2354      - this needs an overhaul for R2
2355    o cleanup verification/*/code/GMREDI_OPTIONS.h
2356    o cleanup testreport
2357    
2358    checkpoint51o_post
2359    o bringing AD-related verif's up to date with genmake2
2360      - carbon/
2361      - global_ocean.90x40x15/
2362      - hs.94.1x64x5/
2363      - (front_relax/ )
2364    o (more) consistent directory structure for AD-related verif.'s
2365    o cleaning ALLOW_GRADIENT_CHECK -> ALLOW_GRDCHK
2366    o cleaning some ALLOW_TANGENTLINEAR_RUN -> ALLOW_AUTODIFF
2367    o bug fix in find_alpha.F for MDJWF:
2368      - modif. to alpha = 1/D*( dN/dT - rho*dD/Dt) to account for
2369        change rho -> rho-rhoConst
2370      - replace call find_rho to find_rhonum
2371    o initialisation of rFlx extended to full array (required by TAF)
2372      and shifted to thermodynamics
2373    o removed PTRACERS.h in ptracers routine
2374    o added surfacetendencyPtr to S/R parameter list pracers_forcing
2375    o Correcting initialisations for fVerU, fVerV.
2376    o helping TAF to recognize dependency on kUp for
2377      fVerU, fVerV
2378    o Replacing delZ by delR in pkg/ctrl/
2379    checkpoint51o_pre
2380    
2381    o undid all of cp51 pending some cleanups and discussion
2382    o added the [#include "AD_CONFIG.h"] statement to all files that need
2383       it for adjoint/tl #defines
2384     o re-worked the build logic in genmake2 to support AD_CONFIG.h
2385     o removed tools/genmake since it no longer works
2386    
2387    checkpoint51n_post
2388    o modifications to make FREEZE flux visible to pkg/kpp
2389      - moved surfaceTendencyTice from pkg/seaice to main code
2390      - FREEZE & EXTERNAL_FORCING_SURF moved to FORWARD_STEP
2391      - subroutine FREEZE now limits only surface temperature
2392        (this means new output.txt for global_ocean.90x40x15,
2393         global_ocean.cs32x15, and global_with_exf)
2394    o added surface flux output variables to TIMEAVE_STATVARS
2395    
2396    checkpoint51n_pre
2397    o added "#undef ALLOW_USE_MPI" support to eesupp/src/gather_2d.F
2398    o added [#include "AD_CONFIG.h"] to all files that use the following
2399      defines:
2400      - ALLOW_ADJOINT_RUN
2401      - ALLOW_TANGENTLINEAR_RUN
2402      - ALLOW_ECCO_OPTIMIZATION
2403    
2404    checkpoint51m_post
2405    o incorporating changes to get TAMC/TAF working in genmake2
2406      - added new TAMC/TAF targets to the Makefile
2407      - various cleanups related to package handling
2408      - these changes should have no impact on the forward model
2409    
2410    checkpoint51l_post
2411    o changes to pkg/cal and pkg/exf that allow and speed-up long integrations
2412     - faster algorithm for cal_addtime.F
2413     - higher precision arithmetic, where needed
2414     - pkg/exf *startdate variables changed from calendar date to
2415       model integration time
2416    
2417    checkpoint51l_pre
2418    o add salt flux to forcing fields (used when salty sea-ice forms or melts)
2419    o enable to apply restoring on S & T only in a latitude band.
2420    o update output (external_forcing_surf modif. change truncation errors)
2421       global_ocean.cs32x15, global_ocean_pressure, lab_sea, natl_box
2422    
2423    checkpoint51k_post
2424    o change default to: useNHMTerms=.FALSE.
2425     - new output.txt for atmos. exp (NHMTerms were wrong but now turned off):
2426       adjustment.128x64x1, aim.5l_Eq_Ch, aim.5l_LatLon, hs94.128x64x5, hs94.1x64x5
2427     - new output.txt for idealized oceanic exp (NHMTerms are now turned off):
2428        exp1, ideal_2D_oce
2429     - change data file of oceanic exp (leave the results unchanged for now)
2430       exp2, global_ocean[90x40x15,pressure,with_exf], lab_sea, natl_box
2431    o set gravitySign automatically according to the vertical coordinate used
2432      (and change sign: back to "logical" value: +1 when R increases downward)
2433    o added an include barrier to the default CPP_OPTIONS.h and
2434      removed the #include "PACKAGES_CONFIG.h" from it
2435    o fix a bug in mom_fluxform (from chk51j_post)
2436    
2437    checkpoint51j_post
2438    o Added some AD-related initialisations in mom_vecinv/ mom_fluxform/
2439    o adjusted some flow directives (dynamics, thermodynamics)
2440    o added cubed-sphere case to test cost function
2441    o heckpoint_lev?_directives.h now include
2442      pkg-specific directives, whenever those are enabled.
2443    o Moving pkg-specific flow directives to corresponding pkg
2444      Moving pkg-specific differentiation list to corresponding pkg
2445      Moving pkg-specific checkpoint-lev storing to corresponding pkg
2446      ---> conventions are
2447           - pkg_ad.flow
2448           - pkg_ad_diff.list
2449           - pkg_ad_check_lev?_dir.h
2450    
2451    checkpoint51i_post
2452    o merge of the branch-genmake2
2453      - knowingly breaks the older genmake
2454      - automatic generation of all ALLOW_${PKG_NAME} defines
2455      - new testreport supersedes older testscript
2456    o large number of package inclusion and header cleanups
2457    checkpoint51i_pre
2458    
2459    o new output for adjoin of global ocean vector invariant
2460    o fix for checkpoint of thermodynamic seaice and bulk_force
2461    o Steph gchem various cleanups
2462    
2463    checkpoint 51h_pre
2464    o fixed some single quotes
2465    o modify gchem pkg to be more versatile
2466    o modifications to clean up dic pkg
2467    o add pkg/cfc
2468    
2469    checkpoint51g_post
2470    o provide links for ARPACK and ADM*TLM
2471    o start removing verification/vero/
2472    o update AD-related stuff
2473      (in particular some IF-statements in model/src/ routines)
2474    o adding to verification/global_ocean.90x40x15/ adjoint of
2475      vector invariant setup
2476    
2477    checkpoint51f_post
2478    o update advect_xz/output.txt (left from chekpoint50f_pre, ini_vel modif)
2479    o Mods and bug fixes to pkg/cal, pkg/exf, etc., needed for computation
2480      of tracer Green's fucntions for ocean inversion project.
2481    
2482    checkpoint51f_pre
2483    o Added on-the-fly spatial interpolation capability
2484        "USE_EXF_INTERPOLATION" to pkg/exf.
2485      - This is a temporary Cartesian-grid hack until
2486        the super-duper ESMF coupler becomes available.
2487      - See verification/global_with_exf/README for usage example.
2488      - Removed obsolete EXFwindOnBgrid and SEAICEwindOnCgrid
2489        flags and modified pkg/seaice accordingly.
2490    o Bug fix to pkg/ptracers, pkg/generic_advdiff/gad_calc_rhs.F,
2491        and pkg/kpp/kpp_transport_ptr.F for dealing with tracer
2492        non-local transport term.
2493    
2494    checkpoint51e_post
2495    o pkg/mom_vecinv:
2496      - changes related to hFac: use S/R from aim.5l_cs/code (coriolis & vort.advec)
2497      - add time-ave diagnostic of vorticity advection.
2498    o add diagnostic (instantaneous) of Shapiro Filter effect for T,S & UV.
2499    o atmospheric geopotential: - include water vapor effect;
2500                                - use p^kappa in p* scaling.
2501    o land pkg: read initial state from files.
2502    o AIM : add stratospheric drag in the upper level
2503    
2504    checkpoint51d_post
2505    o change function ILNBLNK (=> last non-blank char.) to return zero
2506      (instead of the string length) when the string. char is empty
2507    o fix bug in dxV,dyU definition of cubed-sphere grid (ini_curvilinear_grid)
2508    o modif's to restore TAMC compatibility
2509      - avoid "_d" constructs in PARAMETER declarations
2510      - avoid interrupting lines by comment lines
2511    o Use cluster local disks for purely local I/O
2512      vs. globally visible disks needed for ctrl stuff
2513      (merged from ecco-branch)
2514      - new active_file_loc... and mdsio_..._loc routines
2515      - affected packages: autodiff, ctrl, grdchk, mdsio
2516    
2517    checkpoint51c_post
2518    o introducing integer flag debugLevel
2519      - debLevZero: suppress all output
2520      - debLevA: standard
2521      - debLevB: equivalent to current debugMode=.TRUE.
2522    o introducing pathname variable mdsioLocalDir for mdsio
2523      that can be specified at runtime
2524      (relevant for cluster I/O to local disk)
2525    `
2526    >>>checkpoint51b_post
2527    adjoint of ptracers
2528    o disentangled ALLOW_PTRACERS using new ALLOW_GCHEM
2529    o extended state in checkpoint_lev?, etc.
2530    o alternative ctrl/cost with tr1 or ptracer
2531    o new comlev1_bibj_ptracers
2532    o new ptracers.flow
2533    o made ptracers_forcing same as external_forcing_s
2534    o added verification for adjoint with ptracers
2535      - adm. grdchk fail so far
2536      - tlm. grdchk OK
2537      - checked tapelev/comlev recomputations: OK
2538    <<<checkpoint51b_pre
2539    
2540    checkpoint51a_post
2541    o added code for biogeochemistry package
2542      - new pkgs: dic, gchem
2543      - new subroutine in ptracers
2544    o modify code for biogeo packages
2545      - in model/src and pkg/ptracers
2546    
2547    checkpoint51
2548    o merged improved packages from ecco-branch (ecco_c51_e34) to MAIN
2549      - autodiff, ctrl, exf, grdchk, seaice
2550      kept separate packages
2551      - cost, ecco, obcs
2552    o updating verification/internal_wave, verification/lab_sea
2553      (all verif's pass on faulks.lcs.mit.edu RH7.3, g77)
2554    
2555    checkpoint50i_post
2556    o Preparing next differentiable checkpoint and sync
2557      of MAIN vs. ecco-branch
2558      - 1st step: this one is differentiable
2559      - 2nd step: next(! not this) checkpoint will have updated packages
2560                  from ecco-branch)
2561    
2562    checkpoint50h_post
2563    o new package "land": provide surface BC for AIM.
2564    o pkg/ptracers: apply exchange to all tracers after reading a pickup.
2565    o AIM: use true log-P extrapolation for near surface temp (= as in
2566        F.Molteni paper) ; update aim.5l_cs output.
2567    o New variable in PARM03 for more flexible pickups
2568    o somewhat cleaned package initialisation sequence for
2569      ctrl/ cost/ ecco/ in packages_... routines
2570    
2571    checkpoint50g_post
2572    o merged with release1_p17 (pkg/seaice and verification/lab_sea)
2573      - added SEAICE_MULTILEVEL for 8-category sea-ice thermodynamics
2574      - LSR sea-ice dynamic solver moved to SouthWest B-grid location and
2575        made the default because of faster convergence than ADI
2576    
2577    checkpoint50f_post
2578    o exf totally restructured
2579      - replaced all exf_set_ routines by one generic exf_set_gen.F
2580        and made sure it's still differentiable
2581      - split exf_getffields.F into new exf_bulkformulae.F
2582      - exf_inscal_/exf_outscal_ suffixes consistent with field names
2583      - updated adjoint/makefile and relevant verif. accordingly
2584    
2585    checkpoint50f_pre
2586     o AIM: near surface temp evaluated from Pot.Temp: fixed for Part Cell ;
2587          + change Evap over land. (update aim.5l_cs output)
2588     o added missing .cvsignores and made uniform across expts
2589     o changed configuration of tidal_basin_2d expt
2590     o added pkg/debug functions for tracing code in fatal crashes
2591     o tidied pkg/monitor to use MONITOR_OPTIONS.h
2592     o new fn in pkg/monitor to stop model if solution grows too big
2593     o removed lots of single quotes from comments
2594    
2595    checkpoint50e_post
2596    o make KPP work with PTRACERS
2597     - fix gad_calc_rhs to call new routine kpp_transport_ptr, which is
2598       nearly a copy of kpp_transport_s
2599     - there is no analogue to SurfaceTendencyS, so I have to use
2600       gPtr(of the surface layer) instead
2601    o add a new platform SunFire+mpi (SunFire 15000) to genmake
2602    checkpoint50e_pre
2603    
2604    checkpoint50d_post
2605    o change kpp output from multiple-record state files to single-record state
2606      files analogous to write_state.F
2607    o reduce the output frequency of cg3d-related stuff to the monitor frequency,
2608      analogous to the cg2d-related output.
2609    o fix small problem with in ptracers_write_checkpoint.F: len(suff)=512,
2610      so that writing to internal file fn (with length 512) fails.
2611    checkpoint50d_pre
2612    
2613    checkpoint50c_post
2614    o fix problem in ini_procs.F when using MPI (was there since checkpoint48f)
2615    o add monitor diagnostic of vorticity (mon_vort3.F) and potential energy.
2616    o add time-average diagnostic of U*V and vertical diffusive flux for theta.
2617    o bug fixed in convective adjustment diagnostic (multi-tile set-up).
2618    o 4th Order Adv scheme: return to previous (c40pre7) masking near boundaries.
2619    
2620    checkpoint50c_pre
2621    Merging from release1_p13:
2622    o bug fix for pkg/seaice dynamic solver
2623    o Added SEAICE_initialHEFF to pkg/seaice
2624    
2625    checkpoint50b_post
2626    o store u*,v* in gU,V instead of in guNm1,gvNm1
2627    o in order to put the momForcing out of the Adams-Bashforth:
2628      move forcing & CD-scheme calls from mom_fluxform & mom_vecinv
2629      to timestep.F
2630    o new flag "useCDscheme" (default=F); replace guCD,gvCD by local arrays
2631    o re-generate output for highly sensitive test-exp:
2632       global_ocean_pressure, ideal_2D_oce, lab_sea, natl_box
2633    
2634    checkpoint50b_pre
2635    o restore the use of momAdvection & useCoriolis flags (mom_vecinv)
2636    o corrected CPP option mismatch in exf_Bulk... functions for case
2637      #define ALLOW_ATM_WIND && #undef ALLOW_ATM_TEMP
2638    
2639    checkpoint50a_post
2640    o Bug fix for merging between c50 and KPP.
2641      ikey was passed from thermodynamics to kpp_calc via
2642      common block rather than being recomputed in kpp_calc,
2643      in contradiction with new key itdkey.
2644      New key ikppkey created, and tamc.h headers updated.
2645    
2646    checkpoint50
2647    - 2nd step of merge with ecco-branch:
2648      merge changes in ecco-branch back into main trunk
2649    - bug fix in find_alpha
2650    - more storing in gmredi_calc_tensor.F, kpp_routines.F
2651    - avoid iterative loop in ini_pressure for ALLOW_AUTODIFF_TAMC
2652    - merged some sliced AD support routines
2653    
2654    checkpoint49
2655    merged from ecco-branch:
2656    o exf:
2657      - Enable initialisation of forcing fields to constant
2658        (runtime) values.
2659      - in exf_getffields.F
2660        Reduce i-/j-loop to interior domain, discarding overlaps.
2661        That also fixes wrong TAF-key computations for key_1, key_2
2662        with bulf formulae.
2663      - exf_init.F modify #ifdef for exf_init_evap
2664      - exf_getffieldrec.F, ctrl_getrec.F
2665        The following INT-usages are not safe:
2666          fldsecs  = int(fldsecs/fldperiod)*fldperiod
2667          fldcount = int(fldsecs/fldperiod) + 1
2668        and were modified.
2669    o autodiff: checkpoint_lev...
2670      - updated storing for bulk formulae (some arrays were missing)
2671      - added state for seaice package
2672      - synchronized with main branch
2673    o DIVA:
2674      Modif.s in
2675      - the_main_loop.F
2676      - the_model_main.F
2677      and added cost_final_restore.F cost_final_store.F
2678      o With these changes, it is possible to fully separate
2679        the first forward run to compute the cost function (mdthe_main_loop)
2680        and adjoint runs over individual DIVA intervals (adthe_main_loop)
2681        into separate model executions.
2682        This enables better tuning of DIVA to given queue sizes.
2683      o Loss of cost function value in consecutive DIVA runs is
2684        fixed by storing to 'costfinal' file.
2685      o Appropriate call of ctrl_unpack/_pack,grdchk_main at
2686        beginning/end of adjoint integration is accounted for.
2687      The current changes apply to TAF-1.4.26.
2688      TAF has one remaining bug, requiring one manual change
2689      (see MITgcm manual).
2690    o cal: synchronized between MAIN and ecco-branch
2691    
2692    checkpoint48i_post
2693    o Changes to restore differentiability of code w.r.t. previous tag
2694      (mostly adding new routines to make list and replacing
2695      pressure by totPhiHyd).
2696    o Updated and merged grdchk package
2697      - has both ADM and TLM checks
2698      - works for single- and multi-proc.
2699      - output cleaned
2700      - worked successfully for parallel DIVA
2701    o genmake:
2702      - Adding -platform=SP4
2703      - Modif. for DEC Alpha (many don't have makedepend; use mkdep instead).
2704    o Modif. for DIVA:
2705      ctrl_unpack should not be called in intermediate DIVA interval.
2706      (similar thing would apply for active files such as
2707      tbar, sbar, psbar, which should not be reinitialised;
2708      only relevant for ecco-branch)
2709    
2710    checkpoint48h_post
2711    o improve "ini_p_ground" when using finite difference form for calc_phi_hyd
2712    o Added net flux to downward flux conversion to pkg/exf/exf_getffields.F
2713    o Added SEAICE_initialHEFF to pkg/seaice
2714    o ecco_the_model_main.F: SEAICE_WRITE_PICKUP must precede WRITE_CHECKPOINT
2715    
2716    checkpoint48g_post
2717    --- EOS:
2718    o compute locally the pressure for use in EOS: UNESCO, JMD95P, MDJWF
2719      store total Potential in totPhyHyd for diagnostics & EOS.
2720    o fix restart and overlap Pb when using Z-coord and EOS funct. of P
2721    --- Pressure/geopotential gradient:
2722    o use Ro_surf & R_low instead of hFac in cal_phi_hyd:
2723    o NLFS + p-coord.: eta*Alpha' is not longer lagging 1.time-step behind
2724      ( changes results of global_ocean_pressure )
2725    o NLFS + z-coord.: add eta*Rho' contribution.
2726    o accurate phiHyd when using interface-W at the middle between 2 centers
2727     ( changes results of ideal_2D_oce )
2728    o includes r* 2nd term in potential gradient.
2729    
2730    checkpoint48f_post
2731    Merging from release1_p12:
2732    o Modifications for using pkg/exf with pkg/seaice
2733      - improved description of the various forcing configurations
2734      - added basic radiation bulk formulae to pkg/exf
2735      - units/sign fix for evap computation in exf_getffields.F
2736      - updated verification/global_with_exf/results/output.txt
2737    o Added pkg/sbo for computing IERS Special Bureau for the Oceans
2738      (SBO) core products, including oceanic mass, center-of-mass,
2739      angular, and bottom pressure (see pkg/sbo/README.sbo).
2740    o Lower bound for viscosity/diffusivity in pkg/kpp/kpp_routines.F
2741      to avoid negative values in shallow regions.
2742      - updated verification/natl_box/results/output.txt
2743      - updated verification/lab_sea/results/output.txt
2744    o MPI gather, scatter: eesupp/src/gather_2d.F and scatter_2d.F
2745    o Added useSingleCpuIO option (see PARAMS.h).
2746    o Updated useSingleCpuIO option in mdsio_writefield.F to
2747      work with multi-field files, e.g., for single-file pickup.
2748    o pkg/seaice:
2749      - bug fix in growth.F: QNET for no shortwave case
2750      - added HeffFile for specifying initial sea-ice thickness
2751      - changed SEAICE_EXTERNAL_FLUXES wind stress implementation
2752    o Added missing /* */ to CPP comments in pkg/seaice, pkg/exf,
2753      kpp_transport_t.F, forward_step.F, and the_main_loop.F
2754    o pkg/seaice:
2755      - adjoint-friendly modifications
2756      - added a SEAICE_WRITE_PICKUP at end of the_model_main.F
2757    
2758    checkpoint48e_post
2759    o New S/R for diagnostic of bottom pressure (phi0surf was missing in c48d_post)
2760    o dynamics: change definition of computational domain & adapt mom_fluxform
2761      accordingly ; when viscA4=0, allows to run the dynamics with Olx=Oly=2.
2762    o following exp works with Olx=Oly=2 (and pass through checkbounds option):
2763        adjust_nlfs.cs-32x32x1 adjustment.128x64x1 adjustment.cs-32x32x1
2764        exp0 exp1 exp2 exp4 exp5 hs94.cs-32x32x5 hs94.128x64x5 hs94.1x64x5
2765        global_ocean.90x40x15 global_with_exf global_ocean_pressure
2766        inverted_barometer solid-body.cs-32x32x1
2767      (high order AdvScheme and/or multiDimAd works with Olx=Oly=2 ? not sure)
2768    
2769    checkpoint48d_post
2770    o in preparation for r*:
2771     a) use pre-computed gradient of hydrostatic potential:
2772        changes in timestep.F & mom_cdscheme.F affects results of ideal_2D_oce
2773     b) move phi0surf from calc_phi_hyd to calc_grad_phi_hyd:
2774        => affects results of glob_oce_pressure (different truncation error)  
2775      update output.txt of ideal_2D_oce & global_ocean_pressure
2776    
2777    checkpoint48d_pre
2778    o in preparation for r*:
2779      new S/R (calc_grad_phi_hyd.F) to compute Hydrostatic potential gradient.
2780      pass the 2 comp. of the grad. as arguments to momentum S/R.
2781      but for the moment, only used if it does not change the results.
2782    o add finite volume form of calc_phi_hyd for buoyancyRelation OCEANIC & OCEANICP
2783    
2784    checkpoint48c_post
2785    Modifications in treatment of initial flux forcing controls
2786    to avoid extra storing of flux fields.
2787    
2788    checkpoint48c_pre
2789    o Added tidal_basin_2d experiment (currently 1D!)
2790    o can use r* Coordinate with OBC (but Orlanski Rad. BC not yet implemented)
2791    
2792  checkpoint48b_post  checkpoint48b_post
2793  o r* coordinate added in #ifdef NONLIN_FRSURF block.  o r* coordinate added in #ifdef NONLIN_FRSURF block.
2794   (modification to pressure gradient not yet implemented)   (modification to pressure gradient not yet implemented)

Legend:
Removed from v.1.125  
changed lines
  Added in v.1.904

  ViewVC Help
Powered by ViewVC 1.1.22