SURFEX v7.3
General documentation of Surfex
|
00001 ! ############################################################################### 00002 SUBROUTINE COUPLING_SEAWAT_SBL_n(HPROGRAM, HCOUPLING, HSURF, & 00003 PTSTEP, KYEAR, KMONTH, KDAY, PTIME, KI, KSV, KSW, PTSUN, PZENITH, PZENITH2, & 00004 PAZIM, PZREF, PUREF, PZS, PU, PV, PQA, PTA, PRHOA, PSV, PCO2, HSV, & 00005 PRAIN, PSNOW, PLW, PDIR_SW, PSCA_SW, PSW_BANDS, PPS, PPA, & 00006 PSFTQ, PSFTH, PSFTS, PSFCO2, PSFU, PSFV, OSBL, PSST, PZ0, & 00007 PZ, PXU, KLVL, PTKE, PT, PQ, PLMO, PZF, PDZ, PDZF, PP, & 00008 K2M, PT2M, PQ2M, PHU2M, PZON10M, PMER10M, PWIND10M, PWIND10M_MAX, & 00009 PT2M_MIN, PT2M_MAX, PHU2M_MIN, PHU2M_MAX, & 00010 PTRAD, PDIR_ALB, PSCA_ALB, PEMIS, & 00011 PPEW_A_COEF, PPEW_B_COEF, & 00012 PPET_A_COEF, PPEQ_A_COEF, PPET_B_COEF, PPEQ_B_COEF, & 00013 HTEST ) 00014 ! ############################################################################### 00015 ! 00016 !!**** *COUPLING_SEAWAT_SBL_n * - Adds a SBL into SEAFLUX 00017 !! 00018 !! PURPOSE 00019 !! ------- 00020 ! 00021 !!** METHOD 00022 !! ------ 00023 !! 00024 !! REFERENCE 00025 !! --------- 00026 !! 00027 !! 00028 !! AUTHOR 00029 !! ------ 00030 !! V. Masson 00031 !! 00032 !! MODIFICATIONS 00033 !! ------------- 00034 !! Original 09/2007 00035 !! V. Masson 05/2009 Implicitation of momentum fluxes 00036 !! S. Riette 06/2009 Initialisation of XT, PQ, XU and XTKE on canopy levels 00037 !! S. Riette 10/2009 Iterative computation of XZ0 00038 !! S. Riette 01/2010 Use of interpol_sbl to compute 10m wind diagnostic 00039 !---------------------------------------------------------------- 00040 ! 00041 USE MODD_SURF_PAR, ONLY : XUNDEF 00042 USE MODD_CSTS, ONLY : XCPD 00043 ! 00044 USE MODE_COUPLING_CANOPY 00045 ! 00046 USE MODI_INIT_WATER_SBL 00047 ! 00048 USE MODI_CANOPY_EVOL 00049 USE MODI_CANOPY_GRID_UPDATE 00050 ! 00051 USE MODI_COUPLING_SEAFLUX_n 00052 USE MODI_COUPLING_WATFLUX_n 00053 USE MODI_COUPLING_FLAKE_n 00054 ! 00055 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00056 USE PARKIND1 ,ONLY : JPRB 00057 ! 00058 IMPLICIT NONE 00059 ! 00060 !* 0.1 declarations of arguments 00061 ! 00062 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling surf. schemes 00063 CHARACTER(LEN=1), INTENT(IN) :: HCOUPLING ! type of coupling 00064 ! 'E' : explicit 00065 ! 'I' : implicit 00066 CHARACTER(LEN=1), INTENT(IN) :: HSURF ! 00067 INTEGER, INTENT(IN) :: KYEAR ! current year (UTC) 00068 INTEGER, INTENT(IN) :: KMONTH ! current month (UTC) 00069 INTEGER, INTENT(IN) :: KDAY ! current day (UTC) 00070 REAL, INTENT(IN) :: PTIME ! current time since midnight (UTC, s) 00071 INTEGER, INTENT(IN) :: KI ! number of points 00072 INTEGER, INTENT(IN) :: KSV ! number of scalars 00073 INTEGER, INTENT(IN) :: KSW ! number of short-wave spectral bands 00074 REAL, DIMENSION(KI), INTENT(IN) :: PTSUN ! solar time (s from midnight) 00075 REAL, INTENT(IN) :: PTSTEP ! atmospheric time-step (s) 00076 REAL, DIMENSION(KI), INTENT(IN) :: PZREF ! height of T,q forcing (m) 00077 REAL, DIMENSION(KI), INTENT(IN) :: PUREF ! height of wind forcing (m) 00078 ! 00079 REAL, DIMENSION(KI), INTENT(IN) :: PTA ! air temperature forcing (K) 00080 REAL, DIMENSION(KI), INTENT(IN) :: PQA ! air humidity forcing (kg/m3) 00081 REAL, DIMENSION(KI), INTENT(IN) :: PRHOA ! air density (kg/m3) 00082 REAL, DIMENSION(KI,KSV),INTENT(IN) :: PSV ! scalar variables 00083 ! ! chemistry: first char. in HSV: '#' (molecule/m3) 00084 ! ! 00085 CHARACTER(LEN=6), DIMENSION(KSV),INTENT(IN):: HSV ! name of all scalar variables 00086 REAL, DIMENSION(KI), INTENT(IN) :: PU ! zonal wind (m/s) 00087 REAL, DIMENSION(KI), INTENT(IN) :: PV ! meridian wind (m/s) 00088 REAL, DIMENSION(KI,KSW),INTENT(IN) :: PDIR_SW ! direct solar radiation (on horizontal surf.) 00089 ! ! (W/m2) 00090 REAL, DIMENSION(KI,KSW),INTENT(IN) :: PSCA_SW ! diffuse solar radiation (on horizontal surf.) 00091 ! ! (W/m2) 00092 REAL, DIMENSION(KSW),INTENT(IN) :: PSW_BANDS ! mean wavelength of each shortwave band (m) 00093 REAL, DIMENSION(KI), INTENT(IN) :: PZENITH ! zenithal angle at t (radian from the vertical) 00094 REAL, DIMENSION(KI), INTENT(IN) :: PZENITH2 ! zenithal angle at t+1(radian from the vertical) 00095 REAL, DIMENSION(KI), INTENT(IN) :: PAZIM ! azimuthal angle (radian from North, clockwise) 00096 REAL, DIMENSION(KI), INTENT(IN) :: PLW ! longwave radiation (on horizontal surf.) 00097 ! ! (W/m2) 00098 REAL, DIMENSION(KI), INTENT(IN) :: PPS ! pressure at atmospheric model surface (Pa) 00099 REAL, DIMENSION(KI), INTENT(IN) :: PPA ! pressure at forcing level (Pa) 00100 REAL, DIMENSION(KI), INTENT(IN) :: PZS ! atmospheric model CANOPY (m) 00101 REAL, DIMENSION(KI), INTENT(IN) :: PCO2 ! CO2 concentration in the air (kg/m3) 00102 REAL, DIMENSION(KI), INTENT(IN) :: PSNOW ! snow precipitation (kg/m2/s) 00103 REAL, DIMENSION(KI), INTENT(IN) :: PRAIN ! liquid precipitation (kg/m2/s) 00104 ! 00105 ! 00106 REAL, DIMENSION(KI), INTENT(OUT) :: PSFTH ! flux of heat (W/m2) 00107 REAL, DIMENSION(KI), INTENT(OUT) :: PSFTQ ! flux of water vapor (kg/m2/s) 00108 REAL, DIMENSION(KI), INTENT(OUT) :: PSFU ! zonal momentum flux (Pa) 00109 REAL, DIMENSION(KI), INTENT(OUT) :: PSFV ! meridian momentum flux (Pa) 00110 REAL, DIMENSION(KI), INTENT(OUT) :: PSFCO2 ! flux of CO2 (kg/m2/s) 00111 REAL, DIMENSION(KI,KSV),INTENT(OUT):: PSFTS ! flux of scalar var. (kg/m2/s) 00112 ! 00113 LOGICAL, INTENT(IN) :: OSBL 00114 REAL, DIMENSION(KI), INTENT(IN) :: PSST 00115 REAL, DIMENSION(KI), INTENT(INOUT) :: PZ0 00116 REAL, DIMENSION(KI,KLVL), INTENT(INOUT) :: PZ 00117 REAL, DIMENSION(KI,KLVL), INTENT(INOUT) :: PXU 00118 INTEGER, INTENT(IN) :: KLVL 00119 REAL, DIMENSION(KI,KLVL), INTENT(INOUT) :: PTKE 00120 REAL, DIMENSION(KI,KLVL), INTENT(INOUT) :: PT 00121 REAL, DIMENSION(KI,KLVL), INTENT(INOUT) :: PQ 00122 REAL, DIMENSION(KI), INTENT(INOUT) :: PLMO 00123 REAL, DIMENSION(KI,KLVL), INTENT(INOUT) :: PZF 00124 REAL, DIMENSION(KI,KLVL), INTENT(INOUT) :: PDZ 00125 REAL, DIMENSION(KI,KLVL), INTENT(INOUT) :: PDZF 00126 REAL, DIMENSION(KI,KLVL), INTENT(INOUT) :: PP 00127 INTEGER, INTENT(IN) :: K2M 00128 REAL, DIMENSION(KI), INTENT(INOUT) :: PT2M 00129 REAL, DIMENSION(KI), INTENT(INOUT) :: PQ2M 00130 REAL, DIMENSION(KI), INTENT(INOUT) :: PHU2M 00131 REAL, DIMENSION(KI), INTENT(INOUT) :: PZON10M 00132 REAL, DIMENSION(KI), INTENT(INOUT) :: PMER10M 00133 REAL, DIMENSION(KI), INTENT(INOUT) :: PWIND10M 00134 REAL, DIMENSION(KI), INTENT(INOUT) :: PWIND10M_MAX 00135 REAL, DIMENSION(KI), INTENT(INOUT) :: PT2M_MIN 00136 REAL, DIMENSION(KI), INTENT(INOUT) :: PT2M_MAX 00137 REAL, DIMENSION(KI), INTENT(INOUT) :: PHU2M_MIN 00138 REAL, DIMENSION(KI), INTENT(INOUT) :: PHU2M_MAX 00139 ! 00140 REAL, DIMENSION(KI), INTENT(OUT) :: PTRAD ! radiative temperature (K) 00141 REAL, DIMENSION(KI,KSW),INTENT(OUT):: PDIR_ALB! direct albedo for each spectral band (-) 00142 REAL, DIMENSION(KI,KSW),INTENT(OUT):: PSCA_ALB! diffuse albedo for each spectral band (-) 00143 REAL, DIMENSION(KI), INTENT(OUT) :: PEMIS ! emissivity (-) 00144 ! 00145 REAL, DIMENSION(KI), INTENT(IN) :: PPEW_A_COEF! implicit coefficients 00146 REAL, DIMENSION(KI), INTENT(IN) :: PPEW_B_COEF! needed if HCOUPLING='I' 00147 REAL, DIMENSION(KI), INTENT(IN) :: PPET_A_COEF 00148 REAL, DIMENSION(KI), INTENT(IN) :: PPEQ_A_COEF 00149 REAL, DIMENSION(KI), INTENT(IN) :: PPET_B_COEF 00150 REAL, DIMENSION(KI), INTENT(IN) :: PPEQ_B_COEF 00151 CHARACTER(LEN=2), INTENT(IN) :: HTEST ! must be equal to 'OK' 00152 ! 00153 !* 0.2 declarations of local variables 00154 ! 00155 !* forcing variables 00156 ! 00157 REAL, DIMENSION(KI) :: ZWIND ! lowest atmospheric level wind speed (m/s) 00158 REAL, DIMENSION(KI) :: ZEXNA ! Exner function at lowest SBL scheme level (-) 00159 REAL, DIMENSION(KI) :: ZTA ! temperature (K) 00160 REAL, DIMENSION(KI) :: ZPA ! pressure (Pa) 00161 REAL, DIMENSION(KI) :: ZZREF ! temperature forcing level (m) 00162 REAL, DIMENSION(KI) :: ZUREF ! wind forcing level (m) 00163 REAL, DIMENSION(KI) :: ZU ! zonal wind (m/s) 00164 REAL, DIMENSION(KI) :: ZV ! meridian wind (m/s) 00165 REAL, DIMENSION(KI) :: ZQA ! specific humidity (kg/m3) 00166 REAL, DIMENSION(KI) :: ZPEQ_A_COEF ! specific humidity implicit 00167 REAL, DIMENSION(KI) :: ZPEQ_B_COEF ! coefficients (hum. in kg/kg) 00168 ! 00169 ! 00170 ! SBL turbulence scheme 00171 ! 00172 REAL, DIMENSION(KI) :: ZSFLUX_U ! Surface flux u'w' (m2/s2) 00173 REAL, DIMENSION(KI) :: ZSFLUX_T ! Surface flux w'T' (mK/s) 00174 REAL, DIMENSION(KI) :: ZSFLUX_Q ! Surface flux w'q' (kgm2/s) 00175 REAL, DIMENSION(KI,KLVL) :: ZFORC_U ! tendency due to drag force for wind 00176 REAL, DIMENSION(KI,KLVL) :: ZDFORC_UDU! formal derivative of 00177 ! ! tendency due to drag force for wind 00178 REAL, DIMENSION(KI,KLVL) :: ZFORC_E ! tendency due to drag force for TKE 00179 REAL, DIMENSION(KI,KLVL) :: ZDFORC_EDE! formal derivative of 00180 ! ! tendency due to drag force for TKE 00181 REAL, DIMENSION(KI,KLVL) :: ZFORC_T ! tendency due to drag force for Temp 00182 REAL, DIMENSION(KI,KLVL) :: ZDFORC_TDT! formal derivative of 00183 ! ! tendency due to drag force for Temp 00184 REAL, DIMENSION(KI,KLVL) :: ZFORC_Q ! tendency due to drag force for Temp 00185 REAL, DIMENSION(KI,KLVL) :: ZDFORC_QDQ! formal derivative of 00186 ! ! tendency due to drag force for hum. 00187 REAL, DIMENSION(KI,KLVL) :: ZLMO ! MO length 00188 REAL, DIMENSION(KI,KLVL) :: ZLM ! mixing length 00189 REAL, DIMENSION(KI,KLVL) :: ZLEPS ! dissipative length 00190 REAL, DIMENSION(KI) :: ZH ! canopy height (m) 00191 REAL, DIMENSION(KI) :: ZUSTAR ! friction velocity (m/s) 00192 ! 00193 REAL, DIMENSION(KI) :: ZPET_A_COEF ! temperature implicit 00194 REAL, DIMENSION(KI) :: ZPET_B_COEF ! coefficients (K) 00195 REAL, DIMENSION(KI) :: ZPEW_A_COEF ! wind implicit 00196 REAL, DIMENSION(KI) :: ZPEW_B_COEF ! coefficients (m/s) 00197 00198 REAL, DIMENSION(KI) :: ZALFAU ! V+(1) = - alfa rho u'w'(1) + beta 00199 REAL, DIMENSION(KI) :: ZBETAU ! V+(1) = - alfa rho u'w'(1) + beta 00200 REAL, DIMENSION(KI) :: ZALFATH ! Th+(1) = - alfa rho w'th'(1) + beta 00201 REAL, DIMENSION(KI) :: ZBETATH ! Th+(1) = - alfa rho w'th'(1) + beta 00202 REAL, DIMENSION(KI) :: ZALFAQ ! Q+(1) = - alfa rho w'q'(1) + beta 00203 REAL, DIMENSION(KI) :: ZBETAQ ! Q+(1) = - alfa rho w'q'(1) + beta 00204 ! 00205 CHARACTER(LEN=1) :: GCOUPLING 00206 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00207 !------------------------------------------------------------------------------------- 00208 ! 00209 ! 00210 !* 1. Preliminary computations of the SBL scheme 00211 ! ------------------------------------------ 00212 ! 00213 IF (LHOOK) CALL DR_HOOK('COUPLING_SEAWAT_SBL_N',0,ZHOOK_HANDLE) 00214 IF (OSBL) THEN 00215 ! 00216 !* 1.1 Updates SBL vertical grid as a function of forcing height 00217 ! --------------------------------------------------------- 00218 ! 00219 !* determines where is the forcing level and modifies the upper levels of the canopy grid 00220 ! 00221 ZH = 0. 00222 CALL CANOPY_GRID_UPDATE(KI,KLVL,ZH,PUREF,PZ,PZF,PDZ,PDZF) 00223 ! 00224 ! 00225 ! 00226 !* 1.2 Initialisation at first time step 00227 ! --------------------------------- 00228 ! 00229 IF(ANY(PT(:,:) == XUNDEF)) THEN 00230 CALL INIT_WATER_SBL(KLVL, PPA, PPS, PTA, PQA, PRHOA, PU, PV, PRAIN, PSNOW, & 00231 PSFTH, PSFTQ, PZREF, PUREF, PSST, PZ0, PZ, & 00232 PT, PQ, PXU, PTKE, PP) 00233 ENDIF 00234 ! 00235 ! 00236 !* 1.3 Allocations 00237 ! ----------- 00238 ! 00239 CALL INIT_FORC( ZFORC_U, ZDFORC_UDU, ZFORC_E, ZDFORC_EDE, & 00240 ZFORC_T, ZDFORC_TDT, ZFORC_Q, ZDFORC_QDQ ) 00241 ! 00242 ZSFLUX_U = 0. 00243 ZSFLUX_T = 0. 00244 ZSFLUX_Q = 0. 00245 ! 00246 ZLMO = SPREAD(PLMO,2,KLVL) 00247 ! 00248 !* 1.3 Computes coefficients for implicitation 00249 ! --------------------------------------- 00250 ! 00251 ZWIND = SQRT(PU**2+PV**2) 00252 CALL CANOPY_EVOL(KI,KLVL,PTSTEP,1,PZ,ZWIND,PTA,PQA,PPA,PRHOA, & 00253 ZSFLUX_U,ZSFLUX_T,ZSFLUX_Q, & 00254 ZFORC_U,ZDFORC_UDU,ZFORC_E,ZDFORC_EDE, & 00255 ZFORC_T,ZDFORC_TDT,ZFORC_Q,ZDFORC_QDQ, & 00256 PZ,PZF,PDZ,PDZF,PXU,PTKE,PT,PQ,ZLMO,ZLM,ZLEPS,PP,ZUSTAR, & 00257 ZALFAU,ZBETAU,ZALFATH,ZBETATH,ZALFAQ,ZBETAQ ) 00258 00259 ! 00260 !* 1.5 Goes from atmospheric forcing to canopy forcing height 00261 ! ------------------------------------------------------ 00262 ! 00263 IF (HSURF=='F') THEN 00264 GCOUPLING = 'E' 00265 ELSEIF (HSURF=='S' .OR. HSURF=='W') THEN 00266 GCOUPLING ='I' 00267 ENDIF 00268 ! 00269 CALL INIT_COUPLING_CANOPY( PP(:,1), PPA, PT(:,1), PQ(:,1), & 00270 PU, PV, PZ(:,1), PXU(:,1), & 00271 PRHOA, ZALFAU, ZBETAU, ZALFATH, & 00272 ZBETATH, ZALFAQ, ZBETAQ, & 00273 ZPA, ZTA, ZQA, ZU, ZV, & 00274 ZUREF, ZZREF, ZEXNA, & 00275 ZPEW_A_COEF, ZPEW_B_COEF, & 00276 ZPET_A_COEF, ZPET_B_COEF, & 00277 ZPEQ_A_COEF, ZPEQ_B_COEF ) 00278 ! 00279 !------------------------------------------------------------------------------------- 00280 ELSE 00281 !------------------------------------------------------------------------------------- 00282 ! 00283 !* 2. If no SBL scheme is used, forcing is not modified 00284 ! ------------------------------------------------- 00285 ! 00286 GCOUPLING = HCOUPLING 00287 ! 00288 CALL INIT_COUPLING( HCOUPLING, & 00289 PPS, PPA, PTA, PQA, PU, PV, & 00290 PUREF, PZREF, & 00291 PPEW_A_COEF, PPEW_B_COEF, & 00292 PPET_A_COEF, PPET_B_COEF, & 00293 PPEQ_A_COEF, PPEQ_B_COEF, & 00294 ZPA, ZTA, ZQA, ZU, ZV, & 00295 ZUREF, ZZREF, & 00296 ZPEW_A_COEF, ZPEW_B_COEF, & 00297 ZPET_A_COEF, ZPET_B_COEF, & 00298 ZPEQ_A_COEF, ZPEQ_B_COEF ) 00299 ! 00300 END IF 00301 ! 00302 !------------------------------------------------------------------------------------- 00303 ! 00304 !* 2. Call of SEAFLUX 00305 ! ------------ 00306 ! 00307 IF (HSURF=='S') THEN 00308 CALL COUPLING_SEAFLUX_n(HPROGRAM, GCOUPLING, & 00309 PTSTEP, KYEAR, KMONTH, KDAY, PTIME, & 00310 KI, KSV, KSW, & 00311 PTSUN, PZENITH, PZENITH2, PAZIM, & 00312 ZZREF, ZUREF, PZS, ZU, ZV, ZQA, ZTA, PRHOA, PSV, PCO2, HSV, & 00313 PRAIN, PSNOW, PLW, PDIR_SW, PSCA_SW, PSW_BANDS, PPS, ZPA, & 00314 PSFTQ, PSFTH, PSFTS, PSFCO2, PSFU, PSFV, & 00315 PTRAD, PDIR_ALB, PSCA_ALB, PEMIS, & 00316 ZPEW_A_COEF, ZPEW_B_COEF, & 00317 ZPET_A_COEF, ZPEQ_A_COEF, ZPET_B_COEF, ZPEQ_B_COEF, & 00318 'OK' ) 00319 ELSEIF (HSURF=='W') THEN 00320 CALL COUPLING_WATFLUX_n(HPROGRAM, GCOUPLING, & 00321 PTSTEP, KYEAR, KMONTH, KDAY, PTIME, & 00322 KI, KSV, KSW, & 00323 PTSUN, PZENITH, PZENITH2, PAZIM, & 00324 ZZREF, ZUREF, PZS, ZU, ZV, ZQA, ZTA, PRHOA, PSV, PCO2, HSV, & 00325 PRAIN, PSNOW, PLW, PDIR_SW, PSCA_SW, PSW_BANDS, PPS, ZPA, & 00326 PSFTQ, PSFTH, PSFTS, PSFCO2, PSFU, PSFV, & 00327 PTRAD, PDIR_ALB, PSCA_ALB, PEMIS, & 00328 ZPEW_A_COEF, ZPEW_B_COEF, & 00329 ZPET_A_COEF, ZPEQ_A_COEF, ZPET_B_COEF, ZPEQ_B_COEF, & 00330 'OK' ) 00331 ELSEIF (HSURF=='F') THEN 00332 CALL COUPLING_FLAKE_n(HPROGRAM, GCOUPLING, & 00333 PTSTEP, KYEAR, KMONTH, KDAY, PTIME, & 00334 KI, KSV, KSW, & 00335 PTSUN, PZENITH, PZENITH2, PAZIM, & 00336 ZZREF, ZUREF, PZS, ZU, ZV, ZQA, ZTA, PRHOA, PSV, PCO2, HSV, & 00337 PRAIN, PSNOW, PLW, PDIR_SW, PSCA_SW, PSW_BANDS, PPS, ZPA, & 00338 PSFTQ, PSFTH, PSFTS, PSFCO2, PSFU, PSFV, & 00339 PTRAD, PDIR_ALB, PSCA_ALB, PEMIS, & 00340 ZPEW_A_COEF, ZPEW_B_COEF, & 00341 ZPET_A_COEF, ZPEQ_A_COEF, ZPET_B_COEF, ZPEQ_B_COEF, & 00342 'OK' ) 00343 ENDIF 00344 ! 00345 !------------------------------------------------------------------------------------- 00346 ! 00347 !* 3. End if no SBL is used 00348 ! --------------------- 00349 ! 00350 IF (.NOT. OSBL .AND. LHOOK) CALL DR_HOOK('COUPLING_SEAWAT_SBL_N',1,ZHOOK_HANDLE) 00351 IF (.NOT. OSBL) RETURN 00352 ! 00353 !------------------------------------------------------------------------------------- 00354 ! 00355 !* 4. Computes the impact of canopy and surfaces on air 00356 ! ------------------------------------------------- 00357 ! 00358 CALL INIT_FORC( ZFORC_U, ZDFORC_UDU, ZFORC_E, ZDFORC_EDE, & 00359 ZFORC_T, ZDFORC_TDT, ZFORC_Q, ZDFORC_QDQ ) 00360 ! 00361 ZSFLUX_U = - SQRT(PSFU(:)**2+PSFV(:)**2) / PRHOA(:) 00362 ZSFLUX_T(:) = PSFTH(:) / XCPD * ZEXNA(:) / PRHOA(:) 00363 ZSFLUX_Q(:) = PSFTQ(:) 00364 ! 00365 !------------------------------------------------------------------------------------- 00366 ! 00367 !* 6. Evolution of canopy air due to these impacts 00368 ! -------------------------------------------- 00369 ! 00370 ZWIND = SQRT(PU**2+PV**2) 00371 CALL CANOPY_EVOL(KI,KLVL,PTSTEP,2,PZ,ZWIND,PTA,PQA,PPA,PRHOA, & 00372 ZSFLUX_U,ZSFLUX_T,ZSFLUX_Q, & 00373 ZFORC_U,ZDFORC_UDU,ZFORC_E,ZDFORC_EDE, & 00374 ZFORC_T,ZDFORC_TDT,ZFORC_Q,ZDFORC_QDQ, & 00375 PZ,PZF,PDZ,PDZF,PXU,PTKE,PT,PQ,ZLMO,ZLM,ZLEPS,PP,ZUSTAR, & 00376 ZALFAU,ZBETAU,ZALFATH,ZBETATH,ZALFAQ,ZBETAQ ) 00377 ! 00378 PLMO(:) = ZLMO(:,KLVL) 00379 ! 00380 !------------------------------------------------------------------------------------- 00381 ! 00382 !* 7. 2m and 10m diagnostics if canopy is used 00383 ! ---------------------------------------- 00384 ! 00385 ! 00386 IF (OSBL .AND. K2M>=1) CALL INIT_2M_10M( PP(:,2), PT(:,2), PQ(:,2), PXU, PZ, & 00387 PU, PV, ZWIND, PRHOA, & 00388 PT2M, PQ2M, PHU2M, PZON10M, PMER10M,& 00389 PWIND10M, PWIND10M_MAX, PT2M_MIN, & 00390 PT2M_MAX, PHU2M_MIN, PHU2M_MAX ) 00391 ! 00392 IF (LHOOK) CALL DR_HOOK('COUPLING_SEAWAT_SBL_N',1,ZHOOK_HANDLE) 00393 ! 00394 !------------------------------------------------------------------------------------- 00395 ! 00396 END SUBROUTINE COUPLING_SEAWAT_SBL_n