±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 9342  |  »Ø¸´: 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   »Ø¸´  
ÎåÐÇºÃÆÀ  ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡
¡î ÎÞÐǼ¶ ¡ï Ò»ÐǼ¶ ¡ï¡ï¡ï ÈýÐǼ¶ ¡ï¡ï¡ï¡ï¡ï ÎåÐǼ¶
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 298·Ö 070300Çóµ÷¼Á +5 zwen03 2026-04-02 5/250 2026-04-02 19:46 by liu823948201
[¿¼ÑÐ] 282Çóµ÷¼Á +18 ycy1201 2026-04-01 20/1000 2026-04-02 16:39 by liumengping
[¿¼ÑÐ] Ò»Ö¾Ô¸Äϲý´óѧ324Çóµ÷¼Á +12 hanamiko 2026-04-01 12/600 2026-04-02 14:51 by 5896
[¿¼ÑÐ] 366Çóµ÷¼ÁÒ»Ö¾Ô¸¶«±±´óѧ +7 ÔËÆøÀ´µÃÈôÓÐËÆÎ 2026-04-02 7/350 2026-04-02 14:47 by °¶ÉϵÄÒ»ÌõÓã
[¿¼ÑÐ] »¯Ñ§308·Öµ÷¼Á +14 ÄãºÃÃ÷ÌìÄãºÃ 2026-03-30 15/750 2026-04-02 13:39 by ÎûÎûЦ22
[¿¼ÑÐ] Ò»Ö¾Ô¸Äϲý´óѧ324Çóµ÷¼Á +12 hanamiko 2026-03-27 12/600 2026-04-01 22:34 by ÔËÆøyunqi
[¿¼ÑÐ] 0856£¬269·ÖÇóµ÷¼Á +8 ÓÐѧÉϾÍÐÐÇóÇóÁ 2026-03-30 11/550 2026-04-01 22:33 by 2026²ÄÁϵ÷¼Á
[¿¼ÑÐ] 266·Ö£¬Ò»Ö¾Ô¸µçÆø¹¤³Ì£¬±¾¿Æ²ÄÁÏ£¬Çó²ÄÁÏרҵµ÷¼Á +10 ÍÛºôºßºôºß 2026-04-01 11/550 2026-04-01 21:48 by chyhaha
[¿¼ÑÐ] ʳƷѧ˶362Çóµ÷¼Á +3 xuanxianxian 2026-04-01 3/150 2026-04-01 21:05 by °¡Àî999
[¿¼ÑÐ] ²ÄÁÏÓ뻯¹¤µ÷¼ÁÒ»Ö¾Ô¸´óÁ¬º£ÊÂ085600£¬349 +9 ³ÔµÄ²»ÉÙ 2026-03-30 9/450 2026-04-01 11:24 by wangjy2002
[¿¼ÑÐ] ²ÄÁϵ÷¼Á +10 Eujd1 2026-03-31 11/550 2026-04-01 11:23 by ivanqyq
[¿¼ÑÐ] ½­ËÕËÕ±±¸ßУ³ÏÑûµ÷¼Áͬѧ +3 zzll406 2026-03-31 3/150 2026-03-31 16:54 by ¼°Ê±ÐÐÀÖfan
[¿¼ÑÐ] 286Çóµ÷¼Á +5 ¶ªµôÀÁ¶è 2026-03-27 8/400 2026-03-31 11:27 by Delta2012
[¿¼²©] ²ÄÁÏרҵÉ격 +5 ¶ÅÓêæÃdyt 2026-03-29 5/250 2026-03-31 11:19 by oooqiao
[¿¼ÑÐ] 269Çóµ÷¼Á +4 ÎÒÏë¶ÁÑÐ11 2026-03-31 4/200 2026-03-31 10:04 by cal0306
[¿¼ÑÐ] һ־ԸʳƷ¿ÆÑ§Ó빤³Ì083200Çóµ÷¼Á +4 XQTJZ 2026-03-30 4/200 2026-03-31 04:10 by fmesaito
[¿¼ÑÐ] 317·Ö Ò»Ö¾Ô¸ÄÏÀí¹¤²ÄÁϹ¤³Ì ±¾¿Æºþ¹¤´ó Çóµ÷¼Á +12 ÓóÄàСÁåîõ 2026-03-28 12/600 2026-03-30 17:06 by wangjy2002
[¿¼ÑÐ] 086000ÉúÎïÓëÒ½Ò©µ÷¼Á +5 Feisty¡£ 2026-03-28 9/450 2026-03-29 12:02 by longlotian
[¿¼ÑÐ] Ò»Ö¾Ô¸ÉϺ£Àí¹¤ÄÜÔ´¶¯Á¦£¨085800£©310·ÖÇóµ÷¼Á +3 zhangmingc 2026-03-27 4/200 2026-03-27 19:01 by ¸øÄãÄã×¢ÒâÐÝÏ¢
[¿¼ÑÐ] µ÷¼ÁÇóÊÕÁô +7 ¹ûÈ»ÓÐÎÒ 2026-03-26 7/350 2026-03-27 00:26 by wxiongid
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û