24小时热门版块排行榜    

查看: 4522  |  回复: 59
本帖产生 3 个 程序强帖 ,点击这里进行查看

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

你最好还是把运行程序所有的代码+数据文件打包放在附件里吧,要不然,别人也没有办法测试啊,仅仅靠看的功力还是不够的……
31楼2011-05-08 17:37:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Gina88

木虫 (正式写手)

内容已删除
32楼2011-05-08 17:41:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Gina88

木虫 (正式写手)

引用回帖:
Originally posted by snoopyzhao at 2011-05-08 17:37:30:
你最好还是把运行程序所有的代码+数据文件打包放在附件里吧,要不然,别人也没有办法测试啊,仅仅靠看的功力还是不够的……

附件是我上传的CHGCAR,您可以将它复制一下,一份命名为CHGCAR1,另一份命名为CHGCAR2
33楼2011-05-08 17:54:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

★ ★ ★
余泽成(金币+3): 辛苦了! 2011-05-19 19:21:37
引用回帖:
Originally posted by Gina88 at 2011-05-08 17:54:09:
附件是我上传的CHGCAR,您可以将它复制一下,一份命名为CHGCAR1,另一份命名为CHGCAR2

你还是没有给全,呵呵,不过不要紧,你的问题在于element不能那么读, read(12,*) 这种只对数字有用,所以,关于字符串,只能人工解析。

下面是一个实现,我没有在你的那个程序上改,你自己看看能不能理解……
CODE:
program test
implicit none
integer :: i, k
integer :: line_len ! length of element line without leading and tailing space.
integer :: atomsum
character(len=80) :: line
character(len=2), dimension(:), allocatable :: element
integer, dimension(:), allocatable :: atomnum

open(unit=12, file = 'CHGCAR')

do i=1,5
read(12,*)
end do

read(12,'(a)') line
line = adjustl(line)
line_len = len_trim(line)

atomsum=1
do i=1,line_len
   if(line(i:i) == ' ' .and. line(i:i+1) /= ' ') atomsum=atomsum+1
end do

write(*,*) atomsum

allocate(element(atomsum))
allocate(atomnum(atomsum))

k = 1
do i=1,line_len
   if(line(i:i) /= ' ' .and. line(i:i+1) == ' ') then
       element(k) = line(i:i)
       k = k + 1
    end if
   if(line(i:i) /= ' ' .and. line(i:i+1) /= ' ') then
       element(k) = line(i:i+1)
       line(i+1:i+1) = ' '
       k = k + 1
    end if
end do


read(12, *) (atomnum(i), i=1,atomsum)

write(*, *) (atomnum(i), i=1,atomsum)
write(*, '(a5)') (element(i), i=1,atomsum)

end program test

34楼2011-05-08 19:31:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Gina88

木虫 (正式写手)

引用回帖:
Originally posted by snoopyzhao at 2011-05-08 19:31:46:
你还是没有给全,呵呵,不过不要紧,你的问题在于element不能那么读, read(12,*) 这种只对数字有用,所以,关于字符串,只能人工解析。

下面是一个实现,我没有在你的那个程序上改,你自己看看能不能理解… ...

这个软件的目的就是其它部分保持CHGCAR1的不变,
就是想实现384  160   24以下的那部分数据和CHGCAR2相应部分相减。

在元素那行,元素的个数不定,
元素下一行表示相应元素原子的个数。

我的程序按照您的部分指示修改了,能编译,但是运行还是有问题。
说segmentation fault。
然后用ulimit -s unlimited还是不行。

谢谢您了!
35楼2011-05-09 00:06:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Gina88

木虫 (正式写手)

引用回帖:
Originally posted by snoopyzhao at 2011-05-08 17:37:30:
你最好还是把运行程序所有的代码+数据文件打包放在附件里吧,要不然,别人也没有办法测试啊,仅仅靠看的功力还是不够的……

上帖中,CHGCAR1和CHGCAR2可能有错误,这里再发一次。
谢谢您了!

write(*,*)"number of CHGCAR files2 or 3?)"
read(*,*)filenum
这里可以输入2
36楼2011-05-09 00:15:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

★ ★
微尘、梦想(金币+2): 2011-05-09 18:06:49
引用回帖:
Originally posted by Gina88 at 2011-05-09 00:06:17:
这个软件的目的就是其它部分保持CHGCAR1的不变,
就是想实现384  160   24以下的那部分数据和CHGCAR2相应部分相减。

