Subversion Repositories slepc-dev

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

#
#  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#     SLEPc - Scalable Library for Eigenvalue Problem Computations
#     Copyright (c) 2002-2007, Universidad Politecnica de Valencia, Spain
#
#     This file is part of SLEPc. See the README file for conditions of use
#     and additional information.
#  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#

import os
import sys

def Load(petscdir):
  global ARCH,DIR,MAKE,SCALAR,PRECISION,MPIUNI,ISINSTALL,INSTALL_DIR
 
  if 'PETSC_ARCH' in os.environ:
    ISINSTALL = 0
    ARCH = os.environ['PETSC_ARCH']
    PETSCVARIABLES = os.sep.join([petscdir,ARCH,'conf','petscvariables'])
  else:
    ISINSTALL = 1
    ARCH = 'unknown'
    PETSCVARIABLES = os.sep.join([petscdir,'conf','petscvariables'])

  MPIUNI = 0
 
  try:
    f = open(PETSCVARIABLES)
    for l in f.readlines():
      (k,v) = l.split('=',1)
      k = k.strip()
      v = v.strip()
      if k == 'PETSC_SCALAR':
        SCALAR = v
      elif k == 'PETSC_PRECISION':
        PRECISION = v
      elif k == 'MPI_INCLUDE' and v.endswith('mpiuni'):
        MPIUNI = 1
      elif k == 'MAKE':
        MAKE = v
      elif k == 'INSTALL_DIR':
        INSTALL_DIR = v
      elif k == 'PETSC_ARCH_NAME':
        ARCH = v
    f.close()
  except:
    sys.exit('ERROR: PETSc is not configured for architecture ' + ARCH)

  if ISINSTALL and ARCH == 'unknown':
    sys.exit('ERROR: PETSc architecture name is not defined')