21 integer(kind=kint) :: k, icel, isuf, iam1, iam2, ic_type, isect, nn, is, j, mm, m, ic, ip
22 integer(kind=kint) :: inod, jp, jnod, isu, ieu, ik, isl, iel
23 real(kind=kreal) :: ctime, dtime, qq, hh, sink, thick, beta
25 type(hecmwst_matrix) :: hecMAT
26 type(hecmwst_local_mesh) :: hecMESH
28 real(kind=kreal) :: xx(20), yy(20), zz(20)
29 real(kind=kreal) :: term1(64), term2(20), stiff(8,8)
30 integer(kind=kint) :: nodLocal(20), nsuf(8), nodSurf(8)
38 do k = 1, fstrheat%H_SUF_tot
39 icel = fstrheat%H_SUF_elem(k)
40 isuf = fstrheat%H_SUF_surf(k)
41 iam1 = fstrheat%H_SUF_ampl(k,1)
42 iam2 = fstrheat%H_SUF_ampl(k,2)
44 hh = fstrheat%H_SUF_val (k,1) * qq
46 sink = fstrheat%H_SUF_val (k,2) * qq
47 ic_type = hecmesh%elem_type(icel)
48 isect = hecmesh%section_ID(icel)
50 nn = hecmw_get_max_node(ic_type)
52 is = hecmesh%elem_node_index(icel-1)
54 nodlocal(j) = hecmesh%elem_node_item(is+j)
55 xx(j) = hecmesh%node( 3*nodlocal(j)-2 )
56 yy(j) = hecmesh%node( 3*nodlocal(j)-1 )
57 zz(j) = hecmesh%node( 3*nodlocal(j) )
60 if ( ic_type.eq.231 )
then
61 is = hecmesh%section%sect_R_index(isect)
62 thick = hecmesh%section%sect_R_item(is)
64 call heat_film_231(nn,xx,yy,zz,thick,isuf,hh,sink,mm,term1,term2,nsuf)
65 elseif( ic_type.eq.232 )
then
66 is = hecmesh%section%sect_R_index(isect)
67 thick = hecmesh%section%sect_R_item(is)
69 call heat_film_232(nn,xx,yy,zz,thick,isuf,hh,sink,mm,term1,term2,nsuf)
70 elseif( ic_type.eq.241 )
then
71 is = hecmesh%section%sect_R_index(isect)
72 thick = hecmesh%section%sect_R_item(is)
74 call heat_film_241(nn,xx,yy,zz,thick,isuf,hh,sink,mm,term1,term2,nsuf)
75 elseif( ic_type.eq.242 )
then
76 is = hecmesh%section%sect_R_index(isect)
77 thick = hecmesh%section%sect_R_item(is)
79 call heat_film_242(nn,xx,yy,zz,thick,isuf,hh,sink,mm,term1,term2,nsuf)
80 elseif( ic_type.eq.341 )
then
82 call heat_film_341(nn,xx,yy,zz,isuf,hh,sink,mm,term1,term2,nsuf)
83 elseif( ic_type.eq.342 )
then
85 call heat_film_342(nn,xx,yy,zz,isuf,hh,sink,mm,term1,term2,nsuf)
86 elseif( ic_type.eq.351 )
then
88 if( isuf.eq.1 .or. isuf.eq.2 ) mm = 3
89 call heat_film_351(nn,xx,yy,zz,isuf,hh,sink,mm,term1,term2,nsuf)
90 elseif( ic_type.eq.352 )
then
92 if( isuf.eq.1 .or. isuf.eq.2 ) mm = 6
93 call heat_film_352(nn,xx,yy,zz,isuf,hh,sink,mm,term1,term2,nsuf)
94 elseif( ic_type.eq.361 )
then
96 call heat_film_361(nn,xx,yy,zz,isuf,hh,sink,mm,term1,term2,nsuf)
97 elseif( ic_type.eq.362 )
then
99 call heat_film_362(nn,xx,yy,zz,isuf,hh,sink,mm,term1,term2,nsuf)
100 elseif( ic_type.eq.731 )
then
107 elseif( ic_type.eq.741 )
then
118 nodsurf(ip) = nodlocal(nsuf(ip))
126 stiff(ip,jp) = -term1(ic)
130 call hecmw_mat_ass_elem(hecmat, mm, nodsurf, stiff)
134 hecmat%B(nodsurf(ip)) = hecmat%B(nodsurf(ip)) - term2(ip)