$Header: /u/u0/gcmpack/MITgcm/doc/tag-index,v 1.78 2002/07/13 05:00:16 heimbach Exp $

    Notes on tags used in MITgcmUV
    ==============================

checkpoint46
further merges from release1_p5
o new ctrl package
  - adopted from ECCO environment to enable optimization
  - added Eliassen Palm fluxes to controls
o added Eliassen Palm flux controls to gradient check package
o cost package
  - Compatible with new ctrl package
  - added Eliassen Palm cost hooks
  - modif's of existing cost functions
o Adjoint-related bug fixes in kpp:
  - kpp_calc: sore of kpphbl avoids recomputation/call to S/R kppmix
  - kpp_routines: store of Rib avoids partial recomputation bug of TAF.
o autodiff package
  - flow directives:
    + new for S/R do_the_model_io
    + enhanced for S/R checkpoint
    + new gmredi.flow
  - Introduced CPP option ALLOW_AUTODIFF_MONITOR to
    disable adcommon.h/g_common.h by default.
  - fixed problem for adjoint of global_max
o modified verification/carbon/
o New setup for adjoint of global_ocean
o added hooks for Eliassen Palm fluxes (dynamics.F, ini_fields.F)
o cleaned TAF keys iikey, idkey (dynamics.F, thermodynamics.F)
o incorporated hooks for sponge layer code (external_forcing.F)

checkpoint45d_post
o import 2 fixes from release1_p5 (CG2D.h & packages_readparms.F)
o use recip_dx*,recip_dy* instead of /dx*,/dy* in orlanski_E,W,N,S
  (affects plume_on_slope "cg2d" output)
o add new parameter deltaTfreesurf for free-surface time stepping
o exchange gT,gS when using staggerTimeStep & GM & Oly<4 
o NONLIN_FRSURF: rescale gNm1 to get a better conservation with A-B
o change phiMin in exp1 (to agree with documentation)
o add new flags: 
 - T,S forcing inside/outside Adams-Bashforth
 - turn off temp,salt advection and/or forcing
 - for each tracer, define internal flag for multiDimAdvection & A-B
o monitor: change definition of KE to check conservation of Energy

checkpoint45c_post
o Removed f90 comments ("!")
o Modified initialisations to enable exf package for MITgcm
  (without invoking ECCO_PACKAGE).
o modifications to gradient check package (Martin Losch)
  - enable centered differences
  - modified format of standard output

checkpoint45b_post
o cleaned exchange calls in cg2d
o Included CPP option ALLOW_AUTODIFF_MONITOR in forward_step
o included CPP option SINGLE_LAYER_MODE in thermodynamics
  to configure barotropic setup (Martin Losch)
o moved some initialisations within bi,bj loop in dynamics
  (TAF flow dependency)
o in initialise_varia, moved call packages_init_variables
  before convective_adjustment_init
  (corresponding adjustment of TAF tape initialisation).
o in calc_diffusivity/calc_viscosity extended domain to full overlap.

checkpoint45a_post
o compute Rho over the whole domain (extend iMin,jMin indices)
o specific exchange for X-slice domain (case Ny=1)
o argument futureIter of S/R obcs_calc missing in exp4 & internal_wave /code
o solve_for_pressure : set cg2d_x to zero where OBCS are applied

checkpoint44h_post = checkpoint45
o Fix to restore differentiability:
  place at which packages_init_variables is called in
  initialise_varia is crucial for reverse control flow.
