±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 4088  |  »Ø¸´: 59
±¾Ìû²úÉú 3 ¸ö ³ÌÐòÇ¿Ìû £¬µã»÷ÕâÀï½øÐв鿴
µ±Ç°Ö»ÏÔʾÂú×ãÖ¸¶¨Ìõ¼þµÄ»ØÌû£¬µã»÷ÕâÀï²é¿´±¾»°ÌâµÄËùÓлØÌû

snoopyzhao

ÖÁ×ðľ³æ (Ö°Òµ×÷¼Ò)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

¡ï ¡ï ¡ï ¡ï ¡ï
ÓàÔó³É(½ð±Ò+5, ³ÌÐòÇ¿Ìû+1): ÐÁ¿àÁË£¡ 2011-05-04 22:55:55
zvv.f90 ÊÇÄãµÄ³ÌÐò
zv.f90 ÊÇÎҸĺóµÄ³ÌÐò

- ºÍ + ±íʾÐ޸ĵIJ¿·Ö£¬- ºÅ´ú±íÄãµÄ³ÌÐò£¬+ ´ú±íÐ޸ĺóµÄ³ÌÐò¡­¡­
CODE:
--- zvv.f90        2011-05-04 22:39:38.874875000 +0800
+++ zv.f90        2011-05-04 22:42:02.437375000 +0800
@@ -1,4 +1,4 @@
-program cell-POSCAR
+program cell_POSCAR

!announcement begin***********************************
implicit none
@@ -9,6 +9,7 @@
character(len=1) nonsense    !to contain something that will not be used
character(len=2) position   !to read %
character(len=2) element1,element2  
+character(len=20) :: fm
!End announcement************************************

!Begin reading data from "cell"****************************
@@ -48,13 +49,13 @@
element1=element2
if (m==1) then
   type(1)=1
-else if
+else
   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
+    else
       type(i)=k
       i=i+1
       element1=element2
@@ -68,22 +69,23 @@

!Begin writing to "POSCAR"******************************
open(unit=38,file="POSCAR",status="replace")
-write(38,10)System
+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
+write(fm,'(a,i0,a)') '(1x,',n,'(i3,2x))'
+write(38,fm)(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)
+!60 FORMAT(1X,n(I3,2X))
+100 FORMAT(1X,F18.15)
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)

10Â¥2011-05-04 22:43:20
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ÖÇÄÜ»úÆ÷ÈË

Robot (super robot)

ÎÒÃǶ¼°®Ð¡Ä¾³æ

snoopyzhao

ÖÁ×ðľ³æ (Ö°Òµ×÷¼Ò)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

Gina88(½ð±Ò+5): 2011-05-05 09:42:06
ÓàÔó³É(³ÌÐòÇ¿Ìû+1): 2011-05-19 19:20:22
ÔÙÌù¸öÍêÕûµÄ³ÌÐò°É£¬ºÇºÇ¡­¡­
CODE:
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  
character(len=20) :: fm
character(len=20) :: filename
!End announcement************************************

!Begin reading data from "cell"****************************
!call getarg(1,filename)
call GET_COMMAND_ARGUMENT(1,filename)
open(unit=18,file=filename,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=filename,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
  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
      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,*) filename(1:len(trim(filename))-5)
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(fm,'(a,i0,a)') '(1x,',n,'(i3,2x))'
write(38,fm)(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.15)
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

16Â¥2011-05-05 09:19:38
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

snoopyzhao

ÖÁ×ðľ³æ (Ö°Òµ×÷¼Ò)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

Gina88(½ð±Ò+2): 2011-05-05 11:28:04
ÓàÔó³É(³ÌÐòÇ¿Ìû+1): 2011-05-05 18:28:00
ÒýÓûØÌû:
Originally posted by Gina88 at 2011-05-05 10:30:36:
Õâ¸öºÃÏñ±àÒëͨ²»¹ý°¡£¬Ëû˵ûÓж¨ÒåGET_COMMAND_ARGUMENT¡£
ÁíÍâÎļþÃûûÓдÓÖÚ¶àµÄÎļþÖÐɸѡºó׺ÃûΪcellµÄÎļþ°¡¡£

лл´óÏÀÁË£¬ÄãÕæÊǰïÁËÎҺܴóºÜ´óµÄ棬ºÇºÇ£º£©

ÎÒÔÚ diff ÖÐ˵ÁË£¬GET_COMMAND_ARGUMENT ÊÇ Fortran 2003 ±ê×¼Öеģ¬Èç¹ûÄãµÄ±àÒëÆ÷»¹²»Ö§³ÖµÄ»°£¬¾ÍÓà getarg£¬¾ÍÊÇÇ°ÃæµÄÄǾ䡣

