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