±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 3048  |  »Ø¸´: 34
±¾Ìû²úÉú 1 ¸ö ³ÌÐòÇ¿Ìû £¬µã»÷ÕâÀï½øÐв鿴

snoopyzhao

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

¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
zyj8119(½ð±Ò+1, ³ÌÐòÇ¿Ìû+1): ¼ûʶÁË£¡ 2011-02-25 16:43:43
ÒýÓûØÌû:
Originally posted by °¢÷ìÀ­ at 2011-02-25 09:23:25:
ÄúºÃ£¬·Ç³£¸ÐлÄúµÄ°ïÖú¡£
»¹ÓиöÎÊÌâÏëÇëÄú°ïÖú½â¾ö---ÈçÄúËù¿´µ½£¬±ÈÈç˵ÓÐ38¸öions£¬Ç°10¸öionsÊÇÒ»×飬ºó28¸öÊÇÒ»×飬 ¾ÙÀý15  0.512  0.569  0.717-  27 2.79  36 2.79  37 2.79   8 2.80   6 2.80  13 ...

´ó¸ÅÊÇÕâ¸öÑù×Ó£¬Èç¹ûÎÒûÓÐÀí½â´íµÄ»°¡£
CODE:
program ex

implicit none
character(len = 128) :: line, fm
integer :: ios, len_line, i, j, ion_num, ion_tmp
real, dimension(5000) :: table
integer, dimension(5000) :: ion
integer, dimension(5000) :: ion_table ! ion in table
integer, parameter :: ion_pos = 10
real :: sum_1, sum_2, sum_3 ! ion_table < 10; ion_table > 28; ion_table > 10 & ion_table < 28
integer :: i_1, i_2, i_3

do
   read (*,'(a)', iostat = ios) line
   if (ios < 0) exit
   if (index(line, 'nearest neighbor table') /= 0) exit
end do

j = 0

do
   read (*,'(a)', iostat = ios) line
   if (ios < 0) exit
   if (index(line, 'LATTYP') /= 0) exit
   if (len(trim(line)) == 0) cycle
   len_line = len(trim(line(27:)))
   write(fm,'(a,i0,a)') '(', len_line/9,'(tr1,i3,tr1,f4.2))'
   read (line(27:), fm) (ion_table(i), table(i), i=j+1,j+len_line/9)
   read(line, '(tr1,i3)') ion_tmp
   if (ion_tmp /= 0) ion_num = ion_tmp
   do i=j+1, j+len_line/9
      ion(i) = ion_num
   end do
   j = j + len_line/9
end do

write (*,'(i3,tr2,i3,tr2,f4.2)') (ion(i), ion_table(i), table(i), i= 1, j)

sum_1 = 0.0
sum_2 = 0.0
sum_3 = 0.0
i_1 =0
i_2 =0
i_3 =0

do i=1,j
   if (ion(i) <= ion_pos) then  ! ion <= 10
      if (ion_table(i) <= ion_pos) then ! ion_table <= 10
         sum_1 = sum_1 + table(i)
         i_1 = i_1 + 1
         write(1,'(i3,tr2,i3,tr2,f4.2)') ion(i), ion_table(i), table(i)
      else
         sum_3 = sum_3 + table(i) ! ion_table > 10
         i_3 = i_3 + 1
         write(3,'(i3,tr2,i3,tr2,f4.2)') ion(i), ion_table(i), table(i)
      end if
   else ! ion > 10
      if (ion_table(i) >= (ion(j) - ion_pos)) then ! ion_table >= 28
         sum_2 = sum_2 + table(i)
         i_2 = i_2 + 1
         write(2,'(i3,tr2,i3,tr2,f4.2)') ion(i), ion_table(i), table(i)
      else
         sum_3 = sum_3 + table(i) ! ion_table < 28
         i_3 = i_3 + 1
         write(3,'(i3,tr2,i3,tr2,f4.2)') ion(i), ion_table(i), table(i)
      end if
   end if
end do

write(*,*) sum(table(1:j))/j

print *, sum_1, i_1, sum_2, i_2, sum_3, i_3

write(*,*) sum_1/i_1, sum_2/i_2, sum_3/i_3

end program ex

[ Last edited by snoopyzhao on 2011-2-25 at 11:08 ]
21Â¥2011-02-25 10:57:14
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

°¢÷ìÀ­

Òø³æ (СÓÐÃûÆø)

ÒýÓûØÌû:
Originally posted by snoopyzhao at 2011-02-25 10:03:44:
Õâ¸öÓ¦¸ÃÊÇ¿ÉÒÔ×öµ½µÄ£¬Ìí¼ÓÒ»¸ö ions ÐòºÅµÄÊý×飬Ìí¼ÓÒ»¸ö×î¶Ì¾àÀëÖÐ ions ÐòºÅµÄÊý×飬Ȼºó¼Ó¼¸¸öÅжϾͿÉÒÔÁË£¬ºÇºÇ¡­¡­

