IT 컴공이나 수학과 있으면 Fortran 에러좀 잡아줘
2014.06.19 17:20
program oscillator
implicit none
integer :: L,M
integer :: i,j,ell
real(8),dimension(:),allocatable :: u,vpot,Ei
real(8) :: h,x_b,kappa,E,gamma_4
real(8) :: x,tmp_E
real(8) :: c1,c2
real(8) :: f0,f1,f2
real(8) :: El,Eu
L=8192
M=100
kappa=1.0D0
gamma_4=1.0D0
x_b=dsqrt(36.8/dsqrt(kappa))
h=x_b/dble(L)
allocate(u(0:L-1))
allocate(vpot(0:L-1))
allocate(Ei(0:M))
! ---initial guess for lower and upper bound of E---
El=0.0D0
Eu=5.0D0
Ei(0)=0.5d0*(El+Eu)
c1=h*h/12.0D0
c2=5.0D0*h*h/6.0D0
! ---iteration---
do i=0,M-1
tmp_E=Ei(i)
! ---initial guess for a ground sate---
u(0)=1.0D0
u(1)=1.0D0-0.5D0*tmp_E*(h**2)
!u(0)=0.0D0
!u(1)=1.0D0*h
! ---potential---
do ell=0,L-1
x=dble(ell)*h
vpot(ell)=(kappa+gamma_4*x*x)*x*x-tmp_E
enddo
! ---Numerov---
do ell=2,L-1
f2 = 1.0D0 - c1*vpot(ell-2)
f1 = 2.0D0 + c2*vpot(ell-1)
f0 = 1.0D0 - c1*vpot(ell)
u(ell)=(f1*u(ell-1) - f2*u(ell-2))/f0
enddo
write(11,*)i,Ei(i)
! ---update El and Eu
if(u(L-1).gt.1.0D-5) then
El=Ei(i)
Ei(i+1)=0.5D0*(El+Eu)
else if(u(L-1).lt.(-1.0D-5)) then
Eu=Ei(i)
Ei(i+1)=0.5D0*(El+Eu)
else
write(*,*)"# converge!",i
exit
endif
enddo
deallocate(u,vpot,Ei)
end program oscillator
시발 아무리 해도 if에서 제대로 converge했다고 안뜨는데 도대체 왜이런거임?
결과 봐도 u(L-1)은 진즉에 수렴했는데 도대체 왜...
과제라서 급한데 연구실에 다 학회가서 물어볼인간이 없네;;
댓글 5
-
시읏시읏
2014.06.20 01:16
-
TrollMage
2014.06.20 01:25
컴공과쪽은 모를껄 언어를 알아야 뭔가 하지
구글링 추천.
근데 Ei(0)=0.5d0*(El+Eu) 이게 d가 대문자어야 하지 않음? 딴덴 다 대문잔데
-
TrollMage
2014.06.20 01:29
그리고 참고로 이런 오류 문의는 오류 메세지도 적어야 해결이 빠름
-
하레
2014.06.20 03:18
컴파일이 제대로 되는거면 일단 계산하기 쉬운 값을 넣어서 손으로 주르르 푼 다음에 계산과정 몇단계로 나눠서 값이 틀어지는 부분을 찾으면 됨
문법적 오류가 아니라 논리적 오류라 저 계산식을 이해할 수 있는 사람이 아니면 포트란을 알아도 못 풀어줌요 ㅋㅋ
-
리카아메
2014.06.20 03:06
아 대문자는 괜찮음 양쪽 다 써도 오류메세지가 있으면 적는데 컴파일은 제대로 되서 더 답답함ㅋ
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
4070 | ㅉㅉ안경녀의 매력 포인트란 [3] | 올텡샤 | 2014.06.26 | 683 |
4069 | 시비르뽕.. [3] | 간길 | 2014.06.26 | 527 |
4068 | 블소 6개월 호갱결제함 ㅋㅋ [7] | 니아 | 2014.06.26 | 851 |
4067 | 코엑스 가서 트랜스포머 보고 왔다 [8] | 앱씨 | 2014.06.25 | 1213 |
4066 | 인기있는 여동생과 수난당하는 나. 라는 라노벨을 읽고 있는데 [2] | 올텡샤 | 2014.06.24 | 720 |
4065 | 명작은 말하지 않아도 인정받는법 [4] | 미숫가루 | 2014.06.23 | 652 |
4064 | 토토노 한글화 한 기념으로 해봤다. 네타조금 [2] | 아즈마토카쿠 | 2014.06.22 | 1608 |
4063 | 골드감 [4] | M군 | 2014.06.22 | 494 |
4062 | 아마가미 테트리스 [2] | CDP | 2014.06.22 | 793 |
4061 | AV배우 찾기 꿀팁.JPG [2] | 미숫가루 | 2014.06.20 | 3552 |
4060 | 탐험 개꾸르.. [3] | 간길 | 2014.06.20 | 575 |
4059 | 이건 사람이 할짓이 아닌것같아 [1] | Naitre=네트르 | 2014.06.20 | 495 |
4058 | (스포일러) ef 게임 다 깨고 옴 [3] | 나무연못 | 2014.06.19 | 601 |
» | 컴공이나 수학과 있으면 Fortran 에러좀 잡아줘 [5] | 리카아메 | 2014.06.19 | 670 |
4056 | [브금] 미친놈들 패러디보소 [7] | 앙리에타™ | 2014.06.19 | 690 |
4055 | 헤어스타일 취향은? [15] | 리카아메 | 2014.06.17 | 976 |
4054 | 직업 적성 평가를 해봤는데... [4] | 올텡샤 | 2014.06.15 | 374 |
4053 | 마비 달인작중 | 간길 | 2014.06.14 | 511 |
4052 | 오랜만에 들어왔다가 홈피 터져있는줄 [6] | 남극늑대 | 2014.06.14 | 497 |
4051 | 망영전을 합시다! [6] | 하레 | 2014.06.12 | 876 |
설리