- Timestamp:
- 2013-10-28T14:50:08+01:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_r3987_UKMO6_C1D/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90
r3772 r4144 73 73 74 74 ! !!* Namelist namsbc_core : CORE bulk parameters 75 LOGICAL :: ln_2m = .FALSE. ! logical flag for height of air temp. and hum 75 LOGICAL :: ln_2m = .FALSE. ! logical flag for case where z(q,t) = 2m and z(u) = 10m 76 LOGICAL :: ln_bulk2z = .FALSE. ! logical flag for case where z(q,t) and z(u) are specified in the namelist 77 REAL(wp) :: rn_zqt = 10. ! z(q,t) : height of humidity and temperature measurements 78 REAL(wp) :: rn_zu = 10. ! z(u) : height of wind measurements 76 79 LOGICAL :: ln_taudif = .FALSE. ! logical flag to use the "mean of stress module - module of mean stress" data 77 80 REAL(wp) :: rn_pfac = 1. ! multiplication factor for precipitation … … 129 132 NAMELIST/namsbc_core/ cn_dir , ln_2m , ln_taudif, rn_pfac, & 130 133 & sn_wndi, sn_wndj, sn_humi , sn_qsr , & 131 & sn_qlw , sn_tair, sn_prec , sn_snow, sn_tdif 134 & sn_qlw , sn_tair, sn_prec , sn_snow, & 135 & sn_tdif, rn_zqt , ln_bulk2z, rn_zu 132 136 !!--------------------------------------------------------------------- 133 137 … … 319 323 & Cd , Ch , Ce , & 320 324 & zt_zu , zq_zu ) 325 ELSE IF( ln_bulk2z ) THEN 326 !! If the height of the air temp./spec. hum. and wind are to be specified by hand : 327 IF( rn_zqt == rn_zu ) THEN 328 !! If air temp. and spec. hum. are at the same height as wind : 329 CALL TURB_CORE_1Z( rn_zu, zst , sf(jp_tair)%fnow(:,:,1), & 330 & zqsatw, sf(jp_humi)%fnow(:,:,1), wndm, & 331 & Cd , Ch , Ce ) 332 ELSE 333 !! If air temp. and spec. hum. are at a different height to wind : 334 CALL TURB_CORE_2Z(rn_zqt, rn_zu , zst , sf(jp_tair)%fnow, & 335 & zqsatw, sf(jp_humi)%fnow, wndm, & 336 & Cd , Ch , Ce , & 337 & zt_zu , zq_zu ) 338 ENDIF 321 339 ELSE 322 340 !! If air temp. and spec. hum. are given at same height than wind (10m) : … … 363 381 ! Turbulent fluxes over ocean 364 382 ! ----------------------------- 365 IF( ln_2m ) THEN366 ! Values of temp. and hum. adjusted to 10m must be used instead of 2m values383 IF( ln_2m .OR. ( ln_bulk2z .AND. rn_zqt /= rn_zu ) ) THEN 384 ! Values of temp. and hum. adjusted to height of wind must be used 367 385 zevap(:,:) = MAX( 0.e0, rhoa *Ce(:,:)*( zqsatw(:,:) - zq_zu(:,:) ) * wndm(:,:) ) ! Evaporation 368 386 zqsb (:,:) = rhoa*cpa*Ch(:,:)*( zst (:,:) - zt_zu(:,:) ) * wndm(:,:) ! Sensible Heat … … 786 804 !! Momentum, Latent and sensible heat exchange coefficients 787 805 !! Caution: this procedure should only be used in cases when air 788 !! temperature (T_air) and air specific humidity (q_air) are at 2m789 !! whereas wind (dU) is at 10m.806 !! temperature (T_air) and air specific humidity (q_air) are at a 807 !! different height to wind (dU). 790 808 !! 791 809 !! References : Large & Yeager, 2004 : ??? … … 805 823 806 824 INTEGER :: j_itt 807 INTEGER , PARAMETER :: nb_itt = 3! number of itterations825 INTEGER , PARAMETER :: nb_itt = 5 ! number of itterations 808 826 REAL(wp), PARAMETER :: grav = 9.8 ! gravity 809 827 REAL(wp), PARAMETER :: kappa = 0.4 ! von Karman's constant … … 902 920 !! 903 921 !! Shifting the neutral 10m transfer coefficients to (zu,zeta_u) : 904 xct = 1. + sqrt_Cd_n10/kappa*(log(zu/10.) - zpsi_m) 922 xct = 1. + sqrt_Cd_n10/kappa*(log(zu/10.) - zpsi_m) ! L & Y eq. (10a) 905 923 Cd = Cd_n10/(xct*xct) ; sqrt_Cd = sqrt(Cd) 906 924 ENDIF … … 908 926 xlogt = log(zu/10.) - zpsi_hu 909 927 !! 910 xct = 1. + Ch_n10*xlogt/kappa/sqrt_Cd_n10 928 xct = 1. + Ch_n10*xlogt/kappa/sqrt_Cd_n10 ! L & Y eq. (10b) 911 929 Ch = Ch_n10*sqrt_Cd/sqrt_Cd_n10/xct 912 930 !! 913 xct = 1. + Ce_n10*xlogt/kappa/sqrt_Cd_n10 931 xct = 1. + Ce_n10*xlogt/kappa/sqrt_Cd_n10 ! L & Y eq. (10c) 914 932 Ce = Ce_n10*sqrt_Cd/sqrt_Cd_n10/xct 915 933 !!
Note: See TracChangeset
for help on using the changeset viewer.