²é¿´: 10147  |  »Ø¸´: 94
µ±Ç°Ö»ÏÔʾÂú×ãÖ¸¶¨Ìõ¼þµÄ»ØÌû£¬µã»÷ÕâÀï²é¿´±¾»°ÌâµÄËùÓлØÌû

[×ÊÔ´] dos-procar.f90

???f???~§³?????????]?????w????
??????~????S????§»???~???§á???????~???????????~?x?x

???????^ PROCAR ???? (http://muchong.com/bbs/viewthread.php?tid=6657343)
??? PROCAR ??????????? PROCAR ?D?????????D??n??~????¨°??????N?????y

????????X??~?????T????W??~?]?§Õ????M??????
???????????¨°??????N?????
?????????????x????~??F?????????W??
????????????W?I??~?????¦Ê¦Ã??????????¦Ä??????????
fortran, C, perl, python, shell script, ..... ???????????¦Ê?????????
??????????????.... ???... ????????????????^?

???????????f???
???????~ dos-procar.f ?@???????^?????????????W????????
??????????@????~???§²??h???? ^_^"

????
???????????? dos-procar.f90 ????a?N???? (????? dos-procar.f)
?M?????f???e?????
(ps. ???§Ö??_?^?????????~?????????o?P)
????????:
  1) ?x? PROCAR (LORBIT=10) and OUTCAR
  2) ?a?? total density of state (TDOS) and partial density of state (PDOS) of s-, p-, d-orbital
  3) ??????????? DOS (LDOS)

  1 !===========================================================================
  2 !  Program dos-procar.f90 :    > ?_?^????§Ö???????????? "!"?????????????"?f??"
  3 !     INPUT FILES : OUTCAR, PROCAR
  4 !   
  5 !   Modified by JPCHOU, Nov. 2013
  6 !===========================================================================
  7       implicit real*8(a-h,o-z)  > FORTRAN?????????r???????—¨???????f?????_?^?? a, b, c, ...h, o, p, q, ....z ?????????~???? real*8
  8       character*64 tmp         
  9       dimension ddosP(4),ddosT(4)  > ddosP and ddosT ??e?? "???????DOS" ?c "??????y?? DOS "
                                                       > ???????~??e???? s-, p-, d-orbital, and total
