--- MITgcm/doc/tag-index 2009/12/28 02:46:20 1.1211 +++ MITgcm/doc/tag-index 2010/05/19 02:12:10 1.1274 @@ -1,9 +1,269 @@ -$Header: /home/ubuntu/mnt/e9_copy/MITgcm/doc/tag-index,v 1.1211 2009/12/28 02:46:20 jmc Exp $ +$Header: /home/ubuntu/mnt/e9_copy/MITgcm/doc/tag-index,v 1.1274 2010/05/19 02:12:10 jmc Exp $ $Name: $ Notes on tags used in MITgcmUV ============================== +o eesupp/src (exch-1): + - split exch_rx.F into Forward S/R (exch1_rx.F) and Adjoint S/R (exch1_rx_ad.F) + and remove argument "simulationMode"; same thing for all exch_*rx_cube.F + (renamed to exch1_*rx_cube.F). + - change accordingly exch_*_rx.template and AD version in pkg/autodiff + to call new exch1 S/R ; update Makefile and .cvsignore. + - replace call to exch2_xy_rx S/R with exch2_*3d_rx(myNz=1) (will remove + exch2_xy_rx later) + Note: after updating your code, need to run "make clean" in eesupp/src +o test experiment bottom_ctrl_5x5: + new output_adm.txt with fewer grdchk & less monitor output. +o model/src: + remove the call to ini_cori in initialise_varia.F (just keep the usual one + in initialise_fixed.F). More consistent with coriolis & horizontal grid + beeing treated in the same way (ini_grid is not called a 2nd time). +o pkg/exf: + - rewrite exf_bulk_largeyeager04.F for better vectorization, changes + global_ocean.cs32x15/input.icedyn (11 digits of agreement), updated + - fix adjoint (used worked for ALLOW_ATM_WIND defined, works for this now) + - cosmetic changes to exf_bulkformulae.F to make it look more like + exf_bulk_largeyeager04.F +o eesupp/src (exch-1): + - Fix AD EXCH code for 2-D domain special cases (Nx=1 or Ny=1). + - Separate buffer filling and MPI sending: allow EXCH-1 to work for local + array (non-shared) when using MPI+MTH. Also reduces number of BARRIER + (even without using MPI). + - Message mode: move RecvAck setting (indicator of buffer being ready) + from send_put to recv_get S/R (was useless before, but not sure if + it's much more useful now); + - Switch the order of sync: MPI-proc 1rst and then threads; + - take out spin-waiting code (#undef EXCH_USE_SPINNING), use BARRIER instead. + - fix AD code for communication mode ='get' (but not used). +o model/src: + initialise dPhiHydX,dPhiHydY inside calc_grad_phi_hyd.F (so that TAF does + not drop it in S/R mddynamics, producing NaN in hs94.1x64x5 AD-test exp). +o utils/matlab/rdmnc.m: adapt to be able to use the generic matlab netcdf API +o pkg/ctrl: require a specific set of control variables and exf-flags for + adjoint of seaice (stop in ctrl_check.F if conditions are not satisfied) +o model/src: + a) 1rst version of a new driver S/R to turn-off output freq and flags after the + 1rst forward sweep, to avoid over-writing output files during recomputations + recomputations (& grdchk); called from cost_final.F (& ctrl_init_ctrlvar.F ?) + b) 2nd version: + - add specific pkg S/R for seaice & ptracers (called from S/R TURNOFF_MODEL_IO); + - switch-off more output flags (exf_monFreq, chkPtFreq, dumpInitAndLast, + writePickupAtEnd) + seaice & ptracers output; + - do not switch off MNC flags (otherwise, won't get admonitor netcdf file) +o model/src: + - new S/R rotate_uv2en_rl (..._rs) that rotates vector fields. +o pkg/exch2: + - remove "simulationMode" from arg. list of S/R EXCH2_RX1,2_CUBE ; + - add argument "signOption" to EXCH2_RX1_CUBE (will be needed for SM exch). +o pkg/autodiff & exch2: + process exch_uv_agrid_3d_rx.f & exch2_uv_agrid_3d_rx.f through TAF + (for now, only if ALLOW_EXCH2 is defined). +o pkg/autodiff: + - include PACKAGES_CONFIG.h in exch*ad.flow & exch*ad.F + (not supposed to be in CPP_OPTIONS.h) to get ALLOW_EXCH2 defined correctly. + + clean-up comments (_RS is not always real*4) + - fix bug in ADEXCH_UV_3D_RX (without EXCH2, was calling the forward exch S/R) + - add a stop in ADEXCH_UV_AGRID_3D_RX if trying to use it with EXCH2: + was calling a forward exch2, which is wrong ; used in SEAICE & EXF pkgs. +o testreport (AD-tests): + no longer link files from dir "../input" (1rst link files from + "../input_ad.[xx]" if secondary test "xx" and then from "../input_ad") + +checkpoint62f (2010/04/29) +o model/src/the_main_loop.F: + adjust store directives for seaice evp and multicategory according to + pkg/ecco/the_main_loop.F +o adjoint: + global_sum_ad was incomplete (noted many times by many people ;) + nice description by Jean U. as follows: + * allreduce(var) in global_sum.F can be interpreted as + reduce(sum) followed by broadcast of sum. + * The adjoint of that is + sum(adjoint) followed by broadcast(summed adjoint value) + or in other words, allreduce(sum, adjoint vars) + We were missing the sum(adjoint)! + Benign, except(!) for "global" scalars appearing in tile loops (bi,bj) + (noted by J.M. Campin, e.g., in cost_ssh_mean, variable offset). + The fix should produce 16-digit accuracy between + single-CPU multi-tile (e.g. nSx=2, nPx=1) and + multi-CPU single-tile (e.g. nSx=1, nPx-2) + We'll probably change this yet again shortly +o eesupp/src: + - fix global_sum_r4 (wrong from previous modif in Jun 2009; ever used ?) +o pkg/icefront + - ALLOW_SUBGLACIAL_RUNOFF option adds capability for time-evolving + specification of addmass array based on a 2D field, which is added + at bottommost wet level at each horizontal location. +o model/src: + horizontal grid initialisation (other than curvilinear): add code for Exch2 IO + layout; (not always compatible with delX,delY setting; commented out for now). +o pkg/exch2: + change tile to processor setting (case nSy*nPy > 1): allows default model mapping + (myX and myYGlobalLow) to be used for simple (1 facet, no blank tile) config. + +checkpoint62e (2010/04/15) +o pkg/obcs: + - fix wrong index in OBCS_SPONGE_V for Eastern-OB (reported by David Hebert). +o pkg/dic: + -fix bug in fe_chem.F for multi-tile (nSx*nSy > 1) set-up; + (note: not presently tested in any forward verification exp.) + update tutorial_global_oce_biogeo AD output file. +o pkg/exf: + - account for the variation of albedo as a function of zenith angle + by defining ALLOW_ZENITHANGLE in EXF_OPTIONS.h +o build_options: + - rename "linux_ia64_ifort+mpi_ice_nas" to "linux_amd64_ifort+mpi_ice_nas" +o pkg/dic: + change DIC atmos-CO2 box (method 3, dic_int1=3) initialisation & restart: + - use binary pickup file for restart; + - initialise atmos-CO2 box from dic_pCO2 parameter; + - fix multi-threaded. +o pkg/rbcs: + - clean-up RBCS code: add RBCS_OPTIONS.h file ; fix multi-threaded ; + change (+ fix IO calls) type of array RBC_mask from _RL to _RS. + - add RBCS to exp4 passive tracer 01 (rbcs was previously untested) + and update output.txt +o pkg/kpp: + - add diagnostics for KPP non-local flux of Temp, Salinity and pTracers; + - change diagnostic of KPP non-local term: output average of KPPghat*KPPdiffKzS + (= ratio of KPP non-local (salt) flux relative to surface-flux) when + using pkg/timeave & pkg/diagnostics (diag 'KPPghatK' replaces 'KPPghat '); + - change pkg/offline to read-in average KPPghat*KPPdiffKzS from file + KPP_ghatKFile (instead of the average of KPPghat from file KPP_ghatFile). +o pkg/offline: + fix bug in S/R OFFLINE_FIELDS_LOAD regarding surfaceForcing conversion factor + (bug was added in version 1.10 on 2007-08-23). +o pkg/offline: + - no need to specify periodicExternalForcing, etc ... to use offline pack + - offline input files no longer just single prec --> parameter offlineLoadPrec +o verification/lab_sea: + change AD test to multi-tile setup and update all 4 AD output. + NOTE: while cost function values remain very similar, + gradients are very different, although gradient checks are self-consistent + Should try to get to the bottom of this (cost function summation order?) +o pkg/dic: + in carbon_chem.F, replace log10 (AUTODIFF) with explicit form to avoid + a weakness of TAF that drops part of double precision in log10 derivative. + <= changes removed since problem has been fixed in current TAF version 1.9.71 + update AD output of exp. tutorial_dic_adjoffline & tutorial_global_oce_biogeo. +o pkg/ecco: + add missing "_d 0" in cost_readers.F, cost_readtopex.F & cost_readtopexmean.F + update all 4 lab_sea AD output. + +checkpoint62d (2010/03/22) +o build_options: + remove '-r8' (and '-i4') from linux_*pgf and linux_*ifort optfiles. +o remove unbalanced quote (single or double) in commented line of source code + (may cause some warning with some preprocessor/makedepend versions). +o pkg/seaice: + fix seaice_model.F for adjoint (gael) and update AD results of experiments + lab_sea (std + evp + noseaicedyn) and offline_exf_seaice. +o testreport: + add option '-runonly' (short: '-ro') to just do the run part (without make). +o eesupp: remove JAM communication code (obsolete). +o add option to genmake2 & testreport to switch "_RS" type to "real*4" + (if allowed in CPP_EEOPTIONS.h); update default CPP_EEOPTIONS.h and return + to default CPP_EEOPTIONS.h for exp. inverted_barometer & solid-body.cs-32x32x1 + (update also the output). + +checkpoint62c (2010/03/02) +o tools/build_options : + move (some) old optfiles from build_options/ to build_options/unsupported/ +o model/src and pkg/exf + surface relaxation -- separating data and data.exf options + The point is to ensure that we specify the surface relaxation + either in data or in data.exf (but not half and half) and to + avoid an accidental relaxation to 0 (which happened if a time + scale was specified but the file name was left empty) +o model/src model/inc and pkg/mom_common + ALLOW_3D_VISCAH/ALLOW_3D_VISCA4 => 3D specification of Viscosity + => addition to the viscosity field as computed by others schemes +o tools/build_options: + - rename "_generic_mpi" -> "+mpi_generic" (like other "+mpi" optfile) + but keep the former optfile for few weeks for smooth transition +o pkg/ecco + - allow user defined cost function contributions + CPP: ALLOW_USERCOST_CONTRIBUTION + USAGE: compute contributions in cost_usercost_all.F + - note: this is identical to what ALLOW_GENCOST_CONTRIBUTION once was. + the two options are complementary. +o pkg/smooth + - migration from contrib to the main repository + +checkpoint62b (2010/01/26) +o pkg/monitor: + - change back mon_printstats_rl.F & mon_stats_rl.F and add a stop + (in case someone forgot to update customized pieces of code) +o nonHydrostatic: + - add Non-hydrostatic free-surface form (selectNHfreeSurf=1)(not fully tested); + - add a simple 2-D experiment (short_surf_wave) to test it. +o pkg/icefront: + adding the shell of, and the hooks to, a new package that + will model melting and freezing of vertical glacier ice fronts +o momentum: + add diagnostics of momentum tendency from Hydrostatic pressure gradient + (without surf.pressure term: would need a 2nd filling since implicit term). +o add 3 "_d 0"s so that fizhi compiles with xlf on iblade, and replace + two " &end" by " &" (in fizhi-cs-*) because S/R NML_SET_TERMINATOR + cannot deal with the former +o cleaning: + - remove all (except OpenAD) old TLM output from results_ad dirs. + - remove unused S/R (MDSWRITEMETA, DIAGNOSTICS_ADD2LIST, old DFILE IO S/R) + - comment out maskH definition (replaced by maskInC) +o pkg/monitor: + - change mon_printstats_rl.F & mon_stats_rl.F (were similar to mon_writestats_rl + & mon_calc_stats_rl) to be the RL equivalent of mon_printstats_rs & mon_stats_rs. + +checkpoint62a (2010/01/15) +o model/src: + - bottom pressure diagnostic: correct for r* (when nonlinFreeSurf >= 4) +o pkg/diagnostics: + - add optional level number diagnostics (i.e., level number to be define + explictly with S/R DIAGNOSTICS_SETKLEV) with parser-code(10)="X". + - strictly check for valid parser-code(10) ; + - check if adding diag to the list from the right place. +o pkg/longstep: + - change parameters and fix tracer conservation with rstar/nonlinear free surface +o diagnostics: + - in all pkgs, replace remaining calls to old S/R DIAGNOSTICS_ADD2LIST with newer + S/R DIAGNOSTICS_ADDTOLIST ; fix seaice VICE diagnostics. +o pkg/diagnostics: + - Add option for writing vertical integral (sum of selected levels) of an output + field instead of writing output field levels. Activate this option on a per + output-file basis, by setting the 2nd character of fileflag to 'I'. + - Add field-specific information relative to level integral in 3rd postion + of parser diagnostics code (gdiag): " "=cumulate levels, "R"=integrate + vertically (x level-thickness x hFac), "r"=same but without hFac. +o do_the_model_io: + - pass end-of-model-run flag as argument, from forward_step to diagnostics_write: + in case useSIGREG, will write (averaged) diagnostics (if dumpAtLast) before + writing pickups and stopping. +o pkg/diagnostics (for now, only with mdsio): + - write time information to meta file (and modify accordingly rdmds.m) : + time-averaged diagnostics output: write starting and ending time of the + time-averaging interval ; snap-shot diagnostics output remains unchanged; +o pkg/timeave: + - S/R TIMEAVE_NORMALIZ: change size of cumulated-time array (was previously + always Nr), now assumed to be equal to number of levels of averaged field; + only used for DIC_COST monthly mean arrays: this fixes dic_aver_final.F +o pkg/sbo: + - fix ocean bottom pressure global-average & 2-D time-ave output (was + neither initialised nor filled). + - add starting iteration in suffix of global-average output file + (to avoid over-writing the file after a restart) + - use standard MDSIO pkg S/R instead of SBO_WRITEVECTOR (fix byte-swap Pb). +o time-average: + - use simple cumulative-time array (no k index) in all pkgs: {PKG}_timeAve(bi,bj) + (pkgs: aim_v23, bulk_force, dic, gmredi, kpp, land, ocn_compon_interf, + ggl90, my82, opps, pp81, ptracers, sbo, seaice, shelfice, thsice) + this fix DIC_COST cumulative-time array (previously: bi,bj,k) + - fix 1rst call (nIter0) snap-shot output and accumulation (pkg/shelfice) + - fix missing accumulation for pkg/opps. + - cumulate fields only if doing time-ave output ({PKG}_taveFreq > 0) + (pkgs: ptracers, kpp, ocn_compon_interf, ggl90, my82, pp81); + - fix initialisation of time-ave vars and do only full time-step increment + (i.e.: no first & last "half time-step") (pkgs: ggl90, my82, opps, pp81); o pkg/layers: - use standard RW pkg S/R to write the output and remove local write_fld version (which had a problem).