1 !SURFEX_LIC Copyright 1994-2014 Meteo-France
2 !SURFEX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SURFEX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SURFEX_LIC for details. version 1.
5 SUBROUTINE READ_FROM_SURFEX_FILE(HFTYP,HFNAM,HMASK,HSCHEME,PFIELD,HNAM)
7 USE MODI_INIT_IO_SURF_n
12 USE MODI_SET_SURFEX_FILE_NAME_ASC
15 USE MODI_SET_SURFEX_FILE_NAME_FA
18 USE MODI_SET_SURFEX_FILE_NAME_LFI
21 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK
22 USE PARKIND1 ,ONLY : JPRB
26 CHARACTER(LEN=6), INTENT(IN) :: HFTYP
27 CHARACTER(LEN=28), INTENT(IN) :: HFNAM
28 CHARACTER(LEN=6), INTENT(IN) :: HMASK
29 CHARACTER(LEN=6), INTENT(IN) :: HSCHEME
30 REAL, DIMENSION(:), INTENT(OUT) :: PFIELD
31 CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: HNAM
33 CHARACTER(LEN=28) :: HNAME
34 CHARACTER(LEN=12) :: YRECFM
37 REAL(KIND=JPRB) :: ZHOOK_HANDLE
39 IF (LHOOK) CALL DR_HOOK('READ_FROM_SURFEX_FILE',0,ZHOOK_HANDLE)
41 HNAME=ADJUSTL(ADJUSTR(HFNAM))
43 IF (PRESENT(HNAM)) THEN
46 I0=INDEX(HNAME,'.',BACK=.TRUE.)
50 IF (HFTYP=='ASCII ') THEN
52 CALL SET_SURFEX_FILE_NAME_ASC(HNAME_IN=HNAME)
54 ELSEIF (HFTYP=='FA ') THEN
56 CALL SET_SURFEX_FILE_NAME_FA(HNAME_IN=HNAME)
58 ELSEIF (HFTYP=='LFI ') THEN
60 CALL SET_SURFEX_FILE_NAME_LFI(HNAME_IN=HNAME)
64 CALL INIT_IO_SURF_n(HFTYP,HMASK,HSCHEME,'READ ')
65 CALL READ_SURF(HFTYP,YRECFM,PFIELD,IRESP)
66 CALL END_IO_SURF_n(HFTYP)
68 IF (LHOOK) CALL DR_HOOK('READ_FROM_SURFEX_FILE',1,ZHOOK_HANDLE)
70 END SUBROUTINE READ_FROM_SURFEX_FILE