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