±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 3232  |  »Ø¸´: 4

ľ×Ó»¯Ê®ÎÄÎä

½ð³æ (СÓÐÃûÆø)

[ÇóÖú] list-directed I/O syntax error,unit 12

fortran±àÒëºÍÔËÐж¼Í¨¹ýÁË£¬execute programʱ³öÏÖÁËÕâ¸öÎÊÌ⣬³öÎÊÌâµÄÐÐÊÇÔÚ¶ÁMEÎļþµÄʱºò£¬ÇëÎÊÕâ¿ÉÄÜÊÇʲôԭÒòѽ£¿¼±¼±¼±£¬ÏÈлл¸÷λ¸ßÊÖÁË£¡£¡£¡
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

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

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

snoopyzhao

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

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

¡ï
jjdg(½ð±Ò+1): ¸Ðл²ÎÓë 2011-10-19 06:39:09
ľ×Ó»¯Ê®ÎÄÎä(½ð±Ò+5): ¡ïÓаïÖú 2012-01-08 11:18:34
Ìù´úÂ룬ÒÔ¼°Ó¦µÄÊý¾ÝÎļþ¡­¡­

ÁíÍ⣬Äã¿ÉÒԲο¼ÕâÀ×Ô¼ºÅųýһϣº
http://software.intel.com/en-us/forums/showthread.php?t=51831
2Â¥2011-10-18 20:23:38
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ľ×Ó»¯Ê®ÎÄÎä

½ð³æ (СÓÐÃûÆø)

ÒýÓûØÌû:
2Â¥: Originally posted by snoopyzhao at 2011-10-18 20:23:38:
Ìù´úÂ룬ÒÔ¼°Ó¦µÄÊý¾ÝÎļþ¡­¡­

ÁíÍ⣬Äã¿ÉÒԲο¼ÕâÀ×Ô¼ºÅųýһϣº
http://software.intel.com/en-us/forums/showthread.php?t=51831

!===================================================================
!¸Ã³ÌÐòÓÃÓÚ¼ÆËãTBÊÆ
!         
!===================================================================
program TBenergy
  implicit none

