34 SUBROUTINE laser2(NL ,N1 ,N2 ,IFUNC ,IAFUNC ,
35 . LAS ,XLAS ,X ,ELBUF_TAB,PM ,
36 . WA ,IPARG,IXQ ,TF ,NPF ,
46#include "implicit_f.inc"
57 INTEGER NL, N1, N2, IFUNC, IAFUNC
58 INTEGER LAS(2,*), IPARG(NPARG,*), IXQ(7,*), NPF(*)
59 my_real XLAS(*),X(3,*),WA(3,*),TF(*),PM(NPROPM,*)
60 TYPE(elbuf_struct_),
TARGET,
DIMENSION(NGROUP) :: ELBUF_TAB
61 DOUBLE PRECISION,
INTENT(INOUT) :: WFEXT
65 INTEGER IL, NG, I, NEL, NFT, II, NP1, NPOINT, IC, NELC, NB1C, NFTC, M4C, M13C,MX, M11C
66 INTEGER MTN,IAD,ITY,NPT,JALE,ISMSTR,
67 . JEUL,JTUR,JTHE,JLAG,NVAUX,JMULT,JHBE,JIVF,JPOR,JPLA,JCLOSE,
68 . irep,iint,igtyp,jcvt,isrot,israt,isorth,isorthg,icsen,ifailure,
71 . chaleur, fi,
alpha, z1, z2, z3, z4, zz, t, ddfi,
72 . dfi, de, bid, rhoc, c0, zm, zmc, y1, y2, y3, y4,
73 . d, vm, dar, fi0, vol, xkzz, rhoa2, rho0,
74 . a1,a2,aire,atom,af,tc, dfi1, xk0,hnuk,xk,rho,z,te,tscal,fifun
75 TYPE(g_bufel_) ,
POINTER :: GBUF
76 TYPE(L_BUFEL_) ,
POINTER :: LBUF
88 npoint = (npf(ifunc+1)-npf(ifunc))/2
89 CALL interp(tf(npf(ifunc)),tscal,npoint,fifun,bid)
110 gbuf => elbuf_tab(ng)%GBUF
111 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
115 2 mtn ,nel ,nft ,iad ,ity ,
116 3 npt ,jale ,ismstr ,jeul ,jtur ,
117 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
118 5 nvaux ,jpor ,jcvt ,jclose ,jpla ,
119 6 irep ,iint ,igtyp ,israt ,isrot ,
120 7 icsen ,isorth ,isorthg ,ifailure,jsms )
127 zz = half * (abs(z1 - z3) + abs(z2 - z4))
139 rhoa2 = (rho/atom)**2
140 xk = xk0 * rhoa2 * (z / hnuk)**3 / sqrt(te)
141 xkzz = xk * (one - exp(-hnuk/te)) * zz
142 rhoa2 = ((rho-rho0)/atom)**2
143 IF(te<=ep04) xkzz = xkzz + dar * rhoa2 * zz
145 ddfi = (one - exp(-xkzz))
150 gbuf%EINT(i) = gbuf%EINT(i) + de
151 wfext = wfext + de * vol
164 npoint =(npf(iafunc+1)-np1)/2
166 CALL interp(tf(np1),t,npoint,af,bid)
173 gbuf%EINT(i) = gbuf%EINT(i) + de
174 wfext = wfext + de * vol
188 m4c = nb1c+8*nelc+ic-1
189 m11c = nb1c+12*nelc+ic-1
190 m13c = nb1c+14*nelc+ic-1
195 zm = z1 + z2 + z3 + z4
200 zmc = z1 + z2 + z3 + z4
205 a1 = y2*(z3-z4)+y3*(z4-z2)+y4*(z2-z3)
206 a2 = y2*(z4-z1)+y4*(z1-z2)+y1*(z2-z4)
210 dfi1 = pm(75,mx) * (two*(te - tc)/zz) / dt2
212 d = (dfi+dfi1) / (rhoc*chaleur)
214 vm = d * aire * rhoc * fourth
216 wa(3,n1) = wa(3,n1) + vm
217 wa(3,n2) = wa(3,n2) + vm
244 gbuf => elbuf_tab(ng)%GBUF
250 gbuf%EINT(i) = gbuf%EINT(i) + de
252 wfext = wfext + de * vol
270 . LAS ,XLAS ,X ,ELBUF_TAB ,PM ,
271 . IPARG,IXQ ,TF ,NPF ,WFEXT )
280#include "implicit_f.inc"
284#include "com01_c.inc"
285#include "com06_c.inc"
286#include "com08_c.inc"
287#include "param_c.inc"
292 INTEGER LAS(2,*), IPARG(NPARG,*), IXQ(7,*), NPF(*)
294 . XLAS(*),X(3,*),TF(*),PM(NPROPM,*)
295 TYPE(ELBUF_STRUCT_),
TARGET,
DIMENSION(NGROUP) :: ELBUF_TAB
296 DOUBLE PRECISION,
INTENT(INOUT) :: WFEXT
300 INTEGER IL, NG, I, NEL, NFT, II,
303 INTEGER MTN,IAD,ITY,NPT,JALE,ISMSTR,
304 . JEUL,JTUR,JTHE,JLAG,NVAUX,JMULT,JHBE,JIVF,JPOR,JPLA,JCLOSE,
305 . irep,iint,igtyp,jcvt,isrot,israt,isorth,isorthg,icsen,ifailure,
308 . fi, z1, z2, z3, z4, zz,
309 . dfi, de, bid, y1, y2, y3, y4,
312 . rho,te,enerlim,ener
313 TYPE(g_bufel_) ,
POINTER :: GBUF
321 npoint=(npf(ifunc+1)-npf(ifunc))/2
322 CALL interp(tf(npf(ifunc)),tscal,npoint,fifun,bid)
332 gbuf => elbuf_tab(ng)%GBUF
334 2 mtn ,nel ,nft ,iad ,ity ,
335 3 npt ,jale ,ismstr ,jeul ,jtur ,
336 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
337 5 nvaux ,jpor ,jcvt ,jclose ,jpla ,
338 6 irep ,iint ,igtyp ,israt ,isrot ,
339 7 icsen ,isorth ,isorthg ,ifailure,jsms )
356 zz = half * (abs(z1 - z3) + abs(z2 - z4))
358 gbuf%EINT(i) = gbuf%EINT(i) + de
359 wfext = wfext + de * vol
subroutine initbuf(iparg, ng, mtn, llt, nft, iad, ity, npt, jale, ismstr, jeul, jtur, jthe, jlag, jmult, jhbe, jivf, mid, jpor, jcvt, jclose, jpla, irep, iint, igtyp, israt, isrot, icsen, isorth, isorthg, ifailure, jsms)