source: LMDZ6/branches/Optimisation_LMDZ/libf/phylmd/rrtm/yoewcou.F90 @ 3758

Last change on this file since 3758 was 2010, checked in by Laurent Fairhead, 11 years ago

Modifications pour OpenMP


OpenMP modifications

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
File size: 4.7 KB
Line 
1MODULE YOEWCOU
2
3USE PARKIND1  ,ONLY : JPIM     ,JPRB
4
5IMPLICIT NONE
6
7SAVE
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
74INTEGER(KIND=JPIM) :: NLONW
75INTEGER(KIND=JPIM) :: NLATW
76INTEGER(KIND=JPIM) :: NLON1W
77INTEGER(KIND=JPIM) :: NLAT1W
78INTEGER(KIND=JPIM) :: NNORXW
79INTEGER(KIND=JPIM) :: NDURAT
80INTEGER(KIND=JPIM) :: NSTPW
81INTEGER(KIND=JPIM) :: NRESUM
82
83REAL(KIND=JPRB) :: RSOUTW
84REAL(KIND=JPRB) :: RNORTW
85REAL(KIND=JPRB) :: RDEGREW
86
87LOGICAL :: LWCOU
88LOGICAL :: LWCOU2W
89LOGICAL :: LWCOUNORMS
90CHARACTER :: CBEGDAT*12
91
92INTEGER(KIND=JPIM), ALLOCATABLE :: MASK_WAVE_IN(:)
93INTEGER(KIND=JPIM), ALLOCATABLE :: MASK_WAVE_OUT(:,:)
94
95LOGICAL :: LWVIN_MASK_NOT_SET
96LOGICAL :: LWVIN_UNINITIALISED
97
98INTEGER(KIND=JPIM) :: MWVIN_SENDTOT
99INTEGER(KIND=JPIM) :: MWVIN_RECVTOT
100
101INTEGER(KIND=JPIM),ALLOCATABLE :: MWVIN_SENDCNT(:)
102INTEGER(KIND=JPIM),ALLOCATABLE :: MWVIN_RECVCNT(:)
103
104INTEGER(KIND=JPIM),ALLOCATABLE :: MWVIN_SENDOFF(:)
105INTEGER(KIND=JPIM),ALLOCATABLE :: MWVIN_RECVOFF(:)
106
107INTEGER(KIND=JPIM),ALLOCATABLE :: MWVIN_SENDBUF(:)
108INTEGER(KIND=JPIM),ALLOCATABLE :: MWVIN_RECVBUF(:)
109
110INTEGER(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)
116END MODULE YOEWCOU
Note: See TracBrowser for help on using the repository browser.