Changeset 921 for trunk/NEMO/LIM_SRC_3/limistate.F90
- Timestamp:
- 2008-05-13T10:28:52+02:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/LIM_SRC_3/limistate.F90
r888 r921 86 86 zvol, zare, zh, zh1, zh2, zh3, zan, zbn, zas, zbs 87 87 !-------------------------------------------------------------------- 88 88 89 89 !-------------------------------------------------------------------- 90 90 ! 1) Preliminary things … … 113 113 zs0 = 34.e0 114 114 ztf = ABS ( rt0 - 0.0575 * zs0 & 115 116 115 & + 1.710523e-03 * zs0 * SQRT( zs0 ) & 116 & - 2.154996e-04 * zs0 *zs0 ) 117 117 118 118 ! constants for heat contents … … 179 179 ! ------------- 180 180 !!! 181 ! retour a LIMA_MEC182 ! ! second ice type183 ! zdummy = hi_max(ice_cat_bounds(2,1)-1)184 ! hi_max(ice_cat_bounds(2,1)-1) = 0.0185 186 ! ! here to change !!!!187 ! jm = 2188 ! DO jl = ice_cat_bounds(jm,1), ice_cat_bounds(jm,2)189 ! zhin (2) = ( hi_max(jl-1) + hi_max(jl) ) / 2.0190 ! zhin (2) = ( hi_max_typ(jl-ice_cat_bounds(2,1),jm ) + &191 ! hi_max_typ(jl-ice_cat_bounds(2,1) + 1,jm) ) / 2.0192 ! zgfactorn(2) = zgfactorn(2) + exp(-(zhin(2)-hginn_d)*(zhin(2)-hginn_d)/2.0)193 ! zhis (2) = ( hi_max(jl-1) + hi_max(jl) ) / 2.0194 ! zhis (2) = ( hi_max_typ(jl-ice_cat_bounds(2,1),jm ) + &195 ! hi_max_typ(jl-ice_cat_bounds(2,1) + 1,jm) ) / 2.0196 ! zgfactors(2) = zgfactors(2) + exp(-(zhis(2)-hgins_d)*(zhis(2)-hgins_d)/2.0)197 ! END DO ! jl198 ! zgfactorn(2) = aginn_d / zgfactorn(2)199 ! zgfactors(2) = agins_d / zgfactors(2)200 ! hi_max(ice_cat_bounds(2,1)-1) = zdummy201 ! END retour a LIMA_MEC181 ! retour a LIMA_MEC 182 ! ! second ice type 183 ! zdummy = hi_max(ice_cat_bounds(2,1)-1) 184 ! hi_max(ice_cat_bounds(2,1)-1) = 0.0 185 186 ! ! here to change !!!! 187 ! jm = 2 188 ! DO jl = ice_cat_bounds(jm,1), ice_cat_bounds(jm,2) 189 ! zhin (2) = ( hi_max(jl-1) + hi_max(jl) ) / 2.0 190 ! zhin (2) = ( hi_max_typ(jl-ice_cat_bounds(2,1),jm ) + & 191 ! hi_max_typ(jl-ice_cat_bounds(2,1) + 1,jm) ) / 2.0 192 ! zgfactorn(2) = zgfactorn(2) + exp(-(zhin(2)-hginn_d)*(zhin(2)-hginn_d)/2.0) 193 ! zhis (2) = ( hi_max(jl-1) + hi_max(jl) ) / 2.0 194 ! zhis (2) = ( hi_max_typ(jl-ice_cat_bounds(2,1),jm ) + & 195 ! hi_max_typ(jl-ice_cat_bounds(2,1) + 1,jm) ) / 2.0 196 ! zgfactors(2) = zgfactors(2) + exp(-(zhis(2)-hgins_d)*(zhis(2)-hgins_d)/2.0) 197 ! END DO ! jl 198 ! zgfactorn(2) = aginn_d / zgfactorn(2) 199 ! zgfactors(2) = agins_d / zgfactors(2) 200 ! hi_max(ice_cat_bounds(2,1)-1) = zdummy 201 ! END retour a LIMA_MEC 202 202 !!! 203 203 DO jj = 1, jpj … … 228 228 zhin(1) = ( hi_max(jl-1) + hi_max(jl) ) / 2.0 229 229 a_i(ji,jj,jl) = zidto * MAX( zgfactorn(1) * exp(-(zhin(1)-hginn_u)* & 230 230 (zhin(1)-hginn_u)/2.0) , epsi06) 231 231 ! new line 232 232 a_i(ji,jj,jl) = zidto * ( zan * zhin(1) * zhin(1) + zbn * zhin(1) ) … … 239 239 240 240 !!! 241 ! retour a LIMA_MEC242 ! !ridged ice243 ! zdummy = hi_max(ice_cat_bounds(2,1)-1)244 ! hi_max(ice_cat_bounds(2,1)-1) = 0.0245 ! DO jl = ice_cat_bounds(2,1), ice_cat_bounds(2,2) ! loop over ice thickness categories246 ! zhin(2) = ( hi_max(jl-1) + hi_max(jl) ) / 2.0247 ! a_i(ji,jj,jl) = zidto * MAX( zgfactorn(2) * exp(-(zhin(2)-hginn_d)* &248 ! (zhin(2)-hginn_d)/2.0) , epsi06)249 ! ht_i(ji,jj,jl) = zidto * zhin(2)250 ! v_i(ji,jj,jl) = ht_i(ji,jj,jl)*a_i(ji,jj,jl)251 ! END DO252 ! hi_max(ice_cat_bounds(2,1)-1) = zdummy253 254 ! !rafted ice255 ! jl = 6256 ! a_i(ji,jj,jl) = 0.0257 ! ht_i(ji,jj,jl) = 0.0258 ! v_i(ji,jj,jl) = 0.0259 ! END retour a LIMA_MEC241 ! retour a LIMA_MEC 242 ! !ridged ice 243 ! zdummy = hi_max(ice_cat_bounds(2,1)-1) 244 ! hi_max(ice_cat_bounds(2,1)-1) = 0.0 245 ! DO jl = ice_cat_bounds(2,1), ice_cat_bounds(2,2) ! loop over ice thickness categories 246 ! zhin(2) = ( hi_max(jl-1) + hi_max(jl) ) / 2.0 247 ! a_i(ji,jj,jl) = zidto * MAX( zgfactorn(2) * exp(-(zhin(2)-hginn_d)* & 248 ! (zhin(2)-hginn_d)/2.0) , epsi06) 249 ! ht_i(ji,jj,jl) = zidto * zhin(2) 250 ! v_i(ji,jj,jl) = ht_i(ji,jj,jl)*a_i(ji,jj,jl) 251 ! END DO 252 ! hi_max(ice_cat_bounds(2,1)-1) = zdummy 253 254 ! !rafted ice 255 ! jl = 6 256 ! a_i(ji,jj,jl) = 0.0 257 ! ht_i(ji,jj,jl) = 0.0 258 ! v_i(ji,jj,jl) = 0.0 259 ! END retour a LIMA_MEC 260 260 !!! 261 261 … … 279 279 o_i(ji,jj,jl) = zidto * 1.0 + ( 1.0 - zidto ) 280 280 oa_i(ji,jj,jl) = o_i(ji,jj,jl) * a_i(ji,jj,jl) 281 281 282 282 !------------------------------ 283 283 ! Sea ice surface temperature … … 298 298 ! Multiply by volume, so that heat content in 10^9 Joules 299 299 e_s(ji,jj,jk,jl) = e_s(ji,jj,jk,jl) * area(ji,jj) * & 300 300 v_s(ji,jj,jl) / nlay_s 301 301 END DO !jk 302 302 … … 309 309 s_i(ji,jj,jk,jl) = zidto * sinn + ( 1.0 - zidto ) * 0.1 310 310 ztmelts = - tmut * s_i(ji,jj,jk,jl) + rtt !Melting temperature in K 311 312 ! heat content per unit volume311 312 ! heat content per unit volume 313 313 e_i(ji,jj,jk,jl) = zidto * rhoic * & 314 ( cpic * ( ztmelts - t_i(ji,jj,jk,jl) ) &315 + lfus * ( 1.0 - (ztmelts-rtt) / MIN((t_i(ji,jj,jk,jl)-rtt),-zeps) ) &316 - rcp * ( ztmelts - rtt ) &317 )318 319 ! Correct dimensions to avoid big values314 ( cpic * ( ztmelts - t_i(ji,jj,jk,jl) ) & 315 + lfus * ( 1.0 - (ztmelts-rtt) / MIN((t_i(ji,jj,jk,jl)-rtt),-zeps) ) & 316 - rcp * ( ztmelts - rtt ) & 317 ) 318 319 ! Correct dimensions to avoid big values 320 320 e_i(ji,jj,jk,jl) = e_i(ji,jj,jk,jl) / unit_fac 321 321 322 ! Mutliply by ice volume, and divide by number of layers to get heat content in 10^9 J322 ! Mutliply by ice volume, and divide by number of layers to get heat content in 10^9 J 323 323 e_i(ji,jj,jk,jl) = e_i(ji,jj,jk,jl) * & 324 325 324 area(ji,jj) * a_i(ji,jj,jl) * ht_i(ji,jj,jl) / & 325 nlay_i 326 326 END DO ! jk 327 327 … … 330 330 ELSE ! on fcor 331 331 332 !--- Southern hemisphere333 !----------------------------------------------------------------332 !--- Southern hemisphere 333 !---------------------------------------------------------------- 334 334 335 335 !----------------------- … … 346 346 347 347 ELSE ! several categories 348 349 !level ice348 349 !level ice 350 350 DO jl = ice_cat_bounds(1,1), ice_cat_bounds(1,2) !over thickness categories 351 351 352 352 zhis(1) = ( hi_max(jl-1) + hi_max(jl) ) / 2.0 353 353 a_i(ji,jj,jl) = zidto * MAX( zgfactors(1) * exp(-(zhis(1)-hgins_u) * & 354 354 (zhis(1)-hgins_u)/2.0) , epsi06 ) 355 355 ! new line square distribution volume conserving 356 356 a_i(ji,jj,jl) = zidto * ( zas * zhis(1) * zhis(1) + zbs * zhis(1) ) 357 357 ht_i(ji,jj,jl) = zidto * zhis(1) 358 358 v_i(ji,jj,jl) = ht_i(ji,jj,jl)*a_i(ji,jj,jl) 359 359 360 360 END DO ! jl 361 361 … … 363 363 364 364 !!! 365 ! retour a LIMA_MEC366 ! !ridged ice367 ! zdummy = hi_max(ice_cat_bounds(2,1)-1)368 ! hi_max(ice_cat_bounds(2,1)-1) = 0.0369 ! DO jl = ice_cat_bounds(2,1), ice_cat_bounds(2,2) !over thickness categories370 ! zhis(2) = ( hi_max(jl-1) + hi_max(jl) ) / 2.0371 ! a_i(ji,jj,jl) = zidto*MAX( zgfactors(2) * exp(-(zhis(2)-hgins_d)*(zhis(2)-hgins_d)/2.0), epsi06 )372 ! ht_i(ji,jj,jl) = zidto * zhis(2)373 ! v_i(ji,jj,jl) = ht_i(ji,jj,jl)*a_i(ji,jj,jl)374 ! END DO375 ! hi_max(ice_cat_bounds(2,1)-1) = zdummy376 377 ! !rafted ice378 ! jl = 6379 ! a_i(ji,jj,jl) = 0.0380 ! ht_i(ji,jj,jl) = 0.0381 ! v_i(ji,jj,jl) = 0.0382 ! END retour a LIMA_MEC365 ! retour a LIMA_MEC 366 ! !ridged ice 367 ! zdummy = hi_max(ice_cat_bounds(2,1)-1) 368 ! hi_max(ice_cat_bounds(2,1)-1) = 0.0 369 ! DO jl = ice_cat_bounds(2,1), ice_cat_bounds(2,2) !over thickness categories 370 ! zhis(2) = ( hi_max(jl-1) + hi_max(jl) ) / 2.0 371 ! a_i(ji,jj,jl) = zidto*MAX( zgfactors(2) * exp(-(zhis(2)-hgins_d)*(zhis(2)-hgins_d)/2.0), epsi06 ) 372 ! ht_i(ji,jj,jl) = zidto * zhis(2) 373 ! v_i(ji,jj,jl) = ht_i(ji,jj,jl)*a_i(ji,jj,jl) 374 ! END DO 375 ! hi_max(ice_cat_bounds(2,1)-1) = zdummy 376 377 ! !rafted ice 378 ! jl = 6 379 ! a_i(ji,jj,jl) = 0.0 380 ! ht_i(ji,jj,jl) = 0.0 381 ! v_i(ji,jj,jl) = 0.0 382 ! END retour a LIMA_MEC 383 383 !!! 384 384 … … 424 424 ! Multiply by volume, so that heat content in 10^9 Joules 425 425 e_s(ji,jj,jk,jl) = e_s(ji,jj,jk,jl) * area(ji,jj) * & 426 426 v_s(ji,jj,jl) / nlay_s 427 427 END DO 428 428 … … 435 435 s_i(ji,jj,jk,jl) = zidto * sins + ( 1.0 - zidto ) * 0.1 436 436 ztmelts = - tmut * s_i(ji,jj,jk,jl) + rtt !Melting temperature in K 437 438 ! heat content per unit volume437 438 ! heat content per unit volume 439 439 e_i(ji,jj,jk,jl) = zidto * rhoic * & 440 ( cpic * ( ztmelts - t_i(ji,jj,jk,jl) ) &441 + lfus * ( 1.0 - (ztmelts-rtt) / MIN((t_i(ji,jj,jk,jl)-rtt),-zeps) ) &442 - rcp * ( ztmelts - rtt ) &443 )444 445 ! Correct dimensions to avoid big values440 ( cpic * ( ztmelts - t_i(ji,jj,jk,jl) ) & 441 + lfus * ( 1.0 - (ztmelts-rtt) / MIN((t_i(ji,jj,jk,jl)-rtt),-zeps) ) & 442 - rcp * ( ztmelts - rtt ) & 443 ) 444 445 ! Correct dimensions to avoid big values 446 446 e_i(ji,jj,jk,jl) = e_i(ji,jj,jk,jl) / unit_fac 447 447 448 ! Mutliply by ice volume, and divide by number of layers to get heat content in 10^9 J448 ! Mutliply by ice volume, and divide by number of layers to get heat content in 10^9 J 449 449 e_i(ji,jj,jk,jl) = e_i(ji,jj,jk,jl) * & 450 451 450 area(ji,jj) * a_i(ji,jj,jl) * ht_i(ji,jj,jl) / & 451 nlay_i 452 452 END DO !jk 453 453 … … 549 549 !!----------------------------------------------------------------------------- 550 550 NAMELIST/namiceini/ ttest, hninn, hginn_u, aginn_u, hginn_d, aginn_d, hnins, & 551 551 hgins_u, agins_u, hgins_d, agins_d, sinn, sins 552 552 !!----------------------------------------------------------------------------- 553 553 … … 576 576 WRITE(numout,*) ' initial ice salinity in the south sins = ', sins 577 577 ENDIF 578 578 579 579 END SUBROUTINE lim_istate_init 580 580
Note: See TracChangeset
for help on using the changeset viewer.