o modifications in GMRedi to enable stable adjoint
  (corresponding modif's in thermodynamics, dynamics)
o added missing hook for sponge layer code in external_forcing
o modified test cost functions
o storing in gad_advection (plus removal of write(0,*)!
o missing headers TR1.h added in convective_adjustment routines
o errorMessageUnit set non-equal zero in eeboot
  (conflict on some platforms, e.g. IBM SP3)
o modified carbon verif.

checkpoint44h_pre
o vertical grid option: allow to put the Interface at the middle between
  2 cell-centers ; replace delZ in pkg/kpp by drF.
o GM Advective form: Tracers are advected using the residual transport (=
  Euler+GM-bolus); set param GM_AdvSeparate=T to return to previous form.

checkpoint44g_post
o fix surface correction term in multiDimAdvection (affects plume_on_slope 
  results) ; ifdef missing in thermodynamics.F

checkpoint44f_pre,checkpoint44f_post
o added PTRACERS package
  This allows an arbitrary number of passive tracers to be integrated
  forward simultaneously with the dynamicaly model.
  + Implemented so far:
    - basic forward algorithm (time-stepping, advection, diffusion, convection)
    - I/O and checkpointing
    - GM/Redi  *but*  using the GM/Redi coefficient of Salt
  + Not implemented so far:
    - KPP
    - OBCS
  + No specific example supplied (yet) but global_ocean.90x40x15 has the
    necessary data.ptracer file. Simply use -enable=ptracers and uncomment
    line in data.pkg.
  + This package is disabled by default since it increases storage.


o testscript: added -cleanup option
o Shap_filt: a) new shap_filt S/R to use no-slip BC with S2 filter
             b) enable to filter 2D fields.

checkpoint44e_pre,post
o re-wrote convective adjustment to use pre-calculated weights
  Affects: model/src/convective_adjustment.F, convective_adjustment_ini.F
  Adds:    model/src/convective_weights.F, convectively_mixtracer.F
  Original calls to convect() still in place.

chkpt44d_pre,post
o added missing EXCLUDE_MONITOR flags
o changed "e" to "_d" in gmredi_slope_limit, gmredi_slope_psi
  (incompatible typ in MIN/MAX expressions caused problems
  on IBM SP3)
o in genmake added variable MAKEDEPEND
  plus resetting for case SunOS
o added timer_stats.c routine for IBM SP3
o removed variables in dynamics
!!! I forgot to create tag chkpt44d_pre !!!
!!! But chkpt44d_pre = chkpt44c_post    !!!

o real fresh water flux implemented with non-linear free-surface.

chkpt44c_pre,post
o few fix (mask in shap_s2, EmPmR in external_field_load, 
  USE_NATURAL_BCS in solve_for_P); 
o add arguments myIter & myTime to S/R obcs_calc & solve_for_P

checkpoint44b_pre/_post
o merge of relevant stuff from the ecco-branch:
  - genmake: removed $S64 overwrite for case SunOS
  - pkg/exf: update and corrections for field swapping and obcs
  - pkg/ecco: parameter lists for the_model_main, the_main_loop
              harmonized between ECCO and MITgcm
  - pkg/autodiff: added flow directives for obcs, mdsio_gl_slice
                  updated checkpointing_lev... lists for obcs
  - model/src: minor changes in forward_step, plot_field
               added directive for divided adjoint in the_main_loop
  - pkg/mdsio: added mdsio_gl_slice

o check parameters & config (chkpt44a_pre,post)
o OBC and NonLin_FrSurf.

checkpoint44
o fix bug in mom_vi_del2uv
o select when filters are applied ; add options to zonal_filter (data.zonfilt)
o gmredi: fix Pb in the adiabatic form ; add options (.e.g. Bolus advection)
o update AIM experiments (NCEP input files)
o improve and extend diagnostics (Monitor, TimeAve with NonLin-FrSurf)
o added some stuff for AD

checkpoint43
o added two new advection tests
o added global 4x4 degree ocean test
o added test of H&S94 with free surface on cube
o some final mods for gradient check, adjoint,...

checkpoint42
  Fixed AD-related problems:
o Store directives up-to-date with re-arranged Adams-Bashforth
  (mainly thermodynamics.F)
o New store directives for multi-dim. advection schemes
  * new CPP flag ALLOW_MULTI_DIM_ADVECTION
  * new common block and key passkey
  (mainly gad_advection.F)
o Modified store directives for split of dynamics/thermodynamics
  for the case ALLOW_KPP