µ«ÒªÖØÐ¿¼ÊÔÒ»ÏÂÈçºÎÈ¥¶ÁÕâЩÊý¾ÝÁË¡­¡­

ÄúºÃ£¬ÎÒÕýÔÚËãÒ»¸öСµÄÌåϵ£¬´òËã²âÊÔһϡ£×Ðϸ¶ÁÁËÄú±àµÄ³ÌÐò£¬¾¡¹ÜÓÐһЩµØ·½Ã»ÅªÃ÷°×£¬µ«ÊÇÎÒ˵һÏÂÎÒ¶ÁºóµÄÏë·¨£¬Ï£ÍûÄúÖ¸µãһϡ£¶ÔÓÚion_table < 10; ion_table > 28; ion_table > 10 & ion_table < 28Õâ¸ö¶¨Ò壬ÎÒ¾õµÃºÍÎÒµÄÏë·¨²»·û¡£ÎÒ¸ù¾ÝÄãµÄ³ÌÐòÓïÑÔ£¬ÐðÊöÒ»ÏÂÎÒµÄÀí½â¡£
ion_pos = 10£¬µ±ion(i) <= ion_pos£¬¼ÆËã»ú¶Áµ½ion_table <= 10£¬¼ÓºÍȡƽ¾ù£¬ÕâÊÇÎÒÏëÒªµÄµÚÒ»¸öÊý¾Ý¡£Ç°10¸öÔ­×ÓÊÇÏàͬµÄÔ­×Ó£¬ÉèΪԭ×Ó1£¬Õâ¸öÊý¾ÝÊÇÔ­×Ó1¼äµÄƽ¾ù¼ä¾à¡£
ion(i) > ion_pos,¼ÆËã»ú¶Áµ½ ion_table >10 & ion_table <= 38ʱ£¬¼ÓºÍȡƽ¾ù£¬ÕâÊÇÎÒÏëÒªµÄµÚ¶þ¸öÊý¾Ý¡£ºó28¸öÔ­×ÓÊÇÏàͬµÄÔ­×Ó£¬ÉèΪԭ×Ó2£¬Õâ¸öÊý¾ÝÊÇÔ­×Ó2¼äµÄƽ¾ù¼ä¾à¡£
ion(i) ´Ó1µ½38Ñ­»·Ê±if ( ion(i) <= ion_pos), ion_table > 10& ion_table <= 38) ºÍ if ( ion(i) > ion_pos,ion_table <= 10)ʱ¼ÓºÍȡƽ¾ù£¬ÕâÊÇÎÒÏëÒªµÄµÚÈý¸öÊý¾Ý¡£ÕâÒ»¸öÊÇÔ­×Ó1ºÍÔ­×Ó2¼äµÄƽ¾ù¼ä¾à¡£ÎÒдÎÒµÄÏë·¨µÄʱºò¹ØÓڵȺÅÎÒÔÚСÐĵÄÇóÖ¤£¬Î¨¿ÖÄÔ´ü²»Áé¾Íд´íÁË¡£ÇëÄúÖ¸½Ì¡£Ð»Ð» ºÇºÇ¡£¡£¡£
½øÍËÓжȣ¬²Å²»ÖÁ½øÍËά¹È£»³èÈè½ÔÍü£¬·½¿ÉÒÔ³èÈè²»¾ª¡£
22Â¥2011-02-25 15:41:54
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

snoopyzhao

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

¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
ÒýÓûØÌû:
Originally posted by °¢÷ìÀ­ at 2011-02-25 15:41:54:
ÄúºÃ£¬ÎÒÕýÔÚËãÒ»¸öСµÄÌåϵ£¬´òËã²âÊÔһϡ£×Ðϸ¶ÁÁËÄú±àµÄ³ÌÐò£¬¾¡¹ÜÓÐһЩµØ·½Ã»ÅªÃ÷°×£¬µ«ÊÇÎÒ˵һÏÂÎÒ¶ÁºóµÄÏë·¨£¬Ï£ÍûÄúÖ¸µãһϡ£¶ÔÓÚion_table < 10; ion_table > 28; ion_table > 10 & i ...

ÄãдÕâô¶à£¬ÎÒ»¹ÊÇ¿´²»¶®£¬Äã¾ÙÒ»¸öÊýÖµµÄÀý×Ó¸øÎÒ¿´Ò»Ï£¬Äã´òËãÈçºÎËã°É¡­¡­
23Â¥2011-02-25 17:55:17
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

snoopyzhao

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

¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
ÒýÓûØÌû:
Originally posted by °¢÷ìÀ­ at 2011-02-25 15:41:54:
ÄúºÃ£¬ÎÒÕýÔÚËãÒ»¸öСµÄÌåϵ£¬´òËã²âÊÔһϡ£×Ðϸ¶ÁÁËÄú±àµÄ³ÌÐò£¬¾¡¹ÜÓÐһЩµØ·½Ã»ÅªÃ÷°×£¬µ«ÊÇÎÒ˵һÏÂÎÒ¶ÁºóµÄÏë·¨£¬Ï£ÍûÄúÖ¸µãһϡ£¶ÔÓÚion_table < 10; ion_table > 28; ion_table > 10 & i ...

