1interface 2 subroutine PetscFortranPrintToFileUnit(unit, str, ierr) 3 use, intrinsic :: ISO_C_binding 4 import tPetscViewer 5 integer unit 6 character(len=*), intent(in) :: str 7 PetscErrorCode, intent(out):: ierr 8 end subroutine 9 10 subroutine PetscViewerASCIIOpenWithFileUnit(comm, unit, lab, ierr) 11 use, intrinsic :: ISO_C_binding 12 use petscmpi 13 import tPetscViewer 14 MPIU_Comm, intent(in) :: comm 15 integer, intent(in) :: unit 16 PetscViewer, intent(out) :: lab 17 PetscErrorCode, intent(out):: ierr 18 end subroutine 19 20 subroutine PetscViewerASCIISetFileUnit(lab, unit, ierr) 21 use, intrinsic :: ISO_C_binding 22 import tPetscViewer 23 PetscViewer, intent(in) :: lab 24 integer, intent(in) :: unit 25 PetscErrorCode, intent(out):: ierr 26 end subroutine 27end interface 28 29#if defined(_WIN32) && defined(PETSC_USE_SHARED_LIBRARIES) 30!DEC$ ATTRIBUTES DLLEXPORT::PetscFortranPrintToFileUnit 31!DEC$ ATTRIBUTES DLLEXPORT::PetscViewerASCIIOpenWithFileUnit 32!DEC$ ATTRIBUTES DLLEXPORT::PetscViewerASCIISetFileUnit 33#endif 34 35interface PetscViewerBinaryWrite 36 subroutine PetscViewerBinaryWriteInt(v, a, cnt, tmp, ierr) 37 use, intrinsic :: ISO_C_binding 38 import tPetscViewer 39 PetscViewer v 40 PetscInt a(*) 41 PetscInt cnt 42 PetscBool tmp 43 PetscErrorCode, intent(out):: ierr 44 end subroutine 45 subroutine PetscViewerBinaryWriteScalar(v, a, cnt, tmp, ierr) 46 use, intrinsic :: ISO_C_binding 47 import tPetscViewer 48 PetscViewer v 49 PetscScalar a(*) 50 PetscInt cnt 51 PetscBool tmp 52 PetscErrorCode, intent(out):: ierr 53 end subroutine 54#if defined(PETSC_USE_COMPLEX) 55 subroutine PetscViewerBinaryWriteReal(v, a, cnt, tmp, ierr) 56 use, intrinsic :: ISO_C_binding 57 import tPetscViewer 58 PetscViewer v 59 PetscReal a(*) 60 PetscInt cnt 61 PetscBool tmp 62 PetscErrorCode, intent(out):: ierr 63 end subroutine 64#endif 65end interface PetscViewerBinaryWrite 66 67interface PetscViewerBinaryRead 68 subroutine PetscViewerBinaryReadInt(v, a, cnt, ierr) 69 use, intrinsic :: ISO_C_binding 70 import tPetscViewer 71 PetscViewer v 72 PetscInt a(*) 73 PetscInt cnt 74 PetscErrorCode, intent(out):: ierr 75 end subroutine 76 subroutine PetscViewerBinaryReadScalar(v, a, cnt, ierr) 77 use, intrinsic :: ISO_C_binding 78 import tPetscViewer 79 PetscViewer v 80 PetscScalar a(*) 81 PetscInt cnt 82 PetscErrorCode, intent(out):: ierr 83 end subroutine 84#if defined(PETSC_USE_COMPLEX) 85 subroutine PetscViewerBinaryReadReal(v, a, cnt, ierr) 86 use, intrinsic :: ISO_C_binding 87 import tPetscViewer 88 PetscViewer v 89 PetscReal a(*) 90 PetscInt cnt 91 PetscErrorCode, intent(out):: ierr 92 end subroutine 93#endif 94end interface PetscViewerBinaryRead 95 96interface PetscViewerHDF5WriteAttribute 97 subroutine PetscViewerHDF5WriteAttributeInt(viewer, parent, name, value, ierr) 98 use, intrinsic :: ISO_C_binding 99 import tPetscViewer 100 PetscViewer :: viewer 101 character(len=*), intent(in) :: parent, name 102 PetscInt, intent(in) :: value 103 PetscErrorCode, intent(out):: ierr 104 end subroutine PetscViewerHDF5WriteAttributeInt 105 subroutine PetscViewerHDF5WriteAttributeScalar(viewer, parent, name, value, ierr) 106 use, intrinsic :: ISO_C_binding 107 import tPetscViewer 108 PetscViewer :: viewer 109 character(len=*), intent(in) :: parent, name 110 PetscScalar, intent(in) :: value 111 PetscErrorCode, intent(out):: ierr 112 end subroutine PetscViewerHDF5WriteAttributeScalar 113#if defined(PETSC_USE_COMPLEX) 114 subroutine PetscViewerHDF5WriteAttributeReal(viewer, parent, name, value, ierr) 115 use, intrinsic :: ISO_C_binding 116 import tPetscViewer 117 PetscViewer :: viewer 118 character(len=*), intent(in) :: parent, name 119 PetscReal, intent(in) :: value 120 PetscErrorCode, intent(out):: ierr 121 end subroutine PetscViewerHDF5WriteAttributeReal 122#endif 123end interface PetscViewerHDF5WriteAttribute 124