49 USE modi_open_namelist
50 USE modi_close_namelist
56 USE yomhook
,ONLY : lhook, dr_hook
57 USE parkind1
,ONLY : jprb
67 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
68 CHARACTER(LEN=28),
INTENT(IN) :: hfile
76 CHARACTER(LEN=400) :: ystring
77 CHARACTER(LEN=80) :: ystring1, ystring2, ystring3, ystring4, &
78 ystring5, ystring6, ystring7, ystring8, ystring9
79 CHARACTER(LEN=30),
DIMENSION(:),
ALLOCATABLE :: yuse_name
80 CHARACTER(LEN=30),
DIMENSION(:),
ALLOCATABLE :: ybld_name
81 CHARACTER(LEN=30),
DIMENSION(:),
ALLOCATABLE :: ylayer
93 CHARACTER(LEN=10) :: ytype_of_data
95 REAL(KIND=JPRB) :: zhook_handle
100 IF (lhook) CALL dr_hook(
'READ_CSVDATA_TEB',0,zhook_handle)
103 IF (len_trim(hfile)==0)
THEN
104 IF (lhook) CALL dr_hook(
'READ_CSVDATA_TEB',1,zhook_handle)
126 bdd%NDESC_CODE = bdd%NDESC_BLD * bdd%NDESC_AGE
140 ALLOCATE(bdd%NDESC_AGE_LIST(bdd%NDESC_AGE))
141 ALLOCATE(bdd%NDESC_AGE_DATE(bdd%NDESC_AGE))
151 READ(ilunam,end=98,fmt=
'(A400)') ystring
155 IF (len_trim(ystring)>0) &
156 READ(ystring,fmt=*) ystring1, ystring2, ystring3, ystring4, ystring5, ystring6
157 IF (ystring1==
'DATE' .AND. ystring2(4:)==
'plage de date')
THEN
158 READ(ystring,fmt=*) ystring1, ystring2, bdd%NDESC_AGE_LIST(:)
160 IF (ystring1==
'DATE' .AND. ystring2(:)==
'Date maximum')
THEN
161 READ(ystring,fmt=*) ystring1, ystring2, bdd%NDESC_AGE_DATE(:)
175 ALLOCATE(ybld_name(bdd%NDESC_BLD))
176 ALLOCATE(yuse_name(bdd%NDESC_USE))
178 ALLOCATE(bdd%NDESC_BLD_LIST(bdd%NDESC_BLD))
179 ALLOCATE(bdd%NDESC_CODE_LIST(bdd%NDESC_CODE))
180 ALLOCATE(bdd%NDESC_USE_LIST(bdd%NDESC_USE))
190 READ(ilunam,end=99,fmt=
'(A400)') ystring
194 IF (len_trim(ystring)>0) &
195 READ(ystring,fmt=*) ystring1, ystring2, ystring3, ystring4, ystring5, ystring6
197 IF (ystring1==
'TYPES USAGES' .AND. ystring4==
'TYPES BATIMENTS')
THEN
199 DO jbld=1,max(bdd%NDESC_BLD,bdd%NDESC_USE)
200 READ(ilunam,fmt=
'(A400)') ystring
202 READ(ystring,fmt=*) ystring1, i1, ystring3, ystring4, i2, ystring6
204 IF (jbld<=bdd%NDESC_BLD)
THEN
205 ybld_name(jbld) = ystring4
206 bdd%NDESC_BLD_LIST(jbld) = i2
207 DO jage=1,bdd%NDESC_AGE
208 iindex = (jbld-1)*bdd%NDESC_AGE + jage
209 bdd%NDESC_CODE_LIST(iindex) =
bld_code(bdd%NDESC_BLD_LIST(jbld),bdd%NDESC_AGE_LIST(jage))
213 IF (jbld<=bdd%NDESC_USE)
THEN
214 yuse_name(jbld) = ystring1
215 bdd%NDESC_USE_LIST(jbld) = i1
230 ytype_of_data =
'STRUCTURE'
234 ALLOCATE(bdd%XDESC_ALB_ROOF(bdd%NDESC_CODE))
235 CALL
read_in_csvfile(
'TOITURE',ybld_name,
"Exterieur",
'Albedo',bdd%XDESC_ALB_ROOF)
237 ALLOCATE(bdd%XDESC_ALB_WALL(bdd%NDESC_CODE))
238 CALL
read_in_csvfile(
'MUR',ybld_name,
"Couche 1 (Ext)",
'Albedo',bdd%XDESC_ALB_WALL)
240 ALLOCATE(bdd%XDESC_EMIS_ROOF(bdd%NDESC_CODE))
241 CALL
read_in_csvfile(
'TOITURE',ybld_name,
"Exterieur",
'Emissivite',bdd%XDESC_EMIS_ROOF)
243 ALLOCATE(bdd%XDESC_EMIS_WALL(bdd%NDESC_CODE))
244 CALL
read_in_csvfile(
'MUR',ybld_name,
"Couche 1 (Ext)",
'Emissivite',bdd%XDESC_EMIS_WALL)
248 ALLOCATE(ylayer(bdd%NDESC_ROOF_LAYER))
249 DO jlayer=1,bdd%NDESC_ROOF_LAYER
251 WRITE(ylayer(jlayer),fmt=
'(A)')
'Exterieur '
252 ELSEIF (jlayer==bdd%NDESC_ROOF_LAYER)
THEN
253 WRITE(ylayer(jlayer),fmt=
'(A)')
'Interieur '
255 WRITE(ylayer(jlayer),fmt=
'(A)')
'Milieu '
259 ALLOCATE(bdd%XDESC_HC_ROOF(bdd%NDESC_CODE,bdd%NDESC_ROOF_LAYER))
260 ALLOCATE(bdd%XDESC_TC_ROOF(bdd%NDESC_CODE,bdd%NDESC_ROOF_LAYER))
261 ALLOCATE(bdd%XDESC_D_ROOF (bdd%NDESC_CODE,bdd%NDESC_ROOF_LAYER))
262 DO jlayer=1,bdd%NDESC_ROOF_LAYER
263 CALL
read_in_csvfile(
'TOITURE',ybld_name,ylayer(jlayer),
'Chaleur specifique C',bdd%XDESC_HC_ROOF(:,jlayer))
264 CALL
read_in_csvfile(
'TOITURE',ybld_name,ylayer(jlayer),
'Conductivite',bdd%XDESC_TC_ROOF(:,jlayer))
265 CALL
read_in_csvfile(
'TOITURE',ybld_name,ylayer(jlayer),
'Epaisseur d',bdd%XDESC_D_ROOF(:,jlayer))
268 bdd%XDESC_HC_ROOF = bdd%XDESC_HC_ROOF * 1000.
273 ALLOCATE(ylayer(bdd%NDESC_WALL_LAYER))
274 DO jlayer=1,bdd%NDESC_WALL_LAYER
276 WRITE(ylayer(jlayer),fmt=
'(A,I1,A)')
'Couche ',jlayer,
' (Ext)'
277 ELSEIF (jlayer==bdd%NDESC_WALL_LAYER)
THEN
278 WRITE(ylayer(jlayer),fmt=
'(A,I1,A)')
'Couche ',jlayer,
' (Int)'
280 WRITE(ylayer(jlayer),fmt=
'(A,I1,A)')
'Couche ',jlayer,
' (Milieu)'
284 ALLOCATE(bdd%XDESC_HC_WALL(bdd%NDESC_CODE,bdd%NDESC_WALL_LAYER))
285 ALLOCATE(bdd%XDESC_TC_WALL(bdd%NDESC_CODE,bdd%NDESC_WALL_LAYER))
286 ALLOCATE(bdd%XDESC_D_WALL (bdd%NDESC_CODE,bdd%NDESC_WALL_LAYER))
287 DO jlayer=1,bdd%NDESC_WALL_LAYER
288 CALL
read_in_csvfile(
'MUR',ybld_name,ylayer(jlayer),
'Chaleur specifique C',bdd%XDESC_HC_WALL(:,jlayer))
289 CALL
read_in_csvfile(
'MUR',ybld_name,ylayer(jlayer),
'Conductivite',bdd%XDESC_TC_WALL(:,jlayer))
290 CALL
read_in_csvfile(
'MUR',ybld_name,ylayer(jlayer),
'Epaisseur d',bdd%XDESC_D_WALL(:,jlayer))
293 bdd%XDESC_HC_WALL = bdd%XDESC_HC_WALL * 1000.
299 ALLOCATE(ylayer(bdd%NDESC_FLOOR_LAYER))
300 DO jlayer=1,bdd%NDESC_FLOOR_LAYER
302 WRITE(ylayer(jlayer),fmt=
'(A)')
'Superieur '
303 ELSEIF (jlayer==bdd%NDESC_FLOOR_LAYER)
THEN
304 WRITE(ylayer(jlayer),fmt=
'(A)')
'Inferieur '
306 WRITE(ylayer(jlayer),fmt=
'(A)')
'Milieu '
310 ALLOCATE(bdd%XDESC_HC_FLOOR(bdd%NDESC_CODE,bdd%NDESC_FLOOR_LAYER))
311 ALLOCATE(bdd%XDESC_TC_FLOOR(bdd%NDESC_CODE,bdd%NDESC_FLOOR_LAYER))
312 ALLOCATE(bdd%XDESC_D_FLOOR (bdd%NDESC_CODE,bdd%NDESC_FLOOR_LAYER))
313 DO jlayer=1,bdd%NDESC_FLOOR_LAYER
314 CALL
read_in_csvfile(
'PLANCHER',ybld_name,ylayer(jlayer),
'Chaleur specifique C',bdd%XDESC_HC_FLOOR(:,jlayer))
315 CALL
read_in_csvfile(
'PLANCHER',ybld_name,ylayer(jlayer),
'Conductivite',bdd%XDESC_TC_FLOOR(:,jlayer))
316 CALL
read_in_csvfile(
'PLANCHER',ybld_name,ylayer(jlayer),
'Epaisseur d',bdd%XDESC_D_FLOOR(:,jlayer))
319 bdd%XDESC_HC_FLOOR = bdd%XDESC_HC_FLOOR * 1000.
325 ALLOCATE(bdd%XDESC_SHGC(bdd%NDESC_CODE))
326 CALL
read_in_csvfile(
'ENVELOPPE',ybld_name,
"Vitrage",
'Facteur solaire m',bdd%XDESC_SHGC)
328 ALLOCATE(bdd%XDESC_U_WIN(bdd%NDESC_CODE))
329 CALL
read_in_csvfile(
'ENVELOPPE',ybld_name,
"Vitrage",
'U-factor',bdd%XDESC_U_WIN)
331 ALLOCATE(bdd%XDESC_GR(bdd%NDESC_CODE))
332 CALL
read_in_csvfile(
'ENVELOPPE',ybld_name,
"Vitrage",
'Surface fenetre /surface facade',bdd%XDESC_GR)
339 ytype_of_data =
'EQUIPMENT'
346 ALLOCATE(bdd%XDESC_F_WASTE_CAN(bdd%NDESC_CODE))
347 CALL
read_in_csvfile(
'EQUIPEMENT',ybld_name,
"Climatisation",
'Taux de rejets en toitures',bdd%XDESC_F_WASTE_CAN)
348 bdd%XDESC_F_WASTE_CAN = bdd%XDESC_F_WASTE_CAN / 100.
351 ALLOCATE(bdd%XDESC_F_WATER_COND(bdd%NDESC_CODE))
352 CALL
read_in_csvfile(
'EQUIPEMENT',ybld_name,
"Climatisation",
'Taux de rejets secs',bdd%XDESC_F_WATER_COND)
353 bdd%XDESC_F_WATER_COND = 1. - bdd%XDESC_F_WATER_COND / 100.
356 ALLOCATE(bdd%XDESC_COP_RAT(bdd%NDESC_CODE))
357 CALL
read_in_csvfile(
'EQUIPEMENT',ybld_name,
"Climatisation",
'Performance (COP)',bdd%XDESC_COP_RAT)
363 ALLOCATE(bdd%XDESC_EFF_HEAT(bdd%NDESC_CODE))
365 bdd%XDESC_EFF_HEAT = 0.9
370 ALLOCATE(bdd%XDESC_INF(bdd%NDESC_CODE))
371 CALL
read_in_csvfile(
'EQUIPEMENT',ybld_name,
"Infiltration",
"Taux de renouvellement d_air",bdd%XDESC_INF)
373 CALL
read_hyp_in_csvfile(
"Ventilation Mecanique Controlee",
"Taux de renouvellement d_air",ihyp)
374 ALLOCATE(bdd%XDESC_V_VENT(bdd%NDESC_CODE))
375 CALL
read_in_csvfile(
'EQUIPEMENT',ybld_name,
"Ventilation Mecanique Controlee",
"Taux de renouvellement d_air",bdd%XDESC_V_VENT)
379 ALLOCATE(bdd%XDESC_GREENROOF(bdd%NDESC_CODE))
380 CALL
read_in_csvfile(
'EQUIPEMENT',ybld_name,
"Toits vegetalises",
"Implantation",bdd%XDESC_GREENROOF)
384 ALLOCATE(bdd%XDESC_EMIS_PANEL(bdd%NDESC_CODE))
385 CALL
read_in_csvfile(
'EQUIPEMENT',ybld_name,
"Panneau solaire",
"Emissivite",bdd%XDESC_EMIS_PANEL)
388 ALLOCATE(bdd%XDESC_ALB_PANEL(bdd%NDESC_CODE))
389 CALL
read_in_csvfile(
'EQUIPEMENT',ybld_name,
"Panneau solaire",
"Coefficient d_absorption",bdd%XDESC_ALB_PANEL)
390 bdd%XDESC_ALB_PANEL = 1. - bdd%XDESC_ALB_PANEL
393 ALLOCATE(bdd%XDESC_EFF_PANEL(bdd%NDESC_CODE))
394 CALL
read_in_csvfile(
'EQUIPEMENT',ybld_name,
"Panneau solaire",
"Rendement",bdd%XDESC_EFF_PANEL)
395 bdd%XDESC_EFF_PANEL = bdd%XDESC_EFF_PANEL /100.
398 ALLOCATE(bdd%XDESC_FRAC_PANEL(bdd%NDESC_CODE))
399 CALL
read_in_csvfile(
'EQUIPEMENT',ybld_name,
"Panneau solaire",
"Surface des panneaux / surface du toit",bdd%XDESC_FRAC_PANEL)
400 bdd%XDESC_FRAC_PANEL = bdd%XDESC_FRAC_PANEL/100.
410 ytype_of_data =
'USE'
414 ALLOCATE(bdd%XDESC_TCOOL_TARGET(bdd%NDESC_USE))
415 CALL
read_in_csvfile(
'USAGE',yuse_name,
"Climatisation",
"Temp. de consigne",bdd%XDESC_TCOOL_TARGET)
416 bdd%XDESC_TCOOL_TARGET = bdd%XDESC_TCOOL_TARGET + xtt
420 ALLOCATE(bdd%XDESC_THEAT_TARGET(bdd%NDESC_USE))
421 CALL
read_in_csvfile(
'USAGE',yuse_name,
"Chauffage",
"Temp. de consigne",bdd%XDESC_THEAT_TARGET)
422 bdd%XDESC_THEAT_TARGET = bdd%XDESC_THEAT_TARGET + xtt
426 ALLOCATE(bdd%XDESC_QIN(bdd%NDESC_USE))
427 CALL
read_in_csvfile(
'USAGE',yuse_name,
"Apports internes",
"Flux",bdd%XDESC_QIN)
431 ALLOCATE(bdd%XDESC_QIN_FLAT(bdd%NDESC_USE))
432 CALL
read_in_csvfile(
'USAGE',yuse_name,
"Apports internes",
"Fraction latente",bdd%XDESC_QIN_FLAT)
433 bdd%XDESC_QIN_FLAT = bdd%XDESC_QIN_FLAT / 100.
437 ALLOCATE(bdd%XDESC_SHGC_SH(bdd%NDESC_USE))
438 CALL
read_in_csvfile(
'USAGE',yuse_name,
"Protection solaire",
"Facteur solaire m",bdd%XDESC_SHGC_SH)
441 ALLOCATE(bdd%XDESC_SHADE(bdd%NDESC_USE))
442 CALL
read_in_csvfile(
'USAGE',yuse_name,
"Protection solaire",
"Active",bdd%XDESC_SHADE)
446 ALLOCATE(bdd%XDESC_NATVENT(bdd%NDESC_USE))
447 CALL
read_in_csvfile(
'USAGE',yuse_name,
"Sur-ventilation",
"Type d_ouverture",bdd%XDESC_NATVENT)
450 ALLOCATE(bdd%XDESC_RESIDENTIAL(bdd%NDESC_USE))
452 bdd%XDESC_RESIDENTIAL(:) = 0.
453 DO juse=1,bdd%NDESC_USE
454 IF (juse==ires) bdd%XDESC_RESIDENTIAL(juse) = 1.
462 bdd%NDESC_ROAD_LAYER = 3
464 ALLOCATE(bdd%XDESC_ALB_ROAD(bdd%NDESC_CODE))
465 bdd%XDESC_ALB_ROAD = 0.08
466 ALLOCATE(bdd%XDESC_EMIS_ROAD(bdd%NDESC_CODE))
467 bdd%XDESC_EMIS_ROAD = 0.94
468 ALLOCATE(bdd%XDESC_HC_ROAD(bdd%NDESC_CODE,bdd%NDESC_ROAD_LAYER))
469 bdd%XDESC_HC_ROAD(:,1) = 1940000.
470 bdd%XDESC_HC_ROAD(:,2:) = 1280000.
471 ALLOCATE(bdd%XDESC_TC_ROAD(bdd%NDESC_CODE,bdd%NDESC_ROAD_LAYER))
472 bdd%XDESC_TC_ROAD(:,1) = 0.74
473 bdd%XDESC_TC_ROAD(:,2:) = 0.25
474 ALLOCATE(bdd%XDESC_D_ROAD(bdd%NDESC_CODE,bdd%NDESC_ROAD_LAYER))
475 bdd%XDESC_D_ROAD(:,1) = 0.05
476 bdd%XDESC_D_ROAD(:,2) = 0.1
477 bdd%XDESC_D_ROAD(:,3:) = 1.
483 IF (lhook) CALL dr_hook(
'READ_CSVDATA_TEB',1,zhook_handle)
489 INTEGER,
INTENT(IN) :: kbld
490 INTEGER,
INTENT(IN) :: kage
501 CHARACTER(LEN=*),
INTENT(IN) :: hcode1
502 INTEGER,
INTENT(OUT):: kdata
503 CHARACTER(LEN=80) :: yerror
510 READ(ilunam,end=101,fmt=
'(A400)') ystring
514 IF (len_trim(ystring)>0) &
515 READ(ystring,fmt=*) ystring1, ystring2
517 IF (trim(ystring1)==trim(hcode1))
THEN
518 READ(ystring,*) ystring1, kdata
525 yerror=trim(hcode1)//
' not found in file : '//trim(hfile)
532 CHARACTER(LEN=*),
INTENT(IN) :: hcode1
533 CHARACTER(LEN=*),
INTENT(IN) :: hcode2
534 INTEGER,
INTENT(OUT):: kdata
535 CHARACTER(LEN=80) :: yerror
543 READ(ilunam,end=101,fmt=
'(A400)') ystring
547 IF (len_trim(ystring)>0) &
548 READ(ystring,fmt=*) ystring1, ystring2
550 gcode2 = trim(ystring2)==trim(hcode2)
551 IF (trim(ystring1)==trim(hcode1) .AND. gcode2)
THEN
552 READ(ystring,*) ystring1, ystring2, kdata
559 yerror=trim(hcode1)//
' '//trim(hcode2)//
' not found in file : '//trim(hfile)
566 CHARACTER(LEN=*),
INTENT(IN) :: hcode_element
567 CHARACTER(LEN=*),
DIMENSION(:),
INTENT(IN) :: hcode_type
569 CHARACTER(LEN=*),
INTENT(IN) :: hcode_element2
570 CHARACTER(LEN=*),
INTENT(IN) :: hcode_param
571 REAL,
DIMENSION(:),
INTENT(OUT):: pdata
573 REAL,
DIMENSION(:),
ALLOCATABLE :: zdata
574 LOGICAL,
DIMENSION(SIZE(HCODE_TYPE)) :: ginitialized
577 CHARACTER(LEN=80) :: ytype
579 CHARACTER(LEN=100) :: yerror
583 IF (ytype_of_data==
'STRUCTURE')
THEN
584 ALLOCATE(zdata(bdd%NDESC_AGE))
587 ELSE IF (ytype_of_data==
'EQUIPMENT')
THEN
588 ALLOCATE(zdata(iall_hyp))
591 ELSE IF (ytype_of_data==
'USE')
THEN
592 ALLOCATE(zdata(iall_hyp))
598 ginitialized(:)=.false.
609 READ(ilunam,end=100,fmt=
'(A400)') ystring
613 IF (len_trim(ystring)>0) &
614 READ(ystring,fmt=*) ystring1, ystring2, ystring3, ystring4, ystring5, ystring6, ystring7
616 IF (ytype_of_data==
'EQUIPMENT' .OR. ytype_of_data==
'USE')
THEN
617 gfound = trim(ystring1)==trim(hcode_element) .AND. trim(ystring6)==trim(hcode_element2) &
618 .AND. trim(ystring7)==trim(hcode_param)
619 ELSE IF (ytype_of_data==
'STRUCTURE')
THEN
620 gfound = trim(ystring1)==trim(hcode_element) .AND. trim(ystring4)==trim(hcode_element2) &
621 .AND. trim(ystring5)==trim(hcode_param)
628 IF (ytype_of_data==
'EQUIPMENT' .OR. ytype_of_data==
'USE')
THEN
629 READ(ystring,fmt=*) ystring1, ystring2, ystring3, ystring4, ystring5, &
630 ystring6, ystring7, ystring8, ystring9, zdata(:)
631 ELSE IF (ytype_of_data==
'STRUCTURE')
THEN
632 READ(ystring,fmt=*) ystring1, ystring2, ystring3, ystring4, ystring5, &
633 ystring6, ystring7, zdata(:)
636 IF (ytype_of_data==
'EQUIPMENT' .OR. ytype_of_data==
'USE') zdata(:) = zdata(ihyp)
638 IF (ytype_of_data==
'EQUIPMENT') ytype = ystring2
639 IF (ytype_of_data==
'STRUCTURE') ytype = ystring2
640 IF (ytype_of_data==
'USE ') ytype = ystring4
643 IF (trim(hcode_type(jbld))==trim(ytype) .OR. trim(ytype)==
'Tous batiments')
THEN
646 iindex = (jbld-1)*in2 + jage
647 pdata(iindex) = zdata(min(jage,
SIZE(zdata)))
649 ginitialized(jbld) = .true.
653 IF (all(ginitialized))
EXIT
661 IF (any(.NOT. ginitialized))
THEN
662 WRITE(iluout,*)
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*'
663 WRITE(iluout,*)
'While reading the csv data file for building parameters specification'
664 WRITE(iluout,*)
'(file ',trim(hfile),
')'
665 WRITE(iluout,*)
'The field corresponding to the following '
666 WRITE(iluout,*)
'identifiers:',trim(hcode_element),
' ',trim(hcode_element2),
' ',trim(hcode_param)
667 WRITE(iluout,*)
'has not been completely initialized.'
668 WRITE(iluout,*)
'The data for the following building types were not found:'
669 IF (ytype_of_data==
'USE')
THEN
671 IF (.NOT. ginitialized(jbld))
WRITE(iluout,*)
'"',trim(yuse_name(jbld)),
'"'
675 IF (.NOT. ginitialized(jbld))
WRITE(iluout,*)
'"',trim(ybld_name(jbld)),
'"'
678 WRITE(iluout,*)
'*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*'
680 yerror=
'Initialization not complete for: '//trim(hcode_element)//
' '//trim(hcode_element2)//
' '//trim(hcode_param)
688 CHARACTER(LEN=400),
INTENT(INOUT) :: hstring
697 IF (hstring(jl:jl)==
';') gfrench=.true.
703 IF (hstring(jl:jl)==
',') hstring(jl:jl)=
'.'
704 IF (hstring(jl:jl)==
';') hstring(jl:jl)=
','
subroutine french_to_english(HSTRING)
subroutine abor1_sfx(YTEXT)
subroutine read_hyp_in_csvfile(HCODE1, HCODE2, KDATA)
subroutine read_csvdata_teb(BDD, HPROGRAM, HFILE)
subroutine read_in_csvfile(HCODE_ELEMENT, HCODE_TYPE, HCODE_ELEMENT2, HCODE_PARAM, PDATA)
subroutine close_namelist(HPROGRAM, KLUNAM)
integer function bld_code(KBLD, KAGE)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine read_conf_in_csvfile(HCODE1, KDATA)
subroutine open_namelist(HPROGRAM, KLUNAM, HFILE)