10       allocatable wt(,oc(:,:,:,,eigen(:,,ee(,na(  > wt: weight, oc: occupations, eigen: eigenvalue, ee: energy, na: number of atom
11       allocatable gdosP(:,,gdosT(:,
12       pi=4.0d0*atan(1.0d0)  ;  netot = 1001 > ?A?????????? 1000 ?c
13       allocate(ee(netot),gdosP(4,netot),gdosT(4,netot))
14       open(1,file='OUTCAR')  
15 !=================================================================
16       nline = 0 ;  open(99,status='scratch')  > ?@???????x? OUTCAR???K??? E-fermi ?@???
17  111  read(1,'(a64)',end=222) tmp            > ????????? E-fermi ????????? energy ?????? E-fermi
18       if(tmp(2:8) .eq. 'E-fermi') nline=nline+1  > open 99 ?@???n???????n~??????????~???????????w(memory, ????)??
19       if(tmp(2:8) .eq. 'E-fermi') write(99,'(a64)') tmp
20       go to 111
21  222  rewind(99)
22       do i=1,nline ; read(99,*) tmp,tmp,fermi ; end do
23       close(99)
24 !=================================================================
25       write(6,'("fermi energy = ",f10.5)') fermi     > 25~30 ?????c????g????
26       write(6,'("enter the gaussian "')             ;  read(5,*) gaussian  > ?o??? Gaussian function ?? width
27       write(6,'("ISPIN(1/2) = ?  "')                ;  read(5,*) ispin   > ???V???????y???????? spin, ????@?Y????????? OUTCAR ??x???
28       write(6,'("How many atoms are integrated? "') ;  read(5,*) Nna >?????? "??????" ????????w
29       allocate(na(Nna))
30       write(6,*) '  atom number :'                   ;  read(5,*) na  >?????? "??????" ???¨£??w (?o???~?????POSCAR??????)
31
32       open( 7,file='PROCAR')
33       if(ispin .eq. 1) then
34         open(11,file='gdosP-s.dat')    ; open(51,file='gdosT-s.dat')  > ?????y?]?????SPIN
35         open(12,file='gdosP-p.dat')    ; open(52,file='gdosT-p.dat')  > ?t????n?? gdosP-s, p, d, A.dat  (?@????????? DOS)
36         open(13,file='gdosP-d.dat')    ; open(53,file='gdosT-d.dat')  >                  gdosT-s, p, d, A.dat (?@????????y?? DOS)
37         open(14,file='gdosP-A.dat')    ; open(54,file='gdosT-A.dat') >     A: all
38       else if(ispin .eq. 2) then
39         open(11,file='gdosP-up-s.dat') ; open(51,file='gdosT-up-s.dat')  > ??????y?§á??] spin-polarization???t????n??? up and down
40         open(12,file='gdosP-up-p.dat') ; open(52,file='gdosT-up-p.dat')
41         open(13,file='gdosP-up-d.dat') ; open(53,file='gdosT-up-d.dat')
42         open(14,file='gdosP-up-A.dat') ; open(54,file='gdosT-up-A.dat')
43         
44         open(21,file='gdosP-dn-s.dat') ; open(61,file='gdosT-dn-s.dat')
45         open(22,file='gdosP-dn-p.dat') ; open(62,file='gdosT-dn-p.dat')
46         open(23,file='gdosP-dn-d.dat') ; open(63,file='gdosT-dn-d.dat')
47         open(24,file='gdosP-dn-A.dat') ; open(64,file='gdosT-dn-A.dat')
48       else
49         write(6,*) 'Input ERROR, you must input 1 or 2 ' ; stop
50       end if
51 !===========================================================================
52       do is=1,ispin                                                   >  ?_??x? PROCAR?? ?????x?? spin-up and spin-down
53         if(is .eq. 1) read(7,'(a64)') tmp                      > ??]????????????? tmp ??x???
54         read(7,'(16x,i3,20x,i4,19x,i4)') nk,nband,nion  > ???K?c????(nk)~BAND????(nband)~?c??????(nion)
55         if(is .eq. 1) then
56           write(6,'("number of kpoints: ",i4)') nk
57           write(6,'("number of   bands: ",i4)') nband
58           write(6,'("number of    ions: ",i4)') nion
59         end if
60         emin = 9999.0  ;  emax= -9999.0
61         allocate(wt(nk),eigen(nk,nband),oc(nk,nband,nion+1,4))
62         do k=1,nk
63           read(7,'(a64)') tmp
64           read(7,'(10x,i3,5x,3f11.8,13x,f11.8)') kp,pt1,pt2,pt3,wt(k)  > ?x?????K?c??????g?????c????
65           read(7,'(a64)') tmp
66           do nb=1,nband
67             read(7,'(8x,9x,f14.8,7x,f12.8)') eigen(k,nb),occ  > ?x???? eigenvalue ?c occupation
68             eigen(k,nb) = eigen(k,nb) - fermi                      > ??????? E-fermi??? fermi level ???? 0 ?c
69             if(eigen(k,nb) .gt. emax) emax=eigen(k,nb)       > ????????????
70             if(eigen(k,nb) .lt. emin) emin=eigen(k,nb)
71             read(7,'(a64)') tmp ; read(7,'(a64)') tmp
72             niont = nion +1
73             if(nion .eq. 1) niont = 1
74             do ion = 1,niont
75               read(7,'(3x,4f7.3)') (oc(k,nb,ion,j),j=1,4)
76             end do
77             read(7,'(a64)') tmp
78           end do
79         end do
80 !    ##############################################################
81         weight = 0.0 ; gdosP=0.0d0 ; gdosT=0.0d0
82         do k=1,nk ; weight = weight + wt(k) ; end do
83         do k=1,nk ; wt(k) = wt(k) / weight  ; end do
84         estart_ev = int(emin -5.0)
85         eend_ev   = int(emax +5.0)
86         de_ev     = (eend_ev - estart_ev)/(netot-1)
87         do ne = 1,netot ; ee(ne) = estart_ev + (ne-1) * de_ev ; end do
88         ascal = 1.0/(gaussian*sqrt(pi))
89 !    ###############################################################
90         do k=1,nk ; do nb=1,nband
91           do i=1,4 ; ddosT(i) =     oc(k,nb,niont,i)*wt(k)  ; end do
92           do i=1,4 ; ddosP(i) = sum(oc(k,nb,na(,i)*wt(k)) ; end do
93           do ne=1,netot
94             dij = ( eigen(k,nb)-ee(ne) )**2 / (gaussian**2)
95             do i=1,4
96               gdosT(i,ne) = gdosT(i,ne) + ascal*ddosT(i)*exp(-dij)
97               gdosP(i,ne) = gdosP(i,ne) + ascal*ddosP(i)*exp(-dij)
98             end do
99           end do
100         end do ; end do
101 !    ###############################################################
102         if(is .eq. 1) ns=+1 ; if(is .eq. 2) ns=-1
103         do i=1,4 ; write(is*10+i   ,1) (ee(j),ns*gdosP(i,j),j=1,netot) ; end do
104         do i=1,4 ; write(is*10+i+40,1) (ee(j),ns*gdosT(i,j),j=1,netot) ; end do
105         deallocate(wt,eigen,oc)
106       end do
107 !===========================================================================
108   1   format(f10.5,f12.4)
109       end



??????
??????..............................................................
??l?X??????U?????~??????§Ø?????f§»??N
???@?????]§¹???????
??????????y
???????X??.......

????????????d?????????????
???.... ???????????
???§Ø??????
???????????}?????????????f????
?????????
?@?????????^??§¹???????

?????????? dos-procar.f ???????
??????????~???????
»Ø¸´´ËÂ¥

» ±¾Ìû¸½¼þ×ÊÔ´Áбí

  • »¶Ó­¼à¶½ºÍ·´À¡£ºÐ¡Ä¾³æ½öÌṩ½»Á÷ƽ̨£¬²»¶Ô¸ÃÄÚÈݸºÔð¡£
    ±¾ÄÚÈÝÓÉÓû§×ÔÖ÷·¢²¼£¬Èç¹ûÆäÄÚÈÝÉæ¼°µ½ÖªÊ¶²úȨÎÊÌ⣬ÆäÔðÈÎÔÚÓÚÓû§±¾ÈË£¬Èç¶Ô°æÈ¨ÓÐÒìÒ飬ÇëÁªÏµÓÊÏ䣺xiaomuchong@tal.com
  • ¸½¼þ 1 : dos-procar.f90
  • 2013-11-25 18:52:54, 4.89 K

» ±¾ÌûÒÑ»ñµÃµÄºì»¨£¨×îÐÂ10¶ä£©

» ²ÂÄãϲ»¶

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

caesarly

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


ÒýÓûØÌû:
71Â¥: Originally posted by jpchou at 2015-08-31 16:10:55
Ò»é_ʼ¿ÉÒÔÓà 0.1 È¥®‹¿´¿´
ÈôÊLjDÌ«¶¶»ò̫ƽ»¬
ÔÙÕ{Õû sigma...

ºÃµÄ£¬Ð»Ð»£¬×òÌìÒ²ÔÚ0.05ºÍ0.2֮ǰÊÔÁËÊÔ£¬È¡0.1µÄʱºò±È½ÏºÃ
72Â¥2015-09-01 08:32:57
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
²é¿´È«²¿ 95 ¸ö»Ø´ð
ÕæÇ¬ÞÎ
ÑeÃæºÃ¶à±íÇéˆD°¸......
Ô”ÇéÕˆ¿´¸½¼þ
( = : )   = ; )  )
2Â¥2013-11-25 19:36:18
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

dx0620

ľ³æ (ÕýʽдÊÖ)


лл£¬ÎÒ¾õµÃÄãÕâÖÖ·ÖÏí¾«Éñֵ̫µÃ´ó¼ÒѧϰÁË£¬¶ÔÓÚÎÒÃÇÕâÖÖ¶Ô±à³ÌÒ»Öª°ë½âµÄ£¬¾ÍÏëÖªµÀÿһÐÐÿһ¸ö¹Ø¼ü·ûºÅµÄÒâ˼°¡
4Â¥2013-11-25 19:55:36
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

zuocuiping

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


¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶,ÓÅÐãÍÆ¼ö

лл·ÖÏí
Îå¿ÅÐÇ
5Â¥2013-11-25 21:46:51
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
¼òµ¥»Ø¸´
dx06203Â¥
2013-11-25 19:43   »Ø¸´  
ÎåÐÇºÃÆÀ  ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡
¡î ÎÞÐǼ¶ ¡ï Ò»ÐǼ¶ ¡ï¡ï¡ï ÈýÐǼ¶ ¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[»ù½ðÉêÇë] ͶƱ:  ÓжàÉÙÈËÊǽñÌì²éϵͳ֪µÀ½á¹ûµÄ£¿ +15 °®¿´ÊéµÄ¿ÉÀÖ 2026-08-26 17/850 2026-08-27 15:06 by xxniao123
[»ù½ðÉêÇë] »ù½ð²»ÖУ¬¹²Ãã +8 eulota 2026-08-26 8/400 2026-08-27 12:34 by lice_1987
[»ù½ðÉêÇë] Ϊʲô×ÊÖúÊý¸÷´ó¸ßУ¶¼´´Ð¸ߣ¬×Ô¼ºÉêÇëÔõô¾ÍÕâôÄÑ +5 Kittylucky 2026-08-27 5/250 2026-08-27 12:10 by ½ªÌ«¹«¿¾Óã
[»ù½ðÉêÇë] Ôõô¿´Çà»ùÖÐÁËûÓа¡ +5 Ò¶¾Å΢ 2026-08-26 5/250 2026-08-27 10:35 by l_zh2008
[»ù½ðÉêÇë] ÃæÉϺÏ×÷µ¥Î»¸ÇÕ +3 ssyjh 2026-08-27 3/150 2026-08-27 09:59 by °¢À­¹±aragon
[»ù½ðÉêÇë] ÈÃÎÒÖÐÒ»¸öÃæÉϰɣ¡ +13 ´óƼ1987 2026-08-20 17/850 2026-08-27 08:20 by ´óƼ1987
[»ù½ðÉêÇë] Ôõô²é°¡ +5 huang1991js 2026-08-26 5/250 2026-08-26 16:09 by Equinoxhua
[»ù½ðÉêÇë] ·¶½øÖоÙÒ»ÎĵÄÖÐÐÄ˼Ïë +9 Ñ׻ƹóëÐ 2026-08-22 10/500 2026-08-26 15:40 by semaglutide
[»ù½ðÉêÇë] ÄÄλ¸ßÈËÖÐÁË£¬°Ñ²éѯµ½µÄ½ØÍ¼Ìù³öÀ´ÈÃÎÒ¿´¿´£¬ÈÃÎÒ³¤³¤¼ûʶ +4 yuleib84 2026-08-26 5/250 2026-08-26 13:40 by yuleib84
[»ù½ðÉêÇë] ¿ÆÑй¶ùÌ«ÄÑÁË +21 ÎÒ4´ó°×²Ë 2026-08-20 22/1100 2026-08-26 11:29 by nlgza
[»ù½ðÉêÇë] ¹ú¼ÊºÏ×÷¿É²éÁË£¬ÖÐÁËÃæÉÏ +18 Ldrop2023 2026-08-26 18/900 2026-08-26 11:15 by cmrandy
[»ù½ðÉêÇë] ¹úºÏ¿É²éÁË +3 paperzjh 2026-08-26 3/150 2026-08-26 10:41 by LemmonTr
[»ù½ðÉêÇë] ½ñÌìÎñί»á¿ªÍêÁË£¬Ã÷Ìì³ö½á¹ûÂð +19 angus9576 2026-08-25 23/1150 2026-08-26 10:03 by zp519
[Ö°³¡ÈËÉú] ѧÉúײ¼û¸¨µ¼Ô±ËÍÍâÂô£¬µÚ¶þÌìÈ«°à¶¼³ÁĬÁË +3 ¾¨ÓãÈÚ½ð_Õã½­_É 2026-08-22 3/150 2026-08-26 09:01 by zzuzxg
[»ù½ðÉêÇë] ¹úºÏÏÖÔڲ鲻µ½ÁËÂ𣿠+10 chengyan1220 2026-08-24 20/1000 2026-08-26 08:57 by peasantsprig
[»ù½ðÉêÇë] Å£À´£¡Ã×À´£¡ÃæÀ´£¡ +8 beefly 2026-08-26 8/400 2026-08-26 08:37 by xuzhipiao
[»ù½ðÉêÇë] ÔÚ¼á±ù»¹¸Ç×ű±º£µÄʱºò£¬ÎÒ¿´µ½ÁËÅ­·ÅµÄ÷»¨¡£ (½ð±Ò+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
[»ù½ðÉêÇë] ÎÒÃæÉÏÍêµ°ÁË +13 ÇÒÌý»¢Ð¥ 2026-08-20 14/700 2026-08-25 09:10 by mrkang
[»ù½ðÉêÇë] ½¨Òé»ù½ð·¢²¼Ìáǰ¸ø³öÃ÷È·µÄʱ¼äµã +13 kulium 2026-08-21 16/800 2026-08-24 16:27 by superceng
[½Ìʦ֮¼Ò] Ìø²ÛºóÔÚÑÐÏîÄ¿Ôõô°ì£¿ +5 ¼òµ¥»¯xn 2026-08-22 10/500 2026-08-23 12:38 by ¼òµ¥»¯xn
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û