|
最近测试CCD(coupled cluster doubles approximation)计算效率时候发现双电子积分矩阵太大时(四个空轨道的双电子积分,在硬盘上大概有60个G),使用了‘direct’在硬盘上存储双电子积分,读取速度会变的很慢。也不知道是什么原因。。。
然后自己想尝试下在存储双电子积分时候直接多开一点文件。 在网上搜了搜教程之后自己凑了个代码,能实现创建文件夹并且在文件夹下按序列创建程序。但是能力有限,感觉写的特别丑。求大神指导怎样改进能写的漂亮点!
附上代码
==================
program creat
implicit none
integer i
character(len=50) folder, opt
character(len=13) filename
character(len=5) tmpc
character(len=100) pathname
folder= 'storage_'
opt(1:9)='mkdir -p '
opt(10:17)=folder
filename(1:8)='test____'
call system(adjustl(trim(opt))) ! to create folder
pathname(1:2)='./'
pathname(3:10)=folder
pathname(11:11)='/'
write(6,*)'pathname', trim(pathname)
do i = 1,100
write(tmpc,'(i5.5)') i
filename(1:8)='test____'
filename(9:13)=tmpc
write(6,*)'index of file', tmpc
pathname(12:24)=filename
open(unit=i+100,file=trim(pathname), form='unformatted',
& access='direct', recl=10000)
close(i+100)
enddo
opt(1:6)='rm -r '
opt(7:15)=folder
call system(adjustl(trim(opt))) ! to rm -r folder
end
|
|