Parent Directory | Revision Log | Revision Graph
Links to HEAD: | (view) (download) (annotate) |
Links to checkpoint44f_pre: | (view) (download) (annotate) |
Sticky Tag: |
Removed arrays which are no longer needed.
fix diagnostic of convective adjustment (IVDC) (broken since thermo-/dynamics split)
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.
Re-arranged sequence of operations for Adams-Bashforth o this does not change numbers o this makes it very easy to extract forcing/diffusion out of ABII by changing calling sequence in calc_gt, calc_gs,... Key modifications: o new s/r: ADAMS_BASHFORTH2 gT=3/2*gT-1/2*gTnm1 o changed TIMESTEP_TRACER from gTnm1=t+dt*(3/2*gT-1/2*gTnm1) to gT=T+dt*gT o changed CALC_GT,CALC_GS & CALC_GTR1 to calcuate "gT" defined by new timestep_tracer (ie. including forcing, ABII, N-L F-S, etc...) now calls ADAMS_BASHFORTH2 and FREESURF_RESCALE_G o changed CYCLE_TRACER appropriately T=gT only Other associated mods: o new s/r: FREESURF_RESCALE_G applies non-linear free-surface term this used to be in TIMESTEP_TRACER o added myIter as argument to CALC_GS,CALC_GT,CALC_GTR1
Added method for dumping intermediate local arrays: mdsio_writetile - same as mdsio_writefield except works from inside bi,bj loop mdsio_writelocal - same as mdsio_writetile except works for local arrays write_local_r? - higher-level wrapper for mdsio_writelocal Controlled by diagFreq. Defaults to zero (ie. no dumps) Example given at end of mom_vecinv.F that dumps some local arrays.
Added run-time control of vector-invariant/flux-form momentum eqns.
Re-instated all relevant initialisations.
Moved call to calc_viscosity before k=1,Nr loop.
Modifications related to split into thermodynamics.F, dynamics.F o missing initialisations in dynamics.F added o some fields no longer needed in dynamics/thermodynamics deleted o split of calc_diffusivity.F into calc_viscosity.F (plus split of kpp_calc_diff.F into kpp_calc_visc.F) o Modifications of some store directives for TAF
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.
Extended iMin,jMin range for calc_common_factors, calc_diffusivity.
Missing diag call for uVel.
o Added grdchk package handling o Added passive tracer handling
Add to main branch of o CS atmos with AIM physics o Multi-threaded AIM physics for LatLon and CS tests o Tidied up monitor() output
Missed the IF(debugMode) around DEBUG stuff.
Added a debugMode that uses same statistics stuff as monitor.F Can be disabled with -DEXCLUDE_DEBUGMODE. Turn on at run-time with debugMode=.true. Default is enabled but off.
Merge from branch pre38: o essential mods for cubed sphere o debugged atmosphere, dynamcis + physics (aim) o new packages (mom_vecinv, mom_fluxform, ...)
Modifications/fixes to support TAMC differentiability (mostly missing or wrong directives).
Modifications and additions to enable automatic differentiation. Detailed info's in doc/notes_c37_adj.txt
all potentials (cg2d_x, cg3d_x, phiHyd) have units of P/rho in ocean AND atmos
separate the state variable "eta" from the 2D solver solution cg2d_x change Time-Average routines names (new package)
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 |