Parent Directory | Revision Log | Revision Graph
Links to HEAD: | (view) (download) (annotate) |
Links to checkpoint64x: | (view) (download) (annotate) |
Sticky Tag: |
add some documentation for the flags SEAICE_VECTORIZE_LSR and SEAICE_VECTORIZE_LSR_ZEBRA
- remove legacy branch code. - retire SEAICE_GROWTH_LEGACY and SEAICE_CAP_HEFF accordingly.
Replace SEAICE_MULTICATEGORY check with "warning" instead of "error+stop". Update SEAICE_OPTIONS.h for main code and "almost-up-to-date" verification experiments.
removing obsolete ITD-related SEAICE_MULTICATEGORY lines
- add option for SEAICE_LSR to use global (multi-tile) tri-diagonal solver; default: not compiled and not used.
fix 1 comment (in ITD option) + move ITD option just after MULTICATEGORY setting
small fix: move SEAICE_ZETA_SMOOTHREG to where it is potentially useful
Step 1 of merging ice-thickness distribution (ITD) code from MITgcm_contrib/torge/itd/code/ to main repository (author: Torge Martin)
Add CPP flags for JFNK
- switch both SEAICE_GROWTH_LEGACY & SEAICE_DISABLE_HEATCONSFIX to #undef ; - update comments; removed obsolete CPP options.
- remove unpopular check and stop logic for MCPHEE_OCEAN_ICE_HEAT_FLUX MCPHEE_OCEAN_ICE_HEAT_FLUX GRADIENT_MIXED_LAYER_TURBULENCE_FACTOR - just issue a warning that defaults changed.
- final version of turbulent flux params, as agreed at MIT ice meet: SEAICE_mcPheePiston (default is ~ 0.000875) SEAICE_mcPheeTaper (default is 0.) SEAICE_frazilFrac (defualt is 1.) SEAICE_mcPheeStepFunc (default is false) - changes results at trunction error level. -------- - retire short lived SEAICEturbFluxFormula (1,2,3,4) and instead add SEAICE_mcPheeStepFunc (true replaces SEAICEturbFluxFormula=4) - seaice_check.F : -- map old params to SEAICE_mcPheePiston, SEAICE_mcPheeTaper, SEAICE_frazilFrac -- stops to make default change known to common user (that most likely had undef MCPHEE_OCEAN_ICE_HEAT_FLUX and GRADIENT_MIXED_LAYER_TURBULENCE_FACTOR) - SEAICE_OPTIONS.h : define MCPHEE_OCEAN_ICE_HEAT_FLUX and GRADIENT_MIXED_LAYER_TURBULENCE_FACTOR that only serve the purpose of stopping in seaice_check to aknowledge the change of defaults. - seaice_growth.F : use new params. - SEAICE_PARAMS.h, seaice_init_fixed.F, seaice_readparms.F, seaice_summary.F : handle new params.
- simplify McPhee tapering, and allow to use it with SEAICEturbFluxFormula.EQ. 1 or 2, using newly added run time parameter SEAICE_availHeatTaper. - fix d_AREAbyATM, d_AREAbyOCN, d_AREAbyICE diags I broke in r1.148. - add permanent SItflux diag that corresponds to TFLUX but includes ice+snow. Hence SItflux-TFLUX should match the ice+snow heat budget. - allow activation/testing of a fix for suspected missing term in ocn-ice heat budget (to be confirmed). To test this, you want to undef SEAICE_DISABLE_HEATCONSFIX, and then set the run time param SEAICEheatConsFix to .TRUE. that also allows the 'SIaaflux' diagnostic.
- unified freezing point treatment : the old SEAICE_VARIABLE_FREEZING_POINT is now the default, and the old default constant freezing point is recovered with SEAICE_tempFrz0 = -1.96, SEAICE_dTempFrz_dS = 0., - retire SEAICE_freeze that was the old way of specifycing the constant freezing point. - remove ALLOW_SEAICE_FLOODING brackets; run time switch is already there. - bug fix (thanks to M. Losch) : the sublimation term that was missing is now activated. To reproduce old results that had this bug define SEAICE_DISABLE_SUBLIM. - bug fix (silly me) : flooding sign term (seaice_growth.F r 1.149line 1211) was wrong for SIsal0.NE.0. Changes cs32x15 results (see upcoming checkin for detail). - bug fix (thanks to O. Jahn) : area loss for melting got messed up in seaice_growth r149 for legacy branch (no results change). - introduce SEAICE_CAP_SUBLIM : caps sublimation heat flux in solve4temp (code from I. Fenty). - results did not change except for global_ocean.cs32x15, mostly due to the switch to variable freezing point (see upcoming checkin of results for details).
- replace with run time parameters SEAICE_doOpenWaterGrowth, SEAICE_doOpenWaterMelt SEAICE_areaLossFormula, SEAICE_areaGainFormula the now retired CPP switches SEAICE_OCN_MELT_ACT_ON_AREA, SEAICE_DO_OPEN_WATER_GROWTH SEAICE_DO_OPEN_WATER_MELT, FENTY_AREA_EXPANSION_CONTRACTION - added checks : retired CPPs and consistency of run time params - only changes global_ocean.cs32x15 fwd result at truncation level (cgd2d 11) - couple things left to polish (soon) : seaice_summary and d_AREAbyATM, d_AREAbyICE, d_AREAbyOCN diags
pkg/seaice : turbulent flux term specification via run time params. - replace CPP switches with run time switches to facilitate testing - retired CPPs : MCPHEE_OCEAN_ICE_HEAT_FLUX, GRADIENT_MIXED_LAYER_TURBULENCE_FACTOR - added runtime parameter : SEAICEturbFluxFormula - move Mcphee constants to SEAICE_PARAMS.h - seaice_readparms.F : read turbulent flux term params (SEAICEturbFluxFormula; SEAICE_availHeatFrac/Frz, or SEAICE_gamma_t/_frz if apply); remove seaice_summary call (moved to seaice_init_fixed) - seaice_init_fixed.F : set SEAICE_availHeatFrac/Frz depending on SEAICEturbFluxFormula, and seaice_summary call (moved from seaice_readparms) - seaice_summary.F : add missing report of read turbulent flux term set up (and SITRACER). - seaice_check.F : check range; inform and stop if retired CPPs are used (incl. SEAICE_AGE). - seaice_growth.F : unified use of SEAICE_availHeatFrac/Frz, without CPP switch, same computation as before for the different options.
Remove option SEAICE_SOLVE4TEMP_LEGACY
- removal of the old way of seaice age tracer, which is now replaced by particular cases of SITRACER. - retired params : SEAICEadvAge, SEAICEadvSchAge, SEAICEdiffKhAge, IceAgeTrFile. - added to SITRACER : IceAgeTrFile, check pickups, monitor, output.
move #include "CPP_OPTIONS.h" just after #include "PACKAGES_CONFIG.h", outside of the #ifdef ALLOW_THISPKG / #endif block.
More useless code saved for posterity: FV-discretization of the B-grid LSOR solver, turn on with SEAICE_LSRBNEW. This solver also involves a slight re-organization of the calling routine dynsolver, so that B and C-grid code look a a little more alike.
- added SEAICE_HEAT_CONSERV_FIX as undef in SEAICE_OPTIONS.h
add missing "#ifdef ALLOW_SEAICE / #endif" (but always include CPP_OPTIONS.h ; to become new standard)
- generic seaice tracer CPP options (ALLOW_SITRACER & ALLOW_SITRACER_ADVCAP).
- use Ian Fenty's capping formulas for actual ice thickness thoughout EVOLUTION branch. - put treatment pathological case #2) in CPP brackets (ALLOW_AVOID_INFINITESIMAL_AREA, undef by default). - update global_ocean.cs32x15 and 1D_ocean_ice_column results accordingly
Renaming of compile time flag SEAICE_SALINITY to SEAICE_VARIABLE_SALINITY and SEAICE_salinity to SIsalFRAC. Added logical checks for the use of the retired variable names in seaice_readparms and seaice_check. ---------------------------------------------------------------------- Modified Files: pkg/autodiff/autodiff_restore.F pkg/autodiff/autodiff_store.F pkg/obcs/obcs_apply_seaice.F pkg/seaice/SEAICE.h pkg/seaice/SEAICE_OPTIONS.h pkg/seaice/SEAICE_PARAMS.h pkg/seaice/seaice_ad_check_lev1_dir.h pkg/seaice/seaice_advdiff.F pkg/seaice/seaice_check.F pkg/seaice/seaice_diagnostics_state.F pkg/seaice/seaice_growth.F pkg/seaice/seaice_init_varia.F pkg/seaice/seaice_model.F pkg/seaice/seaice_monitor.F pkg/seaice/seaice_output.F pkg/seaice/seaice_read_pickup.F pkg/seaice/seaice_readparms.F pkg/seaice/seaice_write_pickup.F ----------------------------------------------------------------------
remove SEAICE_AGE_VOL
remove tabs
Reverting seaice_growth to v 1.111 in order to have code with exact bit compatibility with MITgcm_contrib/ifenty/Fenty_seaice_thermo_code_merge CPP option SEAICE_OCN_MELT_ACT_ON_AREA removed in v 1.112 is reintroduced runtime flag SEAICEareaFormula is kept but is inactive The code is now consistent with MITgcm_contrib/ifenty/Fenty_seaice_thermo_code_merge/documentation/Seaice_Growth_Forward_and_Adjoint_comparisons.pdf Modified Files: doc/tag-index pkg/seaice/SEAICE_OPTIONS.h pkg/seaice/seaice_diagnostics_init.F pkg/seaice/seaice_growth.F verification/global_ocean.cs32x15/code/SEAICE_OPTIONS.h verification/global_ocean.cs32x15/code_ad/SEAICE_OPTIONS.h
- replace d_AREAbyOCN with d_AREA, which is now split in d_AREAbyOCN/d_AREAbyATM_cover/d_AREAbyATM_open - simplify notations -- d_HEFFbyOCNonICE->d_HEFFbyOCN, d_HEFFbyATMonOCN-> d_HEFFbyATM, etc. - introduce SEAICEareaFormula run time parameter, which selects the recipe for computing the ice cover tendency from effective thickness tendencies. It ranges between 1 and 3: -SEAICEareaFormula=1 default in LEGACY branch -SEAICEareaFormula=2 default in EVOLUTION branch -SEAICEareaFormula=3 Ian Fenty's recipe - remove 'undef SEAICE_OCN_MELT_ACT_ON_AREA' which may now be achieved using SEAICEareaFormula
- for SEAICE_DO_OPEN_WATER_GROWTH, replace Gael's implementation with Ian's. - the new SEAICE_DO_OPEN_WATER_MELT allows open-water air-sea heat fluxes to also melt ice.
- McPhee formula for Ice-Ocean fluxes (provided by Ian Fenty).
changed to "#define SEAICE_GROWTH_LEGACY" (will set it back to #undef once it's tested in one of the verification exp)
move OPTIONS (formerly locally defined) to SEAICE_OPTIONS.h : this includes SEAICE_GROWTH_LEGACY (+ SEAICE_DO_OPEN_WATER_GROWTH & SEAICE_OCN_MELT_ACT_ON_AREA ) and SEAICE_SOLVE4TEMP_LEGACY
free drift complementary pieces.
SEAICE_AGE_VOL: adding option to use volume instead of area for integrating SEAICE_AGE
indenting #ifdef's for readability
- add CPP flag to include clipping of zeta in EVP code; although clipping of zeta is not necessary for EVP and not recommended it was done by default, therefore the flag is defined by default
- add CPP-flag SEAICE_ALLOW_CLIPVELS (undefined by default)
removing climatological forcing option and comments from pkg/seaice
Added SEAICE_CLIM_AIR code, which permits modulation of surface air temperature and humidity over sea ice based on climatological values.
change a few defaults: B-grid flags (not tested in verification, so no effect) turn on flooding by default turn on advection of snow by default
added sea ice age tracer; #define SEAICE_AGE in SEAICE_PARAMS.h
add a new flag SEAICEuseTEM to use a slightly different ice rheology (so-called truncated ellipse, that gets rid of tensile stress); for now this is only available for the C-grid code and also within #ifdef SEAICE_ALLOW_TEM, because this option may slow down the EVP code default is to not use it.
o pkg/seaice: use different time constant for melting (SEAICE_gamma_t) and freezing (SEAICE_gamma_t_frz) ice due to mixed layer temperature
- reformulated availHeat in seaice_growth.F to be independent of AREA
o pkg/seaice: removed SEAICE_FFIELDS.h and seaice_get_forcing.F seaice forcing fields can now be read only through pkg/exf
adding ice salinity HSALT as a prognostic variable
changed/added comments for the SEAICE_TEST_ICE_STRESS_1 and for the EXPLICIT_SSH_SLOPE CPP flags
applied OBCS T/S mask to HEFFM sea ice mask This fixes pkg/seaice OBCS problem but in my opinion this information should eventually be transferred to the GRID.h arrays: hFacC, maskC, etc.
* commented out cap of HICE: it helps keep ice thinner * reintroduced cap of HEFF via MAX_HEFF and SEAICE_CAP_HEFF option
remove ALLOW_SEAICE from exf pkg files and add #define ALLOW_RUNOFF in SEAICE_OPTIONS.h
- case undef SEAICE_EXTERNAL_FORCING & defined SEAICE_EXTERNAL_FLUXES is not working with current implemetation: try to make it clear in SEAICE_OPTIONS.h - limit the number of option combinations: stop if both SEAICE_EXTERNAL_FLUXES & ALLOW_ATM_WIND are #undef. - add corresponding stops in seaice_check.F
add all needed EXF #ifdef and define them in SEAICE_OPTIONS.h if not using EXF
change comments
added "#undef ALLOW_SEAICE_FLOODING" to SEAICE_OPTIONS.h
o fix multi-category seaice: - change cpp flag SEAICE_MULTILEVEL to more meaningful name: SEAICE_MULTICATEGORY - fix short wave heat flux o replace field areaLoc by scalar variable
changes: SEAICE_CGRID is now the default (and allow to use EVP solver)
fix typo
seaice: add an EVP solver following Hunke and Dukowicz (1997) and the documentation of CICE. Turn on by defining SEAICE_ALLOW_EVP in SEAICE_OPTIONS.h and SEAICEuseEVP=.true. in data.seaice. Works only with SEAICE_CGRID defined. Use at own risk.
- add c-grid version of the dynamic solver: + three new routines that are the c-grid substitute lsr, dynsolver and ostres + put a few fields that were local to dynsolver into global common blocks, so that I can move the computation of stresses etc into seaice_lsr (saves coding but may break the adjoint; Patrick, I am sorry!). - replace more hardwired parameters by runtime parameters - add ice masks that mask the rhs of the implicit solvers where there is no ice (commented out in seaice_dynsolver, because i am not sure if this works properly), eventually this should replace the clipping of ice velocities in seaice_dynsolver to +/-40cm/s.
add a cpp-flag to include a simple formula for a salinity depend freezing point of sea water at the surface
o fix mnc flags in pkg/seaice so that they are "owned" by seaice, not mnc -- this mistake was found by JMC and is now corrected
o added seaice_summary.F and removed obsolete ALLOW_SEAICE's from pkg/seaice
o pkg/seaice: some test code for ice-modified ocean stress
updating verification/lab_sea
pkg/seaice option SEAICE_EXTERNAL_FORCING requires pkg/exf
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 Added on-the-fly spatial interpolation capability "USE_EXF_INTERPOLATION" to pkg/exf. - This is a temporary Cartesian-grid hack until the super-duper ESMF coupler becomes available. - See verification/global_with_exf/README for usage example. - Removed obsolete EXFwindOnBgrid and SEAICEwindOnCgrid flags and modified pkg/seaice accordingly. o Bug fix to pkg/ptracers, pkg/generic_advdiff/gad_calc_rhs.F, and pkg/kpp/kpp_transport_ptr.F for dealing with tracer non-local transport term.
checkpoint50g_post o merged with release1_p17 (pkg/seaice and verification/lab_sea) - added SEAICE_MULTILEVEL for 8-category sea-ice thermodynamics - LSR sea-ice dynamic solver moved to SouthWest B-grid location and made the default because of faster convergence than ADI
Merging from release1_p12: o Modifications for using pkg/exf with pkg/seaice - improved description of the various forcing configurations - added basic radiation bulk formulae to pkg/exf - units/sign fix for evap computation in exf_getffields.F - updated verification/global_with_exf/results/output.txt o Added pkg/sbo for computing IERS Special Bureau for the Oceans (SBO) core products, including oceanic mass, center-of-mass, angular, and bottom pressure (see pkg/sbo/README.sbo). o Lower bound for viscosity/diffusivity in pkg/kpp/kpp_routines.F to avoid negative values in shallow regions. - updated verification/natl_box/results/output.txt - updated verification/lab_sea/results/output.txt o MPI gather, scatter: eesupp/src/gather_2d.F and scatter_2d.F o Added useSingleCpuIO option (see PARAMS.h). o Updated useSingleCpuIO option in mdsio_writefield.F to work with multi-field files, e.g., for single-file pickup. o pkg/seaice: - bug fix in growth.F: QNET for no shortwave case - added HeffFile for specifying initial sea-ice thickness - changed SEAICE_EXTERNAL_FLUXES wind stress implementation o Added missing /* */ to CPP comments in pkg/seaice, pkg/exf, kpp_transport_t.F, forward_step.F, and the_main_loop.F o pkg/seaice: - adjoint-friendly modifications - added a SEAICE_WRITE_PICKUP at end of the_model_main.F
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
Merging from release1_p8 branch: o New package: pkg/seaice Sea ice model by D. Menemenlis (JPL) and Jinlun Zhang (Seattle). The sea-ice code is based on Hibler (1979-1980). Two sea-ice dynamic solvers, ADI and LSR, are included. In addition to computing prognostic sea-ice variables and diagnosing the forcing/external data fields that drive the ocean model, SEAICE_MODEL also sets theta to the freezing point under sea-ice. The implied surface heat flux is then stored in variable surfaceTendencyTice, which is needed by KPP package (kpp_calc.F and kpp_transport_t.F) to diagnose surface buoyancy fluxes and for the non-local transport term. Because this call precedes model thermodynamics, temperature under sea-ice may not be "exactly" at the freezing point by the time theta is dumped or time-averaged.
file SEAICE_OPTIONS.h was initially added on branch release1.
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 |