The TELEMAC-MASCARET system  trunk
api_instance_t2d.f
Go to the documentation of this file.
1 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4 !
5  MODULE api_instance_t2d
6 !
8  USE bief
14  & z,tob,liqbor,liebor,nsicla,e,partheniades,nomblay
16  IMPLICIT NONE
17 
18  PRIVATE
19 
20  PUBLIC :: create_instance_t2d
21  PUBLIC :: delete_instance_t2d
22  PUBLIC :: check_instance_t2d
23  PUBLIC :: get_instance_error_t2d
24  PUBLIC :: instance_t2d
25  PUBLIC :: instance_list_t2d
26  PUBLIC :: cpl_init_t2d
27 !
28 
29  ! TYPE FOR API COUPLED CALL
30  TYPE sisyphe_cpl
31  INTEGER, POINTER :: lt, leoprd, lisprd, nit
32  TYPE(bief_obj), POINTER :: u, v, h, hn, hprop
33  TYPE(bief_obj), POINTER :: zf, cf, chestr
34  TYPE(api_cpl), POINTER :: sis_cpl
35  INTEGER, POINTER :: percou
36  DOUBLE PRECISION, POINTER :: at
37  TYPE(bief_obj), POINTER :: visc
38  DOUBLE PRECISION, POINTER :: dt
39  TYPE(bief_obj), POINTER :: flbor,dm1
40  INTEGER, POINTER :: solsys
41  TYPE(bief_obj), POINTER :: usis, vsis, zconv
42  TYPE(bief_obj), POINTER :: dirmoy, hm0, tpr5, orbvel
43  END TYPE sisyphe_cpl
44 
45 
46  TYPE instance_t2d
47  ! RUN POSITION
48  INTEGER myposition
49  ! ERROR MESSAGE
50  CHARACTER(LEN=200) :: error_message
51  ! LIST OF ALL THE VARIABLE FOR MODEL
52  TYPE(bief_obj), POINTER :: hbor
53  TYPE(bief_obj), POINTER :: ubor
54  TYPE(bief_obj), POINTER :: vbor
55  TYPE(bief_obj), POINTER :: u
56  TYPE(bief_obj), POINTER :: v
57  TYPE(bief_obj), POINTER :: chestr
58  DOUBLE PRECISION, POINTER :: flux_boundaries(:)
59  DOUBLE PRECISION, POINTER :: cote(:)
60  DOUBLE PRECISION, POINTER :: debit(:)
61 !
62  TYPE(bief_mesh), POINTER :: mesh
63 !
64  TYPE(bief_obj), POINTER :: lihbor
65  TYPE(bief_obj), POINTER :: liubor
66  TYPE(bief_obj), POINTER :: livbor
67  TYPE(bief_obj), POINTER :: numliq
68 !
69  INTEGER, POINTER :: nit
70  INTEGER, POINTER :: lt
71  INTEGER :: nbmaxnshare
72  INTEGER, POINTER :: compleo
73  LOGICAL, POINTER :: leo
74  INTEGER, POINTER :: nptir
75  DOUBLE PRECISION,POINTER :: at
76  DOUBLE PRECISION,POINTER :: tmax
77  DOUBLE PRECISION,POINTER :: dt
78  DOUBLE PRECISION,POINTER :: fair
79 !
80  TYPE(bief_file), POINTER :: t2d_files(:)
81  INTEGER :: maxlu_t2d
82  INTEGER :: maxkeyword
83  INTEGER, POINTER :: t2dres
84  INTEGER, POINTER :: t2dgeo
85  INTEGER, POINTER :: t2dcli
86  INTEGER, POINTER :: t2atmb
87  INTEGER, POINTER :: t2dfo2
88  INTEGER, POINTER :: t2dimp
89  INTEGER, POINTER :: t2dpre
90 
91 !
92  CHARACTER(LEN=PATH_LEN), POINTER :: coupling
93  CHARACTER(LEN=20), POINTER :: equa
94 !
95 
96  TYPE(bief_obj), POINTER :: te5
97  TYPE(bief_obj), POINTER :: zf
98  TYPE(bief_obj), POINTER :: h
99  TYPE(bief_obj), POINTER :: dh
100 !
101  INTEGER, POINTER :: debug
102  ! LIST OF ALL THE VARIABLE FOR STATE
103  INTEGER :: truc
104  INTEGER, POINTER :: bnd_tide(:)
105  DOUBLE PRECISION, POINTER :: ctide
106  DOUBLE PRECISION, POINTER :: ctidev
107  DOUBLE PRECISION, POINTER :: msl
108 !
109  TYPE(bief_obj), POINTER :: ak
110  TYPE(bief_obj), POINTER :: ep
111  DOUBLE PRECISION, POINTER :: propnu
112  INTEGER, POINTER :: ptinig
113  INTEGER, POINTER :: iturb
115  !VARIABLES FOR SISYPHE CALL, NECESSARY FOR THE COUPLING
116  TYPE(sisyphe_cpl) :: sis
118  !TEMPORARY FOR SISYPHE CALL
119  LOGICAL :: susp1, charr_tel
120  LOGICAL :: charr_sis, susp_sis
121  INTEGER :: leoprd_charr
123  TYPE(bief_obj), POINTER :: h0
124  TYPE(bief_obj), POINTER :: t
125  INTEGER, POINTER :: ntrac
127  !
128  ! Gaia parameters
129  !
130  TYPE(bief_file), POINTER :: gai_files(:)
131  INTEGER :: maxlu_gai
132  TYPE(bief_obj), POINTER :: q
133  DOUBLE PRECISION, POINTER :: dcla(:)
134  DOUBLE PRECISION, POINTER :: ac(:)
135  DOUBLE PRECISION, POINTER :: xwc(:)
136  TYPE(bief_obj), POINTER :: z
137  TYPE(bief_obj), POINTER :: qbor
138  TYPE(bief_obj), POINTER :: ebor
139  TYPE(bief_obj), POINTER :: flbor
140  TYPE(bief_obj), POINTER :: tob
141  TYPE(bief_obj), POINTER :: clu
142  TYPE(bief_obj), POINTER :: clv
143  TYPE(bief_obj), POINTER :: liqbor
144  TYPE(bief_obj), POINTER :: liebor
145  INTEGER, POINTER :: nsicla
146  INTEGER, POINTER :: nomblay
147  TYPE(bief_obj), POINTER :: e
148  DOUBLE PRECISION, POINTER :: partheniades(:,:)
149  INTEGER, POINTER :: mardat(:)
150  INTEGER, POINTER :: martim(:)
151  LOGICAL, POINTER :: raztim
152  INTEGER, POINTER :: start_record
153  TYPE(bief_obj), POINTER :: volu2d
154  ! <new_var>
155  END TYPE ! MODEL_T2D
156 !
157  INTEGER, PARAMETER :: max_instances=10
158  TYPE(instance_t2d), POINTER :: instance_list_t2d(:)
159  LOGICAL, ALLOCATABLE :: used_instance(:)
160 !
161  CONTAINS
162 !
163  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
165  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
169  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
170  SUBROUTINE create_instance_t2d(ID,IERR)
171  ! initialise instance for telemac2d
172  INTEGER, INTENT(OUT) :: ID
173  INTEGER, INTENT(OUT) :: IERR
174 !
175  INTEGER :: I
176  id = 0
177  ierr = 0
178  ! If first time createing an instance allocating the instance array
179  IF(.NOT. ALLOCATED(used_instance)) THEN
180  ALLOCATE(used_instance(max_instances),stat=ierr)
181  IF(ierr.NE.0) THEN
182  err_mess = 'ERROR WHILE ALLOCATING USED INSTANCE ARRAY'
183  RETURN
184  ENDIF
185  used_instance = .false.
186  ALLOCATE(instance_list_t2d(max_instances),stat=ierr)
187  IF(ierr.NE.0) THEN
188  err_mess = 'ERROR WHILE ALLOCATING INSTANCE ARRAY'
189  RETURN
190  ENDIF
191  ENDIF
192 !
193  ! look for the first instance available
194  i = 1
195  DO WHILE(used_instance(i).AND.i.LE.max_instances)
196  i = i + 1
197  ENDDO
198  id = i
199  used_instance(id) = .true.
200 !
201  ! if still equals 0 no available instance was found then we crash
202  IF(id.EQ.(max_instances+1))THEN
203  ierr = max_instance_error
204  err_mess = "MAX INSTANCE REACHED "
205  RETURN
206  ENDIF
207  !
208  instance_list_t2d(id)%MYPOSITION = no_position
209 ! Link with telemac2d variables
210  CALL update_instance_t2d(id,ierr)
211 
212  END SUBROUTINE create_instance_t2d
213 !
214  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
216  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
220  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
221  SUBROUTINE update_instance_t2d(ID,IERR)
222  ! initialise instance for telemac2d
223  INTEGER, INTENT(IN) :: ID
224  INTEGER, INTENT(OUT) :: IERR
225 !
226  ierr = 0
227 ! Link with telemac2d variables
228  instance_list_t2d(id)%HBOR => hbor
229  instance_list_t2d(id)%UBOR => ubor
230  instance_list_t2d(id)%VBOR => vbor
231  instance_list_t2d(id)%H => h
232  instance_list_t2d(id)%DH => dh
233  instance_list_t2d(id)%U => u
234  instance_list_t2d(id)%V => v
235  instance_list_t2d(id)%CHESTR => chestr
236  ! For allocatable arrays nag crashes if we try to point towards
237  ! an unallocated array
238  IF(ALLOCATED(flux_boundaries)) THEN
239  instance_list_t2d(id)%FLUX_BOUNDARIES => flux_boundaries
240  ENDIF
241  IF(ALLOCATED(cote)) THEN
242  instance_list_t2d(id)%COTE => cote
243  ENDIF
244  IF(ALLOCATED(debit)) THEN
245  instance_list_t2d(id)%DEBIT => debit
246  ENDIF
247 !
248  instance_list_t2d(id)%MESH => mesh
249  instance_list_t2d(id)%LIHBOR => lihbor
250  instance_list_t2d(id)%LIUBOR => liubor
251  instance_list_t2d(id)%LIVBOR => livbor
252  instance_list_t2d(id)%NUMLIQ => numliq
253  instance_list_t2d(id)%MAXLU_T2D = maxlu_t2d
254  instance_list_t2d(id)%MAXKEYWORD = maxkeyword
255 !
256  instance_list_t2d(id)%NIT => nit
257  instance_list_t2d(id)%LT => lt
258  instance_list_t2d(id)%NBMAXNSHARE = nbmaxnshare
259  instance_list_t2d(id)%COMPLEO => compleo
260  instance_list_t2d(id)%LEO => leo
261  instance_list_t2d(id)%NPTIR => nptir
262  instance_list_t2d(id)%AT => at
263  instance_list_t2d(id)%DT => dt
264  instance_list_t2d(id)%TMAX => tmax
265  instance_list_t2d(id)%FAIR => fair
266 !
267  instance_list_t2d(id)%T2D_FILES => t2d_files
268  instance_list_t2d(id)%T2DRES => t2dres
269  instance_list_t2d(id)%T2DGEO => t2dgeo
270  instance_list_t2d(id)%T2DCLI => t2dcli
271  instance_list_t2d(id)%T2ATMB => t2atmb
272  instance_list_t2d(id)%T2DFO2 => t2dfo2
273  instance_list_t2d(id)%T2DIMP => t2dimp
274  instance_list_t2d(id)%T2DPRE => t2dpre
275  instance_list_t2d(id)%MAXLU_T2D = maxlu_t2d
276  instance_list_t2d(id)%MAXKEYWORD = maxkeyword
277 !
278  instance_list_t2d(id)%COUPLING => coupling
279  instance_list_t2d(id)%EQUA => equa
280 !
281  instance_list_t2d(id)%AK => ak
282  instance_list_t2d(id)%EP => ep
283  instance_list_t2d(id)%PROPNU => propnu
284  instance_list_t2d(id)%ITURB => iturb
285  instance_list_t2d(id)%PTINIG => ptinig
286  instance_list_t2d(id)%T => t
287  instance_list_t2d(id)%NTRAC => ntrac
288 !
289  instance_list_t2d(id)%TE5 => te5
290  instance_list_t2d(id)%ZF => zf
291  instance_list_t2d(id)%H => h
292 !
293  instance_list_t2d(id)%DEBUG => debug
294  IF(ALLOCATED(debit)) THEN
295  instance_list_t2d(id)%BND_TIDE => bnd_tide
296  ENDIF
297  instance_list_t2d(id)%CTIDE => ctide
298  instance_list_t2d(id)%CTIDEV => ctidev
299  instance_list_t2d(id)%MSL => msl
300 
301  ! INITIALISATIONS POUR UN CAS SANS COUPLAGE
302  instance_list_t2d(id)%SIS%LT => lt
303  instance_list_t2d(id)%SIS%LEOPRD => leoprd
304  instance_list_t2d(id)%SIS%LISPRD => lisprd
305  instance_list_t2d(id)%SIS%NIT => nit
306  instance_list_t2d(id)%SIS%U => u
307  instance_list_t2d(id)%SIS%V => v
308  instance_list_t2d(id)%SIS%H => h
309  instance_list_t2d(id)%SIS%HN => hn
310  instance_list_t2d(id)%SIS%HPROP => hprop
311  instance_list_t2d(id)%SIS%ZF => zf
312  instance_list_t2d(id)%SIS%CF => cf
313  instance_list_t2d(id)%SIS%CHESTR => chestr
314  instance_list_t2d(id)%SIS%SIS_CPL => sis_cpl
315  instance_list_t2d(id)%SIS%PERCOU => percou
316  instance_list_t2d(id)%SIS%AT => at
317  instance_list_t2d(id)%SIS%VISC => visc
318  instance_list_t2d(id)%SIS%DT => dt
319  instance_list_t2d(id)%SIS%FLBOR => flbor
320  instance_list_t2d(id)%SIS%SOLSYS => solsys
321  instance_list_t2d(id)%SIS%DM1 => dm1
322  !USIS et VSIS modified of SOLSYS.EQ.2 after initialization
323  IF(instance_list_t2d(id)%SIS%SOLSYS.EQ.2) THEN
324  instance_list_t2d(id)%SIS%USIS => udel
325  instance_list_t2d(id)%SIS%VSIS => vdel
326  ELSE
327  instance_list_t2d(id)%SIS%USIS => uconv
328  instance_list_t2d(id)%SIS%VSIS => vconv
329  END IF
330  instance_list_t2d(id)%SIS%ZCONV => zconv
331  instance_list_t2d(id)%SIS%DIRMOY => dirmoy
332  instance_list_t2d(id)%SIS%HM0 => hm0
333  instance_list_t2d(id)%SIS%TPR5 => tpr5
334  instance_list_t2d(id)%SIS%ORBVEL => orbvel
335  instance_list_t2d(id)%H0 => h0
336  instance_list_t2d(id)%T => t
337  instance_list_t2d(id)%NTRAC => ntrac
338  ! GAIA
339  instance_list_t2d(id)%GAI_FILES => gai_files
340  instance_list_t2d(id)%MAXLU_GAI = maxlu_gai
341  instance_list_t2d(id)%Q => q
342  instance_list_t2d(id)%DCLA => dcla
343  instance_list_t2d(id)%AC => ac
344  instance_list_t2d(id)%XWC => xwc
345  instance_list_t2d(id)%Z => z
346  instance_list_t2d(id)%QBOR => qbor
347  instance_list_t2d(id)%EBOR => ebor
348  instance_list_t2d(id)%FLBOR => flbor
349  instance_list_t2d(id)%TOB => tob
350  instance_list_t2d(id)%CLU => clu
351  instance_list_t2d(id)%CLV => clv
352  instance_list_t2d(id)%LIQBOR => liqbor
353  instance_list_t2d(id)%LIEBOR => liebor
354  instance_list_t2d(id)%NSICLA => nsicla
355  instance_list_t2d(id)%NOMBLAY => nomblay
356  instance_list_t2d(id)%E => e
357  instance_list_t2d(id)%PARTHENIADES => partheniades
358  instance_list_t2d(id)%MARDAT => mardat
359  instance_list_t2d(id)%MARTIM => martim
360  instance_list_t2d(id)%RAZTIM => raztim
361  instance_list_t2d(id)%START_RECORD => start_record
362  instance_list_t2d(id)%VOLU2D => volu2d
363  instance_list_t2d(id)%PROPNU => propnu
364  ! <new_link>
365 
366  END SUBROUTINE update_instance_t2d
367 !
368 !
369  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
371  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
375  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
376  SUBROUTINE cpl_init_t2d(ID,IERR)
377  INTEGER, INTENT(IN) :: ID
378  INTEGER, INTENT(OUT) :: IERR
379  !
380  ierr = 0
381  IF(instance_list_t2d(id)%SIS%SOLSYS.EQ.2) THEN
382  instance_list_t2d(id)%SIS%USIS => udel
383  instance_list_t2d(id)%SIS%VSIS => vdel
384  ELSE
385  instance_list_t2d(id)%SIS%USIS => uconv
386  instance_list_t2d(id)%SIS%VSIS => vconv
387  END IF
388  END SUBROUTINE cpl_init_t2d
389 
390  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
392  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
396  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
397  SUBROUTINE delete_instance_t2d(ID,IERR)
398  INTEGER, INTENT(IN) :: ID
399  INTEGER, INTENT(OUT) :: IERR
400 !
401  ierr = 0
402  !
403  CALL check_instance_t2d(id,ierr)
404  IF(ierr.NE.0) RETURN
405  used_instance(id) = .false.
406  END SUBROUTINE delete_instance_t2d
407 !
408  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
410  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
414  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
415  SUBROUTINE check_instance_t2d(ID,IERR)
416  INTEGER, INTENT(IN) :: ID
417  INTEGER, INTENT(OUT) :: IERR
418 !
419  ierr = 0
420  IF(id.LE.0 .OR. id.GT.max_instances) THEN
422  err_mess = 'INVALID INSTANCE NUMBER'
423  RETURN
424  ENDIF
425  IF(.NOT.used_instance(id)) THEN
426  ierr = unused_instance_error
427  err_mess = 'INSTANCE NUMBER WAS NOT CREATED'
428  RETURN
429  ENDIF
430  CALL update_instance_t2d(id,ierr)
431  END SUBROUTINE check_instance_t2d
432 !
433  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
435  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
438  !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
439  SUBROUTINE get_instance_error_t2d(ID,MESS)
440  INTEGER, INTENT(IN) :: ID
441  CHARACTER(LEN=200), INTENT(OUT) :: MESS
442 !
443  mess = instance_list_t2d(id)%ERROR_MESSAGE
444 !
445  END SUBROUTINE get_instance_error_t2d
446  END MODULE api_instance_t2d
type(bief_obj), target hn
subroutine update_instance_t2d(ID, IERR)
type(bief_obj), target ubor
integer, parameter max_instances
type(api_cpl), target sis_cpl
type(bief_obj), target te5
type(bief_obj), target zconv
type(bief_obj), target t
type(bief_obj), target flbor
integer, dimension(3), target mardat
type(bief_obj), target h
type(bief_obj), target q
Flow rate.
subroutine, public cpl_init_t2d(ID, IERR)
subroutine, public get_instance_error_t2d(ID, MESS)
type(bief_obj), target ak
type(bief_obj), target uconv
double precision, dimension(nsiclm), target xwc
Settling velocities.
integer, parameter maxlu_gai
Maximum rank of logical units as declared in submit strings in the dictionary.
double precision, dimension(:), allocatable, target flux_boundaries
type(bief_obj), target visc
type(bief_file), dimension(maxlu_gai), target gai_files
For storing information on files.
subroutine, public delete_instance_t2d(ID, IERR)
integer, parameter maxlu_wac
type(bief_obj), target livbor
type(bief_obj), target hbor
subroutine, public create_instance_t2d(ID, IERR)
integer, parameter max_instance_error
double precision, dimension(:), allocatable, target debit
integer, parameter maxkeyword
double precision, target fair
type(instance_t2d), dimension(:), pointer, public instance_list_t2d
type(bief_obj), pointer vsis
type(bief_obj), target tpr5
type(bief_obj), target h0
type(bief_obj), target cf
integer, dimension(:), allocatable, target bnd_tide
type(bief_obj), target volu2d
double precision, target ctidev
integer, parameter maxlu_sis
type(bief_obj), target liubor
type(bief_obj), target hprop
double precision, target tmax
integer, parameter no_position
double precision, dimension(nsiclm), target dcla
Sediment diameter for each class It is only relevant for non-cohesive sediments. For the bedload...
type(bief_obj), target v
double precision, dimension(:), allocatable, target cote
double precision, target propnu
type(bief_obj), target u
type(bief_obj), target hm0
type(bief_obj), target zf
type(bief_mesh), target mesh
type(bief_obj), target vconv
type(bief_obj), target numliq
type(bief_obj), target ep
type(bief_obj), target qbor
type(bief_obj), target vbor
integer, parameter invalid_instance_num_error
type(bief_obj), target lihbor
double precision, target msl
type(bief_obj), target ebor
double precision, dimension(nsiclm), target ac
Critical shields parameter.
type(bief_obj), target dirmoy
integer, dimension(3), target martim
character(len=20), target equa
logical, dimension(:), allocatable used_instance
type(bief_obj), target clu
character(len=error_mess_len) err_mess
Error message.
type(bief_obj), pointer usis
type(bief_obj), target udel
type(bief_obj), target vdel
type(bief_obj), target dh
double precision, target ctide
type(bief_obj), target orbvel
double precision, target at
type(bief_obj), target dm1
integer, parameter unused_instance_error
double precision, target dt
character(len=path_len), target coupling
type(bief_obj), target chestr
type(bief_file), dimension(maxlu_t2d), target t2d_files
type(bief_obj), target clv
type(bief_file), dimension(maxlu_wac), target wac_files
type(bief_file), dimension(maxlu_sis), target sis_files
subroutine, public check_instance_t2d(ID, IERR)
Definition: bief.f:3