²é¿´: 4071  |  »Ø¸´: 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
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

Gina88

ľ³æ (ÕýʽдÊÖ)

ÒýÓûØÌû:
Originally posted by snoopyzhao at 2011-05-04 19:08:49:
½÷É÷µØ»³ÒÉÄãÒÔǰûÓÐд¹ý Fortran µÄ³ÌÐò£¬»òÕßҲûÓÐÈÏÕæµØ¿´¹ýÊ飬·ñÔò²»Ó¦¸Ã³öÏÖ×Ö·û´®Á½¶Ë²»¼ÓÒýºÅ£¬if ºóÃæ²»¸úÅжÏÓï¾äµÄÇé¿ö£¬ºÇºÇ¡­¡­

ÄãÌù³öÀ´µÄ³ÌÐò¸ù±¾¾Í²»ÄܽøÐбàÒ루¼´³öÏÖÓï·¨´íÎ󣩣¬ÄÇôҪ±ð ...

Äú˵µÄû´í£¬ÎÒµÄȷûÓÐд¹ýfortran³ÌÐò£¬Ò²Ã»ÓÐ×Ðϸ¿´¹ýÊé¡£
¼¸Ììǰ¶¼²»ÖªµÀfortranµÄÄÇЩ¶«Î÷¡£
µ«ÊÇÒòΪ֪µÀÒ»µãCÓïÑÔ£¬Ç°ÃæÎªÁËÑо¿£¬µÃµ½Á˱ðÈ˵ijÌÐò´úÂë¡£
¿´ÁËһϣ¬²»¶®µÄ²é°Ù¶È£¬È»ºó¾õµÃ³ÌÐò²»ÂúÒ⣬¾Í×Ô¼ºÐÞ¸ÄÁË£¬
ÒòΪ¼òµ¥£¬ËùÒÔÐ޸ijɹ¦ÁË¡£

ºóÀ´¾ÍÏë×Å×Ô¼ºÐ´µã´úÂëʵÏÖ½«ÄǸöcellÎļþת»»³ÉPOSCAR£¬È»ºó¾ÍºúÂÒдÁËÉÏÃæµÄ³ÌÐò£¬ÒòÎªÇ°ÃæµÃµ½±ðµÄ³ÌÐò¶¼ÊÇ77°æµÄ£¬¶øÇÒ¶¼ÊÇÊýÖµ£¬Ã»ÓÐ×Ö·û´®µÄ¡£´óÖµķ­ÁË·­Ê飬ÏÖÔÚÕâ¸öÊéÃ²ËÆºÜÉÙ°¡£¬Ò²²éÁ˲ébaidu£¬¾ÍÏ¡ÀïºýÍ¿µÄдÁË¡£
×Ö·û´®ÎҲµ½ÓдíÁË£¬µ«ÊDz»ÖªµÀ¸ÃÔõôŪ£¬ËùÒԾͷ¢µ½ÕâÀïÀ´ÁË¡£Ïë×ÅţţÄܰïÎÒ½â¾öһϡ£

·Ç³£¸ÐлÄúµÄÖ¸Õý¡£
²»¹ýÄÜ·ñÏêϸһµã¸æËßÎÒʲôµØ·½Óï·¨´íÁË£¬Ó¦¸ÃÔõô¸ÄÄØ£¬Á÷ÀáÖÂлÁË
8Â¥2011-05-04 22:28:31
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
²é¿´È«²¿ 60 ¸ö»Ø´ð

Gina88

ľ³æ (ÕýʽдÊÖ)

Õâ¸öÊÇcellµÄÄÚÈÝ
%BLOCK LATTICE_CART
      12.782529349912258      -0.000000000000028       0.000000000000001
      -0.000000000000000      13.529995000000000       0.000000000000001
       0.000000000000000       0.000000000000000      10.000000000000000
%ENDBLOCK LATTICE_CART

%BLOCK POSITIONS_FRAC
  H   0.0555000007152556   0.1666999995708470   0.5000000000000000
  H   0.2221666673819220   0.0666999995708464   0.5000000000000000
  H   0.1110555562708110   0.0666999995708466   0.5000000000000000
  H   0.1110555562708110   0.0666999995708466   0.5000000000000000
  C   0.2777222229374780   0.1666999995708470   0.5000000000000000
  C   0.3888333340485890   0.1666999995708470   0.5000000000000000
  C   0.5555000007152560   0.0666999995708465   0.5000000000000000
  S   0.4443888896041450   0.0666999995708466   0.5000000000000000
  S   0.6110555562708110   0.1666999995708470   0.5000000000000000
  si   0.6110555562708110   0.1666999995708470   0.5000000000000000
%ENDBLOCK POSITIONS_FRAC
2Â¥2011-05-04 17:52:59
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

Gina88

ľ³æ (ÕýʽдÊÖ)

