SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/LIB/TOPD/read_nam_pgd_topd.F90
Go to the documentation of this file.
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