Actual source code: petscsys.h90

  1: #if defined(PETSC_HAVE_FORTRAN_TYPE_STAR)
  2:       Interface
  3:        subroutine PetscObjectReference(obj,ierr)
  4:           type(*) :: obj
  5:           PetscErrorCode :: ierr
  6:        end Subroutine PetscObjectReference
  7:        subroutine PetscObjectDereference(obj,ierr)
  8:           type(*) :: obj
  9:           PetscErrorCode :: ierr
 10:         end Subroutine PetscObjectDereference
 11:        subroutine PetscObjectGetReference(obj,c,ierr)
 12:           type(*) :: obj
 13:           PetscInt c
 14:           PetscErrorCode :: ierr
 15:         end Subroutine PetscObjectGetReference
 16:        subroutine PetscObjectCompose(obj,str,obj2,ierr)
 17:           type(*) :: obj,obj2
 18:           character(*) :: str
 19:           PetscErrorCode :: ierr
 20:         end Subroutine PetscObjectCompose
 21:        subroutine PetscObjectQuery(obj,str,obj2,ierr)
 22:           type(*) :: obj,obj2
 23:           character(*) :: str
 24:           PetscErrorCode :: ierr
 25:         end Subroutine PetscObjectQuery
 26:       subroutine PetscBarrier(a,z)
 27:        type(*) :: a
 28:        PetscErrorCode :: z
 29:        end subroutine
 30:       end Interface
 31: #endif

 33:       Interface
 34:        Subroutine PetscPrintf(m,c,ierr)
 35:           MPI_Comm :: m
 36:           character(len=*) :: c
 37:           PetscErrorCode :: ierr
 38:        End Subroutine
 39:         Subroutine PetscOptionsGetInt(o,p,n,v,s,ierr)
 40:           import tPetscOptions
 41:           PetscOptions o
 42:           PetscInt v
 43:           character(*) p,n
 44:           PetscBool s
 45:           PetscErrorCode ierr
 46:         End Subroutine
 47:         Subroutine PetscOptionsGetReal(o,p,n,v,s,ierr)
 48:           import tPetscOptions
 49:           PetscOptions o
 50:           PetscReal v
 51:           character(*) p,n
 52:           PetscBool s
 53:           PetscErrorCode ierr
 54:         End Subroutine
 55:         Subroutine PetscOptionsGetScalar(o,p,n,v,s,ierr)
 56:           import tPetscOptions
 57:           PetscOptions o
 58:           PetscScalar v
 59:           character(*) p,n
 60:           PetscBool s
 61:           PetscErrorCode ierr
 62:         End Subroutine
 63:         Subroutine PetscOptionsGetBool(o,p,n,v,s,ierr)
 64:           import tPetscOptions
 65:           PetscOptions o
 66:           PetscBool v
 67:           character(*) p,n
 68:           PetscBool s
 69:           PetscErrorCode ierr
 70:         End Subroutine
 71:         Subroutine PetscOptionsGetString(o,p,n,v,s,ierr)
 72:           import tPetscOptions
 73:           PetscOptions o
 74:           character(*) v
 75:           character(*) p,n
 76:           PetscBool s
 77:           PetscErrorCode ierr
 78:         End Subroutine
 79:         Subroutine PetscOptionsHasName(o,p,n,s,ierr)
 80:           import tPetscOptions
 81:           PetscOptions o
 82:           character(*) p,n
 83:           PetscBool s
 84:           PetscErrorCode ierr
 85:         End Subroutine
 86:         Subroutine PetscOptionsGetIntArray(o,p,n,v,c,s,ierr)
 87:           import tPetscOptions
 88:           PetscOptions o
 89:           PetscInt v(*),c
 90:           character(*) p,n
 91:           PetscBool s
 92:           PetscErrorCode ierr
 93:         End Subroutine
 94:         Subroutine PetscOptionsGetScalarArray(o,p,n,v,c,s,ierr)
 95:           import tPetscOptions
 96:           PetscOptions o
 97:           PetscScalar v(*)
 98:           PetscInt c
 99:           character(*) p,n
100:           PetscBool s
101:           PetscErrorCode ierr
102:         End Subroutine
103:         Subroutine PetscOptionsGetRealArray(o,p,n,v,c,s,ierr)
104:           import tPetscOptions
105:           PetscOptions o
106:           PetscReal v(*)
107:           PetscInt c
108:           character(*) p,n
109:           PetscBool s
110:           PetscErrorCode ierr
111:         End Subroutine
112:         Subroutine PetscOptionsSetValue(o,n,v,ierr)
113:           import tPetscOptions
114:           PetscOptions o
115:           character(*) n,v
116:           PetscErrorCode ierr
117:         End Subroutine
118:         Subroutine PetscOptionsClearValue(o,n,ierr)
119:           import tPetscOptions
120:           PetscOptions o
121:           character(*) n
122:           PetscErrorCode ierr
123:         End Subroutine
124:         Subroutine PetscOptionsClear(o,ierr)
125:           import tPetscOptions
126:           PetscOptions o
127:           PetscErrorCode ierr
128:         End Subroutine
129:         Subroutine PetscOptionsInsertString(o,n,ierr)
130:           import tPetscOptions
131:           PetscOptions o
132:           character(*) n
133:           PetscErrorCode ierr
134:         End Subroutine
135:         Subroutine PetscOptionsView(o,v,ierr)
136:           import tPetscOptions,tPetscViewer
137:           PetscOptions, intent(in) :: o
138:           PetscViewer,  intent(in) :: v
139:           PetscErrorCode, intent(out) :: ierr
140:         End Subroutine PetscOptionsView

