program f90_GAUSSIP !Gauss積分点の座標と重み !こちらを参考にしました !http://www7.ocn.ne.jp/~kawa1/numeric.pdf implicit none integer::n,i real(8),allocatable::tt(:),ww(:) character(len=3)::dummy call getarg(1,dummy) read(dummy,*) n allocate(tt(1:n),ww(1:n)) call GIP(n,tt,ww) do i=1,n write(6,'("gu(",i2,")=",f20.16,"D0 ; ","gw(",i2,")=",f20.16,"D0")') i,tt(i),i,ww(i) end do stop contains subroutine GIP(n,tt,ww) integer,intent(in)::n real(8),intent(out)::tt(1:n),ww(1:n) real(8),parameter::pi=atan(1.0D0)*4.0D0 integer::m,mm,i,k,nn real(8),allocatable::t(:),w(:) real(8)::xx,x0,pn,dp real(8)::eps=1.0D-16 m=(n+1)/2 mm=n/2 allocate(t(1:m),w(1:m)) do i=1,m xx=cos(0.5D0*pi*dble(4*i-1)/dble(2*n+1)) do x0=xx call PNDP(n,x0,pn,dp) xx=x0-pn/dp if(abs(xx-x0)