Changeset 4921 for branches/2014/dev_r4650_UKMO13_CICE_changes_take2/NEMOGCM/NEMO/LIM_SRC_3/limistate.F90
- Timestamp:
- 2014-11-28T14:59:01+01:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_r4650_UKMO13_CICE_changes_take2/NEMOGCM/NEMO/LIM_SRC_3/limistate.F90
r4909 r4921 26 26 USE dom_ice ! sea-ice domain 27 27 USE in_out_manager ! I/O manager 28 USE lbclnk ! lateral boundary condition - MPP exchanges29 28 USE lib_mpp ! MPP library 30 29 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 31 30 USE wrk_nemo ! work arrays 31 USE cpl_oasis3, ONLY : lk_cpl 32 32 33 33 IMPLICIT NONE … … 38 38 !! * Module variables 39 39 ! !!** init namelist (namiceini) ** 40 REAL(wp) :: ttest ! threshold water temperature for initial sea ice 41 REAL(wp) :: hninn ! initial snow thickness in the north 42 REAL(wp) :: hnins ! initial snow thickness in the south 43 REAL(wp) :: hginn ! initial ice thickness in the north 44 REAL(wp) :: hgins ! initial ice thickness in the south 45 REAL(wp) :: aginn ! initial leads area in the north 46 REAL(wp) :: agins ! initial leads area in the south 47 REAL(wp) :: sinn ! initial salinity 48 REAL(wp) :: sins 49 40 REAL(wp) :: thres_sst ! threshold water temperature for initial sea ice 41 REAL(wp) :: hts_ini_n ! initial snow thickness in the north 42 REAL(wp) :: hts_ini_s ! initial snow thickness in the south 43 REAL(wp) :: hti_ini_n ! initial ice thickness in the north 44 REAL(wp) :: hti_ini_s ! initial ice thickness in the south 45 REAL(wp) :: ati_ini_n ! initial leads area in the north 46 REAL(wp) :: ati_ini_s ! initial leads area in the south 47 REAL(wp) :: smi_ini_n ! initial salinity 48 REAL(wp) :: smi_ini_s ! initial salinity 49 REAL(wp) :: tmi_ini_n ! initial temperature 50 REAL(wp) :: tmi_ini_s ! initial temperature 51 52 LOGICAL :: ln_limini ! initialization or not 50 53 !!---------------------------------------------------------------------- 51 54 !! LIM 3.0, UCL-LOCEAN-IPSL (2008) … … 90 93 INTEGER :: i_hemis, i_fill, jl0 91 94 REAL(wp) :: ztest_1, ztest_2, ztest_3, ztest_4, ztests, zsigma, zarg, zA, zV, zA_cons, zV_cons, zconv 92 REAL(wp), POINTER, DIMENSION(:) :: zh m_i_ini, zat_i_ini, zvt_i_ini, zhm_s_ini, zsm_i_ini93 REAL(wp), POINTER, DIMENSION(:,:) :: zh t_i_ini, za_i_ini, zv_i_ini94 REAL(wp), POINTER, DIMENSION(:,:) :: z idto! ice indicator95 REAL(wp), POINTER, DIMENSION(:) :: zht_i_ini, zat_i_ini, zvt_i_ini, zht_s_ini, zsm_i_ini, ztm_i_ini 96 REAL(wp), POINTER, DIMENSION(:,:) :: zh_i_ini, za_i_ini, zv_i_ini 97 REAL(wp), POINTER, DIMENSION(:,:) :: zswitch ! ice indicator 95 98 INTEGER, POINTER, DIMENSION(:,:) :: zhemis ! hemispheric index 96 99 !-------------------------------------------------------------------- 97 100 98 CALL wrk_alloc( jpi, jpj, z idto)101 CALL wrk_alloc( jpi, jpj, zswitch ) 99 102 CALL wrk_alloc( jpi, jpj, zhemis ) 100 CALL wrk_alloc( jpl, 2, zht_i_ini, za_i_ini, zv_i_ini ) 101 CALL wrk_alloc( 2, zhm_i_ini, zat_i_ini, zvt_i_ini, zhm_s_ini, zsm_i_ini ) 102 103 epsi20 = 1.0e-20 103 CALL wrk_alloc( jpl, 2, zh_i_ini, za_i_ini, zv_i_ini ) 104 CALL wrk_alloc( 2, zht_i_ini, zat_i_ini, zvt_i_ini, zht_s_ini, zsm_i_ini, ztm_i_ini ) 105 106 epsi20 = 1.e-20_wp 107 104 108 IF(lwp) WRITE(numout,*) 105 109 IF(lwp) WRITE(numout,*) 'lim_istate : Ice initialization ' … … 112 116 CALL lim_istate_init ! reading the initials parameters of the ice 113 117 114 !!gm in lim2 the initialisation if only done if required in the namelist : 115 !!gm IF( .NOT. ln_limini ) THEN 116 !!gm this should be added in lim3 namelist... 118 # if defined key_coupled 119 albege(:,:) = 0.8 * tms(:,:) 120 # endif 121 122 ! surface temperature 123 DO jl = 1, jpl ! loop over categories 124 t_su (:,:,jl) = rtt * tms(:,:) 125 tn_ice(:,:,jl) = rtt * tms(:,:) 126 END DO 127 ! Basal temperature is set to the freezing point of seawater in Kelvin 128 t_bo(:,:) = ( tfreez( tsn(:,:,1,jp_sal) ) + rt0 ) * tms(:,:) 129 130 IF( ln_limini ) THEN 117 131 118 132 !-------------------------------------------------------------------- 119 133 ! 2) Basal temperature, ice mask and hemispheric index 120 134 !-------------------------------------------------------------------- 121 122 ! Basal temperature is set to the freezing point of seawater in Celsius 123 t_bo(:,:) = tfreez( tsn(:,:,1,jp_sal) ) * tmask(:,:,1) ! freezing/melting point of sea water [Celcius] 124 125 DO jj = 1, jpj ! ice if sst <= t-freez + ttest 135 ! ice if sst <= t-freez + thres_sst 136 DO jj = 1, jpj 126 137 DO ji = 1, jpi 127 IF( tsn(ji,jj,1,jp_tem) - t_bo(ji,jj) >= ttest ) THEN ; zidto(ji,jj) = 0._wp ! no ice 128 ELSE ; zidto(ji,jj) = 1._wp ! ice 138 IF( ( tsn(ji,jj,1,jp_tem) - ( t_bo(ji,jj) - rt0 ) ) * tms(ji,jj) >= thres_sst ) THEN 139 zswitch(ji,jj) = 0._wp * tms(ji,jj) ! no ice 140 ELSE 141 zswitch(ji,jj) = 1._wp * tms(ji,jj) ! ice 129 142 ENDIF 130 143 END DO 131 144 END DO 132 145 133 t_bo(:,:) = t_bo(:,:) + rt0 ! conversion to Kelvin134 146 135 147 ! Hemispheric index … … 153 165 ! 3.1) Hemisphere-dependent arrays 154 166 !----------------------------- 155 ! assign initial thickness, concentration, snow depth and salinity to 156 ! an hemisphere-dependent array 157 zhm_i_ini(1) = hginn ; zhm_i_ini(2) = hgins ! ice thickness 158 zat_i_ini(1) = aginn ; zat_i_ini(2) = agins ! ice concentration 159 zvt_i_ini(:) = zhm_i_ini(:) * zat_i_ini(:) ! ice volume 160 zhm_s_ini(1) = hninn ; zhm_s_ini(2) = hnins ! snow depth 161 zsm_i_ini(1) = sinn ; zsm_i_ini(2) = sins ! bulk ice salinity 167 ! assign initial thickness, concentration, snow depth and salinity to an hemisphere-dependent array 168 zht_i_ini(1) = hti_ini_n ; zht_i_ini(2) = hti_ini_s ! ice thickness 169 zht_s_ini(1) = hts_ini_n ; zht_s_ini(2) = hts_ini_s ! snow depth 170 zat_i_ini(1) = ati_ini_n ; zat_i_ini(2) = ati_ini_s ! ice concentration 171 zsm_i_ini(1) = smi_ini_n ; zsm_i_ini(2) = smi_ini_s ! bulk ice salinity 172 ztm_i_ini(1) = tmi_ini_n ; ztm_i_ini(2) = tmi_ini_s ! temperature (ice and snow) 173 174 zvt_i_ini(:) = zht_i_ini(:) * zat_i_ini(:) ! ice volume 162 175 163 176 !--------------------------------------------------------------------- … … 183 196 ! *** 1 category to fill 184 197 IF ( i_fill .EQ. 1 ) THEN 185 zh t_i_ini(1,i_hemis) = zhm_i_ini(i_hemis)186 za_i_ini(1,i_hemis) 187 zh t_i_ini(2:jpl,i_hemis) = 0._wp188 za_i_ini(2:jpl,i_hemis) 198 zh_i_ini(1,i_hemis) = zht_i_ini(i_hemis) 199 za_i_ini(1,i_hemis) = zat_i_ini(i_hemis) 200 zh_i_ini(2:jpl,i_hemis) = 0._wp 201 za_i_ini(2:jpl,i_hemis) = 0._wp 189 202 ELSE 190 203 191 ! *** >1 categores to fill192 !--- Ice thicknesses in the i_fill - 1 first categories204 ! *** >1 categores to fill 205 !--- Ice thicknesses in the i_fill - 1 first categories 193 206 DO jl = 1, i_fill - 1 194 zh t_i_ini(jl,i_hemis) = 0.5 * ( hi_max(jl) + hi_max(jl-1) )207 zh_i_ini(jl,i_hemis) = 0.5 * ( hi_max(jl) + hi_max(jl-1) ) 195 208 END DO 196 197 !--- jl0: most likely index where cc will be maximum209 210 !--- jl0: most likely index where cc will be maximum 198 211 DO jl = 1, jpl 199 IF ( ( zh m_i_ini(i_hemis) .GT. hi_max(jl-1) ) .AND. &200 ( zhm_i_ini(i_hemis) .LE. hi_max(jl) ) ) THEN212 IF ( ( zht_i_ini(i_hemis) .GT. hi_max(jl-1) ) .AND. & 213 ( zht_i_ini(i_hemis) .LE. hi_max(jl) ) ) THEN 201 214 jl0 = jl 202 215 ENDIF 203 216 END DO 204 217 jl0 = MIN(jl0, i_fill) 205 206 !--- Concentrations218 219 !--- Concentrations 207 220 za_i_ini(jl0,i_hemis) = zat_i_ini(i_hemis) / SQRT(REAL(jpl)) 208 221 DO jl = 1, i_fill - 1 209 222 IF ( jl .NE. jl0 ) THEN 210 zsigma = 0.5 * zh m_i_ini(i_hemis)211 zarg = ( zh t_i_ini(jl,i_hemis) - zhm_i_ini(i_hemis) ) / zsigma223 zsigma = 0.5 * zht_i_ini(i_hemis) 224 zarg = ( zh_i_ini(jl,i_hemis) - zht_i_ini(i_hemis) ) / zsigma 212 225 za_i_ini(jl,i_hemis) = za_i_ini(jl0,i_hemis) * EXP(-zarg**2) 213 226 ENDIF 214 END DO 215 227 END DO 228 216 229 zA = 0. ! sum of the areas in the jpl categories 217 230 DO jl = 1, i_fill - 1 … … 221 234 IF ( i_fill .LT. jpl ) za_i_ini(i_fill+1:jpl, i_hemis) = 0._wp 222 235 223 !--- Ice thickness in the last category236 !--- Ice thickness in the last category 224 237 zV = 0. ! sum of the volumes of the N-1 categories 225 238 DO jl = 1, i_fill - 1 226 zV = zV + za_i_ini(jl,i_hemis)*zh t_i_ini(jl,i_hemis)239 zV = zV + za_i_ini(jl,i_hemis)*zh_i_ini(jl,i_hemis) 227 240 END DO 228 zh t_i_ini(i_fill,i_hemis) = ( zvt_i_ini(i_hemis) - zV ) / za_i_ini(i_fill,i_hemis)229 IF ( i_fill .LT. jpl ) zh t_i_ini(i_fill+1:jpl, i_hemis) = 0._wp230 231 !--- volumes232 zv_i_ini(:,i_hemis) = za_i_ini(:,i_hemis) * zh t_i_ini(:,i_hemis)241 zh_i_ini(i_fill,i_hemis) = ( zvt_i_ini(i_hemis) - zV ) / za_i_ini(i_fill,i_hemis) 242 IF ( i_fill .LT. jpl ) zh_i_ini(i_fill+1:jpl, i_hemis) = 0._wp 243 244 !--- volumes 245 zv_i_ini(:,i_hemis) = za_i_ini(:,i_hemis) * zh_i_ini(:,i_hemis) 233 246 IF ( i_fill .LT. jpl ) zv_i_ini(i_fill+1:jpl, i_hemis) = 0._wp 234 247 … … 262 275 263 276 ! Test 3: thickness of the last category is in-bounds ? 264 IF ( zh t_i_ini(i_fill, i_hemis) .GT. hi_max(i_fill-1) ) THEN277 IF ( zh_i_ini(i_fill, i_hemis) .GT. hi_max(i_fill-1) ) THEN 265 278 ztest_3 = 1 266 279 ELSE 267 280 ! this write is useful 268 IF(lwp) WRITE(numout,*) ' * TEST 3 THICKNESS OF THE LAST CATEGORY OUT OF BOUNDS *** zh t_i_ini(i_fill,i_hemis) = ', &269 zh t_i_ini(i_fill,i_hemis), ' hi_max(jpl-1) = ', hi_max(i_fill-1)281 IF(lwp) WRITE(numout,*) ' * TEST 3 THICKNESS OF THE LAST CATEGORY OUT OF BOUNDS *** zh_i_ini(i_fill,i_hemis) = ', & 282 zh_i_ini(i_fill,i_hemis), ' hi_max(jpl-1) = ', hi_max(i_fill-1) 270 283 ztest_3 = 0 271 284 ENDIF … … 291 304 IF ( ztests .NE. 4 ) THEN 292 305 WRITE(numout,*) 293 WRITE(numout,*) ' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ' 294 WRITE(numout,*) ' !!!! RED ALERT !!! ' 295 WRITE(numout,*) ' !!!! BIIIIP BIIIP BIIIIP BIIIIP !!!' 306 WRITE(numout,*) ' !!!! ALERT !!! ' 296 307 WRITE(numout,*) ' !!!! Something is wrong in the LIM3 initialization procedure ' 297 WRITE(numout,*) ' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! '298 308 WRITE(numout,*) 299 309 WRITE(numout,*) ' *** ztests is not equal to 4 ' 300 310 WRITE(numout,*) ' *** ztest_i (i=1,4) = ', ztest_1, ztest_2, ztest_3, ztest_4 301 311 WRITE(numout,*) ' zat_i_ini : ', zat_i_ini(i_hemis) 302 WRITE(numout,*) ' zh m_i_ini : ', zhm_i_ini(i_hemis)312 WRITE(numout,*) ' zht_i_ini : ', zht_i_ini(i_hemis) 303 313 ENDIF ! ztests .NE. 4 304 314 ENDIF … … 314 324 DO jj = 1, jpj 315 325 DO ji = 1, jpi 316 a_i(ji,jj,jl) = z idto(ji,jj) * za_i_ini (jl,zhemis(ji,jj)) ! concentration317 ht_i(ji,jj,jl) = z idto(ji,jj) * zht_i_ini(jl,zhemis(ji,jj)) ! ice thickness318 ht_s(ji,jj,jl) = ht_i(ji,jj,jl) * ( zh m_s_ini( zhemis(ji,jj) ) / zhm_i_ini( zhemis(ji,jj) ) ) ! snow depth319 sm_i(ji,jj,jl) = z idto(ji,jj) * zsm_i_ini(zhemis(ji,jj)) + ( 1._wp - zidto(ji,jj) ) * s_i_min ! salinity320 o_i(ji,jj,jl) = z idto(ji,jj) * 1._wp + ( 1._wp - zidto(ji,jj) ) ! age321 t_su(ji,jj,jl) = z idto(ji,jj) * 270.0 + ( 1._wp - zidto(ji,jj) ) * 270.0! surf temp326 a_i(ji,jj,jl) = zswitch(ji,jj) * za_i_ini (jl,zhemis(ji,jj)) ! concentration 327 ht_i(ji,jj,jl) = zswitch(ji,jj) * zh_i_ini(jl,zhemis(ji,jj)) ! ice thickness 328 ht_s(ji,jj,jl) = ht_i(ji,jj,jl) * ( zht_s_ini( zhemis(ji,jj) ) / zht_i_ini( zhemis(ji,jj) ) ) ! snow depth 329 sm_i(ji,jj,jl) = zswitch(ji,jj) * zsm_i_ini(zhemis(ji,jj)) !+ ( 1._wp - zswitch(ji,jj) ) * s_i_min ! salinity 330 o_i(ji,jj,jl) = zswitch(ji,jj) * 1._wp + ( 1._wp - zswitch(ji,jj) ) ! age 331 t_su(ji,jj,jl) = zswitch(ji,jj) * ztm_i_ini(zhemis(ji,jj)) + ( 1._wp - zswitch(ji,jj) ) * rtt ! surf temp 322 332 323 333 ! This case below should not be used if (ht_s/ht_i) is ok in namelist … … 343 353 DO jj = 1, jpj 344 354 DO ji = 1, jpi 345 t_s(ji,jj,jk,jl) = z idto(ji,jj) * 270.0 + ( 1._wp - zidto(ji,jj) ) * rtt355 t_s(ji,jj,jk,jl) = zswitch(ji,jj) * ztm_i_ini(zhemis(ji,jj)) + ( 1._wp - zswitch(ji,jj) ) * rtt 346 356 ! Snow energy of melting 347 e_s(ji,jj,jk,jl) = z idto(ji,jj) * rhosn * ( cpic * ( rtt - t_s(ji,jj,jk,jl) ) + lfus )357 e_s(ji,jj,jk,jl) = zswitch(ji,jj) * rhosn * ( cpic * ( rtt - t_s(ji,jj,jk,jl) ) + lfus ) 348 358 ! Change dimensions 349 359 e_s(ji,jj,jk,jl) = e_s(ji,jj,jk,jl) / unit_fac 350 ! Multiply by volume, so that heat content in 10^9Joules360 ! Multiply by volume, so that heat content in Joules 351 361 e_s(ji,jj,jk,jl) = e_s(ji,jj,jk,jl) * area(ji,jj) * v_s(ji,jj,jl) / nlay_s 352 362 END DO ! ji … … 360 370 DO jj = 1, jpj 361 371 DO ji = 1, jpi 362 t_i(ji,jj,jk,jl) = z idto(ji,jj) * 270.00 + ( 1._wp - zidto(ji,jj) ) * rtt363 s_i(ji,jj,jk,jl) = z idto(ji,jj) * zsm_i_ini(zhemis(ji,jj)) + ( 1._wp - zidto(ji,jj) ) * s_i_min372 t_i(ji,jj,jk,jl) = zswitch(ji,jj) * ztm_i_ini(zhemis(ji,jj)) + ( 1._wp - zswitch(ji,jj) ) * rtt 373 s_i(ji,jj,jk,jl) = zswitch(ji,jj) * zsm_i_ini(zhemis(ji,jj)) !+ ( 1._wp - zswitch(ji,jj) ) * s_i_min 364 374 ztmelts = - tmut * s_i(ji,jj,jk,jl) + rtt !Melting temperature in K 365 375 366 376 ! heat content per unit volume 367 e_i(ji,jj,jk,jl) = z idto(ji,jj) * rhoic * ( cpic * ( ztmelts - t_i(ji,jj,jk,jl) ) &377 e_i(ji,jj,jk,jl) = zswitch(ji,jj) * rhoic * ( cpic * ( ztmelts - t_i(ji,jj,jk,jl) ) & 368 378 + lfus * ( 1._wp - (ztmelts-rtt) / MIN((t_i(ji,jj,jk,jl)-rtt),-epsi20) ) & 369 379 - rcp * ( ztmelts - rtt ) ) … … 372 382 e_i(ji,jj,jk,jl) = e_i(ji,jj,jk,jl) / unit_fac 373 383 374 ! Mutliply by ice volume, and divide by number of layers 375 ! to get heat content in 10^9 J 384 ! Mutliply by ice volume, and divide by number of layers to get heat content in J 376 385 e_i(ji,jj,jk,jl) = e_i(ji,jj,jk,jl) * area(ji,jj) * v_i(ji,jj,jl) / nlay_i 377 386 END DO ! ji … … 380 389 END DO ! jk 381 390 391 tn_ice (:,:,:) = t_su (:,:,:) 392 393 ELSE 394 ! if ln_limini=false 395 a_i (:,:,:) = 0._wp 396 v_i (:,:,:) = 0._wp 397 v_s (:,:,:) = 0._wp 398 smv_i(:,:,:) = 0._wp 399 oa_i (:,:,:) = 0._wp 400 ht_i (:,:,:) = 0._wp 401 ht_s (:,:,:) = 0._wp 402 sm_i (:,:,:) = 0._wp 403 o_i (:,:,:) = 0._wp 404 405 e_i(:,:,:,:) = 0._wp 406 e_s(:,:,:,:) = 0._wp 407 408 DO jl = 1, jpl 409 DO jk = 1, nlay_i 410 t_i(:,:,jk,jl) = rtt * tms(:,:) 411 END DO 412 DO jk = 1, nlay_s 413 t_s(:,:,jk,jl) = rtt * tms(:,:) 414 END DO 415 END DO 416 417 ENDIF ! ln_limini 418 419 at_i (:,:) = 0.0_wp 420 DO jl = 1, jpl 421 at_i (:,:) = at_i (:,:) + a_i (:,:,jl) 422 END DO 423 ! 382 424 !-------------------------------------------------------------------- 383 425 ! 4) Global ice variables for output diagnostics | 384 426 !-------------------------------------------------------------------- 385 fsbbq (:,:) = 0._wp386 427 u_ice (:,:) = 0._wp 387 428 v_ice (:,:) = 0._wp … … 390 431 stress12_i(:,:) = 0._wp 391 432 392 # if defined key_coupled393 albege(:,:) = 0.8 * tms(:,:)394 # endif395 396 433 !-------------------------------------------------------------------- 397 434 ! 5) Moments for advection … … 428 465 sxyage (:,:,:) = 0._wp 429 466 430 !-------------------------------------------------------------------- 431 ! 6) Lateral boundary conditions | 432 !-------------------------------------------------------------------- 433 434 DO jl = 1, jpl 435 436 CALL lbc_lnk( a_i(:,:,jl) , 'T', 1. ) 437 CALL lbc_lnk( v_i(:,:,jl) , 'T', 1. ) 438 CALL lbc_lnk( v_s(:,:,jl) , 'T', 1. ) 439 CALL lbc_lnk( smv_i(:,:,jl), 'T', 1. ) 440 CALL lbc_lnk( oa_i(:,:,jl) , 'T', 1. ) 441 442 CALL lbc_lnk( ht_i(:,:,jl) , 'T', 1. ) 443 CALL lbc_lnk( ht_s(:,:,jl) , 'T', 1. ) 444 CALL lbc_lnk( sm_i(:,:,jl) , 'T', 1. ) 445 CALL lbc_lnk( o_i(:,:,jl) , 'T', 1. ) 446 CALL lbc_lnk( t_su(:,:,jl) , 'T', 1. ) 447 DO jk = 1, nlay_s 448 CALL lbc_lnk(t_s(:,:,jk,jl), 'T', 1. ) 449 CALL lbc_lnk(e_s(:,:,jk,jl), 'T', 1. ) 450 END DO 451 DO jk = 1, nlay_i 452 CALL lbc_lnk(t_i(:,:,jk,jl), 'T', 1. ) 453 CALL lbc_lnk(e_i(:,:,jk,jl), 'T', 1. ) 454 END DO 455 ! 456 a_i(:,:,jl) = tms(:,:) * a_i(:,:,jl) 457 END DO 458 459 at_i (:,:) = 0.0_wp 460 DO jl = 1, jpl 461 at_i (:,:) = at_i (:,:) + a_i (:,:,jl) 462 END DO 463 464 CALL lbc_lnk( at_i , 'T', 1. ) 465 at_i(:,:) = tms(:,:) * at_i(:,:) ! put 0 over land 466 ! 467 CALL lbc_lnk( fsbbq , 'T', 1. ) 468 ! 469 !-------------------------------------------------------------------- 470 ! 6) ???? | 471 !-------------------------------------------------------------------- 472 tn_ice (:,:,:) = t_su (:,:,:) 473 474 CALL wrk_dealloc( jpi, jpj, zidto ) 467 468 CALL wrk_dealloc( jpi, jpj, zswitch ) 475 469 CALL wrk_dealloc( jpi, jpj, zhemis ) 476 CALL wrk_dealloc( jpl, 2, zh t_i_ini, za_i_ini, zv_i_ini )477 CALL wrk_dealloc( 2, zh m_i_ini, zat_i_ini, zvt_i_ini, zhm_s_ini, zsm_i_ini )470 CALL wrk_dealloc( jpl, 2, zh_i_ini, za_i_ini, zv_i_ini ) 471 CALL wrk_dealloc( 2, zht_i_ini, zat_i_ini, zvt_i_ini, zht_s_ini, zsm_i_ini, ztm_i_ini ) 478 472 479 473 END SUBROUTINE lim_istate … … 495 489 !! 8.5 ! 07-11 (M. Vancoppenolle) rewritten initialization 496 490 !!----------------------------------------------------------------------------- 497 NAMELIST/namiceini/ ttest, hninn, hnins, hginn, hgins, aginn, agins, sinn, sins498 !491 NAMELIST/namiceini/ ln_limini, thres_sst, hts_ini_n, hts_ini_s, hti_ini_n, hti_ini_s, & 492 & ati_ini_n, ati_ini_s, smi_ini_n, smi_ini_s, tmi_ini_n, tmi_ini_s 499 493 INTEGER :: ios ! Local integer output status for namelist read 500 494 !!----------------------------------------------------------------------------- … … 516 510 WRITE(numout,*) 'lim_istate_init : ice parameters inititialisation ' 517 511 WRITE(numout,*) '~~~~~~~~~~~~~~~' 518 WRITE(numout,*) ' threshold water temp. for initial sea-ice ttest = ', ttest 519 WRITE(numout,*) ' initial snow thickness in the north hninn = ', hninn 520 WRITE(numout,*) ' initial snow thickness in the south hnins = ', hnins 521 WRITE(numout,*) ' initial ice thickness in the north hginn = ', hginn 522 WRITE(numout,*) ' initial ice thickness in the south hgins = ', hgins 523 WRITE(numout,*) ' initial ice concentr. in the north aginn = ', aginn 524 WRITE(numout,*) ' initial ice concentr. in the north agins = ', agins 525 WRITE(numout,*) ' initial ice salinity in the north sinn = ', sinn 526 WRITE(numout,*) ' initial ice salinity in the south sins = ', sins 512 WRITE(numout,*) ' initialization with ice (T) or not (F) ln_limini = ', ln_limini 513 WRITE(numout,*) ' threshold water temp. for initial sea-ice thres_sst = ', thres_sst 514 WRITE(numout,*) ' initial snow thickness in the north hts_ini_n = ', hts_ini_n 515 WRITE(numout,*) ' initial snow thickness in the south hts_ini_s = ', hts_ini_s 516 WRITE(numout,*) ' initial ice thickness in the north hti_ini_n = ', hti_ini_n 517 WRITE(numout,*) ' initial ice thickness in the south hti_ini_s = ', hti_ini_s 518 WRITE(numout,*) ' initial ice concentr. in the north ati_ini_n = ', ati_ini_n 519 WRITE(numout,*) ' initial ice concentr. in the north ati_ini_s = ', ati_ini_s 520 WRITE(numout,*) ' initial ice salinity in the north smi_ini_n = ', smi_ini_n 521 WRITE(numout,*) ' initial ice salinity in the south smi_ini_s = ', smi_ini_s 522 WRITE(numout,*) ' initial ice/snw temp in the north tmi_ini_n = ', tmi_ini_n 523 WRITE(numout,*) ' initial ice/snw temp in the south tmi_ini_s = ', tmi_ini_s 527 524 ENDIF 528 525
Note: See TracChangeset
for help on using the changeset viewer.