SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/read_nam_pgd_orography.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE READ_NAM_PGD_OROGRAPHY(HPROGRAM, HZS, HFILETYPE, PUNIF_ZS, &
00003                                           HOROGTYPE, PENV, OIMP_ZS )  
00004 !     ##############################################################
00005 !
00006 !!**** *READ_NAM_PGD_OROGRAPHY* reads namelist for Orography
00007 !!
00008 !!    PURPOSE
00009 !!    -------
00010 !!
00011 !!    METHOD
00012 !!    ------
00013 !!   
00014 !
00015 !!    EXTERNAL
00016 !!    --------
00017 !!
00018 !!    IMPLICIT ARGUMENTS
00019 !!    ------------------
00020 !!
00021 !!    REFERENCE
00022 !!    ---------
00023 !!
00024 !!    AUTHOR
00025 !!    ------
00026 !!
00027 !!    B. Decharme        Meteo-France
00028 !!
00029 !!    MODIFICATION
00030 !!    ------------
00031 !!
00032 !!    Original    02/2010
00033 !----------------------------------------------------------------------------
00034 !
00035 !*    0.     DECLARATION
00036 !            -----------
00037 !
00038 USE MODD_SURF_PAR,       ONLY : XUNDEF
00039 !
00040 USE MODI_GET_LUOUT
00041 USE MODI_OPEN_NAMELIST
00042 USE MODI_CLOSE_NAMELIST
00043 !
00044 USE MODE_POS_SURF
00045 !
00046 !
00047 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00048 USE PARKIND1  ,ONLY : JPRB
00049 !
00050 IMPLICIT NONE
00051 !
00052 !*    0.1    Declaration of arguments
00053 !            ------------------------
00054 !                                   
00055  CHARACTER(LEN=6),    INTENT(IN)    :: HPROGRAM    ! Type of program
00056  CHARACTER(LEN=28),   INTENT(OUT)   :: HZS         ! file name for orography
00057  CHARACTER(LEN=6),    INTENT(OUT)   :: HFILETYPE   ! data file type
00058 REAL,                INTENT(OUT)   :: PUNIF_ZS    ! uniform orography
00059  CHARACTER(LEN=3),    INTENT(OUT)   :: HOROGTYPE   ! orogpraphy type 
00060 REAL,                INTENT(OUT)   :: PENV        ! parameter for enveloppe orography:
00061 LOGICAL,             INTENT(OUT)   :: OIMP_ZS     ! Imposed orography from another PGD file
00062 !                                  
00063 !
00064 !*    0.2    Declaration of local variables
00065 !            ------------------------------
00066 !
00067 INTEGER                           :: ILUOUT    ! output listing logical unit
00068 INTEGER                           :: ILUNAM    ! namelist file logical unit
00069 LOGICAL                           :: GFOUND    ! flag when namelist is present
00070 !
00071 !*    0.3    Declaration of namelists
00072 !            ------------------------
00073 !
00074  CHARACTER(LEN=28)        :: YZS         ! file name for orography
00075  CHARACTER(LEN=6)         :: YFILETYPE   ! data file type
00076 REAL                     :: XUNIF_ZS    ! uniform orography
00077  CHARACTER(LEN=3)         :: COROGTYPE   ! orogpraphy type 
00078 !                                       ! 'AVG' : average orography
00079 !                                       ! 'SIL' : silhouette orography
00080 !                                       ! 'ENV' : enveloppe orography
00081 REAL                     :: XENV        ! parameter for enveloppe orography:
00082 !                                       ! zs = avg_zs + XENV * SSO_STEDV
00083 LOGICAL                  :: LIMP_ZS     ! Imposed orography from another PGD file
00084 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00085 !
00086 NAMELIST/NAM_ZS/YZS, YFILETYPE, XUNIF_ZS, COROGTYPE, XENV, LIMP_ZS  
00087 !
00088 !-------------------------------------------------------------------------------
00089 !
00090 !*    1.      Initializations of defaults
00091 !             ---------------------------
00092 !
00093 IF (LHOOK) CALL DR_HOOK('READ_NAM_PGD_OROGRAPHY',0,ZHOOK_HANDLE)
00094 XUNIF_ZS       = XUNDEF
00095 YZS            = '                          '
00096 YFILETYPE      = '      '
00097 !
00098 COROGTYPE      = 'ENV'
00099 XENV           = 0.
00100 LIMP_ZS        = .FALSE.
00101 !
00102  CALL GET_LUOUT(HPROGRAM,ILUOUT)
00103 !
00104 !-------------------------------------------------------------------------------
00105 !
00106 !*    2.      Reading of namelist
00107 !             -------------------
00108 !
00109  CALL OPEN_NAMELIST(HPROGRAM,ILUNAM)
00110 !
00111  CALL POSNAM(ILUNAM,'NAM_ZS',GFOUND,ILUOUT)
00112 IF (GFOUND) READ(UNIT=ILUNAM,NML=NAM_ZS)
00113 !
00114  CALL CLOSE_NAMELIST(HPROGRAM,ILUNAM)
00115 !
00116 !-------------------------------------------------------------------------------
00117 !
00118 HZS       = YZS       ! file name for orography
00119 HFILETYPE = YFILETYPE ! data file type
00120 PUNIF_ZS  = XUNIF_ZS  ! uniform orography
00121 HOROGTYPE = COROGTYPE ! orogpraphy type 
00122 PENV      = XENV      ! parameter for enveloppe orography:
00123 OIMP_ZS   = LIMP_ZS   ! Imposed orography from another PGD file
00124 IF (LHOOK) CALL DR_HOOK('READ_NAM_PGD_OROGRAPHY',1,ZHOOK_HANDLE)
00125 !
00126 !-------------------------------------------------------------------------------
00127 !
00128 END SUBROUTINE READ_NAM_PGD_OROGRAPHY