±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 3234  |  »Ø¸´: 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µÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ ľ×Ó»¯Ê®ÎÄÎä µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 262Çóµ÷¼Á +7 ÌìϵÚÒ»ÎÄ 2026-04-04 8/400 2026-04-05 21:31 by ¼¤Á÷Ó¶É
[¿¼ÑÐ] 270·ÖÇóµ÷¼Á +4 maxjxbsk 2026-04-01 4/200 2026-04-05 17:04 by yulian1987
[¿¼ÑÐ] ÉúÎïѧ308·ÖÇóµ÷¼Á£¨Ò»Ö¾Ô¸»ª¶«Ê¦´ó£© +8 ÏàÐűػá¹ââÍòÕ 2026-04-05 10/500 2026-04-05 12:19 by Hdyxbekcb
[¿¼ÑÐ] ²ÄÁÏ»¯¹¤306·ÖÕÒºÏÊʵ÷¼Á +14 ²×º£ÇáÖÛe 2026-04-04 14/700 2026-04-05 09:53 by ÖìÔÆ»¢202
[¿¼ÑÐ] 313Çóµ÷¼Á +3 º£ÈÕº£ÈÕ 2026-04-04 3/150 2026-04-05 07:48 by 544594351
[¿¼ÑÐ] 320Çóµ÷¼Á +3 Ò»ÑùÔ² 2026-04-04 3/150 2026-04-04 22:29 by à£à£à£0119
[¿¼ÑÐ] 294Çóµ÷¼Á +6 Grey_Ey 2026-04-02 9/450 2026-04-04 22:07 by hemengdong
[¿¼ÑÐ] 315Çóµ÷¼Á +13 СÑòСÑò_ 2026-04-02 14/700 2026-04-04 20:30 by À¶ÔÆË¼Óê
[¿¼ÑÐ] Ò»Ö¾Ô¸»¦985£¬326·ÖÇóµ÷¼Á +3 Áõīī 2026-04-03 3/150 2026-04-04 11:16 by ±¯É˵ÄÓóÍ·
[¿¼ÑÐ] 311Çóµ÷¼Á +11 Ó¸ҵÄСÎâ 2026-04-02 11/550 2026-04-03 21:46 by qlm5820
[¿¼ÑÐ] 289-Çóµ÷¼Á +4 ÕâÀïÊÇ_ 2026-04-03 4/200 2026-04-03 14:23 by 1753564080
[¿¼ÑÐ] Çóµ÷¼Á22408 288·Ö +5 new382 2026-04-02 5/250 2026-04-03 09:13 by ×íÔÚ·çÀï
[¿¼ÑÐ] Ò»Ö¾Ô¸ÉÂÎ÷ʦ·¶´óѧÉúÎïѧ317·Ö +5 1563ÈÕ¡£ 2026-04-02 5/250 2026-04-03 06:58 by ilovexiaobin
[¿¼ÑÐ] 22408 266Çóµ÷¼Á +3 masss11222 2026-04-02 3/150 2026-04-02 18:11 by ±ÊÂä½õÖÝ
[¿¼ÑÐ] 283Çóµ÷¼Á +3 jiouuu 2026-04-02 4/200 2026-04-02 14:08 by ßÕßÕßÕßÉßÉßÉ
[¿¼ÑÐ] 324Çóµ÷¼Á +5 ÏëÉÏѧÇóµ÷ 2026-04-01 6/300 2026-04-02 10:16 by sanrepian
[¿¼ÑÐ] 377Çóµ÷¼Á +3 RASKIN 2026-04-02 3/150 2026-04-02 09:45 by zzchen2000
[¿¼ÑÐ] Ò»Ö¾Ô¸Î÷½»´ó080500²ÄÁÏѧ˶349 +6 jqx1258 2026-03-31 7/350 2026-03-31 21:08 by yuq
[¿¼ÑÐ] 085601Ó¢¶þÊý¶þÇóµ÷¼Á ×Ü·Ö325 +4 Óຽº½ 2026-03-31 4/200 2026-03-31 17:38 by ÌÆãå¶ù
[¿¼ÑÐ] Ó¢Ò»ÊýÒ»×Ü·Ö334Çóµ÷¼Á +4 ³ÂÑôÀ¤ 2026-03-31 4/200 2026-03-31 14:22 by ¼Çʱ¾2026
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û