Parent Directory | Revision Log | Revision Graph
Links to HEAD: | (view) (download) (annotate) |
Links to checkpoint47h_post: | (view) (download) (annotate) |
Sticky Tag: |
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
o cleaned up the use of rhoNil and rhoConst. - rhoNil should only appear in the LINEAR equation of state, everywhere else rhoNil is replaced by rhoConst, e.g. find_rho computes rho-rhoConst and the dynamical equations are all divided by rhoConst o introduced new parameter rhoConstFresh, a reference density of fresh water, to remove the fresh water flux's dependence on rhoNil. The default value is 999.8 kg/m^3 o cleanup up external_forcing.F and external_forcing_surf.F - can now be used by both OCEANIC and OCEANICP
o Include a new diagnostic variable phiHydLow for the ocean model - in z-coordinates, it is the bottom pressure anomaly - in p-coordinates, it is the sea surface elevation - in both cases, these variable have global drift, reflecting the mass drift in z-coordinates and the volume drift in p-coordinates - included time averaging for phiHydLow, be aware of the drift! o depth-dependent computation of Bo_surf for pressure coordinates in the ocean (buoyancyRelation='OCEANICP') - requires a new routine (FIND_RHO_SCALAR) to compute density with only Theta, Salinity, and Pressure in the parameter list. This routine is presently contained in find_rho.F. This routine does not give the correct density for 'POLY3', which would be a z-dependent reference density. o cleaned up find_rho - removed obsolete 'eqn' from the parameter list. o added two new verification experiments: gop and goz (4x4 degree global ocean, 15 layers in pressure and height coordinates)
Enable tangent linear (forward mode) gradient checks: o extended active file handling to g_... files o added TANGENT_SIMULATION to theSimulationMode o extended grdchk package accordingly
* Updated adjoint/makefile o removed "_ecco" from names o added/modified forward mode options o added dependent vector option o tried SVD matrix computation (doesn't work; too much memory use by TAF) * Updated flow directives related to FTL * removed global_sum__g.F (not necessary) * initialise forward mode anomalies in ctrl_unpack.F (so far "crude" initialization only). * Added flag ALLOW_TANGENTLINEAR_RUN complememting ALLOW_ADJOINT_RUN * driver routine the_model_main.F needs separate call to FTL routine G_THE_MAIN_LOOP with parameter list identical to THE_MAIN_LOOP (TAF doesn't remove arguments). * added template file tangentlinear_model.F for forward mode.
Changes for structuing protex document.
Bringing comments up to data and formatting for document extraction.
Starting to bring comments up to date and format comments for document extraction of "prototypes".
Added a few re-initialisations for TAF.
o Added grdchk package handling o Added passive tracer handling
See doc/tag-index and doc/notes_c37_adj.txt Preparation for stand-alone autodifferentiability.
Modifications and additions to enable automatic differentiation. Detailed info's in doc/notes_c37_adj.txt
remove "include CG2D.h"
move the IO at the end of a time step
set initial Time & Iteration counter in the_model_main and pass them as argument to the_main_loop
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!
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()
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...
Converted ALLOW_DIAGS to INCLUDE_DIAGNOSTICS_INTERFACE_CODE. This allows the diagnostics I/O to happen for the very last step of the integration. Spotted by C.E.
Changed some erroneous declarations of myCurrentTime (sometimes myTime) from REAL to _RL. This probably was caught before because most people are using -r8 compile option in conjuction with REAL4_IS_SLOW which converts everything to real*8. Spotted by C.E.
Added CPP macro ALLOW_OBCS to include/exclude open boundary code.
Removed some debugging.
Modifications for non-hydrostatic ability + updates for open-boundaries.
Some simple fixes that save a bit of memory. o AVER.h was included even if not be used. o gW, gWnm1 and cg3d_nm1 existed in DYNVARS.h and are only needed in the non-hydrostatic version (which this isn't).
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
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..
Added loads of "timers" to the_model_main(). Should we provide a mechanism to disable them?
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
Changes to make checkpointing work again!
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-)
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.
Added a "final" call to dynamics() in the_model_main() so that there really are nTimeSteps update of U/V/Theta/Salt.
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 structure comments and rearranged code to adhere to clean structure.
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...
Added extra IO features - runtime on/off flags - more reporting of configuration
Added support for binary IO of model fields for restart and/or postprocessing
*** empty log message ***
*** empty log message ***
Minor formatting change
$Id to $Header changes
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 |