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 PetscInitialize(c,ierr)
154:        character(len=*), intent(in) :: c
155:        PetscErrorCode, intent(out) :: ierr
156:       end Subroutine PetscInitialize

158:       subroutine PetscInitializeNoArguments(ierr)
159:        PetscErrorCode, intent(out) :: ierr
160:       end Subroutine PetscInitializeNoArguments

162:       subroutine PetscFinalize(ierr)
163:        PetscErrorCode, intent(out) :: ierr
164:       end Subroutine PetscFinalize

166:       subroutine PetscRandomView(a,b,ierr)
167:        import tPetscRandom,tPetscViewer
168:        PetscRandom a
169:        PetscViewer b
170:        PetscErrorCode ierr
171:        end subroutine

173:       subroutine PetscSubcommView(a,b,z)
174:        import tPetscSubComm,tPetscViewer
175:        PetscSubcomm a ! PetscSubcomm
176:        PetscViewer b ! PetscViewer
177:        PetscErrorCode z
178:       end subroutine
179:       subroutine PetscSubcommGetParent(a,b,z)
180:        import tPetscSubComm
181:        PetscSubcomm a ! PetscSubcomm
182:        MPI_Comm b ! MPI_Comm
183:        PetscErrorCode z
184:        end subroutine
185:       subroutine PetscSubcommGetContiguousParent(a,b,z)
186:        import tPetscSubComm
187:        PetscSubcomm a ! PetscSubcomm
188:        MPI_Comm b ! MPI_Comm
189:        PetscErrorCode z
190:        end subroutine
191:       subroutine PetscSubcommGetChild(a,b,z)
192:        import tPetscSubComm
193:        PetscSubcomm a ! PetscSubcomm
194:        MPI_Comm b ! MPI_Comm
195:        PetscErrorCode z
196:        end subroutine

198:       subroutine MPIU_abort(comm,ierr)
199:       MPI_Comm,intent(in) ::  comm
200:       PetscErrorCode,intent(in) ::  ierr
201:       end subroutine

203:       subroutine PetscLogEventRegister(name,classid,event,ierr)
204:        character(len=*), intent(in) :: name
205:        PetscClassId, intent(in) :: classid
206:        PetscLogEvent, intent(in) :: event
207:        PetscErrorCode, intent(out) :: ierr
208:       end subroutine PetscLogEventRegister

210:       subroutine PetscLogStageRegister(name,stage,ierr)
211:        character(len=*), intent(in) :: name
212:        PetscLogStage, intent(out) :: stage
213:        PetscErrorCode, intent(out) :: ierr
214:       end subroutine PetscLogStageRegister

216:       subroutine PetscLogEventBegin(event,ierr)
217:         PetscLogEvent, intent(in) :: event
218:         PetscErrorCode, intent(out) :: ierr
219:       end subroutine PetscLogEventBegin

221:       subroutine PetscLogEventEnd(event,ierr)
222:         PetscLogEvent, intent(in) :: event
223:         PetscErrorCode, intent(out) :: ierr
224:       end subroutine PetscLogEventEnd

226:       subroutine PetscLogStagePop(ierr)
227:         PetscErrorCode, intent(out) :: ierr
228:       end subroutine PetscLogStagePop

230:       subroutine PetscLogStagePush(s,ierr)
231:        PetscLogStage, intent(in) :: s
232:        PetscErrorCode, intent(out) :: ierr
233:       end subroutine PetscLogStagePush
234:       end Interface

236: #if defined(PETSC_USE_LOG)
237:       Interface
238:       function PetscASend(c, d) bind(c,name='PetscASend') result(i)
239:           use iso_c_binding
240:           implicit none
241:           integer(c_int), value :: c
242:           integer(c_int), value :: d
243:           integer(c_int)        :: i
244:       end function PetscASend

246:       function PetscARecv(c, d) bind(c,name='PetscARecv') result(i)
247:           use iso_c_binding
248:           implicit none
249:           integer(c_int), value :: c
250:           integer(c_int), value :: d
251:           integer(c_int)        :: i
252:       end function PetscARecv

254:       function PetscAReduce() bind(c,name='PetscAReduce') result(i)
255:           use iso_c_binding
256:           implicit none
257:           integer(c_int)        :: i
258:       end function PetscAReduce
259:       end Interface
260: #endif