|
DOUG 0.2
|
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
1.7.3-20110217