DOUG 0.2

parameters.F90

Go to the documentation of this file.
00001 ! DOUG - Domain decomposition On Unstructured Grids
00002 ! Copyright (C) 1998-2006 Faculty of Computer Science, University of Tartu and
00003 ! Department of Mathematics, University of Bath
00004 !
00005 ! This library is free software; you can redistribute it and/or
00006 ! modify it under the terms of the GNU Lesser General Public
00007 ! License as published by the Free Software Foundation; either
00008 ! version 2.1 of the License, or (at your option) any later version.
00009 !
00010 ! This library is distributed in the hope that it will be useful,
00011 ! but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 ! Lesser General Public License for more details.
00014 !
00015 ! You should have received a copy of the GNU Lesser General Public
00016 ! License along with this library; if not, write to the Free Software
00017 ! Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00018 ! or contact the authors (University of Tartu, Faculty of Computer Science, Chair
00019 ! of Distributed Systems, Liivi 2, 50409 Tartu, Estonia, http://dougdevel.org,
00020 ! mailto:info(at)dougdevel.org)
00021 
00022 !------------------------------------
00023 ! module : parameters
00024 !          globaly defined: 
00025 !            control, MPI & some others 
00026 !          parameters
00027 !------------------------------------
00028 module parameters
00029 
00030   use RealKind
00031 
00032   implicit none 
00033 
00034 #include <doug_config.h>
00035 
00036   ! DOUG major and minor versions.
00037   ! PACKAGE_VERSION_[MAJOR,MINOR] are defined via preprocessor (autoconf)
00038   integer :: D_VMAJOR = PACKAGE_VERSION_MAJOR
00039   integer :: D_VMINOR = PACKAGE_VERSION_MINOR
00040   
00041   ! DOUG error stream.
00042   integer, parameter :: D_ERROR_STREAM = 0
00043 
00044   ! MPI:
00045   ! Just out of convenience
00046   integer, parameter :: D_MASTER = 0
00047   ! Minimun allowed number of processors to run on 
00048   integer :: D_MIN_PROCS_ALLOWED = 1
00049   ! Maximun number of processors
00050   integer :: D_MAX_PROCS_ALLOWED = 128
00051   ! MPI tags:
00052   integer :: D_TAG_MESH_INFO         = 101
00053   integer :: D_TAG_NELEMINTF_SEND    = 301
00054   integer :: D_TAG_ELEM_INTERFELEMS  = 401
00055   integer :: D_TAG_ELEM_INTERF_EMAP  = 402
00056   
00057   integer :: D_TAG_ELEMMTXS_ELEMS    = 501 ! 501..510 are reserved
00058   integer :: D_TAG_ELEMMTXS_ELEMRHS  = 511 ! 511..520 are reserved
00059   integer :: D_TAG_ELEMMTXS_ELEMIDXS = 521 ! 521..530 are reserved
00060 
00061   integer :: D_TAG_FREE_INTERFFREE   = 601
00062 
00063   integer :: D_TAG_ASSEMBLED_VALS    = 701
00064   integer :: D_TAG_ASSEMBLED_IDXS_I  = 702
00065   integer :: D_TAG_ASSEMBLED_IDXS_J  = 703
00066 
00067   integer :: TAG_EXCHANGE_STRONG  = 710
00068   integer :: TAG_CREATE_PROLONG  = 720
00069 
00070 
00071   ! DOUG initialization
00072   integer, parameter :: D_INIT_PARALLEL = 1
00073   integer, parameter :: D_INIT_SERIAL   = 2
00074 
00075   ! Prallel execution control parameters
00076   integer, parameter :: D_FINALIZE = 0
00077   integer, parameter :: D_PROCEED  = 1
00078 
00079 
00080   ! Useful math constants
00081   real(kind=rk), parameter :: D_PI25DT = 3.141592653589793238462643
00082   real(kind=rk), parameter :: D_PI2    = D_PI25DT / 2.0_rk
00083 
00084 
00085   ! Plotting with PlPlot control parameters
00086   integer, parameter :: D_PLPLOT_INIT = 1 
00087   integer, parameter :: D_PLPLOT_CONT = 2 
00088   integer, parameter :: D_PLPLOT_END  = 3
00089   !
00090   integer, parameter :: D_PLOT_YES    = 1
00091 
00092   ! Control parameters:
00093   !
00094   ! Solution method
00095   integer, parameter :: DCTL_SOLVE_CG  = 1
00096   integer, parameter :: DCTL_SOLVE_PCG = 2
00097 
00098   ! For aggregation:
00099   integer,parameter :: D_MAXINT=2147483647 ! Todo: is there a built-in
00100                                          !   constant in F95?
00101   integer,parameter :: D_AGGREGATED=D_MAXINT, 
00102                        D_PENDING=D_MAXINT/2
00103 
00104 end module parameters