ÖÁÓÚ´ÓÎļþÃûÖÐɸѡ£¬ÎÒÇ°ÃæµÄ»Ø¸´ÖÐҲ˵ÁË£¬Äã×îºÃ½èÖúÓÚ²Ù×÷ϵͳÌṩµÄ¹¦ÄÜ£¬Èç¹ûÊÇ Linux£¬ÏÂÃæµÄ½Å±¾Ó¦¸ÃÊÇ¿ÉÐеġ­¡­
CODE:
for i in `ls *.cell`; do
    ./a.exe $i;
done

Èç¹ûÊÇ Windows µÄ²Ù×÷ϵͳ£¬Ó¦¸ÃÒ²ÊÇÀàËÆµÄ£¬²»¹ýÎÒûÓбàд .bat µÄ¾­Ñé¡­¡­

ÐèҪ˵Ã÷µÄÊÇ£¬ÄãµÄ POSCAR ÎļþÄÚÈÝ»á±»Ìæ´úµÄ¡­¡­
18Â¥2011-05-05 10:52:28
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ Gina88 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] Ò»Ö¾Ô¸±±¾©»¯¹¤´óѧ²ÄÁÏÓ뻯¹¤£¨085600£©296Çóµ÷¼Á +12 µ¾ÆÞС±à 2026-03-26 12/600 2026-03-29 01:04 by ÎÒÊÇС¿µ
[˶²©¼ÒÔ°] Çóµ÷¼Á Óлú»¯Ñ§¿¼ÑÐ356·Ö +3 Nadiums 2026-03-25 4/200 2026-03-29 00:50 by 544594351
[¿¼ÑÐ] 305Çóµ÷¼Á +7 RuiFairyrui 2026-03-28 7/350 2026-03-29 00:40 by 544594351
[¿¼ÑÐ] 11408Èí¼þ¹¤³ÌÇóµ÷¼Á +3 Qiuѧing 2026-03-28 3/150 2026-03-28 21:50 by zhq0425
[¿¼ÑÐ] 071000ÉúÎïѧÇóµ÷¼Á£¬³õÊԳɼ¨343 +7 ССÌðÃæÍÅ 2026-03-25 7/350 2026-03-28 20:25 by ÌÆãå¶ù
[¿¼ÑÐ] 321Çóµ÷¼Á +6 è±Óñ~~ 2026-03-25 7/350 2026-03-28 17:48 by è±Óñ~~
[¿¼ÑÐ] ²ÄÁÏÓ뻯¹¤272Çóµ÷¼Á +9 °¢Ë¹µÙ·Ò2004 2026-03-28 9/450 2026-03-28 15:21 by 1018329917
[¿¼ÑÐ] 329Çóµ÷¼Á +6 ÐÇÒ°? 2026-03-26 6/300 2026-03-28 14:14 by ÌÆãå¶ù
[¿¼ÑÐ] 070300Çóµ÷¼Á306·Ö +4 26ÒªÉϰ¶ 2026-03-27 4/200 2026-03-28 13:06 by ÌÆãå¶ù
[¿¼ÑÐ] Ò»Ö¾Ô¸Äϲý´óѧ324Çóµ÷¼Á +7 hanamiko 2026-03-27 7/350 2026-03-28 09:56 by ÀîÉϰ¶0921
[¿¼ÑÐ] ÕÅ·¼Ãú-Öйúũҵ´óѧ-»·¾³¹¤³Ìר˶-298 +4 ÊÖ»úÓû§ 2026-03-26 4/200 2026-03-28 07:17 by mmm just
[Óлú½»Á÷] ¸ßθßѹ·´Ó¦ÇóÖú 10+4 chibby 2026-03-25 4/200 2026-03-27 21:08 by BT20230424
[¿¼ÑÐ] 0856µ÷¼Á +5 ÇóÇóÈÃÎÒÓÐÊé¶Á° 2026-03-26 6/300 2026-03-27 15:12 by caszguilin
[¿¼ÑÐ] Çóµ÷¼Á +3 Áõ¿Â@ 2026-03-24 4/200 2026-03-27 11:28 by shangxh
[¿¼ÑÐ] 312Çóµ÷¼Á +9 Éϰ¶°ÉZJY 2026-03-22 13/650 2026-03-27 11:24 by sanrepian
[¿¼ÑÐ] 336²ÄÁÏÇóµ÷¼Á +7 ³ÂäÞÓ¨ 2026-03-26 9/450 2026-03-27 00:20 by wxiongid
[¿¼ÑÐ] 341Çóµ÷¼Á +7 ÇàÄûÃÊ1 2026-03-26 7/350 2026-03-27 00:19 by wxiongid
[¿¼ÑÐ] 325Çóµ÷¼Á +3 Aoyijiang 2026-03-23 3/150 2026-03-26 20:46 by ²»³Ôô~µÄ؈
[¿¼ÑÐ] 336»¯¹¤µ÷¼Á +4 Íõ´ó̹1 2026-03-23 5/250 2026-03-23 18:32 by allen-yin
[¿¼ÑÐ] ÇóÀÏʦÊÕÎÒ +3 zzh16938784 2026-03-23 3/150 2026-03-23 12:56 by ztnimte
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û