作者janewinnie (逃离)
看板Fortran
标题[问题] 实数转字串 却有错误
时间Fri Jun 26 23:59:35 2009
我想要在路径下用回圈开从-3.0, -2.8,...,0,...,2.8,3.0的.txt档
我已经先建立好所需要用到的资料夹,包括"pk0.03","-3.0","-2.8".....
一开始都正常,但是到abil= -1.2以後,下一次的回圈
就会变成abil=-0.9999996而不是-1.0,
到abil=0.0时就会出现错误,无法继续跑下去
以下是我的程式码
program main
implicit none
integer,parameter::ni=20
real::abil
character*7::r_name
character*2:: ni1
call int_to_cht(ni,ni1)
do abil=-3.0,3.0,0.2
call real_to_cht(abil,r_name,888)
open(250+abil,file="D:\pk0.03\"//TRIM(r_name)//"/SH_"&
//TRIM(r_name)//"_"//TRIM(ni1)//".txt",status='replace')
write(250+abil,"(g5.1,4(g10.1))") "迭代","Bias","RMSE","max_expo","not_use"
open(350+abil,file="D:\pk0.03\"//TRIM(r_name)//"/SH_1_"&
//TRIM(r_name)//"_"//TRIM(ni1)//".txt",status='replace')
write(350+abil,"(g5.1,3(g10.1))")"item","P(A)","P(S)","pk"
open(450+abil,file="D:\pk0.03\"//TRIM(r_name)//"/item_"&
//TRIM(r_name)//"_"//TRIM(ni1)//".txt",status='replace')
open(550+abil,file="D:\pk0.03\"//TRIM(r_name)//"/theta_hat_&
"//TRIM(r_name)//"_"//TRIM(ni1)//".txt",status='replace')
open(650+abil,file="D:\pk0.03\"//TRIM(r_name)//"/迭代次数 _&
"//TRIM(r_name)//"_"//TRIM(ni1)//".txt",status='replace')
end do !! abil
stop
end program
!-------------------------------------------
!实数转字串
!-------------------------------------------
subroutine real_to_cht(abil,r_name,num)
implicit none
integer::num
real::abil
character*7::r_name
open(num,file="temp.txt")
write(num,"(f4.1)") abil
rewind(num)
read(num,"(a4)") r_name
close(num,status="delete")
return
end
!-------------------------------------------
!整数转字串
!-------------------------------------------
subroutine int_to_cht(ni,ni1)
implicit none
integer::ni
character*7::ni1
open(987,file="temp.txt")
write(987,"(I2)") ni
rewind(987)
read(987,"(a2)") ni1
close(987,status="delete")
return
end
不知道是哪里出了问题,
想请各位高手帮我看一下@@
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.117.239.136
1F:→ janewinnie:OPEN那边因为版面关系,後面我用&换行,但fortran里我都 06/27 00:06
2F:→ janewinnie:是打成一行 没有分行 06/27 00:06
3F:→ snowanimal:把你的2.8*10吧,别用小数点 简单的说就是用整数试试看 06/27 10:01
4F:→ janewinnie:解决了!!谢谢snowanimal :) 06/27 11:24