XBeach
C:/repositories/XBeach/trunk/src/xbeachlibrary/spaceparamsdef.F90
Go to the documentation of this file.
00001 module spaceparamsdef
00002    use mnemmodule
00003    implicit none
00004    save
00005    type spacepars
00006       include 'spacedecl.inc'
00007 #ifdef USEMPI
00008       !
00009       ! administration of the lay-out of the distributed matrices
00010       ! In the following: p is the MPI-process number: p = 0 .. numprocs-1
00011       ! The array indices start with 1, so, for example, is(2) describes
00012       ! the situation for process rank 1.
00013       ! a is the global matrix, b is a local matrix on process p.
00014       !
00015       ! is(:) and js(:) describe the location of the submatrix in process p:
00016       !    b(1,1) coincides with a(is(p+1),js(p+1))
00017       !
00018       ! lm(:) and ln(:) describe the extend of b:
00019       !    the dimensions of b on p are (lm(p+1),ln(p+1))
00020       !    b concides with
00021       !       a(is(p+1):is(p+1)+lm(p+1)-1,js(p+1):js(p+1)+ln(p+1)-1)
00022       !
00023       ! isleft(:), isright(:), istop(:), isbot(:) tell if
00024       !    matrix b respectively map from a:
00025       !    the first column
00026       !    the last  column
00027       !    the first row
00028       !    lhe last  row
00029       !
00030       ! the values are determined in subroutine space_distribute_space
00031       !
00032       integer, dimension(:), pointer  :: is      => NULL()
00033       integer, dimension(:), pointer  :: js      => NULL()
00034       integer, dimension(:), pointer  :: lm      => NULL()
00035       integer, dimension(:), pointer  :: ln      => NULL()
00036       logical, dimension(:), pointer  :: isleft  => NULL()
00037       logical, dimension(:), pointer  :: isright => NULL()
00038       logical, dimension(:), pointer  :: istop   => NULL()
00039       logical, dimension(:), pointer  :: isbot   => NULL()
00040 
00041       ! The following are determined in spaceparams, look there for a description
00042       integer, dimension(:), allocatable :: icgs(:)
00043       integer, dimension(:), allocatable :: icge(:)
00044       integer, dimension(:), allocatable :: jcgs(:)
00045       integer, dimension(:), allocatable :: jcge(:)
00046       integer, dimension(:), allocatable :: icls(:)
00047       integer, dimension(:), allocatable :: icle(:)
00048       integer, dimension(:), allocatable :: jcls(:)
00049       integer, dimension(:), allocatable :: jcle(:)
00050 
00051       logical, dimension(numvars) :: collected
00052       logical, dimension(numvars) :: precollected
00053 
00054 #endif
00055    end type spacepars
00056 
00057    integer, public :: imin_ee,imax_ee,jmin_ee,jmax_ee
00058    integer, public :: imin_uu,imax_uu,jmin_uu,jmax_uu
00059    integer, public :: imin_vv,imax_vv,jmin_vv,jmax_vv
00060    integer, public :: imin_zs,imax_zs,jmin_zs,jmax_zs
00061 end module spaceparamsdef
 All Classes Files Functions Variables Defines