5 &( tstot , tsder , iangnl, nf , ndire , npoin2, f ,
6 & xkmoy , taux1 , taux2 , taux3 , taux4 , taux5 , dfini )
91 INTEGER,
INTENT(IN) :: NPOIN2,NDIRE,NF
92 INTEGER,
INTENT(IN) :: IANGNL(ndire,8)
93 DOUBLE PRECISION,
INTENT(IN) :: F(npoin2,ndire,nf)
94 DOUBLE PRECISION,
INTENT(IN) :: XKMOY(npoin2)
95 DOUBLE PRECISION,
INTENT(INOUT) :: TSTOT(npoin2,ndire,nf)
96 DOUBLE PRECISION,
INTENT(INOUT) :: TSDER(npoin2,ndire,nf)
97 DOUBLE PRECISION,
INTENT(INOUT) :: TAUX1(npoin2),TAUX2(npoin2)
98 DOUBLE PRECISION,
INTENT(INOUT) :: TAUX3(npoin2)
99 DOUBLE PRECISION,
INTENT(INOUT) :: TAUX4(npoin2),TAUX5(npoin2)
100 DOUBLE PRECISION,
INTENT(INOUT) :: DFINI(npoin2)
104 INTEGER JBP0 , JFP0 , JFP1 , JFM0 , JFM1 , JFP , JFM
105 INTEGER JBP1 , JB , JBM0 , JBM1 , IMAGE , JP
106 INTEGER JPP0 , JPP1 , JPM0 , JPM1 , IP , KAUX , JF
107 INTEGER JFMIN , JFMAX
108 DOUBLE PRECISION COEFP0, COEFP1, COEFM0, COEFM1, COEFJF, XXFAC
109 DOUBLE PRECISION FMOIN , FPLUS , TERM1 , TERM2 , US1PL4, US1ML4
110 DOUBLE PRECISION C1 , C2 , C3 , C4 , C5 , C6
111 DOUBLE PRECISION D1 , D2 , D3 , D4 , D5 , D6
112 DOUBLE PRECISION C1SQ , C2SQ , C3SQ , C4SQ , C5SQ , C6SQ
113 DOUBLE PRECISION C7 , C8 , D7 , D8 , C7SQ , C8SQ
114 DOUBLE PRECISION TERM3 , FDEJF , FREQ
128 jfp = int(
coefnl( 9)+1.d-7)
129 jfm = int(
coefnl(10)-1.d-7)
147 term1 = max(0.75d0*
depth(ip)*xkmoy(ip),0.5d0)
148 dfini(ip) = 1.d0+(5.5d0/term1)*(1.d0-0.833d0*term1)
149 & /exp(min(1.25d0*term1,7.d2))
176 CALL cqueue( jfp1 , jbp1 , coefp1 )
177 CALL cqueue( jfp0 , jbp0 , coefp0 )
178 CALL cqueue( jf , jb , coefjf )
179 CALL cqueue( jfm1 , jbm1 , coefm1 )
180 CALL cqueue( jfm0 , jbm0 , coefm0 )
196 xxfac= 3000.d0*freq**11
203 taux1(ip) = dfini(ip)*xxfac
217 jpp0 = iangnl(jp,kaux+1)
218 jpp1 = iangnl(jp,kaux+2)
219 jpm0 = iangnl(jp,kaux+3)
220 jpm1 = iangnl(jp,kaux+4)
230 fdejf = f(ip,jp,jb )*coefjf
231 fplus = f(ip,jpp0,jbp0)*d1 + f(ip,jpp1,jbp0)*d2
232 & + f(ip,jpp0,jbp1)*d3 + f(ip,jpp1,jbp1)*d4
235 term3 = taux1(ip)*fdejf
237 taux2(ip) = term1*term3
238 taux3(ip) = 2.d0*term1*taux1(ip)
239 taux5(ip) = fdejf*us1pl4*term3
245 tstot(ip,jp ,jf )=tstot(ip,jp ,jf )-taux2(ip)*2.d0
246 tsder(ip,jp ,jf )=tsder(ip,jp ,jf )-taux3(ip)*2.d0
249 IF (jbp0.EQ.jfp0)
THEN 252 tstot(ip,jpp0,jfp0)=tstot(ip,jpp0,jfp0)+taux2(ip)*c1
253 tstot(ip,jpp1,jfp0)=tstot(ip,jpp1,jfp0)+taux2(ip)*c2
254 tsder(ip,jpp0,jfp0)=tsder(ip,jpp0,jfp0)
256 tsder(ip,jpp1,jfp0)=tsder(ip,jpp1,jfp0)
260 IF (jbp1.EQ.jfp1)
THEN 263 tstot(ip,jpp0,jfp1)=tstot(ip,jpp0,jfp1)
265 tstot(ip,jpp1,jfp1)=tstot(ip,jpp1,jfp1)
267 tsder(ip,jpp0,jfp1)=tsder(ip,jpp0,jfp1)
269 tsder(ip,jpp1,jfp1)=tsder(ip,jpp1,jfp1)
284 fdejf = f(ip,jp,jb )*coefjf
285 fplus = f(ip,jpp0,jbp0)*d1 + f(ip,jpp1,jbp0)*d2
286 & + f(ip,jpp0,jbp1)*d3 + f(ip,jpp1,jbp1)*d4
287 fmoin = f(ip,jpm0,jbm0)*d5 + f(ip,jpm1,jbm0)*d6
288 & + f(ip,jpm0,jbm1)*d7 + f(ip,jpm1,jbm1)*d8
290 term1 = fdejf*(fplus+fmoin)
291 term2 = 2.d0*fplus*fmoin
292 term3 = taux1(ip)*fdejf
294 taux2(ip) = (term1-term2)*term3
295 taux3(ip) = (2.d0*term1-term2)*taux1(ip)
296 taux5(ip) = (fdejf-2.d0*fmoin)*us1pl4*term3
297 taux4(ip) = (fdejf-2.d0*fplus)*us1ml4*term3
300 IF (jbm0.EQ.jfm0)
THEN 303 tstot(ip,jpm0,jfm0)=tstot(ip,jpm0,jfm0)+taux2(ip)*c5
304 tstot(ip,jpm1,jfm0)=tstot(ip,jpm1,jfm0)+taux2(ip)*c6
305 tsder(ip,jpm0,jfm0)=tsder(ip,jpm0,jfm0)+taux4(ip)*c5sq
306 tsder(ip,jpm1,jfm0)=tsder(ip,jpm1,jfm0)+taux4(ip)*c6sq
309 IF (jbm1.EQ.jfm1)
THEN 312 tstot(ip,jpm0,jfm1)=tstot(ip,jpm0,jfm1)+taux2(ip)*c7
313 tstot(ip,jpm1,jfm1)=tstot(ip,jpm1,jfm1)+taux2(ip)*c8
314 tsder(ip,jpm0,jfm1)=tsder(ip,jpm0,jfm1)
316 tsder(ip,jpm1,jfm1)=tsder(ip,jpm1,jfm1)
323 tstot(ip,jp ,jf )=tstot(ip,jp ,jf )
325 tsder(ip,jp ,jf )=tsder(ip,jp ,jf )
329 IF (jbp0.EQ.jfp0)
THEN 332 tstot(ip,jpp0,jfp0)=tstot(ip,jpp0,jfp0)
334 tstot(ip,jpp1,jfp0)=tstot(ip,jpp1,jfp0)
336 tsder(ip,jpp0,jfp0)=tsder(ip,jpp0,jfp0)
338 tsder(ip,jpp1,jfp0)=tsder(ip,jpp1,jfp0)
342 IF (jbp1.EQ.jfp1)
THEN 345 tstot(ip,jpp0,jfp1)=tstot(ip,jpp0,jfp1)
347 tstot(ip,jpp1,jfp1)=tstot(ip,jpp1,jfp1)
349 tsder(ip,jpp0,jfp1)=tsder(ip,jpp0,jfp1)
351 tsder(ip,jpp1,jfp1)=tsder(ip,jpp1,jfp1)
double precision, dimension(:), pointer depth
subroutine qnlin1(TSTOT, TSDER, IANGNL, NF, NDIRE, NPOIN2, F, XKMOY, TAUX1, TAUX2, TAUX3, TAUX4, TAUX5, DFINI)
double precision, dimension(:), pointer coefnl
subroutine cqueue(JFRE, JBIS, COEF1)