Date: 2026-05-01T06:12:12+00:00

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: module petscis
     37:   use petscisdef
     38:   use petscsys

     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

     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>

     54: contains

     56: #include <../ftn/vec/petscsf.hf90>
     57: #include <../ftn/vec/petscsection.hf90>
     58: #include <../ftn/vec/petscis.hf90>

     60: end module

     62: module petscvecdef
     63:   use petscisdef
     64: #include <petsc/finclude/petscvec.h>
     65: #include <../ftn/vec/petscvec.h>
     66: end module

     68: module petscvec
     69:   use petscis
     70:   use petscvecdef

     72: #include <../src/vec/ftn-mod/petscvec.h90>
     73: #include <../ftn/vec/petscvec.h90>

     75: contains

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

     79: end module

     81: module petscaodef
     82:   use petscsys
     83:   use petscvecdef
     84: #include <petsc/finclude/petscao.h>
     85: #include <../ftn/vec/petscao.h>
     86: end module

     88: module petscao
     89:   use petscsys
     90:   use petscaodef
     91: #include <../ftn/vec/petscao.h90>
     92: contains
     93: #include <../ftn/vec/petscao.hf90>
     94: end module

     96: module petscpfdef
     97:   use petscsys
     98:   use petscvecdef
     99: #include <petsc/finclude/petscpf.h>
    100: #include <../ftn/vec/petscpf.h>
    101: end module

    103: module petscpf
    104:   use petscsys
    105:   use petscpfdef
    106: #include <../ftn/vec/petscpf.h90>
    107: contains
    108: #include <../ftn/vec/petscpf.hf90>
    109: end module