-
program tov integer i,j,k !================반복문 변수이다 real c,b,d real dens, h real a(513) ,g(513) !======================== a는 lamda b는 nu 이다 dens=0.00128 h=1/513.0 do i=1,513,1 a(i)=0.0 g(i)=0.0 end do !======================================= 수치해법의 초기조건 do j=1,10000,1 do i=2,255,1 c=a(i) b=a(i+1) d=a(i-1) !======================= 수치해석 메인코드 a(i)= c+(a(i+1)-2*a(i)+a(i-1)+2*(b-d)/(i)+((b-d)*(b-d))*0.5& +h*h*4*3.14*exp(2*c)*64*((1-i*h)**(-4))*(dens*(1-4*i*i*h*h)& +99*dens**2*(1-4*i*i*h*h)**2))/(2.0-h*h*4*3.14*exp(2*c)*64*((1-& i*h)**(-4))*(dens*(1-4*i*i*h*h)+99*dens**2*(1-4*i*i*h*h)**2)) !============================수치해석 메인코드 end do do k=256,512,1 c=a(k) b=a(k+1) d=a(k-1) a(k)=a(k)+( a(k+1)-2*a(k)+a(k-1)+2*(b-d)/(k)+(b-d)*(b-d)/2.0)/2.0 end do a(513)=0 a(1)=a(1)+2/3*(-3/2*a(1)+2*a(2)-1/2*a(2)) end do !====================================== 여기서부터는 nu factor 계산하기 do j=1,10000,1 do i=2,255,1 c=g(i) b=g(i+1) d=g(i-1) g(i)=g(i)+(g(i+1)-2*g(i)+g(i-1)+2*(b-d)/i+(b& -d)**2+(b-d)*(a(i+1)& -a(i-1))-h*h*4*3.14*64*(1-& i*h)**(-4)*exp(c)*(dens*(1-4*i*i*h*h)+202*(dens*dens)*(1& -4*i*i*h*h)))/(2& +h*h*4*3.14*64*(1& -i*h)**(4)*exp(c)*(dens*(1& -4*i*i*h*h)+202*(dens*dens)*(1-4*i*i*h*h))) end do do i=256,512,1 g(i)=g(i)+(g(i+1)-g(i+1)-2*g(i)+g(i-1)+2*(b-d)/i+(b-d)**2+(b-d)*(a(i+1)& -a(i-1)))/2.0 end do g(513)=0 g(1)=a(1)+2/3*(-3/2*g(1)+2*g(2)-1/2*g(2)) end do open(unit=1,file='oppenheimer.txt',status='replace') do i=1,513,1 write(1,*) h*i ,g(i) end do close(1) end program tov