Parent Directory | Revision Log | Revision Graph
Links to HEAD: | (view) (download) (annotate) |
Links to checkpoint65l: | (view) (download) (annotate) |
Sticky Tag: |
- add useAUTODIFF run time switch.
- move (from ini_forcing.F) initialisation of all arrays in header file FFIELDS.h into new S/R ini_ffields.F ; this fix broken restart (since Nov 2012) with option selectAddFluid=1.
- packages_boot.F : - add useCTRL, useECCO to run time parameters list. - default is true if ALLOW_AUTODIFF, false otherwise. - IF (useECCO) useCAL = .TRUE. - IF (useGrdchk) useCTRL = .TRUE. - do_oceanic_phys.F, packages_check.F, packages_init_fixed.F, packages_init_variables.F, the_main_loop.F : add useECCO switch - forward_step.F, load_fields_driver.F, packages_check.F, packages_init_fixed.F, packages_init_variables.F, the_model_main.F : add useCTRL switch - initialise_varia.F : add ALLOW_CTRL bracket
- ECCO_OPTIONS.h is needed when including ecco_cost.h, ecco.h - AUTODIFF_OPTIONS.h is needed when including tamc.h, tamc_keys.h
- Replace ALLOW_AUTODIFF_TAMC by ALLOW_AUTODIFF (except for tape/storage which are specific to TAF/TAMC).
fix Sigma-Coords initialisation part.
move call to COST_INIT_VARIA out of packages_init_variables.F directly into initialise_varia.F (just after calling PACKAGES_INIT_VARIABLES): this prevents getting cost-funct reset in adinitialise_varia recomputations
rename S/R INI_AUTODIFF to AUTODIFF_INIT_VARIA (but still called from the same place)
remove 2nd set of calls at the top of initialise_varia.F (Adjoint part) related to Non_Lin Free-Surf or Bottom-Control (but not longer necessary).
always call INI_NLFS_VARS (to be sure all SURFACE.h variables are initialised)
- move bi,bj loops inside INTEGR_CONTINUITY ; - call INTEGR_CONTINUITY directly from forward_step.F (previously called from momentum_correction_step.F) - call UPDATE_ETAH from integr_continuity.F and update initialise_varia.F, forward_step.F and pkg/ecco/the_main_loop.F
- for the adjoint, change NonLin-FreeSurf initialisation sequence: fill-in h0Fac from INITIALISE_FIXED and reset hFac to h0Fac in INITIALISE_VARIA ; - except for ALLOW_DEPTH_CONTROL, remove 2nd call to INI_DEPTHS, INI_MASKS_ETC & INI_LINEAR_PHISURF.
o model/src, pkg/autodiff, pkg/ecco, pkg/seaice: alleviate the need for additional 3D tapes when using the non-inear free surface in the adjoint. This is done by adding an 'update' of hfacc etc. to their current value at the beginning of forward_step.F.
Changes to accomodate ALLOW_AUTODIFF_WHTAPEIO.
sigma (and hybrid-sigma) coordinate code for non-linear free-surface
Remove the call to ini_cori in initialise_varia.F (just keep the usual one in initialise_fixed.F). The main reason is this coriolis monitor stuff (related to grid monitor when using MNC) which is not very clean when it's done several times. Also more consistent with coriolis & horizontal grid beeing treated in the same way (ini_grid is not called a 2nd time in initialise_varia).
gather S/R INI_SURF_DR & INI_R_STAR into new S/R INI_NLFS_VARS (in prep for sigma)
- pass modelEnd flag as argument, from forward_step to diagnostics_write - move NEST_CHILD_TRANSP call next to NEST_PARENT_IO_2 (last part of forward_step)
call DO_STATEVARS_TAVE (replace calls to TIMEAVE_STATVARS & PTRACERS_TIMEAVE)
move INI_MIXING & TAUEDDY_INIT_VARIA calls to a more logic place; and update the calling sequence description.
change argument list order of S/R MONITOR
remove unnecessary BARRIER
change macros (EXCH & GLOBAL_SUM/MAX) sufix _R4/_R8 to _RS/_RL when applied to _RS/_RL variable
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
Comment all relevant #ifndef ALLOW_AUTODIFF_TAMC that used to hide exch2 or cubed-sphere specific code (commented via 'cph-exch2')
move calls to MONITOR & DO_THE_MODEL_IO from the_main_loop.F to the end of initialise_varia.F
move call to INI_FORCING from PACKAGES_INIT_VARIABLES to INITIALISE_VARIA (more logical anyway, since it's not a package)
usePickupBeforeC35 no longer supported ; remove this option.
add few calls to BAR_CHECK to check multi-threading barrier synchronization
Modifications for bottom topography control o replace hFacC by _hFacC at various places o replace ALLOW_HFACC_CONTROL by ALLOW_DEPTH_CONTROL o add non-self-adjoint cg2d_nsa o update autodiff support routines o re-initialise hfac after ctrl_depth_ini o works for 5x5 box, doesnt work for global_ocean.90x40x15
o Changes in initialisation needed for NLFS adjoint.
* use flag useOffLine rather than CPP #ifndef ALLOW_OFFLINE * does not skip calls in initialization stage if using OffLine mode
First step for a NLFS adjoint o initially suppress rStar (new flag DISABLE_RSTAR_CODE) o new init. routines for calc_r_star, calc_surf_dr o still need to deal with ini_masks_etc o testreport seemed happy
initialise NH-variables in specific S/R: ini_nh_vars.F
remove unused variables (reduces number of compiler warning)
add a "debug_call" for S/R update_etaH.
use baseTime as time origin ; DIFF_BASE_MULTIPLE replaces DIFFERENT_MULTIPLE
Adding eddy stress controls a la Ferreira et al.
Added some debug_msg() lines to track a bug in obcs/exf
switch btw. 2-level and 3-level checkpointing
o remove all tr1-related code (ALLOW_PASSIVE_TRACER) (adjoint stuff still has some tr1 names, but all use ptracer arrays)
o adding offline package
do not filter initial condition (turn it back to chk54 version).
re-write staggerTimeStep: step forward momentum 1rst and then T,S
Add some timings around fizhi and gridalt calls
Add call to update gridalt mapping every time step
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
o first check-in for the "branch-genmake2" merge o verification suite as run on shelley (gcc 3.2.2): Wed Oct 8 23:42:29 EDT 2003 T S U V G D M c m s m s m s m s E p a R g m m e . m m e . m m e . m m e . N n k u 2 i a a d i a a d i a a d i a a d 2 d e n d n x n . n x n . n x n . n x n . OPTFILE=NONE Y Y Y Y 13 16 16 16 0 16 16 16 16 16 16 16 16 13 12 0 0 pass adjustment.128x64x1 Y Y Y Y 16 16 16 16 0 16 16 16 16 16 16 0 0 16 16 0 0 pass adjustment.cs-32x32x1 Y Y Y Y 16 16 16 16 0 16 16 16 16 16 16 22 0 16 16 22 0 pass adjust_nlfs.cs-32x32x1 Y Y Y Y -- 13 13 16 16 13 13 13 13 16 16 16 16 16 16 16 16 N/O advect_cs Y Y Y Y -- 22 16 16 16 16 16 16 13 16 16 16 16 16 16 16 16 N/O advect_xy Y Y Y Y -- 13 16 13 16 16 16 16 16 16 16 22 16 16 16 16 16 N/O advect_xz Y Y Y Y 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 pass aim.5l_cs Y Y Y Y 14 16 16 16 16 16 16 16 16 13 16 16 16 16 16 13 16 pass aim.5l_Equatorial_Channel Y Y Y Y 16 16 16 16 16 16 16 16 16 16 16 13 16 16 13 13 16 pass aim.5l_LatLon Y Y Y Y 13 16 16 16 16 16 16 16 16 16 13 12 13 13 16 13 16 pass exp0 Y Y Y Y 14 16 16 16 16 16 16 16 22 16 16 16 13 16 16 22 16 pass exp1 Y Y Y Y 13 13 16 13 16 16 16 16 16 13 13 16 16 13 13 13 13 pass exp2 Y Y Y Y 16 16 16 16 16 16 16 16 22 16 16 16 16 16 16 16 16 pass exp4 Y Y Y Y 16 16 16 16 16 16 16 16 16 16 16 22 16 16 16 22 16 pass exp5 Y Y Y Y 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 pass front_relax Y Y Y Y 14 16 16 13 13 16 16 13 13 16 13 13 16 12 13 13 16 pass global_ocean.90x40x15 Y Y Y Y 10 16 16 13 13 16 13 16 16 13 13 13 13 16 16 13 16 FAIL global_ocean.cs32x15 Y Y Y Y 6 11 12 13 13 12 13 16 13 9 9 9 9 10 9 9 11 FAIL global_ocean_pressure Y Y Y Y 14 16 16 13 16 16 16 13 13 13 13 13 16 12 16 13 16 pass global_with_exf Y Y Y Y 14 16 16 16 16 16 16 16 16 11 13 22 13 16 16 9 16 pass hs94.128x64x5 Y Y Y Y 13 16 16 16 16 16 16 16 16 11 16 16 16 13 16 22 13 pass hs94.1x64x5 Y Y Y Y 14 16 16 16 16 16 16 16 16 13 16 13 13 16 16 22 13 pass hs94.cs-32x32x5 Y Y Y Y 10 10 16 13 13 16 16 16 22 16 13 13 13 13 13 22 13 FAIL ideal_2D_oce Y Y Y Y 8 16 16 16 16 16 16 16 16 13 13 8 16 16 16 16 16 FAIL internal_wave Y Y Y Y 14 16 16 16 16 16 16 16 16 13 13 22 13 13 13 22 16 pass inverted_barometer Y Y Y Y 12 16 16 16 16 16 16 16 16 16 13 12 13 13 13 13 13 FAIL lab_sea Y Y Y Y 11 16 16 16 16 16 16 16 13 13 13 12 13 16 13 12 13 FAIL natl_box Y Y Y Y 16 16 16 16 16 16 16 16 22 16 16 16 16 16 16 16 16 pass plume_on_slope Y Y Y Y 13 16 16 16 16 13 16 16 16 16 16 16 16 13 16 16 16 pass solid-body.cs-32x32x1
additions for biogeochemistry packages
minor modifs: remove CALL AIM_INITIALISE from packages_readparms.F set celsius2K (=273.16) and change spelling or comments.
r* coordinate added in #ifdef NONLIN_FRSURF block. (modification to pressure gradient not yet implemented)
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
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
* split calc_exact_eta in 2 S/R : integr_continuity & update_etaH * move wVel computation at the end of the time step, in S/R integr_continuity * create specific S/R to exchange T,S before DYNAMICS (for stagger time step) * update timeave pkg for wVel diagnostic ; put convertEmP2rUnit in PARAMS.h
Moved call to packages_init_varia before call convective_adjustment_ini. Corresponding adjustment of tape init. for TAF.
call to packages_init_variables was shifted to wrong place. Obstructed adjoitn flow of control variables.
Added PTRACERS package This allows an arbitrary number of passive tracers to be integrated forward simultaneously with the dynamicaly model. + Implemented so far: - basic forward algorithm (time-stepping, advection, diffusion, convection) - I/O and checkpointing - GM/Redi *but* using the GM/Redi coefficient of Salt + Not implemented so far: - KPP - OBCS + No specific example supplied (yet) but global_ocean.90x40x15 has the necessary data.ptracer file. Simply use -enable=ptracers and uncomment line in data.pkg. PTRACER01 then reproduces Salt exactly. + This package is disabled by default since it increases storage.
small changes associated with NonLin_FreeSurf option : * initialization (ini_psurf.F); * dump hFac fields (write_state.F); * avoid unnecessary re-computation (forward_step.F initialise_varia.F calc_surf_dr.F);
Preparing adjoint of Held-Suarez: - bugfix for storing in absence of CD code - adding EXACT_CONSERV to AD list - new routine ini_autodiff to add TAMC-specific initialisations - adding Shapiro filter to AD list
Bringing comments up to data and formatting for document extraction.
"Volume exact-Conservation" modified for non-linear free-surface + Crank-Nickelson
Include initialisation of gTracer fields to break dependency for TAF.
modified to incorporate NonLin-FreeSurf
Added diapycnal (diffkr) and isopycanl (kapgm) diffusion to set of control variables.
Added a few re-initialisations for TAF.
o Extracted core part of the_main_loop and re-created forward_step N.B.: Time-dependent part of cost function should remain in the_main_loop (or contributions must be stored) o Added some parameter recomputations of nIter0
o Added grdchk package handling o Added passive tracer handling
Merge from branch pre38: o essential mods for cubed sphere o debugged atmosphere, dynamcis + physics (aim) o new packages (mom_vecinv, mom_fluxform, ...)
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
change Time-Average routine names (new package)
allow to restart from an older(<ckp35) pickup_file by removing a Commented CALL
recover (after checkpoint35) time average output
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
Rescaling of forcing fields done immediately after reading fields.
Rearranged for packages routines; calls to packages_readparms initialise_fixed.F packages_init initialise_varia.F Tested for exp(0,2,4)
Inserted calls to GMREDI_init and KPP_init as part of packaging effort.
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()
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 |