87 INTEGER,
ALLOCATABLE ::
k_if2 (:,:,:) ,
k_if3 (:,:,:) ,
k_1p2p(:,:,:) , &
114 SUBROUTINE w3snl1 (A, CG, KDMEAN, S, D)
307 REAL,
INTENT(IN) :: A(NSPEC), CG(NK), KDMEAN
308 REAL,
INTENT(OUT) :: S(NSPEC), D(NSPEC)
313 INTEGER :: ITH, IFR, ISP
315 INTEGER,
SAVE :: IENT = 0
317 REAL :: X, X2, CONS, CONX, FACTOR, &
318 E00, EP1, EM1, EP2, EM2, &
319 SA1A, SA1B, SA2A, SA2B
321 REAL :: SOUT(NK,NFR), DOUT(NK,NFR)
323 REAL :: UE (1-NTH:NSPECY), SA1 (1-NTH:NSPECX), &
324 SA2 (1-NTH:NSPECX), DA1C(1-NTH:NSPECX), &
325 DA1P(1-NTH:NSPECX), DA1M(1-NTH:NSPECX), &
326 DA2C(1-NTH:NSPECX), DA2P(1-NTH:NSPECX), &
327 DA2M(1-NTH:NSPECX), CON ( NSPEC )
334 CALL strace (ient,
'W3SNL1')
340 x2 = max( -1.e15,
snls3*x)
344 WRITE (
ndst,9000) kdmean, cons
352 isp = ith + (ifr-1)*nth
353 ue(isp) = a(isp) / conx
360 isp = ith + (ifr-1)*nth
361 ue(isp) = ue(isp-nth) *
fachfe
395 factor = cons *
af11(isp) * e00
397 sa1a = e00 * ( ep1*
dal1 + em1*
dal2 )
398 sa1b = sa1a - ep1*em1*
dal3
399 sa2a = e00 * ( ep2*
dal1 + em2*
dal2 )
400 sa2b = sa2a - ep2*em2*
dal3
402 sa1(isp) = factor * sa1b
403 sa2(isp) = factor * sa2b
405 da1c(isp) = cons *
af11(isp) * ( sa1a + sa1b )
406 da1p(isp) = factor * (
dal1*e00 -
dal3*em1 )
407 da1m(isp) = factor * (
dal2*e00 -
dal3*ep1 )
409 da2c(isp) = cons *
af11(isp) * ( sa2a + sa2b )
410 da2p(isp) = factor * (
dal1*e00 -
dal3*em2 )
411 da2m(isp) = factor * (
dal2*e00 -
dal3*ep2 )
419 s(isp) = con(isp) * ( - 2. * ( sa1(isp) + sa2(isp) ) &
429 d(isp) = - 2. * ( da1c(isp) + da2c(isp) ) &
446 isp = ith + (ifr-1)*nth
447 sout(ifr,ith) = s(isp) *
tpi *
sig(ifr) / cg(ifr)
448 dout(ifr,ith) = d(isp)
451 CALL prt2ds (
ndst, nk, nk, nth, sout,
sig(1:),
' ', 1., &
452 0.0, 0.001,
'Snl(f,t)',
' ',
'NONAME')
453 CALL prt2ds (
ndst, nk, nk, nth, dout,
sig(1:),
' ', 1., &
454 0.0, 0.001,
'Diag Snl',
' ',
'NONAME')
459 CALL outmat (
ndst, d, nth, nth, nk,
'Diag Snl')
467 9000
FORMAT (
' TEST W3SNL1 : KDMEAN, CONS :',f8.2,f8.1)
482 SUBROUTINE insnl1 ( IMOD )
574 INTEGER,
INTENT(IN) :: IMOD
578 INTEGER :: IFR, ITH, ISP, ITHP, ITHP1, ITHM, &
579 ITHM1,IFRP, IFRP1, IFRM, IFRM1
580 INTEGER,
ALLOCATABLE :: IF1(:), IF2(:), IF3(:), IF4(:), &
581 IF5(:), IF6(:), IF7(:), IF8(:), &
582 IT1(:), IT2(:), IT3(:), IT4(:), &
583 IT5(:), IT6(:), IT7(:), IT8(:)
585 INTEGER,
SAVE :: IENT = 0
587 REAL :: DELTH3, DELTH4, LAMM2, LAMP2, CTHP, &
588 WTHP, WTHP1, CTHM, WTHM, WTHM1, &
589 XFRLN, WFRP, WFRP1, WFRM, WFRM1, FR, &
595 CALL strace (ient,
'INSNL1')
598 WRITE (
ndst,9000) imod
607 delth3 = acos( (lamm2**2+4.-lamp2**2) / (4.*lamm2) )
608 delth4 = asin(-sin(delth3)*lamm2/lamp2)
618 cthp = abs(delth4/
dth)
621 wthp = cthp - real(ithp)
624 cthm = abs(delth3/
dth)
627 wthm = cthm - real(ithm)
634 ifrp = int( log(1.+
lam) / xfrln )
639 ifrm = int( log(1.-
lam) / xfrln )
665 if3(ifr) = max( 0 , ifr+ifrm )
666 if4(ifr) = max( 0 , ifr+ifrm1 )
667 if5(ifr) = max( 0 , ifr-ifrp )
668 if6(ifr) = max( 0 , ifr-ifrp1 )
674 it1(ith) = ith + ithp
675 it2(ith) = ith + ithp1
676 it3(ith) = ith + ithm
677 it4(ith) = ith + ithm1
678 it5(ith) = ith - ithp
679 it6(ith) = ith - ithp1
680 it7(ith) = ith - ithm
681 it8(ith) = ith - ithm1
682 IF ( it1(ith).GT.
nth) it1(ith) = it1(ith) -
nth
683 IF ( it2(ith).GT.
nth) it2(ith) = it2(ith) -
nth
684 IF ( it3(ith).GT.
nth) it3(ith) = it3(ith) -
nth
685 IF ( it4(ith).GT.
nth) it4(ith) = it4(ith) -
nth
686 IF ( it5(ith).LT. 1 ) it5(ith) = it5(ith) +
nth
687 IF ( it6(ith).LT. 1 ) it6(ith) = it6(ith) +
nth
688 IF ( it7(ith).LT. 1 ) it7(ith) = it7(ith) +
nth
689 IF ( it8(ith).LT. 1 ) it8(ith) = it8(ith) +
nth
693 ifr = 1 + (isp-1)/
nth
694 ith = 1 + mod(isp-1,
nth)
695 ip11(isp) = it2(ith) + (if2(ifr)-1)*
nth
696 ip12(isp) = it1(ith) + (if2(ifr)-1)*
nth
697 ip13(isp) = it2(ith) + (if1(ifr)-1)*
nth
698 ip14(isp) = it1(ith) + (if1(ifr)-1)*
nth
699 im11(isp) = it8(ith) + (if4(ifr)-1)*
nth
700 im12(isp) = it7(ith) + (if4(ifr)-1)*
nth
701 im13(isp) = it8(ith) + (if3(ifr)-1)*
nth
702 im14(isp) = it7(ith) + (if3(ifr)-1)*
nth
703 ip21(isp) = it6(ith) + (if2(ifr)-1)*
nth
704 ip22(isp) = it5(ith) + (if2(ifr)-1)*
nth
705 ip23(isp) = it6(ith) + (if1(ifr)-1)*
nth
706 ip24(isp) = it5(ith) + (if1(ifr)-1)*
nth
707 im21(isp) = it4(ith) + (if4(ifr)-1)*
nth
708 im22(isp) = it3(ith) + (if4(ifr)-1)*
nth
709 im23(isp) = it4(ith) + (if3(ifr)-1)*
nth
710 im24(isp) = it3(ith) + (if3(ifr)-1)*
nth
714 ifr = 1 + (isp-1)/
nth
715 ith = 1 + mod(isp-1,
nth)
716 ic11(isp) = it6(ith) + (if6(ifr)-1)*
nth
717 ic21(isp) = it5(ith) + (if6(ifr)-1)*
nth
718 ic31(isp) = it6(ith) + (if5(ifr)-1)*
nth
719 ic41(isp) = it5(ith) + (if5(ifr)-1)*
nth
720 ic51(isp) = it4(ith) + (if8(ifr)-1)*
nth
721 ic61(isp) = it3(ith) + (if8(ifr)-1)*
nth
722 ic71(isp) = it4(ith) + (if7(ifr)-1)*
nth
723 ic81(isp) = it3(ith) + (if7(ifr)-1)*
nth
724 ic12(isp) = it2(ith) + (if6(ifr)-1)*
nth
725 ic22(isp) = it1(ith) + (if6(ifr)-1)*
nth
726 ic32(isp) = it2(ith) + (if5(ifr)-1)*
nth
727 ic42(isp) = it1(ith) + (if5(ifr)-1)*
nth
728 ic52(isp) = it8(ith) + (if8(ifr)-1)*
nth
729 ic62(isp) = it7(ith) + (if8(ifr)-1)*
nth
730 ic72(isp) = it8(ith) + (if7(ifr)-1)*
nth
731 ic82(isp) = it7(ith) + (if7(ifr)-1)*
nth
734 DEALLOCATE ( if1, if2, if3, if4, if5, if6, if7, if8, &
735 it1, it2, it3, it4, it5, it6, it7, it8 )
780 9000
FORMAT (
' TEST INSNL1 : IMOD :',i4)
788 SUBROUTINE w3snlgqm(A,CG,WN,DEPTH,TSTOTn,TSDERn)
830 REAL,
intent(in) :: A(NTH,NK), CG(NK), WN(NK)
831 REAL,
intent(in) :: DEPTH
832 REAL,
intent(out) :: TSTOTn(NTH,NK), TSDERn(NTH,NK)
834 INTEGER :: ITH,IK,NT,NF
835 REAL :: q_dfac, SATVAL(NK), SUME, ACCVAL, ACCMAX, AMPFAC
836 DOUBLE PRECISION :: RAISF, FREQ(NK)
837 DOUBLE PRECISION :: TSTOT(NTH,NK) , TSDER(NTH,NK), F(NTH,NK)
838 DOUBLE PRECISION :: TEMP
841 INTEGER JF , JT , JF1 , JT1 , IQ_OM2 &
842 , JFM0 , JFM1 , JFM2 , JFM3 , IXF1 , IXF2 &
843 , IXF3 , JFMIN , JFMAX , ICONF , LBUF
844 INTEGER KT1P , KT1M , JT1P , JT1M , KT1P2P, KT1P2M &
845 , KT1P3P, KT1P3M, KT1M2P, KT1M2M, KT1M3P, KT1M3M &
846 , JT1P2P, JT1P2M, JT1P3P, JT1P3M, JT1M2P, JT1M2M &
848 DOUBLE PRECISION V1_4 , V2_4 , V3_4 , Q_2P3M, Q_2M3P, FACTOR &
849 , T_2P3M, T_2M3P, S_2P3M, S_2M3P, SCAL_T, T2P3M &
850 , T2M3P , SP0 , SP1P , SP1M , SP1P2P, SP1P2M &
851 , SP1P3P, SP1P3M, SP1M2P, SP1M2M, SP1M3P, SP1M3M &
852 , CF0 , CP0 , CF1 , CP1 , CF2 , CP2 &
853 , CF3 , CP3 , Q2PD0 , Q2PD1 , Q2PD2P, Q2PD3M &
854 , Q2MD0 , Q2MD1 , Q2MD2M, Q2MD3P ,AUX00 , AUX01 &
855 , AUX02 , AUX03 , AUX04 , AUX05 , SEUIL &
856 , AUX06 , AUX07 , AUX08 , AUX09 , AUX10 , FSEUIL
865 freq(ik) =
fr1*raisf**(ik-1)
871 f(ith,ik) = dble(a(ith,ik)*
sig(ik))*dble(
tpi)/dble(cg(ik))
888 jfmin=max(1-int(log(1.0d0)/log(raisf)),1)
889 jfmax=min(nf+int(log(1.3d0)/log(raisf)),nk)
909 sume=sum(f(:,jf))*
dth
910 satval(jf) = sume*freq(jf)**5
911 accval = sume*freq(jf)**4
912 IF (accval.GT.accmax) accmax=accval
933 v2_4 =
tb_v24(iq_om2,jt1,jf1)
934 v3_4 =
tb_v34(iq_om2,jt1,jf1)
936 ixf2 =
k_if2(iq_om2,jt1,jf1)
937 ixf3 =
k_if3(iq_om2,jt1,jf1)
939 kt1p2p=
k_1p2p(iq_om2,jt1,jf1)
940 kt1p2m=
k_1p2m(iq_om2,jt1,jf1)
941 kt1p3p=
k_1p3p(iq_om2,jt1,jf1)
942 kt1p3m=
k_1p3m(iq_om2,jt1,jf1)
943 kt1m2p=
k_1m2p(iq_om2,jt1,jf1)
944 kt1m2m=
k_1m2m(iq_om2,jt1,jf1)
945 kt1m3p=
k_1m3p(iq_om2,jt1,jf1)
946 kt1m3m=
k_1m3m(iq_om2,jt1,jf1)
948 t2p3m =
tb_tpm(iq_om2,jt1,jf1)
949 t2m3p =
tb_tmp(iq_om2,jt1,jf1)
951 factor=
tb_fac(iq_om2,jt1,jf1)
961 scal_t=
tb_sca(lbuf+jf)*factor
1009 sp1p =f(jt1p ,jfm1)*cf1
1010 sp1p2p=f(jt1p2p,jfm2)*cf2
1011 sp1p3m=f(jt1p3m,jfm3)*cf3
1012 sp1p2m=f(jt1p2m,jfm2)*cf2
1013 sp1p3p=f(jt1p3p,jfm3)*cf3
1019 aux04=sp1p2p*v3_4+sp1p3m*v2_4
1021 aux06=sp1p2m*v3_4+sp1p3p*v2_4
1026 s_2p3m=aux03*aux01-aux02*aux04
1027 s_2m3p=aux05*aux01-aux02*aux06
1028 q_2p3m=t_2p3m*s_2p3m
1029 q_2m3p=t_2m3p*s_2m3p
1030 aux00 =q_2p3m+q_2m3p
1033 q2pd0 =t_2p3m*(aux03*v1_4 - sp1p*aux04)*cf0
1034 q2pd1 =t_2p3m*(aux03 - sp0 *aux04)*cf1
1035 q2pd2p=t_2p3m*(aux01*sp1p3m - aux07 )*cf2
1036 q2pd3m=t_2p3m*(aux01*sp1p2p - aux08 )*cf3
1037 q2md0 =t_2m3p*(aux05*v1_4 - sp1p*aux06)*cf0
1038 q2md1 =t_2m3p*(aux03 - sp0 *aux06)*cf1
1039 q2md2m=t_2m3p*(aux01*sp1p3p - aux07 )*cf2
1040 q2md3p=t_2m3p*(aux01*sp1p2m - aux08 )*cf3
1045 tstot(jt,jfm0 )=tstot(jt,jfm0 )+aux00 *cp0
1046 tstot(jt1p,jfm1 )=tstot(jt1p,jfm1 )+aux00 *cp1
1047 tstot(jt1p2p,jfm2)=tstot(jt1p2p,jfm2)-q_2p3m*cp2
1048 tstot(jt1p2m,jfm2)=tstot(jt1p2m,jfm2)-q_2m3p*cp2
1049 tstot(jt1p3m,jfm3)=tstot(jt1p3m,jfm3)-q_2p3m*cp3
1050 tstot(jt1p3p,jfm3)=tstot(jt1p3p,jfm3)-q_2m3p*cp3
1053 tsder(jt,jfm0)=tsder(jt,jfm0)+aux09 *cp0
1054 tsder(jt1p,jfm1)=tsder(jt1p,jfm1)+aux10 *cp1
1055 tsder(jt1p2p,jfm2)=tsder(jt1p2p,jfm2)-q2pd2p*cp2
1056 tsder(jt1p2m,jfm2)=tsder(jt1p2m,jfm2)-q2md2m*cp2
1057 tsder(jt1p3m,jfm3)=tsder(jt1p3m,jfm3)-q2pd3m*cp3
1058 tsder(jt1p3p,jfm3)=tsder(jt1p3p,jfm3)-q2md3p*cp3
1061 WRITE(994,
'(5I3,3E12.3)') iconf,jf,jt,jt, jfm0,aux00 *cp0, f(jt,jfm0),tstot(jt ,jfm0)
1062 WRITE(994,
'(5I3,3E12.3)') iconf,jf,jt,jt1p, jfm1,aux00 *cp1, f(jt1p,jfm1),tstot(jt1p,jfm1)
1063 WRITE(994,
'(5I3,3E12.3)') iconf,jf,jt,jt1p2p,jfm2,-q_2p3m*cp2,f(jt1p2p,jfm2),tstot(jt1p2p,jfm2)
1064 WRITE(994,
'(5I3,3E12.3)') iconf,jf,jt,jt1p2m,jfm2,-q_2m3p*cp2,f(jt1p2m,jfm2),tstot(jt1p2m,jfm2)
1065 WRITE(994,
'(5I3,3E12.3)') iconf,jf,jt,jt1p3m,jfm2,-q_2p3m*cp3,f(jt1p3m,jfm3),tstot(jt1p3m,jfm3)
1066 WRITE(994,
'(5I3,3E12.3)') iconf,jf,jt,jt1p3p,jfm2,-q_2m3p*cp3,f(jt1p3p,jfm3),tstot(jt1p3p,jfm3)
1067 temp=(
tb_tpm(iq_om2,jt1,jf1)*(( f(jt1p2p,jfm2)*cf2 *f(jt1p3m,jfm3)*cf3)* &
1068 (f(jt,jfm0 )*cf0*
tb_v14(jf1)+f(jt1p ,jfm1)*cf1) &
1069 -sp0*sp1p*(sp1p2p*v3_4+sp1p3m*v2_4))+t_2m3p*(aux05*aux01-aux02*aux06)) *cp0
1070 WRITE(995,
'(3I3,3E12.3)') iconf,jf,jt, f(jt,jfm0)
1071 temp=(q_2p3m+q_2m3p) *cp1
1072 WRITE(995,
'(5I3,3E12.3)') iconf,jf,jt,jt1p, jfm1,aux00 *cp1, f(jt1p,jfm1),tstot(jt1p,jfm1)
1073 WRITE(995,
'(5I3,3E12.3)') iconf,jf,jt,jt1p2p,jfm2,-q_2p3m*cp2,f(jt1p2p,jfm2),tstot(jt1p2p,jfm2)
1074 WRITE(995,
'(5I3,3E12.3)') iconf,jf,jt,jt1p2m,jfm2,-q_2m3p*cp2,f(jt1p2m,jfm2),tstot(jt1p2m,jfm2)
1075 WRITE(995,
'(5I3,3E12.3)') iconf,jf,jt,jt1p3m,jfm2,-q_2p3m*cp3,f(jt1p3m,jfm3),tstot(jt1p3m,jfm3)
1076 WRITE(995,
'(5I3,3E12.3)') iconf,jf,jt,jt1p3p,jfm2,-q_2m3p*cp3,f(jt1p3p,jfm3),tstot(jt1p3p,jfm3)
1082 sp1m =f(jt1m ,jfm1)*cf1
1083 sp1m2p=f(jt1m2p,jfm2)*cf2
1084 sp1m3m=f(jt1m3m,jfm3)*cf3
1085 sp1m2m=f(jt1m2m,jfm2)*cf2
1086 sp1m3p=f(jt1m3p,jfm3)*cf3
1092 aux04=sp1m2p*v3_4+sp1m3m*v2_4
1094 aux06=sp1m2m*v3_4+sp1m3p*v2_4
1099 s_2p3m=aux03*aux01-aux02*aux04
1100 s_2m3p=aux05*aux01-aux02*aux06
1101 q_2p3m=t_2m3p*s_2p3m
1102 q_2m3p=t_2p3m*s_2m3p
1103 aux00 =q_2p3m+q_2m3p
1106 q2pd0 =t_2p3m*(aux03*v1_4 - sp1m*aux04)*cf0
1107 q2pd1 =t_2p3m*(aux03 - sp0 *aux04)*cf1
1108 q2pd2p=t_2p3m*(aux01*sp1m3m - aux07 )*cf2
1109 q2pd3m=t_2p3m*(aux01*sp1m2p - aux08 )*cf3
1110 q2md0 =t_2m3p*(aux05*v1_4 - sp1m*aux06)*cf0
1111 q2md1 =t_2m3p*(aux03 - sp0 *aux06)*cf1
1112 q2md2m=t_2m3p*(aux01*sp1m3p - aux07 )*cf2
1113 q2md3p=t_2m3p*(aux01*sp1m2m - aux08 )*cf3
1118 tstot(jt ,jfm0)=tstot(jt ,jfm0)+aux00 *cp0
1119 tstot(jt1m ,jfm1)=tstot(jt1m ,jfm1)+aux00 *cp1
1120 tstot(jt1m2p,jfm2)=tstot(jt1m2p,jfm2)-q_2p3m*cp2
1121 tstot(jt1m2m,jfm2)=tstot(jt1m2m,jfm2)-q_2m3p*cp2
1122 tstot(jt1m3m,jfm3)=tstot(jt1m3m,jfm3)-q_2p3m*cp3
1123 tstot(jt1m3p,jfm3)=tstot(jt1m3p,jfm3)-q_2m3p*cp3
1126 tsder(jt ,jfm0)=tsder(jt ,jfm0)+aux09 *cp0
1127 tsder(jt1m ,jfm1)=tsder(jt1m ,jfm1)+aux10 *cp1
1128 tsder(jt1m2p,jfm2)=tsder(jt1m2p,jfm2)-q2pd2p*cp2
1129 tsder(jt1m2m,jfm2)=tsder(jt1m2m,jfm2)-q2md2m*cp2
1130 tsder(jt1m3m,jfm3)=tsder(jt1m3m,jfm3)-q2pd3m*cp3
1131 tsder(jt1m3p,jfm3)=tsder(jt1m3p,jfm3)-q2md3p*cp3
1134 WRITE(994,
'(5I3,3E12.3)') iconf,jf,jt,jt, jfm0,aux00 *cp0, f(jt,jfm0),tstot(jt ,jfm0)
1135 WRITE(994,
'(5I3,3E12.3)') iconf,jf,jt,jt1m, jfm1,aux00 *cp1, f(jt1m,jfm1),tstot(jt1m,jfm1)
1136 WRITE(994,
'(5I3,3E12.3)') iconf,jf,jt,jt1m2p,jfm2,-q_2p3m*cp2,f(jt1m2p,jfm2),tstot(jt1m2p,jfm2)
1137 WRITE(994,
'(5I3,3E12.3)') iconf,jf,jt,jt1m2m,jfm2,-q_2m3p*cp2,f(jt1m2m,jfm2),tstot(jt1m2m,jfm2)
1138 WRITE(994,
'(5I3,3E12.3)') iconf,jf,jt,jt1m3m,jfm2,-q_2p3m*cp3,f(jt1m3m,jfm3),tstot(jt1m3m,jfm3)
1139 WRITE(994,
'(5I3,3E12.3)') iconf,jf,jt,jt1m3p,jfm2,-q_2m3p*cp3,f(jt1m3p,jfm3),tstot(jt1m3p,jfm3)
1168 tstotn = tstot*q_dfac*ampfac
1169 tsdern = tsder*q_dfac*ampfac
1175 tstotn(ith,ik) = tstotn(ith,ik)*cg(ik)/(
tpi*
sig(ik))
1183 FUNCTION couple(XK1 ,YK1 ,XK2 ,YK2 ,XK3 ,YK3 ,XK4 ,YK4)
1226 DOUBLE PRECISION,
INTENT(IN) :: xk1 , yk1 , xk2 , yk2
1227 DOUBLE PRECISION,
INTENT(IN) :: xk3 , yk3
1228 DOUBLE PRECISION,
INTENT(IN) :: xk4 , yk4
1233 DOUBLE PRECISION rk1 , rk2 , rk3 , rk4 , wk1 , wk2
1234 DOUBLE PRECISION wk3 , wk4 , s12 , s13 , s14 , s23
1235 DOUBLE PRECISION s24 , s34 , w1p2 , q12 , w1m3 , q13
1236 DOUBLE PRECISION w1m4 , q14 , ddd , coef , deno13, nume13
1237 DOUBLE PRECISION deno14, nume14, zero, pi
1244 rk1=sqrt(xk1*xk1+yk1*yk1)
1245 rk2=sqrt(xk2*xk2+yk2*yk2)
1246 rk3=sqrt(xk3*xk3+yk3*yk3)
1247 rk4=sqrt(xk4*xk4+yk4*yk4)
1261 w1p2=sqrt((xk1+xk2)*(xk1+xk2)+(yk1+yk2)*(yk1+yk2))
1262 w1m3=sqrt((xk1-xk3)*(xk1-xk3)+(yk1-yk3)*(yk1-yk3))
1263 w1m4=sqrt((xk1-xk4)*(xk1-xk4)+(yk1-yk4)*(yk1-yk4))
1264 q12=(wk1+wk2)*(wk1+wk2)
1265 q13=(wk1-wk3)*(wk1-wk3)
1266 q14=(wk1-wk4)*(wk1-wk4)
1270 ddd=2.00d0*q12*(rk1*rk2-s12)*(rk3*rk4-s34)/(w1p2-q12) &
1271 +0.50d0*(s12*s34+s13*s24+s14*s23) &
1272 +0.25d0*(s13+s24)*q13*q13 &
1273 -0.25d0*(s12+s34)*q12*q12 &
1274 +0.25d0*(s14+s23)*q14*q14 &
1275 +2.50d0*rk1*rk2*rk3*rk4 &
1276 +q12*q13*q14*(rk1+rk2+rk3+rk4)
1279 nume13=2.00d0*q13*(rk1*rk3+s13)*(rk2*rk4+s24)
1280 IF (abs(deno13).LT.zero)
THEN
1281 IF (abs(nume13).LT.zero)
THEN
1282 WRITE(*,*)
'W3SNL2 error for coupling coefficient : (1-3) 0/0 !'
1284 WRITE(*,*)
'W3SNL2 error for coupling coefficient : (1-3) inifinte value'
1286 WRITE(*,*)
'W3SNL2 error for coupling coefficient : (1-3) term not used'
1288 ddd=ddd+nume13/deno13
1291 nume14=2.00d0*q14*(rk1*rk4+s14)*(rk2*rk3+s23)
1292 IF (abs(deno14).LT.zero)
THEN
1293 IF (abs(nume14).LT.zero)
THEN
1294 WRITE(*,*)
'W3SNL2 error for coupling coefficient : (1-4) 0/0 !'
1296 WRITE(*,*)
'W3SNL2 error for coupling coefficient : (1-4) inifinte value'
1298 WRITE(*,*)
'W3SNL2 error for coupling coefficient : (1-4) term not used'
1300 ddd=ddd+nume14/deno14
1303 couple=coef*ddd*ddd/(wk1*wk2*wk3*wk4)
1308 SUBROUTINE gauleg (W_LEG ,X_LEG ,NPOIN)
1313 INTEGER ,
INTENT(IN) :: NPOIN
1314 DOUBLE PRECISION ,
INTENT(INOUT) :: W_LEG(NPOIN) , X_LEG(NPOIN)
1319 DOUBLE PRECISION EPS, Z, P1, P2, P3, PP, Z1, PI
1320 parameter(eps=3.d-14)
1325 z=cos(pi*(dble(i)-0.25d0)/(dble(npoin)+0.5d0))
1332 p1=((2.d0*dble(j)-1.d0)*z*p2-(dble(j)-1.d0)*p3)/dble(j)
1334 pp=dble(npoin)*(z*p1-p2)/(z*z-1.d0)
1337 IF (abs(z-z1).GT.eps)
GOTO 1
1340 w_leg(i)=2.d0/((1.d0-z**2)*pp**2)
1341 w_leg(npoin+1-i)=w_leg(i)
1346 SUBROUTINE f1f1f1(F1SF,NF1,IQ_OM1)
1370 INTEGER,
INTENT(IN) :: IQ_OM1
1371 INTEGER,
INTENT(INOUT) :: NF1
1372 DOUBLE PRECISION,
INTENT(INOUT) :: F1SF(*)
1375 DOUBLE PRECISION RAISON
1377 IF(iq_om1.EQ.1)
THEN
1379 WRITE(*,*)
'#1 Incorrect value for NF1',nf1
1396 ELSEIF(iq_om1.EQ.2)
THEN
1398 WRITE(*,*)
'#2 Incorrect value for NF1', nf1
1427 ELSEIF(iq_om1.EQ.3)
THEN
1429 WRITE(*,*)
'Incorrect value for NF1', nf1
1443 ELSEIF(iq_om1.EQ.4)
THEN
1445 WRITE(*,*)
'Incorrect value for NF1', nf1
1449 raison=9.d0**(1.d0/dble(nf1))
1450 f1sf(m+1)=1.0d0/3.0d0
1453 f1sf(i)=f1sf(i-1)*raison
1456 f1sf(i)=f1sf(i+1)/raison
1458 ELSEIF(iq_om1.EQ.5)
THEN
1459 raison=9.d0**(1.d0/dble(nf1))
1462 f1sf(i)=f1sf(i-1)*raison
1464 ELSEIF(iq_om1.EQ.6)
THEN
1465 raison=(3.d0-1.d0/3.d0)/dble(nf1)
1468 f1sf(i)=f1sf(i-1)+raison
1470 ELSEIF(iq_om1.EQ.7)
THEN
1472 WRITE(*,*)
'Incorrect value for NF1', nf1
1558 CALL strace (ient,
'INSNLGQM')
1562 INTEGER JF , JT , JF1 , JT1 , NF1P1 , IAUX , NT , NF , IK
1563 INTEGER IQ_TE1 , IQ_OM2 , LBUF , DIMBUF , IQ_OM1 , NQ_TE1 , NCONFM
1565 DOUBLE PRECISION EPSI_A, AUX , CCC , DENO , AAA , DP2SG , TAILF
1566 DOUBLE PRECISION V1 , V1_4 , DV1 , DTETAR , ELIM , RAISF
1567 DOUBLE PRECISION V2 , V2_4 , V3 , V3_4
1568 DOUBLE PRECISION W2 , W2_M , W2_1 , W_MIL , W_RAD
1569 DOUBLE PRECISION RK0 , XK0 , YK0 , RK1 , XK1 , YK1
1570 DOUBLE PRECISION RK2 , XK2P , YK2P , XK2M , YK2M
1571 DOUBLE PRECISION RK3 , XK3P , YK3P , XK3M , YK3M
1572 DOUBLE PRECISION D01P , C_D01P, S_D01P, D0AP , C_D0AP, S_D0AP
1573 DOUBLE PRECISION GA2P , C_GA2P, S_GA2P, GA3P , C_GA3P, S_GA3P, TWOPI, PI, SEUIL1 , SEUIL2 , SEUIL
1576 DOUBLE PRECISION W_CHE_TE1, W_CHE_OM2, C_LEG_OM2
1579 DOUBLE PRECISION TEST1 , TEST2
1580 DOUBLE PRECISION :: FREQ(NK)
1581 DOUBLE PRECISION,
ALLOCATABLE :: F1SF(:) , X_CHE_TE1(:) , X_CHE_OM2(:) , X_LEG_OM2(:) , W_LEG_OM2(:) &
1594 IF(
gqnf1.EQ.14) iq_om1=1
1595 IF(
gqnf1.EQ.26) iq_om1=2
1596 IF(
gqnf1.EQ.11) iq_om1=3
1597 IF(
gqnf1.EQ.40) iq_om1=4
1598 IF(
gqnf1.EQ.11) iq_om1=3
1599 IF(
gqnf1.EQ.40) iq_om1=4
1600 IF(
gqnf1.EQ.20) iq_om1=7
1610 dtetar = twopi/dble(nt)
1613 freq(ik) =
fr1*raisf**(ik-1)
1619 if (
Allocated(
k_if2) )
then
1624 if (
Allocated(
k_if3) )
then
1629 if (
Allocated(
k_1p2p) )
then
1634 if (
Allocated(
k_1p3m) )
then
1639 if (
Allocated(
k_1p2m) )
then
1644 if (
Allocated(
k_1p3p) )
then
1649 if (
Allocated(
k_1m2p) )
then
1654 if (
Allocated(
k_1m3m) )
then
1659 if (
Allocated(
k_1m2m) )
then
1664 if (
Allocated(
k_1m3p) )
then
1669 if (
Allocated(
tb_v24) )
then
1674 if (
Allocated(
tb_v34) )
then
1679 if (
Allocated(
tb_tpm) )
then
1684 if (
Allocated(
tb_tmp) )
then
1689 if (
Allocated(
tb_fac) )
then
1694 if (
Allocated(
k_if1) )
then
1699 if (
Allocated(
k_1p) )
then
1704 if (
Allocated(
k_1m) )
then
1709 if (
Allocated(
tb_v14) )
then
1714 if (
Allocated(
idconf) )
then
1717 ALLOCATE(
idconf(nconfm,3))
1722 if (
Allocated(
f_poin) )
then
1727 if (
Allocated(
t_poin) )
then
1732 if (
Allocated(
f_coef) )
then
1737 if (
Allocated(
f_proj) )
then
1742 if (
Allocated(
tb_sca) )
then
1765 aux=1.d0/raisf**tailf
1774 t_poin(jt)=nt-mod(lbuf-jt,nt)
1780 t_poin(lbuf+nt+jt)=mod(jt-1,nt)+1
1788 dp2sg=twopi*twopi/
grav
1790 aux=freq(1)/raisf**(lbuf-jf+1)
1791 tb_sca(jf)=(dp2sg*aux**2)**6/(twopi**3*aux)
1794 tb_sca(lbuf+jf)=(dp2sg*freq(jf)**2)**6/(twopi**3*freq(jf))
1798 aux=freq(nf)*raisf**jf
1799 tb_sca(iaux)=(dp2sg*aux**2)**6/(twopi**3*aux)
1806 if (
Allocated(x_che_te1) )
then
1807 deallocate(x_che_te1)
1809 ALLOCATE(x_che_te1(1:nq_te1),x_che_om2(1:
gqnq_om2))
1811 if (
Allocated(x_leg_om2) )
then
1812 deallocate(x_leg_om2)
1818 x_che_te1(iq_te1)=cos(pi*(dble(iq_te1)-0.5d0)/dble(nq_te1))
1820 w_che_te1=pi/dble(nq_te1)
1822 x_che_om2(iq_om2)=cos(pi*(dble(iq_om2)-0.5d0)/dble(
gqnq_om2))
1829 x_leg_om2(iq_om2)=0.25d0*(1.d0+x_leg_om2(iq_om2))**2
1838 if (
Allocated(f1sf) )
then
1841 ALLOCATE(f1sf(1:nf1p1))
1851 v1=(f1sf(jf1+1)+f1sf(jf1))/2.d0
1852 k_if1(jf1)=nint(dble(lbuf)+log(v1)/log(raisf))
1856 dv1=f1sf(jf1+1)-f1sf(jf1)
1858 aaa=((1.d0+v1)**4-4.d0*(1.d0+v1_4))/(8.d0*v1**2)
1866 IF (jt1.LE.nq_te1)
THEN
1869 c_d01p=(-1.d0+aaa)/2.d0+(1.d0+aaa)/2.d0*x_che_te1(iq_te1)
1870 ccc=dv1*sqrt((aaa-c_d01p)/(1.d0-c_d01p))*w_che_te1
1874 c_d01p=( 1.d0+aaa)/2.d0+(1.d0-aaa)/2.d0*x_che_te1(iq_te1)
1875 ccc=dv1*sqrt((c_d01p-aaa)/(1.d0+c_d01p))*w_che_te1
1877 s_d01p=sqrt(1.d0-c_d01p*c_d01p)
1879 k_1p(jt1,jf1)=lbuf+nint(d01p/dtetar)
1880 k_1m(jt1,jf1)=lbuf-nint(d01p/dtetar)
1883 epsi_a=2.d0*sqrt(1.d0+v1_4+2.d0*v1*v1*c_d01p)/(1.d0+v1)**2
1885 c_d0ap=(1.d0-v1_4+0.25d0*epsi_a**2*(1.d0+v1)**4) &
1886 /(epsi_a*(1.d0+v1)**2)
1887 s_d0ap=sqrt(1.0d0-c_d0ap*c_d0ap)
1891 IF (epsi_a.LT.1.d0)
THEN
1895 w2_m=0.5d0*(1.d0-epsi_a/2.d0)
1899 c_leg_om2=sqrt(w_rad)
1908 w2=w2_m+w_rad*x_leg_om2(iq_om2)
1911 tb_v24(iq_om2,jt1,jf1)=v2_4
1912 k_if2(iq_om2,jt1,jf1) = nint(dble(lbuf) &
1913 + log(v2)/log(raisf))
1916 tb_v34(iq_om2,jt1,jf1)=v3_4
1917 k_if3(iq_om2,jt1,jf1) = nint(dble(lbuf) &
1918 + log(v3)/log(raisf))
1920 c_ga2p=(epsi_a**2/4.d0+w2**4-(1.d0-w2)**4)/(epsi_a*w2*w2)
1921 c_ga2p=max(min(c_ga2p,1.d0),-1.d0)
1922 s_ga2p=sqrt(1.d0-c_ga2p*c_ga2p)
1924 c_ga3p=(epsi_a**2/4.d0-w2**4+(1.d0-w2)**4)/epsi_a &
1926 c_ga3p=max(min(c_ga3p,1.d0),-1.d0)
1927 s_ga3p=sqrt(1.d0-c_ga3p*c_ga3p)
1930 k_1p2p(iq_om2,jt1,jf1)=nint(( d0ap+ga2p)/dtetar &
1932 k_1p3m(iq_om2,jt1,jf1)=nint(( d0ap-ga3p)/dtetar &
1934 k_1p2m(iq_om2,jt1,jf1)=nint(( d0ap-ga2p)/dtetar &
1936 k_1p3p(iq_om2,jt1,jf1)=nint(( d0ap+ga3p)/dtetar &
1939 k_1m2p(iq_om2,jt1,jf1)=nint((-d0ap+ga2p)/dtetar &
1941 k_1m3m(iq_om2,jt1,jf1)=nint((-d0ap-ga3p)/dtetar &
1943 k_1m2m(iq_om2,jt1,jf1)=nint((-d0ap-ga2p)/dtetar &
1945 k_1m3p(iq_om2,jt1,jf1)=nint((-d0ap+ga3p)/dtetar &
1957 xk2p = rk2*(c_d0ap*c_ga2p-s_d0ap*s_ga2p)
1958 yk2p = rk2*(s_d0ap*c_ga2p+c_d0ap*s_ga2p)
1959 xk2m = rk2*(c_d0ap*c_ga2p+s_d0ap*s_ga2p)
1960 yk2m = rk2*(s_d0ap*c_ga2p-c_d0ap*s_ga2p)
1961 xk3p = rk3*(c_d0ap*c_ga3p-s_d0ap*s_ga3p)
1962 yk3p = rk3*(s_d0ap*c_ga3p+c_d0ap*s_ga3p)
1963 xk3m = rk3*(c_d0ap*c_ga3p+s_d0ap*s_ga3p)
1964 yk3m = rk3*(s_d0ap*c_ga3p-c_d0ap*s_ga3p)
1965 tb_tpm(iq_om2,jt1,jf1)=
couple( xk0 , yk0 , xk1 , yk1 , xk2p , yk2p , xk3m , yk3m)
1966 tb_tmp(iq_om2,jt1,jf1)=
couple( xk0 , yk0 , xk1 , yk1 , xk2m , yk2m , xk3p , yk3p)
1969 deno=2.d0*sqrt( (0.5d0*(1.d0+epsi_a/2.d0)-w2) &
1970 *((w2-0.5d0)**2+0.25d0*(1.d0+epsi_a)) &
1971 *((w2-0.5d0)**2+0.25d0*(1.d0-epsi_a)) )
1972 tb_fac(iq_om2,jt1,jf1)=1.d0/(deno*v1*w2*(1.d0-w2)) &
1973 /(1.d0+v1)**5 * w_leg_om2(iq_om2)*c_leg_om2* ccc
1985 w2_m=0.5d0*(1.d0-epsi_a/2.d0)
1986 w2_1=0.5d0*(1.d0-sqrt(epsi_a-1.d0))
1988 w_mil=(w2_m+w2_1)/2.d0
1989 w_rad=(w2_1-w2_m)/2.d0
1993 w2=w_mil+w_rad*x_che_om2(iq_om2)
1996 tb_v24(iq_om2,jt1,jf1)=v2_4
1997 k_if2(iq_om2,jt1,jf1)=nint(dble(lbuf) &
1998 +log(v2)/log(raisf))
2001 tb_v34(iq_om2,jt1,jf1)=v3_4
2002 k_if3(iq_om2,jt1,jf1)=nint(dble(lbuf) &
2003 +log(v3)/log(raisf))
2005 c_ga2p=(epsi_a**2/4.d0+w2**4-(1.d0-w2)**4)/(epsi_a*w2*w2)
2006 c_ga2p=max(min(c_ga2p,1.d0),-1.d0)
2007 s_ga2p=sqrt(1.d0-c_ga2p*c_ga2p)
2009 c_ga3p=(epsi_a**2/4.d0-w2**4+(1.d0-w2)**4)/epsi_a &
2011 c_ga3p=max(min(c_ga3p,1.d0),-1.d0)
2012 s_ga3p=sqrt(1.d0-c_ga3p*c_ga3p)
2015 k_1p2p(iq_om2,jt1,jf1)=nint(( d0ap+ga2p)/dtetar &
2017 k_1p3m(iq_om2,jt1,jf1)=nint(( d0ap-ga3p)/dtetar &
2019 k_1p2m(iq_om2,jt1,jf1)=nint(( d0ap-ga2p)/dtetar &
2021 k_1p3p(iq_om2,jt1,jf1)=nint(( d0ap+ga3p)/dtetar &
2024 k_1m2p(iq_om2,jt1,jf1)=nint((-d0ap+ga2p)/dtetar &
2026 k_1m3m(iq_om2,jt1,jf1)=nint((-d0ap-ga3p)/dtetar &
2028 k_1m2m(iq_om2,jt1,jf1)=nint((-d0ap-ga2p)/dtetar &
2030 k_1m3p(iq_om2,jt1,jf1)=nint((-d0ap+ga3p)/dtetar &
2042 xk2p = rk2*(c_d0ap*c_ga2p-s_d0ap*s_ga2p)
2043 yk2p = rk2*(s_d0ap*c_ga2p+c_d0ap*s_ga2p)
2044 xk2m = rk2*(c_d0ap*c_ga2p+s_d0ap*s_ga2p)
2045 yk2m = rk2*(s_d0ap*c_ga2p-c_d0ap*s_ga2p)
2046 xk3p = rk3*(c_d0ap*c_ga3p-s_d0ap*s_ga3p)
2047 yk3p = rk3*(s_d0ap*c_ga3p+c_d0ap*s_ga3p)
2048 xk3m = rk3*(c_d0ap*c_ga3p+s_d0ap*s_ga3p)
2049 yk3m = rk3*(s_d0ap*c_ga3p-c_d0ap*s_ga3p)
2050 tb_tpm(iq_om2,jt1,jf1)=
couple( xk0 , yk0 , xk1 , yk1 , xk2p , yk2p , xk3m , yk3m)
2051 tb_tmp(iq_om2,jt1,jf1)=
couple( xk0 , yk0 , xk1 , yk1 , xk2m , yk2m , xk3p , yk3p)
2054 deno=2.d0*sqrt( (0.5d0*(1.d0+epsi_a/2.d0)-w2) &
2055 *((w2-0.5d0)**2+0.25d0*(1.d0+epsi_a)) &
2056 *(0.5d0*(1.d0+sqrt(epsi_a-1.d0))-w2) )
2057 tb_fac(iq_om2,jt1,jf1)=1.d0/(deno*v1*w2*(1.d0-w2)) &
2058 /(1.d0+v1)**5 * w_che_om2* ccc
2076 DEALLOCATE(x_che_te1)
2077 DEALLOCATE(x_che_om2)
2078 DEALLOCATE(x_leg_om2)
2079 DEALLOCATE(w_leg_om2)
2088 ALLOCATE(maxcla(1:
gqnf1))
2093 aux=max(aux,
tb_fac(iq_om2,jt1,jf1)*
tb_tpm(iq_om2,jt1,jf1),
tb_fac(iq_om2,jt1,jf1)*
tb_tmp(iq_om2,jt1,jf1))
2103 IF (maxcla(jf1).GT.aux) aux=maxcla(jf1)
2112 test2 =seuil2*maxcla(jf1)
2117 IF ((aaa.GT.test1.OR.aaa.GT.test2).OR. &
2118 (ccc.GT.test1.OR.ccc.GT.test2))
THEN
2125 WRITE(993,*)
nconf,jf1,jt1,iq_om2,aaa,ccc,(aaa.GT.test1.OR.aaa.GT.test2), &
2126 (ccc.GT.test1.OR.ccc.GT.test2)
2134 elim=(1.d0-dble(
nconf)/dble(nconfm))*100.d0
2136 WRITE(994,*)
'NCONF, ELIM FRACTION:',
nconf,elim