Parent Directory | Revision Log | Revision Graph
Links to HEAD: | (view) (download) (annotate) |
Links to checkpoint57a_pre: | (view) (download) (annotate) |
Sticky Tag: |
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
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
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 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
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.
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
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)
* 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).
* need to call UPDATE_SURF_DR even if momStepping=F (RealFreshWater)
Included CPP option ALLOW_AUTODIFF_MONITOR to enable/disable use of adcommon.h/g_common.h
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
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
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
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 |