Oasis3 4.0.2
mod_comclim.F90
Go to the documentation of this file.
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 
 All Data Structures Namespaces Files Functions Variables Defines