在元素那行,元素的个数不定,
元素下一行表示相应元素原子的个数。

我的程序按照您 ...

你没有给 EIGENVAL 文件。

另外,你的程序的第一个错误在于,第 13 行,你定义了:
CODE:
integer,allocatable::atomnum(:)

但在第43-45行
CODE:
do i=1,100
  atomnum(i)=0
end do

在这之前,你也没有为 atomnum 分配内存,这数组要不越界就是 Fortran 编译器的问题了……
37楼2011-05-09 06:36:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

★ ★
微尘、梦想(金币+2): 2011-05-09 18:06:56
引用回帖:
Originally posted by Gina88 at 2011-05-09 00:06:17:
这个软件的目的就是其它部分保持CHGCAR1的不变,
就是想实现384  160   24以下的那部分数据和CHGCAR2相应部分相减。

在元素那行,元素的个数不定,
元素下一行表示相应元素原子的个数。

我的程序按照您 ...

384 160 24 以下那部分数据指的是啥?包括 augmentation occupancies 部分的数据吗?

给一套完整的测试数据,给一个明确的问题的描述。这不是一个很难的问题,应该就很快能够解决了……
38楼2011-05-09 06:54:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Gina88

木虫 (正式写手)

引用回帖:
Originally posted by snoopyzhao at 2011-05-09 06:54:14:
384 160 24 以下那部分数据指的是啥?包括 augmentation occupancies 部分的数据吗?

给一套完整的测试数据,给一个明确的问题的描述。这不是一个很难的问题,应该就很快能够解决了……

en,相减的数据不包含augmentation occupancies的那部分,
相减的是384 160 24以下,augmentation occupancies以上的那部分数据。
即CHGCAR1=CHGCAR1-CHGCAR2。

谢谢大侠了!

数据就是EIGENVAL,还有CHGCAR1和CHGCAR2.
运行diff_CHGCAR的时候输入2就可以了。

这个是计算差分电荷的,但是由于实际的我没有计算。所以CHGCAR1和CHGCAR2就用了同一个,想测试一下程序能不能运行。而且CHGCAR一般情况还很大,很不好上传。
39楼2011-05-09 09:51:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

引用回帖:
Originally posted by Gina88 at 2011-05-09 09:51:06:
en,相减的数据不包含augmentation occupancies的那部分,
相减的是384 160 24以下,augmentation occupancies以上的那部分数据。
即CHGCAR1=CHGCAR1-CHGCAR2。

谢谢大侠了!

数据就是EIGENVAL,还有C ...

你没有给我 EIGENVAL 啊,你给的是一个压缩文件,其中的内容是 CHGCAR1……
40楼2011-05-09 10:05:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 Gina88 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 93BebMhtakh前后11位开头都是大写 +4 且听虎啸 2026-08-17 5/250 2026-08-18 00:49 by 蔡棒棒菂
[基金申请] 感觉是下周放榜了 +6 angus9576 2026-08-17 11/550 2026-08-17 23:57 by angus9576
[基金申请] filecode=后面第一个是大写字母 +8 wangze12014 2026-08-14 10/500 2026-08-17 17:05 by xter9665
[基金申请] 时间戳变了,能看出什么问题? +4 基诺咪客 2026-08-17 4/200 2026-08-17 16:10 by Vivilian
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +12 Ldrop2023 2026-08-13 15/750 2026-08-17 15:02 by 小豌豆_发芽
[基金申请] 今天系统多次维护,明天很可能放榜! +8 zju2000 2026-08-16 9/450 2026-08-17 12:20 by lmz0216
[基金申请] 时间戳又变了8-15 +13 archvillain 2026-08-15 25/1250 2026-08-16 20:13 by zhaosm1982
[基金申请] 2027广东省杰青 +3 奶牛小黑 2026-08-15 6/300 2026-08-16 20:07 by 奶牛小黑
[基金申请] 快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。 +3 Tide man 2026-08-14 3/150 2026-08-16 17:47 by jurkat.1640
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +10 majunge000 2026-08-11 12/600 2026-08-16 08:18 by xli1984
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[硕博家园] 读博的好处 +4 lnee 2026-08-11 4/200 2026-08-14 10:20 by ahsoarli
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 分享一下我之前已中青C的计划书的filecode +4 布布和一二 2026-08-11 5/250 2026-08-13 12:56 by cratir
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
信息提示
请填处理意见