/[MITgcm]/MITgcm/pkg/seaice/seaice_solve4temp.F
ViewVC logotype

Log of /MITgcm/pkg/seaice/seaice_solve4temp.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Links to HEAD: (view) (download) (annotate)
Links to checkpoint65b: (view) (download) (annotate)
Sticky Tag:

Revision 1.36 - (view) (download) (annotate) - [select for diffs]
Mon Apr 28 11:50:33 2014 UTC (10 years ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint64w, checkpoint64x, checkpoint64y, checkpoint64z, checkpoint65, checkpoint65a, checkpoint65b, checkpoint65c, checkpoint65d, checkpoint65e, checkpoint65f
Changes since 1.35: +2 -2 lines
Diff to previous 1.35
adjust a comment


Revision 1.35 - (view) (download) (annotate) - [select for diffs]
Tue Mar 6 01:28:11 2012 UTC (12 years, 2 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint63k, checkpoint63l, checkpoint63m, checkpoint63n, checkpoint63o, checkpoint63p, checkpoint63q, checkpoint63r, checkpoint63s, checkpoint64, checkpoint64a, checkpoint64b, checkpoint64c, checkpoint64d, checkpoint64e, checkpoint64f, checkpoint64g, checkpoint64h, checkpoint64i, checkpoint64j, checkpoint64k, checkpoint64l, checkpoint64m, checkpoint64n, checkpoint64o, checkpoint64p, checkpoint64q, checkpoint64r, checkpoint64s, checkpoint64t, checkpoint64u, checkpoint64v
Changes since 1.34: +6 -4 lines
Diff to previous 1.34
full initialisation of all output arrays


Revision 1.34 - (view) (download) (annotate) - [select for diffs]
Mon Mar 5 15:21:45 2012 UTC (12 years, 2 months ago) by gforget
Branch: MAIN
Changes since 1.33: +13 -10 lines
Diff to previous 1.33
- merging SEAICE_MULTICATEGORY define and undef cases. Now the same code is compiled either
  way, and is tested in all exps (multidim was only tested in lab_sea ad before).
- cosmetic change to prepare for future addition of ITD. no change to results. no defaults change.
- by lack of adequate verification experiments, I further used custom versions of
  global_ocean.cs32x15 to test multicat or not, with pickup or not. All should be correct.

- details :
  - added SEAICE_multDim run time param to be able to switch from single to multi cat.
  - "ifdef SEAICE_MULTICATEGORY" switches are replaced with "IF (SEAICE_multDim.GT.1) THEN".
  - "DO IT=1,MULTDIM" is replaced with "DO IT=1,SEAICE_multDim" in seaice_growth.F. For pickups and
    initializations I kept full loops (did not want to mess with the somewhat funky TICE/TICES pickup logic).
  - homogeneize seaice_growth names (heffActualP->heffActualMult and latentHeatFluxMaxP->latentHeatFluxMaxMult).
  - in growth, add extra MULTDIM dimension in all relevant local fields (needed to simplify logic, and get taf to behave).
  - clean-up growth/solve4temp interface by adding ticeInMult (TSURFin entering solve4etmp)
  and ticeOutMult (TSURFout leaving solve4temp). update seaice_solve4temp accordingly.
  - avoid recomputations (added store directives and clear logic of solve4temp input/output).


Revision 1.33 - (view) (download) (annotate) - [select for diffs]
Fri Mar 2 18:56:06 2012 UTC (12 years, 2 months ago) by heimbach
Branch: MAIN
Changes since 1.32: +9 -1 lines
Diff to previous 1.32
Prepare adjoint of SITRACER


Revision 1.32 - (view) (download) (annotate) - [select for diffs]
Wed Feb 15 00:47:33 2012 UTC (12 years, 3 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint63j
Changes since 1.31: +4 -3 lines
Diff to previous 1.31
fix previous modif (avoid division by zero)


Revision 1.31 - (view) (download) (annotate) - [select for diffs]
Tue Feb 14 14:52:08 2012 UTC (12 years, 3 months ago) by mlosch
Branch: MAIN
Changes since 1.30: +4 -3 lines
Diff to previous 1.30
remove one divisions by HCUT within a loop, without changing the results


Revision 1.30 - (view) (download) (annotate) - [select for diffs]
Sat Feb 11 03:35:01 2012 UTC (12 years, 3 months ago) by gforget
Branch: MAIN
Changes since 1.29: +25 -35 lines
Diff to previous 1.29
- 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).


Revision 1.29 - (view) (download) (annotate) - [select for diffs]
Tue Feb 7 14:01:10 2012 UTC (12 years, 3 months ago) by mlosch
Branch: MAIN
Changes since 1.28: +1 -3 lines
Diff to previous 1.28
remove the STOP statement (move to seaice_check.F)


Revision 1.28 - (view) (download) (annotate) - [select for diffs]
Mon Feb 6 23:36:40 2012 UTC (12 years, 3 months ago) by jmc
Branch: MAIN
Changes since 1.27: +1 -4 lines
Diff to previous 1.27
fix previous modif


Revision 1.27 - (view) (download) (annotate) - [select for diffs]
Mon Feb 6 19:19:58 2012 UTC (12 years, 3 months ago) by jmc
Branch: MAIN
Changes since 1.26: +4 -21 lines
Diff to previous 1.26
- remove un-used parameters LAD & MAX_TICE ; add new run-time parameters:
  useMaykutSatVapPoly (default=F), postSolvTempIter (default=2) and
  SEAICE_wetAlbTemp (default=-1e-3).
Temporary: change default (useMaykutSatVapPoly=T, postSolvTempIter=0)
  when SEAICE_SOLVE4TEMP_LEGACY is defined or (SEAICE_wetAlbTemp=0.,
  SEAICE_snowThick=0.) if SOLVE4TEMP_LEGACY is undef.


Revision 1.26 - (view) (download) (annotate) - [select for diffs]
Sun Feb 5 21:06:54 2012 UTC (12 years, 3 months ago) by jmc
Branch: MAIN
Changes since 1.25: +48 -115 lines
Diff to previous 1.25
SOLVE4TEMP_LEGACY:
- remove LEGACY code for solving for tsurf (A1,A2,A3) but maintain the same
  algorithm (same choice: useMaykutPolySatVap=T, postSolvTempIter=0);
  difference in results only due to machine truncation.
- remove MAX_TICE (tsurf is always =< TMELT anyway); keep MIN_TICE if using
  MaykutPolySatVap; keep MIN_LWDOWN.
- adapt SEAICE_MODIFY_GROWTH_ADJ code (untested) to non-legacy formulation.


Revision 1.25 - (view) (download) (annotate) - [select for diffs]
Thu Feb 2 19:18:52 2012 UTC (12 years, 3 months ago) by jmc
Branch: MAIN
Changes since 1.24: +99 -67 lines
Diff to previous 1.24
keeping results unchanged:
- add 2 future run-time params to select which saturation vapor pressure
  formula is used and how post-iteration fluxes are set.
- Temporary set these 2 params according to option SOLVE4TEMP_LEGACY;
- New piece of code (not used) to update surf. atmos. heat flux F_ia using
  the linearized expression to stay consistent with tsurf finding.


Revision 1.24 - (view) (download) (annotate) - [select for diffs]
Wed Feb 1 23:58:09 2012 UTC (12 years, 3 months ago) by jmc
Branch: MAIN
Changes since 1.23: +52 -41 lines
Diff to previous 1.23
- remove from F_ia (and it's derivative dFiDTs1) the contribution of
  conductive heat flux F_c , which is added explicitly when updating tsurf
  as solution of: Fc = Fia + d/dT(Fia - Fc) *delta.tsurf
  so that now F_ia has a consistent meaning through the entire routine.
- add two 2-D arrays (dFia_dTs & dqh_dTs) in prep for next modif.


Revision 1.23 - (view) (download) (annotate) - [select for diffs]
Tue Jan 31 15:57:17 2012 UTC (12 years, 3 months ago) by jmc
Branch: MAIN
Changes since 1.22: +11 -12 lines
Diff to previous 1.22
ifdef SOLVE4TEMP_LEGACY part:
- replace hard coded 273.16 (=previous value of celsius2K) by celsius2K
- replace hard coded 271.20 (=previous value of celsius2K + default
  value of SEAICE_freeze) by celsius2K+SEAICE_freeze so that seawater
  freezing temp is consistent with value in seaice_growth.F


Revision 1.22 - (view) (download) (annotate) - [select for diffs]
Mon Jan 30 20:51:43 2012 UTC (12 years, 3 months ago) by jmc
Branch: MAIN
Changes since 1.21: +14 -12 lines
Diff to previous 1.21
more editing/cleaning with no effect on results: change sign of F_c, +=upward:
LEGACY defined: F_c +=up is exactly what B(i,j) was in earlier version;
LEGACY undef: consitent with all the F_* (I don't want to be impolite) fluxes
              which are positive upward (and are now documented).


Revision 1.21 - (view) (download) (annotate) - [select for diffs]
Mon Jan 30 03:38:20 2012 UTC (12 years, 3 months ago) by jmc
Branch: MAIN
Changes since 1.20: +184 -280 lines
Diff to previous 1.20
lots of editing/cleaning with no effect on results:
- compress debug print lines (Should not use "print" anyway,
  since it can be messy when MPI procs cut printed msg of each other)
- remove arrays:
    F_io_net <- moved within #ifdef SEAICE_DEBUG / #endif
    F_ia_net <- moved within #ifdef SEAICE_DEBUG / #endif
- document sign of arg: IcePenetSW;
- document arrays (& sign) "F_c" & "F_lh";
- merge the 2 versions (def/undef LEGACY) of albedo and the 2 versions i
  of short-wave heating part.
#undef SEAICE_SOLVE4TEMP_LEGACY :
- remove arrays:
  IcePenetSWFluxFrac (-> single _RL variable penetSWFrac)
    F_lwd <- reduce number of copies from 3 (LWDOWN,lwdownLoc,F_lwd) to 2
             and sign of F_lwd was not documented ;
    F_swi <- was identical to AbsorbedSWFlux
- change sign of AbsorbedSWFlux to reflect what the name means i.e.,
  shortwave radiative flux convergence in seaice+snow
- each time "flux convergence" was used, should have been understood
  as "flux divergence" ; fixed.
#define SEAICE_SOLVE4TEMP_LEGACY :
- change sign of A2 ; document A1,A2,A3 arrays;
- make more clear (dqhice_dTice=0) that derivative of latent-heat flux
  versus tsurf is ignored (this is a bug).


Revision 1.20 - (view) (download) (annotate) - [select for diffs]
Wed Dec 28 20:54:28 2011 UTC (12 years, 4 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint63h, checkpoint63i
Changes since 1.19: +1 -2 lines
Diff to previous 1.19
remove unused variables


Revision 1.19 - (view) (download) (annotate) - [select for diffs]
Sat Dec 24 18:37:18 2011 UTC (12 years, 4 months ago) by jmc
Branch: MAIN
Changes since 1.18: +9 -10 lines
Diff to previous 1.18
allow to compile with exf options ALLOW_ATM_TEMP or ALLOW_DOWNWARD_RADIATION
 undefined.


Revision 1.18 - (view) (download) (annotate) - [select for diffs]
Thu Dec 22 12:35:02 2011 UTC (12 years, 4 months ago) by mlosch
Branch: MAIN
Changes since 1.17: +32 -16 lines
Diff to previous 1.17
the exf-flag EXF_LWDOWN_WITH_EMISSIVITY now gets rid off the
hard-wired emissivities of 0.97 associated with lwdownloc until we
agree on how to handle this bug properly, but I need a solution now.


Revision 1.17 - (view) (download) (annotate) - [select for diffs]
Mon Dec 19 16:30:09 2011 UTC (12 years, 4 months ago) by mlosch
Branch: MAIN
Changes since 1.16: +3 -3 lines
Diff to previous 1.16
make SEAICE_emissivity what the name implies (and not
emissivity*BoltzmannConstant), this is just a first step towards
sorting out emissivity and long wave radiation


Revision 1.16 - (view) (download) (annotate) - [select for diffs]
Wed Jun 29 21:39:06 2011 UTC (12 years, 10 months ago) by ifenty
Branch: MAIN
CVS Tags: checkpoint63, checkpoint63a, checkpoint63b, checkpoint63c, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint63g
Changes since 1.15: +58 -17 lines
Diff to previous 1.15
seaice package/sublimation treatment:  added a cap on the latent heat flux over sea ice
such that the amount of sublimation over one time step cannot exceed the amount of
mass in the sea ice and snow.  Works for the non-legacy version of seaice_solve4temp.

Added diagnostics SImaxLHF, SIactLHF (max and actual latent heat flux) and
SIrsSubl (residual freshwater flux following removal of ice and snow)


 ----------------------------------------------------------------------
 Modified Files:
 	seaice_diagnostics_init.F seaice_growth.F seaice_solve4temp.F
 ----------------------------------------------------------------------


Revision 1.15 - (view) (download) (annotate) - [select for diffs]
Sun Jun 19 23:01:54 2011 UTC (12 years, 10 months ago) by ifenty
Branch: MAIN
CVS Tags: checkpoint62z
Changes since 1.14: +4 -3 lines
Diff to previous 1.14
Removed redundant minimum ice thickness check (hice_tmp = max(HICE_ACTUAL, 0.05)) in
the evolution branch now that seaice_growth does the regularization (SEAICE_hice_reg).
Removing that line doesn't change any verification results.


Revision 1.14 - (view) (download) (annotate) - [select for diffs]
Sun Jun 19 02:31:40 2011 UTC (12 years, 10 months ago) by ifenty
Branch: MAIN
Changes since 1.13: +8 -3 lines
Diff to previous 1.13
Minor changes to seaice package.

1) Retired old variables (A22, SEAICE_lhsublim, areaMax, areaMin, hiceMin) and
   added some new ones (SEAICE_area_reg, SEAICE_hice_reg, SEAICE_area_floor)

  - Differentiated "regularization variables" from "floor variables"
    * areaMin became SEAICE_area_reg (old A22) and SEAICE_area_floor
    * hiceMin became SEAICE_hice_reg (old hiceMin)
     (with _reg meaning regularization variable)

  - SEAICE_lhSublim becomes lhSublim, the sum of SEAICE_lhEvap and SEAICE_lhFusion
    so as to ensure energy conservation when going between phases

  - A22 was not used anywhere

2) Changed regularization procedure for heffActual and hsnowActual to ensure
   well-boundedness and smooth adjoint in seaice_growth.F

3) Fixed a bug where seaice_solve4temp would not recognize ice-free grid cells
   because the old regularization always set heffActual >= 0.05 cm

4) Changed the model so that the default behavior is to put a small (10^-5) "floor"
   on AREA when HEFF > 0.
   - went from requiring ALLOW_PRECLUDE_INFINITESIMAL_AREA to be defined to
     requiring that DISABLE_AREA_FLOOR *not* be defined

 Modified Files:
 	SEAICE_PARAMS.h seaice_check.F seaice_growth.F
 	seaice_readparms.F seaice_solve4temp.F seaice_summary.F


Revision 1.13 - (view) (download) (annotate) - [select for diffs]
Sat Mar 5 18:06:06 2011 UTC (13 years, 2 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint62u, checkpoint62v, checkpoint62w, checkpoint62x, checkpoint62y
Changes since 1.12: +3 -2 lines
Diff to previous 1.12
Start a seaice tracer-like code but for now confinded to ice age


Revision 1.12 - (view) (download) (annotate) - [select for diffs]
Sun Feb 6 21:37:45 2011 UTC (13 years, 3 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint62s, checkpoint62t
Changes since 1.11: +7 -8 lines
Diff to previous 1.11
remove SEAICE_ALLOW_TD_IF pieces of code


Revision 1.11 - (view) (download) (annotate) - [select for diffs]
Sat Dec 25 00:47:26 2010 UTC (13 years, 4 months ago) by gforget
Branch: MAIN
CVS Tags: checkpoint62q, checkpoint62r
Changes since 1.10: +5 -4 lines
Diff to previous 1.10
-avoiding recomputations.


Revision 1.10 - (view) (download) (annotate) - [select for diffs]
Thu Dec 16 08:31:35 2010 UTC (13 years, 5 months ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint62p
Changes since 1.9: +17 -10 lines
Diff to previous 1.9
compute and pass sublimation mass flux up to caller (seaice_growth)


Revision 1.9 - (view) (download) (annotate) - [select for diffs]
Mon Nov 29 23:21:09 2010 UTC (13 years, 5 months ago) by gforget
Branch: MAIN
Changes since 1.8: +20 -1 lines
Diff to previous 1.8
- adjoint related changes.
1) bring store directives up to date.
2) allow adjoint approximations (see SEAICEadjMODE).
3) replace a pair of if/then/else with min/max expressions.


Revision 1.8 - (view) (download) (annotate) - [select for diffs]
Thu Nov 25 16:42:33 2010 UTC (13 years, 5 months ago) by mlosch
Branch: MAIN
Changes since 1.7: +14 -1 lines
Diff to previous 1.7
 explicitly store tsurfloc in seaice_solve4temp.F to avoid
 unnecessary copying in adjoint code, requires new parameter NMAX_ITER


Revision 1.7 - (view) (download) (annotate) - [select for diffs]
Fri Nov 19 16:21:08 2010 UTC (13 years, 5 months ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint62o
Changes since 1.6: +3 -3 lines
Diff to previous 1.6
  - replace irritating parameters SEAICE_latentWater/Ice and SEAICE_sensHeat
    by something more sensible (parameters that are what their name implies)
  - change some defaults, so that by default exf-parameters are used for
    things like rhoAir, cpAir,latent/sensible heat parameters


Revision 1.6 - (view) (download) (annotate) - [select for diffs]
Fri Oct 29 00:11:20 2010 UTC (13 years, 6 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint62n
Changes since 1.5: +77 -78 lines
Diff to previous 1.5
move OPTIONS (formerly locally defined) to SEAICE_OPTIONS.h


Revision 1.5 - (view) (download) (annotate) - [select for diffs]
Sun Oct 17 09:51:05 2010 UTC (13 years, 7 months ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint62m
Changes since 1.4: +356 -328 lines
Diff to previous 1.4
 vectorize seaice_solve4temp.F
  - move iterations loops outside of i/j-loops
  - requires 2D arrays for TB and effConduct
  - add 2D iceOrNot to replace HICE_ACTUAL.GT.0, as HICE_ACTUAL is
    modified in this routine
  - a little bit of clean up, adjusting indentation, etc.
  - replaced a few TEN**a by exp(a*log(10.)) in new code for better
    performance and '**TWO' by '**2' (because TWO is a float),
    replaced ONE, ZERO


Revision 1.4 - (view) (download) (annotate) - [select for diffs]
Mon Sep 27 14:57:42 2010 UTC (13 years, 7 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint62l
Changes since 1.3: +4 -1 lines
Diff to previous 1.3
set kSrf=1 (variable freezing point)


Revision 1.3 - (view) (download) (annotate) - [select for diffs]
Sun Sep 26 13:46:28 2010 UTC (13 years, 7 months ago) by jmc
Branch: MAIN
Changes since 1.2: +65 -65 lines
Diff to previous 1.2
-fix the USE_ORIGINAL_SBI version (for variable freezing point);
-use "celsius2K" in SEAICE_VARIABLE_FREEZING_POINT and in new
 version (USE_ORIGINAL_SBI undef);
-clean-up unused variables;


Revision 1.2 - (view) (download) (annotate) - [select for diffs]
Fri Sep 24 13:52:07 2010 UTC (13 years, 7 months ago) by jmc
Branch: MAIN
Changes since 1.1: +42 -43 lines
Diff to previous 1.1
fix the USE_ORIGINAL_SBI version: was getting NaNs in F_ia_net
 (because of uninitialise arrays: F_lwd,F_swi,F_lwu,F_sens & F_lh)
when using open64+trapuv on aces cluster.


Revision 1.1 - (view) (download) (annotate) - [select for diffs]
Thu Sep 23 22:46:24 2010 UTC (13 years, 7 months ago) by jmc
Branch: MAIN
new S/R seaice_solve4temp.F: this is the merged version of Ian Fenty
code (seaice_budget_ice_if.F) which enable to recover old standard
code (seaice_budget_ice.F) when option USE_ORIGINAL_SBI is defined.


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.

  Diffs between and
  Type of Diff should be a

Sort log by:

  ViewVC Help
Powered by ViewVC 1.1.22