Actual source code: petscmatmod.F90

  1:         module petscmatdefdummy
  2:         use petscvecdef
  3: #include <../src/mat/f90-mod/petscmat.h>
  4:         end module petscmatdefdummy

  6:         module petscmatdef
  7:         use petscmatdefdummy
  8:         interface operator(.ne.)
  9:           function matnotequal(A,B)
 10:             import tMat
 11:             logical matnotequal
 12:             type(tMat), intent(in) :: A,B
 13:           end function
 14:           function matfdcoloringnotequal(A,B)
 15:             import tMatFDColoring
 16:             logical matfdcoloringnotequal
 17:             type(tMatFDColoring), intent(in) :: A,B
 18:           end function
 19:           function matnullspacenotequal(A,B)
 20:             import tMatNullSpace
 21:             logical matnullspacenotequal
 22:             type(tMatNullSpace), intent(in) :: A,B
 23:             end function
 24:       end interface operator (.ne.)
 25:         interface operator(.eq.)
 26:           function matequals(A,B)
 27:             import tMat
 28:             logical matequals
 29:             type(tMat), intent(in) :: A,B
 30:           end function
 31:           function matfdcoloringequals(A,B)
 32:             import tMatFDColoring
 33:             logical matfdcoloringequals
 34:             type(tMatFDColoring), intent(in) :: A,B
 35:           end function
 36:            function matnullspaceequals(A,B)
 37:             import tMatNullSpace
 38:             logical matnullspaceequals
 39:             type(tMatNullSpace), intent(in) :: A,B
 40:             end function
 41:           end interface operator (.eq.)
 42:         end module

 44:         function matnotequal(A,B)
 45:           use petscmatdefdummy, only: tMat
 46:           implicit none
 47:           logical matnotequal
 48:           type(tMat), intent(in) :: A,B
 49:           matnotequal = (A%v .ne. B%v)
 50:         end function

 52:        function matequals(A,B)
 53:           use petscmatdefdummy, only: tMat
 54:           implicit none
 55:           logical matequals
 56:           type(tMat), intent(in) :: A,B
 57:           matequals = (A%v .eq. B%v)
 58:         end function

 60:         function matfdcoloringnotequal(A,B)
 61:           use petscmatdefdummy, only: tMatFDColoring
 62:           implicit none
 63:           logical matfdcoloringnotequal
 64:           type(tMatFDColoring), intent(in) :: A,B
 65:           matfdcoloringnotequal = (A%v .ne. B%v)
 66:         end function

 68:         function matfdcoloringequals(A,B)
 69:           use petscmatdefdummy, only: tMatFDColoring
 70:           implicit none
 71:           logical matfdcoloringequals
 72:           type(tMatFDColoring), intent(in) :: A,B
 73:           matfdcoloringequals = (A%v .eq. B%v)
 74:         end function

 76:         function matnullspacenotequal(A,B)
 77:           use petscmatdefdummy, only: tMatNullSpace
 78:           implicit none
 79:           logical matnullspacenotequal
 80:           type(tMatNullSpace), intent(in) :: A,B
 81:           matnullspacenotequal = (A%v .ne. B%v)
 82:         end function

 84:         function matnullspaceequals(A,B)
 85:           use petscmatdefdummy, only: tMatNullSpace
 86:           implicit none
 87:           logical matnullspaceequals
 88:           type(tMatNullSpace), intent(in) :: A,B
 89:           matnullspaceequals = (A%v .eq. B%v)
 90:         end function

 92: #if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES)
 93: !DEC$ ATTRIBUTES DLLEXPORT::matnotequal
 94: !DEC$ ATTRIBUTES DLLEXPORT::matequals
 95: !DEC$ ATTRIBUTES DLLEXPORT::matfdcoloringnotequal
 96: !DEC$ ATTRIBUTES DLLEXPORT::matfdcoloringequals
 97: !DEC$ ATTRIBUTES DLLEXPORT::matnullspacenotequal
 98: !DEC$ ATTRIBUTES DLLEXPORT::matnullspaceequals
 99: #endif
100:         module petscmat
101:         use petscmatdef
102:         use petscvec
103: #include <../src/mat/f90-mod/petscmat.h90>
104:         interface
105: #include <../src/mat/f90-mod/ftn-auto-interfaces/petscmat.h90>
106:         end interface
107:         end module