Parent Directory | Revision Log | Revision Graph
Links to HEAD: | (view) (download) (annotate) |
Sticky Tag: |
use 'I10' suffix to simplify debug writing of cg2/3d_b/x (similar to cg3d.F, cg3d_ex0.F)
add diagnostics for surface dynamical pressure: match exactly momemtum increment
add run-time parameter to select CG2D solver minimum-residual solution (in case of a poor convergence)
new CG-solver version (_EX0) for disconnected-tiles special case.
- call to CG2D S/R: store and use lowest-residual solution if using cartesian grid + flat bottom (to prevent occasional bad convergence with simple setup)
useRealFreshWaterFlux: remove masking of EmPmP (using maskInC) in external_forcing_surf.F and apply mask directly in S/R SOLVE_FOR_PRESSURE.
refine debugLevel criteria when printing messages
reset to zero RHS (=cg2/3d_b) and cg2/3d_x ouside OB interior region using interior mask "maskInC".
finish merging of nesting code into main code.
- use interior masks (instead of maskH, <- to be remove).
new S/R carved out of solve_for_pressure.F and called before & after CG3D
Change again 3-D solver free-surface RHS term when exactConserv=T: simpler, consistent with exactConserv, and works with implicDiv2Dflow < 1 Affects results of exp. global_ocean.cs32x15.viscA4 & hs94.cs-32x32x5.impIGW.
- explicit time-stepping for part of Non-Hydrostatic pressure gradient - allow to use implicDiv2Flow < 1 with nonHydrostatic - 3-D solver with r* coordinate (for now, only linear free-surf) - add few debug diagnostics.
Add RealFreshWaterFlux in 3-D solver RHS (was there in cg2d_b but missing in cg3d_b)
add Christopher Wolfe's implemetation of the single reduction cg2d (d'Azevedo, Eijkhout, and Romine, 1999) with CPP-flag ALLOW_SRCG and runtime flag useSRCGSolver
Undo modif from Dec 12, 2005 (cvs version v.49), which consisted in removing the Surf. Non-Hydrostatic pressure from the whole column and adding it to Eta, following Casuali, 1999: Only affects 3-D solver initial guess and only if using ExactConserv, but tests did show a degradation of solver convergence. For this reason, decide to disable this piece of code.
-fix S/R type (RL instead of RS) for output file "cg2d_b.[iter]" -add similar output file for cg2d_x, cg3d_b, cg3d_x + debug_stats print
change macros (EXCH & GLOBAL_SUM/MAX) sufix _R4/_R8 to _RS/_RL when applied to _RS/_RL variable
use GLOBAL_SUM_TILE_RL instead of _GLOBAL_SUM_R8
add "AND.fluidIsWater" to useRealFreshWaterFlux if test
ange S/R CALC_DIV_GHAT argument list: add cg3d_b ; remove cell face areas (now local to CALC_DIV_GHAT)
finishing EmPmR unit changes: replace convertEmP2rUnit by mass2rUnit
output cg2d_b to file
Start cleanup of the_main_loop o package all timing stuff (not tested)
left from changes in version 1.49 & 1.51: use recip_Bo for source term (NH part)
start to implement deep-atmosphere and/or anelastic formulation
Fix stupid typos
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
Added performance number based on wallclock time for each timestep using PAPI.
Updates to support PCL performance counters, fix real*4 bug for PAPIS and enhance PAPI counter support (including IPC per timestep output)
1rst implementation of Implicit IGW using the 3-D solver (use3Dsolver=T) and based on the reference stratification
Updated code to provide timing information per timestep to include cases where there is no pressure solve by moving the code to the main loop. Modified the timing in the pressure solver for the case where TAF needs to be fooled. Added support for PAPI summary MFlop/s information per timestep along side the simple (user/system/wallclock) timing. To use PAPI one currently needs to have declared PAPIINC and PAPILIB in the optfile for the include and library linking stings.
make 3.D solver compatible with Free-surface at k > 1 (p-coordinate): compute & store in commom block solver main diagonal element.
add timing report for 3-D solver.
transfert surface NH pressure to eta field (if exactConserv).
put all NH variables (formely in DYNVARS.h & GW.h) in NH_VARS.h
add global-mean PmE to the initial cg2d X-vector ; turned off for now.
remove "baseTime" (no used) from arg. list of DIFF_BASE_MULTIPLE and rename it: DIFFERENT_MULTIPLE
use baseTime as time origin ; DIFF_BASE_MULTIPLE replaces DIFFERENT_MULTIPLE
By compiling with -DTIME_PER_TIMESTEP one gets user, system and wallclock time per timestep for each process in STDOUT.
o every instance of _END_MASTER() has been found and replaced with _END_MASTER( myThid ) in order to satisfy certain picky Sun preprocessors
o cleanup: convert '#ifndef DISABLE_DEBUGMODE"' to '#ifdef ALLOW_DEBUG"'
o updated and tested version of the cd_code package o almost all of the cd_code functionality has been moved into the package but some cleanups (read/write checkpoints) remain
o add a "cd_code" package and update all the verification tests so that they use the new package instead of "INCLUDE_CD_CODE"
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
o included PACKAGES_CONFIG.h in all files where the ALLOW_${PKG_NAME} defines are used o added comments where IF ( use${PKG_NAME} ) statements will probably be needed -- or need to be edited
o introducing integer flag debugLevel o introducing pathname variable mdsioLocalDir for mdsio
o introducing integer flag debugLevel o introducing pathname variable mdsioLocalDir for mdsio
Merging from c51
o reduce the output frequency of cg3d-related stuff to the monitor frequency, analogous to the cg2d-related output.
release1_p14 o Added interpolation routine pkg/exf/new_interp.F for on-the-fly interpolation. Enable with USE_EXF_INTERPOLATION and specify input grids in data.exf o Added direct pressure solver pkg/solver. See pkg/solver/README.directSolver for instructions.
merging c49 and e27
* update timeave pkg for wVel diagnostic ; put convertEmP2rUnit in PARAMS.h
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
Added code to convert surface volume flux (fresh water) into a mass flux when using P coordinates in the ocean (OCEANICP). Note: It assumes you have set rho0=rhoConst=density of fresh water.
o solve_for_pressure : set cg2d_x to zero where OBCS are applied (corresponds to checkpoint45a_post in MAIN branch)
Added new parameter: deltaTfreesurf Previously, the free-surface equation was intergrated forward synchronously with the momentum equations. It is more consistent to use the tracer time-step. This increases the number of iterations required but strengthens the damping. We *SHOULD* make the default time-step equal to the tracer time-step. However, we don't for backward compatibility. At some point in the future we need to change the default behaviour. It turns out that the reason for the "reduced stability" encountered in large-scale runs seems to be related to excess variability in the free surface which in turn happens when the waves aren't damped. Using a longer time-step fixes this.
* reduce cg2d_ output Freq to monitorFreq.
Changes encapsulated by checkpoint43a-release1mods and chkpt44d_post on the main trunk. These are: o added missing EXCLUDE_MONITOR flags o changed "e" to "_d" in gmredi_slope_limit, gmredi_slope_psi (incompatible typ in MIN/MAX expressions caused problems on IBM SP3) o in genmake added variable MAKEDEPEND plus resetting for case SunOS o added timer_stats.c routine for IBM SP3 o removed variables in dynamics o real fresh water flux implemented with non-linear free-surface. o few fix (mask in shap_s2, EmPmR in external_field_load, USE_NATURAL_BCS in solve_for_P); o add arguments myIter & myTime to S/R obcs_calc & solve_for_P o merge of relevant stuff from the ecco-branch: - genmake: removed $S64 overwrite for case SunOS - pkg/exf: update and corrections for field swapping and obcs - pkg/ecco: parameter lists for the_model_main, the_main_loop harmonized between ECCO and MITgcm - pkg/autodiff: added flow directives for obcs, mdsio_gl_slice updated checkpointing_lev... lists for obcs - model/src: minor changes in forward_step, plot_field added directive for divided adjoint in the_main_loop - pkg/mdsio: added mdsio_gl_slice o check parameters & config (chkpt44a_pre,post) o OBC and NonLin_FrSurf. o fix bug in mom_vi_del2uv o select when filters are applied ; add options to zonal_filter (data.zonfilt) o gmredi: fix Pb in the adiabatic form ; add options (.e.g. Bolus advection) o update AIM experiments (NCEP input files) o improve and extend diagnostics (Monitor, TimeAve with NonLin-FrSurf) o added some stuff for AD These were merged with cvs co -r release1 -P MITgcm cd MITgcm cvs update -kk cvs update -j checkpoint43a-release1mods -j chkpt44d_post -d -P -kk
set cg2d_x to zero where OBCS are applied : this avoid large initial cg2d-residual when using OBCS & exactConserv
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.
implement real fresh water flux with non-linear free-surface
o add include FFIELDS.h (needed for USE_NATURAL_OBC) o IF(nonHydrostatic) was missing in an ALLOW_NONHYDROSTATIC bloc o add argument myIter & myTime to S/R routine solve_for_pressure
Bringing comments up to data and formatting for document extraction.
"Volume exact-Conservation" modified for non-linear free-surface + Crank-Nickelson
Moved cg3d_x into DYNVARS.h and renamed it to phi_nh. - cg3d and cg2d now look more similar - output formatted to fit Chris's tastes (I think)
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, ...)
rewrite calc_exact_eta.F to be independant of the 2D solver. allow to filter Velocity uVel,vVel instead of u,v_Star (1rst guess)
Changes to restore/introduce true shared memory (i.e. pure SMP model) support for lat-lon, cartesian and cube. o Threads support restored for global_sum, global_max. Needed COMMON blocks in place of stack variables for work space. o COMMON added for temps that are exchanged shap_filt, solve_for_pressure o exch...template edits to allow multithreaded calling of cube exchanges. Cube exchanges are done single threaded, sequential at the moment and are hard coded for six-tile, one tile per face configuration. o Threading support only tested on Sun SMP (6500) system. o Default is SYSTEM() exists (check_threads.F), and barrier and memsync are used for threaded exchanges (ini_communications_patterns). o Killed K-level plot (ini_masks_etc.F). Overlaps not set in multi-threads (local array), so fails in plot_field(). o Fixed t-ave of phihyd ( DYNAMICS() ). Can only do it for first tile. o Added commented out nTx settings to hs94.cs-32x32x5 eedata. #nTx=2 #nTx=3 #nTx=6 Need to activate for setenv PARALLEL o Multi-threaded pickup is 100% validated. Testing notes o Code passes "testscript" tests. o To get "hs94.cs-32x32x5" to run OK need to patch dynamics.F. Patch is in hs94.cs-32x32x5/code/dynamics.patch. o Multithreading only tested on Sun 6500 SMP for hs94.cs and hs94.128. hs94.128 was OK at c37 but has a problem under multi-threading at pre38 at the moment. o Under Solaris need one of setenv PARALLEL 2 setenv PARALLEL 3 setenv PARALLEL 6 setenv PARALLEL 8 ( hs94.128 only ) - and - setenv STACKSIZE 16384 o Under Solaris f77 need to remove -u from Makefile FOPTS for compiling fftpack.o. Need to declare everything in fftpack or have custom compile options for fftpack.F to fix this.
See doc/tag-index and doc/notes_c37_adj.txt Preparation for stand-alone autodifferentiability.
change CALL CG2D arguments
allow to re-compute eta to conserve exactly the total volume
Modifications and additions to enable automatic differentiation. Detailed info's in doc/notes_c37_adj.txt
Superficial change: moved the printing of residual and iterations up from cg2d() to solve_for_pressure(). This is in preparation for more useful/complete daignostics from the model as a whole.
all potentials (cg2d_x, cg3d_x, phiHyd) have units of P/rho in ocean AND atmos affects 2D and 3D solver (Matrix divided by g) for both atmos and ocean.
separate the state variable "eta" from the 2D solver solution cg2d_x
remove unused CPP_kee
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
Packaged OBCS (open boundary conditions) o source code now in pkg/obcs o controlled by namelist in data.obcs o includes Orlanski radiation condition (in same directory) o affects exp4 and internal_wave
Removed inclusion of cg3d_x in cg2d_b. No change to solution.
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()
Added CPP macro ALLOW_OBCS to include/exclude open boundary code.
Moved the final exchange of pressure (cg2d_x or cg3d_x) from the solve to solve_for_pressure.F so that the adjoint knows whats going on.
Modifications for non-hydrostatic ability + updates for open-boundaries.
Added IMPLICIT NONE in a lot of subroutines. Also corrected the recip_Rhonil bug: we didn't set it in ini_parms.F
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.
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.
$Id to $Header changes
Further $Id to $Header conversions
Imported working release
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 |