SURFEX v7.3
General documentation of Surfex
|
00001 !----------------------------------------------------------------------------! 00002 ! ############################################################## 00003 SUBROUTINE READ_NAM_PGD_TOPD(HPROGRAM,OCOUPL_TOPD,HCAT,PF_PARAM_BV,PC_DEPTH_RATIO_BV) 00004 ! ############################################################## 00005 ! 00006 !!**** *READ_NAM_TOPD_n* reads namelist NAM_TOPD 00007 !! 00008 !! PURPOSE 00009 !! ------- 00010 !! NAM_TOPD is a namelist used only for Topmodel coupling 00011 !! It permits to define the different catchments studied. 00012 !! This routine aims at reading and initialising those names. 00013 !! 00014 !! METHOD 00015 !! ------ 00016 !! 00017 ! 00018 !! EXTERNAL 00019 !! -------- 00020 !! 00021 !! IMPLICIT ARGUMENTS 00022 !! ------------------ 00023 !! 00024 !! REFERENCE 00025 !! --------- 00026 !! 00027 !! AUTHOR 00028 !! ------ 00029 !! 00030 !! B. Vincendon Meteo-France 00031 !! 00032 !! MODIFICATION 00033 !! ------------ 00034 !! 00035 !! Original 11/2006 00036 !! 00037 !---------------------------------------------------------------------------- 00038 ! 00039 !* 0. DECLARATION 00040 ! ----------- 00041 ! 00042 USE MODI_GET_LUOUT 00043 USE MODI_OPEN_NAMELIST 00044 USE MODI_CLOSE_NAMELIST 00045 ! 00046 USE MODD_TOPD_PAR, ONLY : JPCAT 00047 USE MODD_TOPODYN, ONLY : NNCAT 00048 ! 00049 USE MODE_POS_SURF 00050 ! 00051 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00052 USE PARKIND1 ,ONLY : JPRB 00053 ! 00054 IMPLICIT NONE 00055 ! 00056 !* 0.1 Declaration of arguments 00057 ! ------------------------ 00058 ! 00059 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! Type of program 00060 LOGICAL, INTENT(OUT) :: OCOUPL_TOPD 00061 CHARACTER(LEN=15), DIMENSION(JPCAT),INTENT(OUT) :: HCAT ! Names of catchments 00062 REAL, DIMENSION(JPCAT),INTENT(OUT) :: PF_PARAM_BV 00063 REAL, DIMENSION(JPCAT),INTENT(OUT) :: PC_DEPTH_RATIO_BV 00064 ! 00065 !* 0.2 Declaration of local variables 00066 ! ------------------------------ 00067 ! 00068 CHARACTER(LEN=15), DIMENSION(JPCAT) :: CCAT 00069 LOGICAL :: LCOUPL_TOPD 00070 REAL, DIMENSION(JPCAT) :: XF_PARAM_BV 00071 REAL, DIMENSION(JPCAT) :: XC_DEPTH_RATIO_BV 00072 ! 00073 INTEGER :: ILUOUT ! output listing logical unit 00074 INTEGER :: ILUNAM ! namelist file logical unit 00075 LOGICAL :: GFOUND ! flag when namelist is present 00076 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00077 ! 00078 !* 0.3 Declaration of namelists 00079 ! 00080 ! 00081 NAMELIST/NAM_PGD_TOPD/CCAT, LCOUPL_TOPD, XF_PARAM_BV, XC_DEPTH_RATIO_BV 00082 !------------------------------------------------------------------------------- 00083 IF (LHOOK) CALL DR_HOOK('READ_NAM_PGD_TOPD',0,ZHOOK_HANDLE) 00084 ! 00085 !* 1. Initializations of defaults 00086 ! --------------------------- 00087 ! 00088 LCOUPL_TOPD = .FALSE. 00089 CCAT(:) = ' ' 00090 XF_PARAM_BV(:) = 2.5 00091 XC_DEPTH_RATIO_BV(:) = 1. 00092 ! 00093 CALL GET_LUOUT(HPROGRAM,ILUOUT) 00094 ! 00095 !------------------------------------------------------------------------------- 00096 ! 00097 !* 2. Reading of namelist 00098 ! ------------------- 00099 ! 00100 CALL OPEN_NAMELIST(HPROGRAM,ILUNAM) 00101 !CALL OPEN_NAMELIST(HPROGRAM,'SURF ',ILUNAM) 00102 ! 00103 CALL POSNAM(ILUNAM,'NAM_PGD_TOPD',GFOUND,ILUOUT) 00104 IF (GFOUND) READ(UNIT=ILUNAM,NML=NAM_PGD_TOPD) 00105 ! 00106 CALL CLOSE_NAMELIST(HPROGRAM,ILUNAM) 00107 ! 00108 ! 2. Initialises number of catchments and time step variables 00109 ! ------------------------------------------------------- 00110 ! 00111 NNCAT=COUNT(CCAT(:)/=' ') 00112 ! 00113 !------------------------------------------------------------------------------- 00114 ! 00115 !* 3. Fills output arguments 00116 ! ---------------------- 00117 ! 00118 OCOUPL_TOPD = LCOUPL_TOPD 00119 HCAT(1:NNCAT) = CCAT(1:NNCAT) 00120 PF_PARAM_BV(1:NNCAT) = XF_PARAM_BV(1:NNCAT) 00121 PC_DEPTH_RATIO_BV(1:NNCAT) = XC_DEPTH_RATIO_BV(1:NNCAT) 00122 ! 00123 IF (LHOOK) CALL DR_HOOK('READ_NAM_PGD_TOPD',1,ZHOOK_HANDLE) 00124 !------------------------------------------------------------------------------- 00125 ! 00126 END SUBROUTINE READ_NAM_PGD_TOPD