Parent Directory | Revision Log | Revision Graph
Links to HEAD: | (view) (download) (annotate) |
Links to checkpoint66d: | (view) (download) (annotate) |
Sticky Tag: |
- move ALLOW_EDDYPSI block out of DYNVARS.h and merge it into FFIELDS.h - rename uMean,vMean --> uEulerMean,vEulerMean
Add geothermal flux forcing
- call EXTERNAL_FORCING_SURF outside bi,bj loops (in do_oceanic_phys.F), (where external_forcing_adjust was called) and change list of arguments; - merge external_forcing_adjust.F into external_forcing_surf.F - put surface relaxation of SST & SSS in new S/R (forcing_surf_relax.F) which also contains balancing surface relaxation (ALLOW_BALANCE_RELAX, previously in file "balance_relax.F", now removed); remove corresponding arrays in FFIELDS.h.
remove unused forcing field "dQdT" and associated parameter "dQdTFile"
- move addMass common block from DYNVARS.h to FFIELDS.h; - add support to account for frictional heating (3-D field, in FFIELDS.h)
- introduce ALLOW_BALANCE_RELAX which allow the removal of the global mean of relaxation terms by setting balanceThetaClimRelax and balanceSaltClimRelax - disable balanceEmPmR and balanceQnet in the case when useSeaice. This case is now treated appropriately in seaice_growth.F - do_oceanic_physics.F : include EXF_OPTIONS.h to avoid recomputations in the ALLOW_ECCO_EVOLUTION case.
change description of loadedRec (added yesterday)
store index of time-record which is currently loaded
remove tab
o bridging the gap between eddy stress and GM. -> eddyTau is replaced with eddyPsi (eddyTau = f x rho0 x eddyPsi) along with a change in CPP option (now ALLOW_EDDYPSI). -> when using GM w/ GM_AdvForm: The total eddy streamfunction (Psi = eddyPsi + K x Slope) is applied either in the tracer Eq. or in momentum Eq. depending on data.gmredi (intro. GM_InMomAsStress). -> ALLOW_EDDYPSI_CONTROL for estimation purpose. The key modifications are in model/src/taueddy_external_forcing.F pkg/gmredi/gmredi_calc_*F pkg/gmredi/gmredi_*transport.F
Added following comment to FFIELDS.h and to PARAMS.h C NOTE: for backward compatibility EmPmRfile is specified in C m/s when using external_fields_load.F. It is converted C to kg/m2/s by multiplying by rhoConstFresh.
added pkg/salt_plume by gathering code, which were previously spread around various files in model/inc and model/src results remain numerically identical to before, as a first step towards adding more options, etc., to this package
Change EmPmR units, from m/s to kg/m2/s : update description (comments).
Committing An Nguyen's modifications to SALT_PLUME code. This includes addition of a saltPlumeFlux array to FFIELDS and of routine plumefrac.F
in FFIELDS.h: replace #ifndef ALLOW_EXF by #ifndef EXCLUDE_FFIELDS_LOAD and make pLoad & sIceLoad always available (but still only used if ATMOSPHERIC_LOADING is #define).
Split FFIELDS common block to make adcommon, g_common safer
o Fix I/O inconsistency in pkg/rbcs: replace precFloat32 by readBinaryPrec o Remove 3-dim. relaxation code from pkg/exf (now use only pkg/rbcs) o Thanks to Tom Haine for testing!
Adding unfinished 3-dim relaxation code.
Move new lambda fields to FFIELDS.h, and move again fCori to GRID.h.
Adding eddy stress controls a la Ferreira et al.
add saltFlux(+File) forcing capability with periodicExternalForcing
replace surfaceTendency U,V,S,T,Tice by surfaceForcing U,V,S,T,Tice
change Qnet to always be the net heat flux, (+upward).
add sea-ice loading (sIceLoad) as a new forcing field
o SHORTWAVE_HEATING is now independent of "ALLOW_KPP" and "undefined" by default (until a run-time flag is implemented) o Qsw is always declared (but only used if SHORTWAVE_HEATING is defined)
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
change comments about saltflux
o convert all "INCLUDE_EXTERNAL_FORCING_PACKAGE" defines to the more consistent ALLOW_EXF o passed all the basic verification tests on shelley
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
add salt flux to forcing fields (used when salty sea-ice forms or melts)
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
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)
Added pressure loading term and experiment based on Wunsch and Stammer (1997) o new field in FFIELDS.h, etc... o new cpp flag ATMOSPHERIC_LOADING o Changed hFacC to _hFacC in calc_phi_hyd.F o Added SHORTWAVE_HEATING to some files for consistency
Starting to bring comments up to date and format comments for document extraction of "prototypes".
Modifications and additions to enable automatic differentiation. Detailed info's in doc/notes_c37_adj.txt
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!
Fixed confusion about units of forcing arrays in FFIELDS.h namely Fu,Fv,Qnet,Qsw,EmPmR: - Removed verification/natl_box/code/external_fields_scale.F (did not differ from that in model/src) - Changed units of fu,fv,Qnet,Qsw,EmPmR back to proper units (see FFIELDS.h for description) - Scale fu,fv,Qnet,Qsw,EmPmR when used in external_forcing_surf.F, kpp_calc.F and kpp_transport_t.F - Removed model/src/external_fields_scale.F and calls to it - verification/natl_box uses flux data with "atmospheric" sign so a special version of external_fields_load.F is used to change the data as it's read in. This way, the arrays have the right units and signs at all times tha a user could possibly use them.
Rescaling of forcing fields done immediately after reading fields.
Added fields for surface tendency forcings. Documented units, signs and rescaling. Tested for exp(0,2,4).
Implemented new I/O package (mdsio.F). This package does parallel I/O in much the same way as dfile.F used to except it uses "direct access" rather than (f77) unformatted sequential access. Problems with dfile.F package included: o unnecessary memory use (each process had two global sized buffers) o inability to read the files it had written without post-processing o "tiled" files were tiled by process/thread rather than actual tiles o created huge numbers of files with no alternatives Features of the mdsio.F package: o direct-access binary writes o no excessive memory use o ability to read/write from multiple record files o "tiled" files are based on "WRAPPER" tiles so that the number and content of files is independent of the number of threads and/or processes o option to create single "global" files rather than "tiled" files o ability to read both "global" and "tiled" files [Caveat: the tiling of files must match the model tiles] o checkpoints now use a single file per model section ie. one file for the hydrostatic model core, one file for the non-hydrostatic extensions and one file for the C-D extensions o the mid-level I/O routines now is broken into more source files read_write_fld.F supplies basic I/O routines with the same interface as the original I/O package read_write_rec.F supplies I/O routines which allow multiple records write_state.F writes the model state checkpoint.F supplies the read/write checkpoint routines All the example input data has had to be modified to be direct-access. Otherwise only routines that used I/O have been affected and not all of those have been due to the continuity of arguments in the read_write_fld.F routines. What needs to be done? We have to create a suite of conversion utilities for users with old-style data. Also supply the option for using old-style I/O, not just for die-hards but for reading data too extensive to be converted. And more...
After great excitement and confusion we discovered that we didn't have a bug or sign error in the E-P flux. However, we did think it prudent to use a better name for it. EmPpR is now EmPmR and it really is E-P-R!
Introduced time-dependant forcing, loaded and interpolated in load_external_fields.F in a subroutine load_interpolate_forcing(). Control is by one logical and two real variables in PARAMS.h: periodicExternalForcing, externForcingCycle and externForcingPeriod. The code in load_external_fields.F is "customized" so needs to be edited for non-global type runs. We'll tidy it up later.
Fairly coplete 4 degree global intercomparison setup. Includes changes to make convective adjustment and hydrostatic pressure correct as well as IO for climatological datasets
$Id to $Header changes
Initial revision
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 |