- Timestamp:
- 2015-11-20T09:39:06+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_r4621_NOC4_BDY_VERT_INTERP/NEMOGCM/NEMO/LIM_SRC_3/ice.F90
r5038 r5901 11 11 !! 'key_lim3' LIM-3 sea-ice model 12 12 !!---------------------------------------------------------------------- 13 USE par_ice ! LIM sea-ice parameters14 13 USE in_out_manager ! I/O manager 15 14 USE lib_mpp ! MPP library … … 18 17 PRIVATE 19 18 20 PUBLIC ice_alloc ! Called in iceini.F9019 PUBLIC ice_alloc ! Called in sbc_lim_init 21 20 22 21 !!====================================================================== … … 110 109 !! smv_i | - | Sea ice salt content | ppt.m | 111 110 !! oa_i ! - ! Sea ice areal age content | day | 112 !! e_i ! - ! Ice enthalpy | 10^9 J|111 !! e_i ! - ! Ice enthalpy | J/m2 | 113 112 !! - ! q_i_1d ! Ice enthalpy per unit vol. | J/m3 | 114 !! e_s ! - ! Snow enthalpy | 10^9 J|113 !! e_s ! - ! Snow enthalpy | J/m2 | 115 114 !! - ! q_s_1d ! Snow enthalpy per unit vol. | J/m3 | 116 115 !! | … … 148 147 !! tm_i | - | Mean sea ice temperature | K | 149 148 !! ot_i ! - ! Sea ice areal age content | day | 150 !! et_i ! - ! Total ice enthalpy | 10^9 J|151 !! et_s ! - ! Total snow enthalpy | 10^9 J|149 !! et_i ! - ! Total ice enthalpy | J/m2 | 150 !! et_s ! - ! Total snow enthalpy | J/m2 | 152 151 !! bv_i ! - ! Mean relative brine volume | ??? | 153 152 !!===================================================================== … … 165 164 REAL(wp), PUBLIC :: r1_rdtice !: = 1. / rdt_ice 166 165 167 ! !!** ice-dynamic namelist (namicedyn) ** 168 INTEGER , PUBLIC :: nevp !: number of iterations for subcycling 169 REAL(wp), PUBLIC :: epsd !: tolerance parameter for dynamic 170 REAL(wp), PUBLIC :: om !: relaxation constant 171 REAL(wp), PUBLIC :: cw !: drag coefficient for oceanic stress 172 REAL(wp), PUBLIC :: pstar !: determines ice strength (N/M), Hibler JPO79 173 REAL(wp), PUBLIC :: c_rhg !: determines changes in ice strength 174 REAL(wp), PUBLIC :: creepl !: creep limit : has to be under 1.0e-9 175 REAL(wp), PUBLIC :: ecc !: eccentricity of the elliptical yield curve 176 REAL(wp), PUBLIC :: ahi0 !: sea-ice hor. eddy diffusivity coeff. (m2/s) 177 REAL(wp), PUBLIC :: telast !: timescale for elastic waves (s) 178 REAL(wp), PUBLIC :: relast !: ratio => telast/rdt_ice (1/3 or 1/9 depending on nb of subcycling nevp) 179 REAL(wp), PUBLIC :: alphaevp !: coeficient of the internal stresses 180 REAL(wp), PUBLIC :: hminrhg !: ice volume (a*h, in m) below which ice velocity is set to ocean velocity 166 ! !!** ice-thickness distribution namelist (namiceitd) ** 167 INTEGER , PUBLIC :: nn_catbnd !: categories distribution following: tanh function (1), or h^(-alpha) function (2) 168 REAL(wp), PUBLIC :: rn_himean !: mean thickness of the domain (used to compute the distribution, nn_itdshp = 2 only) 169 170 ! !!** ice-dynamics namelist (namicedyn) ** 171 LOGICAL , PUBLIC :: ln_icestr_bvf !: use brine volume to diminish ice strength 172 INTEGER , PUBLIC :: nn_icestr !: ice strength parameterization (0=Hibler79 1=Rothrock75) 173 INTEGER , PUBLIC :: nn_nevp !: number of iterations for subcycling 174 INTEGER , PUBLIC :: nn_ahi0 !: sea-ice hor. eddy diffusivity coeff. (3 ways of calculation) 175 REAL(wp), PUBLIC :: rn_pe_rdg !: ridging work divided by pot. energy change in ridging, nn_icestr = 1 176 REAL(wp), PUBLIC :: rn_cio !: drag coefficient for oceanic stress 177 REAL(wp), PUBLIC :: rn_pstar !: determines ice strength (N/M), Hibler JPO79 178 REAL(wp), PUBLIC :: rn_crhg !: determines changes in ice strength 179 REAL(wp), PUBLIC :: rn_creepl !: creep limit : has to be under 1.0e-9 180 REAL(wp), PUBLIC :: rn_ecc !: eccentricity of the elliptical yield curve 181 REAL(wp), PUBLIC :: rn_ahi0_ref !: sea-ice hor. eddy diffusivity coeff. (m2/s) 182 REAL(wp), PUBLIC :: rn_relast !: ratio => telast/rdt_ice (1/3 or 1/9 depending on nb of subcycling nevp) 181 183 182 184 ! !!** ice-salinity namelist (namicesal) ** 183 REAL(wp), PUBLIC :: s_i_max !: maximum ice salinity [PSU] 184 REAL(wp), PUBLIC :: s_i_min !: minimum ice salinity [PSU] 185 REAL(wp), PUBLIC :: s_i_0 !: 1st sal. value for the computation of sal .prof. [PSU] 186 REAL(wp), PUBLIC :: s_i_1 !: 2nd sal. value for the computation of sal .prof. [PSU] 187 REAL(wp), PUBLIC :: sal_G !: restoring salinity for gravity drainage [PSU] 188 REAL(wp), PUBLIC :: sal_F !: restoring salinity for flushing [PSU] 189 REAL(wp), PUBLIC :: time_G !: restoring time constant for gravity drainage (= 20 days) [s] 190 REAL(wp), PUBLIC :: time_F !: restoring time constant for gravity drainage (= 10 days) [s] 191 REAL(wp), PUBLIC :: bulk_sal !: bulk salinity (ppt) in case of constant salinity 185 REAL(wp), PUBLIC :: rn_simax !: maximum ice salinity [PSU] 186 REAL(wp), PUBLIC :: rn_simin !: minimum ice salinity [PSU] 187 REAL(wp), PUBLIC :: rn_sal_gd !: restoring salinity for gravity drainage [PSU] 188 REAL(wp), PUBLIC :: rn_sal_fl !: restoring salinity for flushing [PSU] 189 REAL(wp), PUBLIC :: rn_time_gd !: restoring time constant for gravity drainage (= 20 days) [s] 190 REAL(wp), PUBLIC :: rn_time_fl !: restoring time constant for gravity drainage (= 10 days) [s] 191 REAL(wp), PUBLIC :: rn_icesal !: bulk salinity (ppt) in case of constant salinity 192 192 193 193 ! !!** ice-salinity namelist (namicesal) ** 194 INTEGER , PUBLIC :: n um_sal!: salinity configuration used in the model194 INTEGER , PUBLIC :: nn_icesal !: salinity configuration used in the model 195 195 ! ! 1 - constant salinity in both space and time 196 196 ! ! 2 - prognostic salinity (s(z,t)) 197 197 ! ! 3 - salinity profile, constant in time 198 INTEGER , PUBLIC :: thcon_i_swi !: thermal conductivity: =0 Untersteiner (1964) ; =1 Pringle et al (2007) 198 INTEGER , PUBLIC :: nn_ice_thcon !: thermal conductivity: =0 Untersteiner (1964) ; =1 Pringle et al (2007) 199 INTEGER , PUBLIC :: nn_monocat !: virtual ITD mono-category parameterizations (1) or not (0) 200 LOGICAL , PUBLIC :: ln_it_qnsice !: iterate surface flux with changing surface temperature or not (F) 199 201 200 202 ! !!** ice-mechanical redistribution namelist (namiceitdme) 201 REAL(wp), PUBLIC :: Cs !: fraction of shearing energy contributing to ridging 202 REAL(wp), PUBLIC :: Cf !: ratio of ridging work to PE loss 203 REAL(wp), PUBLIC :: fsnowrdg !: fractional snow loss to the ocean during ridging 204 REAL(wp), PUBLIC :: fsnowrft !: fractional snow loss to the ocean during ridging 205 REAL(wp), PUBLIC :: Gstar !: fractional area of young ice contributing to ridging 206 REAL(wp), PUBLIC :: astar !: equivalent of G* for an exponential participation function 207 REAL(wp), PUBLIC :: Hstar !: thickness that determines the maximal thickness of ridged ice 208 REAL(wp), PUBLIC :: hparmeter !: threshold thickness (m) for rafting / ridging 209 REAL(wp), PUBLIC :: Craft !: coefficient for smoothness of the hyperbolic tangent in rafting 210 REAL(wp), PUBLIC :: ridge_por !: initial porosity of ridges (0.3 regular value) 211 REAL(wp), PUBLIC :: betas !: coef. for partitioning of snowfall between leads and sea ice 212 REAL(wp), PUBLIC :: kappa_i !: coef. for the extinction of radiation Grenfell et al. (2006) [1/m] 213 REAL(wp), PUBLIC :: nconv_i_thd !: maximal number of iterations for heat diffusion 214 REAL(wp), PUBLIC :: maxer_i_thd !: maximal tolerated error (C) for heat diffusion 203 REAL(wp), PUBLIC :: rn_cs !: fraction of shearing energy contributing to ridging 204 REAL(wp), PUBLIC :: rn_fsnowrdg !: fractional snow loss to the ocean during ridging 205 REAL(wp), PUBLIC :: rn_fsnowrft !: fractional snow loss to the ocean during ridging 206 REAL(wp), PUBLIC :: rn_gstar !: fractional area of young ice contributing to ridging 207 REAL(wp), PUBLIC :: rn_astar !: equivalent of G* for an exponential participation function 208 REAL(wp), PUBLIC :: rn_hstar !: thickness that determines the maximal thickness of ridged ice 209 REAL(wp), PUBLIC :: rn_hraft !: threshold thickness (m) for rafting / ridging 210 REAL(wp), PUBLIC :: rn_craft !: coefficient for smoothness of the hyperbolic tangent in rafting 211 REAL(wp), PUBLIC :: rn_por_rdg !: initial porosity of ridges (0.3 regular value) 212 REAL(wp), PUBLIC :: rn_betas !: coef. for partitioning of snowfall between leads and sea ice 213 REAL(wp), PUBLIC :: rn_kappa_i !: coef. for the extinction of radiation Grenfell et al. (2006) [1/m] 214 REAL(wp), PUBLIC :: nn_conv_dif !: maximal number of iterations for heat diffusion 215 REAL(wp), PUBLIC :: rn_terr_dif !: maximal tolerated error (C) for heat diffusion 215 216 216 217 ! !!** ice-mechanical redistribution namelist (namiceitdme) 217 INTEGER , PUBLIC :: ridge_scheme_swi !: scheme used for ice ridging218 INTEGER , PUBLIC :: raft_swi !: rafting of ice or not219 INTEGER , PUBLIC :: partfun_swi !: participation function: =0 Thorndike et al. (1975), =1 Lipscomb et al. (2007) 220 INTEGER , PUBLIC :: brinstren_swi !: use brine volume to diminish ice strength221 222 REAL(wp), PUBLIC :: usecc2 !: = 1.0 / ( ecc * ecc )223 REAL(wp), PUBLIC :: r hoco !: = rau0 * cw224 218 LOGICAL , PUBLIC :: ln_rafting !: rafting of ice or not 219 INTEGER , PUBLIC :: nn_partfun !: participation function: =0 Thorndike et al. (1975), =1 Lipscomb et al. (2007) 220 221 REAL(wp), PUBLIC :: usecc2 !: = 1.0 / ( rn_ecc * rn_ecc ) 222 REAL(wp), PUBLIC :: rhoco !: = rau0 * cio 223 REAL(wp), PUBLIC :: r1_nlay_i !: 1 / nlay_i 224 REAL(wp), PUBLIC :: r1_nlay_s !: 1 / nlay_s 225 ! 225 226 ! !!** switch for presence of ice or not 226 227 REAL(wp), PUBLIC :: rswitch 227 228 ! 228 229 ! !!** define some parameters 229 REAL(wp), PUBLIC, PARAMETER :: unit_fac = 1.e+09_wp !: conversion factor for ice / snow enthalpy230 230 REAL(wp), PUBLIC, PARAMETER :: epsi06 = 1.e-06_wp !: small number 231 231 REAL(wp), PUBLIC, PARAMETER :: epsi10 = 1.e-10_wp !: small number … … 266 266 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wfx_res !: residual component of wfx_ice [kg/m2] 267 267 268 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: afx_tot !: ice concentration tendency (total) [s-1] 269 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: afx_thd !: ice concentration tendency (thermodynamics) [s-1] 270 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: afx_dyn !: ice concentration tendency (dynamics) [s-1] 271 268 272 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sfx_bog !: salt flux due to ice growth/melt [PSU/m2/s] 269 273 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sfx_bom !: salt flux due to ice growth/melt [PSU/m2/s] … … 282 286 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_snw !: heat flux for snow melt 283 287 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_err !: heat flux error after heat diffusion 288 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_err_dif !: heat flux remaining due to change in non-solar flux 284 289 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_err_rem !: heat flux error after heat remapping 285 290 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: hfx_in !: heat flux available for thermo transformations … … 296 301 297 302 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ftr_ice !: transmitted solar radiation under ice 298 299 ! temporary arrays for dummy version of the code300 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: dh_i_surf2D, dh_i_bott2D, q_s301 303 302 304 !!-------------------------------------------------------------------------- … … 333 335 334 336 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: t_i !: ice temperatures [K] 335 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: e_i !: ice thermal contents [Giga J]337 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: e_i !: ice thermal contents [J/m2] 336 338 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: s_i !: ice salinities [PSU] 337 339 … … 356 358 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: e_i_b !: ice temperatures 357 359 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: u_ice_b, v_ice_b !: ice velocity 358 359 360 !!-------------------------------------------------------------------------- 361 !! * Increment of global variables 362 !!-------------------------------------------------------------------------- 360 361 !!-------------------------------------------------------------------------- 362 !! * Ice thickness distribution variables 363 !!-------------------------------------------------------------------------- 364 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: hi_max !: Boundary of ice thickness categories in thickness space 365 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: hi_mean !: Mean ice thickness in catgories 366 367 !!-------------------------------------------------------------------------- 368 !! * Ice Run 369 !!-------------------------------------------------------------------------- 370 ! !!: ** Namelist namicerun read in sbc_lim_init ** 371 INTEGER , PUBLIC :: jpl !: number of ice categories 372 INTEGER , PUBLIC :: nlay_i !: number of ice layers 373 INTEGER , PUBLIC :: nlay_s !: number of snow layers 374 CHARACTER(len=32), PUBLIC :: cn_icerst_in !: suffix of ice restart name (input) 375 CHARACTER(len=256), PUBLIC :: cn_icerst_indir !: ice restart input directory 376 CHARACTER(len=32), PUBLIC :: cn_icerst_out !: suffix of ice restart name (output) 377 CHARACTER(len=256), PUBLIC :: cn_icerst_outdir!: ice restart output directory 378 LOGICAL , PUBLIC :: ln_limdyn !: flag for ice dynamics (T) or not (F) 379 LOGICAL , PUBLIC :: ln_icectl !: flag for sea-ice points output (T) or not (F) 380 REAL(wp) , PUBLIC :: rn_amax !: maximum ice concentration 381 INTEGER , PUBLIC :: iiceprt !: debug i-point 382 INTEGER , PUBLIC :: jiceprt !: debug j-point 383 ! 384 !!-------------------------------------------------------------------------- 385 !! * Ice diagnostics 386 !!-------------------------------------------------------------------------- 387 ! Increment of global variables 363 388 ! thd refers to changes induced by thermodynamics 364 389 ! trp '' '' '' advection (transport of ice) 365 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: d_a_i_thd , d_a_i_trp !: icefractions 366 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: d_v_s_thd , d_v_s_trp !: snow volume 367 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: d_v_i_thd , d_v_i_trp !: ice volume 368 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: d_smv_i_thd, d_smv_i_trp !: 369 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: d_sm_i_fl , d_sm_i_gd !: 370 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: d_sm_i_se , d_sm_i_si , d_sm_i_la !: 371 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: d_oa_i_thd , d_oa_i_trp !: 372 373 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: d_e_s_thd , d_e_s_trp !: 374 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: d_e_i_thd , d_e_i_trp !: 375 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: d_u_ice_dyn, d_v_ice_dyn !: ice velocity 376 377 !!-------------------------------------------------------------------------- 378 !! * Ice thickness distribution variables 379 !!-------------------------------------------------------------------------- 380 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: hi_max !: Boundary of ice thickness categories in thickness space 381 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) :: hi_mean !: Mean ice thickness in catgories 382 383 !!-------------------------------------------------------------------------- 384 !! * Ice Run 385 !!-------------------------------------------------------------------------- 386 ! !!: ** Namelist namicerun read in iceini ** 387 CHARACTER(len=32) , PUBLIC :: cn_icerst_in !: suffix of ice restart name (input) 388 CHARACTER(len=32) , PUBLIC :: cn_icerst_out !: suffix of ice restart name (output) 389 LOGICAL , PUBLIC :: ln_limdyn !: flag for ice dynamics (T) or not (F) 390 LOGICAL , PUBLIC :: ln_nicep !: flag for sea-ice points output (T) or not (F) 391 REAL(wp) , PUBLIC :: cai !: atmospheric drag over sea ice 392 REAL(wp) , PUBLIC :: cao !: atmospheric drag over ocean 393 REAL(wp) , PUBLIC :: amax !: maximum ice concentration 390 LOGICAL , PUBLIC :: ln_limdiahsb !: flag for ice diag (T) or not (F) 391 LOGICAL , PUBLIC :: ln_limdiaout !: flag for ice diag (T) or not (F) 392 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_trp_vi !: transport of ice volume 393 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_trp_vs !: transport of snw volume 394 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_trp_ei !: transport of ice enthalpy (W/m2) 395 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_trp_es !: transport of snw enthalpy (W/m2) 396 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_trp_smv !: transport of salt content 394 397 ! 395 !!-------------------------------------------------------------------------- 396 !! * Ice diagnostics 397 !!-------------------------------------------------------------------------- 398 !! Check if everything down here is necessary 399 LOGICAL , PUBLIC :: ln_limdiahsb !: flag for ice diag (T) or not (F) 400 LOGICAL , PUBLIC :: ln_limdiaout !: flag for ice diag (T) or not (F) 401 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: dv_dt_thd !: thermodynamic growth rates 402 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_trp_vi !: transport of ice volume 403 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_trp_vs !: transport of snw volume 404 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_trp_ei !: transport of ice enthalpy (W/m2) 405 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_trp_es !: transport of snw enthalpy (W/m2) 398 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_heat !: snw/ice heat content variation [W/m2] 399 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_smvi !: ice salt content variation [] 400 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_vice !: ice volume variation [m/s] 401 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_vsnw !: snw volume variation [m/s] 406 402 ! 407 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: diag_heat_dhc !: snw/ice heat content variation [W/m2]408 !409 INTEGER , PUBLIC :: jiindx, jjindx !: indexes of the debugging point410 411 403 !!---------------------------------------------------------------------- 412 404 !! NEMO/LIM3 4.0 , UCL - NEMO Consortium (2010) … … 422 414 INTEGER :: ice_alloc 423 415 ! 424 INTEGER :: ierr(1 9), ii416 INTEGER :: ierr(17), ii 425 417 !!----------------------------------------------------------------- 426 418 … … 439 431 440 432 ii = ii + 1 441 ALLOCATE( sist (jpi,jpj) , icethi (jpi,jpj) , t_bo (jpi,jpj) , &442 & frld (jpi,jpj) , pfrld (jpi,jpj) , phicif (jpi,jpj) , &443 & wfx_snw(jpi,jpj) , wfx_ice(jpi,jpj) , wfx_sub(jpi,jpj) , &433 ALLOCATE( sist (jpi,jpj) , icethi (jpi,jpj) , t_bo (jpi,jpj) , & 434 & frld (jpi,jpj) , pfrld (jpi,jpj) , phicif (jpi,jpj) , & 435 & wfx_snw(jpi,jpj) , wfx_ice(jpi,jpj) , wfx_sub(jpi,jpj) , & 444 436 & wfx_bog(jpi,jpj) , wfx_dyn(jpi,jpj) , wfx_bom(jpi,jpj) , wfx_sum(jpi,jpj) , & 445 & wfx_res(jpi,jpj) , wfx_sni(jpi,jpj) , wfx_opw(jpi,jpj) , wfx_spr(jpi,jpj) , qlead (jpi,jpj) , & 446 & fhtur (jpi,jpj) , ftr_ice(jpi,jpj,jpl) , & 447 & sfx_res(jpi,jpj) , sfx_bri(jpi,jpj) , sfx_dyn(jpi,jpj) , & 448 & sfx_bog(jpi,jpj) , sfx_bom(jpi,jpj) , sfx_sum(jpi,jpj) , sfx_sni(jpi,jpj) , sfx_opw(jpi,jpj) , & 449 & hfx_res(jpi,jpj) , hfx_snw(jpi,jpj) , hfx_sub(jpi,jpj) , hfx_err(jpi,jpj) , hfx_err_rem(jpi,jpj), & 450 & hfx_in (jpi,jpj) , hfx_out(jpi,jpj) , fhld(jpi,jpj) , & 451 & hfx_sum(jpi,jpj) , hfx_bom(jpi,jpj) , hfx_bog(jpi,jpj) , hfx_dif(jpi,jpj) , hfx_opw(jpi,jpj) , & 437 & wfx_res(jpi,jpj) , wfx_sni(jpi,jpj) , wfx_opw(jpi,jpj) , wfx_spr(jpi,jpj) , & 438 & afx_tot(jpi,jpj) , afx_thd(jpi,jpj), afx_dyn(jpi,jpj) , & 439 & fhtur (jpi,jpj) , ftr_ice(jpi,jpj,jpl), qlead (jpi,jpj) , & 440 & sfx_res(jpi,jpj) , sfx_bri(jpi,jpj) , sfx_dyn(jpi,jpj) , & 441 & sfx_bog(jpi,jpj) , sfx_bom(jpi,jpj) , sfx_sum(jpi,jpj) , sfx_sni(jpi,jpj) , sfx_opw(jpi,jpj) , & 442 & hfx_res(jpi,jpj) , hfx_snw(jpi,jpj) , hfx_sub(jpi,jpj) , hfx_err(jpi,jpj) , & 443 & hfx_err_dif(jpi,jpj) , hfx_err_rem(jpi,jpj) , & 444 & hfx_in (jpi,jpj) , hfx_out(jpi,jpj) , fhld(jpi,jpj) , & 445 & hfx_sum(jpi,jpj) , hfx_bom(jpi,jpj) , hfx_bog(jpi,jpj) , hfx_dif(jpi,jpj) , hfx_opw(jpi,jpj) , & 452 446 & hfx_thd(jpi,jpj) , hfx_dyn(jpi,jpj) , hfx_spr(jpi,jpj) , STAT=ierr(ii) ) 453 447 … … 464 458 & bv_i (jpi,jpj) , smt_i(jpi,jpj) , STAT=ierr(ii) ) 465 459 ii = ii + 1 466 ALLOCATE( t_s(jpi,jpj,nlay_s,jpl) , & 467 & e_s(jpi,jpj,nlay_s,jpl) , STAT=ierr(ii) ) 468 ii = ii + 1 469 ALLOCATE( t_i(jpi,jpj,nlay_i+1,jpl) , e_i(jpi,jpj,nlay_i+1,jpl) , s_i(jpi,jpj,nlay_i+1,jpl) , STAT=ierr(ii) ) 460 ALLOCATE( t_s(jpi,jpj,nlay_s,jpl) , e_s(jpi,jpj,nlay_s,jpl) , STAT=ierr(ii) ) 461 ii = ii + 1 462 ALLOCATE( t_i(jpi,jpj,nlay_i,jpl) , e_i(jpi,jpj,nlay_i,jpl) , s_i(jpi,jpj,nlay_i,jpl) , STAT=ierr(ii) ) 470 463 471 464 ! * Moments for advection … … 483 476 & STAT=ierr(ii) ) 484 477 ii = ii + 1 485 ALLOCATE( sxe (jpi,jpj,nlay_i +1,jpl) , sye (jpi,jpj,nlay_i+1,jpl) , sxxe(jpi,jpj,nlay_i+1,jpl) , &486 & syye(jpi,jpj,nlay_i +1,jpl) , sxye(jpi,jpj,nlay_i+1,jpl), STAT=ierr(ii) )478 ALLOCATE( sxe (jpi,jpj,nlay_i,jpl) , sye (jpi,jpj,nlay_i,jpl) , sxxe(jpi,jpj,nlay_i,jpl) , & 479 & syye(jpi,jpj,nlay_i,jpl) , sxye(jpi,jpj,nlay_i,jpl) , STAT=ierr(ii) ) 487 480 488 481 ! * Old values of global variables 489 482 ii = ii + 1 490 483 ALLOCATE( v_s_b (jpi,jpj,jpl) , v_i_b (jpi,jpj,jpl) , e_s_b(jpi,jpj,nlay_s,jpl) , & 491 & a_i_b (jpi,jpj,jpl) , smv_i_b(jpi,jpj,jpl) , e_i_b(jpi,jpj,nlay_i+1 ,jpl) , & 492 & oa_i_b (jpi,jpj,jpl) , & 493 & u_ice_b(jpi,jpj) , v_ice_b(jpi,jpj) , STAT=ierr(ii) ) 494 495 ! * Increment of global variables 496 ii = ii + 1 497 ALLOCATE( d_a_i_thd(jpi,jpj,jpl) , d_a_i_trp (jpi,jpj,jpl) , d_v_s_thd (jpi,jpj,jpl) , d_v_s_trp (jpi,jpj,jpl) , & 498 & d_v_i_thd(jpi,jpj,jpl) , d_v_i_trp (jpi,jpj,jpl) , d_smv_i_thd(jpi,jpj,jpl) , d_smv_i_trp(jpi,jpj,jpl) , & 499 & d_sm_i_fl(jpi,jpj,jpl) , d_sm_i_gd (jpi,jpj,jpl) , d_sm_i_se (jpi,jpj,jpl) , d_sm_i_si (jpi,jpj,jpl) , & 500 & d_sm_i_la(jpi,jpj,jpl) , d_oa_i_thd(jpi,jpj,jpl) , d_oa_i_trp (jpi,jpj,jpl) , & 501 & STAT=ierr(ii) ) 502 ii = ii + 1 503 ALLOCATE( d_e_s_thd(jpi,jpj,nlay_s,jpl) , d_e_i_thd(jpi,jpj,nlay_i,jpl) , d_u_ice_dyn(jpi,jpj) , & 504 & d_e_s_trp(jpi,jpj,nlay_s,jpl) , d_e_i_trp(jpi,jpj,nlay_i,jpl) , d_v_ice_dyn(jpi,jpj) , STAT=ierr(ii) ) 484 & a_i_b (jpi,jpj,jpl) , smv_i_b(jpi,jpj,jpl) , e_i_b(jpi,jpj,nlay_i,jpl) , & 485 & oa_i_b (jpi,jpj,jpl) , u_ice_b(jpi,jpj) , v_ice_b(jpi,jpj) , STAT=ierr(ii) ) 505 486 506 487 ! * Ice thickness distribution variables … … 510 491 ! * Ice diagnostics 511 492 ii = ii + 1 512 ALLOCATE( d v_dt_thd(jpi,jpj,jpl), &513 & diag_trp_ vi(jpi,jpj), diag_trp_vs (jpi,jpj), diag_trp_ei(jpi,jpj), &514 & diag_ trp_es(jpi,jpj), diag_heat_dhc(jpi,jpj),STAT=ierr(ii) )493 ALLOCATE( diag_trp_vi(jpi,jpj), diag_trp_vs (jpi,jpj), diag_trp_ei(jpi,jpj), & 494 & diag_trp_es(jpi,jpj), diag_trp_smv(jpi,jpj), diag_heat (jpi,jpj), & 495 & diag_smvi (jpi,jpj), diag_vice (jpi,jpj), diag_vsnw (jpi,jpj), STAT=ierr(ii) ) 515 496 516 497 ice_alloc = MAXVAL( ierr(:) )
Note: See TracChangeset
for help on using the changeset viewer.