LMDZ
yoewcou.F90
Go to the documentation of this file.
1 MODULE yoewcou
2 
3 USE parkind1 ,ONLY : jpim ,jprb
4 
5 IMPLICIT NONE
6 
7 SAVE
8 
9 !* ** *YOEWCOU* - VARIABLES FOR COUPLING WITH THE WAVE MODEL
10 
11 ! P. VITERBO E.C.M.W.F. 07/10/88
12 ! P. VITERBO E.C.M.W.F. 03/02/92
13 ! J. DOYLE E.C.M.W.F. 21/11/96
14 ! J. BIDLOT E.C.M.W.F. 13/06/97
15 ! J. BIDLOT E.C.M.W.F. 11/08/98
16 ! G. MOZDZYNSKI E.C.M.W.F. 14/01/05
17 
18 ! NAME TYPE PURPOSE
19 ! ---- ---- -------
20 
21 ! *NLONW* INTEGER NUMBER OF POINTS IN A LATITUDE LINE IN
22 ! THE WAVE MODEL
23 ! *NLATW* INTEGER NUMBER OF LATITUDES IN THE WAVE MODEL.
24 ! *NLON1W* INTEGER *NLONW*
25 ! *NLAT1W* INTEGER TOTAL NUMBER OF LATITUDES WITH THE WAVE
26 ! MODEL RESOLUTION.
27 ! *NNORXW* INTEGER NUMBER OF EXTRA POINTS NORTHWARDS OF THE
28 ! NORTHERN BOUNDARY OF THE WAVE MODEL.
29 ! *CBEGDAT* CHARACTER INITIAL DATE OF FORECAST (YYYYMMDDHHmm)
30 ! *NDURAT* INTEGER DURATION (IN MINUTES) OF TOTAL WAVE INTEGRATION
31 ! (OR FORECAST TIME IN MINUTES).
32 ! *NSTPW* INTEGER FREQUENCY OF CALL TO THE WAVE MODEL.
33 ! *NRESUM* INTEGER TIME STEP OF A RESTART EVENT
34 ! *LWCOU* LOGICAL TRUE IF THE WAVE MODEL IS TO BE RUN.
35 ! *LWCOU2W* LOGICAL TRUE IF TWO-WAY INTERACTION WITH THE WAVE MODEL.
36 ! FALSE IF ONE-WAY INTERACTION WITH THE WAVE MODEL
37 ! *LWCOUNORMS* LOGICAL TRUE IF NORMS OF COUPLED FIELDS ARE REQUIRED
38 ! *RSOUTW* REAL SOUTH BOUNDARY OF THE WAVE MODEL.
39 ! *RNORTW* REAL NORTH BOUNDARY OF THE WAVE MODEL.
40 ! *RDEGREW* REAL RESOLUTION OF THE WAVE MODEL (DEGREES).
41 !
42 ! *MASK_WAVE_IN* INTEGER COMMS MASK FOR INPUT TO WAVE MODEL
43 ! *MASK_WAVE_OUT* INTEGER COMMS MASK FOR OUTPUT FROM WAVE MODEL
44 !
45 ! *LWVIN_MASK_NOT_SET* LOGICAL indicates whether mask_wave_in
46 ! has been updated on the first call to the
47 ! wave model
48 ! *LWVIN_UNINITIALISED* LOGICAL indicates whether the mwvin_* data
49 ! structures are initialised
50 ! *MWVIN_SENDCNT* INTEGER nproc sized array describing how many grid
51 ! points need to be sent (or copied) by the
52 ! local task to remote tasks (or this task)
53 ! *MWVIN_RECVCNT* INTEGER nproc sized array describing how many grid
54 ! points need to be received by the local task
55 ! from a remote task
56 ! *MWVIN_SENDTOT* INTEGER total number of grid points to be sent to
57 ! remote tasks
58 ! *MWVIN_RECVTOT* INTEGER total number of grid points to be received
59 ! from remote tasks
60 ! *MWVIN_SENDOFF* INTEGER nproc sized array containing offsets into
61 ! the MWVIN_SENDBUF and MWVIN_SENDIND arrays
62 ! *MWVIN_SENDBUF* INTEGER local indexes of data on remote tasks that
63 ! the local task needs
64 ! *MWVIN_SENDIND* INTEGER global indexes of data on remote tasks that
65 ! the local task needs
66 !
67 ! *MWVIN_RECVOFF* INTEGER nproc sized array containing offsets into
68 ! the MWVIN_RECVBUF array
69 ! *MWVIN_RECVBUF* INTEGER local indexes of data on the local task that
70 ! remote tasks need
71 !
72 
73 
74 INTEGER(KIND=JPIM) :: nlonw
75 INTEGER(KIND=JPIM) :: nlatw
76 INTEGER(KIND=JPIM) :: nlon1w
77 INTEGER(KIND=JPIM) :: nlat1w
78 INTEGER(KIND=JPIM) :: nnorxw
79 INTEGER(KIND=JPIM) :: ndurat
80 INTEGER(KIND=JPIM) :: nstpw
81 INTEGER(KIND=JPIM) :: nresum
82 
83 REAL(KIND=JPRB) :: rsoutw
84 REAL(KIND=JPRB) :: rnortw
85 REAL(KIND=JPRB) :: rdegrew
86 
87 LOGICAL :: lwcou
88 LOGICAL :: lwcou2w
89 LOGICAL :: lwcounorms
90 CHARACTER :: cbegdat*12
91 
92 INTEGER(KIND=JPIM), ALLOCATABLE :: mask_wave_in(:)
93 INTEGER(KIND=JPIM), ALLOCATABLE :: mask_wave_out(:,:)
94 
97 
98 INTEGER(KIND=JPIM) :: mwvin_sendtot
99 INTEGER(KIND=JPIM) :: mwvin_recvtot
100 
101 INTEGER(KIND=JPIM),ALLOCATABLE :: mwvin_sendcnt(:)
102 INTEGER(KIND=JPIM),ALLOCATABLE :: mwvin_recvcnt(:)
103 
104 INTEGER(KIND=JPIM),ALLOCATABLE :: mwvin_sendoff(:)
105 INTEGER(KIND=JPIM),ALLOCATABLE :: mwvin_recvoff(:)
106 
107 INTEGER(KIND=JPIM),ALLOCATABLE :: mwvin_sendbuf(:)
108 INTEGER(KIND=JPIM),ALLOCATABLE :: mwvin_recvbuf(:)
109 
110 INTEGER(KIND=JPIM),ALLOCATABLE :: mwvin_sendind(:)
111 
112 
113 ! ------------------------------------------------------------------
114 !$OMP THREADPRIVATE(cbegdat,lwcou,lwcou2w,lwcounorms,lwvin_mask_not_set,lwvin_uninitialised,mwvin_recvtot)
115 !$OMP THREADPRIVATE(mwvin_sendtot,ndurat,nlat1w,nlatw,nlon1w,nlonw,nnorxw,nresum,nstpw,rdegrew,rnortw,rsoutw)
116 END MODULE yoewcou
integer(kind=jpim), dimension(:), allocatable mwvin_sendcnt
Definition: yoewcou.F90:101
integer(kind=jpim), dimension(:), allocatable mask_wave_in
Definition: yoewcou.F90:92
integer(kind=jpim) nnorxw
Definition: yoewcou.F90:78
logical lwvin_uninitialised
Definition: yoewcou.F90:96
integer(kind=jpim) nresum
Definition: yoewcou.F90:81
integer(kind=jpim) nlonw
Definition: yoewcou.F90:74
integer(kind=jpim), dimension(:), allocatable mwvin_sendind
Definition: yoewcou.F90:110
integer(kind=jpim), dimension(:,:), allocatable mask_wave_out
Definition: yoewcou.F90:93
integer(kind=jpim) nlat1w
Definition: yoewcou.F90:77
real(kind=jprb) rsoutw
Definition: yoewcou.F90:83
integer(kind=jpim) nlatw
Definition: yoewcou.F90:75
integer, parameter jprb
Definition: parkind1.F90:31
integer(kind=jpim) nlon1w
Definition: yoewcou.F90:76
integer(kind=jpim) mwvin_recvtot
Definition: yoewcou.F90:99
integer(kind=jpim) ndurat
Definition: yoewcou.F90:79
logical lwvin_mask_not_set
Definition: yoewcou.F90:95
real(kind=jprb) rnortw
Definition: yoewcou.F90:84
integer(kind=jpim) nstpw
Definition: yoewcou.F90:80
real(kind=jprb) rdegrew
Definition: yoewcou.F90:85
logical lwcounorms
Definition: yoewcou.F90:89
integer(kind=jpim), dimension(:), allocatable mwvin_recvoff
Definition: yoewcou.F90:105
integer(kind=jpim), dimension(:), allocatable mwvin_recvbuf
Definition: yoewcou.F90:108
integer(kind=jpim), dimension(:), allocatable mwvin_sendoff
Definition: yoewcou.F90:104
integer, parameter jpim
Definition: parkind1.F90:13
character cbegdat
Definition: yoewcou.F90:90
integer(kind=jpim) mwvin_sendtot
Definition: yoewcou.F90:98
integer(kind=jpim), dimension(:), allocatable mwvin_sendbuf
Definition: yoewcou.F90:107
logical lwcou
Definition: yoewcou.F90:87
integer(kind=jpim), dimension(:), allocatable mwvin_recvcnt
Definition: yoewcou.F90:102
logical lwcou2w
Definition: yoewcou.F90:88