Parent Directory | Revision Log | Revision Graph
Links to HEAD: | (view) (download) (annotate) |
Sticky Tag: |
- include GCHEM_SIZE.h before GCHEM_FIELDS.h - add missing (since Apr 2008) option files: GCHEM_OPTIONS.h & DIC_OPTIONS.h
add another hook (S/R PDF_FINALIZE) for the Parallel Data Assimilation Framework PDAF (http://pdaf.awi.de/)
add hooks for the Parallel Data Assimilation Framework PDAF (http://pdaf.awi.de/), to use set CPP-flag USE_PDAF in CPP_EEOPTIONS.h
Removing # include "BLING_CTRL.h" # include "BLING_COST.h" as they are obsolete
include some of pkg/bling header files.
- fix wrong truncation (single prec) from "FLOAT" function in expressions like: deltaT*FLOAT(myIter) when myIter is large: a) replaced by DFLOAT (if not seen by TAF); b) remove "FLOAT" and use implicit type conversion (if seen by TAF).
define tape comlev1_bibj_evp
- remove ALLOW_ECCO_EVOLUTION switch
- add includes of PROFILES_SIZE.h and PROFILES_OPTIONS.h
- move call to cost_profiles from ecco_cost_driver.F to the_main_loop.F
Complete switch to active I/O for OpenAD verification exps.
o Add 3D active read o change CPP option
Resurrect for time being work-around code for OpenAD that we eventually want to get rid of.
Remove work-around control var. for OpenAD
- avoid recomputations of xx_gentim2d_dummy.
- packages_boot.F : - add useCTRL, useECCO to run time parameters list. - default is true if ALLOW_AUTODIFF, false otherwise. - IF (useECCO) useCAL = .TRUE. - IF (useGrdchk) useCTRL = .TRUE. - do_oceanic_phys.F, packages_check.F, packages_init_fixed.F, packages_init_variables.F, the_main_loop.F : add useECCO switch - forward_step.F, load_fields_driver.F, packages_check.F, packages_init_fixed.F, packages_init_variables.F, the_model_main.F : add useCTRL switch - initialise_varia.F : add ALLOW_CTRL bracket
- ECCO_OPTIONS.h is needed when including ecco_cost.h, ecco.h - AUTODIFF_OPTIONS.h is needed when including tamc.h, tamc_keys.h
- dont CADJ STORE sbar_gen,tbar_gen, unless ECCO_CTRL_DEPRECATED is defined
- model/src/the_main_loop.F, main_do_loop.F, forward_step.F : add CTRL_OBCS.h (the ones in the_main_loop.F, main_do_loop.F are for taf/openad only)
First (so far unsuccessful) attempt at OpenAD active file I/O
rename TAF common block tapes to be more consistent and remove unnecessary duplicates
- add a new tape (model/src/the_main_loop.F) for SEAICE_LSR_VECTORIZE_ZEBRA
- initialise a new tape - comment out the comlev1_multdim tape (to be removed if no-one stumbles over this
Remove store HEFFM
- Start to include explicitly AUTODIFF_OPTIONS.h, COST_OPTIONS.h, and CTRL_OPTIONS.h in src files (to enable to skip the ECCO_CPPOPTIONS.h) For now, only in pkgs used in verification/hs94.1x64x5. - Replace ALLOW_AUTODIFF_OPENAD by ALLOW_OPENAD: because ALLOW_OPENAD is defined in PACKAGES_CONFIG.h (any time pkg/openad is compiled), this simplifies/reduces which *_OPTIONS.h file to include. - Replace ALLOW_AUTODIFF_TAMC by ALLOW_AUTODIFF (except for tape/storage which are specific to TAF/TAMC).
Put back GENTIM2D (but all gradients are zero).
Add control var xx_hfluxm
move back loadedRec 2nd initialisation from main_do_loop.F to the_main_loop.F (just for testing loadedRec usage, within #ifdef STORE_LOADEDREC_TEST)
remove option ALLOW_DIVIDED_ADJOINT_MPI (replaced by ALLOW_DIVIDED_ADJOINT and ALLOW_USE_MPI)
Minor fixes.
Add store
Tentative common blocks for thsice adjoint
Small fixes.
Attempt to reconcile time-stepping loop requirements for DIVA and OpenAD Solution now: Do OpenAD-related time-stepping in main_do_loop, otherwise in the_main_loop
Revert to previous version for the_main_loop.F Rearrange includes in main_do_loop.F works with both isomip and tutorial_tracer_adjsens OpenAD test (likely related to order of ctrl headers vs. other package headers)
Modify treatment of package headers for OpenAD
Additions for OpenAD
Prepare ptracers (ALLOW_TR10_CONTROL) for OpenAD
remove unused variables
fix call to TIMER_STOP (needs to match a corresponding TIMER_START call)
add myTime,myIter arguments to S/R MAIN_DO_LOOP
Reorganize S/R call for overall time-stepping loop to facilitate OpenAD revolve loop replacement (new S/R main_do_loop.F)
( modifications for ALLOW_GENTIM2D_CONTROL ) - forward_step.F, the_main_loop.F : pass options and arrays for adjoint tapes. - load_fields_driver.F : add call to CTRL_MAP_GENTIM2D( myTime, myIter, myThid )
- fix revision 129 : need both ALLOW_ECCO and ALLOW_ECCO_EVOLUTION.
adding tidal velocity forcing capability to obcs Modified Files: model/src/dynamics.F forward_step.F the_main_loop.F pkg/obcs/OBCS_FIELDS.h OBCS_OPTIONS.h OBCS_PARAMS.h OBCS_SEAICE.h obcs_apply_eta.F obcs_apply_r_star.F obcs_apply_surf_dr.F obcs_apply_ts.F obcs_apply_w.F obcs_calc.F obcs_check.F obcs_init_variables.F obcs_readparms.F verification/seaice_obcs/code/OBCS_OPTIONS.h Added Files: pkg/obcs/obcs_add_tides.F verification/seaice_obcs/input.tides/* verification/seaice_obcs/results/output.tides.txt
Bug fix for extended array loop boundaries in streamice_adv_front.F DO j=1-1,sNy+1 DO i=1-1,sNx+1
Add a TAF common block
Add hooks for ALLOW_STREAMICE
- add CPP brackets around pkg/cost and pkg/ctrl includes of "CTRL_SIZE.h" "ctrl.h" "ctrl_dummy.h" "optim.h" / "cost.h"
fix a wrong CPP option (ALLOW_ KAPGM_CONTROL) in ALLOW_AUTODIFF_OPENAD part
Attempt at adding CTRL_SIZE.h
Prelim. attempts for SOM adjoint
Replace #ifdef ALLOW_DEPTH_CONTROL -> ALLOW_CG2D_NSA
- add run-time switch usePROFILES.
- fix previous modif.
- avoid recomputations when using model/src/the_main_loop.F (rather than the ecco version). - move PROFILES_INLOOP from forward_step to the_main_loop. - add options files for exf and ggl, along with includes. - make tapelev_init be a common bloc when using ALLOW_AUTODIFF_WHTAPEIO (that only works for lev1..4). - replace some ALLOW_ECCO with ALLOW_ECCO_EVOLUTION (that means use ecco within model/src/the_main_loop.F).
set storage-key for CG2D_NSA within #ifdef ALLOW_CG2D_NSA (instead of ALLOW_DEPTH_CONTROL)
For #define ALLOW_DEPTH_CONTROL make header CG2D.h visible.
cph: avoid renewed call of initialise_varia in recomputation loop cph: in some circumstances
Update headers.
Forgot something...
Prepare ALLOW_SITRACER adjoint
revert back to previous version (v 1.120)
the_main_loop.F : - if not mitgcmuv_ad : no need for checkpointing loops or tape definitions, so we remove them. This alleviates the need for (nchklev_1*nchklev_2 .lt. nTimeSteps) in fwd runs. - add AD_CONFIG.h and test for ifdef ADJOINT_RUN. write_grid.F : bug fix; AD_CONFIG.h was not included, even though we were testing for ifdef ADJOINT_RUN.
Give meaning to flag ALLOW_TAMC_CHECKPOINTING: Enable adjoint run without multi-level checkpointing. STORE's go entirely to common blocks, no tapelev files are written (works only for small setups).
Prepare a (not the!) solution to lsr adjoint
split "OBCS.h" into 4 separated header files (OBCS_PARAMS,GRID,FIELDS,SEAICE)
split RBCS.h into 3 files: RBCS_SIZE.h, RBCS_PARAMS.h & RBCS_FIELDS.h
attempt to use test on "loadedRec" in external_fields_load.F for AD run: as a test, implement Gael's suggestion (within #ifdef STORE_LOADEDREC_TEST)
Start a seaice tracer-like code but for now confinded to ice age
- within WHTAPEIO, if tapeConcatIO then concatenate all lev2 tapes to one file, and lev3/lev4 accordingly. Those files (e.g tapes2.data) stay open all the way. - to do this I add WHTAPEIO parameters in AUTODIFF.h, and introduce S/R autodiff_whtapeio_sync.F - WHTAPEIO params are intialized in autodiff_ini_model_io.F - autodiff_whtapeio_sync is called before autodiff_store and after autodiff_restore in the_main_loop.F - autodiff_whtapeio_sync.F first open tape files if needed, and then it sets/resets the associated units/counters. - adread_adwrite.F now passes tapeFileUnit and tapeSingleCpuIO to mdsio_read(write)_whalos.F, and it includes the loop over 2D slices.
- new tape for seaice mutldim advection.
Add CPP options for SHELFICE adjoint.
- remove THSICE_PARAMS.h include. This is ok since ticekey was moved to THSICE_SIZE.h.
switch some test on debugLevel value to debugMode test
- fix for using model/src/forward_step.F and model/src/forward_step.F along with pkg/ecco, without having to store "bar" arrays. - allow provinding ecco_ctrl... file at optimization iteration 0.
Pieces that are needed to use model/src/forward_step.F and model/src/forward_step.F along with pkg/ecco. This capability is still in testing phase.
Changes to accomodate ALLOW_AUTODIFF_WHTAPEIO.
adjust store directives for seaice evp and multicategory according to pkg/ecco/the_main_loop.F
Change CPP flags to enable forward ALLOW_AUTODIFF runs
Dependent and independent vars for dic
o add hooks to offline init. o add required headers for checkpointing
Restrict init. of tapelev for momentum fields
Adding AUTODIFF_MYFIELDS.h in a few places.
Adapt store directives to new pseudotimestep loop.
Overlaps had been forgotten in calculating ijk keys (spotted by jmc using gfortran with check-bounds)
fix control variable selection
Add some required headers
implementing TAF directives for gchem,cfc,dic
Put in place a i-j-k comlev storing for messy Leith scheme loop. Allowing recomputation produces wrong TAF adjoint so we have to store here (if we want to include this code).
Move stuff from time-stepping loop to forward_step.F
split PTRACERS.h in 2 header files: PTRACERS_FIELDS.h & PTRACERS_PARAMS.h
Toward fixing multi-dim. adv. adjoint?
Add ifdef
Adding code for seaice export (and others in future) sensitivity calculation.
remove THSICE_2DYN.h.
Fix TAF problems when including correction code for source/sink of tracer due to the linear free surface (S/R CALC_WSURF_TR) (I had removed the ifndef ALLOW_AUTODIFF_TAMC, thought it was trivial)
Merge Jean's changes for OpenAD into main trunk.
Further cleanup of top-level routines.
Re-organized adjoint checkpointing according to Matt Mazloff (but with modifs/completions/cleanups) Storing is now bundled into large arrays to optimized I/O (and second step in cleanup of the_main_loop)
Start cleanup of the_main_loop o package all timing stuff (not tested)
Removing exf_clim code.
move EXF header files from lower_case.h to UPPER_CASE.h ;
First set of modifs for TAF-ing thsice.
move calls to MONITOR & DO_THE_MODEL_IO from the_main_loop.F to the end of initialise_varia.F
o Small modifs (mostly porting for non-ecco setups)
add hooks for atm2d package
o Add hooks for rbcs checkpointing o Add rbcs_init_varia
- replace call to OFFLINE_MODEL_IO by standard call to DO_THE_MODEL_IO - to reduce total Nb of timers, comment out 2 non-essential one.
Modifications for bottom topography control o replace hFacC by _hFacC at various places o replace ALLOW_HFACC_CONTROL by ALLOW_DEPTH_CONTROL o add non-self-adjoint cg2d_nsa o update autodiff support routines o re-initialise hfac after ctrl_depth_ini o works for 5x5 box, doesnt work for global_ocean.90x40x15
fix timer_stop calling string (to match the timer_start call)
Added performance number based on wallclock time for each timestep using PAPI.
Make pkg/profile fully independent of ecco,cost, etc. stuff to be able to use it in pure forward.
Updates to support PCL performance counters, fix real*4 bug for PAPIS and enhance PAPI counter support (including IPC per timestep output)
o Now rstar adjoint.
Starting thsice adjoint
Adding relevant headers for obcs+ptracers adjoint.
Updated code to provide timing information per timestep to include cases where there is no pressure solve by moving the code to the main loop. Modified the timing in the pressure solver for the case where TAF needs to be fooled. Added support for PAPI summary MFlop/s information per timestep along side the simple (user/system/wallclock) timing. To use PAPI one currently needs to have declared PAPIINC and PAPILIB in the optfile for the include and library linking stings.
First step for a NLFS adjoint o initially suppress rStar (new flag DISABLE_RSTAR_CODE) o new init. routines for calc_r_star, calc_surf_dr o still need to deal with ini_masks_etc o testreport seemed happy
remove the include CG3D.h (not needed)
remove unused variables (reduces number of compiler warning)
Implement 4-level checkpointing. Needed for high-res. runs with large global files to be able to limit tapelev size (otherwise a potential show-stopper).
New package for controlling termination of the model based on the wall clock: This is handy for those of us who keep losing 5000 cpuhours because the model took 5 minutes longer than it did the day before. To use: In package.conf, add runclock In data.pkg, add useRunClock=.TRUE. Add data.runclock to read &RUNCLOCK RC_maxtime_hr=2, RC_maxtime_mi=30, RC_maxtime_sc=0, & The package also write the delta Wall Clock between each model step. Who can explain a 30% slow down after 60 iterations? Who even knew about it? Now you can find out lots of dark secrets about the EM EYE TEE GEE SEE EM...
use baseTime as time origin ; DIFF_BASE_MULTIPLE replaces DIFFERENT_MULTIPLE
Adding calls to AUTODIFF_INADMODE_SET/UNSET
Add hooks for inAdExact.
include GMREDI_OPTIONS.h and SEAICE_OPTIONS.h
o Fixing directives for non-ECCO forward_step, after ECCO directives have been fixed to avoid recomp. of do_oceanic_phys o Works well for global_ocean.90x40x15, but recomp. issue remains for carbon
switch btw. 2-level and 3-level checkpointing
extend simple cost functions to treat time mean quantities o cost_tile called from forward_step o cost_accumulate_state called from cost_tile
o bringing adjoint up to date for sheduled c55
o adding offline package
max number of passive tracers is now defined in PTRACERS_SIZE.h
o Adjoint for EBM package (needs further testing) o bug fix for parallel EBM in ebm_zonalmean.F
o couple of small AD fixes
Really weird thing! call do_the_model_io from the_main_loop with parameters starttime, niter0 instead of mytime, myiter screws up the adjoint: TAF places a faulty re-call of initialise_varia after cost call which shouldn't be there!
For some unknown reason calls to MONITOR and DO_THE_MODEL_IO now change the ADTHE_MAIN_LOOP parameter list. Weird! This fixes it.
call DO_THE_MODEL_IO (replaces "call WRITE_STATE") just before starting
o sort out interplay between tamc.h and PTRACERS_OPTIONS.h (need info on NUMBER_OF_PTRACERS) o missing PTRACERS headers in some routines o default tamc.h in pkg/autodiff supposed to crash to ensure proper customization
o merging from ecco-branch o minor CPP options update
o cleanup: convert '#ifndef DISABLE_DEBUGMODE"' to '#ifdef ALLOW_DEBUG"'
o convert all the '#ifndef "EXCLUDE_MONITOR"'-isms to the now-standard '#ifdef "ALLOW_MONITOR"' format as is done with all the other packages - note that this also means removal of the monitor package from the packages.conf list for the AD examples
o convert all "INCLUDE_EXTERNAL_FORCING_PACKAGE" defines to the more consistent ALLOW_EXF o passed all the basic verification tests on shelley
modified pkg/cd_code o moved cd_scheme.F -> cd_code_scheme.F o separate read_checkpoint from cd_code_ini_vars.F o separated cd_code part from write_checkpoint o updated AD_SOURCE, generated .flow o added CD_CODE_VARS.h to the_main_loop
o first check-in for the "branch-genmake2" merge o verification suite as run on shelley (gcc 3.2.2): Wed Oct 8 23:42:29 EDT 2003 T S U V G D M c m s m s m s m s E p a R g m m e . m m e . m m e . m m e . N n k u 2 i a a d i a a d i a a d i a a d 2 d e n d n x n . n x n . n x n . n x n . OPTFILE=NONE Y Y Y Y 13 16 16 16 0 16 16 16 16 16 16 16 16 13 12 0 0 pass adjustment.128x64x1 Y Y Y Y 16 16 16 16 0 16 16 16 16 16 16 0 0 16 16 0 0 pass adjustment.cs-32x32x1 Y Y Y Y 16 16 16 16 0 16 16 16 16 16 16 22 0 16 16 22 0 pass adjust_nlfs.cs-32x32x1 Y Y Y Y -- 13 13 16 16 13 13 13 13 16 16 16 16 16 16 16 16 N/O advect_cs Y Y Y Y -- 22 16 16 16 16 16 16 13 16 16 16 16 16 16 16 16 N/O advect_xy Y Y Y Y -- 13 16 13 16 16 16 16 16 16 16 22 16 16 16 16 16 N/O advect_xz Y Y Y Y 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 pass aim.5l_cs Y Y Y Y 14 16 16 16 16 16 16 16 16 13 16 16 16 16 16 13 16 pass aim.5l_Equatorial_Channel Y Y Y Y 16 16 16 16 16 16 16 16 16 16 16 13 16 16 13 13 16 pass aim.5l_LatLon Y Y Y Y 13 16 16 16 16 16 16 16 16 16 13 12 13 13 16 13 16 pass exp0 Y Y Y Y 14 16 16 16 16 16 16 16 22 16 16 16 13 16 16 22 16 pass exp1 Y Y Y Y 13 13 16 13 16 16 16 16 16 13 13 16 16 13 13 13 13 pass exp2 Y Y Y Y 16 16 16 16 16 16 16 16 22 16 16 16 16 16 16 16 16 pass exp4 Y Y Y Y 16 16 16 16 16 16 16 16 16 16 16 22 16 16 16 22 16 pass exp5 Y Y Y Y 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 pass front_relax Y Y Y Y 14 16 16 13 13 16 16 13 13 16 13 13 16 12 13 13 16 pass global_ocean.90x40x15 Y Y Y Y 10 16 16 13 13 16 13 16 16 13 13 13 13 16 16 13 16 FAIL global_ocean.cs32x15 Y Y Y Y 6 11 12 13 13 12 13 16 13 9 9 9 9 10 9 9 11 FAIL global_ocean_pressure Y Y Y Y 14 16 16 13 16 16 16 13 13 13 13 13 16 12 16 13 16 pass global_with_exf Y Y Y Y 14 16 16 16 16 16 16 16 16 11 13 22 13 16 16 9 16 pass hs94.128x64x5 Y Y Y Y 13 16 16 16 16 16 16 16 16 11 16 16 16 13 16 22 13 pass hs94.1x64x5 Y Y Y Y 14 16 16 16 16 16 16 16 16 13 16 13 13 16 16 22 13 pass hs94.cs-32x32x5 Y Y Y Y 10 10 16 13 13 16 16 16 22 16 13 13 13 13 13 22 13 FAIL ideal_2D_oce Y Y Y Y 8 16 16 16 16 16 16 16 16 13 13 8 16 16 16 16 16 FAIL internal_wave Y Y Y Y 14 16 16 16 16 16 16 16 16 13 13 22 13 13 13 22 16 pass inverted_barometer Y Y Y Y 12 16 16 16 16 16 16 16 16 16 13 12 13 13 13 13 13 FAIL lab_sea Y Y Y Y 11 16 16 16 16 16 16 16 13 13 13 12 13 16 13 12 13 FAIL natl_box Y Y Y Y 16 16 16 16 16 16 16 16 22 16 16 16 16 16 16 16 16 pass plume_on_slope Y Y Y Y 13 16 16 16 16 13 16 16 16 16 16 16 16 13 16 16 16 pass solid-body.cs-32x32x1
o included PACKAGES_CONFIG.h in all files where the ALLOW_${PKG_NAME} defines are used o added comments where IF ( use${PKG_NAME} ) statements will probably be needed -- or need to be edited
o Mods and bug fixes to pkg/cal, pkg/exf, etc., needed for computation of tracer Green's fucntions for ocean inversion project.
o disentangled ALLOW_PTRACERS using new ALLOW_GCHEM
Extended pkg/debug and instrumented main code to help track down fatal errors.
cleanup.
Modif.s for correct DIVA handling: Modif.s in - ecco_the_main_loop.F - ecco_the_model_main.F and added cost_final_restore.F cost_final_store.F o With these changes, it is possible to fully separate the first forward run to compute the cost function (mdthe_main_loop) and adjoint runs over individual DIVA intervals (adthe_main_loop) into separate model executions. This enables better tuning of DIVA to given queue sizes. o Loss of cost function value in consecutive DIVA runs is fixed by storing to 'costfinal' file. o Appropriate call of ctrl_unpack/_pack,grdchk_main at beginning/end of adjoint integration is accounted for. The current changes apply to TAF-1.4.26. TAF has one remaining bug, requiring one manual change (see MITgcm manual).
Modified Files: model/inc/PARAMS.h and model/src/the_main_loop.F
Merging from release1_p12: o Modifications for using pkg/exf with pkg/seaice - improved description of the various forcing configurations - added basic radiation bulk formulae to pkg/exf - units/sign fix for evap computation in exf_getffields.F - updated verification/global_with_exf/results/output.txt o Added pkg/sbo for computing IERS Special Bureau for the Oceans (SBO) core products, including oceanic mass, center-of-mass, angular, and bottom pressure (see pkg/sbo/README.sbo). o Lower bound for viscosity/diffusivity in pkg/kpp/kpp_routines.F to avoid negative values in shallow regions. - updated verification/natl_box/results/output.txt - updated verification/lab_sea/results/output.txt o MPI gather, scatter: eesupp/src/gather_2d.F and scatter_2d.F o Added useSingleCpuIO option (see PARAMS.h). o Updated useSingleCpuIO option in mdsio_writefield.F to work with multi-field files, e.g., for single-file pickup. o pkg/seaice: - bug fix in growth.F: QNET for no shortwave case - added HeffFile for specifying initial sea-ice thickness - changed SEAICE_EXTERNAL_FLUXES wind stress implementation o Added missing /* */ to CPP comments in pkg/seaice, pkg/exf, kpp_transport_t.F, forward_step.F, and the_main_loop.F o pkg/seaice: - adjoint-friendly modifications - added a SEAICE_WRITE_PICKUP at end of the_model_main.F
o Added missing /* */ to CPP comments in pkg/seaice, pkg/exf, kpp_transport_t.F, forward_step.F, and the_main_loop.F
Modifications in treatment of initial flux forcing controls to avoid extra storing of flux fields.
Branch release1_coupled contains code for coupling to UCLA atmospheric model: cvs tag ucla1 Branched off tag release1_beta1 Modified eesupp/src/eeboot_minimal.F, eedie.F, exch_jam.F, global_max.F, global_sum.F, gsum_jam.F, ini_procs.F, and main.F model/src/dynamics.F, forward_step.F, freeze.F, ini_parms.F, set_defaults.F, the_main_loop.F, the_model_main.F, timestep.F, write_state.F, and mdsio_writefield.F pkg/timeave/TIMEAVE_STATV.h, timeave_statv_write.F, timeave_statvars.F, and model/inc/PARAMS.h, Added model/src/do_coupled_ucla.F and verification/coupled_ucla NOTES: MPI_COMM_WORLD -> MPI_COMM_MODEL in exch_jam.F, global_max.F global_sum.F, and gsum_jam.F Added useSingleCpuIO: ini_procs.F, PARAMS.h, ini_parms.F, set_defaults.F, mdsio_writefield.F, and subroutine GATHER_2D in do_coupled_ucla.F
o few modif.'s to get latest version adjointed (mainly kick out code in ini_linear_phisurf) o modif's to run adjoint with exactConserv o case GM_BOLUS_ADVEC should be cleaned S/R gmredi_slope_psi should be cleaned o verification/carbon now has exactConserv=.TRUE.
checkpoint47f_post Merging from release1_p10: o modifications for using pkg/exf with pkg/seaice - pkg/seaice CPP options SEAICE_EXTERNAL_FORCING and SEAICE_EXTERNAL_FLUXES - pkg/exf CPP options EXF_READ_EVAP and EXF_NO_BULK_COMPUTATIONS - usage examples are Experiments 8 and 9 in verification/lab_sea/README - verification/lab_sea default experiment now uses pkg/gmredi, pkg/kpp, pkg/seaice, and pkg/exf
o modifications for using pkg/exf with pkg/seaice - pkg/seaice CPP options SEAICE_EXTERNAL_FORCING and SEAICE_EXTERNAL_FLUXES - pkg/exf CPP options EXF_READ_EVAP and EXF_NO_BULK_COMPUTATIONS - usage examples are Experiments 8 and 9 in verification/lab_sea/README - verification/lab_sea default experiment now uses pkg/gmredi, pkg/kpp, pkg/seaice, and pkg/exf
Two packages: bulk_force (Bulk forcing) and therm_seaice (thermodynamic_seaice) - adopted from LANL CICE.v2.0.2 Earlier integration from Stephaine Dutkiewicz and Patrick Heimbach. Two ifdef statements for compile time, ALLOW_THERM_SEAICE and ALLOW_BULK_FORCE Two switches in data.pkg to turn on at run-time: cat data.pkg # Packages &PACKAGES useBulkForce=.TRUE., useThermSeaIce=.TRUE., & WARNING: useSEAICE and useThermSEAICE are mutually exclusive. The bulk package requires an additional parameter file with two namelists, data.ice and data.blk. c ADAPTED FROM: c LANL CICE.v2.0.2 c----------------------------------------------------------------------- c.. thermodynamics (vertical physics) based on M. Winton 3-layer model c.. See Bitz, C. M. and W. H. Lipscomb, 1999: "An energy-conserving c.. thermodynamic sea ice model for climate study." J. Geophys. c.. Res., 104, 15669 - 15677. c.. Winton, M., 1999: "A reformulated three-layer sea ice model." c.. Submitted to J. Atmos. Ocean. Technol. c.. authors Elizabeth C. Hunke and William Lipscomb c.. Fluid Dynamics Group, Los Alamos National Laboratory c-----------------------------------------------------------------------
differentiable version of checkpoint46n_post o external_fields_load now part of differentiation list o pressure needs multiple storing; would be nice to have store_pressure at beginning or end of forward_step, e.g. by having phiHyd global (5-dim.) (NB: pressure is needed for certain cases in find_rho, which is also invoked through convective_adjustment). o recomputations in find_rho for cases 'JMD95'/'UNESCO' or 'MDJWF' are OK. o #define ATMOSPHERIC_LOADING should be differentiable o ini_forcing shifted to begining of initialise_varia
Merging from release1_p8 branch: o GAD: - generated new common blocks to account for call of same gad routines with differing traceridentities (needed to modify tracerIdentity indices in GAD.h) - generated separate common blocks for case useCubedSphereExchange (Department of Futurology) - parameter lists to gmredi_?transport: added tracerIdentity - added new key indices to tamc.h
TAF-related storing key computations modified and new common block types included to account for multiple calls of gad routines with differing tracerIdentity.
Moved call to packages_init_varia before call convective_adjustment_ini. Corresponding adjustment of tape init. for TAF.
Moving call packages_init_variables before convecti_adjustment_ini in initialise_varia for better consistency.
Changes encapsulated by checkpoint43a-release1mods and chkpt44d_post on the main trunk. These are: 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 o real fresh water flux implemented with non-linear free-surface. 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 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. 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 These were merged with cvs co -r release1 -P MITgcm cd MITgcm cvs update -kk cvs update -j checkpoint43a-release1mods -j chkpt44d_post -d -P -kk
Merging changes on MAIN between checkpoint43 and checkpoint43a-release1mods Command: cvs -q update -jcheckpoint43 -jcheckpoint43a-release1mods -d -P These changes are most of the changes between c43 and c44 except those that occured after "12:45 11 Jan 2002". As far as I can tell it is checkpoint43 with the following mods: 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 o Jamar wet-points This update does not contain the following mods that are in checkpoint44 o bug fix in pkg/generic_advdiff/ - thread related bug, bi,bj arguments in vertical advection routines o some changes to pkg/autodiff, pkg/cost, pkg/exf, pkg/ecco, verification/carbon and model/src/ related to adjoint o some new Matlab scripts for diagnosing model density - utils/matlab/dens_poly3.m and ini_poly3.m The list of exclusions is accurate based on a "cvs diff". The list of inclusions is based on the record in doc/tag-index which may not be complete.
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
Updating ecco-branch-mod1 to checkpoint44. Will be tagged ecco-branch-mod2.
* Updated adjoint/makefile o removed "_ecco" from names o added/modified forward mode options o added dependent vector option o tried SVD matrix computation (doesn't work; too much memory use by TAF) * Updated flow directives related to FTL * removed global_sum__g.F (not necessary) * initialise forward mode anomalies in ctrl_unpack.F (so far "crude" initialization only). * Added flag ALLOW_TANGENTLINEAR_RUN complememting ALLOW_ADJOINT_RUN * driver routine the_model_main.F needs separate call to FTL routine G_THE_MAIN_LOOP with parameter list identical to THE_MAIN_LOOP (TAF doesn't remove arguments). * added template file tangentlinear_model.F for forward mode.
Transfering major checkpoint store directive blocks to separate header files. Files are included in the_main_loop (lev3, lev2) and forward_step (lev1).
#ifdef ALLOW_COST_TRACER replaced by ALLOW_PASSIVE_TRACER (required)
Preparing adjoint of Held-Suarez: - bugfix for storing in absence of CD code - adding EXACT_CONSERV to AD list - new routine ini_autodiff to add TAMC-specific initialisations - adding Shapiro filter to AD list
Switched sense of CPP macro for controlling multi-dimensional advection: o DISABLE_MULTIDIM_ADVECTION is set in GAD_OPTIONS.h o automatically set if differentiating code (comments around call to gad_advection point out how to re-enable it) o this avoids needing to add the former macro to CPP_OPTIONS.h - reason for this is there's no point in any of the new schemes without it.
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
Deleted single apostrophy (').
Bringing comments up to data and formatting for document extraction.
o New package pkg/rw/ needed new flow directives for TAMC. o Replacement of calc_mom_rhs by mom_fluxform and mom_vecinv needed update of adjoint/makefile and additional store directives in the_main_loop.F to cover all cases.
Moved TR1.h headers between ifdef ALLOW_PASSIVE_TRACER.
Cleanup of store directives for TAF.
Added a few re-initialisations for TAF.
o Extracted core part of the_main_loop and re-created forward_step N.B.: Time-dependent part of cost function should remain in the_main_loop (or contributions must be stored) o Added some parameter recomputations of nIter0
o Added grdchk package handling o Added passive tracer handling
the default is now to call the filter after solve_for_pressure
Corrected all the timer labels (for the non-adjoint sections).
Added Kinetic energy monitoring.
Adding skeleton "monitor" routines. The default is to do it every time-step. monitorFreq=0 disables.
Modifications/fixes to support TAMC differentiability (mostly missing or wrong directives).
See doc/tag-index and doc/notes_c37_adj.txt Preparation for stand-alone autodifferentiability.
remove "include CG2D.h"
move the IO at the end of a time step
set initial Time & Iteration counter in the_model_main and pass them as argument to the_main_loop
Made sure each .F and .h file had the CVS keywords Header and Name at its start. Most had header but very few currently have Name, so lots of changes!
Restructered the calling tree between THE_MODEL_MAIN() and DYNAMICS(). Two calling levels have been inserted to better split the "fixed" initialization phase from the main time-loop for easier connectivity with the adjoint infrastructure. The calling tree now looks like: the_model_main: initialise_fixed() the_main_loop() the_main_loop: initialise_varia() do i=1,nIters forward_step() enddo forward_step() forward_step: load_external_fields() dynamics() do_the_model_io() solve_for_pressure() do_gterm_blocking_exchanges() write_checkpoint()
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
ViewVC Help | |
Powered by ViewVC 1.1.22 |