1 | MODULE mod_comclim |
---|
2 | ! |
---|
3 | ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
---|
4 | ! |
---|
5 | !* =comclim.h= CLIM 1.1 internal include file |
---|
6 | ! Coupling Library for Interfacing Models |
---|
7 | ! |
---|
8 | ! - - - - - - - - - - - - - - - - - - - - - - - - - - - |
---|
9 | #if defined use_comm_MPI1 || defined use_comm_MPI2 || !defined use_comm_MPI1 && !defined use_comm_MPI2 && !defined use_comm_SIPC && !defined use_comm_GMEM && !defined use_comm_PIPE && !defined use_comm_NONE |
---|
10 | USE mod_kinds_oasis |
---|
11 | USE mod_clim |
---|
12 | ! |
---|
13 | !-----Unit number for trace file |
---|
14 | ! |
---|
15 | INTEGER(kind=ip_intwp_p) :: nulprt |
---|
16 | ! |
---|
17 | !-----Models descriptors |
---|
18 | ! |
---|
19 | ! ncplprocs: total number of processes involved in the coupling |
---|
20 | ! counting oasis process (1) |
---|
21 | INTEGER(kind=ip_intwp_p) :: ncplprocs, mynum, mytid |
---|
22 | INTEGER(kind=ip_intwp_p), DIMENSION(:), ALLOCATABLE :: modtid |
---|
23 | ! INTEGER*4 :: mynummod |
---|
24 | ! |
---|
25 | !-----Minimum exchange frequency, total time of the simulation, total |
---|
26 | ! number of fields exchanged in the simulation and local communicator of |
---|
27 | ! each component. |
---|
28 | ! |
---|
29 | INTEGER(kind=ip_intwp_p) :: ig_frqmin, ig_ntime, ig_clim_nfield, ig_local_comm |
---|
30 | ! |
---|
31 | !-----Ports descriptors |
---|
32 | ! |
---|
33 | INTEGER(kind=ip_intwp_p) :: nports |
---|
34 | INTEGER(kind=ip_intwp_p), DIMENSION(:,:), ALLOCATABLE :: myport, irport |
---|
35 | INTEGER(kind=ip_intwp_p), DIMENSION(:,:), ALLOCATABLE :: mydist, irdist |
---|
36 | ! |
---|
37 | ! |
---|
38 | !-----Links descriptors |
---|
39 | ! |
---|
40 | INTEGER(kind=ip_intwp_p) :: nlinks |
---|
41 | INTEGER(kind=ip_intwp_p), DIMENSION(:,:), ALLOCATABLE :: mylink |
---|
42 | ! |
---|
43 | !-----Data encoding |
---|
44 | ! |
---|
45 | INTEGER(kind=ip_intwp_p) :: mycode |
---|
46 | INTEGER(kind=ip_intwp_p), DIMENSION(:), ALLOCATABLE :: ncode |
---|
47 | ! |
---|
48 | !-----Inquiry descriptors |
---|
49 | ! |
---|
50 | INTEGER(kind=ip_intwp_p) :: nbsend, nbrecv |
---|
51 | ! |
---|
52 | !-----Time out stuff |
---|
53 | ! |
---|
54 | INTEGER(kind=ip_intwp_p) :: ntiret, ntiogp, ntiout, nexit |
---|
55 | ! |
---|
56 | !-----Timesteps descriptors |
---|
57 | ! |
---|
58 | INTEGER(kind=ip_intwp_p) :: mystep, mystdt, myfcpl |
---|
59 | INTEGER(kind=ip_intwp_p), DIMENSION(:), ALLOCATABLE :: ig_nstep |
---|
60 | INTEGER(kind=ip_intwp_p), DIMENSION(:), ALLOCATABLE :: nstdt |
---|
61 | INTEGER(kind=ip_intwp_p), DIMENSION(:), ALLOCATABLE :: nfcpl |
---|
62 | ! |
---|
63 | !-----Delta time between models |
---|
64 | ! |
---|
65 | REAL(kind=ip_realwp_p), DIMENSION(:), ALLOCATABLE :: delta |
---|
66 | REAL(kind=ip_realwp_p), DIMENSION(:), ALLOCATABLE :: delte |
---|
67 | ! |
---|
68 | !-----Character strings |
---|
69 | ! |
---|
70 | CHARACTER*8 :: cgroup |
---|
71 | CHARACTER*12 :: cnaprt |
---|
72 | CHARACTER*32, DIMENSION(:), ALLOCATABLE :: cports, clrport |
---|
73 | CHARACTER*32 :: cmynam |
---|
74 | CHARACTER*32, DIMENSION(:), ALLOCATABLE :: cnames |
---|
75 | CHARACTER*4 :: ctype |
---|
76 | ! |
---|
77 | !-----Packing area for Export and Import |
---|
78 | ! |
---|
79 | REAL(kind=ip_realwp_p), DIMENSION(:), ALLOCATABLE :: pkwork |
---|
80 | ! |
---|
81 | ! |
---|
82 | !-----CLIM/MPI2 specific variable |
---|
83 | !-----mpi_rank : Rank of process in MPI communicator |
---|
84 | !-----mpi_size : Size of communicator |
---|
85 | !-----mpi_err : Error code of MPI calls |
---|
86 | !-----mpi_comm : Communicator handle |
---|
87 | |
---|
88 | INTEGER(kind=ip_intwp_p) :: mpi_rank, mpi_size, mpi_err, mpi_comm |
---|
89 | |
---|
90 | ! |
---|
91 | !-----Buffer for MPI_BSend |
---|
92 | ! |
---|
93 | REAL(kind=ip_double_p), DIMENSION(:), ALLOCATABLE :: dg_bufsend |
---|
94 | ! |
---|
95 | ! |
---|
96 | #endif |
---|
97 | END MODULE mod_comclim |
---|
98 | |
---|
99 | |
---|