Changeset 9604
- Timestamp:
- 2018-05-18T09:53:22+02:00 (6 years ago)
- Location:
- NEMO/trunk/src/ICE
- Files:
-
- 31 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/ICE/ice.F90
r9598 r9604 4 4 !! sea-ice: ice variables defined in memory 5 5 !!====================================================================== 6 !! History : 3.0 ! 2008-03 (M. Vancoppenolle) original code LIM-37 !! 4.0 ! 2011-02 (G. Madec) dynamical allocation6 !! History : 3.0 ! 2008-03 (M. Vancoppenolle) Original code 7 !! 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 8 8 !!---------------------------------------------------------------------- 9 9 #if defined key_si3 … … 19 19 PUBLIC ice_alloc ! called by icestp.F90 20 20 21 !!======================================================================22 !! LIM3 by the use of sweat, agile fingers and sometimes brain juice,23 !! was developed in Louvain-la-Neuve by :24 !! * Martin Vancoppenolle (UCL-ASTR, Belgium)25 !! * Sylvain Bouillon (UCL-ASTR, Belgium)26 !! * Miguel Angel Morales Maqueda (NOC-L, UK)27 !!28 !! Based on extremely valuable earlier work by29 !! * Thierry Fichefet30 !! * Hugues Goosse31 !!32 !! The following persons also contributed to the code in various ways33 !! * Gurvan Madec, Claude Talandier, Christian Ethe (LOCEAN, France)34 !! * Xavier Fettweis (UCL-ASTR), Ralph Timmermann (AWI, Germany)35 !! * Bill Lipscomb (LANL), Cecilia Bitz (UWa)36 !! and Elisabeth Hunke (LANL), USA.37 !!38 !! For more info, the interested user is kindly invited to consult the following references39 !! For model description and validation :40 !! * Vancoppenolle et al., Ocean Modelling, 2008a.41 !! * Vancoppenolle et al., Ocean Modelling, 2008b.42 !! For a specific description of EVP :43 !! * Bouillon et al., Ocean Modelling 2009.44 !!45 !! Or the reference manual, that should be available by 201146 21 !!====================================================================== 47 22 !! | … … 62 37 !! These are the variables that are either physically more | 63 38 !! meaningful and/or used in ice thermodynamics | 64 !! |65 !! Routines in icevar.F90 perform conversions |66 !! - ice_var_glo2eqv : from global to equivalent variables |67 !! - ice_var_eqv2glo : from equivalent to global variables |68 !! |69 !! For various purposes, the sea ice state variables have sometimes |70 !! to be aggregated over all ice thickness categories. This operation |71 !! is done in : |72 !! - ice_var_agg |73 !! |74 !! in icestp.F90, the routines that compute the changes in the ice |75 !! state variables are called |76 !! - ice_rhg : ice dynamics |77 !! - ice_adv : ice advection |78 !! - ice_rdgrft : ice ridging and rafting |79 !! - ice_thd : ice halo-thermodynamics and creation of new ice |80 !! - ice_itd : thermodynamic changes in ice thickness distribution |81 !! |82 !! See the associated routines for more information |83 39 !! | 84 40 !! List of ice state variables : | … … 249 205 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: stress1_i, stress2_i, stress12_i !: 1st, 2nd & diagonal stress tensor element 250 206 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: delta_i !: ice rheology elta factor (Flato & Hibler 95) [s-1] 251 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: divu_i !: Divergence of the velocity field [s-1]252 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: shear_i !: Shear of the velocity field [s-1]207 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: divu_i !: Divergence of the velocity field [s-1] 208 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: shear_i !: Shear of the velocity field [s-1] 253 209 ! 254 210 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: t_bo !: Sea-Ice bottom temperature [Kelvin] … … 257 213 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fhld !: heat flux from the lead used for bottom melting 258 214 259 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_snw !: snow-ocean mass exchange [kg.m-2.s-1]215 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_snw !: snow-ocean mass exchange [kg.m-2.s-1] 260 216 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_snw_sni !: snow ice growth component of wfx_snw [kg.m-2.s-1] 261 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_snw_sum !: surface melt component of wfx_snw [kg.m-2.s-1]262 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_pnd !: melt pond-ocean mass exchange [kg.m-2.s-1]263 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_spr !: snow precipitation on ice [kg.m-2.s-1]264 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_sub !: sublimation of snow/ice [kg.m-2.s-1]265 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_snw_sub !: snow sublimation [kg.m-2.s-1]266 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_ice_sub !: ice sublimation [kg.m-2.s-1]267 268 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_snw_dyn !: dynamical component of wfx_snw [kg.m-2.s-1]217 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_snw_sum !: surface melt component of wfx_snw [kg.m-2.s-1] 218 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_pnd !: melt pond-ocean mass exchange [kg.m-2.s-1] 219 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_spr !: snow precipitation on ice [kg.m-2.s-1] 220 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_sub !: sublimation of snow/ice [kg.m-2.s-1] 221 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_snw_sub !: snow sublimation [kg.m-2.s-1] 222 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_ice_sub !: ice sublimation [kg.m-2.s-1] 223 224 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_snw_dyn !: dynamical component of wfx_snw [kg.m-2.s-1] 269 225 270 226 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_ice !: ice-ocean mass exchange [kg.m-2.s-1] … … 278 234 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_res !: residual component of wfx_ice [kg.m-2.s-1] 279 235 280 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: afx_tot !: ice concentration tendency (total) 236 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: afx_tot !: ice concentration tendency (total) [s-1] 281 237 282 238 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sfx_bog !: salt flux due to ice growth/melt [PSU/m2/s] … … 292 248 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sfx_sub !: salt flux due to ice sublimation 293 249 294 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_bog !: total heat flux causing bottom ice growth [W.m-2]295 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_bom !: total heat flux causing bottom ice melt [W.m-2]296 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_sum !: total heat flux causing surface ice melt [W.m-2]297 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_opw !: total heat flux causing open water ice formation [W.m-2]298 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_dif !: total heat flux causing Temp change in the ice [W.m-2]299 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_snw !: heat flux for snow melt [W.m-2]250 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_bog !: total heat flux causing bottom ice growth [W.m-2] 251 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_bom !: total heat flux causing bottom ice melt [W.m-2] 252 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_sum !: total heat flux causing surface ice melt [W.m-2] 253 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_opw !: total heat flux causing open water ice formation [W.m-2] 254 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_dif !: total heat flux causing Temp change in the ice [W.m-2] 255 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_snw !: heat flux for snow melt [W.m-2] 300 256 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_err_dif !: heat flux remaining due to change in non-solar flux [W.m-2] 301 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_err_rem !: heat flux error after heat remapping [W.m-2]302 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_in !: heat flux available for thermo transformations [W.m-2]257 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_err_rem !: heat flux error after heat remapping [W.m-2] 258 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_in !: heat flux available for thermo transformations [W.m-2] 303 259 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_out !: heat flux remaining at the end of thermo transformations [W.m-2] 304 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_err_sub !: mass flux error after sublimation [kg.m-2.s-1]260 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_err_sub !: mass flux error after sublimation [kg.m-2.s-1] 305 261 306 262 ! heat flux associated with ice-atmosphere mass exchange 307 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_sub !: heat flux for sublimation [W.m-2]263 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_sub !: heat flux for sublimation [W.m-2] 308 264 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_spr !: heat flux of the snow precipitation [W.m-2] 309 265 … … 421 377 INTEGER :: ice_alloc 422 378 ! 423 INTEGER :: ierr(1 8), ii379 INTEGER :: ierr(15), ii 424 380 !!----------------------------------------------------------------- 425 426 381 ierr(:) = 0 427 382 428 ! What could be one huge allocate statement is broken-up to try to429 ! stay within Fortran's max-line length limit.430 383 ii = 1 431 ALLOCATE( u_oce (jpi,jpj) , v_oce (jpi,jpj) , ht_i_new (jpi,jpj) ,&432 & stre ngth(jpi,jpj) , stress1_i(jpi,jpj) , stress2_i(jpi,jpj) , stress12_i(jpi,jpj) ,&433 & delta_i (jpi,jpj) , divu_i (jpi,jpj) , shear_i(jpi,jpj) , STAT=ierr(ii) )384 ALLOCATE( u_oce (jpi,jpj) , v_oce (jpi,jpj) , ht_i_new (jpi,jpj) , strength(jpi,jpj) , & 385 & stress1_i(jpi,jpj) , stress2_i(jpi,jpj) , stress12_i(jpi,jpj) , & 386 & delta_i (jpi,jpj) , divu_i (jpi,jpj) , shear_i (jpi,jpj) , STAT=ierr(ii) ) 434 387 435 388 ii = ii + 1 … … 437 390 & wfx_snw(jpi,jpj) , wfx_snw_dyn(jpi,jpj) , wfx_snw_sum(jpi,jpj) , wfx_snw_sub(jpi,jpj) , & 438 391 & wfx_ice(jpi,jpj) , wfx_sub (jpi,jpj) , wfx_ice_sub(jpi,jpj) , wfx_lam (jpi,jpj) , & 439 & wfx_pnd(jpi,jpj) , &440 & wfx_bog(jpi,jpj) , wfx_dyn(jpi,jpj) , wfx_bom(jpi,jpj) , wfx_sum(jpi,jpj) , &441 & wfx_res(jpi,jpj) , wfx_sni(jpi,jpj) , wfx_opw(jpi,jpj) , wfx_spr(jpi,jpj) , &442 & afx_tot(jpi,jpj) , rn_amax_2d(jpi,jpj), &443 & fhtur (jpi,jpj) , qlead (jpi,jpj) , &392 & wfx_pnd(jpi,jpj) , & 393 & wfx_bog(jpi,jpj) , wfx_dyn(jpi,jpj) , wfx_bom(jpi,jpj) , wfx_sum(jpi,jpj) , & 394 & wfx_res(jpi,jpj) , wfx_sni(jpi,jpj) , wfx_opw(jpi,jpj) , wfx_spr(jpi,jpj) , & 395 & afx_tot(jpi,jpj) , rn_amax_2d(jpi,jpj), & 396 & fhtur (jpi,jpj) , qlead (jpi,jpj) , & 444 397 & sfx_res(jpi,jpj) , sfx_bri(jpi,jpj) , sfx_dyn(jpi,jpj) , sfx_sub(jpi,jpj) , sfx_lam(jpi,jpj) , & 445 398 & sfx_bog(jpi,jpj) , sfx_bom(jpi,jpj) , sfx_sum(jpi,jpj) , sfx_sni(jpi,jpj) , sfx_opw(jpi,jpj) , & 446 & hfx_res(jpi,jpj) , hfx_snw(jpi,jpj) , hfx_sub(jpi,jpj) , &399 & hfx_res(jpi,jpj) , hfx_snw(jpi,jpj) , hfx_sub(jpi,jpj) , & 447 400 & hfx_in (jpi,jpj) , hfx_out(jpi,jpj) , fhld (jpi,jpj) , & 448 401 & hfx_sum(jpi,jpj) , hfx_bom(jpi,jpj) , hfx_bog(jpi,jpj) , hfx_dif(jpi,jpj) , & … … 452 405 ! * Ice global state variables 453 406 ii = ii + 1 454 ALLOCATE( ftr_ice(jpi,jpj,jpl) , cnd_ice(jpi,jpj,jpl) , t1_ice(jpi,jpj,jpl) , & 455 & h_i (jpi,jpj,jpl) , a_i (jpi,jpj,jpl) , v_i (jpi,jpj,jpl) , & 456 & v_s (jpi,jpj,jpl) , h_s (jpi,jpj,jpl) , t_su(jpi,jpj,jpl) , & 457 & s_i (jpi,jpj,jpl) , sv_i(jpi,jpj,jpl) , o_i (jpi,jpj,jpl) , & 458 & oa_i(jpi,jpj,jpl) , bv_i(jpi,jpj,jpl) , STAT=ierr(ii) ) 459 ii = ii + 1 460 ALLOCATE( u_ice(jpi,jpj) , v_ice(jpi,jpj) , & 461 & vt_i (jpi,jpj) , vt_s (jpi,jpj) , at_i(jpi,jpj) , ato_i(jpi,jpj) , & 462 & et_i (jpi,jpj) , et_s (jpi,jpj) , tm_i(jpi,jpj) , tm_s (jpi,jpj) , bvm_i(jpi,jpj) , & 463 & sm_i (jpi,jpj) , tm_su(jpi,jpj) , hm_i(jpi,jpj) , hm_s (jpi,jpj) , & 464 & om_i (jpi,jpj) , tau_icebfr(jpi,jpj) , STAT=ierr(ii) ) 407 ALLOCATE( ftr_ice(jpi,jpj,jpl) , cnd_ice(jpi,jpj,jpl) , t1_ice(jpi,jpj,jpl) , & 408 & h_i (jpi,jpj,jpl) , a_i (jpi,jpj,jpl) , v_i (jpi,jpj,jpl) , & 409 & v_s (jpi,jpj,jpl) , h_s (jpi,jpj,jpl) , t_su (jpi,jpj,jpl) , & 410 & s_i (jpi,jpj,jpl) , sv_i (jpi,jpj,jpl) , o_i (jpi,jpj,jpl) , & 411 & oa_i (jpi,jpj,jpl) , bv_i (jpi,jpj,jpl) , STAT=ierr(ii) ) 412 413 ii = ii + 1 414 ALLOCATE( u_ice(jpi,jpj) , v_ice(jpi,jpj) , & 415 & vt_i (jpi,jpj) , vt_s (jpi,jpj) , at_i(jpi,jpj) , ato_i(jpi,jpj) , & 416 & et_i (jpi,jpj) , et_s (jpi,jpj) , tm_i(jpi,jpj) , tm_s (jpi,jpj) , & 417 & sm_i (jpi,jpj) , tm_su(jpi,jpj) , hm_i(jpi,jpj) , hm_s (jpi,jpj) , & 418 & om_i (jpi,jpj) , bvm_i(jpi,jpj) , tau_icebfr(jpi,jpj) , STAT=ierr(ii) ) 419 465 420 ii = ii + 1 466 421 ALLOCATE( t_s(jpi,jpj,nlay_s,jpl) , e_s(jpi,jpj,nlay_s,jpl) , STAT=ierr(ii) ) 422 467 423 ii = ii + 1 468 424 ALLOCATE( t_i(jpi,jpj,nlay_i,jpl) , e_i(jpi,jpj,nlay_i,jpl) , sz_i(jpi,jpj,nlay_i,jpl) , STAT=ierr(ii) ) … … 470 426 ii = ii + 1 471 427 ALLOCATE( a_ip(jpi,jpj,jpl) , v_ip(jpi,jpj,jpl) , a_ip_frac(jpi,jpj,jpl) , h_ip(jpi,jpj,jpl) , STAT = ierr(ii) ) 428 472 429 ii = ii + 1 473 430 ALLOCATE( at_ip(jpi,jpj) , vt_ip(jpi,jpj) , STAT = ierr(ii) ) … … 475 432 ! * Old values of global variables 476 433 ii = ii + 1 477 ALLOCATE( v_s_b (jpi,jpj,jpl) , v_i_b (jpi,jpj,jpl) , h_s_b(jpi,jpj,jpl) , h_i_b(jpi,jpj,jpl) , & 478 & a_i_b (jpi,jpj,jpl) , sv_i_b(jpi,jpj,jpl) , e_i_b(jpi,jpj,nlay_i,jpl) , e_s_b(jpi,jpj,nlay_s,jpl) , & 479 & oa_i_b (jpi,jpj,jpl) , STAT=ierr(ii) ) 434 ALLOCATE( v_s_b (jpi,jpj,jpl) , v_i_b (jpi,jpj,jpl) , h_s_b(jpi,jpj,jpl) , h_i_b(jpi,jpj,jpl) , & 435 & a_i_b (jpi,jpj,jpl) , sv_i_b(jpi,jpj,jpl) , e_i_b(jpi,jpj,nlay_i,jpl) , e_s_b(jpi,jpj,nlay_s,jpl) , & 436 & oa_i_b(jpi,jpj,jpl) , STAT=ierr(ii) ) 437 480 438 ii = ii + 1 481 439 ALLOCATE( u_ice_b(jpi,jpj) , v_ice_b(jpi,jpj) , at_i_b(jpi,jpj) , STAT=ierr(ii) ) -
NEMO/trunk/src/ICE/ice1d.F90
r9598 r9604 4 4 !! sea-ice : Ice thermodynamics variables in 1D 5 5 !!===================================================================== 6 !! History : 3.0 ! 2002-11 (C. Ethe) F90: Free form and module 6 !! History : 3.0 ! 2002-11 (C. Ethe) original code 7 !! 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 7 8 !!---------------------------------------------------------------------- 8 9 #if defined key_si3 … … 179 180 ii = 1 180 181 ALLOCATE( nptidx (jpij) , & 181 & qlead_1d (jpij) , ftr_ice_1d(jpij) , qsr_ice_1d (jpij) , & 182 & qns_ice_1d(jpij) , & 183 & qml_ice_1d(jpij) , qcn_ice_1d(jpij) , qsr_ice_tr_1d(jpij) , & 184 & cnd_ice_1d(jpij) , t1_ice_1d(jpij) , t_bo_1d (jpij) , & 185 & hfx_sum_1d(jpij) , hfx_bom_1d(jpij) , hfx_bog_1d(jpij) , & 186 & hfx_dif_1d(jpij) , hfx_opw_1d(jpij) , hfx_dyn_1d(jpij) , & 182 & qlead_1d (jpij) , ftr_ice_1d(jpij) , qsr_ice_1d(jpij) , & 183 & qns_ice_1d(jpij) , qml_ice_1d(jpij) , qcn_ice_1d(jpij) , qsr_ice_tr_1d(jpij) , & 184 & cnd_ice_1d(jpij) , t1_ice_1d (jpij) , t_bo_1d (jpij) , & 185 & hfx_sum_1d(jpij) , hfx_bom_1d(jpij) , hfx_bog_1d(jpij) , & 186 & hfx_dif_1d(jpij) , hfx_opw_1d(jpij) , hfx_dyn_1d(jpij) , & 187 187 & rn_amax_1d(jpij) , & 188 188 & hfx_thd_1d(jpij) , hfx_spr_1d(jpij) , & … … 191 191 ! 192 192 ii = ii + 1 193 ALLOCATE( sprecip_1d (jpij) , at_i_1d (jpij) , ato_i_1d(jpij) ,&194 & fhtur_1d (jpij) , wfx_snw_sni_1d (jpij) , wfx_spr_1d (jpij) , wfx_snw_sum_1d(jpij) ,&195 & fhld_1d (jpij) , wfx_sub_1d (jpij) , wfx_bog_1d (jpij) , wfx_bom_1d(jpij) , &196 & wfx_sum_1d (jpij) , wfx_sni_1d (jpij) , wfx_opw_1d (jpij) , wfx_res_1d(jpij) , &197 & wfx_snw_sub_1d(jpij) , wfx_snw_dyn_1d(jpij), wfx_ice_sub_1d(jpij), wfx_err_sub_1d(jpij) ,&198 & wfx_lam_1d (jpij) , wfx_dyn_1d(jpij), wfx_pnd_1d(jpij),dqns_ice_1d(jpij) , evap_ice_1d (jpij),&199 & qprec_ice_1d (jpij), &200 & sfx_bri_1d (jpij) , sfx_bog_1d (jpij) , sfx_bom_1d (jpij) , sfx_sum_1d (jpij), &201 & sfx_sni_1d (jpij) , sfx_opw_1d (jpij) , sfx_res_1d (jpij) , sfx_sub_1d (jpij), &202 & sfx_lam_1d (jpij) , sfx_dyn_1d(jpij) , STAT=ierr(ii) )203 ! 204 ii = ii + 1 205 ALLOCATE( t_su_1d (jpij) , t_si_1d (jpij) , a_i_1d(jpij) , a_ib_1d(jpij) , &206 & h_i_1d (jpij) , h_ib_1d (jpij) , h_s_1d(jpij) , fc_su (jpij) , fc_bo_i(jpij) , &207 & dh_s_tot (jpij) , dh_i_surf (jpij) , dh_i_sub(jpij) , &208 & dh_i_bott(jpij) , dh_s_mlt (jpij), dh_snowice(jpij) , s_i_1d (jpij) , s_i_new(jpij) ,&209 & a_ip_1d (jpij) , v_ip_1d (jpij) , v_i_1d (jpij) , v_s_1d (jpij) ,&210 & h_ip_1d (jpij) , a_ip_frac_1d(jpij) , &211 & sv_i_1d (jpij) , oa_i_1d(jpij) , STAT=ierr(ii) )193 ALLOCATE( sprecip_1d (jpij) , at_i_1d (jpij) , ato_i_1d (jpij) , & 194 & fhtur_1d (jpij) , wfx_snw_sni_1d(jpij) , wfx_spr_1d (jpij) , wfx_snw_sum_1d(jpij) , & 195 & fhld_1d (jpij) , wfx_sub_1d (jpij) , wfx_bog_1d (jpij) , wfx_bom_1d (jpij) , & 196 & wfx_sum_1d (jpij) , wfx_sni_1d (jpij) , wfx_opw_1d (jpij) , wfx_res_1d (jpij) , & 197 & wfx_snw_sub_1d(jpij) , wfx_snw_dyn_1d(jpij) , wfx_ice_sub_1d(jpij) , wfx_err_sub_1d(jpij) , & 198 & wfx_lam_1d (jpij) , wfx_dyn_1d (jpij) , wfx_pnd_1d (jpij) , dqns_ice_1d (jpij) , evap_ice_1d (jpij) , & 199 & qprec_ice_1d (jpij) , & 200 & sfx_bri_1d (jpij) , sfx_bog_1d (jpij) , sfx_bom_1d (jpij) , sfx_sum_1d (jpij), & 201 & sfx_sni_1d (jpij) , sfx_opw_1d (jpij) , sfx_res_1d (jpij) , sfx_sub_1d (jpij), & 202 & sfx_lam_1d (jpij) , sfx_dyn_1d(jpij) , STAT=ierr(ii) ) 203 ! 204 ii = ii + 1 205 ALLOCATE( t_su_1d (jpij) , t_si_1d (jpij) , a_i_1d (jpij) , a_ib_1d(jpij) , & 206 & h_i_1d (jpij) , h_ib_1d (jpij) , h_s_1d (jpij) , fc_su (jpij) , fc_bo_i(jpij) , & 207 & dh_s_tot (jpij) , dh_i_surf(jpij) , dh_i_sub (jpij) , & 208 & dh_i_bott(jpij) , dh_s_mlt (jpij) , dh_snowice(jpij) , s_i_1d (jpij) , s_i_new(jpij) , & 209 & a_ip_1d (jpij) , v_ip_1d (jpij) , v_i_1d (jpij) , v_s_1d (jpij) , & 210 & h_ip_1d (jpij) , a_ip_frac_1d(jpij) , & 211 & sv_i_1d (jpij) , oa_i_1d (jpij) , STAT=ierr(ii) ) 212 212 ! 213 213 ii = ii + 1 214 214 ALLOCATE( t_s_1d (jpij,nlay_s) , t_i_1d (jpij,nlay_i) , sz_i_1d(jpij,nlay_i) , & 215 & e_i_1d (jpij,nlay_i) , e_s_1d (jpij,nlay_s) , &215 & e_i_1d (jpij,nlay_i) , e_s_1d (jpij,nlay_s) , & 216 216 & eh_i_old(jpij,0:nlay_i+1) , h_i_old(jpij,0:nlay_i+1) , STAT=ierr(ii) ) 217 217 ! … … 223 223 ! 224 224 ii = ii + 1 225 ALLOCATE( a_i_2d (jpij,jpl) , a_ib_2d(jpij,jpl) , h_i_2d(jpij,jpl) , h_ib_2d(jpij,jpl) ,&226 & v_i_2d (jpij,jpl) ,v_s_2d(jpij,jpl) ,oa_i_2d(jpij,jpl) ,sv_i_2d(jpij,jpl) , &227 & a_ip_2d(jpij,jpl) , v_ip_2d(jpij,jpl) ,t_su_2d(jpij,jpl) ,&225 ALLOCATE( a_i_2d (jpij,jpl) , a_ib_2d(jpij,jpl) , h_i_2d (jpij,jpl) , h_ib_2d(jpij,jpl) , & 226 & v_i_2d (jpij,jpl) , v_s_2d (jpij,jpl) , oa_i_2d(jpij,jpl) , sv_i_2d(jpij,jpl) , & 227 & a_ip_2d(jpij,jpl) , v_ip_2d(jpij,jpl) , t_su_2d(jpij,jpl) , & 228 228 & STAT=ierr(ii) ) 229 229 -
NEMO/trunk/src/ICE/icealb.F90
r9598 r9604 4 4 !! Atmospheric forcing: Albedo over sea ice 5 5 !!===================================================================== 6 !! History : 4.0 ! 2017-07 (C. Rousset) Split ice and ocean albedos 6 !! History : 4.0 ! 2017-07 (C. Rousset) Split ice and ocean albedos 7 !! 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 7 8 !!---------------------------------------------------------------------- 8 9 #if defined key_si3 … … 28 29 29 30 REAL(wp), PUBLIC, PARAMETER :: rn_alb_oce = 0.066 !: ocean or lead albedo (Pegau and Paulson, Ann. Glac. 2001) 30 31 REAL(wp) , PARAMETER :: ppc1 = 0.05 ! snow thickness (only for nn_ice_alb=0)32 REAL(wp) , PARAMETER :: ppc2 = 0.10 ! " "33 REAL(wp) , PARAMETER :: ppcloud = 0.06 ! cloud effect on albedo (only-for nn_ice_alb=0)34 REAL(wp) , PARAMETER :: pp1_c1 = 1. / ppc135 REAL(wp) , PARAMETER :: pp1_c2 = 1. / ppc236 31 ! 37 32 ! !!* albedo namelist (namalb) -
NEMO/trunk/src/ICE/icecor.F90
r9598 r9604 2 2 !!====================================================================== 3 3 !! *** MODULE icecor *** 4 !! SI3: Corrections on sea-ice variables at the end of the time step4 !! sea-ice: Corrections on sea-ice variables at the end of the time step 5 5 !!====================================================================== 6 6 !! History : 3.0 ! 2006-04 (M. Vancoppenolle) Original code 7 7 !! 3.5 ! 2014-06 (C. Rousset) Complete rewriting/cleaning 8 !! 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 8 9 !!---------------------------------------------------------------------- 9 10 #if defined key_si3 -
NEMO/trunk/src/ICE/icectl.F90
r9598 r9604 6 6 !! History : 3.5 ! 2015-01 (M. Vancoppenolle) Original code 7 7 !! 3.7 ! 2016-10 (C. Rousset) Add routine ice_prt3D 8 !! 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 8 9 !!---------------------------------------------------------------------- 9 10 #if defined key_si3 -
NEMO/trunk/src/ICE/icedia.F90
r9598 r9604 2 2 !!====================================================================== 3 3 !! *** MODULE icedia *** 4 !! Sea-Ice model: global budgets4 !! Sea-Ice: global budgets 5 5 !!====================================================================== 6 !! History : 3.4 ! 2012-10 (C. Rousset)original code7 !! 4.0 ! 2017-08 (C. Rousset) fits nemo4.0 standards6 !! History : 3.4 ! 2012-10 (C. Rousset) original code 7 !! 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 8 8 !!---------------------------------------------------------------------- 9 9 #if defined key_si3 -
NEMO/trunk/src/ICE/icedyn.F90
r9598 r9604 4 4 !! Sea-Ice dynamics : master routine for sea ice dynamics 5 5 !!====================================================================== 6 !! history : 4.0 ! 201 7-09 (C. Rousset) original code6 !! history : 4.0 ! 2018 (C. Rousset) original code SI3 [aka Sea Ice cube] 7 7 !!---------------------------------------------------------------------- 8 8 #if defined key_si3 … … 63 63 !! ** Purpose : this routine manages sea ice dynamics 64 64 !! 65 !! ** Action : - Initialisation of some variables 66 !! - call ice_rhg 65 !! ** Action : - calculation of friction in case of landfast ice 66 !! - call ice_dyn_rhg = rheology 67 !! - call ice_dyn_adv = advection 68 !! - call ice_dyn_rdgrft = ridging/rafting 69 !! - call ice_cor = corrections if fields are out of bounds 67 70 !!-------------------------------------------------------------------- 68 71 INTEGER, INTENT(in) :: kt ! ice time step -
NEMO/trunk/src/ICE/icedyn_adv.F90
r9598 r9604 2 2 !!====================================================================== 3 3 !! *** MODULE icedyn_adv *** 4 !! SI3 : sea-iceadvection4 !! sea-ice: advection 5 5 !!====================================================================== 6 !! History : LIM-2 ! 2000-01 (M.A. Morales Maqueda, H. Goosse, and T. Fichefet) Original code 7 !! 3.0 ! 2005-11 (M. Vancoppenolle) Multi-layer sea ice, salinity variations 8 !! 4.0 ! 2011-02 (G. Madec) dynamical allocation 6 !! History : 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 9 7 !!---------------------------------------------------------------------- 10 8 #if defined key_si3 -
NEMO/trunk/src/ICE/icedyn_adv_pra.F90
r9598 r9604 4 4 !! sea-ice : advection => Prather scheme 5 5 !!====================================================================== 6 !! History : LIM ! 2008-03 (M. Vancoppenolle) LIM-3 from LIM-2 code 7 !! 3.2 ! 2009-06 (F. Dupont) correct a error in the North fold b.c. 8 !! 4.0 ! 2011-02 (G. Madec) dynamical allocation 6 !! History : ! 2008-03 (M. Vancoppenolle) LIM-3 from LIM-2 code 7 !! 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 9 8 !!-------------------------------------------------------------------- 10 9 #if defined key_si3 -
NEMO/trunk/src/ICE/icedyn_adv_umx.F90
r9598 r9604 5 5 !!============================================================================== 6 6 !! History : 3.6 ! 2014-11 (C. Rousset, G. Madec) Original code 7 !! 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 7 8 !!---------------------------------------------------------------------- 8 9 #if defined key_si3 -
NEMO/trunk/src/ICE/icedyn_rdgrft.F90
r9598 r9604 4 4 !! sea-ice : Mechanical impact on ice thickness distribution 5 5 !!====================================================================== 6 !! History : LIM ! 2006-02 (M. Vancoppenolle) Original code 7 !! 3.2 ! 2009-07 (M. Vancoppenolle, Y. Aksenov, G. Madec) bug correction in smsw & sfx_dyn 8 !! 4.0 ! 2011-02 (G. Madec) dynamical allocation 6 !! History : ! 2006-02 (M. Vancoppenolle) Original code 7 !! 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 9 8 !!---------------------------------------------------------------------- 10 9 #if defined key_si3 -
NEMO/trunk/src/ICE/icedyn_rhg.F90
r9598 r9604 4 4 !! Sea-Ice dynamics : master routine for rheology 5 5 !!====================================================================== 6 !! history : 1.0 ! 2002-08 (C. Ethe, G. Madec) original VP code 7 !! 3.0 ! 2007-03 (MA Morales Maqueda, S. Bouillon, M. Vancoppenolle) LIM3: EVP-Cgrid 8 !! 3.5 ! 2011-02 (G. Madec) dynamical allocation 6 !! history : 4.0 ! 2018 (C. Rousset) Original code 9 7 !!---------------------------------------------------------------------- 10 8 #if defined key_si3 -
NEMO/trunk/src/ICE/icedyn_rhg_evp.F90
r9598 r9604 7 7 !! 3.0 ! 2008-03 (M. Vancoppenolle) LIM3 8 8 !! - ! 2008-11 (M. Vancoppenolle, S. Bouillon, Y. Aksenov) add surface tilt in ice rheolohy 9 !! 3.3 ! 2009-05 (G.Garric) addition of the evp cas 10 !! 3.4 ! 2011-01 (A. Porter) dynamical allocation 11 !! 3.5 ! 2012-08 (R. Benshila) AGRIF 12 !! 3.6 ! 2016-06 (C. Rousset) Rewriting + landfast ice + possibility to use mEVP (Bouillon 2013) 9 !! 3.3 ! 2009-05 (G.Garric) addition of the evp case 10 !! 3.4 ! 2011-01 (A. Porter) dynamical allocation 11 !! 3.5 ! 2012-08 (R. Benshila) AGRIF 12 !! 3.6 ! 2016-06 (C. Rousset) Rewriting + landfast ice + possibility to use mEVP (Bouillon 2013) 13 !! 3.7 ! 2017 (C. Rousset) add aEVP (Kimmritz 2016-2017) 14 !! 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 13 15 !!---------------------------------------------------------------------- 14 16 #if defined key_si3 -
NEMO/trunk/src/ICE/iceforcing.F90
r9598 r9604 4 4 !! Sea-Ice : air-ice forcing fields 5 5 !!===================================================================== 6 !! History : 4.0 ! 2017-08 (C. Rousset) Original code 6 !! History : 4.0 ! 2017-08 (C. Rousset) Original code 7 !! 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 7 8 !!---------------------------------------------------------------------- 8 9 #if defined key_si3 -
NEMO/trunk/src/ICE/iceistate.F90
r9598 r9604 4 4 !! sea-ice : Initialization of ice variables 5 5 !!====================================================================== 6 !! History : 2.0 ! 2004-01 (C. Ethe, G. Madec) Original code 7 !! 3.0 ! 2007 (M. Vancoppenolle) Rewrite for ice cats 8 !! 3.0 ! 2009-11 (M. Vancoppenolle) Enhanced version for ice cats 9 !! 3.0 ! 2011-02 (G. Madec) dynamical allocation 10 !! - ! 2014 (C. Rousset) add N/S initializations 6 !! History : 2.0 ! 2004-01 (C. Ethe, G. Madec) Original code 7 !! 3.0 ! 2007 (M. Vancoppenolle) Rewrite for ice cats 8 !! 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 11 9 !!---------------------------------------------------------------------- 12 10 #if defined key_si3 -
NEMO/trunk/src/ICE/iceitd.F90
r9598 r9604 4 4 !! sea-ice : ice thickness distribution 5 5 !!====================================================================== 6 !! History : - ! (W. H. Lipscomb and E.C. Hunke) CICE (c) original code 7 !! 3.0 ! 2005-12 (M. Vancoppenolle) adaptation to LIM-3 8 !! - ! 2006-06 (M. Vancoppenolle) adaptation to include salt, age 9 !! - ! 2007-04 (M. Vancoppenolle) Mass conservation checked 6 !! History : 3.0 ! 2005-12 (M. Vancoppenolle) original code (based on CICE) 7 !! 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 10 8 !!---------------------------------------------------------------------- 11 9 #if defined key_si3 -
NEMO/trunk/src/ICE/icerst.F90
r9598 r9604 4 4 !! sea-ice : write/read the ice restart file 5 5 !!====================================================================== 6 !! History: 3.0 ! 2005-04 (M. Vancoppenolle) Original code 7 !! - ! 2008-03 (C. Ethe) restart files in using IOM interface 8 !! 3.4 ! 2011-02 (G. Madec) dynamical allocation 9 !! 4.0 ! 2017-11 (M. Andrejczuk) Extend IOM interface to write 3D ice fields 6 !! History: 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 10 7 !!---------------------------------------------------------------------- 11 8 #if defined key_si3 -
NEMO/trunk/src/ICE/icestp.F90
r9598 r9604 2 2 !!====================================================================== 3 3 !! *** MODULE icestp *** 4 !! Surface module : update the ocean surface boundary condition over ice 5 !! covered area using SI3 sea-ice model 4 !! sea ice : Master routine for all the sea ice model 6 5 !!===================================================================== 7 !! History : 2.0 ! 2006-12 (M. Vancoppenolle) Original code 8 !! 3.0 ! 2008-02 (C. Talandier) Surface module from icestp.F90 9 !! - ! 2008-04 (G. Madec) sltyle and ice_ctl routine 10 !! 3.3 ! 2010-11 (G. Madec) ice-ocean stress always computed at each ocean time-step 11 !! 3.4 ! 2011-01 (A Porter) dynamical allocation 12 !! - ! 2012-10 (C. Rousset) add ice_dia 13 !! 3.6 ! 2014-07 (M. Vancoppenolle, G. Madec, O. Marti) revise coupled interface 14 !! 4.0 ! 2016-06 (L. Brodeau) new unified bulk routine (based on AeroBulk) 6 !! 7 !! The sea ice model SI3 (Sea Ice modelling Integrated Initiative), 8 !! aka Sea Ice cube for its nickname 9 !! 10 !! is originally based on LIM3, developed in Louvain-la-Neuve by: 11 !! * Martin Vancoppenolle (UCL-ASTR, Belgium) 12 !! * Sylvain Bouillon (UCL-ASTR, Belgium) 13 !! * Miguel Angel Morales Maqueda (NOC-L, UK) 14 !! thanks to valuable earlier work by 15 !! * Thierry Fichefet 16 !! * Hugues Goosse 17 !! thanks also to the following persons who contributed 18 !! * Gurvan Madec, Claude Talandier, Christian Ethe (LOCEAN, France) 19 !! * Xavier Fettweis (UCL-ASTR), Ralph Timmermann (AWI, Germany) 20 !! * Bill Lipscomb (LANL), Cecilia Bitz (UWa) and Elisabeth Hunke (LANL), USA. 21 !! 22 !! SI3 has been made possible by a handful of persons who met as working group 23 !! in France and UK: 24 !! * ... 25 !!====================================================================== 26 !! History : 4.0 ! 2018 (C. Rousset) Original code SI3 15 27 !!---------------------------------------------------------------------- 16 28 #if defined key_si3 … … 315 327 ENDIF 316 328 ! 317 318 319 329 IF( ln_cpl .AND. nn_cats_cpl /= 1 .AND. nn_cats_cpl /= jpl ) THEN 330 CALL ctl_stop( 'STOP', 'par_init: in coupled mode, nn_cats_cpl should be either 1 or jpl' ) 331 ENDIF 320 332 ! 321 333 IF( ln_bdy .AND. ln_icediachk ) CALL ctl_warn('par_init: online conservation check does not work with BDY') -
NEMO/trunk/src/ICE/icetab.F90
r9598 r9604 4 4 !! sea-ice : transform 1D (2D) array to a 2D (1D) table 5 5 !!====================================================================== 6 !! History : 4.0 ! 2018 (C. Rousset) Original code SI3 7 !!---------------------------------------------------------------------- 6 8 #if defined key_si3 7 9 !!---------------------------------------------------------------------- -
NEMO/trunk/src/ICE/icethd.F90
r9598 r9604 4 4 !! sea-ice : master routine for thermodynamics 5 5 !!====================================================================== 6 !! History : LIM ! 2000-01 (M.A. Morales Maqueda, H. Goosse, T. Fichefet) LIM-1 7 !! 2.0 ! 2002-07 (C. Ethe, G. Madec) LIM-2 (F90 rewriting) 8 !! 3.0 ! 2005-11 (M. Vancoppenolle) LIM-3 : Multi-layer thermodynamics + salinity variations 9 !! - ! 2007-04 (M. Vancoppenolle) add ice_thd_glohec, ice_thd_con_dh and ice_thd_con_dif 10 !! 3.2 ! 2009-07 (M. Vancoppenolle, Y. Aksenov, G. Madec) bug correction in wfx_snw 11 !! 3.3 ! 2010-11 (G. Madec) corrected snow melting heat (due to factor betas) 12 !! 4.0 ! 2011-02 (G. Madec) dynamical allocation 13 !! - ! 2012-05 (C. Rousset) add penetration solar flux 6 !! History : 1.0 ! 2000-01 (M.A. Morales Maqueda, H. Goosse, T. Fichefet) LIM-1 7 !! 2.0 ! 2002-07 (C. Ethe, G. Madec) LIM-2 8 !! 3.0 ! 2005-11 (M. Vancoppenolle) LIM-3 9 !! 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 14 10 !!---------------------------------------------------------------------- 15 11 #if defined key_si3 … … 73 69 !! ** Purpose : This routine manages ice thermodynamics 74 70 !! 75 !! ** Action : - Initialisation of some variables 76 !! - Some preliminary computation (oceanic heat flux 77 !! at the ice base, snow acc.,heat budget of the leads) 78 !! - selection of the icy points and put them in an array 79 !! - call ice_thd_zdf for vertical heat diffusion 80 !! - call ice_thd_dh for vertical ice growth and melt 81 !! - call ice_thd_ent for enthalpy remapping 82 !! - call ice_thd_sal for ice desalination 83 !! - call ice_thd_temp to retrieve temperature from ice enthalpy 84 !! - call ice_thd_lam for extra lateral ice melt if active virtual thickness distribution 85 !! - call ice_thd_da for lateral ice melt 71 !! ** Action : - computation of oceanic sensible heat flux at the ice base 72 !! energy budget in the leads 73 !! net fluxes on top of ice and of ocean 74 !! - selection of grid cells with ice 75 !! - call ice_thd_zdf for vertical heat diffusion 76 !! - call ice_thd_dh for vertical ice growth and melt 77 !! - call ice_thd_pnd for melt ponds 78 !! - call ice_thd_ent for enthalpy remapping 79 !! - call ice_thd_sal for ice desalination 80 !! - call ice_thd_temp to retrieve temperature from ice enthalpy 81 !! - call ice_thd_lam for extra lateral ice melt if active virtual thickness distribution 82 !! - call ice_thd_da for lateral ice melt 86 83 !! - back to the geographic grid 87 !! - call ice_thd_rem for remapping thickness distribution88 !! - call ice_thd_do for ice growth in leads84 !! - call ice_thd_rem for remapping thickness distribution 85 !! - call ice_thd_do for ice growth in leads 89 86 !!------------------------------------------------------------------- 90 87 INTEGER, INTENT(in) :: kt ! number of iteration -
NEMO/trunk/src/ICE/icethd_da.F90
r9598 r9604 4 4 !! sea-ice : lateral melting 5 5 !!====================================================================== 6 !! History : 4.0 ! 2016-03 (C. Rousset) original code 6 !! History : 3.7 ! 2016-03 (C. Rousset) Original code 7 !! 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 7 8 !!--------------------------------------------------------------------- 8 9 #if defined key_si3 -
NEMO/trunk/src/ICE/icethd_dh.F90
r9598 r9604 4 4 !! seaice : thermodynamic growth and melt 5 5 !!====================================================================== 6 !! History : LIM ! 2003-05 (M. Vancoppenolle) Original code in 1D 7 !! ! 2005-06 (M. Vancoppenolle) 3D version 8 !! 3.2 ! 2009-07 (M. Vancoppenolle, Y. Aksenov, G. Madec) bug correction in wfx_snw & wfx_ice 9 !! 3.4 ! 2011-02 (G. Madec) dynamical allocation 10 !! 3.5 ! 2012-10 (G. Madec & co) salt flux + bug fixes 6 !! History : ! 2003-05 (M. Vancoppenolle) Original code in 1D 7 !! ! 2005-06 (M. Vancoppenolle) 3D version 8 !! 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 11 9 !!---------------------------------------------------------------------- 12 10 #if defined key_si3 … … 125 123 END DO 126 124 ! 127 ! ---------------------------------------------- ! 128 ! Available heat for surface and bottom ablation ! 129 ! ---------------------------------------------- ! 130 ! 125 ! ! ============================================== ! 126 ! ! Available heat for surface and bottom ablation ! 127 ! ! ============================================== ! 131 128 SELECT CASE( nice_jules ) 132 129 ! -
NEMO/trunk/src/ICE/icethd_do.F90
r9598 r9604 4 4 !! sea-ice: sea ice growth in the leads (open water) 5 5 !!====================================================================== 6 !! History : LIM ! 2005-12 (M. Vancoppenolle) Original code 7 !! - ! 2006-01 (M. Vancoppenolle) add ITD 8 !! 3.0 ! 2007-07 (M. Vancoppenolle) Mass and energy conservation tested 9 !! 4.0 ! 2011-02 (G. Madec) dynamical allocation 6 !! History : ! 2005-12 (M. Vancoppenolle) Original code 7 !! 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 10 8 !!---------------------------------------------------------------------- 11 9 #if defined key_si3 … … 58 56 !! 59 57 !! ** Purpose : Computation of the evolution of the ice thickness and 60 !! concentration as a function of the heat balance in the leads.58 !! concentration as a function of the heat balance in the leads 61 59 !! 62 !! ** Method : Ice is formed in the open water when ocean lose heat 63 !! (heat budget of open water Bl is negative) . 64 !! Computation of the increase of 1-A (ice concentration) fol- 65 !! lowing the law : 66 !! (dA/dt)acc = F[ (1-A)/(1-a) ] * [ Bl / (Li*h0) ] 67 !! where - h0 is the thickness of ice created in the lead 68 !! - a is a minimum fraction for leads 69 !! - F is a monotonic non-increasing function defined as: 60 !! ** Method : Ice is formed in the open water when ocean looses heat 61 !! (heat budget of open water is negative) following 62 !! 63 !! (dA/dt)acc = F[ (1-A)/(1-a) ] * [ Bl / (Li*h0) ] 64 !! where - h0 is the thickness of ice created in the lead 65 !! - a is a minimum fraction for leads 66 !! - F is a monotonic non-increasing function defined as: 70 67 !! F(X)=( 1 - X**exld )**(1.0/exld) 71 !! - exld is the exponent closure rate (=2 default val.)68 !! - exld is the exponent closure rate (=2 default val.) 72 69 !! 73 70 !! ** Action : - Adjustment of snow and ice thicknesses and heat … … 79 76 !!------------------------------------------------------------------------ 80 77 INTEGER :: ji, jj, jk, jl ! dummy loop indices 81 INTEGER :: iter ! - -82 REAL(wp) :: ztmelts, zfrazb, zweight, zde ! local scalars78 INTEGER :: iter ! - - 79 REAL(wp) :: ztmelts, zfrazb, zweight, zde ! local scalars 83 80 REAL(wp) :: zgamafr, zvfrx, zvgx, ztaux, ztwogp, zf ! - - 84 81 REAL(wp) :: ztenagm, zvfry, zvgy, ztauy, zvrel2, zfp, zsqcd , zhicrit ! - - … … 105 102 REAL(wp), DIMENSION(jpij) :: zvrel_1d ! relative ice / frazil velocity (1D vector) 106 103 ! 107 REAL(wp), DIMENSION(jpij,jpl) :: zv_b 108 REAL(wp), DIMENSION(jpij,jpl) :: za_b 104 REAL(wp), DIMENSION(jpij,jpl) :: zv_b ! old volume of ice in category jl 105 REAL(wp), DIMENSION(jpij,jpl) :: za_b ! old area of ice in category jl 109 106 ! 110 107 REAL(wp), DIMENSION(jpij,nlay_i,jpl) :: ze_i_2d !: 1-D version of e_i 111 108 ! 112 REAL(wp), DIMENSION(jpi,jpj) :: zvrel 113 ! 114 REAL(wp) :: zcai = 1.4e-3_wp 109 REAL(wp), DIMENSION(jpi,jpj) :: zvrel ! relative ice / frazil velocity 110 ! 111 REAL(wp) :: zcai = 1.4e-3_wp ! ice-air drag (clem: should be dependent on coupling/forcing used) 115 112 !!-----------------------------------------------------------------------! 116 113 … … 121 118 122 119 !------------------------------------------------------------------------------! 123 ! 3) Collection thickness of ice formed in leads and polynyas120 ! 1) Collection thickness of ice formed in leads and polynyas 124 121 !------------------------------------------------------------------------------! 125 122 ! ht_i_new is the thickness of new ice formed in open water 126 ! ht_i_new can be either prescribed ( frazswi = 0) or computed (frazswi = 1)123 ! ht_i_new can be either prescribed (ln_frazil=F) or computed (ln_frazil=T) 127 124 ! Frazil ice forms in open water, is transported by wind 128 125 ! accumulates at the edge of the consolidated ice edge … … 130 127 ! collection thickness. 131 128 132 ! Note : the following algorithm currently breaks vectorization133 !134 135 129 zvrel(:,:) = 0._wp 136 130 … … 142 136 IF( ln_frazil ) THEN 143 137 ! 144 !--------------------145 ! Physical constants146 !--------------------147 138 ht_i_new(:,:) = 0._wp 148 139 ! 149 zhicrit = 0.04 ! frazil ice thickness 140 ! Physical constants 141 zhicrit = 0.04 ! frazil ice thickness 150 142 ztwogp = 2. * rau0 / ( grav * 0.3 * ( rau0 - rhoic ) ) ! reduced grav 151 zsqcd = 1.0 / SQRT( 1.3 * zcai ) ! 1/SQRT(airdensity*drag)143 zsqcd = 1.0 / SQRT( 1.3 * zcai ) ! 1/SQRT(airdensity*drag) 152 144 zgamafr = 0.03 153 145 ! … … 155 147 DO ji = 2, jpim1 156 148 IF ( qlead(ji,jj) < 0._wp .AND. tau_icebfr(ji,jj) == 0._wp ) THEN ! activated if cooling and no landfast 157 !------------- 158 ! Wind stress 159 !------------- 160 ! C-grid wind stress components 149 ! -- Wind stress -- ! 161 150 ztaux = ( utau_ice(ji-1,jj ) * umask(ji-1,jj ,1) & 162 151 & + utau_ice(ji ,jj ) * umask(ji ,jj ,1) ) * 0.5_wp … … 166 155 ztenagm = SQRT( SQRT( ztaux * ztaux + ztauy * ztauy ) ) 167 156 168 !--------------------- 169 ! Frazil ice velocity 170 !--------------------- 157 ! -- Frazil ice velocity -- ! 171 158 rswitch = MAX( 0._wp, SIGN( 1._wp , ztenagm - epsi10 ) ) 172 159 zvfrx = rswitch * zgamafr * zsqcd * ztaux / MAX( ztenagm, epsi10 ) 173 160 zvfry = rswitch * zgamafr * zsqcd * ztauy / MAX( ztenagm, epsi10 ) 174 161 175 !------------------- 176 ! Pack ice velocity 177 !------------------- 178 ! C-grid ice velocity 162 ! -- Pack ice velocity -- ! 179 163 zvgx = ( u_ice(ji-1,jj ) * umask(ji-1,jj ,1) + u_ice(ji,jj) * umask(ji,jj,1) ) * 0.5_wp 180 164 zvgy = ( v_ice(ji ,jj-1) * vmask(ji ,jj-1,1) + v_ice(ji,jj) * vmask(ji,jj,1) ) * 0.5_wp 181 165 182 !----------------------------------- 183 ! Relative frazil/pack ice velocity 184 !----------------------------------- 185 ! absolute relative velocity 166 ! -- Relative frazil/pack ice velocity -- ! 186 167 rswitch = MAX( 0._wp, SIGN( 1._wp , at_i(ji,jj) - epsi10 ) ) 187 168 zvrel2 = MAX( ( zvfrx - zvgx ) * ( zvfrx - zvgx ) & … … 189 170 zvrel(ji,jj) = SQRT( zvrel2 ) 190 171 191 !--------------------- 192 ! Iterative procedure 193 !--------------------- 172 ! -- new ice thickness (iterative loop) -- ! 194 173 ht_i_new(ji,jj) = zhicrit + ( zhicrit + 0.1 ) & 195 174 & / ( ( zhicrit + 0.1 ) * ( zhicrit + 0.1 ) - zhicrit * zhicrit ) * ztwogp * zvrel2 … … 205 184 END DO 206 185 ! 207 ENDIF ! end of selection of pixels where ice forms186 ENDIF 208 187 ! 209 188 END DO … … 212 191 CALL lbc_lnk_multi( zvrel, 'T', 1., ht_i_new, 'T', 1. ) 213 192 214 ENDIF ! End of computation of frazil ice collection thickness193 ENDIF 215 194 216 195 !------------------------------------------------------------------------------! 217 ! 4) Identify grid points where new ice forms196 ! 2) Compute thickness, salinity, enthalpy, age, area and volume of new ice 218 197 !------------------------------------------------------------------------------! 219 220 !-------------------------------------221 ! Select points for new ice formation222 !-------------------------------------223 198 ! This occurs if open water energy budget is negative (cooling) and there is no landfast ice 199 200 ! Identify grid points where new ice forms 224 201 npti = 0 ; nptidx(:) = 0 225 202 DO jj = 1, jpj … … 232 209 END DO 233 210 234 !------------------------------235 211 ! Move from 2-D to 1-D vectors 236 !------------------------------237 ! If ocean gains heat do nothing. Otherwise compute new ice formation238 239 212 IF ( npti > 0 ) THEN 240 213 … … 248 221 END DO 249 222 END DO 250 CALL tab_2d_1d( npti, nptidx(1:npti), qlead_1d (1:npti) , qlead ) 251 CALL tab_2d_1d( npti, nptidx(1:npti), t_bo_1d (1:npti) , t_bo ) 252 CALL tab_2d_1d( npti, nptidx(1:npti), sfx_opw_1d(1:npti) , sfx_opw ) 253 CALL tab_2d_1d( npti, nptidx(1:npti), wfx_opw_1d(1:npti) , wfx_opw ) 254 CALL tab_2d_1d( npti, nptidx(1:npti), zh_newice (1:npti) , ht_i_new ) 255 CALL tab_2d_1d( npti, nptidx(1:npti), zvrel_1d (1:npti) , zvrel ) 256 257 CALL tab_2d_1d( npti, nptidx(1:npti), hfx_thd_1d(1:npti) , hfx_thd ) 258 CALL tab_2d_1d( npti, nptidx(1:npti), hfx_opw_1d(1:npti) , hfx_opw ) 259 CALL tab_2d_1d( npti, nptidx(1:npti), rn_amax_1d(1:npti) , rn_amax_2d ) 260 CALL tab_2d_1d( npti, nptidx(1:npti), sss_1d (1:npti) , sss_m ) 261 262 !------------------------------------------------------------------------------| 263 ! 2) Convert units for ice internal energy 264 !------------------------------------------------------------------------------| 223 CALL tab_2d_1d( npti, nptidx(1:npti), qlead_1d (1:npti) , qlead ) 224 CALL tab_2d_1d( npti, nptidx(1:npti), t_bo_1d (1:npti) , t_bo ) 225 CALL tab_2d_1d( npti, nptidx(1:npti), sfx_opw_1d(1:npti) , sfx_opw ) 226 CALL tab_2d_1d( npti, nptidx(1:npti), wfx_opw_1d(1:npti) , wfx_opw ) 227 CALL tab_2d_1d( npti, nptidx(1:npti), zh_newice (1:npti) , ht_i_new ) 228 CALL tab_2d_1d( npti, nptidx(1:npti), zvrel_1d (1:npti) , zvrel ) 229 230 CALL tab_2d_1d( npti, nptidx(1:npti), hfx_thd_1d(1:npti) , hfx_thd ) 231 CALL tab_2d_1d( npti, nptidx(1:npti), hfx_opw_1d(1:npti) , hfx_opw ) 232 CALL tab_2d_1d( npti, nptidx(1:npti), rn_amax_1d(1:npti) , rn_amax_2d ) 233 CALL tab_2d_1d( npti, nptidx(1:npti), sss_1d (1:npti) , sss_m ) 234 235 ! Convert units for ice internal energy 265 236 DO jl = 1, jpl 266 237 DO jk = 1, nlay_i … … 272 243 END DO 273 244 END DO 274 !------------------------------------------------------------------------------! 275 ! 5) Compute thickness, salinity, enthalpy, age, area and volume of new ice 276 !------------------------------------------------------------------------------! 277 278 !----------------------------------------- 245 279 246 ! Keep old ice areas and volume in memory 280 !-----------------------------------------281 247 zv_b(1:npti,:) = v_i_2d(1:npti,:) 282 248 za_b(1:npti,:) = a_i_2d(1:npti,:) 283 249 284 !---------------------- 285 ! Salinity of new ice 286 !---------------------- 250 ! --- Salinity of new ice --- ! 287 251 SELECT CASE ( nn_icesal ) 288 252 CASE ( 1 ) ! Sice = constant … … 296 260 END SELECT 297 261 298 !------------------------- 299 ! Heat content of new ice 300 !------------------------- 262 ! --- Heat content of new ice --- ! 301 263 ! We assume that new ice is formed at the seawater freezing point 302 264 DO ji = 1, npti … … 307 269 END DO 308 270 309 !---------------- 310 ! Age of new ice 311 !---------------- 271 ! --- Age of new ice --- ! 312 272 zo_newice(1:npti) = 0._wp 313 273 314 !------------------- 315 ! Volume of new ice 316 !------------------- 274 ! --- Volume of new ice --- ! 317 275 DO ji = 1, npti 318 276 … … 351 309 END IF 352 310 353 !----------------- 354 ! Area of new ice 355 !----------------- 311 ! --- Area of new ice --- ! 356 312 DO ji = 1, npti 357 313 za_newice(ji) = zv_newice(ji) / zh_newice(ji) … … 359 315 360 316 !------------------------------------------------------------------------------! 361 ! 6) Redistribute new ice area and volume into ice categories !317 ! 3) Redistribute new ice area and volume into ice categories ! 362 318 !------------------------------------------------------------------------------! 363 319 364 !------------------------ 365 ! 6.1) lateral ice growth 366 !------------------------ 320 ! --- lateral ice growth --- ! 367 321 ! If lateral ice growth gives an ice concentration gt 1, then 368 322 ! we keep the excessive volume in memory and attribute it later to bottom accretion … … 407 361 END DO 408 362 409 !------------------------------------------------ 410 ! 6.2) bottom ice growth + ice enthalpy remapping 411 !------------------------------------------------ 363 ! --- bottom ice growth + ice enthalpy remapping --- ! 412 364 DO jl = 1, jpl 413 365 … … 436 388 END DO 437 389 438 !----------------- 439 ! Update salinity 440 !----------------- 390 ! --- Update salinity --- ! 441 391 DO jl = 1, jpl 442 392 DO ji = 1, npti … … 445 395 END DO 446 396 447 !------------------------------------------------------------------------------! 448 ! 8) Change units for e_i 449 !------------------------------------------------------------------------------! 397 ! Change units for e_i 450 398 DO jl = 1, jpl 451 399 DO jk = 1, nlay_i … … 453 401 END DO 454 402 END DO 455 !------------------------------------------------------------------------------! 456 ! 7) Change 2D vectors to 1D vectors 457 !------------------------------------------------------------------------------! 403 404 ! Move 2D vectors to 1D vectors 458 405 CALL tab_2d_3d( npti, nptidx(1:npti), a_i_2d (1:npti,1:jpl), a_i (:,:,:) ) 459 406 CALL tab_2d_3d( npti, nptidx(1:npti), v_i_2d (1:npti,1:jpl), v_i (:,:,:) ) -
NEMO/trunk/src/ICE/icethd_ent.F90
r9598 r9604 5 5 !! after vertical growth/melt 6 6 !!====================================================================== 7 !! History : LIM ! 2003-05 (M. Vancoppenolle) Original code in 1D 8 !! ! 2005-07 (M. Vancoppenolle) 3D version 9 !! ! 2006-11 (X. Fettweis) Vectorized 10 !! 3.0 ! 2008-03 (M. Vancoppenolle) Energy conservation and clean code 11 !! 3.4 ! 2011-02 (G. Madec) dynamical allocation 12 !! - ! 2014-05 (C. Rousset) complete rewriting 7 !! History : ! 2003-05 (M. Vancoppenolle) Original code in 1D 8 !! ! 2005-07 (M. Vancoppenolle) 3D version 9 !! 3.6 ! 2014-05 (C. Rousset) New version 10 !! 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 13 11 !!---------------------------------------------------------------------- 14 12 #if defined key_si3 -
NEMO/trunk/src/ICE/icethd_pnd.F90
r9598 r9604 2 2 !!====================================================================== 3 3 !! *** MODULE icethd_pnd *** 4 !! Melt ponds4 !! sea-ice: Melt ponds on top of sea ice 5 5 !!====================================================================== 6 !! history : ! Original code by Daniela Flocco and AdrianTurner7 !! 1.0 ! 2012 (O. Lecomte) Adaptation for scientific tests (NEMO3.1)8 !! 2.0 ! 2017 (M. Vancoppenolle, O. Lecomte, C. Rousset) Implementation in NEMO46 !! history : ! 2012 (O. Lecomte) Adaptation to LIM from Flocco and Turner 7 !! ! 2017 (M. Vancoppenolle, O. Lecomte, C. Rousset) Implementation 8 !! 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 9 9 !!---------------------------------------------------------------------- 10 10 #if defined key_si3 … … 74 74 !! 75 75 !! ** Method : Melt pond fraction and thickness are prescribed 76 !! to non-zero values when t_su = 0C76 !! to non-zero values when t_su = 0C 77 77 !! 78 78 !! ** Tunable parameters : pond fraction (rn_apnd), pond depth (rn_hpnd) 79 79 !! 80 80 !! ** Note : Coupling with such melt ponds is only radiative 81 !! Advection, ridging, rafting... are bypassed81 !! Advection, ridging, rafting... are bypassed 82 82 !! 83 83 !! ** References : Bush, G.W., and Trump, D.J. (2017) -
NEMO/trunk/src/ICE/icethd_sal.F90
r9598 r9604 4 4 !! sea-ice : computation of salinity variations in the ice 5 5 !!====================================================================== 6 !! History : - ! 2003-05(M. Vancoppenolle) UCL-ASTR first coding for LIM3-1D7 !! 3.0 ! 2005-12(M. Vancoppenolle) adapted to the 3-D version8 !! 4.0 ! 2011-02 (G. Madec) dynamical allocation6 !! History : - ! 2003-05 (M. Vancoppenolle) UCL-ASTR first coding for LIM3-1D 7 !! 3.0 ! 2005-12 (M. Vancoppenolle) adapted to the 3-D version 8 !! 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 9 9 !!--------------------------------------------------------------------- 10 10 #if defined key_si3 -
NEMO/trunk/src/ICE/icethd_zdf.F90
r9598 r9604 2 2 !!====================================================================== 3 3 !! *** MODULE icethd_zdf *** 4 !! sea-ice: vertical heat diffusion in sea ice (computation of temperatures)4 !! sea-ice: master routine for vertical heat diffusion in sea ice 5 5 !!====================================================================== 6 !! History : LIM ! 02-2003 (M. Vancoppenolle) original 1D code 7 !! ! 06-2005 (M. Vancoppenolle) 3d version 8 !! ! 11-2006 (X Fettweis) Vectorization by Xavier 9 !! ! 04-2007 (M. Vancoppenolle) Energy conservation 10 !! 4.0 ! 2011-02 (G. Madec) dynamical allocation 11 !! - ! 2012-05 (C. Rousset) add penetration solar flux 6 !! History : 4.0 ! 2018 (C. Rousset) Original code SI3 12 7 !!---------------------------------------------------------------------- 13 8 #if defined key_si3 … … 16 11 !!---------------------------------------------------------------------- 17 12 !! ice_thd_zdf : select the appropriate routine for vertical heat diffusion calculation 18 !! ice_thd_zdf_BL99 : 19 !! ice_thd_zdf_init : 13 !! ice_thd_zdf_BL99 : heat diffusion from Bitz and Lipscomb 1999 14 !! ice_thd_zdf_init : initialization 20 15 !!---------------------------------------------------------------------- 21 16 USE dom_oce ! ocean space and time domain -
NEMO/trunk/src/ICE/icethd_zdf_bl99.F90
r9598 r9604 4 4 !! sea-ice: vertical heat diffusion in sea ice (computation of temperatures) 5 5 !!====================================================================== 6 !! History : LIM ! 02-2003 (M. Vancoppenolle) original 1D code 7 !! ! 06-2005 (M. Vancoppenolle) 3d version 8 !! ! 11-2006 (X Fettweis) Vectorization by Xavier 9 !! ! 04-2007 (M. Vancoppenolle) Energy conservation 10 !! 4.0 ! 2011-02 (G. Madec) dynamical allocation 11 !! - ! 2012-05 (C. Rousset) add penetration solar flux 6 !! History : ! 2003-02 (M. Vancoppenolle) original 1D code LIM 7 !! ! 2005-06 (M. Vancoppenolle) 3d version 8 !! 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 12 9 !!---------------------------------------------------------------------- 13 10 #if defined key_si3 -
NEMO/trunk/src/ICE/iceupdate.F90
r9598 r9604 4 4 !! Sea-ice : computation of the flux at the sea ice/ocean interface 5 5 !!====================================================================== 6 !! History : - ! 2006-07 (M. Vancoppelle) LIM3 original code 7 !! 3.0 ! 2008-03 (C. Tallandier) surface module 8 !! - ! 2008-04 (C. Tallandier) split in 2 + new ice-ocean coupling 9 !! 3.3 ! 2010-05 (G. Madec) decrease ocean & ice reference salinities in the Baltic sea 10 !! ! + simplification of the ice-ocean stress calculation 11 !! 3.4 ! 2011-02 (G. Madec) dynamical allocation 12 !! - ! 2012 (D. Iovino) salt flux change 13 !! - ! 2012-05 (C. Rousset) add penetration solar flux 14 !! 3.5 ! 2012-10 (A. Coward, G. Madec) salt fluxes ; ice+snow mass 6 !! History : 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 15 7 !!---------------------------------------------------------------------- 16 8 #if defined key_si3 -
NEMO/trunk/src/ICE/icevar.F90
r9598 r9604 2 2 !!====================================================================== 3 3 !! *** MODULE icevar *** 4 !! sea-ice: Different sets of ice model variables 5 !! how to switch from one to another 4 !! sea-ice: series of functions to transform or compute ice variables 5 !!====================================================================== 6 !! History : - ! 2006-01 (M. Vancoppenolle) Original code 7 !! 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 8 !!---------------------------------------------------------------------- 9 #if defined key_si3 10 !!---------------------------------------------------------------------- 11 !! 'key_si3' SI3 sea-ice model 12 !!---------------------------------------------------------------------- 6 13 !! 7 14 !! There are three sets of variables … … 12 19 !! - t_s (jpi,jpj,jpl) 13 20 !! - e_i (jpi,jpj,nlay_i,jpl) 21 !! - e_s (jpi,jpj,nlay_s,jpl) 14 22 !! - sv_i(jpi,jpj,jpl) 15 23 !! - oa_i(jpi,jpj,jpl) … … 29 37 !! - tm_i(jpi,jpj) mean ice temperature 30 38 !! - tm_s(jpi,jpj) mean snw temperature 31 !!======================================================================32 !! History : - ! 2006-01 (M. Vancoppenolle) Original code33 !! 3.4 ! 2011-02 (G. Madec) dynamical allocation34 !! 3.5 ! 2012 (M. Vancoppenolle) add ice_var_itd35 !! 3.6 ! 2014-01 (C. Rousset) add ice_var_zapsmall, rewrite ice_var_itd36 !!----------------------------------------------------------------------37 #if defined key_si338 !!----------------------------------------------------------------------39 !! 'key_si3' SI3 sea-ice model40 39 !!---------------------------------------------------------------------- 41 40 !! ice_var_agg : integrate variables over layers and categories -
NEMO/trunk/src/ICE/icewri.F90
r9598 r9604 4 4 !! sea-ice : output ice variables 5 5 !!====================================================================== 6 !! History : 4.0 ! 2018 (many people) SI3 [aka Sea Ice cube] 7 !!---------------------------------------------------------------------- 6 8 #if defined key_si3 7 9 !!---------------------------------------------------------------------- … … 42 44 SUBROUTINE ice_wri( kt ) 43 45 !!------------------------------------------------------------------- 44 !! This routine computes the average of some variables and write it 45 !! on the ouput files. 46 !! This routine ouputs some (most?) of the sea ice fields 46 47 !!------------------------------------------------------------------- 47 48 INTEGER, INTENT(in) :: kt ! time-step … … 60 61 IF( ln_timing ) CALL timing_start('icewri') 61 62 62 !---------------------------------------- 63 ! Brine volume, switches, missing values 64 !---------------------------------------- 65 66 CALL ice_var_bv ! brine volume 63 ! brine volume 64 CALL ice_var_bv 67 65 68 66 ! tresholds for outputs
Note: See TracChangeset
for help on using the changeset viewer.