| ²é¿´: 412 | »Ø¸´: 0 | ||
buddy006ͳæ (³õÈëÎÄ̳)
|
[ÇóÖú]
·ÑÃ×Äܼ¶µçºÉÃܶÈÎļþ¶ÁÈ¡±¨´í£¬ÇóÖú
|
|
´ó¼ÒºÃ£¬Ïë¼ÆËãһϷÑÃ×Äܼ¶¸½¼þµÄµçºÉ·Ö²¼£¬Í¨¹ýÉèÖÃINCARÖÐµÄ LPARDÖµ£¬ÒѾ´ïµ½ÁËPARCHGÎļþ£¬Ïëͨ¹ýÏÂÃæµÄ½Å±¾£¬¶ÁÈ¡µçºÉÎļþ£¬È»ºó·Ö±ðÊä³öspin-down ºÍspin-upµçºÉÃܶȣ¬µ«ÔËÐкó×ÜÊÇÌáʾ£¬ line1: program: comand not found command not foundy-1.f:line 2 : line3: ccccc: command not found line4:ccccc: command not found conmand not foundy-1.f:line 5: line6:syntax error near unexpected token '(' line6:' implicit double precision ( a-h, o-z ) ÏÂÃæÊÇÎÒÓõĽű¾£¬ÄÄλ°ï濴һϣ¬Ê²Ã´µØ·½ÓÐÎÊÌ⣬¶àлÁË¡£ ************************************************** program plot_chargedensity ccccc This program read the vasp charge density file and write them in a matrix. ccccc This matrix has a dimension of nx*ny*nz. implicit double precision (a-h,o-z) character*20 file1 character*20 filename c real*8, allocatable, dimension (:,:, :: dens_upc real*8, allocatable, dimension (:,:, :: dens_downc real*8, allocatable, dimension( :: dens_tmpreal*8 dens_up(108,108,180) real*8 dens_down(108,108,180) real*8 dens_tmp(108*108*180) write(6,*) "input the charge density file name" read(5,*) filename c write(6,*) "input the values of nx, ny, nz:" c read(5,*) nx,ny,nz nx = 108 ny = 108 nz = 180 m1=nx*my*nz m2=m1/10 c allocate(dens_up(nx,ny,nz)) c allocate(dens_up(nx,ny,nz)) c allocate(dens_tmp(m1)) open(12,file=filename) c The first lines you don not want do i=1,42 read(12,*) end do c begin to read the spin up-charge density do i=1,m2 m3=(i-1)*5 read(12,*)dens_tmp(m3+1),dens_tmp(m3+2),dens_tmp(m3+3), * dens_tmp(m3+4),dens_tmp(m3+5),dens_tmp(m3+6),dens_tmp(m3+7), * dens_tmp(m3+8),dens_tmp(m3+9),dens_tmp(m3+10) end do do m=1,m1 k=(m-1)/(nx*ny)+1 i=(m-1-(k-1)*nx*ny)/ny+1 j=m-(k-1)*nx*ny-(i-1)*ny dens_up(i,j,k)=dens_tmp(m) end do c The some lines between up and down you don not want do i=1,2 read(12,*) end do c begin to read the spin up-charge density do i=1,m2 m3=(i-1)*10 read(12,*)dens_tmp(m3+1),dens_tmp(m3+2),dens_tmp(m3+3), * dens_tmp(m3+4),dens_tmp(m3+5),dens_tmp(m3+6),dens_tmp(m3+7), * dens_tmp(m3+8),dens_tmp(m3+9),dens_tmp(m3+10) end do do m=1,m1 k=(m-1)/(nx*ny)+1 i=(m-1-(k-1)*nx*ny)/ny+1 j=m-(k-1)*nx*ny-(i-1)*ny dens_up(i,j,k)=dens_tmp(m) end do open(13,file="charge-up.out" ![]() rewind(13) do i=1,nx write(13,101) ((dens_up(i,j,45)+dens_down(i,j,45))/2.0,j=1,ny) end do open(14,file="charge-down.out" ![]() rewind(14) do i=1,nx write(14,101) ((dens_up(i,j,45)-dens_down(i,j,45))/2.0,j=1,ny) end do 101 format(300(F12.8,2X)) close(12) close(13) close(14) end |
» ²ÂÄãϲ»¶
²ÄÁϵ÷¼Á
ÒѾÓÐ10È˻ظ´
Ò»Ö¾Ô¸¹þ¶û±õ¹¤Òµ´óѧ085600Ó¢Ò»Êý¶þ337·ÖÇóµ÷¼Á
ÒѾÓÐ5È˻ظ´
288Çóµ÷¼Á Ò»Ö¾Ô¸¹þ¹¤´ó ²ÄÁÏÓ뻯¹¤
ÒѾÓÐ11È˻ظ´
Çóµ÷¼Á£¬Ò»Ö¾Ô¸ÄϾ©º½¿Õº½Ìì´óѧ £¬080500²ÄÁÏ¿ÆÑ§Ó빤³Ìѧ˶
ÒѾÓÐ9È˻ظ´
±¾¿Æ211£¬293·ÖÇëÇóµ÷¼Á
ÒѾÓÐ4È˻ظ´
Çóµ÷¼Á
ÒѾÓÐ3È˻ظ´
085400µç×ÓÐÅÏ¢319Çóµ÷¼Á£¨½ÓÊÜ¿çרҵµ÷¼Á£©
ÒѾÓÐ5È˻ظ´
268Çóµ÷¼Á
ÒѾÓÐ9È˻ظ´
һ־Ը˫·Ç085502£¬267·Ö£¬¹ýËļ¶Çóµ÷¼Á
ÒѾÓÐ3È˻ظ´
Ò»Ö¾Ô¸085404£¬×Ü·Ö291£¬Ëļ¶Òѹý£¬Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´














:: dens_up
»Ø¸´´ËÂ¥