ÁíÍ⣬Ä㿴һϳÌÐòÖиø³öµÄ fort.1£¬fort.2£¬ºÍ fort.3 µÄÄÚÈÝ¡£ÆäÖеÚÒ»ÁÐÊÇËùνµÄÔ­×ÓÐòºÅ£¬µÚÈýÁÐÊǵÚÒ»ÁÐÔ­×Ӻ͵ڶþÁÐÔ­×ÓÖ®¼äµÄ¾àÀë¡£Ä㿴һϣ¬ËüÊÇ·ñ·ûºÏÄãµÄÒªÇó¡­¡­
24Â¥2011-02-25 17:57:22
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

°¢÷ìÀ­

Òø³æ (СÓÐÃûÆø)

ÒýÓûØÌû:
Originally posted by snoopyzhao at 2011-02-25 17:57:22:
ÁíÍ⣬Ä㿴һϳÌÐòÖиø³öµÄ fort.1£¬fort.2£¬ºÍ fort.3 µÄÄÚÈÝ¡£ÆäÖеÚÒ»ÁÐÊÇËùνµÄÔ­×ÓÐòºÅ£¬µÚÈýÁÐÊǵÚÒ»ÁÐÔ­×Ӻ͵ڶþÁÐÔ­×ÓÖ®¼äµÄ¾àÀë¡£Ä㿴һϣ¬ËüÊÇ·ñ·ûºÏÄãµÄÒªÇó¡­¡­

ºÃµÄÎÒ¾Ù¸öÀý×Ó
±ÈÈç˵B4N2£¬Ç°ËĸöÊÇB£¬ºóÁ½¸öÊÇN£¬ÎÒÏëÇóB-B¡¢B-N¡¢N-N¼äµÄƽ¾ù¾àÀë¡£
nearest neighbor tableÖбÈÈçµÚÒ»ÐÐ
1  0.388  0.481  0.529-   6 2.91   5 2.94   4 2.92   3 2.94´ú±í1ºÅÔ­×ÓBÓë6ºÅN¡¢5ºÅN¡¢4ºÅBºÍ3ºÅBµÄ¾àÀë¡£
ËùÒÔÒªÏëÇóB-Bƽ¾ù¼ä¾à£¬ÐèÒª°ÑǰËÄÐÐÓйØB-BµÄ¾àÀë¶Á³öÀ´ÇóºÍÒ²¾ÍÊÇ
4 2.92   3 2.94
3 2.94   4 2.90
1 2.94   2 2.94
1 2.94   2 2.90Õ⼸¸öÕûÊýºóµÄСÊý
ͬÀíÇóB-N¡¢N-N¼äµÄƽ¾ù¾àÀë¡£
ion  position               nearest neighbor table
   1  0.388  0.481  0.529-   6 2.91   5 2.94   4 2.92   3 2.94
   2  0.596  0.481  0.529-   6 2.94   5 2.92   3 2.94   4 2.90
   3  0.492  0.377  0.529-   5 2.90   6 2.91   1 2.94   2 2.94
   4  0.492  0.585  0.529-   1 2.94   2 2.90   5 2.93   6 2.93
   5  0.492  0.481  0.425-   2 2.90   1 2.94   3 2.94   6 2.94
   6  0.492  0.481  0.633-   2 2.94   1 2.93   3 2.92   5 2.94

[ Last edited by °¢÷ìÀ­ on 2011-2-26 at 09:21 ]
½øÍËÓжȣ¬²Å²»ÖÁ½øÍËά¹È£»³èÈè½ÔÍü£¬·½¿ÉÒÔ³èÈè²»¾ª¡£
25Â¥2011-02-26 09:17:35
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

snoopyzhao

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

¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
ÒýÓûØÌû:
ºÃµÄÎÒ¾Ù¸öÀý×Ó
±ÈÈç˵B4N2£¬Ç°ËĸöÊÇB£¬ºóÁ½¸öÊÇN£¬ÎÒÏëÇóB-B¡¢B-N¡¢N-N¼äµÄƽ¾ù¾àÀë¡£
nearest neighbor tableÖбÈÈçµÚÒ»ÐÐ
1  0.388  0.481  0.529-   6 2.91   5 2.94   4 2.92   3 2.94´ú±í1ºÅÔ­×ÓBÓë6ºÅN¡¢5ºÅN¡¢4ºÅBºÍ3ºÅBµÄ¾àÀë¡£
ËùÒÔÒªÏëÇóB-Bƽ¾ù¼ä¾à£¬ÐèÒª°ÑǰËÄÐÐÓйØB-BµÄ¾àÀë¶Á³öÀ´ÇóºÍÒ²¾ÍÊÇ
4 2.92   3 2.94
3 2.94   4 2.90
1 2.94   2 2.94
1 2.94   2 2.90Õ⼸¸öÕûÊýºóµÄСÊý
ͬÀíÇóB-N¡¢N-N¼äµÄƽ¾ù¾àÀë¡£
ion  position               nearest neighbor table
   1  0.388  0.481  0.529-   6 2.91   5 2.94   4 2.92   3 2.94
   2  0.596  0.481  0.529-   6 2.94   5 2.92   3 2.94   4 2.90
   3  0.492  0.377  0.529-   5 2.90   6 2.91   1 2.94   2 2.94
   4  0.492  0.585  0.529-   1 2.94   2 2.90   5 2.93   6 2.93
   5  0.492  0.481  0.425-   2 2.90   1 2.94   3 2.94   6 2.94
   6  0.492  0.481  0.633-   2 2.94   1 2.93   3 2.92   5 2.94

