- Timestamp:
- 2013-06-26T09:54:16+02:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_r3406_CNRS_LIM3/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90
r3294 r3938 68 68 REAL(wp), PARAMETER :: Ls = 2.839e6 ! latent heat of sublimation 69 69 REAL(wp), PARAMETER :: Stef = 5.67e-8 ! Stefan Boltzmann constant 70 REAL(wp), PARAMETER :: Cice = 1.63e-3 ! transfer coefficient over ice 70 !iovi REAL(wp), PARAMETER :: Cice = 1.63e-3 ! transfer coefficient over ice 71 REAL(wp), PARAMETER :: Cice = 1.4e-3 ! transfer coefficient over ice 71 72 REAL(wp), PARAMETER :: albo = 0.066 ! ocean albedo assumed to be contant 72 73 … … 75 76 LOGICAL :: ln_taudif = .FALSE. ! logical flag to use the "mean of stress module - module of mean stress" data 76 77 REAL(wp) :: rn_pfac = 1. ! multiplication factor for precipitation 78 REAL(wp) :: rn_efac = 1. ! multiplication factor for evaporation (clem) 79 REAL(wp) :: rn_vfac = 1. ! multiplication factor for ice/ocean velocity in the calculation of wind stress (clem) 77 80 78 81 !! * Substitutions … … 128 131 TYPE(FLD_N) :: sn_qlw , sn_tair, sn_prec, sn_snow ! " " 129 132 TYPE(FLD_N) :: sn_tdif ! " " 130 NAMELIST/namsbc_core/ cn_dir , ln_2m , ln_taudif, rn_pfac, 133 NAMELIST/namsbc_core/ cn_dir , ln_2m , ln_taudif, rn_pfac, rn_efac, rn_vfac, & 131 134 & sn_wndi, sn_wndj, sn_humi , sn_qsr , & 132 135 & sn_qlw , sn_tair, sn_prec , sn_snow, sn_tdif … … 266 269 DO jj = 2, jpjm1 267 270 DO ji = fs_2, fs_jpim1 ! vect. opt. 268 zwnd_i(ji,jj) = ( sf(jp_wndi)%fnow(ji,jj,1) - 0.5 * ( pu(ji-1,jj ) + pu(ji,jj) ) )269 zwnd_j(ji,jj) = ( sf(jp_wndj)%fnow(ji,jj,1) - 0.5 * ( pv(ji ,jj-1) + pv(ji,jj) ) )271 zwnd_i(ji,jj) = ( sf(jp_wndi)%fnow(ji,jj,1) - rn_vfac * 0.5 * ( pu(ji-1,jj ) + pu(ji,jj) ) ) 272 zwnd_j(ji,jj) = ( sf(jp_wndj)%fnow(ji,jj,1) - rn_vfac * 0.5 * ( pv(ji ,jj-1) + pv(ji,jj) ) ) 270 273 END DO 271 274 END DO … … 351 354 IF( ln_2m ) THEN 352 355 ! Values of temp. and hum. adjusted to 10m must be used instead of 2m values 353 zevap(:,:) = MAX( 0.e0, rhoa *Ce(:,:)*( zqsatw(:,:) - zq_zu(:,:) ) * wndm(:,:) ) ! Evaporation354 zqsb (:,:) = rhoa*cpa*Ch(:,:)*( zst (:,:) - zt_zu(:,:) ) * wndm(:,:) ! Sensible Heat356 zevap(:,:) = rn_efac * MAX( 0.e0, rhoa *Ce(:,:)*( zqsatw(:,:) - zq_zu(:,:) ) * wndm(:,:) ) ! Evaporation 357 zqsb (:,:) = rhoa*cpa*Ch(:,:)*( zst (:,:) - zt_zu(:,:) ) * wndm(:,:) ! Sensible Heat 355 358 ELSE 356 359 !CDIR COLLAPSE 357 zevap(:,:) = MAX( 0.e0, rhoa *Ce(:,:)*( zqsatw(:,:) - sf(jp_humi)%fnow(:,:,1) ) * wndm(:,:) ) ! Evaporation358 !CDIR COLLAPSE 359 zqsb (:,:) = rhoa*cpa*Ch(:,:)*( zst (:,:) - sf(jp_tair)%fnow(:,:,1) ) * wndm(:,:) ! Sensible Heat360 zevap(:,:) = rn_efac * MAX( 0.e0, rhoa *Ce(:,:)*( zqsatw(:,:) - sf(jp_humi)%fnow(:,:,1) ) * wndm(:,:) ) ! Evaporation 361 !CDIR COLLAPSE 362 zqsb (:,:) = rhoa*cpa*Ch(:,:)*( zst (:,:) - sf(jp_tair)%fnow(:,:,1) ) * wndm(:,:) ! Sensible Heat 360 363 ENDIF 361 364 !CDIR COLLAPSE … … 491 494 ! ... scalar wind at I-point (fld being at T-point) 492 495 zwndi_f = 0.25 * ( sf(jp_wndi)%fnow(ji-1,jj ,1) + sf(jp_wndi)%fnow(ji ,jj ,1) & 493 & + sf(jp_wndi)%fnow(ji-1,jj-1,1) + sf(jp_wndi)%fnow(ji ,jj-1,1) ) - pui(ji,jj)496 & + sf(jp_wndi)%fnow(ji-1,jj-1,1) + sf(jp_wndi)%fnow(ji ,jj-1,1) ) - rn_vfac * pui(ji,jj) 494 497 zwndj_f = 0.25 * ( sf(jp_wndj)%fnow(ji-1,jj ,1) + sf(jp_wndj)%fnow(ji ,jj ,1) & 495 & + sf(jp_wndj)%fnow(ji-1,jj-1,1) + sf(jp_wndj)%fnow(ji ,jj-1,1) ) - pvi(ji,jj)498 & + sf(jp_wndj)%fnow(ji-1,jj-1,1) + sf(jp_wndj)%fnow(ji ,jj-1,1) ) - rn_vfac * pvi(ji,jj) 496 499 zwnorm_f = zcoef_wnorm * SQRT( zwndi_f * zwndi_f + zwndj_f * zwndj_f ) 497 500 ! ... ice stress at I-point … … 499 502 p_tauj(ji,jj) = zwnorm_f * zwndj_f 500 503 ! ... scalar wind at T-point (fld being at T-point) 501 zwndi_t = sf(jp_wndi)%fnow(ji,jj,1) - 0.25 * ( pui(ji,jj+1) + pui(ji+1,jj+1) &502 & + pui(ji,jj ) + pui(ji+1,jj ) )503 zwndj_t = sf(jp_wndj)%fnow(ji,jj,1) - 0.25 * ( pvi(ji,jj+1) + pvi(ji+1,jj+1) &504 & + pvi(ji,jj ) + pvi(ji+1,jj ) )504 zwndi_t = sf(jp_wndi)%fnow(ji,jj,1) - rn_vfac * 0.25 * ( pui(ji,jj+1) + pui(ji+1,jj+1) & 505 & + pui(ji,jj ) + pui(ji+1,jj ) ) 506 zwndj_t = sf(jp_wndj)%fnow(ji,jj,1) - rn_vfac * 0.25 * ( pvi(ji,jj+1) + pvi(ji+1,jj+1) & 507 & + pvi(ji,jj ) + pvi(ji+1,jj ) ) 505 508 z_wnds_t(ji,jj) = SQRT( zwndi_t * zwndi_t + zwndj_t * zwndj_t ) * tmask(ji,jj,1) 506 509 END DO … … 516 519 DO jj = 2, jpj 517 520 DO ji = fs_2, jpi ! vect. opt. 518 zwndi_t = ( sf(jp_wndi)%fnow(ji,jj,1) - 0.5 * ( pui(ji-1,jj ) + pui(ji,jj) ) )519 zwndj_t = ( sf(jp_wndj)%fnow(ji,jj,1) - 0.5 * ( pvi(ji ,jj-1) + pvi(ji,jj) ) )521 zwndi_t = ( sf(jp_wndi)%fnow(ji,jj,1) - rn_vfac * 0.5 * ( pui(ji-1,jj ) + pui(ji,jj) ) ) 522 zwndj_t = ( sf(jp_wndj)%fnow(ji,jj,1) - rn_vfac * 0.5 * ( pvi(ji ,jj-1) + pvi(ji,jj) ) ) 520 523 z_wnds_t(ji,jj) = SQRT( zwndi_t * zwndi_t + zwndj_t * zwndj_t ) * tmask(ji,jj,1) 521 524 END DO … … 555 558 p_qsr(ji,jj,jl) = zztmp * ( 1. - palb(ji,jj,jl) ) * qsr(ji,jj) 556 559 ! Long Wave (lw) 557 z_qlw(ji,jj,jl) = 0.95 * ( sf(jp_qlw)%fnow(ji,jj,1) - Stef * pst(ji,jj,jl) * zst3 ) * tmask(ji,jj,1) 560 ! iovino 561 IF( ff(ji,jj) .GT. 0._wp ) THEN 562 z_qlw(ji,jj,jl) = ( 0.95 * sf(jp_qlw)%fnow(ji,jj,1) - Stef * pst(ji,jj,jl) * zst3 ) * tmask(ji,jj,1) ! MV test 2 garde juste cette ligne ci 563 ELSE 564 z_qlw(ji,jj,jl) = 0.95 * ( sf(jp_qlw)%fnow(ji,jj,1) - Stef * pst(ji,jj,jl) * zst3 ) * tmask(ji,jj,1) ! MV test 1 garde juste cette ligne ci 565 ENDIF 558 566 ! lw sensitivity 559 567 z_dqlw(ji,jj,jl) = zcoef_dqlw * zst3 … … 567 575 z_qsb(ji,jj,jl) = rhoa * cpa * Cice * z_wnds_t(ji,jj) * ( pst(ji,jj,jl) - sf(jp_tair)%fnow(ji,jj,1) ) 568 576 ! Latent Heat 569 p_qla(ji,jj,jl) = MAX( 0.e0, rhoa * Ls * Cice * z_wnds_t(ji,jj) &570 & * ( 11637800. * EXP( -5897.8 / pst(ji,jj,jl) ) / rhoa - sf(jp_humi)%fnow(ji,jj,1) ) )577 p_qla(ji,jj,jl) = rn_efac * MAX( 0.e0, rhoa * Ls * Cice * z_wnds_t(ji,jj) & 578 & * ( 11637800. * EXP( -5897.8 / pst(ji,jj,jl) ) / rhoa - sf(jp_humi)%fnow(ji,jj,1) ) ) 571 579 ! Latent heat sensitivity for ice (Dqla/Dt) 572 p_dqla(ji,jj,jl) = zcoef_dqla * z_wnds_t(ji,jj) / ( zst2 ) * EXP( -5897.8 / pst(ji,jj,jl) )580 p_dqla(ji,jj,jl) = rn_efac * zcoef_dqla * z_wnds_t(ji,jj) / ( zst2 ) * EXP( -5897.8 / pst(ji,jj,jl) ) 573 581 ! Sensible heat sensitivity (Dqsb_ice/Dtn_ice) 574 582 z_dqsb(ji,jj,jl) = zcoef_dqsb * z_wnds_t(ji,jj) 575 583 ! 584 ! 576 585 ! ----------------------------! 577 586 ! III Total FLUXES ! … … 601 610 !CDIR COLLAPSE 602 611 p_spr(:,:) = sf(jp_snow)%fnow(:,:,1) * rn_pfac ! solid precipitation [kg/m2/s] 603 CALL iom_put( 'snowpre', p_spr ) ! Snow precipitation 612 CALL iom_put( 'snowpre', p_spr * 86400 ) ! Snow precipitation 613 CALL iom_put( 'precip', p_tpr * 86400 ) ! Total precipitation 604 614 ! 605 615 IF(ln_ctl) THEN
Note: See TracChangeset
for help on using the changeset viewer.