SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/read_nam_pgd_cover.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE READ_NAM_PGD_COVER(HPROGRAM, HCOVER, HFILETYPE, PUNIF_COVER,  &
00003                                       PRM_COVER, PRM_COAST, PRM_LAKE, PRM_SEA,   &
00004                                       OORCA_GRID, PLAT_ANT, OIMP_COVER           )  
00005 !     ##############################################################
00006 !
00007 !!**** *READ_NAM_PGD_COVER* reads namelist for Cover
00008 !!
00009 !!    PURPOSE
00010 !!    -------
00011 !!
00012 !!    METHOD
00013 !!    ------
00014 !!   
00015 !
00016 !!    EXTERNAL
00017 !!    --------
00018 !!
00019 !!    IMPLICIT ARGUMENTS
00020 !!    ------------------
00021 !!
00022 !!    REFERENCE
00023 !!    ---------
00024 !!
00025 !!    AUTHOR
00026 !!    ------
00027 !!
00028 !!    B. Decharme        Meteo-France
00029 !!
00030 !!    MODIFICATION
00031 !!    ------------
00032 !!
00033 !!    Original    02/2010
00034 !----------------------------------------------------------------------------
00035 !
00036 !*    0.     DECLARATION
00037 !            -----------
00038 !
00039 USE MODD_DATA_COVER_PAR, ONLY : JPCOVER
00040 !
00041 USE MODI_GET_LUOUT
00042 USE MODI_OPEN_NAMELIST
00043 USE MODI_CLOSE_NAMELIST
00044 !
00045 USE MODE_POS_SURF
00046 !
00047 !
00048 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00049 USE PARKIND1  ,ONLY : JPRB
00050 !
00051 IMPLICIT NONE
00052 !
00053 !*    0.1    Declaration of arguments
00054 !            ------------------------
00055 !                                   
00056  CHARACTER(LEN=6),    INTENT(IN)    :: HPROGRAM    ! Type of program
00057  CHARACTER(LEN=28),   INTENT(OUT)   :: HCOVER      ! file name for cover types
00058  CHARACTER(LEN=6),    INTENT(OUT)   :: HFILETYPE   ! data file type
00059 REAL, DIMENSION(:),  INTENT(OUT)   :: PUNIF_COVER ! value of each cover (cover will be uniform on the horizontal)
00060 REAL,                INTENT(OUT)   :: PRM_COVER   ! limit of coverage under which the cover is removed. Default is 1.E-6
00061 REAL,                INTENT(OUT)   :: PRM_COAST   ! limit of coast coverage
00062 REAL,                INTENT(OUT)   :: PRM_LAKE    ! limit of inland lake coverage                                       
00063 REAL,                INTENT(OUT)   :: PRM_SEA     ! limit of sea coverage
00064 LOGICAL,             INTENT(OUT)   :: OORCA_GRID  ! flag to compatibility between Surfex and Orca grid 
00065 REAL,                INTENT(OUT)   :: PLAT_ANT    ! Lattitude limit from Orca grid (Antartic)
00066 LOGICAL,             INTENT(OUT)   :: OIMP_COVER  ! Imposed values for Cover from another PGD file
00067 !
00068 !
00069 !*    0.2    Declaration of local variables
00070 !            ------------------------------
00071 !
00072 INTEGER                           :: ILUOUT    ! output listing logical unit
00073 INTEGER                           :: ILUNAM    ! namelist file logical unit
00074 LOGICAL                           :: GFOUND    ! flag when namelist is present
00075 !
00076 !*    0.3    Declaration of namelists
00077 !            ------------------------
00078 !
00079 REAL, DIMENSION(JPCOVER) :: XUNIF_COVER ! value of each cover (cover will be
00080 !                                                   uniform on the horizontal)
00081 !
00082  CHARACTER(LEN=28)        :: YCOVER      ! file name for cover types
00083  CHARACTER(LEN=6)         :: YFILETYPE   ! data file type
00084 REAL                     :: XRM_COVER   ! limit of coverage under which the
00085                                         ! cover is removed. Default is 1.E-6
00086 REAL                     :: XRM_COAST   ! limit of coast coverage under which
00087                                         ! the coast is replaced by sea or
00088                                         ! inland water. Default is 1.
00089 !
00090 REAL                     :: XRM_LAKE    ! limit of inland lake coverage under which
00091                                         ! the water is removed. Default is 0.0
00092 !                                        
00093 REAL                     :: XRM_SEA     ! limit of sea coverage under which
00094                                         ! the sea is removed. Default is 0.0
00095 !
00096 LOGICAL                  :: LORCA_GRID  ! flag to compatibility between Surfex and Orca grid 
00097                                         ! (Earth Model over Antarctic)
00098 REAL                     :: XLAT_ANT    ! Lattitude limit from Orca grid (Antartic)
00099 !
00100 LOGICAL                  :: LIMP_COVER  ! Imposed values for Cover from another PGD file
00101 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00102 !
00103 NAMELIST/NAM_COVER/ YCOVER, YFILETYPE, XUNIF_COVER, XRM_COVER, XRM_COAST, &
00104                       XRM_LAKE, XRM_SEA, LORCA_GRID, XLAT_ANT, LIMP_COVER  
00105 !
00106 !-------------------------------------------------------------------------------
00107 !
00108 !*    1.      Initializations of defaults
00109 !             ---------------------------
00110 !
00111 IF (LHOOK) CALL DR_HOOK('READ_NAM_PGD_COVER',0,ZHOOK_HANDLE)
00112 XUNIF_COVER(:) = 0.
00113 YCOVER         = '                          '
00114 YFILETYPE      = '      '
00115 XRM_COVER      = 1.E-6
00116 XRM_COAST      = 1.0
00117 XRM_LAKE       = 0.0
00118 XRM_SEA        = 0.0
00119 !
00120 LORCA_GRID     = .FALSE.
00121 XLAT_ANT       = -77.0
00122 !
00123 LIMP_COVER     = .FALSE.
00124 !
00125  CALL GET_LUOUT(HPROGRAM,ILUOUT)
00126 !
00127 !-------------------------------------------------------------------------------
00128 !
00129 !*    2.      Reading of namelist
00130 !             -------------------
00131 !
00132  CALL OPEN_NAMELIST(HPROGRAM,ILUNAM)
00133 !
00134  CALL POSNAM(ILUNAM,'NAM_COVER',GFOUND,ILUOUT)
00135 IF (GFOUND) READ(UNIT=ILUNAM,NML=NAM_COVER)
00136 !
00137  CALL CLOSE_NAMELIST(HPROGRAM,ILUNAM)
00138 !
00139 !-------------------------------------------------------------------------------
00140 !
00141 HCOVER      = YCOVER      ! file name for cover types
00142 HFILETYPE   = YFILETYPE   ! data file type
00143 PUNIF_COVER = XUNIF_COVER ! value of each cover (cover will be uniform on the horizontal)
00144 PRM_COVER   = XRM_COVER   ! limit of coverage under which the cover is removed. Default is 1.E-6
00145 PRM_COAST   = XRM_COAST   ! limit of coast coverage
00146 PRM_LAKE    = XRM_LAKE    ! limit of inland lake coverage                                       
00147 PRM_SEA     = XRM_SEA     ! limit of sea coverage
00148 OORCA_GRID  = LORCA_GRID  ! flag to compatibility between Surfex and Orca grid 
00149 PLAT_ANT    = XLAT_ANT    ! Lattitude limit from Orca grid (Antartic)
00150 OIMP_COVER  = LIMP_COVER  ! Imposed values for Cover from another PGD file
00151 IF (LHOOK) CALL DR_HOOK('READ_NAM_PGD_COVER',1,ZHOOK_HANDLE)
00152 !
00153 !-------------------------------------------------------------------------------
00154 !
00155 END SUBROUTINE READ_NAM_PGD_COVER