| ²é¿´: 8941 | »Ø¸´: 94 | ||||||||||||
| ¡¾½±Àø¡¿ ±¾Ìû±»ÆÀ¼Û64´Î£¬×÷ÕßjpchouÔö¼Ó½ð±Ò 50.8 ¸ö | ||||||||||||
| µ±Ç°Ö»ÏÔʾÂú×ãÖ¸¶¨Ìõ¼þµÄ»ØÌû£¬µã»÷ÕâÀï²é¿´±¾»°ÌâµÄËùÓлØÌû | ||||||||||||
jpchouר¼Ò¹ËÎÊ (ÖøÃûдÊÖ)
|
[×ÊÔ´]
dos-procar.f90
|
|||||||||||
|
ÏÈÕfÒ»ÏÂ~СµŲ̈ž³ÈË£¬›]·¨´òº†ówÖÐÎÄ ÓÃ×ÖDzÔ~ÉÏÒ²Ô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ÔÚ¾ÍÊDz©°àµÄŒ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 atom11 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 ÊdzÌʽÅcÈËÖ®égµÄŒ¦Ô’ 26 write(6,'("enter the gaussian " ') ; read(5,*) gaussian > ½o³Ìʽ Gaussian function µÄ width27 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 >¸æÖª³Ìʽ "ÌØ¶¨Ô×Ó" ¿‚¹²ÓÐŽ×îw29 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 do93 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³ö?í ÎÒÔÙÒ»Ò»»Ø‘ª ß@˜ÓËÆºõÊDZÈÝ^ÓÐЧÂʵÄ×ö·¨ »òÊÇŒ¦ì¶Ô³Ìʽ dos-procar.f ÓÐÒɆ–Õß Ò²¿ÉÒÔÌá³ö?í~´ó¼ÒÓ‘Õ“Ó‘Õ“ |
» ±¾Ìû¸½¼þ×ÊÔ´Áбí
-
»¶Ó¼à¶½ºÍ·´À¡£ºÐ¡Ä¾³æ½öÌṩ½»Á÷ƽ̨£¬²»¶Ô¸ÃÄÚÈݸºÔð¡£
±¾ÄÚÈÝÓÉÓû§×ÔÖ÷·¢²¼£¬Èç¹ûÆäÄÚÈÝÉæ¼°µ½ÖªÊ¶²úȨÎÊÌ⣬ÆäÔðÈÎÔÚÓÚÓû§±¾ÈË£¬Èç¶Ô°æÈ¨ÓÐÒìÒ飬ÇëÁªÏµÓÊÏ䣺xiaomuchong@tal.com - ¸½¼þ 1 : dos-procar.f90
2013-11-25 18:52:54, 4.89 K
» ÊÕ¼±¾ÌûµÄÌÔÌûר¼ÍƼö
VASP | µÚÒ»ÐÔÔÀíÏà¹ØÎĵµ | VASP | vasp |
VASP | Ä£Ä⣬ÀíÂÛ | Èí¼þ | ѧÊõ |
» ±¾ÌûÒÑ»ñµÃµÄºì»¨£¨×îÐÂ10¶ä£©
» ²ÂÄãϲ»¶
µ¼Ê¦ÏëÈÃÎÒ´Ó¶ÀÁ¢Ò»×÷±ä³ÉÁ˹²Ò»µÚÒ»
ÒѾÓÐ9È˻ظ´
²©Ê¿¶ÁÍêδÀ´Ò»¶¨»áºÃÂð
ÒѾÓÐ23È˻ظ´
µ½Ðµ¥Î»ºó£¬»»ÁËеÄÑо¿·½Ïò£¬Ã»ÓÐÍŶӣ¬³ÖÐø»ýÀÛ2ÇøÒÔÉÏÂÛÎÄ£¬ÄÜÉêÇëµ½ÃæÉÏÂð
ÒѾÓÐ11È˻ظ´
¶Á²©
ÒѾÓÐ4È˻ظ´
JMPT ÆÚ¿¯Í¶¸åÁ÷³Ì
ÒѾÓÐ4È˻ظ´
ÐÄÂöÊÜËð
ÒѾÓÐ5È˻ظ´
SpringerÆÚ¿¯Í¶¸åÇóÖú
ÒѾÓÐ4È˻ظ´
СÂÛÎÄͶ¸å
ÒѾÓÐ3È˻ظ´
ÉêÇë2026Ä격ʿ
ÒѾÓÐ6È˻ظ´
» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:
souledge
ר¼Ò¹ËÎÊ (ÖøÃûдÊÖ)
-

ר¼Ò¾Ñé: +174 - 1STÇ¿Ìû: 19
- Ó¦Öú: 303 (´óѧÉú)
- ½ð±Ò: 11306.4
- Ìû×Ó: 2814
- ÔÚÏß: 916.1Сʱ
- ³æºÅ: 941486
16Â¥2013-11-26 23:48:24
jpchou
ר¼Ò¹ËÎÊ (ÖøÃûдÊÖ)
-

ר¼Ò¾Ñé: +20 - 1STÇ¿Ìû: 5
- Ó¦Öú: 231 (´óѧÉú)
- ½ð±Ò: 2342
- Ìû×Ó: 1061
- ÔÚÏß: 757.3Сʱ
- ³æºÅ: 585915
2Â¥2013-11-25 19:36:18
4Â¥2013-11-25 19:55:36
5Â¥2013-11-25 21:46:51
¼òµ¥»Ø¸´
dx06203Â¥
2013-11-25 19:43
»Ø¸´
ÎåÐÇºÃÆÀ ¶¥Ò»Ï£¬¸Ðл·ÖÏí£¡













,oc(:,:,:,
') ; read(5,*) gaussian > ½o³Ìʽ Gaussian function µÄ width
»Ø¸´´ËÂ¥
afan0012
¹ûÈ»Àëץ̊Íå±È½Ï½ü£¬Á˽âµÄ¸ü¶à°¡¡«
