SURFEX v7.3
General documentation of Surfex
|
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