Skip to content
Snippets Groups Projects
parameters.f90 2.3 KiB
Newer Older
!=== COPYRIGHT AND LICENSE STATEMENT ===
!
!  This file is part of the TensorProductMultigrid code.
!  
!  (c) The copyright relating to this work is owned jointly by the
!  Crown, Met Office and NERC [2014]. However, it has been created
!  with the help of the GungHo Consortium, whose members are identified
!  at https://puma.nerc.ac.uk/trac/GungHo/wiki .
!  
!  Main Developer: Eike Mueller
!  
!  TensorProductMultigrid is free software: you can redistribute it and/or
!  modify it under the terms of the GNU Lesser General Public License as
!  published by the Free Software Foundation, either version 3 of the
!  License, or (at your option) any later version.
!  
!  TensorProductMultigrid is distributed in the hope that it will be useful,
!  but WITHOUT ANY WARRANTY; without even the implied warranty of
!  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
!  GNU Lesser General Public License for more details.
!  
!  You should have received a copy of the GNU Lesser General Public License
!  along with TensorProductMultigrid (see files COPYING and COPYING.LESSER).
!  If not, see <http://www.gnu.org/licenses/>.
!
!=== COPYRIGHT AND LICENSE STATEMENT ===


!==================================================================
!
!  General parameters
!
!    Eike Mueller, University of Bath, Feb 2012
!
!==================================================================

module parameters

  implicit none

! floating point precision. Always use rl_kind in code
  integer, parameter :: single_precision=4        ! single precision
  integer, parameter :: double_precision=8        ! double precision
  integer, parameter :: rl=double_precision       ! global switch between
                                                  ! single/double precision
! NOTE: As we still use BLAS subroutines, these need to be
!       replaced as well when switching between double and
!       single precision!
  real(kind=rl), parameter :: Tolerance = 1.0e-15

! Output units
  integer, parameter :: STDOUT = 6
  integer, parameter :: STDERR = 0

! Numerical constants
  real(kind=rl), parameter :: two_pi = 6.2831853071795862_rl

! Use Original (K,J,I)  or Transposed (I,J,K) array
  logical :: LUseO = .false.
  logical :: LUseT = .true. ! .false. ! .true.
! Remove mean to B = Right Hand side 
  logical :: LMean = .false.