SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE CLOSE_FILEOUT_OL 00003 ! ####################################################### 00004 !!**** *CLOSE_FILEOUT_OL* - closes netcdf files writen by surface 00005 !! 00006 !! PURPOSE 00007 !! ------- 00008 !! 00009 !!** METHOD 00010 !! ------ 00011 !! 00012 !! EXTERNAL 00013 !! -------- 00014 !! 00015 !! 00016 !! IMPLICIT ARGUMENTS 00017 !! ------------------ 00018 !! 00019 !! REFERENCE 00020 !! --------- 00021 !! 00022 !! 00023 !! AUTHOR 00024 !! ------ 00025 !! S. Faroux *Meteo France* 00026 !! 00027 !! MODIFICATIONS 00028 !! ------------- 00029 !! Original 06/2010 00030 !------------------------------------------------------------------------------- 00031 ! 00032 USE MODD_SURFEX_MPI, ONLY : NRANK, NPIO 00033 ! 00034 USE MODD_OL_FILEID, ONLY: XID_SURF, XID_NATURE, XID_WATER, XID_SEA, XID_TOWN 00035 ! 00036 !* 0. DECLARATIONS 00037 ! ------------ 00038 ! 00039 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00040 USE PARKIND1 ,ONLY : JPRB 00041 ! 00042 IMPLICIT NONE 00043 INCLUDE "netcdf.inc" 00044 00045 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00046 00047 IF (LHOOK) CALL DR_HOOK('CLOSE_FILEOUT_OL',0,ZHOOK_HANDLE) 00048 ! 00049 IF (NRANK==NPIO) THEN 00050 !$OMP SINGLE 00051 IF (ASSOCIATED(XID_SURF)) CALL CLOSE_EACH_FILE(XID_SURF) 00052 IF (ASSOCIATED(XID_NATURE)) CALL CLOSE_EACH_FILE(XID_NATURE) 00053 IF (ASSOCIATED(XID_SEA)) CALL CLOSE_EACH_FILE(XID_SEA) 00054 IF (ASSOCIATED(XID_WATER)) CALL CLOSE_EACH_FILE(XID_WATER) 00055 IF (ASSOCIATED(XID_TOWN)) CALL CLOSE_EACH_FILE(XID_TOWN) 00056 !$OMP END SINGLE 00057 ENDIF 00058 ! 00059 IF (LHOOK) CALL DR_HOOK('CLOSE_FILEOUT_OL',1,ZHOOK_HANDLE) 00060 CONTAINS 00061 00062 !----------------------------------------------- 00063 00064 SUBROUTINE CLOSE_EACH_FILE(NVAR) 00065 00066 IMPLICIT NONE 00067 00068 INTEGER,DIMENSION(:),INTENT(IN)::NVAR 00069 INTEGER::JRET,JJ 00070 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00071 00072 IF (LHOOK) CALL DR_HOOK('CLOSE_EACH_FILE',0,ZHOOK_HANDLE) 00073 JRET=NF_CLOSE(NVAR(1)) 00074 DO JJ=2,SIZE(NVAR) 00075 IF (NVAR(JJ).NE.NVAR(JJ-1)) THEN 00076 JRET=NF_CLOSE(NVAR(JJ)) 00077 ENDIF 00078 ENDDO 00079 IF (LHOOK) CALL DR_HOOK('CLOSE_EACH_FILE',1,ZHOOK_HANDLE) 00080 00081 END SUBROUTINE CLOSE_EACH_FILE 00082 00083 !----------------------------------------------- 00084 00085 END SUBROUTINE CLOSE_FILEOUT_OL