Oasis3 4.0.2
|
00001 MODULE mod_comclim 00002 ! 00003 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00004 ! 00005 !* =comclim.h= CLIM 1.1 internal include file 00006 ! Coupling Library for Interfacing Models 00007 ! 16-11-09 Version 3.3 Author: Silvia Mocavero (CMCC) 00008 ! CMCC Parallelization 00009 ! 00010 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - 00011 #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) 00012 USE mod_kinds_oasis 00013 USE mod_clim 00014 ! 00015 !-----Unit number for trace file 00016 ! 00017 INTEGER(kind=ip_intwp_p) :: nulprt 00018 ! 00019 !-----Models descriptors 00020 ! 00021 ! ncplprocs: total number of processes involved in the coupling 00022 ! counting oasis process (1) 00023 INTEGER(kind=ip_intwp_p) :: ncplprocs, mynum, mytid 00024 INTEGER(kind=ip_intwp_p), DIMENSION(:), ALLOCATABLE :: modtid 00025 #if defined use_oasis_para || defined use_oasis_cmcc_para 00026 INTEGER(kind=ip_intwp_p) :: ig_nbr_oasis, coupler_rank, coupler_comm, coupler_size 00027 #if defined use_oasis_cmcc_para 00028 !* CMCC – Parameters related to fields dimension calculation 00029 INTEGER(kind=ip_intwp_p), DIMENSION(:), ALLOCATABLE :: sco_ig_nbrecv 00030 INTEGER(kind=ip_intwp_p), DIMENSION(:), ALLOCATABLE :: sco_ig_nbsend 00031 #endif 00032 #endif 00033 ! INTEGER*4 :: mynummod 00034 ! 00035 !-----Minimum exchange frequency, total time of the simulation, total 00036 ! number of fields exchanged in the simulation and local communicator of 00037 ! each component. 00038 ! 00039 INTEGER(kind=ip_intwp_p) :: ig_frqmin, ig_ntime, ig_clim_nfield, ig_local_comm 00040 ! 00041 !-----Ports descriptors 00042 ! 00043 INTEGER(kind=ip_intwp_p) :: nports 00044 INTEGER(kind=ip_intwp_p), DIMENSION(:,:), ALLOCATABLE :: myport, irport 00045 INTEGER(kind=ip_intwp_p), DIMENSION(:,:), ALLOCATABLE :: mydist, irdist 00046 ! 00047 ! 00048 !-----Links descriptors 00049 ! 00050 INTEGER(kind=ip_intwp_p) :: nlinks 00051 INTEGER(kind=ip_intwp_p), DIMENSION(:,:), ALLOCATABLE :: mylink 00052 ! 00053 !-----Data encoding 00054 ! 00055 INTEGER(kind=ip_intwp_p) :: mycode 00056 INTEGER(kind=ip_intwp_p), DIMENSION(:), ALLOCATABLE :: ncode 00057 ! 00058 !-----Inquiry descriptors 00059 ! 00060 INTEGER(kind=ip_intwp_p) :: nbsend, nbrecv 00061 ! 00062 !-----Time out stuff 00063 ! 00064 INTEGER(kind=ip_intwp_p) :: ntiret, ntiogp, ntiout 00065 ! 00066 !-----Timesteps descriptors 00067 ! 00068 INTEGER(kind=ip_intwp_p) :: mystep, mystdt, myfcpl 00069 INTEGER(kind=ip_intwp_p), DIMENSION(:), ALLOCATABLE :: ig_nstep 00070 INTEGER(kind=ip_intwp_p), DIMENSION(:), ALLOCATABLE :: nstdt 00071 INTEGER(kind=ip_intwp_p), DIMENSION(:), ALLOCATABLE :: nfcpl 00072 ! 00073 !-----Character strings 00074 ! 00075 CHARACTER*8 :: cgroup 00076 CHARACTER*13 :: cnaprt 00077 CHARACTER*32, DIMENSION(:), ALLOCATABLE :: cports, clrport 00078 CHARACTER*32 :: cmynam 00079 CHARACTER*32, DIMENSION(:), ALLOCATABLE :: cnames 00080 CHARACTER*4 :: ctype 00081 ! 00082 !-----Packing area for Export and Import 00083 ! 00084 REAL(kind=ip_realwp_p), DIMENSION(:), ALLOCATABLE :: pkwork 00085 ! 00086 ! 00087 !-----CLIM/MPI2 specific variable 00088 !-----mpi_rank : Rank of process in MPI communicator 00089 !-----mpi_size : Size of communicator 00090 !-----mpi_err : Error code of MPI calls 00091 !-----mpi_comm : Communicator handle 00092 00093 INTEGER(kind=ip_intwp_p) :: mpi_rank, mpi_size, mpi_err, mpi_comm 00094 00095 ! 00096 !-----Buffer for MPI_BSend 00097 ! 00098 REAL(kind=ip_double_p), DIMENSION(:), ALLOCATABLE :: dg_bufsend 00099 ! 00100 ! 00101 #endif 00102 END MODULE mod_comclim 00103 00104