Changeset 7293
- Timestamp:
- 2016-11-21T16:27:53+01:00 (8 years ago)
- Location:
- branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM
- Files:
-
- 1 added
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/CONFIG/SHARED/field_def.xml
r6970 r7293 284 284 <field id="albedo" long_name="Mean albedo over sea ice and ocean" unit="" /> 285 285 286 <field id="iceamp" long_name="melt pond fraction" standard_name="sea_ice_meltpond_fraction" unit="%" /> 287 <field id="icevmp" long_name="melt pond volume" standard_name="sea_ice_meltpond_volume" unit="m" /> 288 286 289 <field id="iceage_cat" long_name="Ice age for categories" unit="days" axis_ref="ncatice" /> 287 290 <field id="iceconc_cat" long_name="Ice concentration for categories" unit="%" axis_ref="ncatice" /> … … 292 295 <field id="icetemp_cat" long_name="Ice temperature for categories" unit="degC" axis_ref="ncatice" /> 293 296 <field id="snwtemp_cat" long_name="Snow temperature for categories" unit="degC" axis_ref="ncatice" /> 297 298 <field id="iceamp_cat" long_name="Ice melt pond fraction for categories" unit="%" axis_ref="ncatice" /> 299 <field id="icevmp_cat" long_name="Ice melt pond volume for categories" unit="m" axis_ref="ncatice" /> 294 300 295 301 <field id="micet" long_name="Mean ice temperature" unit="degC" /> -
branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/CONFIG/SHARED/namelist_ice_lim3_ref
r6994 r7293 166 166 / 167 167 !------------------------------------------------------------------------------ 168 &namicemp ! Melt ponds 169 !------------------------------------------------------------------------------ 170 ! -- limmp -- ! 171 ln_limMP = .true. ! activate melt ponds 172 nn_limMP = 4 ! type of melt pond implementation (1=rad+fw,2=rad only, 3=fw only, 4=passive) 173 / 174 !------------------------------------------------------------------------------ 168 175 &namiceitdme ! Ice mechanical redistribution (ridging and rafting) 169 176 !------------------------------------------------------------------------------ -
branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/ice.F90
r6994 r7293 277 277 REAL(wp), PUBLIC :: rn_fsnowrft !: fractional snow loss to the ocean during ridging 278 278 279 ! MV MP 2016 280 ! !!** melt pond namelist (namicemp) 281 LOGICAL , PUBLIC :: ln_limMP !: activate melt ponds or not 282 INTEGER , PUBLIC :: nn_limMP !: type of melt pond implementation (1=full, 2=radiation only, 3=freshwater only) 283 279 284 ! !!** some other parameters 280 285 INTEGER , PUBLIC :: nstart !: iteration number of the begining of the run … … 404 409 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: s_i !: ice salinities [PSU] 405 410 411 ! MV MP 2016 412 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: a_ip !: melt pond fraction per grid cell area 413 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: v_ip !: melt pond volume per grid cell area [m] 414 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: a_ip_frac !: melt pond volume per ice area 415 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: h_ip !: melt pond thickness [m] 416 417 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: at_ip !: total melt pond fraction 418 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: vt_ip !: total melt pond volume per unit area [m] 419 ! END MV MP 2016 420 406 421 !!-------------------------------------------------------------------------- 407 422 !! * Moments for advection … … 415 430 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sxage, syage, sxxage, syyage, sxyage !: ice age 416 431 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:,:) :: sxe , sye , sxxe , syye , sxye !: ice layers heat content 432 ! MV MP 2016 433 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sxap , syap , sxxap , syyap , sxyap !: melt pond fraction 434 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: sxvp , syvp , sxxvp , syyvp , sxyvp !: melt pond volume 435 ! END MV MP 2016 417 436 418 437 !!-------------------------------------------------------------------------- -
branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/limistate.F90
r7060 r7293 407 407 at_i (:,:) = at_i (:,:) + a_i (:,:,jl) 408 408 END DO 409 410 ! MV MP 2016 411 412 ! For now, we just assume that melt ponds are absent initially 413 ! We probably have to revise this and code it as for all other sea ice variables later on 409 414 ! 415 !-------------------------------------------------------------------- 416 ! X) Melt pond variables 417 !-------------------------------------------------------------------- 418 ! 419 IF ( ln_limMP ) THEN 420 a_ip(:,:,:) = 0._wp 421 v_ip(:,:,:) = 0._wp 422 h_ip(:,:,:) = 0._wp 423 a_ip_frac(:,:,:) = 0._wp 424 425 at_ip(:,:) = 0._wp 426 vt_ip(:,:) = 0._wp 427 ENDIF 428 429 ! END MV MP 2016 430 410 431 !-------------------------------------------------------------------- 411 432 ! 4) Global ice variables for output diagnostics | … … 450 471 syyage (:,:,:) = 0._wp 451 472 sxyage (:,:,:) = 0._wp 473 474 ! MV MP 2016 475 IF ( ln_limMP ) THEN 476 sxap (:,:) = 0._wp ; sxvp (:,:) = 0._wp 477 syap (:,:) = 0._wp ; syvp (:,:) = 0._wp 478 sxxap (:,:) = 0._wp ; sxxvp (:,:) = 0._wp 479 syyap (:,:) = 0._wp ; syyvp (:,:) = 0._wp 480 sxyap (:,:) = 0._wp ; sxyvp (:,:) = 0._wp 481 ENDIF 482 ! END MV MP 2016 452 483 453 484 !!!clem -
branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/limrst.F90
r6994 r7293 151 151 END DO 152 152 153 ! MV MP 2016 154 IF ( ln_limMP ) THEN 155 DO jl = 1, jpl 156 znam = 'a_ip'//'_htc'//zchar 157 z2d(:,:) = a_ip(:,:,jl) 158 CALL iom_rstput( iter, nitrst, numriw, znam , z2d ) 159 znam = 'v_ip'//'_htc'//zchar 160 z2d(:,:) = v_ip(:,:,jl) 161 CALL iom_rstput( iter, nitrst, numriw, znam , z2d ) 162 END DO 163 ENDIF 164 ! END MV MP 2016 165 153 166 DO jl = 1, jpl 154 167 WRITE(zchar,'(I2.2)') jl … … 301 314 END DO 302 315 END DO 316 ! MV MP 2016 317 IF ( ln_limMP ) THEN 318 DO jl = 1, jpl 319 znam = 'sxap'//'_htc'//zchar 320 z2d(:,:) = sxap(:,:,jl) 321 CALL iom_rstput( iter, nitrst, numriw, znam , z2d ) 322 znam = 'syap'//'_htc'//zchar 323 z2d(:,:) = syap(:,:,jl) 324 CALL iom_rstput( iter, nitrst, numriw, znam , z2d ) 325 znam = 'sxxap'//'_htc'//zchar 326 z2d(:,:) = sxxap(:,:,jl) 327 CALL iom_rstput( iter, nitrst, numriw, znam , z2d ) 328 znam = 'syyap'//'_htc'//zchar 329 z2d(:,:) = syyap(:,:,jl) 330 CALL iom_rstput( iter, nitrst, numriw, znam , z2d ) 331 znam = 'sxyap'//'_htc'//zchar 332 z2d(:,:) = sxyap(:,:,jl) 333 CALL iom_rstput( iter, nitrst, numriw, znam , z2d ) 334 335 znam = 'sxvp'//'_htc'//zchar 336 z2d(:,:) = sxvp(:,:,jl) 337 CALL iom_rstput( iter, nitrst, numriw, znam , z2d ) 338 znam = 'syvp'//'_htc'//zchar 339 z2d(:,:) = syvp(:,:,jl) 340 CALL iom_rstput( iter, nitrst, numriw, znam , z2d ) 341 znam = 'sxxvp'//'_htc'//zchar 342 z2d(:,:) = sxxvp(:,:,jl) 343 CALL iom_rstput( iter, nitrst, numriw, znam , z2d ) 344 znam = 'syyvp'//'_htc'//zchar 345 z2d(:,:) = syyvp(:,:,jl) 346 CALL iom_rstput( iter, nitrst, numriw, znam , z2d ) 347 znam = 'sxyvp'//'_htc'//zchar 348 z2d(:,:) = sxyvp(:,:,jl) 349 CALL iom_rstput( iter, nitrst, numriw, znam , z2d ) 350 END DO 351 ENDIF 303 352 304 353 ENDIF … … 387 436 END DO 388 437 438 ! MV MP 2016 439 IF ( ln_limMP ) THEN 440 DO jl = 1, jpl 441 znam = 'a_ip'//'_htc'//zchar 442 CALL iom_get( numrir, jpdom_autoglo, znam , z2d ) 443 a_ip(:,:,jl) = z2d(:,:) 444 znam = 'v_ip'//'_htc'//zchar 445 CALL iom_get( numrir, jpdom_autoglo, znam , z2d ) 446 v_ip(:,:,jl) = z2d(:,:) 447 END DO 448 ENDIF 449 389 450 DO jl = 1, jpl 390 451 WRITE(zchar,'(I2.2)') jl … … 509 570 sxyage(:,:,jl)= z2d(:,:) 510 571 END DO 572 ! MV MP 2016 573 IF ( ln_limMP ) THEN 574 DO jl = 1, jpl 575 znam = 'sxap'//'_htc'//zchar 576 CALL iom_get( numrir, jpdom_autoglo, znam , z2d ) 577 sxap(:,:,jl) = z2d(:,:) 578 znam = 'syap'//'_htc'//zchar 579 CALL iom_get( numrir, jpdom_autoglo, znam , z2d ) 580 syap(:,:,jl) = z2d(:,:) 581 znam = 'sxxap'//'_htc'//zchar 582 CALL iom_get( numrir, jpdom_autoglo, znam , z2d ) 583 sxxap(:,:,jl) = z2d(:,:) 584 znam = 'syyap'//'_htc'//zchar 585 CALL iom_get( numrir, jpdom_autoglo, znam , z2d ) 586 syyap(:,:,jl) = z2d(:,:) 587 znam = 'sxyap'//'_htc'//zchar 588 CALL iom_get( numrir, jpdom_autoglo, znam , z2d ) 589 sxyap(:,:,jl) = z2d(:,:) 590 591 znam = 'sxvp'//'_htc'//zchar 592 CALL iom_get( numrir, jpdom_autoglo, znam , z2d ) 593 sxvp(:,:,jl) = z2d(:,:) 594 znam = 'syvp'//'_htc'//zchar 595 CALL iom_get( numrir, jpdom_autoglo, znam , z2d ) 596 syvp(:,:,jl) = z2d(:,:) 597 znam = 'sxxvp'//'_htc'//zchar 598 CALL iom_get( numrir, jpdom_autoglo, znam , z2d ) 599 sxxvp(:,:,jl) = z2d(:,:) 600 znam = 'syyvp'//'_htc'//zchar 601 CALL iom_get( numrir, jpdom_autoglo, znam , z2d ) 602 syyvp(:,:,jl) = z2d(:,:) 603 znam = 'sxyvp'//'_htc'//zchar 604 CALL iom_get( numrir, jpdom_autoglo, znam , z2d ) 605 sxyvp(:,:,jl) = z2d(:,:) 606 END DO 607 ENDIF 608 ! END MV MP 2016 511 609 512 610 CALL iom_get( numrir, jpdom_autoglo, 'sxopw ' , sxopw ) -
branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/limvar.F90
r6853 r7293 91 91 et_i(:,:) = SUM( SUM( e_i(:,:,:,:), dim=4 ), dim=3 ) 92 92 93 ! MV MP 2016 94 IF ( ln_limMP ) 95 at_i_p(:,:) = SUM( a_ip, dim=3 ) 96 vt_i_p(:,:) = SUM( v_ip, dim=3 ) 97 ENDIF 98 ! END MP 2016 99 93 100 ! open water fraction 94 101 DO jj = 1, jpj … … 244 251 END DO 245 252 246 ! integrated values 253 ! integrated values 247 254 vt_i (:,:) = SUM( v_i, dim=3 ) 248 255 vt_s (:,:) = SUM( v_s, dim=3 ) 249 256 at_i (:,:) = SUM( a_i, dim=3 ) 257 258 ! MV MP 2016 259 ! probably should resum for melt ponds ??? 250 260 251 261 ! -
branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/LIM_SRC_3/limwri.F90
r6970 r7293 207 207 CALL iom_put ('hfxspr' , hfx_spr(:,:) ) ! Heat content of snow precip 208 208 209 ! MV MP 2016 210 IF ( ln_limMP ) THEN 211 CALL iom_put( "iceamp" , at_ip * zswi ) ! melt pond total fraction 212 CALL iom_put( "icevmp" , vt_ip * zswi ) ! melt pond total volume per unit area 213 ENDIF 214 ! END MV MP 2016 215 209 216 210 217 !-------------------------------- … … 223 230 ! brine volume 224 231 IF ( iom_use( "brinevol_cat" ) ) CALL iom_put( "brinevol_cat", bv_i * 100. * zswi2 ) 232 233 ! MV MP 2016 234 IF ( ln_limMP ) THEN 235 IF ( iom_use( "iceamp_cat" ) ) CALL iom_put( "iceamp_cat" , a_ip * zswi2 ) ! melt pond frac for categories 236 IF ( iom_use( "icevmp_cat" ) ) CALL iom_put( "icevmp_cat" , v_ip * zswi2 ) ! melt pond frac for categories 237 ENDIF 238 ! END MV MP 2016 225 239 226 240 ! ! Create an output files (output.lim.abort.nc) if S < 0 or u > 20 m/s … … 286 300 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 287 301 302 ! MV MP 2016 303 IF ( ln_limMP ) THEN 304 CALL histdef( kid, "si_amp", "Melt pond fraction" , "%" , & 305 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 306 CALL histdef( kid, "si_vmp", "Melt pond volume" , "m" , & 307 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) 308 ENDIF 309 ! END MV MP 2016 310 288 311 CALL histdef( kid, "vfxbog", "Ice bottom production" , "m/s" , & 289 312 & jpi, jpj, kh_i, 1, 1, 1, -99, 32, "inst(x)", rdt, rdt ) … … 330 353 CALL histwrite( kid, "sidive", kt, divu_i*1.0e8 , jpi*jpj, (/1/) ) 331 354 355 ! MV MP 2016 356 IF ( ln_limMP ) THEN 357 CALL histwrite( kid, "si_amp", kt, at_ip , jpi*jpj, (/1/) ) 358 CALL histwrite( kid, "si_vmp", kt, vt_ip , jpi*jpj, (/1/) ) 359 ENDIF 360 ! END MV MP 2016 361 332 362 CALL histwrite( kid, "vfxbog", kt, wfx_bog , jpi*jpj, (/1/) ) 333 363 CALL histwrite( kid, "vfxdyn", kt, wfx_dyn , jpi*jpj, (/1/) ) -
branches/2016/dev_r6859_LIM3_meltponds/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim.F90
r7158 r7293 48 48 USE limvar ! Ice variables switch 49 49 50 ! MV MP 2016 51 USE limmp 52 ! END MV MP 2016 53 50 54 USE limistate ! LIM initial state 51 55 USE limthd_sal ! LIM ice thermodynamics: salinity … … 336 340 ! 337 341 CALL lim_thd_sal_init ! set ice salinity parameters 338 ! 342 343 ! MV MP 2016 344 CALL lim_mp_init ! set melt ponds parameters 345 ! END MV MP 2016 346 339 347 IF( ln_limdyn ) CALL lim_itd_me_init ! ice thickness distribution initialization for mecanical deformation 340 348 ! ! Initial sea-ice state
Note: See TracChangeset
for help on using the changeset viewer.