SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/OFFLIN/open_file_lfi.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE OPEN_FILE_LFI(KUNIT,HFILE,HFORM,HACTION,HACCESS,HPOSITION,KRECL)
00003 !     #######################################################
00004 !
00005 !!****  *OPEN_FILE_LFI* - routine to open a file
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !!
00010 !!**  METHOD
00011 !!    ------
00012 !!
00013 !!    EXTERNAL
00014 !!    --------
00015 !!
00016 !!
00017 !!    IMPLICIT ARGUMENTS
00018 !!    ------------------
00019 !!
00020 !!    REFERENCE
00021 !!    ---------
00022 !!
00023 !!
00024 !!    AUTHOR
00025 !!    ------
00026 !!      V. Masson   *Meteo France*      
00027 !!
00028 !!    MODIFICATIONS
00029 !!    -------------
00030 !!      Original    01/2003 
00031 !-------------------------------------------------------------------------------
00032 !
00033 !*       0.    DECLARATIONS
00034 !              ------------
00035 !
00036 USE MODD_IO_SURF_LFI, ONLY : CLUOUT_LFI
00037 !
00038 !
00039 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00040 USE PARKIND1  ,ONLY : JPRB
00041 !
00042 USE MODI_ABOR1_SFX
00043 !
00044 USE MODI_GET_LUOUT
00045 IMPLICIT NONE
00046 !
00047 !*       0.1   Declarations of arguments
00048 !              -------------------------
00049 !
00050 INTEGER,           INTENT(OUT):: KUNIT    ! logical unit
00051  CHARACTER(LEN=28), INTENT(IN) :: HFILE    ! file to open
00052  CHARACTER(LEN=11), INTENT(IN) :: HFORM    ! type of file
00053  CHARACTER(LEN=9),  INTENT(IN) :: HACTION  ! action
00054  CHARACTER(LEN=6),  INTENT(IN) :: HACCESS  ! access type
00055  CHARACTER(LEN=6),  INTENT(IN) :: HPOSITION! position type
00056 INTEGER,           INTENT(IN) :: KRECL    ! record length
00057 !
00058 !*       0.2   Declarations of local variables
00059 !              -------------------------------
00060 !
00061 INTEGER :: ILUOUT
00062 INTEGER :: IRESP
00063 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00064 !-------------------------------------------------------------------------------
00065 !
00066 IF (LHOOK) CALL DR_HOOK('OPEN_FILE_LFI',0,ZHOOK_HANDLE)
00067  CALL FMATTR(HFILE,CLUOUT_LFI,KUNIT,IRESP)
00068 !
00069 IF (HFORM=='FORMATTED') THEN
00070   OPEN(UNIT=KUNIT,FILE=HFILE,ACTION=HACTION,   &
00071          FORM=HFORM, POSITION=HPOSITION, ERR=100 )  
00072 ELSE 
00073   IF (HACCESS=='DIRECT') THEN
00074     OPEN(UNIT=KUNIT,FILE=HFILE,ACTION=HACTION,                       &
00075                    FORM=HFORM,ACCESS=HACCESS,RECL=KRECL, ERR=100       )  
00076   ELSE
00077     OPEN(UNIT=KUNIT,FILE=HFILE,ACTION=HACTION, &
00078            FORM=HFORM, ERR=100           )  
00079   END IF
00080 END IF
00081 !
00082 IF (LHOOK) CALL DR_HOOK('OPEN_FILE_LFI',1,ZHOOK_HANDLE)
00083 RETURN
00084 100 CONTINUE
00085  CALL GET_LUOUT('LFI   ',ILUOUT)
00086 WRITE(ILUOUT,*) 'Error when opening file ',HFILE
00087  CALL ABOR1_SFX('OPEN_FILE_LFI: ERROR WHEN OPENING FILE '//HFILE)
00088 IF (LHOOK) CALL DR_HOOK('OPEN_FILE_LFI',1,ZHOOK_HANDLE)
00089 !-------------------------------------------------------------------------------
00090 !
00091 END SUBROUTINE OPEN_FILE_LFI