SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/read_prep_watflux_conf.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE READ_PREP_WATFLUX_CONF(HPROGRAM,HVAR,HFILE,HFILETYPE,HFILEPGD,HFILEPGDTYPE,&
00003                                         HATMFILE,HATMFILETYPE,HPGDFILE,HPGDFILETYPE,KLUOUT,OUNIF)
00004 !     #######################################################
00005 !
00006 !!****  *READ_PREP_WATFLUX_CONF* - routine to read the configuration for
00007 !!                                 WATFLUX fields preparation
00008 !!
00009 !!    PURPOSE
00010 !!    -------
00011 !!
00012 !!**  METHOD
00013 !!    ------
00014 !!
00015 !!    EXTERNAL
00016 !!    --------
00017 !!
00018 !!
00019 !!    IMPLICIT ARGUMENTS
00020 !!    ------------------
00021 !!
00022 !!    REFERENCE
00023 !!    ---------
00024 !!
00025 !!
00026 !!    AUTHOR
00027 !!    ------
00028 !!      V. Masson   *Meteo France*      
00029 !!
00030 !!    MODIFICATIONS
00031 !!    -------------
00032 !!      Original    01/2004
00033 !!      P. Le Moigne 10/2005, Phasage Arome
00034 !-------------------------------------------------------------------------------
00035 !
00036 !*       0.    DECLARATIONS
00037 !              ------------
00038 !
00039 USE MODI_READ_PREP_SURF_ATM_CONF
00040 !
00041 USE MODN_PREP_WATFLUX
00042 USE MODD_PREP_WATFLUX, ONLY : CFILE_WATFLX, CTYPE, CFILEPGD_WATFLX, CTYPEPGD, XTS_WATER_UNIF
00043 !
00044 USE MODD_SURF_PAR,   ONLY : XUNDEF
00045 !
00046 !
00047 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00048 USE PARKIND1  ,ONLY : JPRB
00049 !
00050 USE MODI_ABOR1_SFX
00051 !
00052 IMPLICIT NONE
00053 !
00054 !*       0.1   Declarations of arguments
00055 !              -------------------------
00056 !
00057  CHARACTER(LEN=6),  INTENT(IN)  :: HPROGRAM ! program calling ISBA
00058  CHARACTER(LEN=7),  INTENT(IN)  :: HVAR     ! variable treated
00059  CHARACTER(LEN=28), INTENT(OUT) :: HFILE    ! file name
00060  CHARACTER(LEN=6),  INTENT(OUT) :: HFILETYPE! file type
00061  CHARACTER(LEN=28), INTENT(OUT) :: HFILEPGD    ! file name
00062  CHARACTER(LEN=6),  INTENT(OUT) :: HFILEPGDTYPE! file type
00063  CHARACTER(LEN=28), INTENT(IN)  :: HATMFILE    ! atmospheric file name
00064  CHARACTER(LEN=6),  INTENT(IN)  :: HATMFILETYPE! atmospheric file type
00065  CHARACTER(LEN=28), INTENT(IN)  :: HPGDFILE    ! atmospheric file name
00066  CHARACTER(LEN=6),  INTENT(IN)  :: HPGDFILETYPE! atmospheric file type
00067 INTEGER,           INTENT(IN)  :: KLUOUT   ! logical unit of output listing
00068 LOGICAL,           INTENT(OUT) :: OUNIF    ! flag for prescribed uniform field
00069 
00070 !
00071 !*       0.2   Declarations of local variables
00072 !              -------------------------------
00073 !
00074 INTEGER           :: IRESP          ! IRESP  : return-code if a problem appears 
00075                                     ! at the open of the file in LFI  routines 
00076 INTEGER           :: ILUNAM         ! Logical unit of namelist file
00077 !
00078  CHARACTER(LEN=28) :: YNAMELIST      ! namelist file
00079 !
00080 LOGICAL           :: GFOUND         ! Return code when searching namelist
00081 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00082 !-------------------------------------------------------------------------------
00083 !
00084 !
00085 IF (LHOOK) CALL DR_HOOK('READ_PREP_WATFLUX_CONF',0,ZHOOK_HANDLE)
00086 HFILE = '                         '
00087 HFILETYPE = '      '
00088 !
00089 HFILEPGD = '                         '
00090 HFILEPGDTYPE = '      '
00091 !
00092 OUNIF     = .FALSE.
00093 !
00094 !-------------------------------------------------------------------------------
00095 !
00096 !* choice of input file
00097 !  --------------------
00098 !
00099 IF (LEN_TRIM(HFILE)==0 .AND. LEN_TRIM(CFILE_WATFLX)>0 .AND. LEN_TRIM(CTYPE)>0) THEN
00100   HFILE     = CFILE_WATFLX
00101   HFILETYPE = CTYPE
00102 END IF
00103 !
00104 IF (LEN_TRIM(HFILEPGD)==0 .AND. LEN_TRIM(CFILEPGD_WATFLX)>0 .AND. LEN_TRIM(CTYPEPGD)>0) THEN
00105   HFILEPGD     = CFILEPGD_WATFLX
00106   HFILEPGDTYPE = CTYPEPGD
00107 END IF
00108 !
00109 !! If no file name in the scheme namelist,
00110 !! try to find a name in NAM_SURF_ATM
00111 !
00112 IF (LEN_TRIM(HFILE)==0) THEN
00113 !
00114  CALL READ_PREP_SURF_ATM_CONF(HPROGRAM,HFILE,HFILETYPE,HFILEPGD,HFILEPGDTYPE,&
00115                              HATMFILE,HATMFILETYPE,HPGDFILE,HPGDFILETYPE,KLUOUT)
00116 !
00117 END IF
00118 !-------------------------------------------------------------------------------
00119 !
00120 !* Is an uniform field prescribed?
00121 !  ------------------------------
00122 !
00123     OUNIF = (XTS_WATER_UNIF/=XUNDEF) 
00124 !
00125 !-------------------------------------------------------------------------------
00126 !
00127 !* If no file and no uniform field is prescribed: error
00128 !  ---------------------------------------------
00129 !
00130 IF (HVAR=='DATE   ' .OR. HVAR=='ZS     ' .AND. LHOOK) CALL DR_HOOK('READ_PREP_WATFLUX_CONF',1,ZHOOK_HANDLE)
00131 IF (HVAR=='DATE   ' .OR. HVAR=='ZS     ') RETURN
00132 !
00133 IF (LEN_TRIM(HFILETYPE)==0 .AND. .NOT. OUNIF) THEN
00134    CALL ABOR1_SFX('READ_PREP_WATFLUX_CONF: AN INPUT VALUE IS REQUIRED FOR '//HVAR)
00135 END IF
00136 IF (LHOOK) CALL DR_HOOK('READ_PREP_WATFLUX_CONF',1,ZHOOK_HANDLE)
00137 !
00138 !-------------------------------------------------------------------------------
00139 !
00140 END SUBROUTINE READ_PREP_WATFLUX_CONF