o Cleaned argument list for timestep_tracer.F

checkpoint41
o re-formatted/added comments in prologues of key subroutines
  to work with protex

checkpoint40
o moved calc_gs, calc_gt and calc_tr1 back to model/src
o added FLT (floats) package from Arne along with demo. experiment
o re-arranged Adams-Bashforth scheme for tracers to allow easier
  implementation of forward-in-time forcing terms
o more mods for non-linear free-surface including new variable
o modified multi-dim method to work on cube
o bug fix in KPP (from DM)

checkpoint40pre9
o added DST advection schemes
o fix MPI bug on SGI's
o modifications for non-linear free-surface
o fixed conditionals for fixed flow/passive tracer only mode
o added tension/strain form of stress tensor
o changes to commenting of arguments for TAF/TAMC
o added/updated many matlab scripts
o added multi-dimensional advection method for tracers
  
checkpoint40pre8
o new package rw/
  Added method for dumping intermediate local arrays:
  mdsio_writetile - same as mdsio_writefield except works from inside
                    bi,bj loop
  mdsio_writelocal - same as mdsio_writetile except works for local
                     arrays
  write_local_r? - higher-level wrapper for mdsio_writelocal
  Controlled by diagFreq. Defaults to zero (ie. no dumps)
  Example given at end of mom_vecinv.F that dumps some local arrays.
o replaced calc_mom_rhs.F by mom_fluxform.F/mom_vecinc.F to
  control flux-form versus vector invariant code.
  Switch is runtime flag vectorInvariantMomentum (defaults to false)
  or genmake -DISABLE ...
o TAMC-related update to cope with mom_fluxform.F/mom_vecinc.F
  (additional storing is now needed for case vecinv;
  currently nothing implemented to switch this storing off
  in case fluxform is used since no CPP flag available).

checkpoint40pre7
o bug fix in dynamics.F
  calc_viscosity called before k=1,Nr loop.
o added some #ifdef's ALLOW_PASSIVE_TRACER
o cleaned initialisations in ctrl_map_ini
  related to TAF

checkpoint40pre6
o split dynamics into thermodynamics & dynamics
o corresponding split of calc_diffusivity into
  calc_diffusivity, calc_viscosity
  (kpp_calc_diff, kpp_calc_visc).
o Added diffkr, kapgm to control variables
o bug fix in gmredi_slope_limit for ldd97

checkpoint40pre5
o proper initialization of Adams-Bashforth time stepping
  + uses forward step for very first step of model (iter=0)