142:       subroutine PetscRandomSetType(a,b,ierr)
143:        import tPetscRandom
144:        PetscRandom a
145:        character(*) b
146:        PetscErrorCode ierr
147:        end subroutine

149:       subroutine PetscErrorf(ierr)
150:        PetscErrorCode, intent(in) :: ierr
151:       end Subroutine PetscErrorf

153:       subroutine PetscFinalize(ierr)
154:        PetscErrorCode, intent(out) :: ierr
155:       end Subroutine PetscFinalize

157:       subroutine PetscRandomView(a,b,ierr)
158:        import tPetscRandom,tPetscViewer
159:        PetscRandom a
160:        PetscViewer b
161:        PetscErrorCode ierr
162:        end subroutine

164:       subroutine PetscSubcommView(a,b,z)
165:        import tPetscSubComm,tPetscViewer
166:        PetscSubcomm a ! PetscSubcomm
167:        PetscViewer b ! PetscViewer
168:        PetscErrorCode z
169:       end subroutine
170:       subroutine PetscSubcommGetParent(a,b,z)
171:        import tPetscSubComm
172:        PetscSubcomm a ! PetscSubcomm
173:        MPI_Comm b ! MPI_Comm
174:        PetscErrorCode z
175:        end subroutine
176:       subroutine PetscSubcommGetContiguousParent(a,b,z)
177:        import tPetscSubComm
178:        PetscSubcomm a ! PetscSubcomm
179:        MPI_Comm b ! MPI_Comm
180:        PetscErrorCode z
181:        end subroutine
182:       subroutine PetscSubcommGetChild(a,b,z)
183:        import tPetscSubComm
184:        PetscSubcomm a ! PetscSubcomm
185:        MPI_Comm b ! MPI_Comm
186:        PetscErrorCode z
187:        end subroutine

189:       subroutine MPIU_abort(comm,ierr)
190:       MPI_Comm,intent(in) ::  comm
191:       PetscErrorCode,intent(in) ::  ierr
192:       end subroutine

194:       subroutine PetscLogEventRegister(name,classid,event,ierr)
195:        character(len=*), intent(in) :: name
196:        PetscClassId, intent(in) :: classid
197:        PetscLogEvent, intent(in) :: event
198:        PetscErrorCode, intent(out) :: ierr
199:       end subroutine PetscLogEventRegister

201:       subroutine PetscLogStageRegister(name,stage,ierr)
202:        character(len=*), intent(in) :: name
203:        PetscLogStage, intent(out) :: stage
204:        PetscErrorCode, intent(out) :: ierr
205:       end subroutine PetscLogStageRegister

207:       subroutine PetscLogEventBegin(event,ierr)
208:         PetscLogEvent, intent(in) :: event
209:         PetscErrorCode, intent(out) :: ierr
210:       end subroutine PetscLogEventBegin

212:       subroutine PetscLogEventEnd(event,ierr)
213:         PetscLogEvent, intent(in) :: event
214:         PetscErrorCode, intent(out) :: ierr
215:       end subroutine PetscLogEventEnd

217:       subroutine PetscLogStagePop(ierr)
218:         PetscErrorCode, intent(out) :: ierr
219:       end subroutine PetscLogStagePop

221:       subroutine PetscLogStagePush(s,ierr)
222:        PetscLogStage, intent(in) :: s
223:        PetscErrorCode, intent(out) :: ierr
224:       end subroutine PetscLogStagePush
225:       end Interface

227: #if defined(PETSC_USE_LOG)
228:       Interface
229:       function PetscASend(c, d) bind(c,name='PetscASend') result(i)
230:           use iso_c_binding
231:           implicit none
232:           integer(c_int), value :: c
233:           integer(c_int), value :: d
234:           integer(c_int)        :: i
235:       end function PetscASend

237:       function PetscARecv(c, d) bind(c,name='PetscARecv') result(i)
238:           use iso_c_binding
239:           implicit none
240:           integer(c_int), value :: c
241:           integer(c_int), value :: d
242:           integer(c_int)        :: i
243:       end function PetscARecv

245:       function PetscAReduce() bind(c,name='PetscAReduce') result(i)
246:           use iso_c_binding
247:           implicit none
248:           integer(c_int)        :: i
249:       end function PetscAReduce
250:       end Interface
251: #endif