ÄãµÄÒâ˼ÊÇ 1-4 Óë 5-6 ·Ö³ÉÁ½×飬ÔÚµÚÒ»×éÖУ¬ºóÃæµÄÐòºÅÈç¹ûСÓÚµÈÓÚ 4 ËãÔÚµÚ 1 ÖÖÇé¿öÀºóÃæÒ»×éÖУ¬ºóÃæµÄÐòºÅ´óÓÚµÈÓÚ 5 ËãÔÚµÚ 2 ÖÖÇé¿öÀï¡£ÔÚµÚÒ»×éÖУ¬ºóÃæµÄÐòºÅ´óÓÚ 4£¬²¢ÇÒСÓÚµÈÓÚ 6 µÄËãÔÚµÚ 3 ÖÖÇé¿öÀÔÚµÚ¶þ×éÖУ¬ºóÃæµÄÐòºÅСÓÚ 5 µÄËãÔÚµÚÈýÖÖÇé¿öÀÊÇÕâÑùµÄÂð£¿
ÒýÓûØÌû:
ÄúºÃ£¬·Ç³£¸ÐлÄúµÄ°ïÖú¡£
»¹ÓиöÎÊÌâÏëÇëÄú°ïÖú½â¾ö---ÈçÄúËù¿´µ½£¬±ÈÈç˵ÓÐ38¸öions£¬Ç°10¸öionsÊÇÒ»×飬ºó28¸öÊÇÒ»×飬 ¾ÙÀý15  0.512  0.569  0.717-  27 2.79  36 2.79  37 2.79   8 2.80   6 2.80  13 2.83£¬ÕâÊǵÚ15¸öionÓëµÚ27.36.37.8.6.13µÄ¾àÀë·Ö±ðΪ2.79£¬2.79£¬2.80£¬2.80£¬2.83£¬ÎÒ¿É·ñʵÏÖÕâÑùÒ»ÖÖÏë·¨£º1  ·Ö±ð¶ÔÓÚǰ10¸öÔÚ¶ÁÈ¡ºóÃæµÄÕûÊýʱÈç¹û<10£¬¶ÁÈ¡ÕûÊýºóÃæµÄ¾àÀëÇóºÍƽ¾ù£¬Êä³öƽ¾ùÖµ£»2  ºó28¸ö¶ÔÓÚ>28µÄ¶ÁÈ¡ÕûÊýºóµÄ¼ä¾àÇóºÍȡƽ¾ùÊä³ö£»3  ¶ÔÓÚËùÓеÄǰ10¸öºóÃæµÄÕûÊý>10ºÍºó28¸öºóÃæµÄÕûÊý<28µÄ£¬¶ÁÈ¡ÇóºÍȡƽ¾ùÊä³ö¡£
ÁíÍâ10£¬28ÕâÁ½¸öÊýÄÜ·ñÉè¼Æ³É¿Éµ÷µÄ²ÎÊý£¿

ÔÚÕâ¶Î»°ÖУ¬ÄãµÄÒâ˼ºÃÏó²»ÄÇôÃ÷È·£¬ºÇºÇ¡­¡­Èç¹ûÎÒÃǰÑÇé¿öŪµÃ¸ü¸´Ôӵϰ£¬ÏÖÔÚÎÒÃÇÓÐ 38 ¸ö ion£¬1-10 Ϊһ×飬11-27 Ϊһ×飬28-38 Ϊһ×é¡£¼Ù¶¨ÎÒÃÇÐèÒªËãµÚ 1 ×éÓëµÚ 3 ×éµÄÇé¿ö£¬°´Äã×îеÄÒâ˼½øÐмÆË㣬±ãÓëÇ°ÃæµÄÒâ˼ì¶ÜÁË¡£°´Äã×îеÄÒâ˼£¬ÎÒÃÇÐèÒª¶¨ÒåËĸöÊý£¬ ion_pos_1 = 1¡¢ion_pos_2=10¡¢ion_pos_3=28¡¢ion_pos_4=38¡£Ê×ÏÈÔÚ 1-10 Õâ×éÖУ¬¶ÁÈ¡ºóÃæµÄÕûÊý 1-10 ºóÃæµÄÊý£¬Ç󯽾ùÖµ£¬´ËÄ˵ÚÒ»ÖÖÇé¿ö£»ÔÚ28-38ÕâÒ»×éÖУ¬¶ÁÈ¡ºóÃæÕûÊý28-38µÄÊý£¬Ç󯽾ùÖµ£¬´ËÄ˵ڶþÖÖÇé¿ö£»ÔÚ1-10ÕâÒ»×éÖУ¬¶ÁÈ¡ºóÃæÕûÊýΪ 28-38ºóÃæµÄÊý£¬¼ÓÉÏ28-38ÕâÒ»×éÖУ¬ºóÃæÕûÊýΪ1-10ºóÃæµÄÊý£¬¼ÓºÍ£¬Ç󯽾ùÖµ¡£