o re-generated *all* output since almost all output is modified by this
  change (sorry but we've been putting this one off for about 2 years)
  + natl_box, aim.5l_Equatorial_Channel and aim.5l_zon-ave were
    *not* regenerated since they are already out of date and I don't
    want to create the impression that they are suddenly working.
o removed KAP stuff for DEC's
o modified/added many .cvsignore files in */code and */input
o added new expt "solid-body.cs-32x32x1"
  + this uses an alternative form of ini_curvilinear_grid.F which
    is not necessarily any better than the current one...

checkpoint40pre4
o added re-initialisations of utrans,vtrans,rtrans in
  calc_common_factors which are crucial for TAF.
o extended iMin,jMin range for calc_common_factors,
  calc_diffusivity
o added option ALLOW_PASSIVE_TRACER
o a few minor updates and fixes

checkpoint40pre3
o created calc_gtr1.F for gad package
o split the_main_loop and re-introduced forward_step
o some recomputations of nIter0 for TAMC

checkpoint40pre2
o Updated to latest branch of AJA, JMC
o Added gradient check package
o Added routines for passive tracer handling
o Added carbon sequestration sensitivity experiment

checkpoint39
 o Modifications and fixes to support TAMC
   (mainly missing or wrong directives)
 o Corrected common blocks when fooling TAMC to produce adjoint I/O
   in addummy_in_stepping
 o Updated verification/vero/ (bug fixes in code/, correct pickups in input/)
 o Enabled "sliced" (xz-,yz-) exchanges, needed for obcs.
 o Included following packages:
   cal: calendar
   exf: external forcing
   ecco: essential routines to control use of cal, exf
         (NB: this is not the full ECCO environment)
 o disabled some packages by default in genmake

checkpoint38
 o see notes_c37_adj.txt
 o corrected wrong layer index in external_forcing_t
 o replaced the_main_loop/forward_step by the_main_loop
 o removed forceoutput from write_state
   (replaced criteria for initial/final state)
 o added runtime flag for pre-C35 pickups: usePickupBeforeC35

checkpoint37
 o mdsio.F routine split and packaged in pkg/mdsio
   (mdsio.F and mdsio_gl.F still exist in eesupp/src but are not
    used unless genmake -disable=mdsio)
 o allow a more precise surface-geopotential gradient for the atmosphere
   taking into account the change in space of Alpha (=1/rho) at the surface.
 o variable "etaN" (replace cg2d_x) is the surface R-anomaly [r unit]
   (ocean: sea surface height [m] / atmos: surface pressure anomaly [Pa])
 o Change units: Phi_Hydrostatic (=phiHyd), Phi_Surface(=cg2d_x) and
   Phi_NonHydrostatic (=cg3d_x), all have now the dimension of a potential
   [m2/s2] (pressure/rhoConst in the ocean ; Geo-Potential in the atmosphere).
 o Time-Average diagnostics defined as a pseudo package "timeave".
 o pickup files : old pickup (before c35) did not work with new code (c35
   and after) unless activating 2 commented lines in initialise-varia.
 o Non-Hydrostatic pickup file Pb fixed.
 o bug with Rigid-lid version (since c35) fixed.  

checkpoint36
 o implement Crank-Nickelson barotropic time-stepping
 o recover Time-Average diagnostics
 o fix Pb in checkpoint (PR#19) 
 o AIM become a standard package ; clean unused CPP_kees

checkpoint35
 o subtantial rewrite of dynamics.f
 o allows staggered time-stepping
 o packaged obcs, aim (Atmospheric Physics), zonal_filt, shap_filt
 o added bottom drag (linear + quadratic)

checkpoint34
 o Modified exchange routines for correct reverse simulation.
 o Added verification output to comply with bug fix in impldiff.F
   as of c33 (exp2, natl_box).
 o Corrected store directives in dynamics.F
 o Corrected array boundaries in impldiff.F
 o Corrected array dimensions in gmredi.
   Added temporary scalars to avoid storage by TAMC (gmredi, kpp).
 o Added routine GLOBAL_SUM_INT to global_sum.F
 o Added mdsio_gl.F for ECCO purposes.

checkpoint33
 o Fixed bug in lower BC in impldiff.F
 o Fixed confusion about units of forcing arrays in FFIELDS.h
   namely Fu,Fv,Qnet,Qsw,EmPmR:
   - Removed verification/natl_box/code/external_fields_scale.F
     (did not differ from that in model/src)
   - Changed units of fu,fv,Qnet,Qsw,EmPmR back to proper units
     (see FFIELDS.h for description)
   - Scale fu,fv,Qnet,Qsw,EmPmR when used in external_forcing_surf.F,
     kpp_calc.F and kpp_transport_t.F
   - Removed model/src/external_fields_scale.F and calls to it
   - verification/natl_box uses flux data with "atmospheric" sign so
     a special version of external_fields_load.F is used to
     change the data as it's read in. This way, the arrays
     have the right units and signs at all times tha a user could
     possibly use them.
 o Corrected genmake to delete a temporary file during configuration

checkpoint32
 o Scaling of forcing fields moved from external_forcing.F to
   external_fields_scale.F, called directly after loading fields.
 o Surface relaxation terms added to surface tendency fields in
   extra subroutine.
 o impldiff.F changed to avoid storing by TAMC of huge intermediate
   fields.
 o Changes in GMRedi to comply with packaging structure.
 o Modifications and bug fixes in KPP package.
 o Verification experiment for KPP added (verification/nat_box/)

checkpoint31
 o Packages interface brought in line with defined standard
   -> new routines packages_...F
   -> changes in initialise_fixed.F, initialise_varia.F
   -> enables initialisation interface for ECCO package
 o Rescaling of external forcing fields immediately after read
   (removed from external_forcing.F) 
   -> new: surface_fields_scale.F
   -> affects ini_foorcing.F, external_fields_load.F
 o Computation of surface tendencies before tendency updates.
   -> new: external_forcing_surf.F
 o Change of variable names useGMRedi, useKPP, useECCO
 o Further changes in dynamics.F, impldiff.F for TAMC
 o Tested for experiments 0, 2, 4.
   - not yet tested for GMRedi.
   - not yet tested for KPP.

checkpoint30
 o Updates for OBCs
 o New experiment for test OBCs (internal_wave)
 o New output.txt in verification/exp4/results/
 o Updates for KPP: calculation of viscosity corrected, new variables
   kpp_dumpFreq and kpp_taveFreq
 o CPP'd calls to system routines for TARGET_CRAY_VECTOR (P.H.)
   and entry for T90 in genmake

checkpoint29
 o packaged KPP and GM/Redi

checkpoint28
 o Corrected initialization of hFacMin for difference vertical coordinates
 o Modified calculation of partial cell thickness to more robust algorithm
 o config_summary.F: replaced write_1D_... by write_0D_...
   read_write.F: added subroutines write_0D_...
 o routines calc_common_factors, calc_gs, calc_gt, calc_phi_hyd, find_rho:
   included some initialisations required for TAMC.
 o routine calc_isoslopes: modified sqrt computation to make it 
   differentiable for zero argument.
 o routines dynamics, impldiff:
   included store directives and tape key computations required for TAMC.
 o ALL TAMC related changes are between ifdef ALLOW_AUTODIFF_TAMC

checkpoint27
 o fixed calc_isoslopes() to so that cancellation of terms in tensor
   formulation works properly with variable resolution.
 o restructured the calling tree between the_model_main() and dynamics()
 o split initialise() into initialise_fixed() and initialise_varia()
 o introduced initialization file pSurfInitFile for free surface (cg2d_x)
   in new routine ini_psurf()

checkpoint26
 o moved some #ifdef in optional routines to encompass everything
   except the argument declarations. This was using up some memory.
 o fixed macros like _ADT to work with both versions of Linux cpp
 o cleaned up some unused and uninitialized variables
   (helps when debugging with strict compile options)
 o split up CPP_EEOPTIONS.h into options and macros
   (macros are now in eesupp/inc/CPP_EEMACROS.h)
 o patch for 2 processor JAM mode

checkpoint25
 o updates for OBCs and NH
 o dramatically reduced memory usage
 o added "JAM" routines for use on Artic network
 o parameterization of convection by implicit vertical diffusion
 o added a diagnostic of convective index
 o moved call to calc_divg_hat() from dynamics() to solve_for_pressure()
   (this is was partly for OBCs and NH but also in anticipation of
    an explicit free-surface option)
 o initial state input files for U and V

checkpoint24
 o Removed some spurious "REAL"s
 o Updated KPP to latest version from JPL
 o Added a COS(latitude) in horizontal viscosity

checkpoint23
 o Added del^4 diffusion for salt and temperature
 o Multiple minor fixes (implicit none's, arguments to global_sum, etc.)

checkpoint22
 o Made many small changes: implicit none, format(i5), etc...
 o Introduced KPP mixing scheme (compiles and runs but *not* tested)

checkpoint21
 o Introduced new I/O package that supports direct-access records (mdsio.F)
 o Split-up mid-level I/O routines
 o Updated input data for experiments 0,1,2,4 and 5
 o Finally removed the genmake.* scripts (everyone seems happy with genmake)

checkpoint20
 o Tidied up open-boundaries some more
 o Added non-hydrostatic code
 o Fixed some input data
 o Modified MPI start-up to work in "coupled" context.

checkpoint19
 o Tidied up directory structure for verification experiments.
 o Added new code for open boundaries.
 o Corrected advective terms near boundaries.
 o Added CPP flag for "old UV" geometry and corrected spherical geometry.
 o Implemented free-slip/no-slip BCs and del^4 dissipation.
 o Split default parameters out of ini_parms.F into set_defaults.F.

checkpoint18
 o Further changes for optional code generation with 
   CPP - ugh!

checkpoint17
 o Beginning to incorporating modularity
   for supporting atmos. and ocean configs.
 o Small changes for TAMC complinace
 o New ultra simple test case. Barotropic box
   configuration "exp0".

checkpoint16
 o Minor changes to exchange routines to support 
   accumulation in reverse mode. Adjoint of an
   assignment is an addition.
 o Changes to support compilation by TAMC (LR(1) 
   syntax) and by g77 under Linux ( 72 character
   limit ).

checkpoint15
 Rewrote exchange routines to allow
 o General tile <-> tile connectivity.
 o TAMC reverse mode flag ( is this really needed? )
 o Variable width overlap and exchange region widths.
 o Hooks for sharing data via DMA, Arctic, Memory Channel, 
   shmput/shmget, VIA, SYSV shmem and every other cool 
   communication method.

checkpoint14
 Consistent isomorphism chages made. These allow dynamical core
 to support both pressure and meters as a vertical coordinate.

checkpoint13
 Release which corrects global_max problem and a couple
 of KGM time-averaging diagnostic errors. Also contains
 a double-gyre experiment setup as well as the baseline
 4 degree global template. The double gyre template is
 organised to allow it to be applied automatically to
 the baseline configuration.

branch-point-rdot
 A few tidy-ups have been made bt the real point of this
 check-point (excuse the pun) is to allow a branch to be
 made for the purposes of adding the rDot alterations.
 I don't want to commit the rDot to the main-trunk until
 we've actually tested it...

checkpoint12
 Tidy up and added generic genmake script (formerly
 configure script). 
 Released to testers.

checkpoint11
 Re-arranged initialise() and introduced ini_vertical_grid()
 and ini_masks_etc().

checkpoint10
 Introduced the configure script.
 Separated out the diags package.
 Added template for writing time-averages of tile/intermediate quantities.
 Updated SIZE.h in exp2 and made the data big-endian.

checkpoint9
 MPI fix. Filename changes (meta/data). salbin*y stuff.
 General tidy-up.
 SST.bin SSS.bin added to verification/exp2

checkpoint8
 Inludes time-dependant forcing and time-averaging.
 Works at 4x4 and 2.8125x2.8125 global

checkpoint7-4degree-ref
 Branch from checkpoint7. Released for application to
 global modeling and general modeling - process studies, regional
 model etc.. 
 Configured for verification/exp2 - 4 degree global, two process.

checkpoint7
 Created by cnh
 Simple 4 degree global simulation 
 configuration.
 Includes climatological wind, 
 hydrography, bathymetry etc
 Does not include Heat Flux and E-P

checkpoint6
 Created by cnh
 merged checkpoint5 with CD and 
 spherical polar code. 
 Still some problems with GM Redi
 abd full topography.

checkpoint5
 Created by AJA
 contains updates to GM Redi
 and reordered timestepping loop
 for Implicit Diffusion.

checkpoint4
 Created by cnh
 Contains memory saving macros ( _rdxc etc..) for when
 grid variations are limited.
 Contains polynomial coeffs for EOS and knudsen program
 for generation.

checkpoint3
 Created by cnh
 Added extra flags for runtime options
 Added this file
 Added implicit free-surface
 Added pre-conditioner
 Put compare01 into repository ( compare01/... )
 Put data and eedata into repository ( verification/exp1 )

checkpoint2
 Created by AJA
 Added GM/Redi

checkpoint1
 Created by AJA
 Restructured kloop in dynamics.F
 Added non-linear EOS

baseline
 Original checked in code

