SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE READ_NAM_PGD_DUMMY(HPROGRAM, KDUMMY_NBR, HDUMMY_NAME, HDUMMY_AREA, & 00003 HDUMMY_ATYPE, HDUMMY_FILE, HDUMMY_FILETYPE ) 00004 ! ############################################################## 00005 ! 00006 !!**** *READ_NAM_PGD_DUMMY* reads namelist NAM_DUMMY_PGD 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 !! V. Masson Meteo-France 00028 !! 00029 !! MODIFICATION 00030 !! ------------ 00031 !! 00032 !! Original 01/2005 00033 !! 00034 !---------------------------------------------------------------------------- 00035 ! 00036 !* 0. DECLARATION 00037 ! ----------- 00038 ! 00039 USE MODI_GET_LUOUT 00040 USE MODI_OPEN_NAMELIST 00041 USE MODI_CLOSE_NAMELIST 00042 ! 00043 USE MODE_POS_SURF 00044 ! 00045 ! 00046 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00047 USE PARKIND1 ,ONLY : JPRB 00048 ! 00049 IMPLICIT NONE 00050 ! 00051 !* 0.1 Declaration of arguments 00052 ! ------------------------ 00053 ! 00054 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! Type of program 00055 INTEGER, INTENT(OUT) :: KDUMMY_NBR 00056 ! ! number of dummy pgd fields chosen by user 00057 CHARACTER(LEN=20), DIMENSION(1000), INTENT(OUT) :: HDUMMY_NAME 00058 ! ! name of the dummy pgd fields (for information) 00059 CHARACTER(LEN=3), DIMENSION(1000), INTENT(OUT) :: HDUMMY_AREA 00060 ! ! areas where dummy pgd fields are defined 00061 ! ! 'ALL' : everywhere 00062 ! ! 'SEA' : where sea exists 00063 ! ! 'LAN' : where land exists 00064 ! ! 'WAT' : where inland water exists 00065 ! ! 'NAT' : where natural or agricultural areas exist 00066 ! ! 'TWN' : where town areas exist 00067 ! ! 'STR' : where streets are present 00068 ! ! 'BLD' : where buildings are present 00069 CHARACTER(LEN=3), DIMENSION(1000), INTENT(OUT) :: HDUMMY_ATYPE ! avg type for dummy pgd fields 00070 ! ! 'ARI' , 'INV' 00071 CHARACTER(LEN=28), DIMENSION(1000), INTENT(OUT) :: HDUMMY_FILE ! data files 00072 CHARACTER(LEN=6), DIMENSION(1000), INTENT(OUT) :: HDUMMY_FILETYPE ! type of these files 00073 ! 00074 ! 00075 !* 0.2 Declaration of local variables 00076 ! ------------------------------ 00077 ! 00078 INTEGER :: ILUOUT ! output listing logical unit 00079 INTEGER :: ILUNAM ! namelist file logical unit 00080 LOGICAL :: GFOUND ! flag when namelist is present 00081 ! 00082 !* 0.3 Declaration of namelists 00083 ! ------------------------ 00084 ! 00085 INTEGER :: NDUMMY_NBR 00086 ! ! number of dummy pgd fields chosen by user 00087 CHARACTER(LEN=20), DIMENSION(1000) :: CDUMMY_NAME 00088 ! ! name of the dummy pgd fields (for information) 00089 CHARACTER(LEN=3), DIMENSION(1000) :: CDUMMY_AREA 00090 ! ! areas where dummy pgd fields are defined 00091 ! ! 'ALL' : everywhere 00092 ! ! 'SEA' : where sea exists 00093 ! ! 'LAN' : where land exists 00094 ! ! 'WAT' : where inland water exists 00095 ! ! 'NAT' : where natural or agricultural areas exist 00096 ! ! 'TWN' : where town areas exist 00097 ! ! 'STR' : where streets are present 00098 ! ! 'BLD' : where buildings are present 00099 CHARACTER(LEN=3), DIMENSION(1000) :: CDUMMY_ATYPE ! avg type for dummy pgd fields 00100 ! ! 'ARI' , 'INV' 00101 CHARACTER(LEN=28), DIMENSION(1000) :: CDUMMY_FILE ! data files 00102 CHARACTER(LEN=6), DIMENSION(1000) :: CDUMMY_FILETYPE ! type of these files 00103 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00104 ! 00105 NAMELIST/NAM_DUMMY_PGD/ NDUMMY_NBR, CDUMMY_NAME, CDUMMY_AREA, & 00106 CDUMMY_ATYPE, CDUMMY_FILE, CDUMMY_FILETYPE 00107 !------------------------------------------------------------------------------- 00108 ! 00109 !* 1. Initializations of defaults 00110 ! --------------------------- 00111 ! 00112 IF (LHOOK) CALL DR_HOOK('READ_NAM_PGD_DUMMY',0,ZHOOK_HANDLE) 00113 NDUMMY_NBR = 0 00114 ! 00115 CDUMMY_NAME = " " 00116 CDUMMY_FILE = " " 00117 CDUMMY_FILETYPE = " " 00118 CDUMMY_AREA = "ALL" 00119 CDUMMY_ATYPE = "ARI" 00120 ! 00121 CALL GET_LUOUT(HPROGRAM,ILUOUT) 00122 ! 00123 !------------------------------------------------------------------------------- 00124 ! 00125 !* 2. Reading of namelist 00126 ! ------------------- 00127 ! 00128 CALL OPEN_NAMELIST(HPROGRAM,ILUNAM) 00129 ! 00130 CALL POSNAM(ILUNAM,'NAM_DUMMY_PGD',GFOUND,ILUOUT) 00131 IF (GFOUND) READ(UNIT=ILUNAM,NML=NAM_DUMMY_PGD) 00132 ! 00133 CALL CLOSE_NAMELIST(HPROGRAM,ILUNAM) 00134 ! 00135 !------------------------------------------------------------------------------- 00136 ! 00137 !* 3. Fills output arguments 00138 ! ---------------------- 00139 ! 00140 KDUMMY_NBR = NDUMMY_NBR 00141 HDUMMY_NAME(:) = CDUMMY_NAME(:) 00142 HDUMMY_AREA(:) = CDUMMY_AREA(:) 00143 HDUMMY_ATYPE(:) = CDUMMY_ATYPE(:) 00144 HDUMMY_FILE(:) = CDUMMY_FILE(:) 00145 HDUMMY_FILETYPE(:) = CDUMMY_FILETYPE(:) 00146 IF (LHOOK) CALL DR_HOOK('READ_NAM_PGD_DUMMY',1,ZHOOK_HANDLE) 00147 ! 00148 !------------------------------------------------------------------------------- 00149 ! 00150 END SUBROUTINE READ_NAM_PGD_DUMMY