Parent Directory | Revision Log | Revision Graph
Links to HEAD: | (view) (download) (annotate) |
Links to branch-atmos-merge-phase4: | (view) (download) (annotate) |
Sticky Tag: |
Included variable surfQswfile for shortwave heating. Change variable names useKPP, useGMRedi, useECCO. Tested for exp(0,2,4).
Moved GM/Redi parameters to private common block. Added a "package" common block which ultimately should be elsewhere.
Added separate initialization routine for pSurf (otherwise known as cg2d_x). This allows easy initial value problem in free surface height (read from file in pSurfInitFile) and helps split up the initializations of "fixed" and "variable" arrays.
Corrected interaction between OBCs and algorithm. The positioning of set_obcs() within the time-stepping sequence is crucial for stable open-boundaries. Forcing the boundaries with time-dependent flow previously led to horrible results...
Added IVDC (Implicit Vertical Diffusion Convection). Also facilitated a "convection counter" that is output through "diags".
Added a parameter "implicitViscosity" to separately control implicit viscosity and diffusion.
Added COS(latitude)^cosPower dependence to viscosity terms. New parameter "cosPower" defaults to 0.0 which removes latitudinal dependence.
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...
Modifications for non-hydrostatic ability + updates for open-boundaries.
o Added "natural BCs" as alternative to "virtual salt flux" o Re-difined precFloat32 and precFloat64 to be 32 and 64 so that their values can be meaningfuly set in the data file o Modified read_write.F to create an exception if readBinaryPrec is not set o Replaced CPP control of viscous BCs with run-time control o Tidied up input-data precision (ie. ini_depths cnh_dbg...) o ini_forcing.F now initialises *all* forcing arrays to zero o Definitively tested verification experiments 0,1,2 and 4 (3 is atmospheric set-up which is in a state of flux)
Implementation of Open Boundaries: o new source code: ini_obcs.F set_obcs.F apply_obcs1.F apply_obcs2.F OBCS.h o modified code at a few points, key changes are in dynamcis.F the_model_main.F and ini_cg2d.F o documentation in OBCS.h and doc/OpenBound.*
Changes to allow for atmospheric integration builds of the code
Changes to support - g77 compilation under Linux - LR(1) form of 64-bit is D or E for constants - Modified adjoint of exch with adjoint variables acuumulated.
Consistent isomorphism changes
Consistent isomorphism chages
Consistent isomorphism changes
Consistent isomorphism changes
Consistent isomorphism changes
Consistent isomorphism changes
Consistent isomorphism changes
Isomorphism consistency changes
Consistent isomorphism changes
Changes for moving from z -> r as a vertical coordinate Required changing r -> recip for reciprocal variable notation.
Changed Z co-ordinate and lopping code: o Z now increases upwards (ie. for the ocean, z<0) This needed changes only in ini_vertical_grid() where zC and zFace are calculated and in ini_masks_etc() where hFacC is calculated using IF's (eg. IF H(i,j,bi,bj).LT.zFace(K) ...). o The lopping code needed a correction to the hydrostatic pressure calculation. o Two new parameters control the lopping: hFacMin - is the lower limit for water fraction in a cell hFacMinDz - is the lower limit for water thickness in lopped cells Both default to 0 so that pure lopping is the default. To force full cells, using continuous bathymetry, set hFacMin=1
Added diagnostics for KapGM. Added GMmaxval to limit values of KapGM when using the Ri # formula.
Added time-averaging (written by Elodie K.). Controlled by parameter taveFreq. taveFreq=0 turns it off.
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
Added code to bring "salt" up-to-date with "theta". One caveat is that implicit diffusion of salt is done with the diffusivity of theta. We'll sort this out later. In explicit mode, diffKzS is used.
Changes to support topography, hydrography and forcing from files
Merge of GM Redi and spherical polar and inplicit diffusion and CD. Everything for a global run is now included, however, still some discrepancies with GM Redi.
Various corrections: o implicitDiffusion was missing from PARAMS.h (obviously forgot to commit) o maskUp in calc_common_fact() is now correct o find_rho() now has the proper "referencing" for "LINEAR" eos-mode [also affected a call from dynamics()]
Further memory saving macros for particular grids
Changes to: o read in coefficients for POLY3 EOS. o find_rho() polynomial evaluation has been factorized. o additional density field needed in calc_iso_slopes() with non-linear EOS. This EOS must use the appropriate version of KNUDSEN to generate the coefficients file (POLY3.COEFFS). C7 and C8 were back to front in all previous versions of the model (compare01).
Changes to support "low" memory mode of operation - Small change to allow _RS -> REAL*4 to work - Added some macros for case where grid variations are a a subset of the general case. e.g. dx constnat or flat bottom
Added flags for turning off momentum equation and/or temperature equation
Added extra IO features - runtime on/off flags - more reporting of configuration
Added changes to support implicit free-surface. - included gBaro a "barotropic" gravity that can be set differently to the g.rhoprime gravity. - discovered and fixed coding error in dynamics loop. Per tile temporaries that needed correct initial values were not being reset for each tile.
Added support for binary IO of model fields for restart and/or postprocessing
GM/Redi parameterization. calc_isoslopes() calculates components of Redi tensor. calc_gt() then uses these components in a modified vertical tracer flux. AJA
Added coefficients for non-linear equation of state (common block PARAMS_EOS_NL). Also moved the tAlpha and sBeta (linear EOS) coefficients into a new PARAMS_EOS_LIN common block.
Further changes to reporting of model configuration on standard output
Improvements to I/O and feedback info.
$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 |