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 | |
---|
95 | LOGICAL :: LWVIN_MASK_NOT_SET |
---|
96 | LOGICAL :: LWVIN_UNINITIALISED |
---|
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 |
---|