Skip to main content

System Coupling Fortran library 2025 R1

syscMeshDefinitionF

Last update: 17.07.2025
1 module fortran
2 !
3 ! Copyright ANSYS, Inc.
4 ! Unauthorized use, distribution, or duplication is prohibited.
5 !
6 ! Provide free-form Fortran interface for
7 ! System Coupling Participant Library.
8 !
9 ! *********************************************************************
10 !! \brief Node data access struct, provides read-only access to the
11 !! mesh nodes.
12 !!
13 !! To create and/or initialize SyscNodeDataF, it is highly
14 !! recommended to use one of the functions within
15 !! `syscGetNodeDataF` interface. These functions will
16 !! initialize all members to the correct values and will help to
17 !! avoid back-compatibility issues in the future. For example:
18 !!
19 !! \code
20 !!
21 !! SyscNodeDataF nodeData
22 !! nodeData = syscGetNodeDataF(nodeCoords)
23 !!
24 !! \endcode
26  type(syscoutputintegerdataf) :: nodeids
27  type(syscoutputvectordataf) :: nodecoords
28 end type syscnodedataf
29 !
30 !**********************************************************************
32 !
33 !**********************************************************************
34 !! \brief Create a mesh node data access struct.
35 !!
36 !! Returns an empty mesh node data access struct.
37 !! All members will be assigned default values.
38 !**********************************************************************
39 function syscgetnodedataf() result (ret)
40  import :: syscnodedataf
41  type(SyscNodeDataF) :: ret
42 !DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
43 !DIR$ ATTRIBUTES DLLIMPORT :: syscGetNodeDataF
44 !DIR$ ENDIF
45 end function syscgetnodedataf
46 !
47 !**********************************************************************
48 !! \brief Create a mesh node data access struct, given node ids and
49 !! node coords in same order.
50 !**********************************************************************
51 function syscgetnodedataf_ic(nodeIds, nodeCoords) result (ret)
52 !
55  type(SyscOutputIntegerDataF), intent(in) :: nodeIds
56  type(SyscOutputVectorDataF), intent(in) :: nodeCoords
57  type(SyscNodeDataF) :: ret
58 !
59 !DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
60 !DIR$ ATTRIBUTES DLLIMPORT :: syscGetNodeDataF_IC
61 !DIR$ ENDIF
62 !
63 end function syscgetnodedataf_ic
64 !
65 !**********************************************************************
66 !! \brief Creates a mesh node data access struct, given node
67 !! coordinates in ascending node ids order.
68 !**********************************************************************
69 function syscgetnodedataf_c(nodeCoords) result (ret)
71  type(SyscOutputVectorDataF), intent(in) :: nodeCoords
72  type(SyscNodeDataF) :: ret
73 !DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
74 !DIR$ ATTRIBUTES DLLIMPORT :: syscGetNodeDataF_C
75 !DIR$ ENDIF
76  end function syscgetnodedataf_c
77 !
78 end interface syscgetnodedataf
79 !
80 ! *********************************************************************
81 !! \brief Element types access struct, provides read-only access to
82 !! the mesh element types.
83 !!
84 !! To create and/or initialize SyscElementTypeDataF, it is highly
85 !! recommended to use one of the functions within
86 !! `syscGetElementTypeDataF` interface. These functions will
87 !! initialize all members to the correct values and will help to
88 !! avoid back-compatibility issues in the future. For example:
89 !!
90 !! \code
91 !!
92 !! SyscElementTypeDataF eTypeData
93 !! eTypeData = syscGetElementTypeDataF(elementTypes)
94 !!
95 !! \endcode
97  type(syscoutputintegerdataf) :: elementtypes
98 end type syscelementtypedataf
99 !
100 !**********************************************************************
102 !
103 !**********************************************************************
104 !! \brief Create a mesh node data access struct.
105 !!
106 !! Returns an empty mesh node data access struct. Element types integer
107 !! array access will be set to empty.
108 !**********************************************************************
109 function syscgetelementtypedataf_empty() result (ret)
110  import :: syscelementtypedataf
111  type(SyscElementTypeDataF) :: ret
112 !DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
113 !DIR$ ATTRIBUTES DLLIMPORT :: syscGetElementTypeDataF_Empty
114 !DIR$ ENDIF
115 end function syscgetelementtypedataf_empty
116 !
117 !**********************************************************************
118 !! \brief Create a mesh node data access struct, given node ids and
119 !! node coords in same order.
120 !**********************************************************************
121 function syscgetelementtypedataf(elementTypes) result (ret)
123  type(SyscOutputIntegerDataF), intent(in) :: elementTypes
124  type(SyscElementTypeDataF) :: ret
125 !DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
126 !DIR$ ATTRIBUTES DLLIMPORT :: syscGetElementTypeDataF
127 !DIR$ ENDIF
128 end function syscgetelementtypedataf
129 !
130 end interface syscgetelementtypedataf
131 !
132 ! *********************************************************************
133 !! \brief Element node count access struct.
134 ! *********************************************************************
136  type(SyscOutputIntegerDataF) :: elementNodeCounts
138 !
139 !**********************************************************************
141 !**********************************************************************
142 !! \brief Returns an empty element node count data access struct.
143 !**********************************************************************
144 function syscgetelementnodecountdataf_empty() result (ret)
145  import :: syscelementnodecountdataf
146  type(SyscElementNodeCountDataF) :: ret
147 !DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
148 !DIR$ ATTRIBUTES DLLIMPORT :: syscGetElementNodeCountDataF_Empty
149 !DIR$ ENDIF
150 end function syscgetelementnodecountdataf_empty
151 !
152 !**********************************************************************
153 !! \brief Create an element node count node data access struct, given
154 !! element node counts array.
155 !**********************************************************************
156 function syscgetelementnodecountdataf(elemNodeCounts) &
157  result(ret)
159  type(SyscOutputIntegerDataF), intent(in) :: elemNodeCounts
160  type(SyscElementNodeCountDataF) :: ret
161 !DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
162 !DIR$ ATTRIBUTES DLLIMPORT :: syscGetElementNodeCountDataF
163 !DIR$ ENDIF
164 end function syscgetelementnodecountdataf
165 !
166 end interface syscgetelementnodecountdataf
167 !
168 ! *********************************************************************
169 !! \brief Element-to-node connectivity struct.
170 ! *********************************************************************
172  type(SyscOutputIntegerDataF) :: elemNodeIds
174 !
175 !**********************************************************************
177 !**********************************************************************
178 !! \brief Returns an empty element-to-node connectivity struct.
179 !**********************************************************************
180 function syscgetelementnodeconnectivitydataf_empty() result (ret)
182  type(SyscElementNodeConnectivityDataF) :: ret
183 !DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
184 !DIR$ ATTRIBUTES DLLIMPORT :: syscGetElementNodeConnectivityDataF_Empty
185 !DIR$ ENDIF
186 end function syscgetelementnodeconnectivitydataf_empty
187 !
188 !**********************************************************************
189 !! \brief Create an element-to-node connectivity struct, given
190 !! element node ids array.
191 !**********************************************************************
192 function syscgetelementnodeconnectivitydataf(elemNodeConn) &
193  result(ret)
195  type(SyscOutputIntegerDataF), intent(in) :: elemNodeConn
196  type(SyscElementNodeConnectivityDataF) :: ret
197 !DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
198 !DIR$ ATTRIBUTES DLLIMPORT :: syscGetElementNodeConnectivityDataF
199 !DIR$ ENDIF
201 !
203 !
204 ! *********************************************************************
205 !! \brief Face-to-cell connectivity struct.
206 ! *********************************************************************
208  type(SyscOutputIntegerDataF) :: cell0Ids
209  type(SyscOutputIntegerDataF) :: cell1Ids
211 !
212 !**********************************************************************
214 !**********************************************************************
215 !! \brief Returns an empty face-to-cell connectivity struct.
216 !**********************************************************************
217 function syscgetfacecellconnectivitydataf_empty() result (ret)
219  type(SyscFaceCellConnectivityDataF) :: ret
220 !DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
221 !DIR$ ATTRIBUTES DLLIMPORT :: syscGetFaceCellConnectivityDataF_Empty
222 !DIR$ ENDIF
223 end function syscgetfacecellconnectivitydataf_empty
224 !
225 !**********************************************************************
226 !! \brief Create a face-to-cell connectivity struct, given cell0Ids
227 !! and cell1Ids arrays.
228 !**********************************************************************
229 function syscgetfacecellconnectivitydataf(cell0Ids, cell1Ids) &
230  result(ret)
232  type(SyscOutputIntegerDataF), intent(in) :: cell0Ids
233  type(SyscOutputIntegerDataF), intent(in) :: cell1Ids
234  type(SyscFaceCellConnectivityDataF) :: ret
235 !DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
236 !DIR$ ATTRIBUTES DLLIMPORT :: syscGetFaceCellConnectivityDataF
237 !DIR$ ENDIF
239 !
241 !
242 ! *********************************************************************
243 !! \brief Cell id data struct.
244 ! *********************************************************************
246  type(SyscOutputIntegerDataF) :: cellIds
247 end type sysccelliddataf
248 !
249 !**********************************************************************
251 !**********************************************************************
252 !! \brief Returns an empty cell id data struct.
253 !**********************************************************************
254 function syscgetcelliddataf_empty() result (ret)
255  import :: sysccelliddataf
256  type(SyscCellIdDataF) :: ret
257 !DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
258 !DIR$ ATTRIBUTES DLLIMPORT :: syscGetCellIdDataF_Empty
259 !DIR$ ENDIF
260 end function syscgetcelliddataf_empty
261 !
262 !**********************************************************************
263 !! \brief Create a cell id data struct, given cell ids array.
264 !**********************************************************************
265 function syscgetcelliddataf(cellIds) result (ret)
267  type(SyscOutputIntegerDataF), intent(in) :: cellIds
268  type(SyscCellIdDataF) :: ret
269 !DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
270 !DIR$ ATTRIBUTES DLLIMPORT :: syscGetCellIdDataF
271 !DIR$ ENDIF
272 end function syscgetcelliddataf
273 !
274 end interface syscgetcelliddataf
275 !
276 ! *********************************************************************
277 !! \brief Element id data struct.
278 ! *********************************************************************
280  type(SyscOutputIntegerDataF) :: elementIds
281 end type syscelementiddataf
282 !
283 !**********************************************************************
285 !**********************************************************************
286 !! \brief Returns an empty element id data struct.
287 !**********************************************************************
288 function syscgetelementiddataf_empty() result (ret)
289  import :: syscelementiddataf
290  type(SyscElementIdDataF) :: ret
291 !DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
292 !DIR$ ATTRIBUTES DLLIMPORT :: syscGetElementIdDataF_Empty
293 !DIR$ ENDIF
294 end function syscgetelementiddataf_empty
295 !
296 !**********************************************************************
297 !! \brief Create a element id data struct, given element ids array.
298 !**********************************************************************
299 function syscgetelementiddataf(elementIds) result (ret)
301  type(SyscOutputIntegerDataF), intent(in) :: elementIds
302  type(SyscElementIdDataF) :: ret
303 !DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
304 !DIR$ ATTRIBUTES DLLIMPORT :: syscGetElementIdDataF
305 !DIR$ ENDIF
306 end function syscgetelementiddataf
307 !
308 end interface syscgetelementiddataf
309 !
310 ! *********************************************************************
311 !! \brief Face data access struct, provides read-only access to the
312 !! mesh faces.
313 !
315  type(syscelementiddataf) :: faceids
316  type(syscelementtypedataf) :: facetypes
317  type(syscelementnodecountdataf) :: facenodecounts
318  type(syscelementnodeconnectivitydataf) :: facenodeconnectivity
319  type(syscfacecellconnectivitydataf) :: facecellconnectivity
320 end type syscfacedataf
321 !
322 !**********************************************************************
324 !
325 !**********************************************************************
326 !! \brief Create a mesh face data access struct.
327 !!
328 !! Returns an empty mesh face data access struct.
329 !! All members will be assigned default values.
330 !**********************************************************************
331 function syscgetfacedataf() result (ret)
332  import :: syscfacedataf
333  type(SyscFaceDataF) :: ret
334 !DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
335 !DIR$ ATTRIBUTES DLLIMPORT :: syscGetFaceDataF
336 !DIR$ ENDIF
337 end function syscgetfacedataf
338 !
339 !**********************************************************************
340 !! \brief Create a mesh face data access struct.
341 !**********************************************************************
342 function syscgetfacedataf_itn(faceIds, faceTypes, &
343  faceNodeConnectivity) result (ret)
344 !
345  import :: syscfacedataf, syscelementiddataf, &
347  type(SyscElementIdDataF), intent(in) :: faceIds
348  type(SyscElementTypeDataF), intent(in) :: faceTypes
349  type(SyscElementNodeConnectivityDataF), intent(in) :: &
350  faceNodeConnectivity
351  type(SyscFaceDataF) :: ret
352 !
353 !DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
354 !DIR$ ATTRIBUTES DLLIMPORT :: syscGetFaceDataF_ITN
355 !DIR$ ENDIF
356 !
357 end function syscgetfacedataf_itn
358 !
359 !**********************************************************************
360 !! \brief Create a mesh face data access struct.
361 !**********************************************************************
362 function syscgetfacedataf_cn(faceNodeCounts, faceNodeConnectivity) &
363  result(ret)
364 !
367  type(SyscElementNodeCountDataF), intent(in) :: faceNodeCounts
368  type(SyscElementNodeConnectivityDataF), intent(in) :: &
369  faceNodeConnectivity
370  type(SyscFaceDataF) :: ret
371 !
372 !DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
373 !DIR$ ATTRIBUTES DLLIMPORT :: syscGetFaceDataF_CN
374 !DIR$ ENDIF
375 !
376 end function syscgetfacedataf_cn
377 !
378 end interface syscgetfacedataf
379 !
380 ! *********************************************************************
381 !! \brief Cell data access struct, provides read-only access to the
382 !! mesh cells.
383 !
385  type(syscelementiddataf) :: cellids
386  type(syscelementtypedataf) :: celltypes
387  type(syscelementnodeconnectivitydataf) :: cellnodeconnectivity
388 end type sysccelldataf
389 !
390 !**********************************************************************
392 !
393 !**********************************************************************
394 !! \brief Create a mesh cell data access struct.
395 !!
396 !! Returns an empty mesh cell data access struct.
397 !! All members will be assigned default values.
398 !**********************************************************************
399 function syscgetcelldataf() result (ret)
400  import :: sysccelldataf
401  type(SyscCellDataF) :: ret
402 !DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
403 !DIR$ ATTRIBUTES DLLIMPORT :: syscGetCellDataF
404 !DIR$ ENDIF
405 end function syscgetcelldataf
406 !
407 !**********************************************************************
408 !! \brief Create a mesh cell data access struct.
409 !**********************************************************************
410 function syscgetfacedataf_i(cellIds) result (ret)
411 !
413  type(SyscElementIdDataF), intent(in) :: cellIds
414  type(SyscCellDataF) :: ret
415 !
416 !DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
417 !DIR$ ATTRIBUTES DLLIMPORT :: syscGetFaceDataF_I
418 !DIR$ ENDIF
419 !
420 end function syscgetfacedataf_i
421 !
422 !**********************************************************************
423 !! \brief Create a mesh cell data access struct.
424 !**********************************************************************
425 function syscgetfacedataf_tn(cellTypes, &
426  cellNodeConnectivity) result (ret)
427 !
428  import :: sysccelldataf, syscelementtypedataf, &
430  type(SyscElementTypeDataF), intent(in) :: cellTypes
431  type(SyscElementNodeConnectivityDataF), intent(in) :: &
432  cellNodeConnectivity
433  type(SyscCellDataF) :: ret
434 !
435 !DIR$ IF DEFINED(_WIN32) .and. ( .not. DEFINED(SYSTEM_COUPLING_PARTICIPANT_PROXY))
436 !DIR$ ATTRIBUTES DLLIMPORT :: syscGetFaceDataF_TN
437 !DIR$ ENDIF
438 !
439 end function syscgetfacedataf_tn
440 !
441 end interface syscgetcelldataf
442 !
443 end module fortran
Provide an output integer data access type.
Create an output vector data access type.

Connect with Ansys