SURFEX v7.3
General documentation of Surfex
|
00001 ! ########################## 00002 MODULE MODI_SUBSCALE_Z0EFF 00003 ! ########################## 00004 INTERFACE SUBSCALE_Z0EFF 00005 SUBROUTINE SUBSCALE_Z0EFF_1D_NVEG(PAOSIP,PAOSIM,PAOSJP,PAOSJM, & 00006 PHO2IP,PHO2IM,PHO2JP,PHO2JM,PZ0VEG, & 00007 PZ0EFFIP,PZ0EFFIM,PZ0EFFJP,PZ0EFFJM, & 00008 PZ0REL,OMASK ) 00009 ! 00010 REAL, DIMENSION(:), INTENT(IN) :: PAOSIP ! A/S for increasing x 00011 REAL, DIMENSION(:), INTENT(IN) :: PAOSIM ! A/S for decreasing x 00012 REAL, DIMENSION(:), INTENT(IN) :: PAOSJP ! A/S for increasing y 00013 REAL, DIMENSION(:), INTENT(IN) :: PAOSJM ! A/S for decreasing y 00014 REAL, DIMENSION(:), INTENT(IN) :: PHO2IP ! h/2 for increasing x 00015 REAL, DIMENSION(:), INTENT(IN) :: PHO2IM ! h/2 for decreasing x 00016 REAL, DIMENSION(:), INTENT(IN) :: PHO2JP ! h/2 for increasing y 00017 REAL, DIMENSION(:), INTENT(IN) :: PHO2JM ! h/2 for decreasing y 00018 REAL, INTENT(IN) :: PZ0VEG ! vegetation roughness length 00019 ! 00020 REAL, DIMENSION(:), INTENT(INOUT) :: PZ0EFFIP! roughness length for increasing x 00021 REAL, DIMENSION(:), INTENT(INOUT) :: PZ0EFFIM! roughness length for decreasing x 00022 REAL, DIMENSION(:), INTENT(INOUT) :: PZ0EFFJP! roughness length for increasing y 00023 REAL, DIMENSION(:), INTENT(INOUT) :: PZ0EFFJM! roughness length for decreasing y 00024 ! 00025 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PZ0REL ! roughness length 00026 ! ! of SSO only 00027 LOGICAL, DIMENSION(:), INTENT(IN), OPTIONAL :: OMASK ! mask where computations 00028 ! are done 00029 ! 00030 END SUBROUTINE SUBSCALE_Z0EFF_1D_NVEG 00031 ! 00032 SUBROUTINE SUBSCALE_Z0EFF_1D_BIS(PAOSIP,PAOSIM,PAOSJP,PAOSJM, & 00033 PHO2IP,PHO2IM,PHO2JP,PHO2JM,PZ0VEG, & 00034 PZ0EFFIP,PZ0EFFIM,PZ0EFFJP,PZ0EFFJM, & 00035 PZ0REL,OMASK ) 00036 ! 00037 REAL, DIMENSION(:), INTENT(IN) :: PAOSIP ! A/S for increasing x 00038 REAL, DIMENSION(:), INTENT(IN) :: PAOSIM ! A/S for decreasing x 00039 REAL, DIMENSION(:), INTENT(IN) :: PAOSJP ! A/S for increasing y 00040 REAL, DIMENSION(:), INTENT(IN) :: PAOSJM ! A/S for decreasing y 00041 REAL, DIMENSION(:), INTENT(IN) :: PHO2IP ! h/2 for increasing x 00042 REAL, DIMENSION(:), INTENT(IN) :: PHO2IM ! h/2 for decreasing x 00043 REAL, DIMENSION(:), INTENT(IN) :: PHO2JP ! h/2 for increasing y 00044 REAL, DIMENSION(:), INTENT(IN) :: PHO2JM ! h/2 for decreasing y 00045 REAL, DIMENSION(:), INTENT(IN) :: PZ0VEG ! vegetation roughness length 00046 ! 00047 REAL, DIMENSION(:), INTENT(INOUT) :: PZ0EFFIP! roughness length for increasing x 00048 REAL, DIMENSION(:), INTENT(INOUT) :: PZ0EFFIM! roughness length for decreasing x 00049 REAL, DIMENSION(:), INTENT(INOUT) :: PZ0EFFJP! roughness length for increasing y 00050 REAL, DIMENSION(:), INTENT(INOUT) :: PZ0EFFJM! roughness length for decreasing y 00051 ! 00052 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PZ0REL ! roughness length 00053 ! ! of SSO only 00054 LOGICAL, DIMENSION(:), INTENT(IN), OPTIONAL :: OMASK ! mask where computations 00055 ! are done 00056 ! 00057 END SUBROUTINE SUBSCALE_Z0EFF_1D_BIS 00058 00059 SUBROUTINE SUBSCALE_Z0EFF_1D_PATCH(PAOSIP,PAOSIM,PAOSJP,PAOSJM, & 00060 PHO2IP,PHO2IM,PHO2JP,PHO2JM,PZ0VEG, & 00061 PZ0EFFIP,PZ0EFFIM,PZ0EFFJP,PZ0EFFJM, & 00062 PZ0REL,OMASK ) 00063 ! 00064 REAL, DIMENSION(:), INTENT(IN) :: PAOSIP ! A/S for increasing x 00065 REAL, DIMENSION(:), INTENT(IN) :: PAOSIM ! A/S for decreasing x 00066 REAL, DIMENSION(:), INTENT(IN) :: PAOSJP ! A/S for increasing y 00067 REAL, DIMENSION(:), INTENT(IN) :: PAOSJM ! A/S for decreasing y 00068 REAL, DIMENSION(:), INTENT(IN) :: PHO2IP ! h/2 for increasing x 00069 REAL, DIMENSION(:), INTENT(IN) :: PHO2IM ! h/2 for decreasing x 00070 REAL, DIMENSION(:), INTENT(IN) :: PHO2JP ! h/2 for increasing y 00071 REAL, DIMENSION(:), INTENT(IN) :: PHO2JM ! h/2 for decreasing y 00072 REAL, DIMENSION(:,:), INTENT(IN) :: PZ0VEG ! vegetation roughness length 00073 ! 00074 REAL, DIMENSION(:,:), INTENT(INOUT) :: PZ0EFFIP! roughness length for increasing x 00075 REAL, DIMENSION(:,:), INTENT(INOUT) :: PZ0EFFIM! roughness length for decreasing x 00076 REAL, DIMENSION(:,:), INTENT(INOUT) :: PZ0EFFJP! roughness length for increasing y 00077 REAL, DIMENSION(:,:), INTENT(INOUT) :: PZ0EFFJM! roughness length for decreasing y 00078 ! 00079 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PZ0REL ! roughness length 00080 ! ! of SSO only 00081 LOGICAL, DIMENSION(:), INTENT(IN), OPTIONAL :: OMASK ! mask where computations 00082 ! are done 00083 ! 00084 END SUBROUTINE SUBSCALE_Z0EFF_1D_PATCH 00085 00086 END INTERFACE 00087 ! 00088 END MODULE MODI_SUBSCALE_Z0EFF 00089 ! ###################################################################### 00090 SUBROUTINE SUBSCALE_Z0EFF_1D_NVEG(PAOSIP,PAOSIM,PAOSJP,PAOSJM, & 00091 PHO2IP,PHO2IM,PHO2JP,PHO2JM,PZ0VEG, & 00092 PZ0EFFIP,PZ0EFFIM,PZ0EFFJP,PZ0EFFJM, & 00093 PZ0REL,OMASK ) 00094 ! ###################################################################### 00095 ! 00096 !!*SUBSCALE_Z0EFF computes an effective roughness lenght deduced 00097 !! from the subgrid-scale orography. 00098 !! 00099 !! 00100 !! METHOD 00101 !! ------ 00102 !! See M.Georgelin and al. July 1994, Monthly Weather Review. 00103 !! 00104 !! EXTERNAL 00105 !! -------- 00106 !! 00107 !! IMPLICIT ARGUMENTS 00108 !! ------------------ 00109 !! 00110 !! 00111 !! REFERENCE 00112 !! --------- 00113 !! 00114 !! AUTHOR 00115 !! ------ 00116 !! 00117 !! M. Georgelin Laboratoire d'Aerologie 00118 !! 00119 !! MODIFICATION 00120 !! ------------ 00121 !! 00122 !! Original 18/12/95 00123 !! 22/12/97 (V Masson) call with dummy arguments 00124 !! 00125 !---------------------------------------------------------------------------- 00126 ! 00127 !* 0. DECLARATION 00128 ! ----------- 00129 ! 00130 USE MODD_SURF_PAR, ONLY : XUNDEF 00131 ! 00132 USE MODI_SUBSCALE_Z0EFF_1D 00133 USE MODI_Z0REL_1D 00134 ! 00135 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00136 USE PARKIND1 ,ONLY : JPRB 00137 ! 00138 IMPLICIT NONE 00139 ! 00140 !* 0.1 Declaration of dummy arguments 00141 ! ------------------------------ 00142 ! 00143 REAL, DIMENSION(:), INTENT(IN) :: PAOSIP ! A/S for increasing x 00144 REAL, DIMENSION(:), INTENT(IN) :: PAOSIM ! A/S for decreasing x 00145 REAL, DIMENSION(:), INTENT(IN) :: PAOSJP ! A/S for increasing y 00146 REAL, DIMENSION(:), INTENT(IN) :: PAOSJM ! A/S for decreasing y 00147 REAL, DIMENSION(:), INTENT(IN) :: PHO2IP ! h/2 for increasing x 00148 REAL, DIMENSION(:), INTENT(IN) :: PHO2IM ! h/2 for decreasing x 00149 REAL, DIMENSION(:), INTENT(IN) :: PHO2JP ! h/2 for increasing y 00150 REAL, DIMENSION(:), INTENT(IN) :: PHO2JM ! h/2 for decreasing y 00151 REAL, INTENT(IN) :: PZ0VEG ! vegetation roughness length 00152 ! 00153 REAL, DIMENSION(:), INTENT(INOUT) :: PZ0EFFIP! roughness length for increasing x 00154 REAL, DIMENSION(:), INTENT(INOUT) :: PZ0EFFIM! roughness length for decreasing x 00155 REAL, DIMENSION(:), INTENT(INOUT) :: PZ0EFFJP! roughness length for increasing y 00156 REAL, DIMENSION(:), INTENT(INOUT) :: PZ0EFFJM! roughness length for decreasing y 00157 ! 00158 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PZ0REL ! roughness length 00159 ! ! of SSO only 00160 LOGICAL, DIMENSION(:), INTENT(IN), OPTIONAL :: OMASK ! mask where computations 00161 ! are done 00162 ! 00163 REAL, DIMENSION(SIZE(PZ0EFFIM)) :: ZZ0VEG 00164 LOGICAL, DIMENSION(SIZE(PZ0EFFIM)) :: GMASK 00165 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00166 ! 00167 !------------------------------------------------------------------------------- 00168 IF (LHOOK) CALL DR_HOOK('MODI_SUBSCALE_Z0EFF:SUBSCALE_Z0EFF_1D_NVEG',0,ZHOOK_HANDLE) 00169 ! 00170 IF (PRESENT(OMASK)) THEN 00171 GMASK=OMASK 00172 ELSE 00173 GMASK=(PAOSIP/=XUNDEF) ! computations always performed where SSO data exist 00174 PZ0EFFIP = XUNDEF 00175 PZ0EFFIM = XUNDEF 00176 PZ0EFFJP = XUNDEF 00177 PZ0EFFJM = XUNDEF 00178 END IF 00179 ! 00180 ZZ0VEG(:) = PZ0VEG 00181 ! 00182 CALL SUBSCALE_Z0EFF_1D(PAOSIP,PAOSIM,PAOSJP,PAOSJM, & 00183 PHO2IP,PHO2IM,PHO2JP,PHO2JM,ZZ0VEG, & 00184 PZ0EFFIP,PZ0EFFIM,PZ0EFFJP,PZ0EFFJM, & 00185 GMASK ) 00186 ! 00187 IF (PRESENT(PZ0REL)) CALL Z0REL_1D(PAOSIP,PAOSIM,PAOSJP,PAOSJM, & 00188 PHO2IP,PHO2IM,PHO2JP,PHO2JM, & 00189 PZ0REL,GMASK ) 00190 ! 00191 IF (LHOOK) CALL DR_HOOK('MODI_SUBSCALE_Z0EFF:SUBSCALE_Z0EFF_1D_NVEG',1,ZHOOK_HANDLE) 00192 ! 00193 !------------------------------------------------------------------------------- 00194 END SUBROUTINE SUBSCALE_Z0EFF_1D_NVEG 00195 !------------------------------------------------------------------------------- 00196 ! 00197 ! ###################################################################### 00198 SUBROUTINE SUBSCALE_Z0EFF_1D_BIS(PAOSIP,PAOSIM,PAOSJP,PAOSJM, & 00199 PHO2IP,PHO2IM,PHO2JP,PHO2JM,PZ0VEG, & 00200 PZ0EFFIP,PZ0EFFIM,PZ0EFFJP,PZ0EFFJM, & 00201 PZ0REL,OMASK ) 00202 ! ###################################################################### 00203 ! 00204 !!*SUBSCALE_Z0EFF computes an effective roughness lenght deduced 00205 !! from the subgrid-scale orography. 00206 !! 00207 !! 00208 !! METHOD 00209 !! ------ 00210 !! See M.Georgelin and al. July 1994, Monthly Weather Review. 00211 !! 00212 !! EXTERNAL 00213 !! -------- 00214 !! 00215 !! IMPLICIT ARGUMENTS 00216 !! ------------------ 00217 !! 00218 !! 00219 !! REFERENCE 00220 !! --------- 00221 !! 00222 !! AUTHOR 00223 !! ------ 00224 !! 00225 !! M. Georgelin Laboratoire d'Aerologie 00226 !! 00227 !! MODIFICATION 00228 !! ------------ 00229 !! 00230 !! Original 18/12/95 00231 !! 22/12/97 (V Masson) call with dummy arguments 00232 !! 00233 !---------------------------------------------------------------------------- 00234 ! 00235 !* 0. DECLARATION 00236 ! ----------- 00237 ! 00238 USE MODD_SURF_PAR, ONLY : XUNDEF 00239 ! 00240 USE MODI_SUBSCALE_Z0EFF_1D 00241 USE MODI_Z0REL_1D 00242 ! 00243 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00244 USE PARKIND1 ,ONLY : JPRB 00245 ! 00246 IMPLICIT NONE 00247 ! 00248 !* 0.1 Declaration of dummy arguments 00249 ! ------------------------------ 00250 ! 00251 REAL, DIMENSION(:), INTENT(IN) :: PAOSIP ! A/S for increasing x 00252 REAL, DIMENSION(:), INTENT(IN) :: PAOSIM ! A/S for decreasing x 00253 REAL, DIMENSION(:), INTENT(IN) :: PAOSJP ! A/S for increasing y 00254 REAL, DIMENSION(:), INTENT(IN) :: PAOSJM ! A/S for decreasing y 00255 REAL, DIMENSION(:), INTENT(IN) :: PHO2IP ! h/2 for increasing x 00256 REAL, DIMENSION(:), INTENT(IN) :: PHO2IM ! h/2 for decreasing x 00257 REAL, DIMENSION(:), INTENT(IN) :: PHO2JP ! h/2 for increasing y 00258 REAL, DIMENSION(:), INTENT(IN) :: PHO2JM ! h/2 for decreasing y 00259 REAL, DIMENSION(:), INTENT(IN) :: PZ0VEG ! vegetation roughness length 00260 ! 00261 REAL, DIMENSION(:), INTENT(INOUT) :: PZ0EFFIP! roughness length for increasing x 00262 REAL, DIMENSION(:), INTENT(INOUT) :: PZ0EFFIM! roughness length for decreasing x 00263 REAL, DIMENSION(:), INTENT(INOUT) :: PZ0EFFJP! roughness length for increasing y 00264 REAL, DIMENSION(:), INTENT(INOUT) :: PZ0EFFJM! roughness length for decreasing y 00265 ! 00266 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PZ0REL ! roughness length 00267 ! ! of SSO only 00268 LOGICAL, DIMENSION(:), INTENT(IN), OPTIONAL :: OMASK ! mask where computations 00269 ! are done 00270 ! 00271 !* 0.2 Declaration of other local variables 00272 ! ------------------------------------ 00273 ! 00274 LOGICAL, DIMENSION(SIZE(PZ0EFFIM)) :: GMASK 00275 ! 00276 INTEGER :: JJ 00277 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00278 !---------------------------------------------------------------------------- 00279 ! 00280 IF (LHOOK) CALL DR_HOOK('MODI_SUBSCALE_Z0EFF:SUBSCALE_Z0EFF_1D_BIS',0,ZHOOK_HANDLE) 00281 ! 00282 IF (PRESENT(OMASK)) THEN 00283 GMASK=OMASK 00284 ELSE 00285 GMASK=(PAOSIP/=XUNDEF) ! computations always performed where SSO data exist 00286 PZ0EFFIP = XUNDEF 00287 PZ0EFFIM = XUNDEF 00288 PZ0EFFJP = XUNDEF 00289 PZ0EFFJM = XUNDEF 00290 END IF 00291 ! 00292 CALL SUBSCALE_Z0EFF_1D(PAOSIP,PAOSIM,PAOSJP,PAOSJM, & 00293 PHO2IP,PHO2IM,PHO2JP,PHO2JM,PZ0VEG, & 00294 PZ0EFFIP,PZ0EFFIM,PZ0EFFJP,PZ0EFFJM, & 00295 GMASK ) 00296 ! 00297 IF (PRESENT(PZ0REL)) CALL Z0REL_1D(PAOSIP,PAOSIM,PAOSJP,PAOSJM, & 00298 PHO2IP,PHO2IM,PHO2JP,PHO2JM, & 00299 PZ0REL,GMASK ) 00300 ! 00301 IF (LHOOK) CALL DR_HOOK('MODI_SUBSCALE_Z0EFF:SUBSCALE_Z0EFF_1D_BIS',1,ZHOOK_HANDLE) 00302 !------------------------------------------------------------------------------- 00303 ! 00304 END SUBROUTINE SUBSCALE_Z0EFF_1D_BIS 00305 ! 00306 ! ######spl 00307 SUBROUTINE SUBSCALE_Z0EFF_1D_PATCH(PAOSIP,PAOSIM,PAOSJP,PAOSJM, & 00308 PHO2IP,PHO2IM,PHO2JP,PHO2JM,PZ0VEG, & 00309 PZ0EFFIP,PZ0EFFIM,PZ0EFFJP,PZ0EFFJM, & 00310 PZ0REL,OMASK ) 00311 ! ###################################################################### 00312 ! 00313 !!*SUBSCALE_Z0EFF computes an effective roughness lenght deduced 00314 !! from the subgrid-scale orography. 00315 !! 00316 !! 00317 !! METHOD 00318 !! ------ 00319 !! See M.Georgelin and al. July 1994, Monthly Weather Review. 00320 !! 00321 !! EXTERNAL 00322 !! -------- 00323 !! 00324 !! IMPLICIT ARGUMENTS 00325 !! ------------------ 00326 !! 00327 !! 00328 !! REFERENCE 00329 !! --------- 00330 !! 00331 !! AUTHOR 00332 !! ------ 00333 !! 00334 !! M. Georgelin Laboratoire d'Aerologie 00335 !! 00336 !! MODIFICATION 00337 !! ------------ 00338 !! 00339 !! Original 18/12/95 00340 !! 22/12/97 (V Masson) call with dummy arguments 00341 !! 00342 !---------------------------------------------------------------------------- 00343 ! 00344 !* 0. DECLARATION 00345 ! ----------- 00346 ! 00347 USE MODD_CSTS, ONLY : XKARMAN 00348 USE MODD_ISBA_PAR, ONLY : XCDZ0EFF 00349 USE MODD_SURF_PAR, ONLY : XUNDEF 00350 ! 00351 USE MODI_SUBSCALE_Z0EFF_1D 00352 USE MODI_Z0REL_1D 00353 ! 00354 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00355 USE PARKIND1 ,ONLY : JPRB 00356 ! 00357 IMPLICIT NONE 00358 ! 00359 !* 0.1 Declaration of dummy arguments 00360 ! ------------------------------ 00361 ! 00362 REAL, DIMENSION(:), INTENT(IN) :: PAOSIP ! A/S for increasing x 00363 REAL, DIMENSION(:), INTENT(IN) :: PAOSIM ! A/S for decreasing x 00364 REAL, DIMENSION(:), INTENT(IN) :: PAOSJP ! A/S for increasing y 00365 REAL, DIMENSION(:), INTENT(IN) :: PAOSJM ! A/S for decreasing y 00366 REAL, DIMENSION(:), INTENT(IN) :: PHO2IP ! h/2 for increasing x 00367 REAL, DIMENSION(:), INTENT(IN) :: PHO2IM ! h/2 for decreasing x 00368 REAL, DIMENSION(:), INTENT(IN) :: PHO2JP ! h/2 for increasing y 00369 REAL, DIMENSION(:), INTENT(IN) :: PHO2JM ! h/2 for decreasing y 00370 REAL, DIMENSION(:,:), INTENT(IN) :: PZ0VEG ! vegetation roughness length 00371 ! 00372 REAL, DIMENSION(:,:), INTENT(INOUT) :: PZ0EFFIP! roughness length for increasing x 00373 REAL, DIMENSION(:,:), INTENT(INOUT) :: PZ0EFFIM! roughness length for decreasing x 00374 REAL, DIMENSION(:,:), INTENT(INOUT) :: PZ0EFFJP! roughness length for increasing y 00375 REAL, DIMENSION(:,:), INTENT(INOUT) :: PZ0EFFJM! roughness length for decreasing y 00376 ! 00377 REAL, DIMENSION(:), INTENT(OUT), OPTIONAL :: PZ0REL ! roughness length 00378 ! ! of SSO only 00379 LOGICAL, DIMENSION(:), INTENT(IN), OPTIONAL :: OMASK ! mask where computations 00380 ! are done 00381 ! 00382 !* 0.2 Declaration of other local variables 00383 ! ------------------------------------ 00384 ! 00385 LOGICAL, DIMENSION(SIZE(PZ0EFFIM,1)) :: GMASK 00386 ! 00387 INTEGER :: IPATCH ! number of patches 00388 INTEGER :: JPATCH ! loop counter on number of patches 00389 INTEGER :: JJ ! loop counter on points 00390 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00391 !---------------------------------------------------------------------------- 00392 ! 00393 IF (LHOOK) CALL DR_HOOK('MODI_SUBSCALE_Z0EFF:SUBSCALE_Z0EFF_1D_PATCH',0,ZHOOK_HANDLE) 00394 PZ0EFFIP = XUNDEF 00395 PZ0EFFIM = XUNDEF 00396 PZ0EFFJP = XUNDEF 00397 PZ0EFFJM = XUNDEF 00398 ! 00399 IPATCH = SIZE(PZ0VEG,2) 00400 !---------------------------------------------------------------------------- 00401 DO JPATCH=1,IPATCH 00402 !---------------------------------------------------------------------------- 00403 ! 00404 IF (PRESENT(OMASK)) THEN 00405 GMASK=OMASK 00406 ELSE 00407 GMASK=PZ0VEG(:,JPATCH) /= XUNDEF ! computations always performed where defined 00408 END IF 00409 ! 00410 CALL SUBSCALE_Z0EFF_1D(PAOSIP,PAOSIM,PAOSJP,PAOSJM, & 00411 PHO2IP,PHO2IM,PHO2JP,PHO2JM,PZ0VEG(:,JPATCH), & 00412 PZ0EFFIP(:,JPATCH),PZ0EFFIM(:,JPATCH), & 00413 PZ0EFFJP(:,JPATCH),PZ0EFFJM(:,JPATCH), & 00414 GMASK ) 00415 ! 00416 END DO 00417 ! 00418 IF (PRESENT(OMASK)) THEN 00419 GMASK=OMASK 00420 ELSE 00421 GMASK=(PAOSIP/=XUNDEF) 00422 END IF 00423 ! 00424 IF (PRESENT(PZ0REL)) CALL Z0REL_1D(PAOSIP,PAOSIM,PAOSJP,PAOSJM, & 00425 PHO2IP,PHO2IM,PHO2JP,PHO2JM, & 00426 PZ0REL,GMASK ) 00427 ! 00428 IF (LHOOK) CALL DR_HOOK('MODI_SUBSCALE_Z0EFF:SUBSCALE_Z0EFF_1D_PATCH',1,ZHOOK_HANDLE) 00429 !------------------------------------------------------------------------------- 00430 ! 00431 END SUBROUTINE SUBSCALE_Z0EFF_1D_PATCH