--- MITgcm/doc/tag-index 2008/01/23 16:41:21 1.943 +++ MITgcm/doc/tag-index 2009/02/12 07:53:34 1.1064 @@ -1,14 +1,413 @@ -$Header: /home/ubuntu/mnt/e9_copy/MITgcm/doc/tag-index,v 1.943 2008/01/23 16:41:21 mlosch Exp $ +$Header: /home/ubuntu/mnt/e9_copy/MITgcm/doc/tag-index,v 1.1064 2009/02/12 07:53:34 mlosch Exp $ $Name: $ Notes on tags used in MITgcmUV ============================== +o model/src/ini_curvilinear_grid.F: check in hack for SX8 compiler + to make sure that recip_dxV and recip_dyU are never zero, until we + have a proper exchange for them. Most compilers do not seem + to mind divisions by zero in the overlaps, as long as the results are + not used anywhere, but sxf90 does. +o pkg/shelfice: fix bug with SHELFICEconserve flag, prepare for + real fresh water flux (not yet) +o pkg/mdsio & rw: + - add argument & option to S/R MDS_WRITEVEC_LOC (avoid Open/Close & write-meta) + - add simple interface S/R to MDS_WRITEVEC_LOC in pkg/rw: WRITE_GLVEC_RX. +o pkg/flt: + - replace FLT_INIT by 3-steps standard initialization S/R: readparms, + init_fixed & ini_varia. + - clean-up & simplify linear interpolation S/R: + move flt_bilinear.F -> flt_interp_linear.F ; add arg. myThid. + - fix some indices (mainly vertical index) ; add IMPLICIT NONE. + - more efficient I/O, using new options of MDS_WRITEVEC_LOC S/R. + - add vert. coordinate & horiz. indices to output files. + - change vertical position in initial condition, from index to depth [m]. + - store horizontal (decimal) indices i,j in common block (instead of coord. x,y) + (easier to get to a curvilinear grid) ; delX,delY no longer used. +o pkg/ggl90: a few modifications: + - fix bottom boundary condition, and interpolation of KappaE + near top and bottom + - use same set of viscosity/diffusivity for TKE/momnetum/tracer + - add smoothing option as in Blanke and Delecluse (1993) (--> ALLOW_GGL90_SMOOTH) + - add a few options for mixing-length upper limit (--> mxlMaxFlag) +o rename thetaMin,phiMin -> xgOrigin,ygOrigin + (maintain temporary backward compatibility, until next checkpoint) + +checkpoint61h +o pkg/diagnostics with "periodic averaging diagnostics": + fix S/R DIAGNOSTICS_COUNT ; hack diagnostics_out.F to get NetCDF output. +o pkg/my82: add missing "_d 0" ; update output of exp. vermix.my82 +o pkg/obcs: fix loop ranges for balancing code +o pkg/flt: + - improve criteria for finding which tile owns a float. + - fix FLT_EXCH for case without MPI ; apply cyclic BC + fix also the MPI case. +o Add well-mixed CO2 box in aim_v23 (which includes changes in pkg + aim_compon_interf, ocn_compon_interf, gchem, and dic to get coupling + with ocean biogeo) +o pkg/flt: + - do some cleaning and fix the restart ; + - add output.txt in flt_example/results to get this pkg tested. +o genmake2: add an EXTENDED_SRC option and flag. + for now, cannot be turned on on command line (only through genmake_local) +o pkg/mdsio: read/write vector: + - singleCpuIO: fix RL/RS in MDSWRITEVECTOR by calling new S/R MDS_BUFFERtoRL/RS + - singleCpuIO=F: fix arrType & filePrec & _BYTESWAPIO in both MDSREADVECTOR + & MDSWRITEVECTOR by calling new S/R MDS_RD/WR_VEC_RL/RS. + - affects gradient of test-exp "bottom_ctrl_5x5" (not due to _BYTESWAPIO) + (drop to 4 digits matching for grad). But this test does not look very + reliable (was already failling on eddy, fc5, at 6.digits). Update output. + +checkpoint61g +o pkg/flt: + - move FLT_CPPOPTIONS.h to FLT_OPTIONS.h (standard name) + + make OPTIONS file more standard. + - rename S/R MDSREADVECTOR_FLT to FLT_MDSREADVECTOR (to mach src file name) + - fix _BYTESWAPIO CPP-Flag + - standard reading of file-parameter "data.flt" + - fix argument list of S/R FLT_RESTART + still need to fix _BYTESWAPIO in pkg/mdsio/mdsio_writevector.F +o pkg/obcs: fix a CPP-flag, bug reported by Jeff Blundell +o gather_2d.F/scatter_2d.F: suppress vectorisation on NEC SX in respond to + a still unfixed compiler/optimization bug + +checkpoint61f +o pkg/seaice, LSR solver: fix bug in GLOBAL_MAX calls ; + update results of global_ocean.cs32x15.icedyn test. +o move getcon.F from model/src to pkg/fizhi. +o pkg/exf: add parameter for extrapolation of temp up to the surface + and option to prevent negative evap (in bulk_largeyeager04 only). +o Prather Advection scheme: fix tracer conservation for divergent flow + (e.g., when using NonLin Free-Surface). +o kpp: retire KPPmld diagnostics --> use MXLDEPTH instead +o gmredi (Visbeck-variable-K): + - add more parameters to Visbeck-variable-K. + - use a 5 points average for dSigmaR in Visbeck-K calculation + (more "homogenous": same stencil and same weights as in dSigmaH) + - update output of ideal_2D_oce experiment. +o fix CPP-flag REAL4_IS_SLOW, when _RS expands into real*4 + (#undef REAL4_IS_SLOW) + - pkg/mnc/mnc_cw_cvars.F: write _RS-grid variable as netcdf-real*4 + coordinate variable + - pkg/monitor/monitor.F: call mon_printstats_rs for _RS variables + (surface forcing fields), removes some of the functionality + - model/src/write_grid.F: write _RS variables as RS-netcdf variables + - model/src/diags_oceanic_surf_flux.F: fix a few diagnostics, but + probably not all: copy _RS surface flux fields to RL field before + calling DIAGNOSTICS_FILL + - model/inc/CPP_EEMACROS.h: make the _EXCH_*_RS macros expand into + real*4 (CALL EXCH_*_RS) versions. + - tested in 2 experiments: inverted_barometer & solid-body.cs-32x32x1 + (generate new output). + +checkpoint61e +o gmredi (Visbeck-variable-K): + - fix the "OLD_VISBECK_CALC" option + move the #undef to GMREDI_OPTIONS.h + - change computation of Visbeck-K where Slope > Smax : + now: N*min(Slope,Smax) (similar to OLD_VISBECK_CALC with gkw91 taperFct) + previously was: M*sqrt(min(Slope,Smax)) ; update ideal_2D_oce output. +o bottom-drag in P-coord.: change units of bottomDragLinear & bottomDragQuadratic + to be the same as with Z-coord. (i.e., m/s & no-units respectively). +o calc_viscosity: fix index range (was wrong for CD-Scheme & explicit Visc) +o pkg gmredi, linear & fm07 tapering: put an upper limit on Slope^2 so that Kwz + does not become too large (to avoid precision problems in implicit-diffusion + solver); update ideal_2D_oce output. +o pkg ggl90: + - in ggl90_cal.F: compute only one set of visc/diff, used to + step forward TKE/T/S/momentum + - default value of GGL90viscMax/GGL90diffMax larger and equal (to + have Prandlt =1) +o gmredi (fm07): + - add lower limit on Transition layer thickness + lower limit on 1/lambda + - allow to set few more params from data.gmredi +o pkg ggl90: + - add missing sqrt(2) factor in computation of mixing length + scale in ggl90_calc.F + (see Eq. (2.35) in Blanke and Delecluse, JPO, 1993) + +checkpoint61d +o adjoint modifs + - adapt to new field rhoInSitu + - allow to revert from StoreDynVars2D, StoreDynVars3D + to individual fields + (switches AUTODIFF_USE_OLDSTORE_2D, AUTODIFF_USE_OLDSTORE_3D) +o store 3-D (in-situ) density in commom block (DYNVARS.h) + - save 1 rho computation. + - no longer modify T & S inland when using down_slope pkg. +o gad_som : allow to switch to SOM advection for T & S without corresponding + pickup files (using new S/R: MDS_CHECK4FILE). +o keep removing _BEGIN/_END_MASTER between MDSIO S/R call + (for useSingleCpuIO to work in multi-threaded) +o pkg/shelfice: + - disentangle parameters: retire shelfIceFile in data/PARM05 and substitute + with SHELFICEtopoFile in data.shelfice + - move code for reading ice shelf topography and modifying hFacC into separate + subroutines of the shelfice package + - separate initialisation of "fixed" and "variable" variables + - kTopC is not (yet) replaced by kSurfC, although this is possible +o fix broken diagnostic SIatmFW and changed the units from m/s to kg/m^2/s +o add initialisation of deepFac if using Pcoords (new S/R set_grid_factors) + and rename: + ini_phiref.F --> set_ref_state.F (+ set anelastic factors) + ini_reference_state.F --> load_ref_files.F (- set anelastic factors) +o change FIND_RHO_SCALAR : return rho (instead of rho - rhoConst) + +checkpoint61c +o add option ALLOW_ADDFLUID and run-time selector "selectAddFluid" + to add mass source/sink of fluid in the interior (3-D generalisation + of oceanic real-fresh water flux). +o pkg/monitor: fix recip_dr argument in mon_advcflw2 call (-> advcfl_W_hf_max) +o vermix test experiment: switch from LINEAR EOS to MDJWF (not tested before) +o new pkg: down_slope + density-driven downsloping flow parameterisation (Tellus, 1999, 412-430). + - presently, modify T & S inland (dwnslp_calc_rho.F). + can be avoided if rho was stored in common bloc and used in calc_phi_hyd. + - implementation for ocean in P-coords not tested. + - add secondary test to global_ocean.90x40x15 (input.dwnslp) to check this pkg. +o move kSurfC,kSurfW & kSurfS from SURFACE.h to GRID.h (next to kLowC) + (to facilitate conversion of oceanic pkg to p-coordinate). +o change FIND_RHO to FIND_RHO_2D : + pass arguments tFld & sFld as local (tile) 2D-arrays ; +fix EOS_CHECK. +o new pkg: cheapaml + +checkpoint61b +o exch2: + change index bounds in rx2_cube exchanges (new S/R: EXCH2_GET_UV_BOUNDS) + - no longer depend on the order sequence (N,S,E,W). + - 3rd exchange no longer needed (tested with 24 tiles). + - same modif to hand-written adjoint S/R (global_ocean.cs32x15: zero diff) + - exch_UV_A-grid readily available (but not yet tested). + comment out 3rd exch call and remove copy of V to U at SE & NE face-corners + (both are no longer needed) in exch_uv: no effect in forward run; but + get truncation error differences with adjoint exch. +o exch2: + - change index-bounds storage (moved from target to local tile, + more intuitive this way) ; rename/remove some variables. + - change utils/exch2/matlab-topology-generator & code_mods accordingly. + +checkpoint61a +o exch2/matlab-topology-generator: + fix bug in index bounds for N-S internal exchange (hard to tell if this + had any effect on the solution). +o pkg/mnc: small fix in mnc_handle_err: make sure that length of msgbuf + is exceeded +o testreport: modify syntax of awk, so that it works also with + awk, and not only with nawk and gawk + +checkpoint61 +o autodiff + Change default for TAF usage by removing argument '-nonew_arg' + This changes TAF subroutine argument list (ordering of active var.) + Omission of this flag leads to incompatibility w.r.t. TAMC + To restore TAMC-compatibility, need following modifs: + * use adoptfile tools/adjoint_options/adjoint_tamc_compatibility + * use CPP option #define AUTODIFF_TAMC_COMPATIBILITY + Tested TAF version is 1.9.22 + N.B.: exch2 hand-written adjoint code currently not TAMC compatible + +checkpoint60 +--->>> This is the last checkpoint for which generating the adjoint +--->>> is done via the TAMC-compatibility TAF-flag "-nonewarg" +--->>> by default. +--->>> Future checkpoints will ommit this flag by default. +o pkg/generic_advdiff, os7mp: simplify and avoid division by zero. +o pkg/grdchk: Add gradient check to etan0 perturbations. +o pkg/exf: read ice area from file (#ifdef ALLOW_ICE_AREAMASK). +o pkg/autodiff: more flexibility in zeroadj. + model/src: modifying do_oceanic_phys.F accordingly. +o pkg/ctrl: Bounds for (kapgm,kapredi,eddypsi) parameter estimation. +o model/src and pkg/gmredi: GMREDI_WITH_STABLE_ADJOINT CPP option + special setup of gmredi for which the adjoint is stable + enough for parameter optimization. +o bridging the gap between eddy stress and GM. + -> eddyTau is replaced with eddyPsi (eddyTau = f x rho0 x eddyPsi) + along with a change in CPP option (now ALLOW_EDDYPSI). + -> when using GM w/ GM_AdvForm: + The total eddy streamfunction (Psi = eddyPsi + K x Slope) + is applied either in the tracer Eq. or in momentum Eq. + depending on data.gmredi (intro. GM_InMomAsStress). + -> ALLOW_EDDYPSI_CONTROL for estimation purpose. + The key modifications are in model/src/taueddy_external_forcing.F + pkg/gmredi/gmredi_calc_*F pkg/gmredi/gmredi_*transport.F + +checkpoint59r +o new S/R (pkg/mdsio/mdsio_facef_read.F) reading of sNx+1 x sNy+1 array + from per-face file (take S/R READSYMTILE_RS out of ini_curvilinear_grid.F); + fix option to read coriolis(@ cell-corner) from files with CS-grid. +o pkg/mnc: add some attributes to standard 1D-coordinate variables +o pkg/diagnostics: enforce missing_value attribute for scalar variables at + mass points, when using mnc for output + - add runtime parameter (missing_value, missing_value_int) to override + default (which is the value of getcon('UNDEF')) +o pkg/mnc: prepare mnc for the actual use of missing values with the + diagnostics package: small fix in mnc_cw_readwrite.template and more + initialisation of never used fields + - replace mnc_common.h and mnc_id_header.h with corresponding upper case + versions +o pkg/thsice/thsice_ini_vars.F added default initial values so that + thermodynamics sea ice solver does not blow up when some initial fields + are missing. +o move from external_forcing_surf.F to ini_forcing.F + the p-coord. hack consisting in using pLoad to set phi0surf ; + update output of tutorial_global_oce_in_p (affected @ truncation level). +o Freshen up a bit hs94.1x64x5, notably: + remove rotationPeriod and tRef=5*0. (adjoint only), and add + exactConserv=.TRUE. +o pkg/generic_advdiff: + change option GAD_ALLOW_SOM_ADVECT to GAD_ALLOW_TS_SOM_ADV which only + applies to files where Temperature & Salinity 2nd Order moments are used. +o pkg/ptracers: add second-order moment advection schemes (80 and 81); + this uses a dynamically allocated internal state data structure + (#define PTRACERS_ALLOW_DYN_STATE in PTRACERS_OPTIONS.h) + and requires a fortran 90 compiler + +checkpoint59q +o pkg/mom_vecinv: Add energy & enstrophy conserving scheme (selectVortScheme=3) + (from Sadourny, described by Burridge & Haseler, ECMWF Rep.4, 1977) +o Refresh tutorial_global_oce_biogeo, notably: + - change bathymetry (put back seamounts in ACC, use hFacs) + - change EOS (POLY3 --> JMD95Z) + - use Bryan-Lewis vertical diffusivity + - use multidimensional advection + - remove old virtual virtual in dic pkg, now done through ptracer pkg + - change a couple of parameters in dic pkg +o pkg/ctrl: change formula in adctrl_bound.F and add a parameter to ctrl_map_ini_gen.F +o pkg/obcs: change default to OBCSfixTopo = .true., + - set OBCSfixTopo=.false. in exp4/input/data.obcs to reproduce old result + - replace "debugMode" with "debugLevel .GE. debLevB" +o implementation of TAF directives for gchem,cfc,dic +o remove "exp5" (replaced by tutorial_deep_convection). +o pkg/obcs: add code to fix topography gradients normal to open boundaries; + this requires computing the index fields OB_Jn/Js/Ie/Iw in obcs_readparms; + the code can be turned on by setting OBCSfixTopo = .true. in data.obcs + --> changes results in exp4, seaice_obcs +o tutorial_deep_convection : + update the set-up and increase resolution and domain size ; start + from pseudo initial conditions = output at t=120mn in order to see + something happening when running testreport. +o pkg/seaice: add os7mp as an advection scheme + add check for advection schemes + add a flag for restoring T and S underneath sea ice +o pkg/my82: add netcdf-support and diagnostics +o thsice pkg: + - Now hsMax limits snow height by turning it into ice following + flooding scheme (and now conserving energy) + - Slight rewriting of the formula in thsice_calc_thick.F + - Parameter rhowi eliminated to be replaced by floodFac = (rhosw-rhoi)/rhos + --> changes results of global_ocean.cs32x15.icedyn and global_ocean.cs32x15.thsice + +checkpoint59p +o gchem / dic / cfc : + - add useDIC, useCFC , read from "data.gchem" (& hold in GCHEM.h); + - add new parameter files: "data.dic" & "data.cfc" ; + - various re-arrangement in initialisation & header file ; + - fix tutorial_global_oce_biogeo for multi-threaded test. +o pkg/dic: test for "pickup_dic" file when restarting ; + if no pickup-file, can restart with a re-initialised pH (same as it did + before) providing pickupStrictlyMatch is set to False. +o change argument list of S/R PTRACERS_WRITE_PICKUP & MYPACKAGE_WRITE_PICKUP + + fix call to S/R GGL90_WRITE_PICKUP & DIC_WRITE_PICKUP +o add a "warning" (to Error msg file) when an Active Tracer is not using AB-2 + and staggerTimeStep is off (needed for stability of Internal-wave dynamics). +o move out of PARAMS.h & data the last pieces of old-ptracer code: tauTr1ClimRelax, + & lambdaTr1ClimRelax ; put those 2 params in PTRACERS_PARAMS.h & data.ptracers + (note: not clear to me what lambdaTr1ClimRelax is still used for ...) +o pkg/mom_vecinv: - new parameter "selectVortScheme" to select which + scheme to use for vorticty-term ; + - compute upwindVorticity=T case within mom_vi_u/v_coriolis_c4.F + (with default selectVortScheme, return to original discretisation) + - remove weird combination (e.g.: upwindVorticity & highOrderVorticity) +o pkg/seaice: add a line to the summary to indicate grid type (B/C) +o in mom_calc_visc, fix average value of viscAh_W & viscA4_W next to the + bottom ; only used with variable horizontal viscosity and non-hydrostatic. + also fix diagnostics VISCAHW & VISCA4W. + +checkpoint59o +o dome/code/obcs_calc.F: avoid division by zero (detected using gfortran). +o change the loop ordering in most gad_*_adv_x.F to improve vectorization: + move a few statemens out the main loop into separate loops +o pkg/shelfice: + - sort out freshwater flux; convert freshwater fluxes to mass fluxes + (kg/m^2/s), does not break tests, because in verification/isomip, + rhoConstFresh=rhoConst (by accident) + - rearrange computation of tLoc, sLoc, pLoc to make code more efficient + - move S/R find_rho_scalar, pkg/ecco/sw_ptmp.F, pkg/ecco/sw_adtg.F into + new file model/src/seawater.F, so that they are available for all pkgs. + - convert potential temperature into in-situ temperature. This changes the + isomip tests => update tests +o add a flag writePickupAtEnd (default=true) to be able to suppress + writing a pickup at the last timestep +o tools/mpack-1.6 : + - disable automake (not working) and autoconf (not needed). + - update to version 1.6.4 which fix MD5 code on some 64 bits platforms + also cleaner with much less compilation warnings. +o pkg/profiles: + rename profiles_interp_mean_genericgrid as profiles_interp_mean_gg + (for "less than 32 characters name" compiler requirement) +o pkg/obcs and pkg/exf: added capability to specify seaice open boundary + conditions that have a different sampling frequency than S/T/U/V obcs +o pkg/diagnostics (stats-diags): + - fix global Min/Max in case 1 processor get only empty tiles +o genmake2: replace (4 times) + make genmake_tc_1.o >> genmake_warnings 2>&1 + with + COMM="$CC $CFLAGS -c genmake_tc_1.c" + echo $COMM >> genmake_warnings + $COMM >> genmake_warnings 2>&1 + to make genmake2 always see the value of CC as specified in the optfile. +o generic_advdiff: - prather advection scheme (SOM) coded for CS-grid. + - add diagnostics for 1srt & 2nd Order moments and sub-grid variance. + - modify verification advect_cs test to test SOM-advection on CS-grid. +o pkg/ctrl: + - Rewrite of ctrl_map_ini_ecco.F, + introducing a generic routine (ctrl_map_ini_gen.F). + - Modification of ctrl_bound/adctrl_bound handling control vector bounds. + +checkpoint59n +o pkg/diagnostics: for large number of diagnostics, store diagnostic mate + number in dedicate array "hdiag": + - new version of S/R DIAGNOSTICS_ADD2LIST : DIAGNOSTICS_ADDTOLIST + with 1 more argument (mate number); modify old version DIAGNOSTICS_ADD2LIST. + - many small changes (integer format) for large number of diagnostics + - start to use DIAGNOSTICS_ADDTOLIST (necessary for diagnostics with + a counter mate) in pkg diagnostics, ptracers, thsice & aim_v23. +o add parameter rotateGrid and Euler angles EulerPhi/Theta/Psi. For + usingSphericalGrid, this allows to define the rotated grid coordinates + via phiMin/thetaMin/dxSpacing/dySpacing, etc., but then re-compute the + geographical coordinates according to the inverse of the rotation defined + by the Euler angles, so that Coriolis parameter and online-interpolation by + exf works with the geographical coordinates on XC/YC/XG/YG. + Naturally, this feature does not work with all packages, so some + combinations are prohibited in config_summary (flt, flt_zonal, ecco, + profiles), because there the coordinates are assumed to be regular + spherical grid coordinates. +o pkg/gmredi,ctrl,ecco,autodiff,grdchk and model/src,inc: + - introduce isopycnal diffusion coefficient control. +o tools/adjoint_options: + - additional control vector components. +o pkg/mnc: have mnc create marginally meaning full coordinate variables + (that is the grid indices) if usingCurvilinearGrid and NOT EXCH2 +o pkg/mypackage: + - add example of read/write pickup for state-var ; + - add entry points to the main code for state-vars diags & write-pickup. +o pkg/exf: rewrite of exf_getffieldrec.F to properly deal with year + transitions for useExfYearlyFields + - add new subroutine that determines the file to read from for + use*YearlyFields = .TRUE. and .FALSE. + - add a verification experiment to global_with_exf that tests + useExfYearlyFields with USE_EXF_INTERPOLATION defined +o pkg/obcs/exf: add useOBCSYearlyFields (=.FALSE.) to obcs with exf in + analogy to useExfYearlyFields; rearrange obcs_prescribe_read: two new + subroutines (which could be generated from a template, because they are + almost identical), for now they are included in obcs_prescribe_read.F for + simplicity o pkg/exf: - add a little more diagnostic to exf_interp_read (in analogy to mds_read_field, can be turned off with debugLevel < debugLevA=1) - improve vectorizability of exf_interp for TARGET_NEC_SX, makes code - ugly but fast (vectorization is not yet complete) + ugly but fast by unrolling short inner loops, inserting a unroll=8 + directive in routine lagran, and splitting a loop and making do while the + outermost loop (the latter requires the intoduction of index arrays) o pkg/obcs: replace obcs_apply_area/heff/hsalt/hsnow with obcs_apply_seaice o pkg/seaice: moved DIFFERENT_MULTIPLE from seaice_model to seaice_dynsolver http://forge.csail.mit.edu/pipermail/mitgcm-devel/2008-January/003173.html