Parent Directory | Revision Log | Revision Graph
Links to HEAD: | (view) (download) (annotate) |
Links to checkpoint36: | (view) (download) (annotate) |
Sticky Tag: |
implement a Crank-Nickelson barotropic time-stepping
recover (after checkpoint35) time average output
remove unused array "rVel"
Corrected comment about call to OBCS_APPLY_W()
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
Modifying store directive.
Corrected store directives; added one ifdef ALLOW_GMREDI.
Added or modified store directives for TAMC. Updates are adopted from ecco_c32_e2.
Rescaling of forcing fields done immediately after reading fields.
Various corrections and additions of store directives for TAMC. Changes of interfaces to packaged GMRedi and KPP. Tested for exp(0,2,4).
The array ConvectCount(...) needs to always be declared becuase it is used by IVDC and the time-averaging package. We should ultimately move this into a common block specific to those routines that use it.
Fixed key computations for TAMC: eliminated ikact, changed location for computation of iikey. (P.H., A.K.)
Packaged KPP and GM/Redi: o moved temporary arrays such as K13, KapGM,... to private common blocks o calls to KPP_CALC and GMREDI_CALC_TENSOR replace KVMIX and CALC_ISOSLOPES. Added call to gradSigma() to calculate density gradients.
Modifications to include TAMC directives, tape key computations and initialisations to make code TAMC compatible. Routines the_model_main.F and initialise_fixed.F are left unchanged for the moment. (P.H.)
Various updates for OBCs and Non-hydrostatic routines. o OBCs now fits into time-stepping properly o div.G has been moved to solve_for_pressure()
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 myIter as an argument to timestep() to allow proper timestepping at myIter=0
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 CPP macro ALLOW_OBCS to include/exclude open boundary code.
Modifications/additions for KPP mixing scheme. Instigated by Dimitri.
Added "freezing" subroutine. This can be viewed as a place-holder holder for a fuller ice model. Currently, this routine simply "caps" the temperatures to above -1.9 Celsius.
Added IMPLICIT NONE in a lot of subroutines. Also corrected the recip_Rhonil bug: we didn't set it in ini_parms.F
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
Partial changes to incoporate atmospheric configuration Minor TAMC compliance changes Included one-layer verification experiment exp0
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.
Changes for new exchange routines which do general tile <-> tile connectivity, variable width overlap regions and provide hooks for shared memory and DMA protocols like Arctic, Memory Channel etc..
Consistent isomorphism changes
Consistent isomorphism changes
Consistent isomorphism changes
Isomorphism consistency changes
Isomorphism consistency changes
Isomorphism consistency changes
Isomorphism consistency changes
Changes to support consistent pressure-height isomorphism
Changes to support r as vertical coordinate
Added diagnostics for KapGM. Added GMmaxval to limit values of KapGM when using the Ri # formula.
Changed the #include at the top from CPP_EEOPTIONS.h to CPP_OPTIONS.h This ought to be done through-out (?) but was necessary in at least the_model_main.F, dynamics.F, ini_parms.F because of the new macro ALLOW_DIAGNOSTICS.
The time-averaging diagnostics has been modified to include averages of "intermediate" quantities that exist only on a tile. We currently only time-average K13, K23 and wVel but these should be usable as a template for other diagnostics. We have now split off these routines into a separate module called diags/. Use of these routines is enabled by the CPP flag ALLOW_DIAGNOSTICS set in model/inc/CPP_OPTIONS.h
Fix for GM/Redi parameterisation: o KapGM is now set to GMkbackground in dynamics() because the TOP_LAYER method wouldn't work in calc_iso_slopes() since it is called from the K >= 2 o This might be a messy fix but it was so simple I couldn't resist it. A better way might have been to call calc_isoslopes() before the K>=2 loop with K=1. Anyway, it works...
Various changes including time-dependant forcing: o logic for controlling external forcing fields now allows for time-dependant forcing: load_external_fields.F o genmake.dec needed a special line for the above file. o theta* and salt* time-stepping algorithm were re-implemented. The 4x4 global configuration has been "double-checked" against CNH's version. However, we do not assume any responsibility for the correctness of this code ... 8-)
Commented out debugging at end
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.
Fixed problems with _RS -> REAL*4 and with reading in intial hydrography
Initialised maskC edge values to 0 to prevent NaN errors
Various corrections: o do_gterm_blocking..() is fixed to work with new time-stepping o CPP_OPTIONS.h now contains #define ALLOW_CD
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()]
Implemented implicit vertical diffusion (tracers only). Involved introducing a "total" diffusivity array (local 3D) calculated by calc_diffusivity(). Made some small changes to time-stepping algorithm. Switched on by setting implicitZdiffusion. (note: *Not* fully tested with topography. But when switched off this does produce identical results)
Swapped the time-stepping algorithm around (just a little bit). We now officially use the predictor-corrector terminology. We make the prediction step at the end of the dynamics() section and store the result in the gUNm1, gVNm1, gTNm1 arrays. The "tricky" part is that at the beginning of the dynamics section, where the "correction" is made, theses arrays must be initialised at the beginning of any run. A new routine init_predictor() does this. This is "all" in preparation for implicit diffusion. Let's hope it's enough...
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).
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.
GM/Redi parameterization. calc_isoslopes() calculates components of Redi tensor. calc_gt() then uses these components in a modified vertical tracer flux. AJA
Changed the descretization of hydrostatic pressure (now barZ(dz)*barZ(rho) ) to conserve potential energy. This was the original discretization but when I (AJA) made the outer K loop I changed the discretization. Sorry.
Moved the "K loop" from timestep() upto dynamics(). dynamics() now contains all K loops (two infact).
Moved the K loops from convect(), find_rho() and calc_ph() up to this level (dynamics).
Further $Id to $Header conversions
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 |