ÄǸöЦÁ³£º£©ÊÇ
ðºÅ+ÓÒÀ¨ºÅ

ÄǸöºìÁ³¡±£©ÊÇ
ÓÒÀ¨ºÅ
3Â¥2011-05-04 17:56:30
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

Gina88

ľ³æ (ÕýʽдÊÖ)

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
4Â¥2011-05-04 17:58:28
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] ±¾ÈË¿¼085602 »¯Ñ§¹¤³Ì ר˶ +18 ²»ÖªµÀ½Ðʲô£¡ 2026-03-15 20/1000 2026-03-20 13:52 by danney002
[¿¼ÑÐ] Ò»Ö¾Ô¸Î÷ÄϽ»Í¨ ר˶ ²ÄÁÏ355 ±¾¿ÆË«·Ç Çóµ÷¼Á +4 Î÷ÄϽ»Í¨×¨²Ä355 2026-03-19 4/200 2026-03-20 11:39 by »¨¿ª¸»¹óÐÒ¸£ÈËÉ
[¿¼ÑÐ] ÄÜÔ´²ÄÁÏ»¯Ñ§¿ÎÌâ×éÕÐÊÕ˶ʿÑо¿Éú8-10Ãû +5 ÍÑÓ±¶ø³ö 2026-03-16 14/700 2026-03-20 09:30 by kkcoco25
[¿¼ÑÐ] Çóµ÷¼Á +3 °µÓ¿afhb 2026-03-16 3/150 2026-03-20 00:28 by ºÓÄÏ´óѧУÓÑ
[¿¼ÑÐ] 081700»¯¹¤Ñ§Ë¶µ÷¼Á +3 ¡¾1¡¿ 2026-03-16 3/150 2026-03-19 23:40 by edmund7
[¿¼²©] ¶«»ªÀí¹¤´óѧ»¯²Äרҵ26½ì˶ʿ²©Ê¿ÉêÇë +8 zlingli 2026-03-13 8/400 2026-03-19 16:32 by ÇáËɲ»ÉÙËæ
[¿¼ÑÐ] 324·Ö 085600²ÄÁÏ»¯¹¤Çóµ÷¼Á +3 llllkkkhh 2026-03-18 3/150 2026-03-19 14:22 by houyaoxu
[¿¼ÑÐ] 332Çóµ÷¼Á +3 ydfyh 2026-03-17 3/150 2026-03-19 10:14 by ¹¦·ò·è¿ñ
[¿¼ÑÐ] 330Çóµ÷¼Á +3 С²Ä»¯±¾¿Æ 2026-03-18 3/150 2026-03-18 21:55 by ÎÞи¿É»÷111
[¿¼ÑÐ] 344Çóµ÷¼Á +6 knight344 2026-03-16 7/350 2026-03-18 20:13 by walc
[¿¼ÑÐ] Ò»Ö¾Ô¸ÎäÀí²ÄÁÏ305·ÖÇóµ÷¼Á +5 ÏëÉϰ¶µÄÀðÓã 2026-03-18 6/300 2026-03-18 17:53 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] 295Çóµ÷¼Á +3 Ò»Ö¾Ô¸¾©Çø211 2026-03-18 5/250 2026-03-18 17:03 by zhaoqian0518
[¿¼ÑÐ] ÊÕ¸´ÊÔµ÷¼ÁÉú +4 ÓêºóÇïºÉ 2026-03-18 4/200 2026-03-18 14:16 by elevennnne
[¿¼ÑÐ] 326Çóµ÷¼Á +5 Éϰ¶µÄСÆÏ 2026-03-15 6/300 2026-03-17 17:26 by ruiyingmiao
[¿¼²©] 26É격 +4 °Ë6°Ë68 2026-03-16 4/200 2026-03-17 13:00 by ÇáËɲ»ÉÙËæ
[¿¼ÑÐ] 274Çóµ÷¼Á +5 ʱ¼äµã 2026-03-13 5/250 2026-03-17 07:34 by ÈÈÇéɳĮ
[¿¼ÑÐ] 333Çóµ÷¼Á +3 ÎÄ˼¿Í 2026-03-16 7/350 2026-03-16 18:21 by ÎÄ˼¿Í
[¿¼ÑÐ] 304Çóµ÷¼Á +4 ahbd 2026-03-14 4/200 2026-03-16 16:48 by ÎҵĴ¬Îҵĺ£
[¿¼ÑÐ] ÖпÆÔº²ÄÁÏ273Çóµ÷¼Á +4 yzydy 2026-03-15 4/200 2026-03-16 15:59 by Gaodh_82
[¿¼ÑÐ] 330Çóµ÷¼Á +3 ?½´¸øµ÷¼Á¹òÁË 2026-03-13 3/150 2026-03-14 10:13 by JourneyLucky
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û