SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/read_from_surfex_file.F90
Go to the documentation of this file.
00001 SUBROUTINE READ_FROM_SURFEX_FILE(HFTYP,HFNAM,HMASK,HSCHEME,PFIELD,HNAM)
00002 !
00003 USE MODI_INIT_IO_SURF_n
00004 USE MODI_END_IO_SURF_n
00005 USE MODI_READ_SURF
00006 !
00007 #ifdef ASC
00008 USE MODI_SET_SURFEX_FILE_NAME_ASC
00009 #endif
00010 #ifdef FA
00011 USE MODI_SET_SURFEX_FILE_NAME_FA
00012 #endif
00013 #ifdef LFI
00014 USE MODI_SET_SURFEX_FILE_NAME_LFI
00015 #endif
00016 !
00017 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00018 USE PARKIND1  ,ONLY : JPRB
00019 !
00020 IMPLICIT NONE
00021 !
00022  CHARACTER(LEN=6), INTENT(IN) :: HFTYP
00023  CHARACTER(LEN=28), INTENT(IN) :: HFNAM
00024  CHARACTER(LEN=6), INTENT(IN) :: HMASK
00025  CHARACTER(LEN=6), INTENT(IN) :: HSCHEME
00026 REAL, DIMENSION(:), INTENT(OUT) :: PFIELD
00027  CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: HNAM
00028 !
00029  CHARACTER(LEN=28)     :: HNAME
00030  CHARACTER(LEN=12)     :: YRECFM
00031 INTEGER               :: IRESP, I0
00032 !
00033 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00034 
00035 IF (LHOOK) CALL DR_HOOK('READ_FROM_SURFEX_FILE',0,ZHOOK_HANDLE)
00036 
00037 HNAME=ADJUSTL(ADJUSTR(HFNAM))
00038 
00039 IF (PRESENT(HNAM)) THEN
00040   YRECFM=HNAM
00041 ELSE
00042   I0=INDEX(HNAME,'.',BACK=.TRUE.)
00043   YRECFM=HNAME(1:I0-1)
00044 ENDIF
00045 
00046 IF (HFTYP=='ASCII ') THEN
00047 #ifdef ASC
00048   CALL SET_SURFEX_FILE_NAME_ASC(HNAME_IN=HNAME)
00049 #endif
00050 ELSEIF (HFTYP=='FA    ') THEN
00051 #ifdef FA
00052   CALL SET_SURFEX_FILE_NAME_FA(HNAME_IN=HNAME)
00053 #endif
00054 ELSEIF (HFTYP=='LFI   ') THEN
00055 #ifdef LFI
00056   CALL SET_SURFEX_FILE_NAME_LFI(HNAME_IN=HNAME)
00057 #endif
00058 ENDIF
00059 
00060  CALL INIT_IO_SURF_n(HFTYP,HMASK,HSCHEME,'READ ')
00061  CALL READ_SURF(HFTYP,YRECFM,PFIELD,IRESP)
00062  CALL END_IO_SURF_n(HFTYP)
00063 
00064 IF (LHOOK) CALL DR_HOOK('READ_FROM_SURFEX_FILE',1,ZHOOK_HANDLE)
00065 
00066 END SUBROUTINE READ_FROM_SURFEX_FILE