Newer
Older
!SURFEX_LIC Copyright 1994-2014 Meteo-France
!SURFEX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
!SURFEX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
!SURFEX_LIC for details. version 1.
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
! #########
SUBROUTINE WRITE_LCOVER(HPROGRAM,OCOVER)
! ################################
!
!!**** *READ_LCOVER* - routine to write a file for
!! physiographic data file of model _n
!!
!! PURPOSE
!! -------
!! The purpose of this routine is to write the list of covers to a file in parallel using MPI
!!
!!
!!** METHOD
!! ------
!!
!! EXTERNAL
!! --------
!!
!!
!!
!! IMPLICIT ARGUMENTS
!! ------------------
!!
!! REFERENCE
!! ---------
!!
!!
!! AUTHOR
!! ------
!! M. Moge *LA - CNRS*
!!
!! MODIFICATIONS
!! -------------
!!
!-------------------------------------------------------------------------------
!
!* 0. DECLARATIONS
! ------------
!
USE MODD_DATA_COVER_PAR, ONLY : JPCOVER
!USE MODD_WATFLUX_n, ONLY : LCOVER
!
USE MODI_WRITE_SURF
!
USE YOMHOOK ,ONLY : LHOOK, DR_HOOK
USE PARKIND1 ,ONLY : JPRB
!
IMPLICIT NONE
!
#ifndef NOMPI
INCLUDE "mpif.h"
#endif
!
!* 0.1 Declarations of arguments
! -------------------------
!
CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! calling program
LOGICAL, DIMENSION(JPCOVER) :: OCOVER ! list of covers
!
!* 0.2 Declarations of local variables
! -------------------------------
!
INTEGER :: IRESP ! Error code after reading
CHARACTER(LEN=12) :: YRECFM ! Name of the article to be read
CHARACTER(LEN=100):: YCOMMENT ! Comment string
LOGICAL, DIMENSION(JPCOVER) :: GCOVER ! tmp list of covers
REAL(KIND=JPRB) :: ZHOOK_HANDLE
INTEGER :: IINFO
!-------------------------------------------------------------------------------
!
!
!* ascendant compatibility
IF (LHOOK) CALL DR_HOOK('WRITE_LCOVER',0,ZHOOK_HANDLE)
#ifndef NOMPI
CALL MPI_ALLREDUCE(OCOVER, GCOVER, SIZE(OCOVER),MPI_LOGICAL, MPI_LOR, MPI_COMM_WORLD, IINFO)
#endif
OCOVER(:)=GCOVER(:)
YRECFM='COVER_LIST'
YCOMMENT='(LOGICAL LIST)'
CALL WRITE_SURF(HPROGRAM,YRECFM,OCOVER(:),IRESP,HCOMMENT=YCOMMENT,HDIR='-')
!
IF (LHOOK) CALL DR_HOOK('WRITE_LCOVER',1,ZHOOK_HANDLE)
!
!-------------------------------------------------------------------------------
!
END SUBROUTINE WRITE_LCOVER