SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/OFFLIN/close_fileout_ol.F90
Go to the documentation of this file.
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