Actual source code: petscvecmod.F90

  1:         module 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>

 11:         end module

 13: !     Needed by Fortran stub petscsfgetgraph_()
 14:       subroutine 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
 21:       end subroutine
 22: #if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
 23: !DEC$ ATTRIBUTES DLLEXPORT:: F90Array1dCreateSFNode
 24: #endif

 26:       subroutine F90Array1dDestroySFNode(ptr)
 27:       use petscisdef
 28:       implicit none
 29:       PetscSFNode, pointer :: ptr(:)
 30:       nullify(ptr)
 31:       end subroutine
 32: #if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
 33: !DEC$ ATTRIBUTES DLLEXPORT:: F90Array1dDestroySFNode
 34: #endif

 36: !     ----------------------------------------------

 38:         module petscis
 39:         use petscisdef
 40:         use petscsys

 42:       interface PetscSFDestroyRemoteOffsets
 43:       subroutine PetscSFDestroyRemoteOffsets(ptr, ierr)
 44:       use petscisdef
 45:       implicit none
 46:       PetscInt, pointer :: ptr(:)
 47:       PetscErrorCode :: ierr
 48:       end subroutine PetscSFDestroyRemoteOffsets
 49:       end interface

 51: #include <../src/vec/ftn-mod/petscis.h90>
 52: #include <../ftn/vec/petscsf.h90>
 53: #include <../ftn/vec/petscsection.h90>
 54: #include <../ftn/vec/petscis.h90>

 56:         contains

 58: #include <../ftn/vec/petscsf.hf90>
 59: #include <../ftn/vec/petscsection.hf90>
 60: #include <../ftn/vec/petscis.hf90>

 62:       end module

 64: !     ----------------------------------------------

 66:         module petscvecdef
 67:         use petscisdef
 68: #include <petsc/finclude/petscvec.h>
 69: #include <../ftn/vec/petscvec.h>
 70:         end module

 72: !     ----------------------------------------------

 74:         module petscvec
 75:         use petscis
 76:         use petscvecdef

 78: #include <../src/vec/ftn-mod/petscvec.h90>
 79: #include <../ftn/vec/petscvec.h90>

 81:         contains

 83: #include <../ftn/vec/petscvec.hf90>

 85:       end module

 87: !     ----------------------------------------------

 89:         module  petscaodef
 90:         use petscsys
 91:         use petscvecdef
 92: #include <petsc/finclude/petscao.h>
 93: #include <../ftn/vec/petscao.h>
 94:         end module

 96: !     ----------------------------------------------

 98:         module petscao
 99:         use petscsys
100:         use petscaodef
101: #include <../ftn/vec/petscao.h90>
102:         contains
103: #include <../ftn/vec/petscao.hf90>
104:       end module

106: !     ----------------------------------------------

108:         module  petscpfdef
109:         use petscsys
110:         use petscvecdef
111: #include <petsc/finclude/petscpf.h>
112: #include <../ftn/vec/petscpf.h>
113:         end module

115: !     ----------------------------------------------

117:         module petscpf
118:         use petscsys
119:         use petscpfdef
120: #include <../ftn/vec/petscpf.h90>
121:         contains
122: #include <../ftn/vec/petscpf.hf90>
123:       end module