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
removing unnecessary header includes of BLING_COST.h BLING_CTRL.h
- move call to ecco_phys.F from do_oceanic_phys.F to the end of forward_step.F
- pass myIter and myTime to ctrl_map_forcing as input parameters; move myIter .EQ. nIter0 inside ctrl_map_forcing
implement fully implicit bottom friction coupled with implicit surface pressure (hydrostatic only)
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).
remove un-used "CPL_PARAMS.h"
- combine into 1 (new) S/R CPL_EXPORT_IMPORT_DATA the two previous S/R CPL_EXPORT_MY_DATA & CPL_IMPORT_EXTERNAL_DATA
- change where Offline-Fields are loaded, from load_fields_driver.F to directly within FORWARD_STEP, just after updating iter number and time; - move setting of GM and KPP diffusivity out of OFFLINE_FIELDS_LOAD into new S/R OFFLINE_GET_DIFFUS that is called towards the end of DO_OCEANIC_PHYS;
Minor include rearrangements to support AD
fix a comment
- 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
- 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)
call pkg/streamice routines only if useStreamIce=TRUE
fix revision 1.221 : replacing ALLOW_AUTODIFF_TAMC by ALLOW_AUTODIFF (except for tape/storage which are specific to TAF/TAMC).
replace call to STREAMICE_SOLO_TIMESTEP with call to replacement STREAMICE_TIMESTEP
document calling sequence
update algorithm description (moved to forward_step.F) and calling tree (in the_model_main.F)
move CYCLE_TRACER calls from tracers_correction_step.F to temp/salt/ptracer_integrate.F so that theta,salt and pTracers arrays are already updated when leaving S/R THERMODYANMICS while adjustments (filters, conv.adjustment) are still applied later, in S/R TRACERS_CORRECTION_STEP.
store factor rStarFacC**atm_kappa in common block (for atmosphere in p* coords)
- 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_TAMC by ALLOW_AUTODIFF (except for tape/storage which are specific to TAF/TAMC).
remove some unnecessary TAF storage directives (note: not always removed, e.g., double storage of kappaRU,kappaRV in former version of dynamics.F)
adjust Storage directive: wVel storage moved from thermodynamics.F to here, with other wVel storage dir.
remove unused variable
remove cpl_earlyExpImpCall=F option (was mainly a hack added for the old staggerTimeStep implementation)
- to enable the use of other features with pkg offline (e.g., obcs), also call S/R DO_OCEANIC_PHYS in offline run - more modifs to come.
Add headers for THSICE adjoint.
call ptracers_reset directly from forward_step, so the adjoint can see it
( 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 )
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
Merge store modifs from global_oce_llc90/code (ECCO v4) dir.
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"
Attempt at adding CTRL_SIZE.h
Prelim. attempts for SOM adjoint
Replace #ifdef ALLOW_DEPTH_CONTROL -> ALLOW_CG2D_NSA
- 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).
For #define ALLOW_DEPTH_CONTROL make header CG2D.h visible.
add call to PTRACERS_SWITCH_ONOFF at the beginning of a time-step
add SEAICE_SIZE.h anywhere SEAICE.h is included
fix previous modif
Extend cases under which MONITOR is called (monitorFreq is reset to zero in S/R turnoff_model_io)
pkg/offline related changes: - always call MONITOR (monitorFreq has been changed) - always compile with SOLVE_FOR_PRESSURE call and INTEGR_CONTINUITY call (move/remove #ifndef ALLOW_OFFLINE) to allow to compute vertical velocity; keep only #ifndef ALLOW_OFFLINE where needed for the adjoint.
improve Gael's changes from Jan 14, 2011 "addition of an 'update' of hfacc etc. to their current value at the beginning of forward_step.F": use run-time switch "doResetHFactors" (default=false) to do (or not) the resetting.
- move bi,bj loops inside INTEGR_CONTINUITY ; - call INTEGR_CONTINUITY directly from forward_step.F (previously called from momentum_correction_step.F) - call UPDATE_ETAH from integr_continuity.F and update initialise_varia.F, forward_step.F and pkg/ecco/the_main_loop.F
Add header SEAICE_COST.h
split "OBCS.h" into 4 separated header files (OBCS_PARAMS,GRID,FIELDS,SEAICE)
take MNC code out of forward_step into new S/R MNC_UPDATE_TIME
split RBCS.h into 3 files: RBCS_SIZE.h, RBCS_PARAMS.h & RBCS_FIELDS.h
Enable adjoint of OB conditions following Stevens (1990)
- avoid recomputation in global_ocean.90x40x15.
- storage directives clean up.
Store modifs for ptracers adjoint with NLFS
o model/src, pkg/autodiff, pkg/ecco, pkg/seaice: alleviate the need for additional 3D tapes when using the non-inear free surface in the adjoint. This is done by adding an 'update' of hfacc etc. to their current value at the beginning of forward_step.F.
Add CPP options for SHELFICE adjoint.
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.
STOREs not necessary for DISABLE_SIGMA_CODE
Attempt to make adjoint work again for arctic210x192x50 setup (currently broken)
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.
add hooks for new packages OASIS, the package will follow (hooks exclude the seaice pkg for now)
sigma (and hybrid-sigma) coordinate code for non-linear free-surface
fix CHEAPAML debug message
Prerequisite for adjoint of ggl90.
longstep: fix tracer conservation with rstar/nonlinear free surface
- pass modelEnd flag as argument, from forward_step to diagnostics_write - move NEST_CHILD_TRANSP call next to NEST_PARENT_IO_2 (last part of forward_step)
change arg. list order of S/R CPL_EXPORT/IMPORT_DATA
avoid unused variables
incorporate modif from Contrib/nesting_sannino/code_nest_merged
o add dic header o ifndef ALLOW_OFFLINE
Add useOFFLINE also for AD code
o add hooks to offline init. o add required headers for checkpointing
Adjust a few stores for obcs.
Adding AUTODIFF_MYFIELDS.h in a few places.
change argument list order of S/R MONITOR
add package longstep
Add TAF option "kind" (or adjust "byte") to enable real*4 common blocks
- clean-up flt package interface
That store seems more general.
Add some required headers
Add one extra store (adapted from similar in pkg/ecco)
From Nicolas: add package cheapaml
move forward declarations to avoid conflict when common blocks includes are turned into module uses
Clean up slightly.
More hidden recomputations, this time more thoroughly: avoid seaice_model and load_fields_driver
implementing TAF directives for gchem,cfc,dic
do not write pickup from THE_MODEL_MAIN but always from FORWARD_STEP
Move stuff from time-stepping loop to forward_step.F
split PTRACERS.h in 2 header files: PTRACERS_FIELDS.h & PTRACERS_PARAMS.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)
Add headers for adjoint.
Further cleanup of top-level routines.
Removing exf_clim code.
move EXF header files from lower_case.h to UPPER_CASE.h ;
o Small modifs (mostly porting for non-ecco setups)
Updating seaice adjoint, step 1 (everything, except SEAICE_EVP).
clean-up the read / write pickup S/R
o Add hooks for rbcs checkpointing o Add rbcs_init_varia
- new driver S/R: LOAD_FIELDS_DRIVER to load external forcing fields from file (collects calls previously in FORWARD_STEP) - move call to SEAICE_MODEL from FORWARD_STEP to DO_OCEANIC_PHYS
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
o Now rstar adjoint.
o SEAICE_CGRID adjoint, part 2. (all stores seem to be sorted out, but NANs in adjoint).
Starting thsice adjoint
Fix ptracers adjoint o avoid extensive recomputatations o fix missing re-init. of gptr (missed by TAF)
use the right CPP option: "#ifdef ALLOW_OCN_COMPON_INTERF"
Adding relevant headers for obcs+ptracers adjoint.
* use flag useOffLine rather than CPP #ifndef ALLOW_OFFLINE * does not skip calls in initialization stage if using OffLine mode
o Another overhaul of store dirs. for NLFS to eliminate "hidden" recomputations. o TBD: "hidden" mom_vecinv recomp. in dynamics
o Fix PmEpR store for #undef EXACT_CONSERV o Fix "hidden" recomp. in thermodynamics (no TAF warnings) o Try to fix NLFS adjoint (hidden recomp in forward_step)
Change of EmPmR in external_forcing_surf necessitates re-arranging adjoint STORE (what a pain).
1rst implementation of Implicit IGW using the 3-D solver (use3Dsolver=T) and based on the reference stratification
Argument list change for step_fizhi_corr
call S/R EXTERNAL_FIELDS_LOAD even when using bulkf_forcing pkg
Add new option to call do_statevars_diags from end of forward step
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
o add hooks for new package rbcs
o add a signal handler so that a user can run "killall mitgcmuv" and the model will, at the end of the current iteration, write out all the normal checkpoint files and gracefully stop - off by default so its very unlikely to hurt anything - TODO: can be extended with an MPI global sum that will allow it to work the same way in an MPI environment
remove the include CG3D.h (not needed)
remove unused variables (reduces number of compiler warning)
add timing information for Shap & Zonal Filter ; update timer message.
o add a simple "mnc_filefreq" mechanism for splitting mnc files at specified time intervals -- this is a temporary fix for Baylor and a better way would understand time boundaries such as months, years, etc. -- please see TODO: notes in the code
fix number of arguments in CALL MNC_CW_CITER_SETG
o various changes to mnc including: - all files use the new "BASENAME[[.ITER].{t|f}NUM].nc" format - output can now be grouped so that all files within a group change the ITER portion of their names in lock-step together - can now read ("global") PER-FACE (in addition to PER-TILE) files and works with both EXCH1 and EXCH2 (but needs more testing) - writing works for all verification test cases w/ g77 on Linux
call CALC_GW from DYNAMICS (instead of from FORWARD_STEP)
New way of accounting for run length - need to move location of fizhi update time
Move fizhi update time call from do atmospheric phys into forward step near the end
add "myTime" to the list of arguments of S/R DIAGNOSTICS_SWITCH_ONOFF
use baseTime as time origin ; DIFF_BASE_MULTIPLE replaces DIFFERENT_MULTIPLE
small fix of debugging statements for calls of gchem routines
move state variable diagnostics to the beginning of the time step.
call diagnostics_switch_onoff at the beginning of the time-step
o GCHEM: finish reorganizating the package - forward_step calls GCHEM_CALC_TENDENDY, which computes gchemTendency (introduces another 3D-array for each passive tracer, but only if GCHEM_SEPARATE_FORCING is undefined. For GCHEM_SEPARATE_FORCING gchemTendency is not needed because the timestep is done separately)
- set up forward_step for a call to gchem_forcing, that will replace gchem_forcing_int in ptracers_forcing - cleaning up, in particular CPP-flags and call to ptracer_statvars
GCHEM: introduced a useGCHEM runtime flag
o GCHEM: move call to GCHEM_FORCING_SEP, so that it is now called before the blocking exchanges to avoid computing halos in GCHEM_FORCING_SEP
More on dsvd vs. MITgcm interfacing o handling of g_, ad, via admtlm_vector (mds...vector) o use ctrl_pack/unpack for admtlm_vector I/O o use optimcycle for dsvd iteration o make sure norm is w.r.t. derived quantities
Restoring adjoint.
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
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
move ocean specific S/R calls (FREEZE_SURFACE, THSICE_MAIN, OCN_APPLY_IMPORT) from forward_step.F to do_oceanic_phys.F
max number of passive tracers is now defined in PTRACERS_SIZE.h
needs valid U,V in halo region for multi-Dim-Advec; do Exch(U,V) if staggerTimeStep
put atmospheric physics & state-vars diagnostics calls in 2 dedicated S/R.
re-write staggerTimeStep: step forward momentum 1rst and then T,S
move diagnostics_fill_ptracers.F to ptracers_fill_diagnostics.F
Add call in fizhi sequence to update the model date and time
coupled AIM+thSIce & Ocean with realFreshWaterFlux : try this temporary implementation waiting for a re-working of forcing and time-stepping sequence.
Commiting new energy balance model to repository o package is pkg/ebm o verif. is verification/global_ocean_ebm o references are in ebm_driver.F Will need long integration testing.
include FFIELDS.h not needed ;
Some timer calls for fizhi
Add some timings around fizhi and gridalt calls
Add some timings around fizhi and gridalt calls
Call sequence for tracer diagnostics wrapper
Call wrapper to fill state field diagnostics if diagnostics package is enabled
one more header for exf_clim
typo in cvs Header
Change some gridalt and fizhi call sequences
Bringing flow and store directives up-to-date
o fix compile error: remove both decls of bi,bj since neither is needed
Fizhi changes in forward step and diagnostics package_init
o added some infrastructure to call fizhi and gridalt routines o added package dependencies for fizhi
allow multi-components set-up with a coupler interface and using MPI. exchanges between component and coupler is done in forward_step
new S/R that calls each $PKG_write_pickup (if needed)
use the new thermodynamic Sea-Ice pkg: thSIce
keeping up-to-speed with Ben & Jerrys
additional changes for FREEZE: - new S/R FREEZE_SURFACE only apllied to surface level. - add run-time parameter "useOldFreezing" to use the old version "FREEZE"
o modifications to make FREEZE flux visible to pkg/kpp - moved surfaceTendencyTice from pkg/seaice to main code - FREEZE moved to FORWARD_STEP - subroutine FREEZE now limits only surface temperature this means new output.txt for global_ocean.90x40x15, global_ocean.cs32x15, and global_with_exf, but note that results for these three experiments remain bit-identical to before if allowFreezing=.FALSE. o added surface flux output variables to TIMEAVE_STATVARS o time-averaged output for pkg/ptracers
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
No panic, this is not on main branch!
o cleaning ALLOW_GRADIENT_CHECK -> ALLOW_GRDCHK o cleaning some ALLOW_TANGENTLINEAR_RUN -> ALLOW_AUTODIFF o bug fix in find_alpha.F for MDJWF: - modif. to alpha = 1/D*( dN/dT - rho*dD/Dt) to account for change rho -> rho-rhoConst - replace call find_rho to find_rhonum
o undid all of the cp51 checkin pending some ongoing code cleanups and discussion
o modifications to make FREEZE flux visible to pkg/kpp - moved surfaceTendencyTice from pkg/seaice to main code - FREEZE & EXTERNAL_FORCING_SURF moved to FORWARD_STEP - subroutine FREEZE now limits only surface temperature (this means new output.txt for global_ocean.90x40x15, global_ocean.cs32x15, and global_with_exf) o added surface flux output variables to TIMEAVE_STATVARS
o added the [#include "AD_CONFIG.h"] statement to all files that need it for adjoint/tl #defines o re-worked the build logic in genmake2 to support AD_CONFIG.h o removed tools/genmake since it no longer works
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
The INCLUDE_EXTERNAL_FORCING_PACKAGE macro is not visible in model/src
fix Problem with bulk_force & therm_seaice.
modification to make gchem more versatile
Bringing code up to date for AD o remove some IF-statements which cause excessive dependencies o provide interface for ADM*TLM
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.
little modification to synchronize shapiro-filter diagnostic.
put bulk_force CALL within IF ( useBulkforce ) block
o introducing integer flag debugLevel o introducing pathname variable mdsioLocalDir for mdsio
o disentangled ALLOW_PTRACERS using new ALLOW_GCHEM
add options for biogeochemistry pkg
additions for biogeochemistry packages
Extended pkg/debug and instrumented main code to help track down fatal errors.
store u*,v* in gU,V instead of in gu,vNm1.
Changes to restore differentiability of code w.r.t. previous tag (mostly adding new routines to make list and replacing pressure by totPhiHyd).
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.
r* coordinate added in #ifdef NONLIN_FRSURF block. (modification to pressure gradient not yet implemented)
fix bug in TIMER_STOP 'UPDATE_CG2D' that was causing lot of WARNING.
Moved appropriate exchanges from forward_step to inside addummy_in_stepping. Will have to see whether that's also consistent with the ecco-branch.
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
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
add a call to TIMER_STOP that was missing.
Fixing the exchange routines in bulk forcing so that they work with the cubed sphere model.
Fixing #ifdef so that useseaice is mutually exclusive with bulk forcing (which uses thermodynamic seaice).
Pb in lab_sea experiment was easy to fixa (CALL SEAICE_MODEL)
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-----------------------------------------------------------------------
Fixing bug - there is an #ifdef in the incorrect place, and consequently, bulk_forcing never gets called.
Two packages: bulk_forcing (Bulk forcing) and thermodynamic_seaice (adapted from LANL CICE.v2.0.2) Earlier integration from Stephaine Dutkiewicz and Patrick Heimbach. Two ifdef statements for compile time, ALLOW_TSEAICE and ALLOW_BULKFORMULA Two switches in data.pkg to turn on at run-time: cat data.pkg # Packages &PACKAGES useBulkf=.TRUE., useTSeaIce=.TRUE., & The bulk package requires an additional parameter file with two namelists. cat data.blk &BULKF_PARM01 RainFile= 'ncep_precip_m_cubed.bin', SolarFile= 'ncep_downsolr_cubed.bin', AirTempFile= 'ncep_tair_cubed.bin', AirhumidityFile='ncep_qair_g_cubed.bin', LongwaveFile= 'ncep_netlw_cubed.bin', UWindFile= 'ncep_uwind_cubed.bin', VWindFile= 'ncep_vwind_cubed.bin', WspeedFile= ' ', RunoffFile= ' ', QnetFile= ' ', EmPFile= 'ncep_emp_calc_cubed.bin', CloudFile= 'ncep_totalcloud_cubed.bin', & &BULKF_PARM02 qnet_off=0.0, empmr_off=0.0, conservcycle=311040000., & 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----------------------------------------------------------------------- WARNING: useSEAICE and useTSEAICE are mutually exclusive. todo: thermodynamic.F should be reviewed and cleaned up a bit.
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 external_fields_load: - added this routine to TAF list - needed to make some common blocks global and additional storing along the same lines as exf package (checkpoint_lev?_directives.h)
o Adding package parameters and hooks to MITgcm for new seaice package. o Adjusting KPP package for use with seaice package.
Added external_fields_load routine to TAF list. Update corresponding checkpointing lists (analog to exf handling of swapping).
* split calc_exact_eta in 2 S/R : integr_continuity & update_etaH * move wVel computation at the end of the time step, in S/R integr_continuity * create specific S/R to exchange T,S before DYNAMICS (for stagger time step) * update timeave pkg for wVel diagnostic ; put convertEmP2rUnit in PARAMS.h
Merging from release1_p5 (cf. tag-index for checkpoint46).
Removed #ifndef ALLOW_AUTODIFF_TAMC bracketing call do_the_model_io; added corresponding flow directive do_the_model_io.flow
* need to call UPDATE_SURF_DR even if momStepping=F (RealFreshWater)
Introduced CPP option ALLOW_AUTODIFF_MONITOR to disable adcommon.h/g_common.h by default.
Included CPP option ALLOW_AUTODIFF_MONITOR to enable/disable use of adcommon.h/g_common.h
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.
Merge changes from main trunk: o changed param. list for call obcs_calc in thermodynamics o flow directives in the_correction_step not needed anymore Remove forward_step for ecco-branch
add argument myIter & myTime to S/R routine solve_for_pressure
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 Insert OBCS.h header for case AUTODIFF. o Update plot_field to include xz-/yz-routines.
Updating ecco-branch-mod1 to checkpoint44. Will be tagged ecco-branch-mod2.
small changes associated with NonLin_FreeSurf option : * initialization (ini_psurf.F); * dump hFac fields (write_state.F); * avoid unnecessary re-computation (forward_step.F initialise_varia.F calc_surf_dr.F);
Transfering major checkpoint store directive blocks to separate header files. Files are included in the_main_loop (lev3, lev2) and forward_step (lev1).
add options to select where the filters apply in the time-step
o Bugfix in adcommon.h: commen blocks were adjusted to latest common block structure in DYNVARS.h o placed a do_field_blocking_exchanges after dummy_in_stepping to ensure that addummy_in_stepping is preceded by exchanges.
#ifdef autodiff removed for future generalizations.
apply Shapiro filter on T,S before computing Phi_Hyd when stagger time stepping is used.
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
Bringing comments up to data and formatting for document extraction.
"Volume exact-Conservation" modified for non-linear free-surface + Crank-Nickelson
Added package "flt". o pkg/flt o verification/flt_example o visualization of trajectories supplied o works but output not available to testscript
Added some missing conditionals so that fixed/flow passive tracer experiments don't do any dyunamics.
modified to incorporate NonLin-FreeSurf
Moved TR1.h headers between ifdef ALLOW_PASSIVE_TRACER.
Modification for adjoint.
Split dynamics.F into dynamics.F and thermodynamics.F - idea is to make algorithm more transparent??? - probably less efficient - has exchanges at end of thermodynamics.F (which are needed if using staggered time-stepping with the cube OR using AIM.
Moved dummy_in_stepping routine to different place.
Commented out calls for Shapiro and zonal filters. JMC had moved these from the_main_loop.F to the_correction_step.F but had disabled them in the_main_loop.F by overriding CPP options. When PH re-instated forward_step.F the options weren't overridden. Commenting out seems safer.
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
updated using SHAP_FILT_UV_S4 routine (replacing SHAP_FILT_UV)
Further packaging of Shapiro Filters.
See doc/tag-index and doc/notes_c37_adj.txt Preparation for stand-alone autodifferentiability.
separate the state variable "eta" from the 2D solver solution cg2d_x
apply shap_filter to U,V when Crank-Nickelson time step is used
use "zonal_filt_lat < 90." as a running flag for zonal FFT filter
move the IO at the end of a time step
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!
Merged changes from branch "branch-atmos-merge" into MAIN (checkpoint34) - substantial modifications to algorithm sequence (dynamics.F) - packaged OBCS, Shapiro filter, Zonal filter, Atmospheric Physics
Packaged zonal filter code: - Like the Shapiro code, this is quasi-packaged (it uses the main namelist to set it's 3 parameters) - FFTPACK is included in pkg/zonal_filt
Added Shapiro filters. o this is "quasi-" packaged - code resides in pkg/shap_filt - does not use it's own data file or _init methods since it only uses one parameter - the code control is via pkg/shap_filt/SHAP_FILT_OPTIONS.h o two versions are available - original form written for the UV-exact atmosphere - a more general, less efficient form that will work on the cubed sphere The latter use exhcanges inside the routine while the former assumes the overlaps are upto date and are wide enough.
Moved "correction" phase of algorithm from top of dynamcs() to end of forward_step(). - allows deletion of ini_predictor - need convective adjustment of initial conditions for backward compatibility. - exchange fields instead of tendancies, called in forward_step() - encapsulated convective adjustment for convenience: convective_adjustment()
Rescaling of forcing fields done immediately after reading fields.
Change call to load_external_fields -> external_fields_load Tested for exp(0,2,4).
Moved the writing of time-averages to do_the_model_io().
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 |