Ó¦¸ÃÊÇÕâÑùµÄ°É¡­¡­
26Â¥2011-02-26 09:51:54
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

°¢÷ìÀ­

Òø³æ (СÓÐÃûÆø)

ÒýÓûØÌû:
Originally posted by snoopyzhao at 2011-02-25 17:57:22:
ÁíÍ⣬Ä㿴һϳÌÐòÖиø³öµÄ fort.1£¬fort.2£¬ºÍ fort.3 µÄÄÚÈÝ¡£ÆäÖеÚÒ»ÁÐÊÇËùνµÄÔ­×ÓÐòºÅ£¬µÚÈýÁÐÊǵÚÒ»ÁÐÔ­×Ӻ͵ڶþÁÐÔ­×ÓÖ®¼äµÄ¾àÀë¡£Ä㿴һϣ¬ËüÊÇ·ñ·ûºÏÄãµÄÒªÇó¡­¡­

ÄúºÃÕâÊÇÎÒ²ÎÕÕÄúµÄ³ÌÐòÐ޸ĵġ£¶ÔÓÚÕâÒ»ÐÐ
real :: sum_1, sum_2, sum_3 ! ion_table <= 4; ion_table > 4²»È·¶¨¡£
ÎÒÔÚlinuxÏÂÔËÐгöÀ´µÄÊÇa.out,ÇëÎÊwindowÏÂÓÃfortranÈçºÎ±àÒë³ÉÖ´ÐÐÎļþ£¬ÎÒµãGoµÄʱºò±àÒë³öÏÖE£º/Debug/ex.exeºÚÉ«ÆÁÄ»£¬ÎÒÊäÈëOUTCARenterû·´Ó¦£¬ÇëÎÊÊÇʲôԭÒò£¿
program ex

implicit none
character(len = 128) :: line, fm
integer :: ios, len_line, i, j, ion_num, ion_tmp
real, dimension(5000) :: table
integer, dimension(5000) :: ion
integer, dimension(5000) :: ion_table ! ion in table
integer, parameter :: ion_pos = 10
real :: sum_1, sum_2, sum_3 ! ion_table <= 4; ion_table > 4
integer :: i_1, i_2, i_3

do
   read (*,'(a)', iostat = ios) line
   if (ios < 0) exit
   if (index(line, 'nearest neighbor table') /= 0) exit
end do

j = 0

