24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1090  |  回复: 4

836449366

金虫 (小有名气)

[求助] 简单使用Fortran编写已有1人参与

读写文件"xyz"
      xyz
N(Fragment=1)         0.9363    0.3015    0.1222
N(Fragment=1)        -0.2844   -0.3387   -0.3991
N(Fragment=1)        -0.1127    1.1207   -0.5105
Br(Fragment=1)       -0.3527    0.5055    0.8069
达到效果:
   N          0.9363    0.3015    0.1222
   N         -0.2844   -0.3387   -0.3991
   N         -0.1127    1.1207   -0.5105
   Br        -0.3527    0.5055    0.8069

Fortran语言
      program main
      implicit none
      integer*4,parameter :: natom=4
      integer*4 i,j
      character*80 record
      character*15 symb(natom),c(15)
      real*8 m(natom,3)
      open(10,file="xyz"
      read (10,'(a80)') record
      do i=1,natom
      read (10,*) symb(i)(1:1),m(i,1),m(i,2),m(i,3)
      write (*,"(a3,3F12.6)" symb(i)(1:1),m(i,1),m(i,2),m(i,3)
      enddo
      end
发现这个只能实现单个字符的元素,不能打印出两个字符的元素,求大神帮忙修改下?

还有,我在修改过程中,测试程序时,碰到这个
     program main
      implicit none
      integer*4 i,j
      character*80 record
      open(10,file="xyz"
      read (10,"(a80)" record
      write(*,"(a80)" record           
      end
怎么总是无法打印出全部的内容,这个怎么修改?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kekexili_08

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
836449366: 金币+20, ★★★★★最佳答案 2015-05-01 22:01:30
read (10,*) symb(i),m(i,1),m(i,2),m(i,3)
N=index(symb(i),"("
symb(i)=Symb(i)(1:N-1)
2楼2015-04-28 20:17:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

836449366

金虫 (小有名气)

引用回帖:
2楼: Originally posted by kekexili_08 at 2015-04-28 20:17:59
read (10,*) symb(i),m(i,1),m(i,2),m(i,3)
N=index(symb(i),"("
symb(i)=Symb(i)(1:N-1)

我想问下,我想
      program main
      implicit none
      integer*4 i,j
      character*80 record
      open(10,file="xyz"
      read (10,"(a80)" record
      write(*,"(a80)" record
      end
打印xyz文件的内容,我这个应该怎样修改?
3楼2015-04-30 17:53:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kekexili_08

木虫 (正式写手)

【答案】应助回帖

program main
      implicit none
      integer*4 i,j
      character*80 record
      open(10,file="xyz"

10      read(10,"(a80)",end=9999) record
        write(*,"(a80)" record
        goto 10
9999    close(10)

        end

你不做循环怎么可能打印出所有行?
4楼2015-05-01 10:47:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

836449366

金虫 (小有名气)

引用回帖:
4楼: Originally posted by kekexili_08 at 2015-05-01 10:47:16
program main
      implicit none
      integer*4 i,j
      character*80 record
      open(10,file="xyz"

10      read(10,"(a80)",end=9999) record
        write(*,"(a8 ...

太感谢了,小程序难倒一批人
5楼2015-05-01 22:01:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 836449366 的主题更新
信息提示
请填处理意见