Changeset 4245 for branches/2013/dev_LOCEAN_CMCC_INGV_MERC_UKMO_2013/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90
- Timestamp:
- 2013-11-19T12:19:21+01:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_LOCEAN_CMCC_INGV_MERC_UKMO_2013/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90
r4230 r4245 79 79 REAL(wp) :: rn_efac ! multiplication factor for evaporation (clem) 80 80 REAL(wp) :: rn_vfac ! multiplication factor for ice/ocean velocity in the calculation of wind stress (clem) 81 LOGICAL :: ln_bulk2z ! logical flag for case where z(q,t) and z(u) are specified in the namelist 82 REAL(wp) :: rn_zqt ! z(q,t) : height of humidity and temperature measurements 83 REAL(wp) :: rn_zu ! z(u) : height of wind measurements 81 84 82 85 !! * Substitutions … … 134 137 NAMELIST/namsbc_core/ cn_dir , ln_2m , ln_taudif, rn_pfac, rn_efac, rn_vfac, & 135 138 & sn_wndi, sn_wndj, sn_humi , sn_qsr , & 136 & sn_qlw , sn_tair, sn_prec , sn_snow, sn_tdif 139 & sn_qlw , sn_tair, sn_prec , sn_snow, & 140 & sn_tdif, rn_zqt , ln_bulk2z, rn_zu 137 141 !!--------------------------------------------------------------------- 138 142 … … 316 320 & Cd , Ch , Ce , & 317 321 & zt_zu , zq_zu ) 322 ELSE IF( ln_bulk2z ) THEN 323 !! If the height of the air temp./spec. hum. and wind are to be specified by hand : 324 IF( rn_zqt == rn_zu ) THEN 325 !! If air temp. and spec. hum. are at the same height as wind : 326 CALL TURB_CORE_1Z( rn_zu, zst , sf(jp_tair)%fnow(:,:,1), & 327 & zqsatw, sf(jp_humi)%fnow(:,:,1), wndm, & 328 & Cd , Ch , Ce ) 329 ELSE 330 !! If air temp. and spec. hum. are at a different height to wind : 331 CALL TURB_CORE_2Z(rn_zqt, rn_zu , zst , sf(jp_tair)%fnow, & 332 & zqsatw, sf(jp_humi)%fnow, wndm, & 333 & Cd , Ch , Ce , & 334 & zt_zu , zq_zu ) 335 ENDIF 318 336 ELSE 319 337 !! If air temp. and spec. hum. are given at same height than wind (10m) : … … 360 378 ! Turbulent fluxes over ocean 361 379 ! ----------------------------- 362 IF( ln_2m ) THEN363 ! Values of temp. and hum. adjusted to 10m must be used instead of 2m values380 IF( ln_2m .OR. ( ln_bulk2z .AND. rn_zqt /= rn_zu ) ) THEN 381 ! Values of temp. and hum. adjusted to height of wind must be used 364 382 zevap(:,:) = rn_efac * MAX( 0.e0, rhoa *Ce(:,:)*( zqsatw(:,:) - zq_zu(:,:) ) * wndm(:,:) ) ! Evaporation 365 383 zqsb (:,:) = rhoa*cpa*Ch(:,:)*( zst (:,:) - zt_zu(:,:) ) * wndm(:,:) ! Sensible Heat … … 789 807 !! Momentum, Latent and sensible heat exchange coefficients 790 808 !! Caution: this procedure should only be used in cases when air 791 !! temperature (T_air) and air specific humidity (q_air) are at 2m792 !! whereas wind (dU) is at 10m.809 !! temperature (T_air) and air specific humidity (q_air) are at a 810 !! different height to wind (dU). 793 811 !! 794 812 !! References : Large & Yeager, 2004 : ??? … … 808 826 809 827 INTEGER :: j_itt 810 INTEGER , PARAMETER :: nb_itt = 3! number of itterations828 INTEGER , PARAMETER :: nb_itt = 5 ! number of itterations 811 829 REAL(wp), PARAMETER :: grav = 9.8 ! gravity 812 830 REAL(wp), PARAMETER :: kappa = 0.4 ! von Karman's constant … … 905 923 !! 906 924 !! Shifting the neutral 10m transfer coefficients to (zu,zeta_u) : 907 xct = 1. + sqrt_Cd_n10/kappa*(log(zu/10.) - zpsi_m) 925 xct = 1. + sqrt_Cd_n10/kappa*(log(zu/10.) - zpsi_m) ! L & Y eq. (10a) 908 926 Cd = Cd_n10/(xct*xct) ; sqrt_Cd = sqrt(Cd) 909 927 ENDIF … … 911 929 xlogt = log(zu/10.) - zpsi_hu 912 930 !! 913 xct = 1. + Ch_n10*xlogt/kappa/sqrt_Cd_n10 931 xct = 1. + Ch_n10*xlogt/kappa/sqrt_Cd_n10 ! L & Y eq. (10b) 914 932 Ch = Ch_n10*sqrt_Cd/sqrt_Cd_n10/xct 915 933 !! 916 xct = 1. + Ce_n10*xlogt/kappa/sqrt_Cd_n10 934 xct = 1. + Ce_n10*xlogt/kappa/sqrt_Cd_n10 ! L & Y eq. (10c) 917 935 Ce = Ce_n10*sqrt_Cd/sqrt_Cd_n10/xct 918 936 !!
Note: See TracChangeset
for help on using the changeset viewer.