Actual source code: petscvec.h90
petsc-3.10.5 2019-03-28
Report Typos and Errors

      1: #if defined(PETSC_HAVE_FORTRAN_TYPE_STAR)
      2:       Interface
      3:        subroutine PetscSFBcastBegin(sf,unit,rarray,larray,ierr)
      4:           use petscisdef
      5:           PetscSF :: sf
      6:           PetscMPIInt :: unit
      7:           type(*) :: rarray(:)
      8:           type(*) :: larray(:)
      9:           PetscErrorCode :: ierr
     10:         end Subroutine PetscSFBcastBegin
     11:       end Interface
     12: #endif

     14: #if defined(PETSC_HAVE_FORTRAN_TYPE_STAR)
     15:       Interface
     16:       subroutine PetscSFBcastEnd(sf,unit,rarray,larray,ierr)
     17:           use petscisdef
     18:           PetscSF :: sf
     19:           PetscMPIInt :: unit
     20:           type(*) :: rarray(:)
     21:           type(*) :: larray(:)
     22:           PetscErrorCode :: ierr
     23:         end Subroutine PetscSFBcastEnd
     24:       end Interface
     25: #endif

     27:       Interface
     28:       subroutine PetscSFGetGraph(sf,nroots,nleaves,ilocal,iremote,ierr)
     29:           use petscisdef
     30:           PetscSF :: sf
     31:           PetscInt :: nroots,nleaves
     32:           PetscInt, pointer :: ilocal(:)
     33:           type(PetscSFNode), pointer :: iremote(:)
     34:           PetscErrorCode :: ierr
     35:         end Subroutine PetscSFGetGraph
     36:       end Interface

     38:       Interface
     39:       subroutine VecScatterCreateToAll(a,b,c,z)
     40:       use petscvecdef
     41:        Vec a
     42:        VecScatter b
     43:        Vec c
     44:        integer z
     45:        end subroutine
     46:       end Interface

     48:       Interface
     49:       subroutine VecScatterCreateToZero(a,b,c,z)
     50:       use petscvecdef
     51:        Vec a
     52:        VecScatter b
     53:        Vec c
     54:        integer z
     55:        end subroutine
     56:       end Interface

     58:       Interface VecSetValuesLocal
     59:         subroutine VecSetValuesLocal0(a,b,c,d,e,z)
     60:           use petscvecdef
     61:           Vec a ! Vec
     62:           PetscInt b ! PetscInt
     63:           PetscInt c (*) ! PetscInt
     64:           PetscScalar d (*) ! PetscScalar
     65:           InsertMode e ! InsertMode
     66:           integer z
     67:         end subroutine
     68:         subroutine VecSetValuesLocal11(a,b,c,d,e,z)
     69:           use petscvecdef
     70:           Vec a ! Vec
     71:           PetscInt b ! PetscInt
     72:           PetscInt c ! PetscInt
     73:           PetscScalar d ! PetscScalar
     74:           InsertMode e ! InsertMode
     75:           integer z
     76:         end subroutine
     77:       end interface VecSetValuesLocal

     79:       Interface VecSetValues
     80:         subroutine VecSetValues0(a,b,c,d,e,z)
     81:           use petscvecdef
     82:           Vec a ! Vec
     83:           PetscInt b ! PetscInt
     84:           PetscInt c (*) ! PetscInt
     85:           PetscScalar d (*) ! PetscScalar
     86:           InsertMode e ! InsertMode
     87:           integer z
     88:         end subroutine
     89:         subroutine VecSetValues1(a,b,c,d,e,z)
     90:           use petscvecdef
     91:           Vec a ! Vec
     92:           PetscInt b ! PetscInt
     93:           PetscInt c ! PetscInt
     94:           PetscScalar d (*) ! PetscScalar
     95:           InsertMode e ! InsertMode
     96:           integer z
     97:         end subroutine
     98:         subroutine VecSetValues11(a,b,c,d,e,z)
     99:           use petscvecdef
    100:           Vec a ! Vec
    101:           PetscInt b ! PetscInt
    102:           PetscInt c ! PetscInt
    103:           PetscScalar d ! PetscScalar
    104:           InsertMode e ! InsertMode
    105:           integer z
    106:         end subroutine
    107:       End Interface VecSetValues

    109:       Interface VecSetValuesBlocked
    110:         subroutine VecSetValuesBlocked0(a,b,c,d,e,z)
    111:           use petscvecdef
    112:           Vec a ! Vec
    113:           PetscInt b ! PetscInt
    114:           PetscInt c (*) ! PetscInt
    115:           PetscScalar d (*) ! PetscScalar
    116:           InsertMode e ! InsertMode
    117:           integer z
    118:         end subroutine
    119:         subroutine VecSetValuesBlocked1(a,b,c,d,e,z)
    120:           use petscvecdef
    121:           Vec a ! Vec
    122:           PetscInt b ! PetscInt
    123:           PetscInt c ! PetscInt
    124:           PetscScalar d (*) ! PetscScalar
    125:           InsertMode e ! InsertMode
    126:           integer z
    127:         end subroutine
    128:         subroutine VecSetValuesBlocked11(a,b,c,d,e,z)
    129:           use petscvecdef
    130:           Vec a ! Vec
    131:           PetscInt b ! PetscInt
    132:           PetscInt c ! PetscInt
    133:           PetscScalar d ! PetscScalar
    134:           InsertMode e ! InsertMode
    135:           integer z
    136:         end subroutine
    137:       End Interface VecSetValuesBlocked

    139:       Interface
    140:         Subroutine VecGetArrayF90(v,array,ierr)
    141:           use petscvecdef
    142:           PetscScalar, pointer :: array(:)
    143:           PetscErrorCode ierr
    144:           Vec     v
    145:         End Subroutine
    146:       End Interface

    148:       Interface
    149:         Subroutine VecRestoreArrayF90(v,array,ierr)
    150:           use petscvecdef
    151:           PetscScalar, pointer :: array(:)
    152:           PetscErrorCode ierr
    153:           Vec     v
    154:         End Subroutine
    155:       End Interface

    157:       Interface
    158:         Subroutine VecGetArrayReadF90(v,array,ierr)
    159:           use petscvecdef
    160:           PetscScalar, pointer :: array(:)
    161:           PetscErrorCode ierr
    162:           Vec     v
    163:         End Subroutine
    164:       End Interface

    166:       Interface
    167:         Subroutine VecRestoreArrayReadF90(v,array,ierr)
    168:           use petscvecdef
    169:           PetscScalar, pointer :: array(:)
    170:           PetscErrorCode ierr
    171:           Vec     v
    172:         End Subroutine
    173:       End Interface

    175:       Interface
    176:         Subroutine VecSetValuesSectionF90(v,s,p,va,mode,ierr)
    177:           use petscvecdef
    178:           PetscScalar, pointer :: va(:)
    179:           PetscErrorCode ierr
    180:           Vec     v
    181:           PetscSection s
    182:           PetscInt p
    183:           InsertMode mode
    184:         End Subroutine
    185:       End Interface

    187: ! -------------------------------------------------------------

    189:       Interface
    190:         Subroutine VecDuplicateVecsF90(v,m,vs,ierr)
    191:           use petscvecdef
    192:           Vec, pointer :: vs(:)
    193:           PetscInt m
    194:           PetscErrorCode ierr
    195:           Vec     v
    196:         End Subroutine
    197:       End Interface
    198: !
    199: !  Question: should VecDestroyVecsF90() take the m argument since
    200: ! the array of vectors already knows how long it is? Yes, to
    201: ! match calling sequence for C/C++.
    202: !
    203:       Interface
    204:         Subroutine VecDestroyVecsF90(m,vs,ierr)
    205:           use petscvecdef
    206:           Vec, pointer :: vs(:)
    207:           PetscInt m
    208:           PetscErrorCode ierr
    209:         End Subroutine
    210:       End Interface

    212:       Interface
    213:       subroutine VecSetType(a,b,z)
    214:       use petscvecdef
    215:        Vec a
    216:        character(*) b
    217:        integer z
    218:        end subroutine
    219:       end Interface

    221:       Interface
    222:       subroutine VecView(a,b,z)
    223:       use petscvecdef
    224:        Vec a
    225:        PetscViewer b
    226:        integer z
    227:        end subroutine
    228:       end Interface

    230:       Interface
    231:       subroutine VecScatterRemap(a,b,c,z)
    232:       use petscvecdef
    233:        VecScatter a ! VecScatter
    234:        PetscInt b (*) ! PetscInt
    235:        PetscInt c (*) ! PetscInt
    236:        integer z
    237:        end subroutine
    238:       end Interface