| 查看: 3890 | 回复: 59 | ||
| 本帖产生 3 个 程序强帖 ,点击这里进行查看 | ||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||
Gina88木虫 (正式写手)
|
[求助]
写了一个fortran90的小程序,编译通不过,请大侠帮忙
|
|
|
program cell-POSCAR !announcement begin*********************************** implicit none real(8)::cellcon(3,3) !lattice constance real(8),allocatable::atomcoor(:, !direct coordinate of atoms integer,allocatable::type( ![]() integer i,j,k,m,n !m:atom number,n:type number character(len=1) nonsense !to contain something that will not be used character(len=2) position !to read % character(len=2) element1,element2 !End announcement************************************ !Begin reading data from "cell"**************************** open(unit=18,file="cell",status="old" ![]() read(18,*)nonsense do i=1,3 read(18,*)cellcon(i,1),cellcon(i,2),cellcon(i,3) end do read(18,*)position read(18,*)nonsense read(18,*)nonsense n=0;m=0 read(18,*)element2 do while(position/=element2) n=n+1 element1=element2 do while(element1==element2) m=m+1 read(18,*)element2 end do end do close(18) allocate(type(n)) allocate(atomcoor(m,3)) open(unit=28,file="cell",status="old" ![]() read(28,*)nonsense read(28,*)nonsense read(28,*)nonsense read(28,*)nonsense read(28,*)nonsense read(28,*)nonsense read(28,*)nonsense read(28,*)element2,atomcoor(1,1),atomcoor(1,2),atomcoor(1,3) i=1;k=1 element1=element2 if (m==1) then type(1)=1 else if do j=2,m read(28,*)element2,atomcoor(j,1),atomcoor(j,2),atomcoor(j,3) if(element1==element2) then k=k+1 if(m==j) type(i)=k else if type(i)=k i=i+1 element1=element2 k=1 if(m==j) type(i)=k end if end do end if close(28) !End reading data from "cell"**************************** !Begin writing to "POSCAR"****************************** open(unit=38,file="POSCAR",status="replace" ![]() write(38,10)System write(38,100)cellcon(1,1) do i=1,3 write(38,200)(cellcon(i,j)/cellcon(1,1),j=1,3) end do write(38,60)(type(i),i=1,n) write(38,20)Selective,dynamic write(38,30)Direct do i=1,m write(38,300)(atomcoor(i,j),j=1,3) end do 10 FORMAT(1X,A6) 20 FORMAT(1X,A9,1X,A7) 30 FORMAT(1X,A6) 60 FORMAT(1X,n(I3,2X)) 100 FORMAT(1X,F18.16) 200 FORMAT(1X,3(F18.16,3X)) 300 FORMAT(1X,F18.16,2X,F18.16,2X,F18.16,2X,'T',2X,'T',2X,'T') close(38) !End writing to "POSCAR"******************************** end |
» 猜你喜欢
北京211副教授,35岁,想重新出发,去国外做博后,怎么样?
已经有3人回复
自荐读博
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有5人回复
论文终于录用啦!满足毕业条件了
已经有22人回复
不自信的我
已经有5人回复
磺酰氟产物,毕不了业了!
已经有4人回复
投稿Elsevier的杂志(返修),总是在选择OA和subscription界面被踢皮球
已经有8人回复
» 本主题相关价值贴推荐,对您同样有帮助:
大侠们,给点儿建议啊。。。
已经有7人回复
CASTEP在计算是出现问题啦,求大侠帮忙啊。。。
已经有13人回复
不同功能vasp的编译
已经有4人回复
一个FORTRAN90程序,越界了,希望高手帮助
已经有5人回复
请教一个fortran小程序编译出错的问题,谢谢
已经有9人回复
有关fortran的一次而问题,希望大家能帮帮忙,谢谢
已经有4人回复
【求助】用fortran怎么描述下面这样的情况,我是新手,请大家帮忙
已经有8人回复
【求助】求Fortran90编译器?
已经有11人回复
【求助】帮忙编个用于VASP小程序
已经有22人回复
snoopyzhao
至尊木虫 (职业作家)
- 程序强帖: 16
- 应助: 157 (高中生)
- 贵宾: 0.02
- 金币: 18844.7
- 红花: 29
- 帖子: 3803
- 在线: 1422.4小时
- 虫号: 183750
- 注册: 2006-02-13
- 专业: 污染生态化学
6楼2011-05-04 19:06:16
snoopyzhao
至尊木虫 (职业作家)
- 程序强帖: 16
- 应助: 157 (高中生)
- 贵宾: 0.02
- 金币: 18844.7
- 红花: 29
- 帖子: 3803
- 在线: 1422.4小时
- 虫号: 183750
- 注册: 2006-02-13
- 专业: 污染生态化学
7楼2011-05-04 19:08:49
snoopyzhao
至尊木虫 (职业作家)
- 程序强帖: 16
- 应助: 157 (高中生)
- 贵宾: 0.02
- 金币: 18844.7
- 红花: 29
- 帖子: 3803
- 在线: 1422.4小时
- 虫号: 183750
- 注册: 2006-02-13
- 专业: 污染生态化学
9楼2011-05-04 22:38:39
snoopyzhao
至尊木虫 (职业作家)
- 程序强帖: 16
- 应助: 157 (高中生)
- 贵宾: 0.02
- 金币: 18844.7
- 红花: 29
- 帖子: 3803
- 在线: 1422.4小时
- 虫号: 183750
- 注册: 2006-02-13
- 专业: 污染生态化学
10楼2011-05-04 22:43:20
snoopyzhao
至尊木虫 (职业作家)
- 程序强帖: 16
- 应助: 157 (高中生)
- 贵宾: 0.02
- 金币: 18844.7
- 红花: 29
- 帖子: 3803
- 在线: 1422.4小时
- 虫号: 183750
- 注册: 2006-02-13
- 专业: 污染生态化学
13楼2011-05-05 09:00:35
snoopyzhao
至尊木虫 (职业作家)
- 程序强帖: 16
- 应助: 157 (高中生)
- 贵宾: 0.02
- 金币: 18844.7
- 红花: 29
- 帖子: 3803
- 在线: 1422.4小时
- 虫号: 183750
- 注册: 2006-02-13
- 专业: 污染生态化学
14楼2011-05-05 09:02:47
snoopyzhao
至尊木虫 (职业作家)
- 程序强帖: 16
- 应助: 157 (高中生)
- 贵宾: 0.02
- 金币: 18844.7
- 红花: 29
- 帖子: 3803
- 在线: 1422.4小时
- 虫号: 183750
- 注册: 2006-02-13
- 专业: 污染生态化学
15楼2011-05-05 09:18:59
snoopyzhao
至尊木虫 (职业作家)
- 程序强帖: 16
- 应助: 157 (高中生)
- 贵宾: 0.02
- 金币: 18844.7
- 红花: 29
- 帖子: 3803
- 在线: 1422.4小时
- 虫号: 183750
- 注册: 2006-02-13
- 专业: 污染生态化学
16楼2011-05-05 09:19:38
snoopyzhao
至尊木虫 (职业作家)
- 程序强帖: 16
- 应助: 157 (高中生)
- 贵宾: 0.02
- 金币: 18844.7
- 红花: 29
- 帖子: 3803
- 在线: 1422.4小时
- 虫号: 183750
- 注册: 2006-02-13
- 专业: 污染生态化学
【答案】应助回帖
Gina88(金币+2): 2011-05-05 11:28:04
余泽成(程序强帖+1): 2011-05-05 18:28:00
余泽成(程序强帖+1): 2011-05-05 18:28:00
|
我在 diff 中说了,GET_COMMAND_ARGUMENT 是 Fortran 2003 标准中的,如果你的编译器还不支持的话,就用 getarg,就是前面的那句。 至于从文件名中筛选,我前面的回复中也说了,你最好借助于操作系统提供的功能,如果是 Linux,下面的脚本应该是可行的…… 如果是 Windows 的操作系统,应该也是类似的,不过我没有编写 .bat 的经验…… 需要说明的是,你的 POSCAR 文件内容会被替代的…… |
18楼2011-05-05 10:52:28
snoopyzhao
至尊木虫 (职业作家)
- 程序强帖: 16
- 应助: 157 (高中生)
- 贵宾: 0.02
- 金币: 18844.7
- 红花: 29
- 帖子: 3803
- 在线: 1422.4小时
- 虫号: 183750
- 注册: 2006-02-13
- 专业: 污染生态化学
20楼2011-05-05 15:44:09









!direct coordinate of atoms 
回复此楼