我的数组文件(d_R)中有两列数值,分别为横纵坐标,现在我想将数组文件中的每个纵坐标数值除以其中的最大值(R_max),最大值我已经在程序之外求出具体数值,并且在程序中进行了赋值,但是将数组(mx)/最大值的结果乘以原来公式时,算出的计算结果为NaN。
目的:我想知道问题出在哪里?又该如何解决(猜想一:是不是因为我的数组中有两列数值,但是我却直接除以最大值,导致了NaN的出现;猜想二:跟循环有关,需要数组中每个数值循环除以最大值)
黑体部分为我重新添加的部分,这方面我第一次尝试,请各位指导,如果能附上正确代码,感激不尽。
COMPLEX , DIMENSION(N_x) :: Psi_xz_R
INTEGER , PARAMETER :: N_R=8192
REAL(8) , DIMENSION(N_R) :: d_R
**INTEGER , PARAMETER :: R_max=0.246882**
Open(unit=17, file='d_R.dat', status='old')
Do R=1,N_R
read(17,*) d_R(R)
End do
CLOSE(17)
Open(unit=3, file='Eigen_wave0.dat', status='old')
x=x_min+INT(abs(-1.0-x_min_0)/d_x_0)*d_x_0
Do mx=INT(abs(-1.0-x_min_0)/d_x_0)+1, INT(abs(-1.0-x_min_0)/d_x_0)+N_x_0
Read(3,*) x, RPsi6 !, IPsi6
IPsi6=0.0D0
Psi_xz_0(mx)=CMPLX(RPsi6,IPsi6)
Psi_xz_R(mx)=**(d_R(mx)/R_max)***Psi_xz_0(mx)
Psi_xz(mx)=Psi_xz_R(mx)
norm_t=norm_t+d_x*ABS(Psi_xz_R(mx))**2
Enddo
CLOSE(17)
CLOSE(3)