SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/OFFLIN/open_filein_ol.F90
Go to the documentation of this file.
00001 !     ######
00002       SUBROUTINE OPEN_FILEIN_OL
00003 !     #######################################################
00004 !!****  *OPEN_FILEIN_OL* - 
00005 
00006 USE MODD_SURFEX_MPI, ONLY : NRANK, NPIO
00007 !
00008 USE MODD_OL_FILEID, ONLY : XNETCDF_FILENAME_IN, XID_IN, &
00009                             XVAR_TO_FILEIN, XID_VARIN 
00010 !
00011 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00012 USE PARKIND1  ,ONLY : JPRB
00013 !
00014 IMPLICIT NONE
00015 INCLUDE "netcdf.inc"
00016 
00017 INTEGER, DIMENSION(:), ALLOCATABLE :: ITEMP
00018 LOGICAL :: LLEXIST
00019 INTEGER :: JFILE,IFILE_ID
00020 INTEGER :: JRET, INB
00021 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00022 
00023 !******************************************
00024 
00025 IF (LHOOK) CALL DR_HOOK('OPEN_FILEIN_OL',0,ZHOOK_HANDLE)
00026 IF (NRANK==NPIO) THEN
00027   !
00028 !$OMP SINGLE 
00029   !
00030   INB=0
00031   ALLOCATE(ITEMP(SIZE(XNETCDF_FILENAME_IN)))
00032   ! 
00033   DO JFILE=1,SIZE(XNETCDF_FILENAME_IN)
00034     INQUIRE(FILE=XNETCDF_FILENAME_IN(JFILE),EXIST=LLEXIST)
00035     IF (LLEXIST) THEN
00036       JRET=NF_OPEN(XNETCDF_FILENAME_IN(JFILE),NF_NOWRITE,IFILE_ID)
00037       IF (JRET.EQ.NF_NOERR) THEN
00038         INB=INB+1
00039         ITEMP(INB)=IFILE_ID
00040       ENDIF
00041     ENDIF
00042   ENDDO
00043   !
00044   ALLOCATE(XID_IN(INB))
00045   XID_IN=ITEMP(1:INB)
00046   !
00047   ALLOCATE(XVAR_TO_FILEIN(0))
00048   ALLOCATE(XID_VARIN(0))
00049   !
00050 !$OMP END SINGLE
00051   !
00052 ENDIF
00053 IF (LHOOK) CALL DR_HOOK('OPEN_FILEIN_OL',1,ZHOOK_HANDLE)
00054 
00055 !******************************************
00056 
00057 END SUBROUTINE OPEN_FILEIN_OL