51 nb_diriX,lab_diriX,nb_diriY,lab_diriY,nb_diriZ,lab_diriZ,&
52 nb_neuX,lab_neuX,nb_neuY,lab_neuY,nb_neuZ,lab_neuZ,&
56 nb_node,nb_hexa,nb_quad)
61 character*70 :: gridfile
62 character*80 :: inline
63 character*20 :: el_code
65 integer*4 :: nb_mate,nb_diriX,nb_diriY,nb_diriZ,nb_neuX,nb_neuY,nb_neuZ
67 integer*4 :: nb_elem,ie,i,mat_code,ileft,iright,sl,trash,status,control
69 integer*4,
dimension(nb_mate) :: lab_mate
71 integer*4,
dimension(nb_diriX) :: lab_diriX
72 integer*4,
dimension(nb_diriY) :: lab_diriY
73 integer*4,
dimension(nb_diriZ) :: lab_diriZ
74 integer*4,
dimension(nb_neuX) :: lab_neuX
75 integer*4,
dimension(nb_neuY) :: lab_neuY
76 integer*4,
dimension(nb_neuZ) :: lab_neuZ
77 integer*4,
dimension(nb_neuN) :: lab_neuN
78 integer*4,
dimension(nb_abc) :: lab_abc
79 integer*4,
dimension(nb_dg) :: lab_dg
80 integer*4 :: nb_node,nb_hexa,nb_quad
83 nb_node = 0; nb_hexa = 0; nb_quad = 0
85 open(40,file=gridfile)
89 if (inline(1:1) .ne.
'#')
exit
92 read(inline,*)nb_node,nb_elem
105 if (inline(i:i).ge.
'A')
exit
109 if (inline(i:i).lt.
'A')
exit
113 el_code = inline(ileft:iright)
115 read(inline(1:ileft),*)trash,mat_code
117 if ((el_code.eq.
'hex').or.(el_code.eq.
'HEX'))
then
120 if (lab_mate(i).eq.mat_code) control = 1
123 if (control.ne.0) nb_hexa = nb_hexa +1
125 elseif ((el_code.eq.
'quad').or.(el_code.eq.
'QUAD'))
then
128 if (lab_dirix(i).eq.mat_code) control = 1
131 if (lab_diriy(i).eq.mat_code) control = 1
134 if (lab_diriz(i).eq.mat_code) control = 1
137 if (lab_neux(i).eq.mat_code) control = 1
140 if (lab_neuy(i).eq.mat_code) control = 1
143 if (lab_neuz(i).eq.mat_code) control = 1
146 if (lab_neun(i).eq.mat_code) control = 1
149 if (lab_abc(i).eq.mat_code) control = 1
152 if (lab_dg(i).eq.mat_code) control = 1
156 if (control.ne.0) nb_quad = nb_quad +1
subroutine read_dime_filemesh(gridfile, nb_mate, lab_mate, nb_dirix, lab_dirix, nb_diriy, lab_diriy, nb_diri
Reads dimensions in gridfile (*.mesh)