Changeset 4688 for trunk/NEMOGCM/NEMO/LIM_SRC_3/limistate.F90
- Timestamp:
- 2014-06-25T01:39:59+02:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/LIM_SRC_3/limistate.F90
r4624 r4688 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 ice128 ELSE ; zidto(ji,jj) = 1._wp! ice138 IF( ( tsn(ji,jj,1,jp_tem) - ( t_bo(ji,jj) - rt0 ) ) * tms(ji,jj) >= thres_sst ) THEN ; zswitch(ji,jj) = 0._wp * tms(ji,jj) ! no ice 139 ELSE ; zswitch(ji,jj) = 1._wp * tms(ji,jj) ! ice 129 140 ENDIF 130 141 END DO 131 142 END DO 132 143 133 t_bo(:,:) = t_bo(:,:) + rt0 ! conversion to Kelvin134 144 135 145 ! Hemispheric index … … 153 163 ! 3.1) Hemisphere-dependent arrays 154 164 !----------------------------- 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 165 ! assign initial thickness, concentration, snow depth and salinity to an hemisphere-dependent array 166 zht_i_ini(1) = hti_ini_n ; zht_i_ini(2) = hti_ini_s ! ice thickness 167 zht_s_ini(1) = hts_ini_n ; zht_s_ini(2) = hts_ini_s ! snow depth 168 zat_i_ini(1) = ati_ini_n ; zat_i_ini(2) = ati_ini_s ! ice concentration 169 zsm_i_ini(1) = smi_ini_n ; zsm_i_ini(2) = smi_ini_s ! bulk ice salinity 170 ztm_i_ini(1) = tmi_ini_n ; ztm_i_ini(2) = tmi_ini_s ! temperature (ice and snow) 171 172 zvt_i_ini(:) = zht_i_ini(:) * zat_i_ini(:) ! ice volume 162 173 163 174 !--------------------------------------------------------------------- … … 183 194 ! *** 1 category to fill 184 195 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) 196 zh_i_ini(1,i_hemis) = zht_i_ini(i_hemis) 197 za_i_ini(1,i_hemis) = zat_i_ini(i_hemis) 198 zh_i_ini(2:jpl,i_hemis) = 0._wp 199 za_i_ini(2:jpl,i_hemis) = 0._wp 189 200 ELSE 190 201 191 ! *** >1 categores to fill192 !--- Ice thicknesses in the i_fill - 1 first categories202 ! *** >1 categores to fill 203 !--- Ice thicknesses in the i_fill - 1 first categories 193 204 DO jl = 1, i_fill - 1 194 zh t_i_ini(jl,i_hemis) = 0.5 * ( hi_max(jl) + hi_max(jl-1) )205 zh_i_ini(jl,i_hemis) = 0.5 * ( hi_max(jl) + hi_max(jl-1) ) 195 206 END DO 196 197 !--- jl0: most likely index where cc will be maximum207 208 !--- jl0: most likely index where cc will be maximum 198 209 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) ) ) THEN210 IF ( ( zht_i_ini(i_hemis) .GT. hi_max(jl-1) ) .AND. & 211 ( zht_i_ini(i_hemis) .LE. hi_max(jl) ) ) THEN 201 212 jl0 = jl 202 213 ENDIF 203 214 END DO 204 215 jl0 = MIN(jl0, i_fill) 205 206 !--- Concentrations216 217 !--- Concentrations 207 218 za_i_ini(jl0,i_hemis) = zat_i_ini(i_hemis) / SQRT(REAL(jpl)) 208 219 DO jl = 1, i_fill - 1 209 220 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) ) / zsigma221 zsigma = 0.5 * zht_i_ini(i_hemis) 222 zarg = ( zh_i_ini(jl,i_hemis) - zht_i_ini(i_hemis) ) / zsigma 212 223 za_i_ini(jl,i_hemis) = za_i_ini(jl0,i_hemis) * EXP(-zarg**2) 213 224 ENDIF 214 END DO 215 225 END DO 226 216 227 zA = 0. ! sum of the areas in the jpl categories 217 228 DO jl = 1, i_fill - 1 … … 221 232 IF ( i_fill .LT. jpl ) za_i_ini(i_fill+1:jpl, i_hemis) = 0._wp 222 233 223 !--- Ice thickness in the last category234 !--- Ice thickness in the last category 224 235 zV = 0. ! sum of the volumes of the N-1 categories 225 236 DO jl = 1, i_fill - 1 226 zV = zV + za_i_ini(jl,i_hemis)*zh t_i_ini(jl,i_hemis)237 zV = zV + za_i_ini(jl,i_hemis)*zh_i_ini(jl,i_hemis) 227 238 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)239 zh_i_ini(i_fill,i_hemis) = ( zvt_i_ini(i_hemis) - zV ) / za_i_ini(i_fill,i_hemis) 240 IF ( i_fill .LT. jpl ) zh_i_ini(i_fill+1:jpl, i_hemis) = 0._wp 241 242 !--- volumes 243 zv_i_ini(:,i_hemis) = za_i_ini(:,i_hemis) * zh_i_ini(:,i_hemis) 233 244 IF ( i_fill .LT. jpl ) zv_i_ini(i_fill+1:jpl, i_hemis) = 0._wp 234 245 … … 262 273 263 274 ! 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) ) THEN275 IF ( zh_i_ini(i_fill, i_hemis) .GT. hi_max(i_fill-1) ) THEN 265 276 ztest_3 = 1 266 277 ELSE 267 278 ! 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)279 IF(lwp) WRITE(numout,*) ' * TEST 3 THICKNESS OF THE LAST CATEGORY OUT OF BOUNDS *** zh_i_ini(i_fill,i_hemis) = ', & 280 zh_i_ini(i_fill,i_hemis), ' hi_max(jpl-1) = ', hi_max(i_fill-1) 270 281 ztest_3 = 0 271 282 ENDIF … … 291 302 IF ( ztests .NE. 4 ) THEN 292 303 WRITE(numout,*) 293 WRITE(numout,*), ' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ' 294 WRITE(numout,*), ' !!!! RED ALERT !!! ' 295 WRITE(numout,*), ' !!!! BIIIIP BIIIP BIIIIP BIIIIP !!!' 304 WRITE(numout,*), ' !!!! ALERT !!! ' 296 305 WRITE(numout,*), ' !!!! Something is wrong in the LIM3 initialization procedure ' 297 WRITE(numout,*), ' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! '298 306 WRITE(numout,*) 299 307 WRITE(numout,*), ' *** ztests is not equal to 4 ' 300 308 WRITE(numout,*), ' *** ztest_i (i=1,4) = ', ztest_1, ztest_2, ztest_3, ztest_4 301 309 WRITE(numout,*), ' zat_i_ini : ', zat_i_ini(i_hemis) 302 WRITE(numout,*), ' zh m_i_ini : ', zhm_i_ini(i_hemis)310 WRITE(numout,*), ' zht_i_ini : ', zht_i_ini(i_hemis) 303 311 ENDIF ! ztests .NE. 4 304 312 ENDIF … … 314 322 DO jj = 1, jpj 315 323 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 temp324 a_i(ji,jj,jl) = zswitch(ji,jj) * za_i_ini (jl,zhemis(ji,jj)) ! concentration 325 ht_i(ji,jj,jl) = zswitch(ji,jj) * zh_i_ini(jl,zhemis(ji,jj)) ! ice thickness 326 ht_s(ji,jj,jl) = ht_i(ji,jj,jl) * ( zht_s_ini( zhemis(ji,jj) ) / zht_i_ini( zhemis(ji,jj) ) ) ! snow depth 327 sm_i(ji,jj,jl) = zswitch(ji,jj) * zsm_i_ini(zhemis(ji,jj)) !+ ( 1._wp - zswitch(ji,jj) ) * s_i_min ! salinity 328 o_i(ji,jj,jl) = zswitch(ji,jj) * 1._wp + ( 1._wp - zswitch(ji,jj) ) ! age 329 t_su(ji,jj,jl) = zswitch(ji,jj) * ztm_i_ini(zhemis(ji,jj)) + ( 1._wp - zswitch(ji,jj) ) * rtt ! surf temp 322 330 323 331 ! This case below should not be used if (ht_s/ht_i) is ok in namelist … … 343 351 DO jj = 1, jpj 344 352 DO ji = 1, jpi 345 t_s(ji,jj,jk,jl) = z idto(ji,jj) * 270.0 + ( 1._wp - zidto(ji,jj) ) * rtt353 t_s(ji,jj,jk,jl) = zswitch(ji,jj) * ztm_i_ini(zhemis(ji,jj)) + ( 1._wp - zswitch(ji,jj) ) * rtt 346 354 ! 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 )355 e_s(ji,jj,jk,jl) = zswitch(ji,jj) * rhosn * ( cpic * ( rtt - t_s(ji,jj,jk,jl) ) + lfus ) 348 356 ! Change dimensions 349 357 e_s(ji,jj,jk,jl) = e_s(ji,jj,jk,jl) / unit_fac 350 ! Multiply by volume, so that heat content in 10^9Joules358 ! Multiply by volume, so that heat content in Joules 351 359 e_s(ji,jj,jk,jl) = e_s(ji,jj,jk,jl) * area(ji,jj) * v_s(ji,jj,jl) / nlay_s 352 360 END DO ! ji … … 360 368 DO jj = 1, jpj 361 369 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_min370 t_i(ji,jj,jk,jl) = zswitch(ji,jj) * ztm_i_ini(zhemis(ji,jj)) + ( 1._wp - zswitch(ji,jj) ) * rtt 371 s_i(ji,jj,jk,jl) = zswitch(ji,jj) * zsm_i_ini(zhemis(ji,jj)) !+ ( 1._wp - zswitch(ji,jj) ) * s_i_min 364 372 ztmelts = - tmut * s_i(ji,jj,jk,jl) + rtt !Melting temperature in K 365 373 366 374 ! 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) ) &375 e_i(ji,jj,jk,jl) = zswitch(ji,jj) * rhoic * ( cpic * ( ztmelts - t_i(ji,jj,jk,jl) ) & 368 376 + lfus * ( 1._wp - (ztmelts-rtt) / MIN((t_i(ji,jj,jk,jl)-rtt),-epsi20) ) & 369 377 - rcp * ( ztmelts - rtt ) ) … … 372 380 e_i(ji,jj,jk,jl) = e_i(ji,jj,jk,jl) / unit_fac 373 381 374 ! Mutliply by ice volume, and divide by number of layers 375 ! to get heat content in 10^9 J 382 ! Mutliply by ice volume, and divide by number of layers to get heat content in J 376 383 e_i(ji,jj,jk,jl) = e_i(ji,jj,jk,jl) * area(ji,jj) * v_i(ji,jj,jl) / nlay_i 377 384 END DO ! ji … … 380 387 END DO ! jk 381 388 389 tn_ice (:,:,:) = t_su (:,:,:) 390 391 ELSE 392 ! if ln_limini=false 393 a_i (:,:,:) = 0._wp 394 v_i (:,:,:) = 0._wp 395 v_s (:,:,:) = 0._wp 396 smv_i(:,:,:) = 0._wp 397 oa_i (:,:,:) = 0._wp 398 ht_i (:,:,:) = 0._wp 399 ht_s (:,:,:) = 0._wp 400 sm_i (:,:,:) = 0._wp 401 o_i (:,:,:) = 0._wp 402 403 e_i(:,:,:,:) = 0._wp 404 e_s(:,:,:,:) = 0._wp 405 406 DO jl = 1, jpl 407 DO jk = 1, nlay_i 408 t_i(:,:,jk,jl) = rtt * tms(:,:) 409 END DO 410 DO jk = 1, nlay_s 411 t_s(:,:,jk,jl) = rtt * tms(:,:) 412 END DO 413 END DO 414 415 ENDIF ! ln_limini 416 417 at_i (:,:) = 0.0_wp 418 DO jl = 1, jpl 419 at_i (:,:) = at_i (:,:) + a_i (:,:,jl) 420 END DO 421 ! 382 422 !-------------------------------------------------------------------- 383 423 ! 4) Global ice variables for output diagnostics | 384 424 !-------------------------------------------------------------------- 385 fsbbq (:,:) = 0._wp386 425 u_ice (:,:) = 0._wp 387 426 v_ice (:,:) = 0._wp … … 390 429 stress12_i(:,:) = 0._wp 391 430 392 # if defined key_coupled393 albege(:,:) = 0.8 * tms(:,:)394 # endif395 396 431 !-------------------------------------------------------------------- 397 432 ! 5) Moments for advection … … 428 463 sxyage (:,:,:) = 0._wp 429 464 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 ) 465 466 CALL wrk_dealloc( jpi, jpj, zswitch ) 475 467 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 )468 CALL wrk_dealloc( jpl, 2, zh_i_ini, za_i_ini, zv_i_ini ) 469 CALL wrk_dealloc( 2, zht_i_ini, zat_i_ini, zvt_i_ini, zht_s_ini, zsm_i_ini, ztm_i_ini ) 478 470 479 471 END SUBROUTINE lim_istate … … 495 487 !! 8.5 ! 07-11 (M. Vancoppenolle) rewritten initialization 496 488 !!----------------------------------------------------------------------------- 497 NAMELIST/namiceini/ ttest, hninn, hnins, hginn, hgins, aginn, agins, sinn, sins498 !489 NAMELIST/namiceini/ ln_limini, thres_sst, hts_ini_n, hts_ini_s, hti_ini_n, hti_ini_s, & 490 & ati_ini_n, ati_ini_s, smi_ini_n, smi_ini_s, tmi_ini_n, tmi_ini_s 499 491 INTEGER :: ios ! Local integer output status for namelist read 500 492 !!----------------------------------------------------------------------------- … … 516 508 WRITE(numout,*) 'lim_istate_init : ice parameters inititialisation ' 517 509 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 510 WRITE(numout,*) ' initialization with ice (T) or not (F) ln_limini = ', ln_limini 511 WRITE(numout,*) ' threshold water temp. for initial sea-ice thres_sst = ', thres_sst 512 WRITE(numout,*) ' initial snow thickness in the north hts_ini_n = ', hts_ini_n 513 WRITE(numout,*) ' initial snow thickness in the south hts_ini_s = ', hts_ini_s 514 WRITE(numout,*) ' initial ice thickness in the north hti_ini_n = ', hti_ini_n 515 WRITE(numout,*) ' initial ice thickness in the south hti_ini_s = ', hti_ini_s 516 WRITE(numout,*) ' initial ice concentr. in the north ati_ini_n = ', ati_ini_n 517 WRITE(numout,*) ' initial ice concentr. in the north ati_ini_s = ', ati_ini_s 518 WRITE(numout,*) ' initial ice salinity in the north smi_ini_n = ', smi_ini_n 519 WRITE(numout,*) ' initial ice salinity in the south smi_ini_s = ', smi_ini_s 520 WRITE(numout,*) ' initial ice/snw temp in the north tmi_ini_n = ', tmi_ini_n 521 WRITE(numout,*) ' initial ice/snw temp in the south tmi_ini_s = ', tmi_ini_s 527 522 ENDIF 528 523
Note: See TracChangeset
for help on using the changeset viewer.