Actual source code: slepcsysmod.F90
slepc-3.23.1 2025-05-01
1: !
2: ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
3: ! SLEPc - Scalable Library for Eigenvalue Problem Computations
4: ! Copyright (c) 2002-, Universitat Politecnica de Valencia, Spain
5: !
6: ! This file is part of SLEPc.
7: ! SLEPc is distributed under a 2-clause BSD license (see LICENSE).
8: ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
9: !
10: module slepcsysdef
11: use petscmatdef
12: #include <../src/sys/ftn-mod/slepcsys.h>
13: end module
15: module slepcsys
16: use,intrinsic :: iso_c_binding
17: use slepcsysdef
18: use petscmat
19: #include <../src/sys/ftn-mod/slepcsys.h90>
20: #include <../ftn/sys/slepcall.h90>
21: interface SlepcInitialize
22: module procedure SlepcInitializeWithHelp, SlepcInitializeNoHelp, SlepcInitializeNoArguments
23: end interface
24: contains
25: #if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
26: !DEC$ ATTRIBUTES DLLEXPORT::SlepcInitializeWithHelp
27: #endif
28: subroutine SlepcInitializeWithHelp(filename,help,ierr)
29: character(len=*) :: filename
30: character(len=*) :: help
31: PetscErrorCode :: ierr
33: if (filename .ne. PETSC_NULL_CHARACTER) then
34: call SlepcInitializeF(trim(filename),help,ierr)
35: CHKERRQ(ierr)
36: else
37: call SlepcInitializeF(filename,help,ierr)
38: CHKERRQ(ierr)
39: endif
40: end subroutine SlepcInitializeWithHelp
42: #if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
43: !DEC$ ATTRIBUTES DLLEXPORT::SlepcInitializeNoHelp
44: #endif
45: subroutine SlepcInitializeNoHelp(filename,ierr)
46: character(len=*) :: filename
47: PetscErrorCode :: ierr
49: if (filename .ne. PETSC_NULL_CHARACTER) then
50: call SlepcInitializeF(trim(filename),PETSC_NULL_CHARACTER,ierr)
51: CHKERRQ(ierr)
52: else
53: call SlepcInitializeF(filename,PETSC_NULL_CHARACTER,ierr)
54: CHKERRQ(ierr)
55: endif
56: end subroutine SlepcInitializeNoHelp
58: #if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
59: !DEC$ ATTRIBUTES DLLEXPORT::SlepcInitializeNoArguments
60: #endif
61: subroutine SlepcInitializeNoArguments(ierr)
62: PetscErrorCode :: ierr
64: call SlepcInitializeF(PETSC_NULL_CHARACTER,PETSC_NULL_CHARACTER,ierr)
65: CHKERRQ(ierr)
66: end subroutine SlepcInitializeNoArguments
68: #include <../ftn/sys/slepcall.hf90>
69: end module