Changeset 9567
- Timestamp:
- 2018-05-10T16:26:43+02:00 (6 years ago)
- Location:
- branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/SBC
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_clio.F90
r8529 r9567 311 311 ztaevbk = ztatm * ztatm3 * zcldeff * ( 0.39 - 0.05 * zevsqr ) 312 312 ! 313 zqlw(ji,jj) = - emic * stefan * ( ztaevbk + 4. * ztatm3 * ( zsst - ztatm ) ) 313 zqlw(ji,jj) = - emic * stefan * ( ztaevbk + 4. * ztatm3 * ( zsst - ztatm ) ) * tmask(ji,jj,1) 314 314 315 315 !-------------------------------------------------- … … 365 365 366 366 ! sensible heat flux 367 zqsb(ji,jj) = zrhova * zcsho * 1004.0 * ( zsst - ztatm ) 367 zqsb(ji,jj) = zrhova * zcsho * 1004.0 * ( zsst - ztatm ) * tmask(ji,jj,1) 368 368 369 369 ! latent heat flux (bounded by zero) 370 zqla(ji,jj) = MAX( 0.e0, zrhova * zcleo * 2.5e+06 * ( zqsato - zqatm ) ) 370 zqla(ji,jj) = MAX( 0.e0, zrhova * zcleo * 2.5e+06 * ( zqsato - zqatm ) ) * tmask(ji,jj,1) 371 371 ! 372 372 END DO … … 550 550 zmt2 = ( 272.0 - ztatm(ji,jj) ) / 38.0 ; zind2 = MAX( 0.e0, SIGN( 1.e0, zmt2 ) ) 551 551 zmt3 = ( 281.0 - ztatm(ji,jj) ) / 18.0 ; zind3 = MAX( 0.e0, SIGN( 1.e0, zmt3 ) ) 552 sprecip(ji,jj) = sf(jp_prec)%fnow(ji,jj,1) / rday & ! rday = converte mm/day to kg/m2/s553 & * ( zind1 & ! solid (snow) precipitation [kg/m2/s]552 sprecip(ji,jj) = sf(jp_prec)%fnow(ji,jj,1) / rday * tmask(ji,jj,1) & ! rday = converte mm/day to kg/m2/s 553 & * ( zind1 & ! solid (snow) precipitation [kg/m2/s] 554 554 & + ( 1.0 - zind1 ) * ( zind2 * ( 0.5 + zmt2 ) & 555 555 & + ( 1.0 - zind2 ) * zind3 * zmt3 ) ) … … 591 591 ztaevbk = ztatm3 * ztatm(ji,jj) * zcldeff * ( 0.39 - 0.05 * zevsqr(ji,jj) ) 592 592 ! 593 z_qlw(ji,jj,jl) = - emic * stefan * ( ztaevbk + 4. * ztatm3 * ( ptsu(ji,jj,jl) - ztatm(ji,jj) ) ) 593 z_qlw(ji,jj,jl) = - emic * stefan * ( ztaevbk + 4. * ztatm3 * ( ptsu(ji,jj,jl) - ztatm(ji,jj) ) ) * tmask(ji,jj,1) 594 594 595 595 !---------------------------------------- … … 618 618 619 619 ! sensible heat flux 620 z_qsb(ji,jj,jl) = zrhovacshi * ( ptsu(ji,jj,jl) - ztatm(ji,jj) ) 620 z_qsb(ji,jj,jl) = zrhovacshi * ( ptsu(ji,jj,jl) - ztatm(ji,jj) ) * tmask(ji,jj,1) 621 621 622 622 ! latent heat flux 623 qla_ice(ji,jj,jl) = MAX( 0.e0, zrhovaclei * ( zqsati - zqatm(ji,jj) ) ) 623 qla_ice(ji,jj,jl) = MAX( 0.e0, zrhovaclei * ( zqsati - zqatm(ji,jj) ) ) * tmask(ji,jj,1) 624 624 625 625 ! sensitivity of non solar fluxes (dQ/dT) (long-wave, sensible and latent fluxes) … … 643 643 qns_ice(:,:,:) = z_qlw (:,:,:) - z_qsb (:,:,:) - qla_ice (:,:,:) ! Downward Non Solar flux 644 644 !CDIR COLLAPSE 645 tprecip(:,:) = sf(jp_prec)%fnow(:,:,1) / rday 645 tprecip(:,:) = sf(jp_prec)%fnow(:,:,1) / rday * tmask(:,:,1) ! total precipitation [kg/m2/s] 646 646 ! 647 647 ! ----------------------------------------------------------------------------- ! -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90
r8529 r9567 394 394 & * ( sf(jp_tair)%fnow(:,:,1) - rt0 ) * rcp & 395 395 & + sf(jp_snow)%fnow(:,:,1) * rn_pfac & ! add solid precip heat content at min(Tair,Tsnow) 396 & * ( MIN( sf(jp_tair)%fnow(:,:,1), rt0_snow ) - rt0 ) * cpic * tmask(:,:,1) 396 & * ( MIN( sf(jp_tair)%fnow(:,:,1), rt0_snow ) - rt0 ) * cpic 397 qns(:,:) = qns(:,:) * tmask(:,:,1) 397 398 ! 398 399 #if defined key_lim3 … … 409 410 CALL iom_put( "qsr_oce" , qsr ) ! output downward solar heat over the ocean 410 411 CALL iom_put( "qt_oce" , qns+qsr ) ! output total downward heat over the ocean 411 tprecip(:,:) = sf(jp_prec)%fnow(:,:,1) * rn_pfac 412 sprecip(:,:) = sf(jp_snow)%fnow(:,:,1) * rn_pfac 412 tprecip(:,:) = sf(jp_prec)%fnow(:,:,1) * rn_pfac * tmask(:,:,1) ! output total precipitation [kg/m2/s] 413 sprecip(:,:) = sf(jp_snow)%fnow(:,:,1) * rn_pfac * tmask(:,:,1) ! output solid precipitation [kg/m2/s] 413 414 CALL iom_put( 'snowpre', sprecip * 86400. ) ! Snow 414 415 CALL iom_put( 'precip' , tprecip * 86400. ) ! Total precipitation … … 608 609 END DO 609 610 ! 610 tprecip(:,:) = sf(jp_prec)%fnow(:,:,1) * rn_pfac 611 sprecip(:,:) = sf(jp_snow)%fnow(:,:,1) * rn_pfac 611 tprecip(:,:) = sf(jp_prec)%fnow(:,:,1) * rn_pfac * tmask(:,:,1) ! total precipitation [kg/m2/s] 612 sprecip(:,:) = sf(jp_snow)%fnow(:,:,1) * rn_pfac * tmask(:,:,1) ! solid precipitation [kg/m2/s] 612 613 CALL iom_put( 'snowpre', sprecip * 86400. ) ! Snow precipitation 613 614 CALL iom_put( 'precip' , tprecip * 86400. ) ! Total precipitation -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_mfs.F90
r8145 r9567 461 461 !!---------------------------------------------------------------------- 462 462 463 esre = shms(ji,jj) - shnow(ji,jj) ! --- calculates the term : qs(Ta)-qa(t2d)464 465 cseep = ce(ji,jj) * wndm(ji,jj) * esre ! --- calculates the term : Ce*|V|*[qs(Ts)-qa(t2d)]466 467 evap(ji,jj) = (cseep * rhom(ji,jj)) ! in [kg/m2/sec] !! --- calculates the EVAPORATION RATE [m/yr]468 469 elat(ji,jj) = rhom(ji,jj) * cseep * heatlat(sst(ji,jj)) 463 esre = shms(ji,jj) - shnow(ji,jj) * tmask(ji,jj,1) ! --- calculates the term : qs(Ta)-qa(t2d) 464 465 cseep = ce(ji,jj) * wndm(ji,jj) * esre * tmask(ji,jj,1) ! --- calculates the term : Ce*|V|*[qs(Ts)-qa(t2d)] 466 467 evap(ji,jj) = (cseep * rhom(ji,jj)) * tmask(ji,jj,1) ! in [kg/m2/sec] !! --- calculates the EVAPORATION RATE [m/yr] 468 469 elat(ji,jj) = rhom(ji,jj) * cseep * heatlat(sst(ji,jj)) * tmask(ji,jj,1) 470 470 471 471 !!---------------------------------------------------------------------- … … 635 635 636 636 IF(cldnow(ji,jj).LT.0.3) THEN 637 qsw(ji,jj) = qtot * (1.-albedo) 637 qsw(ji,jj) = qtot * (1.-albedo) * tmask(ji,jj,1) 638 638 ELSE 639 639 qsw(ji,jj) = qtot*(1.-0.62*cldnow(ji,jj) & 640 + .0019*sunbet)*(1.-albedo) 640 + .0019*sunbet)*(1.-albedo) * tmask(ji,jj,1) 641 641 ENDIF 642 642 -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90
r7963 r9567 120 120 IF( MOD( kt - 1, nn_fsbc ) == 0 ) THEN 121 121 ! 122 IF( .NOT. l_rnfcpl ) rnf(:,:) = rn_rfact * ( sf_rnf(1)%fnow(:,:,1) ) 122 IF( .NOT. l_rnfcpl ) rnf(:,:) = rn_rfact * ( sf_rnf(1)%fnow(:,:,1) ) * tmask(:,:,1) ! updated runoff value at time step kt 123 123 ! 124 124 ! ! set temperature & salinity content of runoffs -
branches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssr.F90
r4990 r9567 97 97 DO jj = 1, jpj 98 98 DO ji = 1, jpi 99 zqrp = rn_dqdt * ( sst_m(ji,jj) - sf_sst(1)%fnow(ji,jj,1) ) 99 zqrp = rn_dqdt * ( sst_m(ji,jj) - sf_sst(1)%fnow(ji,jj,1) ) * tmask(ji,jj,1) 100 100 qns(ji,jj) = qns(ji,jj) + zqrp 101 101 qrp(ji,jj) = zqrp … … 111 111 DO ji = 1, jpi 112 112 zerp = zsrp * ( 1. - 2.*rnfmsk(ji,jj) ) & ! No damping in vicinity of river mouths 113 & * ( sss_m(ji,jj) - sf_sss(1)%fnow(ji,jj,1) ) 113 & * ( sss_m(ji,jj) - sf_sss(1)%fnow(ji,jj,1) ) * tmask(ji,jj,1) 114 114 sfx(ji,jj) = sfx(ji,jj) + zerp ! salt flux 115 115 erp(ji,jj) = zerp / MAX( sss_m(ji,jj), 1.e-20 ) ! converted into an equivalent volume flux (diagnostic only) … … 126 126 zerp = zsrp * ( 1. - 2.*rnfmsk(ji,jj) ) & ! No damping in vicinity of river mouths 127 127 & * ( sss_m(ji,jj) - sf_sss(1)%fnow(ji,jj,1) ) & 128 & / MAX( sss_m(ji,jj), 1.e-20 ) 128 & / MAX( sss_m(ji,jj), 1.e-20 ) * tmask(ji,jj,1) 129 129 IF( ln_sssr_bnd ) zerp = SIGN( 1., zerp ) * MIN( zerp_bnd, ABS(zerp) ) 130 130 emp(ji,jj) = emp (ji,jj) + zerp
Note: See TracChangeset
for help on using the changeset viewer.