do
   read (*,'(a)', iostat = ios) line
   if (ios < 0) exit
   if (index(line, 'LATTYP') /= 0) exit
   if (len(trim(line)) == 0) cycle
   len_line = len(trim(line(27))
   write(fm,'(a,i0,a)') '(', len_line/9,'(tr1,i3,tr1,f4.2))'
   read (line(27, fm) (ion_table(i), table(i), i=j+1,j+len_line/9)
   read(line, '(tr1,i3)') ion_tmp
   if (ion_tmp /= 0) ion_num = ion_tmp
   do i=j+1, j+len_line/9
      ion(i) = ion_num
   end do
   j = j + len_line/9
end do

write (*,'(i3,tr2,i3,tr2,f4.2)') (ion(i), ion_table(i), table(i), i= 1, j)

sum_1 = 0.0
sum_2 = 0.0
sum_3 = 0.0
i_1 =0
i_2 =0
i_3 =0

do i=1,j
   if (ion(i) <= ion_pos) then  ! ion <= 4
      if (ion_table(i) <= ion_pos) then ! ion_table <= 4
         sum_1 = sum_1 + table(i)
         i_1 = i_1 + 1
         write(1,'(i3,tr2,i3,tr2,f4.2)') ion(i), ion_table(i), table(i)
      else
         sum_3 = sum_3 + table(i) ! ion_table > 4
         i_3 = i_3 + 1
         write(3,'(i3,tr2,i3,tr2,f4.2)') ion(i), ion_table(i), table(i)
      end if
   else ! ion > 4
      if (ion_table(i) > (ion(j) - ion_pos)) then ! ion_table > 4
         sum_2 = sum_2 + table(i)
         i_2 = i_2 + 1
         write(2,'(i3,tr2,i3,tr2,f4.2)') ion(i), ion_table(i), table(i)
      else
         sum_3 = sum_3 + table(i) ! ion_table < =4
         i_3 = i_3 + 1
         write(3,'(i3,tr2,i3,tr2,f4.2)') ion(i), ion_table(i), table(i)
      end if
   end if
end do

write(*,*) sum(table(1:j))/j

print *, sum_1, i_1, sum_2, i_2, sum_3, i_3

write(*,*) sum_1/i_1, sum_2/i_2, sum_3/i_3

end program ex
½øÍËÓжȣ¬²Å²»ÖÁ½øÍËά¹È£»³èÈè½ÔÍü£¬·½¿ÉÒÔ³èÈè²»¾ª¡£
27Â¥2011-02-26 09:59:35
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

°¢÷ìÀ­

Òø³æ (СÓÐÃûÆø)

ÒýÓûØÌû:
Originally posted by snoopyzhao at 2011-02-26 09:51:54:
ÄãµÄÒâ˼ÊÇ 1-4 Óë 5-6 ·Ö³ÉÁ½×飬ÔÚµÚÒ»×éÖУ¬ºóÃæµÄÐòºÅÈç¹ûСÓÚµÈÓÚ 4 ËãÔÚµÚ 1 ÖÖÇé¿öÀºóÃæÒ»×éÖУ¬ºóÃæµÄÐòºÅ´óÓÚµÈÓÚ 5 ËãÔÚµÚ 2 ÖÖÇé¿öÀï¡£ÔÚµÚÒ»×éÖУ¬ºóÃæµÄÐòºÅ´óÓÚ 4£¬²¢ÇÒСÓÚµÈÓÚ 6 µÄËãÔÚµÚ ...

·Ç³£±§Ç¸£¬ÊÇÎÒ·¸Á˺ÜÑÏÖØµÄ´íÎó¡£ÎÒµ±Ê±Ã»ÏëÃ÷°×¡£ºÃÔÚ³ÌÐò¹¹¼Ü²»ÐèÒª¸Ä¶¯£¬Âß¼­ÉϸÄһϡ£Ð»Ð» ºÇºÇ
½øÍËÓжȣ¬²Å²»ÖÁ½øÍËά¹È£»³èÈè½ÔÍü£¬·½¿ÉÒÔ³èÈè²»¾ª¡£
28Â¥2011-02-26 10:04:26
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

snoopyzhao

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

¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
ÒýÓûØÌû:
ÔÚÕâ¶Î»°ÖУ¬ÄãµÄÒâ˼ºÃÏó²»ÄÇôÃ÷È·£¬ºÇºÇ¡­¡­Èç¹ûÎÒÃǰÑÇé¿öŪµÃ¸ü¸´Ôӵϰ£¬ÏÖÔÚÎÒÃÇÓÐ 38 ¸ö ion£¬1-10 Ϊһ×飬11-27 Ϊһ×飬28-38 Ϊһ×é¡£¼Ù¶¨ÎÒÃÇÐèÒªËãµÚ 1 ×éÓëµÚ 3 ×éµÄÇé¿ö£¬°´Äã×îеÄÒâ˼½øÐмÆË㣬±ãÓëÇ°ÃæµÄÒâ˼ì¶ÜÁË¡£°´Äã×îеÄÒâ˼£¬ÎÒÃÇÐèÒª¶¨ÒåËĸöÊý£¬ ion_pos_1 = 1¡¢ion_pos_2=10¡¢ion_pos_3=28¡¢ion_pos_4=38¡£Ê×ÏÈÔÚ 1-10 Õâ×éÖУ¬¶ÁÈ¡ºóÃæµÄÕûÊý 1-10 ºóÃæµÄÊý£¬Ç󯽾ùÖµ£¬´ËÄ˵ÚÒ»ÖÖÇé¿ö£»ÔÚ28-38ÕâÒ»×éÖУ¬¶ÁÈ¡ºóÃæÕûÊý28-38µÄÊý£¬Ç󯽾ùÖµ£¬´ËÄ˵ڶþÖÖÇé¿ö£»ÔÚ1-10ÕâÒ»×éÖУ¬¶ÁÈ¡ºóÃæÕûÊýΪ 28-38ºóÃæµÄÊý£¬¼ÓÉÏ28-38ÕâÒ»×éÖУ¬ºóÃæÕûÊýΪ1-10ºóÃæµÄÊý£¬¼ÓºÍ£¬Ç󯽾ùÖµ¡£

Ó¦¸ÃÊÇÕâÑùµÄ°É¡­¡­

¸ù¾ÝÉÏÃæµÄÒâ˼£¬ÖØÐÂÕûÀíÁËһϣº
CODE:
program ex

implicit none
character(len = 128) :: line, fm
integer :: ios, len_line, i, j, ion_num, ion_tmp
real, dimension(5000) :: table
integer, dimension(5000) :: ion
integer, dimension(5000) :: ion_table ! ion in table
integer, parameter :: ion_pos_1 = 1
integer, parameter :: ion_pos_2 = 10
integer, parameter :: ion_pos_3 = 28
integer, parameter :: ion_pos_4 = 38
real :: sum_1, sum_2, sum_3
integer :: i_1, i_2, i_3

do
   read (*,'(a)', iostat = ios) line
   if (ios < 0) exit
   if (index(line, 'nearest neighbor table') /= 0) exit
end do

j = 0

do
   read (*,'(a)', iostat = ios) line
   if (ios < 0) exit
   if (index(line, 'LATTYP') /= 0) exit
   if (len(trim(line)) == 0) cycle
   len_line = len(trim(line(27:)))
   write(fm,'(a,i0,a)') '(', len_line/9,'(tr1,i3,tr1,f4.2))'
   read (line(27:), fm) (ion_table(i), table(i), i=j+1,j+len_line/9)
   read(line, '(tr1,i3)') ion_tmp
   if (ion_tmp /= 0) ion_num = ion_tmp
   do i=j+1, j+len_line/9
      ion(i) = ion_num
   end do
   j = j + len_line/9
end do

write (*,'(i3,tr2,i3,tr2,f4.2)') (ion(i), ion_table(i), table(i), i= 1, j)

sum_1 = 0.0
sum_2 = 0.0
sum_3 = 0.0
i_1 =0
i_2 =0
i_3 =0

do i=1,j
   if (ion(i) >= ion_pos_1 .and. ion(i) <= ion_pos_2) then
      if (ion_table(i) >= ion_pos_1 .and. ion_table(i) <= ion_pos_2) then
         sum_1 = sum_1 + table(i)
         i_1 = i_1 + 1
         write(1,'(i3,tr2,i3,tr2,f4.2)') ion(i), ion_table(i), table(i)
      else if (ion_table(i) >= ion_pos_3 .and. ion_table(i) <= ion_pos_4) then
         sum_3 = sum_3 + table(i)
         i_3 = i_3 + 1
         write(3,'(i3,tr2,i3,tr2,f4.2)') ion(i), ion_table(i), table(i)
      end if
   else if (ion(i) >= ion_pos_3 .and. ion(i) <= ion_pos_4) then
      if (ion_table(i) >= ion_pos_3 .and. ion_table(i) <= ion_pos_4) then
         sum_2 = sum_2 + table(i)
         i_2 = i_2 + 1
         write(2,'(i3,tr2,i3,tr2,f4.2)') ion(i), ion_table(i), table(i)
! the following four lines could be deleted, for they give same result as the above sum_3...
      else if (ion_table(i) >= ion_pos_1 .and. ion_table(i) <= ion_pos_2) then
         sum_3 = sum_3 + table(i)
         i_3 = i_3 + 1
         write(3,'(i3,tr2,i3,tr2,f4.2)') ion(i), ion_table(i), table(i)
      end if
   end if
end do

write(*,*) sum(table(1:j))/j

write(*,*), sum_1, i_1, sum_2, i_2, sum_3, i_3

write(*,*) sum_1/i_1, sum_2/i_2, sum_3/i_3

end program ex

29Â¥2011-02-26 10:13:17
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

snoopyzhao

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

¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
ÒýÓûØÌû:
Originally posted by °¢÷ìÀ­ at 2011-02-26 09:59:35:
ÄúºÃÕâÊÇÎÒ²ÎÕÕÄúµÄ³ÌÐòÐ޸ĵġ£¶ÔÓÚÕâÒ»ÐÐ
real :: sum_1, sum_2, sum_3 ! ion_table <= 4; ion_table > 4²»È·¶¨¡£
ÎÒÔÚlinuxÏÂÔËÐгöÀ´µÄÊÇa.out,ÇëÎÊwindowÏÂÓÃfortranÈçºÎ±àÒë³ÉÖ´ÐÐÎļþ£¬ÎÒµãGoµÄ ...

Äã¸Ä ! ºóÃæµÄ¶«Î÷ûÓÐÓõģ¬ÄÇÊÇÓÃÀ´×¢Ê͵ģ¬ÎªÁ˶ÁÕßÄܹ»¸üºÃµÄÀí½âËü£¬ºÇºÇ¡­¡­

ÔÚ Linux ϱàÒë³öÀ´ a.out Ö®ºó£¬ÓÃÏÂÃæµÄ·½Ê½ÔËÐÐ

./a.out < OUTCAR > output

ÔÚ windows Ï£¬ÎÒûÓÐÓùý IDE£¬ËùÒÔ£¬²»Á˽âÄã˵µÄÇé¿ö£¬ÒòΪÕâÊÇÒ»¸öÃüÁîÐгÌÐò£¬ÄãÖ»ÄÜÔÚÃüÁîÐÐÏÂÔËÐÐËü£¬Ë«»÷Ó¦¸ÃûÓÐʲô×÷Óõģ¬ºÇºÇ¡­¡­
30Â¥2011-02-26 10:24:10
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ °¢÷ìÀ­ µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] »¯Ñ§µ÷¼Á +15 °¬Ö¾ºã 2026-04-03 16/800 2026-04-05 22:36 by syh9288
[¿¼ÑÐ] ²ÄÁϹ¤³Ì302·ÖÇóµ÷¼Á +9 zyxÉϰ¶£¡ 2026-04-04 9/450 2026-04-05 22:08 by ×íÎÌwl
[¿¼ÑÐ] Ò»Ö¾Ô¸Çà¿Æ085500£¬³õÊÔ295·Ö£¬¹«¹²¿Î213·Ö +3 Óöµ½µÄÈËÔ¸Íû¶¼Ä 2026-04-05 3/150 2026-04-05 18:45 by À¶ÔÆË¼Óê
[¿¼ÑÐ] 282Çóµ÷¼Á +7 aaa³µÁ¾ 2026-04-02 11/550 2026-04-05 17:24 by yulian1987
[¿¼ÑÐ] ¿¼ÑÐÉúÎïѧ¿¼AÇø211£¬³õÊÔ322£¬¿ÆÄ¿Éú»¯ºÍÉúÎï×ۺϣ¬Çóµ÷¼Á +6 ¡£¡£¡£54 2026-04-03 6/300 2026-04-05 14:54 by JOKER0401
[¿¼ÑÐ] 349Çóµ÷¼Á +11 zwjjjjjj 2026-03-31 11/550 2026-04-04 19:52 by À¶ÔÆË¼Óê
[¿¼ÑÐ] 319Çóµ÷¼Á +4 ÐÇÐDz»Õ£ÑÛà¶ 2026-04-03 4/200 2026-04-04 16:25 by ÖзÉÔº¿Õ¹ÜѧԺÑ
[¿¼ÑÐ] Ò»Ö¾Ô¸±±¾©¿Æ¼¼´óѧ²ÄÁϹ¤³Ì085601£¬Çóµ÷¼Á +17 cdyw 2026-04-02 18/900 2026-04-04 11:14 by w_xuqing
[¿¼ÑÐ] 265Çóµ÷¼Á +17 ÁÖÉîÎÂÀ½ 2026-04-01 20/1000 2026-04-04 01:09 by userper
[¿¼ÑÐ] 335Çóµ÷¼Á +7 ÉòÇåÁ§ 2026-04-03 7/350 2026-04-03 18:55 by lijunpoly
[¿¼ÑÐ] 266·Ö£¬Çó²ÄÁÏÏà¹Ø×¨Òµµ÷¼Á +13 ÍÛºôºßºôºß 2026-03-30 15/750 2026-04-03 15:24 by arrow8852
[¿¼ÑÐ] Ò»Ö¾Ô¸±±¾©½»Í¨´óѧ²ÄÁϹ¤³Ì×Ü·Ö358 +4 cs0106 2026-04-03 4/200 2026-04-03 13:41 by °ÙÁéͯ888
[¿¼ÑÐ] 312Çóµ÷¼Á +4 ÉÞÔÂÉ« 2026-04-02 5/250 2026-04-03 08:21 by fangshan711
[¿¼ÑÐ] Çóµ÷¼Á 302·Ö³õÊÔ 0854 +5 Áæ¿ÉÀÖ 2026-04-02 5/250 2026-04-02 17:53 by ±ÊÂä½õÖÝ
[¿¼ÑÐ] ²ÄÁÏר˶322·Ö +11 ¹þ¹þ¹þºðºðºð¹þ 2026-04-01 11/550 2026-04-02 10:52 by lnilvy
[¿¼ÑÐ] Ò»Ö¾Ô¸ÏÃÃÅ´óѧ»¯Ñ§¹¤³Ì£¨×¨Ë¶£©-Êý¶þÓ¢¶þ406·Ö-Çóµ÷¼Á +5 Ïô󻯹¤ 2026-04-01 5/250 2026-04-02 10:03 by jp9609
[¿¼ÑÐ] »¯Ñ§¹¤³Ìר˶324·Ö£¬Ò»Ö¾Ô¸Öйú¿óÒµ´óѧÇóµ÷¼Á +7 ¹¢¹¢1314 2026-04-01 7/350 2026-04-02 07:40 by ÉÐË®¸óÖ÷
[¿¼ÑÐ] 322Çóµ÷¼Á +8 ÈýË®sss 2026-04-01 8/400 2026-04-01 10:19 by ÌÆãå¶ù
[¿¼ÑÐ] 335Çóµ÷¼Á +3 321* 2026-03-31 4/200 2026-04-01 00:00 by 321*
[¿¼ÑÐ] 323·Ö ʳƷÓëÓªÑøµ÷¼Á +3 ºÙooo 2026-03-31 3/150 2026-03-31 09:38 by longlotian
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û