SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE PGD_OROGRAPHY(HPROGRAM,PSEA,PWATER,HFILE,HFILETYPE,OZS) 00003 ! ############################################################## 00004 ! 00005 !!**** *PGD_OROGRAPHY* monitor for averaging and interpolations of cover fractions 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 !! 00010 !! METHOD 00011 !! ------ 00012 !! 00013 ! 00014 !! EXTERNAL 00015 !! -------- 00016 !! 00017 !! IMPLICIT ARGUMENTS 00018 !! ------------------ 00019 !! 00020 !! REFERENCE 00021 !! --------- 00022 !! 00023 !! AUTHOR 00024 !! ------ 00025 !! 00026 !! V. Masson Meteo-France 00027 !! 00028 !! MODIFICATION 00029 !! ------------ 00030 !! 00031 !! Original 10/12/97 00032 !! 12/2008 E. Martin : add case 'MAX' for choice of orography 00033 !! 00034 !---------------------------------------------------------------------------- 00035 ! 00036 !* 0. DECLARATION 00037 ! ----------- 00038 ! 00039 USE MODD_PGD_GRID, ONLY : NL, CGRID, XGRID_PAR 00040 USE MODD_PGDWORK, ONLY : XSUMVAL, XSUMVAL2, NSIZE, XSSQO, LSSQO, NSSO 00041 USE MODD_SURF_ATM_n, ONLY : XZS 00042 USE MODD_SURF_ATM_SSO_n, ONLY : XSSO_STDEV, XAVG_ZS, XSIL_ZS, XMIN_ZS, XMAX_ZS,& 00043 XSSO_ANIS, XSSO_DIR, XSSO_SLOPE, & 00044 XAOSIP, XAOSIM, XAOSJP, XAOSJM, & 00045 XHO2IP, XHO2IM, XHO2JP, XHO2JM 00046 USE MODD_SURF_PAR, ONLY : XUNDEF, NUNDEF 00047 ! 00048 USE MODI_GET_LUOUT 00049 USE MODI_OPEN_AUX_IO_SURF 00050 USE MODI_CLOSE_AUX_IO_SURF 00051 USE MODI_READ_NAM_PGD_OROGRAPHY 00052 USE MODI_READ_SURF 00053 USE MODI_TREAT_FIELD 00054 USE MODI_INTERPOL_FIELD 00055 USE MODI_INI_SSOWORK 00056 USE MODI_SSO 00057 USE MODI_SUBSCALE_AOS 00058 USE MODI_GET_SIZE_FULL_n 00059 ! 00060 USE MODI_READ_SSO_n 00061 USE MODI_INIT_IO_SURF_n 00062 USE MODI_END_IO_SURF_n 00063 #ifdef ASC 00064 USE MODD_IO_SURF_ASC, ONLY : CFILEIN 00065 #endif 00066 #ifdef FA 00067 USE MODD_IO_SURF_FA, ONLY : CFILEIN_FA 00068 #endif 00069 #ifdef LFI 00070 USE MODD_IO_SURF_LFI, ONLY : CFILEIN_LFI 00071 #endif 00072 ! 00073 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00074 USE PARKIND1 ,ONLY : JPRB 00075 ! 00076 USE MODI_ABOR1_SFX 00077 ! 00078 IMPLICIT NONE 00079 ! 00080 !* 0.1 Declaration of arguments 00081 ! ------------------------ 00082 ! 00083 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling 00084 REAL, DIMENSION(:), INTENT(IN) :: PSEA ! sea fraction 00085 REAL, DIMENSION(:), INTENT(IN) :: PWATER ! lake fraction 00086 CHARACTER(LEN=28), INTENT(IN) :: HFILE ! atmospheric file name 00087 CHARACTER(LEN=6), INTENT(IN) :: HFILETYPE! atmospheric file type 00088 LOGICAL, INTENT(IN) :: OZS ! .true. if orography is imposed by atm. model 00089 ! 00090 ! 00091 !* 0.2 Declaration of local variables 00092 ! ------------------------------ 00093 ! 00094 INTEGER :: ILUOUT ! output listing logical unit 00095 ! 00096 LOGICAL, DIMENSION(NL) :: GSSO ! mask where SSO are computed 00097 LOGICAL, DIMENSION(NL) :: GSSO_ANIS ! mask where SSO anisotropy is computed 00098 LOGICAL, DIMENSION(NL) :: GZ0EFFI ! mask where z0 is computed in subgrid direction x 00099 LOGICAL, DIMENSION(NL) :: GZ0EFFJ ! mask where z0 is computed in subgrid direction y 00100 INTEGER, DIMENSION(NL) :: IFLAG ! flag for SSO and z0 fields interpolations 00101 INTEGER :: IRESP ! error code 00102 REAL :: ZEPS = 1.E-4! a small number 00103 INTEGER :: IDIM_FULL ! total size of orographic array in atmospheric file 00104 INTEGER :: IZS ! size of orographic array in atmospheric file 00105 ! 00106 !* 0.3 Declaration of namelists 00107 ! ------------------------ 00108 ! 00109 CHARACTER(LEN=28) :: YZS ! file name for orography 00110 CHARACTER(LEN=6) :: YFILETYPE ! data file type 00111 REAL :: XUNIF_ZS ! uniform orography 00112 CHARACTER(LEN=3) :: COROGTYPE ! orogpraphy type 00113 ! ! 'AVG' : average orography 00114 ! ! 'SIL' : silhouette orography 00115 ! ! 'ENV' : enveloppe orography 00116 REAL :: XENV ! parameter for enveloppe orography: 00117 ! ! zs = avg_zs + XENV * SSO_STEDV 00118 LOGICAL :: LIMP_ZS ! Imposed orography from another PGD file 00119 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00120 ! 00121 !------------------------------------------------------------------------------- 00122 ! 00123 !* 1. Initializations 00124 ! --------------- 00125 ! 00126 IF (LHOOK) CALL DR_HOOK('PGD_OROGRAPHY',0,ZHOOK_HANDLE) 00127 CALL GET_LUOUT(HPROGRAM,ILUOUT) 00128 ! 00129 !------------------------------------------------------------------------------- 00130 ! 00131 !* 2. Reading of namelist 00132 ! ------------------- 00133 ! 00134 CALL READ_NAM_PGD_OROGRAPHY(HPROGRAM, YZS, YFILETYPE, XUNIF_ZS, & 00135 COROGTYPE, XENV, LIMP_ZS ) 00136 ! 00137 !------------------------------------------------------------------------------- 00138 ! 00139 !* 3. Allocations of orographic arrays 00140 ! -------------------------------- 00141 ! 00142 ALLOCATE(XZS (NL)) 00143 ! 00144 ALLOCATE(XAVG_ZS (NL)) 00145 ALLOCATE(XSIL_ZS (NL)) 00146 ALLOCATE(XSSO_STDEV (NL)) 00147 ALLOCATE(XMIN_ZS (NL)) 00148 ALLOCATE(XMAX_ZS (NL)) 00149 ! 00150 ALLOCATE(XSSO_ANIS (NL)) 00151 ALLOCATE(XSSO_DIR (NL)) 00152 ALLOCATE(XSSO_SLOPE (NL)) 00153 ! 00154 ALLOCATE(XAOSIP (NL)) 00155 ALLOCATE(XAOSIM (NL)) 00156 ALLOCATE(XAOSJP (NL)) 00157 ALLOCATE(XAOSJM (NL)) 00158 ALLOCATE(XHO2IP (NL)) 00159 ALLOCATE(XHO2IM (NL)) 00160 ALLOCATE(XHO2JP (NL)) 00161 ALLOCATE(XHO2JM (NL)) 00162 ! 00163 XZS (:) = XUNDEF 00164 XAVG_ZS (:) = XUNDEF 00165 XSIL_ZS (:) = XUNDEF 00166 XSSO_STDEV(:) = XUNDEF 00167 XMIN_ZS (:) = 99999. 00168 XMAX_ZS (:) =-99999. 00169 ! 00170 XSSO_ANIS (:) = XUNDEF 00171 XSSO_DIR (:) = XUNDEF 00172 XSSO_SLOPE(:) = XUNDEF 00173 ! 00174 XAOSIP (:) = XUNDEF 00175 XAOSIM (:) = XUNDEF 00176 XAOSJP (:) = XUNDEF 00177 XAOSJM (:) = XUNDEF 00178 XHO2IP (:) = XUNDEF 00179 XHO2IM (:) = XUNDEF 00180 XHO2JP (:) = XUNDEF 00181 XHO2JM (:) = XUNDEF 00182 !------------------------------------------------------------------------------- 00183 ! 00184 !* 4. Allocations of work arrays 00185 ! -------------------------- 00186 ! 00187 ALLOCATE(NSIZE (NL)) 00188 ALLOCATE(XSUMVAL (NL)) 00189 ALLOCATE(XSUMVAL2 (NL)) 00190 ! 00191 NSIZE (:) = 0. 00192 XSUMVAL (:) = 0. 00193 XSUMVAL2 (:) = 0. 00194 ! 00195 CALL INI_SSOWORK 00196 ! 00197 !------------------------------------------------------------------------------- 00198 ! 00199 !* 5. Uniform field is prescribed 00200 ! --------------------------- 00201 ! 00202 IF (OZS) THEN 00203 ! 00204 !* 5.1 Use of imposed field 00205 ! -------------------- 00206 ! 00207 CALL OPEN_AUX_IO_SURF(HFILE,HFILETYPE,'FULL ') 00208 CALL READ_SURF(HFILETYPE,'DIM_FULL ',IDIM_FULL,IRESP) 00209 CALL GET_SIZE_FULL_n(HPROGRAM,IDIM_FULL,IZS) 00210 IF (IZS /= NL) THEN 00211 WRITE(ILUOUT,*) ' ' 00212 WRITE(ILUOUT,*) '***********************************************************' 00213 WRITE(ILUOUT,*) '* Error in orography preparation *' 00214 WRITE(ILUOUT,*) '* Prescribed orography from atmospheric model does not *' 00215 WRITE(ILUOUT,*) '* have the correct number of points *' 00216 WRITE(ILUOUT,*) '* number of points in atmospheric orography: ', IZS 00217 WRITE(ILUOUT,*) '* number of points in the surface : ', NL 00218 WRITE(ILUOUT,*) '***********************************************************' 00219 WRITE(ILUOUT,*) ' ' 00220 CALL ABOR1_SFX('PGD_OROGRAPHY: ATMOSPHERIC PRESCRIBED OROGRAPHY DOES NOT HAVE THE CORRECT NB OF POINTS') 00221 END IF 00222 CALL READ_SURF(HFILETYPE,'ZS',XZS(:),IRESP) 00223 CALL CLOSE_AUX_IO_SURF(HFILE,HFILETYPE) 00224 ! 00225 XAVG_ZS(:) = XZS(:) 00226 XSIL_ZS(:) = XZS(:) 00227 XMIN_ZS(:) = XZS(:) 00228 XMAX_ZS(:) = XZS(:) 00229 XSSO_STDEV(:) = 0. 00230 XHO2IP(:) = 0. 00231 XHO2IM(:) = 0. 00232 XHO2JP(:) = 0. 00233 XHO2JM(:) = 0. 00234 XAOSIP(:) = 0. 00235 XAOSIM(:) = 0. 00236 XAOSJP(:) = 0. 00237 XAOSJM(:) = 0. 00238 XSSO_ANIS(:) = 0. 00239 XSSO_DIR(:) = 0. 00240 XSSO_SLOPE(:) = 0. 00241 00242 DEALLOCATE(NSIZE ) 00243 DEALLOCATE(XSUMVAL ) 00244 DEALLOCATE(XSUMVAL2 ) 00245 00246 IF (LHOOK) CALL DR_HOOK('PGD_OROGRAPHY',1,ZHOOK_HANDLE) 00247 RETURN 00248 00249 ! 00250 ELSE IF (XUNIF_ZS/=XUNDEF) THEN 00251 ! 00252 !* 5.2 Use of the presribed cover fractions 00253 ! ------------------------------------ 00254 ! 00255 XZS(:) = XUNIF_ZS 00256 XAVG_ZS(:) = XZS(:) 00257 XSIL_ZS(:) = XZS(:) 00258 XMIN_ZS(:) = XZS(:) 00259 XMAX_ZS(:) = XZS(:) 00260 XSSO_STDEV(:) = 0. 00261 XHO2IP(:) = 0. 00262 XHO2IM(:) = 0. 00263 XHO2JP(:) = 0. 00264 XHO2JM(:) = 0. 00265 XAOSIP(:) = 0. 00266 XAOSIM(:) = 0. 00267 XAOSJP(:) = 0. 00268 XAOSJM(:) = 0. 00269 XSSO_ANIS(:) = 0. 00270 XSSO_DIR(:) = 0. 00271 XSSO_SLOPE(:) = 0. 00272 00273 DEALLOCATE(NSIZE ) 00274 DEALLOCATE(XSUMVAL ) 00275 DEALLOCATE(XSUMVAL2 ) 00276 00277 IF (LHOOK) CALL DR_HOOK('PGD_OROGRAPHY',1,ZHOOK_HANDLE) 00278 RETURN 00279 ! 00280 !* 5.3 No data 00281 ! ------- 00282 ! 00283 ELSEIF (LEN_TRIM(YZS)==0) THEN 00284 WRITE(ILUOUT,*) ' ' 00285 WRITE(ILUOUT,*) '***********************************************************' 00286 WRITE(ILUOUT,*) '* Error in orography preparation *' 00287 WRITE(ILUOUT,*) '* There is no prescribed orography and no input file *' 00288 WRITE(ILUOUT,*) '***********************************************************' 00289 WRITE(ILUOUT,*) ' ' 00290 CALL ABOR1_SFX('PGD_OROGRAPHY: NO PRESCRIBED OROGRAPHY NOR INPUT FILE') 00291 ! 00292 ELSEIF(LIMP_ZS)THEN !LIMP_ZS (impose topo from input file at the same resolution) 00293 ! 00294 IF(YFILETYPE=='NETCDF')THEN 00295 CALL ABOR1_SFX('Use another format than netcdf for topo input file with LIMP_ZS') 00296 ELSE 00297 #ifdef ASC 00298 CFILEIN = ADJUSTL(ADJUSTR(YZS)//'.txt') 00299 #endif 00300 #ifdef FA 00301 CFILEIN_FA = ADJUSTL(ADJUSTR(YZS)//'.fa') 00302 #endif 00303 #ifdef LFI 00304 CFILEIN_LFI = ADJUSTL(YZS) 00305 #endif 00306 CALL INIT_IO_SURF_n(YFILETYPE,'FULL ','SURF ','READ ') 00307 ENDIF 00308 ! 00309 CALL READ_SURF(YFILETYPE,'ZS',XZS(:),IRESP) 00310 CALL READ_SSO_n(YFILETYPE) 00311 ! 00312 CALL END_IO_SURF_n(YFILETYPE) 00313 ! 00314 DEALLOCATE(NSIZE ) 00315 DEALLOCATE(XSUMVAL ) 00316 DEALLOCATE(XSUMVAL2 ) 00317 ! 00318 IF (LHOOK) CALL DR_HOOK('PGD_OROGRAPHY',1,ZHOOK_HANDLE) 00319 RETURN 00320 ! 00321 END IF 00322 ! 00323 !------------------------------------------------------------------------------- 00324 00325 ! 00326 !* 6. Averages the field 00327 ! ------------------ 00328 ! 00329 CALL TREAT_FIELD(HPROGRAM,'SURF ',YFILETYPE,'A_OROG',YZS, & 00330 'ZS ' ) 00331 ! 00332 DEALLOCATE(XSUMVAL ) 00333 DEALLOCATE(XSUMVAL2 ) 00334 ! 00335 !------------------------------------------------------------------------------- 00336 ! 00337 !* 7. Coherence with land sea mask 00338 ! ---------------------------- 00339 ! 00340 WHERE (PSEA(:)==1. .AND. NSIZE(:)==0) NSIZE(:) = -1 00341 ! 00342 !------------------------------------------------------------------------------- 00343 ! 00344 !* 8. Interpolation if some points are not initialized (no data for these points) 00345 ! ------------------------------------------------ 00346 ! 00347 ! note that if no orography data exists near points that need to be defined, 00348 ! these points are probably small isolated islands, and a default value of 1m is assumed. 00349 ! 00350 CALL INTERPOL_FIELD(HPROGRAM,ILUOUT,NSIZE,XAVG_ZS, 'average orography',PDEF=1.) 00351 CALL INTERPOL_FIELD(HPROGRAM,ILUOUT,NSIZE,XSIL_ZS, 'silhouette orography',PDEF=1.) 00352 CALL INTERPOL_FIELD(HPROGRAM,ILUOUT,NSIZE,XMIN_ZS, 'minimum orography',PDEF=1.) 00353 CALL INTERPOL_FIELD(HPROGRAM,ILUOUT,NSIZE,XMAX_ZS, 'maximum orography',PDEF=1.) 00354 ! 00355 IFLAG(:) = NSIZE(:) 00356 WHERE (NSIZE(:)==1) IFLAG(:) = 0 ! only 1 data point was not enough for standard deviation 00357 CALL INTERPOL_FIELD(HPROGRAM,ILUOUT,IFLAG,XSSO_STDEV,'standard deviation of orography',PDEF=0.) 00358 ! 00359 !------------------------------------------------------------------------------- 00360 ! 00361 !* 9. Coherence with land sea mask 00362 ! ---------------------------- 00363 ! 00364 XAVG_ZS (:) = XAVG_ZS (:) * (1. - PSEA(:)) 00365 XSIL_ZS (:) = XSIL_ZS (:) * (1. - PSEA(:)) 00366 ! 00367 WHERE (PSEA(:)==1.) 00368 XSSO_STDEV(:) = XUNDEF 00369 END WHERE 00370 ! 00371 WHERE (PWATER(:)==1.) 00372 XSSO_STDEV(:) = 0. 00373 END WHERE 00374 ! 00375 WHERE(PSEA(:)>0.) 00376 XMIN_ZS(:) = 0. 00377 END WHERE 00378 ! 00379 WHERE(PSEA(:)==1.) 00380 XMAX_ZS(:) = 0. 00381 END WHERE 00382 ! 00383 !* slightly modifies the orography values when there are by coincidence equal to 00384 ! default value. 00385 ! 00386 WHERE (XAVG_ZS==XUNDEF) XAVG_ZS = XAVG_ZS + ZEPS 00387 WHERE (XSIL_ZS==XUNDEF) XSIL_ZS = XSIL_ZS + ZEPS 00388 WHERE (XMIN_ZS==XUNDEF) XMIN_ZS = XMIN_ZS + ZEPS 00389 WHERE (XMAX_ZS==XUNDEF) XMAX_ZS = XMAX_ZS + ZEPS 00390 ! 00391 !------------------------------------------------------------------------------- 00392 ! 00393 !* 10. Choice of orography 00394 ! ------------------- 00395 ! 00396 SELECT CASE (COROGTYPE) 00397 CASE ('AVG') 00398 XZS(:) = XAVG_ZS(:) 00399 CASE ('ENV') 00400 XZS(:) = XAVG_ZS(:) 00401 WHERE (PSEA(:)<1.) XZS(:) = XAVG_ZS(:) + XENV * XSSO_STDEV 00402 CASE ('SIL') 00403 XZS(:) = XSIL_ZS(:) 00404 CASE ('MAX') 00405 XZS(:) = XMAX_ZS(:) 00406 CASE DEFAULT 00407 CALL ABOR1_SFX('PGD_OROGRAPHY: OROGRAPHY TYPE NOT SUPPORTED '//COROGTYPE) 00408 END SELECT 00409 ! 00410 !------------------------------------------------------------------------------- 00411 ! 00412 !* 12. Subgrid scale orography characteristics 00413 ! --------------------------------------- 00414 ! 00415 CALL SSO(GSSO,GSSO_ANIS,PSEA) 00416 ! 00417 IFLAG(:) = NSIZE(:) 00418 WHERE(.NOT. GSSO(:)) IFLAG(:) = 0 00419 WHERE(PSEA(:)==1. .AND. IFLAG(:)==0) IFLAG(:) = -1 00420 ! 00421 CALL INTERPOL_FIELD(HPROGRAM,ILUOUT,IFLAG,XSSO_DIR, 'subgrid orography direction',PDEF=0.) 00422 CALL INTERPOL_FIELD(HPROGRAM,ILUOUT,IFLAG,XSSO_SLOPE,'subgrid orography slope',PDEF=0.) 00423 ! 00424 IFLAG(:) = NSIZE(:) 00425 WHERE(.NOT. GSSO_ANIS(:)) IFLAG(:) = 0 00426 WHERE(PSEA(:)==1. .AND. IFLAG(:)==0) IFLAG(:) = -1 00427 ! 00428 CALL INTERPOL_FIELD(HPROGRAM,ILUOUT,IFLAG,XSSO_ANIS, 'subgrid orography anisotropy',PDEF=0.) 00429 ! 00430 WHERE (PSEA(:)==1.) 00431 XSSO_ANIS (:) = XUNDEF 00432 XSSO_DIR (:) = XUNDEF 00433 XSSO_SLOPE(:) = XUNDEF 00434 END WHERE 00435 ! 00436 WHERE (PWATER(:)==1.) 00437 XSSO_ANIS (:) = 1. 00438 XSSO_DIR (:) = 0. 00439 XSSO_SLOPE(:) = 0. 00440 END WHERE 00441 ! 00442 !------------------------------------------------------------------------------- 00443 ! 00444 !* 13. Subgrid scale orography roughness 00445 ! --------------------------------- 00446 ! 00447 CALL SUBSCALE_AOS(GZ0EFFI,GZ0EFFJ,PSEA) 00448 ! 00449 IFLAG(:) = NSIZE(:) 00450 WHERE(.NOT. GZ0EFFI(:)) IFLAG(:) = 0 00451 WHERE(PSEA(:)==1. .AND. IFLAG(:)==0) IFLAG(:) = -1 00452 CALL INTERPOL_FIELD(HPROGRAM,ILUOUT,IFLAG,XAOSIP, 'subgrid orography A/S, direction i+',PDEF=0.) 00453 CALL INTERPOL_FIELD(HPROGRAM,ILUOUT,IFLAG,XAOSIM, 'subgrid orography A/S, direction i-',PDEF=0.) 00454 CALL INTERPOL_FIELD(HPROGRAM,ILUOUT,IFLAG,XHO2IP, 'subgrid orography h/2, direction i+',PDEF=0.) 00455 CALL INTERPOL_FIELD(HPROGRAM,ILUOUT,IFLAG,XHO2IM, 'subgrid orography h/2, direction i-',PDEF=0.) 00456 ! 00457 IFLAG(:) = NSIZE(:) 00458 WHERE(.NOT. GZ0EFFJ(:)) IFLAG(:) = 0 00459 WHERE(PSEA(:)==1. .AND. IFLAG(:)==0) IFLAG(:) = -1 00460 CALL INTERPOL_FIELD(HPROGRAM,ILUOUT,IFLAG,XAOSJP, 'subgrid orography A/S, direction j+',PDEF=0.) 00461 CALL INTERPOL_FIELD(HPROGRAM,ILUOUT,IFLAG,XAOSJM, 'subgrid orography A/S, direction j-',PDEF=0.) 00462 CALL INTERPOL_FIELD(HPROGRAM,ILUOUT,IFLAG,XHO2JP, 'subgrid orography h/2, direction j+',PDEF=0.) 00463 CALL INTERPOL_FIELD(HPROGRAM,ILUOUT,IFLAG,XHO2JM, 'subgrid orography h/2, direction j-',PDEF=0.) 00464 ! 00465 WHERE (PSEA(:)==1.) 00466 XHO2IP(:) = XUNDEF 00467 XHO2IM(:) = XUNDEF 00468 XHO2JP(:) = XUNDEF 00469 XHO2JM(:) = XUNDEF 00470 XAOSIP(:) = XUNDEF 00471 XAOSIM(:) = XUNDEF 00472 XAOSJP(:) = XUNDEF 00473 XAOSJM(:) = XUNDEF 00474 END WHERE 00475 ! 00476 WHERE (PWATER(:)==1.) 00477 XHO2IP(:) = 0. 00478 XHO2IM(:) = 0. 00479 XHO2JP(:) = 0. 00480 XHO2JM(:) = 0. 00481 XAOSIP(:) = 0. 00482 XAOSIM(:) = 0. 00483 XAOSJP(:) = 0. 00484 XAOSJM(:) = 0. 00485 END WHERE 00486 !------------------------------------------------------------------------------- 00487 DEALLOCATE(NSIZE ) 00488 IF (LHOOK) CALL DR_HOOK('PGD_OROGRAPHY',1,ZHOOK_HANDLE) 00489 !------------------------------------------------------------------------------- 00490 ! 00491 END SUBROUTINE PGD_OROGRAPHY