|
SURFEX v7.3
General documentation of Surfex
|
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
1.8.0