SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/pgd_orography.F90
Go to the documentation of this file.
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