!===================================================================
!MEÎļþ¶ÁÈ¡ºÍÊäÈëÏà¹Ø±äÁ¿ÉùÃ÷
  real::mass1,mass2
  integer::seq_1,seq_2,seq_3,seq_4,seq_5,n_Au,n_Ag
  real::angle, rand_v, start_time, finish_time
  integer::bi,c,d
  character*4::elem(2)
  integer,allocatable::seq1(,seq2(
!===================================================================
!Ö÷³ÌÐò±äÁ¿ÉêÃ÷
  integer :: Natom, i, j, m, x_change1, x_change2, x_change3,element,ele(30000)
  real :: r, a_const(3), a_const0(3)
  real :: potential
  real :: pos_Au(25000, 3), pos_Ag(25000, 3), pos_r(3), pos_Au0(25000, 3), pos_Ag0(25000, 3)
  real :: min_energy,E0
  real :: ptable_r(70000, 3), ptable_b(70000, 3)
  real :: Rc, box_number, skin
  integer::flag,TB_ind,maxpair, Length_List
  real,allocatable :: pos(:,
  integer, allocatable :: point(:, , List(
  character*80 :: Input, SampIn, SampOut  
  namelist/ filename / SampIn, SampOut

  !common/resu/ potential
  common/ ene / ptable_r, ptable_b
  common/ canshu / Natom,Length_List,a_const,Rc
  common/min_one/min_energy,TB_ind
!=================================================================
  call cpu_time(start_time)
  open(13, file = 'TBsc.txt')
  read(13, filename)
  close(13)


!read the position of these atoms
!  ME  read the coordinate of atom
  open(12,file=SampIn,status='old')
  read(12,*)seq_1,(a_const0(i),i=1, 3)
  read(12,*)seq_2,angle,angle,angle
  read(12,*)seq_3,bi,bi
  read(12,*)seq_4,ele(1),c,n_Au,d     £¡³ö´íÐУ¡£¡£¡  
  allocate(seq1(n_Au))
  do i=1,n_Au
        read(12,*) seq1(i),ele(1),d,(pos_Au0(i,j),j=1,3),mass1
  enddo
  read(12,*)seq_5,ele(2),c,n_Ag,d
  allocate(seq2(n_Ag))
  do i=1,n_Ag
        read(12,*) seq2(i),ele(2),d,(pos_Ag0(i,j),j=1,3),mass2
  enddo
close(12)
box_number = a_const0(1)/3.72
Natom = n_Au + n_Ag
Length_List = Natom*Natom   !¸ü¸ÄÁË£¡£¡£¡
allocate( List(Length_List), point(Natom, 2))
allocate(pos(Natom,3))
ele(1:n_Au) = 1
ele((n_Au + 1):Natom) = 2
flag=1
min_energy=10000
do x_change1 = -5, 5, 1
  a_const(1) = a_const0(1)*(1 + x_change1*1.0/ 100.0)
  do x_change2 = -5, 5, 1
    a_const(2) = a_const0(2)*(1 + x_change2*1.0/ 100.0)  
    do x_change3 = -5, 5, 1
      a_const(3) = a_const0(3)*(1 + x_change1*1.0/ 100.0)


      do m = 1, 3
        pos_Au(:, m) = pos_Au0(:, m) * a_const(m)
        pos_Ag(:, m) = pos_Ag0(:, m) * a_const(m)
      end do
!======================================
      pos(1:n_Au, = pos_Au
      pos((n_Au + 1):Natom, = pos_Ag
      call potential(ptable_r, ptable_b)
      call update_list(list, point, pos)
      call energy_total(E0, pos, ele, List, point)
                          if(E0 < min_energy)   then
                        min_energy=E0
                        end if
     flag = flag + 1
    end do
  end do
end do
open (unit = 11, file = SampOut)   
write(*,*)'TB_energy', min_energy
write(11,*)'TB_energy', min_energy
close(11)
call cpu_time(finish_time)
write(*, *) 'running time = ', finish_time - start_time, 's'


end program TBenergy
!=================================================================

!=================================================================
subroutine update_list(list, point, pos)         !¸üÐÂÁÚ½üÔ­×Ó
  implicit none
  integer :: i, j, Natom, L, length_List
    common/ canshu / Natom,Length_List,a_const
  integer :: List(Length_List), point(Natom, 2)
  real :: pos(Natom, 3), pos_r(3)
  real :: r, Rc, skin, a_const

   Rc =7        !½Ø¶Ï°ë¾¶
   skin =  0.4  !¿ÉÒÔ²»ÓÃ
  List = 0
  point = 0
  L = 1
  do i = 1, Natom
    point(i, 1) = L      !point(i, Êý×éÓÃÓÚ´æ´¢iÔ­×ÓÁÚ½üÔ­×ÓÔÚListÊý×éÖеÄË÷ÒýºÅ£¬point(i, 1)Ϊ¿ªÊ¼,point(i, 2)ÖÕÁË£¨°üÀ¨i±¾Éí£©
loop_1 : do j = 1, Natom
          pos_r = (pos(i, - pos(j, )
!          pos_r = pos_r - a_const*nint(pos_r/a_const)  !ÖÜÆÚÐÔ±ß½ç          
          r = sqrt(sum(pos_r*pos_r))
          if(r<(Rc + skin)) then           !
            if(i.eq.j) cycle loop_1
                List(L) = j   !¾ØÕóάÊýÒç³ö
                L = L + 1
          endif
        enddo loop_1
        List(L) = i            !°ÑiÔ­×Ó±¾Éí´æÔÚpoint(i, 2)
        point(i, 2) = L
        L = L + 1
  enddo  
end subroutine update_List
!====================================================================

!===============================================================================
subroutine potential(ptable_r, ptable_b)
  implicit none
  integer :: i
  real :: A_p(3), e_p(3), p_p(3), q_p(3), r0_p(3)
  real :: ptable_r(50000, 3), ptable_b(50000, 3)

  A_p = (/0.2096, 0.1490, 0.1031/)
  e_p = (/1.8153, 1.4874, 1.1895/)
  p_p = (/10.139, 10.494, 10.850/)
  q_p = (/4.033, 3.607, 3.180/)
  r0_p = (/0.7738, 0.7350, 0.7751/)
  
  do i = 1, 50000
    ptable_r(i, = A_p*exp(-p_p*((i*1.0/10000)/r0_p - 1))        !- A_p*exp(-p_p*((50000*1.0/10000)/r0_p - 1))
  enddo
  do i = 1, 50000
    ptable_b(i, = e_p*e_p*exp(-2*q_p*((i*1.0/10000)/r0_p - 1))  !- e_p*e_p*exp(-2*q_p*((50000*1.0/10000)/r0_p - 1))
  enddo
end subroutine potential
!===============================================================================

!===============================================================================
subroutine energy_total(E, pos, ele, List, point)
  implicit none
  common/ ene / ptable_r, ptable_b
  common/ u_l / Natom, Length_List, rc, boxsize

  integer :: i, j
  integer :: Natom, length_List, Ir
  real :: pos(Natom, 3), pos_r(3)
  real :: r, rc, boxsize(3)
  real :: ptable_r(50000, 3), ptable_b(50000, 3), E, E_R, E_B
  integer :: point(Natom, 2), List(length_list), ele(Natom)
  E = 0
  do i = 1, Natom         ! ±éÀúϵͳËùÓÐÔ­×Ó£¬Çóϵͳ×ÜÄÜÁ¿
    E_R = 0
        E_B = 0
    do j = point(i, 1), (point(i, 2)-1)
          pos_r = (pos(i, - pos(List(j), )*boxsize
          !pos_r(1) = pos_r(1) - boxsize(1)*nint(pos_r(1)/boxsize(1))     ! ÖÜÆÚÐԱ߽çÌõ¼þ
          !pos_r(2) = pos_r(2) - boxsize(2)*nint(pos_r(2)/boxsize(2))
          !pos_r(3) = pos_r(3) - boxsize(3)*nint(pos_r(3)/boxsize(3))
          r = sqrt(sum(pos_r*pos_r))
          if(r.lt.Rc) then                !´Ë´¦ÓÐRc£¬¹ÊE_totalºÍRcÓйأ¬¼´¾§°û´óСºÍRcÓйأ»
            Ir = int(r*10000)
            E_R = E_R + ptable_r(Ir, ele(i) + ele(List(j)) - 1)
            E_B = E_B + ptable_b(Ir, ele(i) + ele(List(j)) - 1)
          endif
        enddo
        E = E + E_R - sqrt(E_B)
  enddo
end subroutine energy_total
!===============================================================================


TBsc.txt:
&filename
SampIn = '1.5cube.bdl'
SampOut = 'result_AuAg.txt'
/


лл´óÏÀ~
ƽºÍ£¡Ç«Ñ·£¡
3Â¥2011-10-19 08:45:29
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ľ×Ó»¯Ê®ÎÄÎä

½ð³æ (СÓÐÃûÆø)

ÒýÓûØÌû:
2Â¥: Originally posted by snoopyzhao at 2011-10-18 20:23:38:
Ìù´úÂ룬ÒÔ¼°Ó¦µÄÊý¾ÝÎļþ¡­¡­

ÁíÍ⣬Äã¿ÉÒԲο¼ÕâÀ×Ô¼ºÅųýһϣº
http://software.intel.com/en-us/forums/showthread.php?t=51831

ÄãºÃ£¬´íÎóÒѾ­ÕÒ³ö£¬²»Âé·³ÄãÁË£¬·Ç³£¸Ðл~
ƽºÍ£¡Ç«Ñ·£¡
4Â¥2011-10-19 09:35:29
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

chenpeng8495

гæ (³õÈëÎÄ̳)

ÒýÓûØÌû:
4Â¥: Originally posted by ľ×Ó»¯Ê®ÎÄÎä at 2011-10-19 09:35:29
ÄãºÃ£¬´íÎóÒѾ­ÕÒ³ö£¬²»Âé·³ÄãÁË£¬·Ç³£¸Ðл~...

ÄúºÃ ×îÖÕʲôÎÊÌâÄØ ¿É·ñ¸æÖªÏÂ
5Â¥2014-01-15 18:31:36
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ ľ×Ó»¯Ê®ÎÄÎä µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 086000µ÷¼Á +3 Ê®Æßsa 2026-03-30 3/150 2026-04-05 21:14 by ѧԱ8dgXkO
[¿¼ÑÐ] ÉúÎïÓëÒ½Ò©µ÷¼Á +4 Ê®Æßsa 2026-04-05 4/200 2026-04-05 20:05 by lys0704
[¿¼ÑÐ] ²ÄÁÏ0856 Ó¢Ò»Êý¶þ 323 Çóµ÷¼Á +14 Ô¬sy 2026-04-01 14/700 2026-04-05 18:18 by cql1109
[¿¼ÑÐ] 288Çóµ÷¼Á Ò»Ö¾Ô¸¹þ¹¤´ó ²ÄÁÏÓ뻯¹¤ +13 ÂåÉñ¸ç¸ç 2026-04-03 13/650 2026-04-05 17:27 by zzx2138
[¿¼ÑÐ] ÉúÎïѧ308·ÖÇóµ÷¼Á£¨Ò»Ö¾Ô¸»ª¶«Ê¦´ó£© +8 ÏàÐűػá¹ââÍòÕ 2026-04-05 10/500 2026-04-05 12:19 by Hdyxbekcb
[¿¼ÑÐ] 341Çóµ÷¼Á +3 ѧÎÞÖ¹¾³£¬³å 2026-04-05 3/150 2026-04-05 09:40 by lbsjt
[¿¼ÑÐ] ²ÄÁϵ÷¼Á +12 Ò»ÑùYWY 2026-04-04 12/600 2026-04-05 08:24 by 544594351
[¿¼ÑÐ] ²ÄÁÏ¿ÆÑ§Ó빤³Ìµ÷¼Á +19 ÉîVËÞÉá°É 2026-03-30 20/1000 2026-04-04 22:13 by hemengdong
[¿¼ÑÐ] »·¾³¿ÆÑ§Ó빤³Ì334·ÖÇóµ÷¼Á +9 ÍõÒ»Ò»ÒÀÒÀ 2026-03-30 12/600 2026-04-04 20:55 by dongzh2009
[¿¼ÑÐ] ²ÄÁϵ÷¼Á +12 Ò»ÑùYWY 2026-04-02 13/650 2026-04-04 20:49 by À¶ÔÆË¼Óê
[¿¼ÑÐ] 272Çóµ÷¼Á +4 Ëɰس£Çà5 2026-04-03 4/200 2026-04-04 17:03 by babysonlkd
[¿¼ÑÐ] ¿¼Ñе÷¼Á +4 zybz³å³å³å 2026-04-03 6/300 2026-04-04 13:08 by zybz³å³å³å
[¿¼ÑÐ] 265Çóµ÷¼Á +20 ÁºÁºÐ£Ð£ 2026-04-01 21/1050 2026-04-04 00:38 by userper
[¿¼ÑÐ] 295Çóµ÷¼Á +3 ÉÐټѽ 2026-04-03 4/200 2026-04-03 21:23 by zhq0425
[¿¼ÑÐ] 338Çóµ÷¼Á +4 zzz£¬£¬r 2026-04-03 4/200 2026-04-03 16:39 by lijunpoly
[¿¼ÑÐ] ²ÄÁϹ¤³Ì322·Ö +8 ¹þ¹þ¹þºðºðºð¹þ 2026-04-01 8/400 2026-04-02 11:53 by 3041
[¿¼ÑÐ] 07ÉúÎïѧÇóµ÷¼Á һ־Ըͬ¼Ã´óѧ359·Ö +3 LAMC. 2026-03-30 3/150 2026-04-02 10:26 by 18828373951
[¿¼ÑÐ] ²ÄÁϵ÷¼Á +11 Ò»ÑùYWY 2026-03-31 11/550 2026-04-01 22:25 by zhouyuwinner
[¿¼ÑÐ] 085600 Ò»Ö¾Ô¸9 ×Ü·Ö351 Çóµ÷¼ÁѧУ +7 czhcz 2026-03-31 9/450 2026-04-01 19:24 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] Ò»Ö¾Ô¸±±½»²ÄÁϹ¤³Ì×Ü·Ö358 +5 cs0106 2026-04-01 7/350 2026-04-01 11:45 by wangjy2002
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û