1C*  This file is part of MED.
2C*
3C*  COPYRIGHT (C) 1999 - 2019  EDF R&D, CEA/DEN
4C*  MED is free software: you can redistribute it and/or modify
5C*  it under the terms of the GNU Lesser General Public License as published by
6C*  the Free Software Foundation, either version 3 of the License, or
7C*  (at your option) any later version.
8C*
9C*  MED is distributed in the hope that it will be useful,
10C*  but WITHOUT ANY WARRANTY; without even the implied warranty of
11C*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12C*  GNU Lesser General Public License for more details.
13C*
14C*  You should have received a copy of the GNU Lesser General Public License
15C*  along with MED.  If not, see <http://www.gnu.org/licenses/>.
16C*
17
18      subroutine msecre(fid,mname,mdim,smname,setype,
19     &                  sgtype, etype, cret)
20c     DEC$ ATTRIBUTES DLLEXPORT :: msecre
21c
22      implicit none
23      save
24      character*(*) mname,smname
25      integer*8 fid
26      integer   cret,mdim,setype,sgtype,etype
27      integer msefcre
28c
29      etype = msefcre(fid,mname,len(mname),mdim,
30     &               smname,len(smname),setype,sgtype)
31c
32      if (etype.lt.0) then
33         cret = -1
34      else
35         cret = 0
36      endif
37c
38      return
39      end
40c
41c
42c
43      subroutine msense(fid,n,cret)
44c     DEC$ ATTRIBUTES DLLEXPORT :: msense
45c
46      implicit none
47      save
48      integer*8 fid
49      integer   n,cret
50      integer msefnse
51c
52      n = msefnse(fid)
53c
54      if (n.lt.0) then
55         cret = -1
56      else
57         cret = 0
58      endif
59c
60      return
61      end
62c
63c
64c
65      subroutine msesei(fid,it,mname,mgtype,mdim,smname,
66     &                  setype,snnode,sncell,sgtype,
67     &                  ncatt,ap,nvatt,cret)
68c     DEC$ ATTRIBUTES DLLEXPORT :: msesei
69c
70      implicit none
71      save
72      character*(*) mname,smname
73      integer*8 fid
74      integer   cret,mdim,setype,sgtype,it
75      integer snnode,sncell,ncatt,ap,nvatt,mgtype
76      integer msefsei
77c
78      cret = msefsei(fid,it,mname,mgtype,mdim,smname,
79     &               setype,snnode,sncell,sgtype,
80     &               ncatt,ap,nvatt)
81c
82      return
83      end
84c
85c
86c
87      subroutine msesin(fid,mname,mgtype,mdim,smname,
88     &                  setype,snnode,sncell,sgtype,
89     &                  ncatt,ap,nvatt,cret)
90c     DEC$ ATTRIBUTES DLLEXPORT :: msesin
91c
92      implicit none
93      save
94      character*(*) mname,smname
95      integer*8 fid
96      integer   cret,mdim,setype,sgtype
97      integer snnode,sncell,ncatt,ap,nvatt,mgtype
98      integer msefsin
99c
100      cret = msefsin(fid,mname,len(mname),mgtype,
101     &               mdim,smname,setype,snnode,
102     &               sncell,sgtype,ncatt,ap,nvatt)
103c
104      return
105      end
106c
107c
108c
109      subroutine msesen(fid,mgtype,mname,cret)
110c     DEC$ ATTRIBUTES DLLEXPORT :: msesen
111c
112      implicit none
113      save
114      character*(*) mname
115      integer*8 fid
116      integer   cret,mgtype
117      integer msefsen
118c
119      cret = msefsen(fid,mgtype,mname)
120c
121      return
122      end
123c
124c
125c
126      subroutine msesgt(fid,mname,gtype,cret)
127c     DEC$ ATTRIBUTES DLLEXPORT :: msesgt
128c
129      implicit none
130      save
131      character*(*) mname
132      integer*8 fid
133      integer   gtype,cret
134      integer msefsgt
135c
136      gtype = msefsgt(fid,mname,len(mname))
137c
138      if (gtype.lt.0) then
139         cret = -1
140      else
141         cret = 0
142      endif
143c
144      return
145      end
146c
147c
148c
149      subroutine msevac(fid,mname,aname,atype,anc,cret)
150c     DEC$ ATTRIBUTES DLLEXPORT :: msevac
151c
152      implicit none
153      save
154      character*(*) mname,aname
155      integer*8 fid
156      integer   cret,atype,anc
157      integer msefvac
158c
159      cret = msefvac(fid,mname,len(mname),
160     &               aname,len(aname),atype,
161     &               anc)
162c
163      return
164      end
165c
166c
167c
168      subroutine msevni(fid,mname,aname,atype,anc,cret)
169c     DEC$ ATTRIBUTES DLLEXPORT :: msevni
170c
171      implicit none
172      save
173      character*(*) mname,aname
174      integer*8 fid
175      integer   cret,atype,anc
176      integer msefvni
177c
178      cret = msefvni(fid,mname,len(mname),
179     &               aname,len(aname),
180     &               atype,anc)
181c
182      return
183      end
184c
185c
186c
187      subroutine msevai(fid,mname,it,aname,atype,anc,cret)
188c     DEC$ ATTRIBUTES DLLEXPORT :: msevai
189c
190      implicit none
191      save
192      character*(*) mname,aname
193      integer*8 fid
194      integer   cret,atype,anc,it
195      integer msefvai
196c
197      cret = msefvai(fid,mname,len(mname),it,
198     &               aname,atype,anc)
199c
200      return
201      end
202c
203c
204c
205      subroutine mseasz(atype,size,cret)
206c     DEC$ ATTRIBUTES DLLEXPORT :: mseasz
207c
208      implicit none
209      save
210      integer size,atype,cret
211      integer msefasz
212c
213      size = msefasz(atype)
214c
215      if (size.lt.0) then
216         cret = -1
217      else
218         cret = 0
219      endif
220c
221      return
222      end
223c
224c
225c
226      subroutine mseraw(fid,mname,aname,atype,anc,
227     &                  setype,val,cret)
228c     DEC$ ATTRIBUTES DLLEXPORT :: mseraw
229c
230      implicit none
231      save
232      character*(*) mname,aname
233      integer*8 fid
234      integer   cret,atype,anc,setype
235      real*8 val(*)
236      integer msefraw
237c
238      cret = msefraw(fid,mname,len(mname),
239     &               aname,len(aname),atype,
240     &               anc,setype,val)
241c
242      return
243      end
244c
245c
246c
247      subroutine mseiaw(fid,mname,aname,atype,anc,
248     &                  setype,val,cret)
249c     DEC$ ATTRIBUTES DLLEXPORT :: mseiaw
250c
251      implicit none
252      save
253      character*(*) mname,aname
254      integer*8 fid
255      integer   cret,atype,anc,setype
256      integer val(*)
257      integer msefiaw
258c
259      cret = msefiaw(fid,mname,len(mname),
260     &               aname,len(aname),atype,
261     &               anc,setype,val)
262c
263      return
264      end
265c
266c
267c
268      subroutine msesaw(fid,mname,aname,atype,anc,
269     &                  setype,val,cret)
270c     DEC$ ATTRIBUTES DLLEXPORT :: msesaw
271c
272      implicit none
273      save
274      character*(*) mname,aname
275      integer*8 fid
276      integer   cret,atype,anc,setype
277      character *(*) val
278      integer msefsaw
279c
280      cret = msefsaw(fid,mname,len(mname),
281     &               aname,len(aname),atype,
282     &               anc,setype,val,anc*64)
283c
284      return
285      end
286c
287c
288c
289      subroutine mserpw(fid,mname,aname,atype,anc,
290     &                  setype,pname,val,cret)
291c     DEC$ ATTRIBUTES DLLEXPORT :: mserpw
292c
293      implicit none
294      save
295      character*(*) mname,aname,pname
296      integer*8 fid
297      integer   cret,atype,anc,setype
298      real*8 val(*)
299      integer msefrpw
300c
301      cret = msefrpw(fid,mname,len(mname),
302     &               aname,len(aname),atype,
303     &               anc,setype,pname,len(pname),
304     &               val)
305c
306      return
307      end
308c
309c
310c
311      subroutine mseipw(fid,mname,aname,atype,anc,
312     &                  setype,pname,val,cret)
313c     DEC$ ATTRIBUTES DLLEXPORT :: mseipw
314c
315      implicit none
316      save
317      character*(*) mname,aname,pname
318      integer*8 fid
319      integer   cret,atype,anc,setype
320      integer val(*)
321      integer msefipw
322c
323      cret = msefipw(fid,mname,len(mname),
324     &               aname,len(aname),atype,
325     &               anc,setype,pname,len(pname),
326     &               val)
327c
328      return
329      end
330c
331c
332c
333      subroutine msespw(fid,mname,aname,atype,anc,
334     &                  setype,pname,val,cret)
335c     DEC$ ATTRIBUTES DLLEXPORT :: msespw
336c
337      implicit none
338      save
339      character*(*) mname,aname,pname
340      integer*8 fid
341      integer   cret,atype,anc,setype
342      character *(*) val
343      integer msefspw
344c
345      cret = msefspw(fid,mname,len(mname),
346     &               aname,len(aname),atype,
347     &               anc,setype,pname,len(pname),
348     &               val,64*anc)
349c
350      return
351      end
352c
353c
354c
355      subroutine msecni(fid,mname,aname,atype,anc,
356     &                  setype,pname,psize,cret)
357c     DEC$ ATTRIBUTES DLLEXPORT :: msecni
358c
359      implicit none
360      save
361      character*(*) mname,aname,pname
362      integer*8 fid
363      integer   cret,atype,anc,setype,psize
364      integer msefcni
365c
366      cret = msefcni(fid,mname,len(mname),
367     &               aname,len(aname),atype,
368     &               anc,setype,pname,psize)
369c
370      return
371      end
372c
373c
374c
375      subroutine msecai(fid,mname,it,aname,atype,anc,
376     &                  setype,pname,psize,cret)
377c     DEC$ ATTRIBUTES DLLEXPORT :: msecai
378c
379      implicit none
380      save
381      character*(*) mname,aname,pname
382      integer*8 fid
383      integer   cret,atype,anc,setype,psize,it
384      integer msefcai
385c
386      cret = msefcai(fid,mname,len(mname),it,
387     &               aname,atype,
388     &               anc,setype,pname,psize)
389c
390      return
391      end
392c
393c
394c
395      subroutine mserar(fid,mname,aname,val,cret)
396c     DEC$ ATTRIBUTES DLLEXPORT :: mserar
397c
398      implicit none
399      save
400      character*(*) mname,aname
401      integer*8 fid
402      integer   cret
403      real*8 val(*)
404      integer msefrar
405c
406      cret = msefrar(fid,mname,len(mname),
407     &               aname,len(aname),val)
408c
409      return
410      end
411c
412c
413c
414      subroutine mseiar(fid,mname,aname,val,cret)
415c     DEC$ ATTRIBUTES DLLEXPORT :: mseiar
416c
417      implicit none
418      save
419      character*(*) mname,aname
420      integer*8 fid
421      integer   cret
422      integer val(*)
423      integer msefiar
424c
425      cret = msefiar(fid,mname,len(mname),
426     &               aname,len(aname),val)
427c
428      return
429      end
430c
431c
432c
433      subroutine msesar(fid,mname,aname,val,cret)
434c     DEC$ ATTRIBUTES DLLEXPORT :: msesar
435c
436      implicit none
437      save
438      character*(*) mname,aname
439      integer*8 fid
440      integer   cret
441      character *(*) val
442      integer msefsar
443c
444      cret = msefsar(fid,mname,len(mname),
445     &               aname,len(aname),
446     &               val)
447c
448      return
449      end
450