SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE INI_VAR_FROM_DATA_0D(HPROGRAM, HATYPE, HNAME, HTYPE, HFNAM, & 00003 HFTYP, PUNIF, PFIELD, OPRESENT) 00004 ! ############################################################## 00005 ! 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 !! 00010 !! METHOD 00011 !! ------ 00012 !! 00013 ! 00014 !! EXTERNAL 00015 !! -------- 00016 !! 00017 !! IMPLICIT ARGUMENTS 00018 !! ------------------ 00019 !! 00020 !! REFERENCE 00021 !! --------- 00022 !! 00023 !! AUTHOR 00024 !! ------ 00025 !! 00026 !! S. Faroux Meteo-France 00027 !! 00028 !! MODIFICATION 00029 !! ------------ 00030 !! 00031 !! Original 16/11/10 00032 !! 00033 !---------------------------------------------------------------------------- 00034 ! 00035 !* 0. DECLARATION 00036 ! ----------- 00037 ! 00038 USE MODD_SURF_PAR, ONLY : XUNDEF 00039 ! 00040 USE MODD_PGDWORK, ONLY : CATYPE 00041 ! 00042 USE MODI_PGD_FIELD 00043 USE MODI_READ_FROM_SURFEX_FILE 00044 ! 00045 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00046 USE PARKIND1 ,ONLY : JPRB 00047 ! 00048 IMPLICIT NONE 00049 ! 00050 !* 0.1 Declaration of arguments 00051 ! ------------------------ 00052 ! 00053 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM 00054 CHARACTER(LEN=3), INTENT(IN) :: HATYPE 00055 CHARACTER(LEN=*), INTENT(IN) :: HNAME 00056 CHARACTER(LEN=3), INTENT(IN) :: HTYPE 00057 CHARACTER(LEN=28), INTENT(IN) :: HFNAM 00058 CHARACTER(LEN=6), INTENT(IN) :: HFTYP 00059 REAL, INTENT(IN) :: PUNIF 00060 REAL, DIMENSION(:), INTENT(OUT) :: PFIELD 00061 LOGICAL, INTENT(OUT) :: OPRESENT 00062 ! 00063 ! 00064 !* 0.2 Declaration of local variables 00065 ! ------------------------------ 00066 ! 00067 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00068 ! 00069 00070 !------------------------------------------------------------------------------- 00071 ! 00072 !* 1. Initializations 00073 ! --------------- 00074 ! 00075 IF (LHOOK) CALL DR_HOOK('INI_VAR_FROM_DATA_0D',0,ZHOOK_HANDLE) 00076 ! 00077 PFIELD(:)=XUNDEF 00078 OPRESENT=.FALSE. 00079 ! 00080 IF (HFTYP.EQ.'FA ' .OR. HFTYP.EQ.'ASCII ' .OR. HFTYP.EQ.'LFI ') THEN 00081 00082 OPRESENT=.TRUE. 00083 SELECT CASE (HTYPE) 00084 CASE ('LAN') 00085 CALL READ_FROM_SURFEX_FILE(HFTYP,HFNAM,'SURF ',' ',PFIELD) 00086 CASE ('TWN') 00087 CALL READ_FROM_SURFEX_FILE(HFTYP,HFNAM,'TOWN ',' ',PFIELD) 00088 CASE ('NAT') 00089 CALL READ_FROM_SURFEX_FILE(HFTYP,HFNAM,'NATURE',' ',PFIELD) 00090 CASE ('SEA') 00091 CALL READ_FROM_SURFEX_FILE(HFTYP,HFNAM,'SEA ',' ',PFIELD) 00092 CASE ('WAT') 00093 CALL READ_FROM_SURFEX_FILE(HFTYP,HFNAM,'WATER ',' ',PFIELD) 00094 END SELECT 00095 00096 ELSE 00097 00098 CATYPE = HATYPE 00099 CALL PGD_FIELD(HPROGRAM,HNAME,HTYPE,HFNAM,HFTYP,PUNIF,PFIELD(:),OPRESENT=OPRESENT) 00100 00101 ENDIF 00102 ! 00103 IF (LHOOK) CALL DR_HOOK('INI_VAR_FROM_DATA_0D',1,ZHOOK_HANDLE) 00104 ! 00105 !------------------------------------------------------------------------------- 00106 ! 00107 END SUBROUTINE INI_VAR_FROM_DATA_0D 00108