1module petscisdef 2 use, intrinsic :: ISO_C_binding 3 use petscsysdef 4#include <petsc/finclude/petscis.h> 5#include <../ftn/vec/petscis.h> 6#include <petsc/finclude/petscsf.h> 7#include <../ftn/vec/petscsf.h> 8#include <petsc/finclude/petscsection.h> 9#include <../ftn/vec/petscsection.h> 10 11end module 12 13! Needed by Fortran stub petscsfgetgraph_() 14subroutine F90Array1dCreateSFNode(array, start, len, ptr) 15 use petscisdef 16 implicit none 17 PetscInt start, len 18 PetscSFNode, target :: array(start:start + len - 1) 19 PetscSFNode, pointer :: ptr(:) 20 ptr => array 21end subroutine 22#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 23!DEC$ ATTRIBUTES DLLEXPORT:: F90Array1dCreateSFNode 24#endif 25 26subroutine F90Array1dDestroySFNode(ptr) 27 use petscisdef 28 implicit none 29 PetscSFNode, pointer :: ptr(:) 30 nullify (ptr) 31end subroutine 32#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 33!DEC$ ATTRIBUTES DLLEXPORT:: F90Array1dDestroySFNode 34#endif 35 36module petscis 37 use petscisdef 38 use petscsys 39 40 interface PetscSFDestroyRemoteOffsets 41 subroutine PetscSFDestroyRemoteOffsets(ptr, ierr) 42 use petscisdef 43 implicit none 44 PetscInt, pointer :: ptr(:) 45 PetscErrorCode :: ierr 46 end subroutine PetscSFDestroyRemoteOffsets 47 end interface 48 49#include <../src/vec/ftn-mod/petscis.h90> 50#include <../ftn/vec/petscsf.h90> 51#include <../ftn/vec/petscsection.h90> 52#include <../ftn/vec/petscis.h90> 53 54contains 55 56#include <../ftn/vec/petscsf.hf90> 57#include <../ftn/vec/petscsection.hf90> 58#include <../ftn/vec/petscis.hf90> 59 60end module 61 62module petscvecdef 63 use petscisdef 64#include <petsc/finclude/petscvec.h> 65#include <../ftn/vec/petscvec.h> 66end module 67 68module petscvec 69 use petscis 70 use petscvecdef 71 72#include <../src/vec/ftn-mod/petscvec.h90> 73#include <../ftn/vec/petscvec.h90> 74 75contains 76 77#include <../ftn/vec/petscvec.hf90> 78 79end module 80 81module petscaodef 82 use petscsys 83 use petscvecdef 84#include <petsc/finclude/petscao.h> 85#include <../ftn/vec/petscao.h> 86end module 87 88module petscao 89 use petscsys 90 use petscaodef 91#include <../ftn/vec/petscao.h90> 92contains 93#include <../ftn/vec/petscao.hf90> 94end module 95 96module petscpfdef 97 use petscsys 98 use petscvecdef 99#include <petsc/finclude/petscpf.h> 100#include <../ftn/vec/petscpf.h> 101end module 102 103module petscpf 104 use petscsys 105 use petscpfdef 106#include <../ftn/vec/petscpf.h90> 107contains 108#include <../ftn/vec/petscpf.hf90> 109end module 110