±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 9359  |  »Ø¸´: 94
¡¾½±Àø¡¿ ±¾Ìû±»ÆÀ¼Û64´Î£¬×÷ÕßjpchouÔö¼Ó½ð±Ò 50.8 ¸ö
µ±Ç°Ö»ÏÔʾÂú×ãÖ¸¶¨Ìõ¼þµÄ»ØÌû£¬µã»÷ÕâÀï²é¿´±¾»°ÌâµÄËùÓлØÌû

[×ÊÔ´] 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

» ÊÕ¼±¾ÌûµÄÌÔÌûר¼­ÍƼö

VASP µÚÒ»ÐÔÔ­ÀíÏà¹ØÎĵµ VASP vasp
VASP Ä£Ä⣬ÀíÂÛ Èí¼þ ѧÊõ

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

» ²ÂÄãϲ»¶

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

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

¾óÇ¿µÄ¼á¹ûǽ

Ìú¸Ëľ³æ (ÕýʽдÊÖ)


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

ǰ±²£¬ÇëÎÊ25~30ÐÐÄÜ·ñÏêϸ½âÊÍһϣ¬Ð»Ð»
8Â¥2013-11-26 13:22:49
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢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   »Ø¸´  
ÎåÐÇºÃÆÀ  ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡
¡î ÎÞÐǼ¶ ¡ï Ò»ÐǼ¶ ¡ï¡ï¡ï ÈýÐǼ¶ ¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼²©] É격ÇóÖú +3 Reee1Llll 2026-04-01 3/150 2026-04-02 22:29 by ÕâÊÇÒ»¸öÎÞÁĵÄê
[¿¼ÑÐ] 330·ÖÇóµ÷¼Á +15 qzenlc 2026-03-29 15/750 2026-04-02 21:41 by °ÙÁéͯ888
[¿¼ÑÐ] »·¾³¿ÆÑ§Ó빤³Ì334·ÖÇóµ÷¼Á +7 ÍõÒ»Ò»ÒÀÒÀ 2026-03-30 9/450 2026-04-02 21:15 by 1104338198
[¿¼ÑÐ] 301Çóµ÷¼Á +4 ϸ°ûÏà¹Øµ°°× 2026-04-02 8/400 2026-04-02 16:30 by 271179835
[¿¼ÑÐ] Ò»Ö¾Ô¸±±¾©¿Æ¼¼´óѧ085601²ÄÁϹ¤³ÌÓ¢Ò»Êý¶þ³õÊÔ×Ü·Ö335Çóµ÷¼Á +8 Ë«ÂíβƦÀϰå2 2026-04-02 9/450 2026-04-02 14:45 by 5896
[¿¼ÑÐ] 270Çóµ÷¼Á +8 С½Üpp 2026-03-31 10/500 2026-04-02 12:57 by yulian1987
[¿¼ÑÐ] ÕÒµ÷¼Á +6 ³þÇÇÇÇ 2026-04-01 6/300 2026-04-02 12:06 by xiaoranmu
[¿¼ÑÐ] ÉúÒ½¹¤0831µ÷¼ÁÇóÍÆ¼ö +5 СÐÜî£î£_s 2026-03-27 7/350 2026-04-02 11:30 by ·Ä´óÑîÀÏʦ
[¿¼ÑÐ] 0710ÉúÎïѧ336·ÖÇóµ÷¼Á +3 kiyy 2026-04-01 3/150 2026-04-02 10:54 by w³æ³æ123
[¿¼ÑÐ] 08ÉúÎïÓëҽҩר˶³õÊÔ346ÕÒµ÷¼Á +6 dianeeee 2026-04-01 7/350 2026-04-02 08:23 by guoweigw
[¿¼ÑÐ] 11408 321·ÖÇóµ÷¼Á +3 huchun12138 2026-03-30 4/200 2026-04-01 22:48 by guanxin1001
[¿¼ÑÐ] Çóµ÷¼Á +4 ͼ¼ø212 2026-03-30 5/250 2026-04-01 15:32 by ͼ¼ø212
[¿¼ÑÐ] 311Çóµ÷¼ÁÒ»Ö¾Ô¸ºÏ·Ê¹¤Òµ´óѧ +14 Çï¶þÊ®¶þ 2026-03-30 14/700 2026-04-01 11:45 by chemdavid
[˶²©¼ÒÔ°] ²©Ò»±»ËͳöÁªÅà¸Ð¾õ²»ÊÊÓ¦Ôõô°ì +3 È«´åµÄ¹· 2026-03-31 3/150 2026-04-01 10:44 by 328838485
[¿¼ÑÐ] 267Çóµ÷¼Á +13 uiybh 2026-03-31 13/650 2026-04-01 10:25 by ̽123
[¿¼ÑÐ] Ò»Ö¾Ô¸ ÄϾ©º½¿Õº½Ìì´óѧ £¬080500²ÄÁÏ¿ÆÑ§Ó빤³Ìѧ˶ +10 @taotao 2026-03-31 11/550 2026-04-01 09:43 by xiayizhi
[¿¼ÑÐ] ¸´ÊÔµ÷¼Á +7 Ë«ÂíβƦÀϰå2 2026-03-31 7/350 2026-03-31 19:49 by Dyhoer
[¿¼ÑÐ] 279Çóµ÷¼Á +12 jµÄÁ¢·½ 2026-03-29 12/600 2026-03-30 20:30 by dick_runner
[¿¼ÑÐ] Çó·ð +7 ÃÔÈ˵Ĺþ¹þ 2026-03-28 7/350 2026-03-28 16:47 by ´ß»¯´ó°×
[¿¼ÑÐ] ±¾¿ÆÐÂÄÜÔ´¿ÆÑ§Ó빤³Ì£¬Ò»Ö¾Ô¸»ªÀíÄܶ¯285Çóµ÷¼Á +3 AZMK 2026-03-27 5/250 2026-03-28 16:19 by xxxsssccc
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û