Date: 2025-03-29T05:58:55+00:00

Actual source code: petscvecmod.F90

      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>

     10:         end module

     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

     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

     35: !     ----------------------------------------------

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

     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

     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>

     55:         contains

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

     61:       end module

     63: !     ----------------------------------------------

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

     71: !     ----------------------------------------------

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

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

     80:         contains

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

     84:       end module

     86: !     ----------------------------------------------

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

     95: !     ----------------------------------------------

     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

    105: !     ----------------------------------------------

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

    114: !     ----------------------------------------------

    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