Actual source code: petscmatmod.F90


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

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

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

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

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

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

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

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

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