亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? plaquettes.f90

?? 用fortran編寫的程序.主要用于研究統計物理里的Ising模型.
?? F90
字號:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Fortran90 program, Monte Carlo simulation of the Ising model!programmed by Hans-Marc Erkinger, erkinger@itp.tu-graz.ac.at!Final version, 21/08/2000!Compiled with Fortran 90 Lahey-Compiler on RedHat Linux!f95-lah --wide --mod MOD_lahey --pca --tpp --warn --trace -O!NEEDS (in same directory):!condor.dat!input_pl.dat!--------------------------------------------------------------!Purpose of program:!Simulates the Ising model with a local update algorithm in the!high-temperature representation.!Algorithm shows very large correlations, comparable to a !Metropolis-algorithm with z >= 2 for all dimensions observed!(2d, 3d, 4d)!Further information can be found in my diploma thesis:!"A new cluster algorithm for the Ising model", !TU Graz, August 2000!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Module for creating random numbers!---------------------------------------------------MODULE random_mod  !---------------------------------------------------  IMPLICIT NONE  INTEGER iseedCONTAINS  !---------------------------------------------------  SUBROUTINE ranset(iseed)    !---------------------------------------------------    INTEGER iseed,i(1)    i(1)=iseed    CALL RANDOM_SEED(put=i(1:1))  END SUBROUTINE ranset  !---------------------------------------------------  SUBROUTINE ranget(iseed)    !---------------------------------------------------    INTEGER iseed,i(1)    CALL RANDOM_SEED(get=i(1:1))    iseed=i(1)  END SUBROUTINE ranget  !---------------------------------------------------  FUNCTION random()    !---------------------------------------------------    REAL*8 random,x(1)    CALL RANDOM_NUMBER(x(1:1)) !internal rng in F90    random = x(1)  END FUNCTION randomEND MODULE random_mod!---------------------------------------------------!Utility module for creating next neighbours (nn),!list of plaquettes(p) and corresponding bonds (b)!belonging to a plaquette!---------------------------------------------------MODULE utility  !---------------------------------------------------  IMPLICIT NONECONTAINS  !---------------------------------------------------  SUBROUTINE create_nn_2d(nx,ny,v,b,nn,p)    INTEGER, INTENT(in) :: nx, ny, v    INTEGER, DIMENSION(1:v,1:4), INTENT(inout) :: nn    INTEGER,DIMENSION(1:v,1:2), INTENT(in) :: b    INTEGER,DIMENSION(1:v,1:4), INTENT(inout) :: p    INTEGER, DIMENSION(:,:), ALLOCATABLE :: sites    INTEGER :: i,j    ALLOCATE(sites(1:ny+2,1:nx+2))    sites=0    DO i=1,ny       DO j=1,nx          sites(i+1,j+1)=(i-1)*nx+j       ENDDO    ENDDO    sites(1,:)=sites(ny+1,:)    sites(ny+2,:)=sites(2,:)    sites(:,1)=sites(:,nx+1)    sites(:,nx+2)=sites(:,2)    DO i=1,ny       DO j=1,nx          nn((i-1)*nx+j,1)=sites(i+1,j)       !-x dir          nn((i-1)*nx+j,2)=sites(i+1,j+2)     !+x dir          nn((i-1)*nx+j,3)=sites(i,j+1)       !-y dir           nn((i-1)*nx+j,4)=sites(i+2,j+1)     !+y dir        ENDDO    ENDDO    !create a list of plaquettes and corresponding bonds    DO i = 1,v       p(i,1)=b(i,1)       p(i,2)=b(i,2)       p(i,3)=b(nn(i,2),2)       p(i,4)=b(nn(i,4),1)    ENDDO    RETURN;  END SUBROUTINE create_nn_2d  !---------------------------------------------------  SUBROUTINE create_nn_3d(nx,ny,nz,v,b,nn,p)    INTEGER, INTENT(in) :: nx, ny, nz, v    INTEGER, DIMENSION(1:v,1:6), INTENT(inout) :: nn    INTEGER,DIMENSION(1:v,1:3), INTENT(in) :: b    INTEGER,DIMENSION(1:3*v,1:4), INTENT(inout) :: p    INTEGER, DIMENSION(:,:,:), ALLOCATABLE :: sites    INTEGER :: i,j,k,csite    ALLOCATE(sites(1:nz+2,1:ny+2,1:nx+2))    sites=0    DO i=1,nz       DO j=1,ny          DO k=1,nx             sites(i+1,j+1,k+1) = (i-1)*ny*nx + (j-1)*nx + k          ENDDO       ENDDO    ENDDO    sites(1,:,:)=sites(nz+1,:,:)    sites(nz+2,:,:)=sites(2,:,:)    sites(:,1,:)=sites(:,ny+1,:)    sites(:,ny+2,:)=sites(:,2,:)    sites(:,:,1)=sites(:,:,nx+1)    sites(:,:,nx+2)=sites(:,:,2)    DO i=1,nz       DO j=1,ny          DO k=1,nx             csite=(i-1)*nx*ny+(j-1)*nx+k             nn(csite,1)=sites(i+1,j+1,k)      !-x dir             nn(csite,2)=sites(i+1,j+1,k+2)    !+x dir              nn(csite,3)=sites(i+1,j,k+1)      !-y dir             nn(csite,4)=sites(i+1,j+2,k+1)    !+y dir             nn(csite,5)=sites(i,j+1,k+1)      !-z dir             nn(csite,6)=sites(i+2,j+1,k+1)    !+z dir          ENDDO       ENDDO    ENDDO    DO i = 1,v       !the 1,2-case       p(3*(i-1)+1,1)=b(i,1)       p(3*(i-1)+1,2)=b(i,2)       p(3*(i-1)+1,3)=b(nn(i,2),2)       p(3*(i-1)+1,4)=b(nn(i,4),1)       !the 1,3-case       p(3*(i-1)+2,1)=b(i,1)       p(3*(i-1)+2,2)=b(i,3)       p(3*(i-1)+2,3)=b(nn(i,2),3)       p(3*(i-1)+2,4)=b(nn(i,6),1)       !the 2,3-case       p(3*(i-1)+3,1)=b(i,2)       p(3*(i-1)+3,2)=b(i,3)       p(3*(i-1)+3,3)=b(nn(i,4),3)       p(3*(i-1)+3,4)=b(nn(i,6),2)    ENDDO    RETURN;  END SUBROUTINE create_nn_3d  !---------------------------------------------------  SUBROUTINE create_nn_4d(nx,ny,nz,nw,v,b,nn,p)    INTEGER, INTENT(in) :: nx, ny, nz, nw, v    INTEGER, DIMENSION(1:v,1:8), INTENT(inout) :: nn    INTEGER,DIMENSION(1:v,1:4), INTENT(in) :: b    INTEGER,DIMENSION(1:6*v,1:4), INTENT(inout) :: p    INTEGER, DIMENSION(:,:,:,:), ALLOCATABLE :: sites    INTEGER :: i,j,k,l,csite    ALLOCATE(sites(1:nw+2,1:nz+2,1:ny+2,1:nx+2))    sites=0    DO i=1,nw       DO j=1,nz          DO k=1,ny             DO l=1,nx                sites(i+1,j+1,k+1,l+1) = (i-1)*nz*ny*nx + (j-1)*ny*nx + (k-1)*nx + l             ENDDO          ENDDO       ENDDO    ENDDO    sites(1,:,:,:)=sites(nw+1,:,:,:)    sites(nw+2,:,:,:)=sites(2,:,:,:)    sites(:,1,:,:)=sites(:,nz+1,:,:)    sites(:,nz+2,:,:)=sites(:,2,:,:)    sites(:,:,1,:)=sites(:,:,ny+1,:)    sites(:,:,ny+2,:)=sites(:,:,2,:)    sites(:,:,:,1)=sites(:,:,:,nx+1)    sites(:,:,:,nx+2)=sites(:,:,:,2)    DO i=1,nw       DO j=1,nz          DO k=1,ny             DO l=1,nx                csite=(i-1)*nz*ny*nx + (j-1)*ny*nx + (k-1)*nx + l                nn(csite,1)=sites(i+1,j+1,k+1,l)      !-x dir                nn(csite,2)=sites(i+1,j+1,k+1,l+2)    !+x dir                 nn(csite,3)=sites(i+1,j+1,k,l+1)      !-y dir                nn(csite,4)=sites(i+1,j+1,k+2,l+1)    !+y dir                nn(csite,5)=sites(i+1,j,k+1,l+1)      !-z dir                nn(csite,6)=sites(i+1,j+2,k+1,l+1)    !+z dir                nn(csite,7)=sites(i,j+1,k+1,l+1)      !-w dir                nn(csite,8)=sites(i+2,j+1,k+1,l+1)    !+w dir             ENDDO          ENDDO       ENDDO    ENDDO    DO i = 1,v       !the 1,2-case       p(6*(i-1)+1,1)=b(i,1)       p(6*(i-1)+1,2)=b(i,2)       p(6*(i-1)+1,3)=b(nn(i,2),2)       p(6*(i-1)+1,4)=b(nn(i,4),1)       !the 1,3-case       p(6*(i-1)+2,1)=b(i,1)       p(6*(i-1)+2,2)=b(i,3)       p(6*(i-1)+2,3)=b(nn(i,2),3)       p(6*(i-1)+2,4)=b(nn(i,6),1)       !the 1,4-case       p(6*(i-1)+3,1)=b(i,1)       p(6*(i-1)+3,2)=b(i,4)       p(6*(i-1)+3,3)=b(nn(i,2),4)       p(6*(i-1)+3,4)=b(nn(i,8),1)       !the 2,3-case       p(6*(i-1)+4,1)=b(i,2)       p(6*(i-1)+4,2)=b(i,3)       p(6*(i-1)+4,3)=b(nn(i,4),3)       p(6*(i-1)+4,4)=b(nn(i,6),2)       !the 2,4-case       p(6*(i-1)+5,1)=b(i,2)       p(6*(i-1)+5,2)=b(i,4)       p(6*(i-1)+5,3)=b(nn(i,4),4)       p(6*(i-1)+5,4)=b(nn(i,8),2)       !the 3,4-case       p(6*(i-1)+6,1)=b(i,3)       p(6*(i-1)+6,2)=b(i,4)       p(6*(i-1)+6,3)=b(nn(i,6),4)       p(6*(i-1)+6,4)=b(nn(i,8),3)    ENDDO    RETURN  END SUBROUTINE create_nn_4d  !---------------------------------------------------END MODULE utility!---------------------------------------------------PROGRAM plaquettes  USE random_mod  USE utility  IMPLICIT NONE  INTEGER :: nx,ny,nz,nw,flag, counter  INTEGER, DIMENSION(:,:), ALLOCATABLE :: nn, b, p  INTEGER, DIMENSION(:), ALLOCATABLE :: bval  INTEGER :: i, j, i1, j1, c, c2, n, k  REAL*8  :: rand, beta, thbeta, chbeta, shbeta, E, Esum  REAL*8  :: propup  INTEGER :: d, v, dataf=3   INTEGER :: u1=1, u2=2, condor, mc, mc2  REAL :: iterreal, thermreal  INTEGER :: iter, therm, nbnew, nbold, randpl, bcount  CHARACTER*40 :: data_format, data_file  INTEGER :: s, n2, c1  REAL*8 ::  time2, time1  !needs file 'condor.dat' in same directory  !condor.dat consists of 1 line only  !line = either 0 or 1   OPEN(unit=u1,file='condor.dat')  READ(u1,*) condor;  CLOSE(unit=u1)  IF (condor.EQ.0) THEN     OPEN(unit=u1,file='input_pl.dat')     READ(u1,*) nx;      READ(u1,*) d;     READ(u1,*) iterreal ! iterations for MC;      READ(u1,*) thermreal ! number of thermalization sweeps     READ(u1,*) beta;      CLOSE(unit=u1)  ENDIF  IF (condor.EQ.1) THEN     READ(5,*) nx;      READ(5,*) d;     READ(5,*) iterreal ! iterations for MC;      READ(5,*) thermreal ! number of thermalization sweeps     READ(5,*) beta;   ENDIF  iter = INT(iterreal)   !necessary for reading 1E3-style input  therm = INT(thermreal)  WRITE(*,*) nx   WRITE(*,*) d  WRITE(*,*) iter    WRITE(*,*) therm  WRITE(*,*) beta  WRITE(*,*) '-----------'  IF (MOD(nx,2).EQ.1) THEN     WRITE(*,*) 'nx has to be even. Exiting.'     STOP  ENDIF  IF (d.EQ.2) THEN     ny = nx;     v = nx*ny;  ELSEIF (d.EQ.3) THEN     ny = nx; nz = nx;     v = nx*ny*nz;  ELSEIF (d.EQ.4) THEN     ny = nx; nz = nx; nw = nx;     v = nx*ny*nz*nw  ENDIF  ALLOCATE(nn(1:v,1:2*d))  ALLOCATE(b(1:v,1:d),p(1:d*(d-1)/2*v,1:4))  ALLOCATE(bval(1:d*v))  !create the filename for datafile  IF (nx .LT. 1000) THEN     data_format = '(a11,i3,a1,i1,a2,f6.4,a4)'  ENDIF  IF (nx .LT. 100) THEN     data_format = '(a11,i2,a1,i1,a2,f6.4,a4)'  ENDIF  IF (nx .LT. 10) THEN     data_format = '(a11,i1,a1,i1,a2,f6.4,a4)'  ENDIF  WRITE(data_file,data_format) 'dataseries_', nx, '_', d, 'd_', beta, '.dat'  OPEN(unit=dataf,file=data_file)  !label the bonds linearly  c = 0;  DO i = 1,v     DO j = 1,d        c = c+1;        b(i,j) = c;     ENDDO  ENDDO  IF (d.EQ.2) THEN     CALL create_nn_2d(nx,ny,v,b,nn,p)  ELSEIF (d.EQ.3) THEN     CALL create_nn_3d(nx,ny,nz,v,b,nn,p)  ELSEIF (d.EQ.4) THEN     CALL create_nn_4d(nx,ny,nz,nw,v,b,nn,p)  ENDIF  !b=-1 means bond set, b=+1 means no bond set  bval = +1     !initially no bonds are set, cold start  IF (ALL(bval.EQ.+1)) THEN     nbnew = 0     nbold = 0  ELSE                nbnew = v*d  !only valid, if all bonds = -1     nbold = v*d  END IF  thbeta = TANH(beta);  shbeta = SINH(beta);  chbeta = COSH(beta);  k = 0  E = 0; Esum = 0;  mc = 0; mc2 = 0;  n = 0;  c1 = 1;  CALL cpu_time(time1) !start timer  DO s = 1,iter+therm !start main MC loop     DO n2 = 1,v        n = n + 1;        !select a random plaquette        randpl = INT(d*(d-1)/2*v*random()) + 1          bcount = 0        !count the number of bonds set at random plaqu.        DO j = 1,4           IF (bval(p(randpl,j)).EQ.-1) THEN              bcount = bcount+1           ENDIF        ENDDO        nbnew = nbold + 4 - 2*bcount        !calculate update propability, Metropolis        propup = MIN(1,EXP((nbnew-nbold)*LOG(thbeta)))        rand = random()            IF (rand.LE.propup) THEN   !Move accepted           mc = mc+1;           DO j = 1,4              bval(p(randpl,j))=bval(p(randpl,j))*(-1)           ENDDO           nbold = nbnew;        ELSE                 !Move not accepted           nbnew = nbold           mc2 = mc2+1;        ENDIF        IF (s.GT.therm) THEN           E = -d*thbeta - 1.0/v * nbnew * 1.0/(shbeta*chbeta)  !v-normed energy           Esum=Esum+E           k=k+1        ENDIF     ENDDO ! end main MC loop     IF (s.GT.therm) THEN             WRITE(dataf,*) E !only write every v-th value to file     ENDIF     ! print how many iterations done, how long sill to go     IF (s .EQ. (iter+therm)/10*c1) THEN        IF (c1.EQ.1) CALL cpu_time(time2)        WRITE(*,'(i5,a6,i5,a8,f10.2,a12)') s, ' done,', iter+therm-s, ' to do, ', (time2-time1)*(10-c1), ' sec. to go.'        c1=c1+1     ENDIF  ENDDO  WRITE(*,*) Esum/k  WRITE(*,*) 'Number of accepted Moves: ', mc  WRITE(*,*) '# NOT accepted: ', mc2  WRITE(*,*) 'Sum: ', mc+mc2  CLOSE(unit=dataf)END PROGRAM plaquettes

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看成人小视频| 国产91精品精华液一区二区三区| 99视频国产精品| 中文字幕av在线一区二区三区| 国产99久久久国产精品潘金| 中文天堂在线一区| 日本久久电影网| 五月婷婷激情综合| 欧美v日韩v国产v| 成人精品鲁一区一区二区| 亚洲欧洲精品成人久久奇米网| 91女人视频在线观看| 亚洲v日本v欧美v久久精品| 欧美不卡视频一区| 成人动漫一区二区三区| 亚洲一区二区三区四区的| 欧美精三区欧美精三区| 国产一区欧美日韩| 中文字幕一区二区三区在线播放 | 国产日本亚洲高清| av电影天堂一区二区在线观看| 亚洲综合色成人| 日韩一区二区三区高清免费看看 | 91色在线porny| 亚洲第一久久影院| 久久久久久久久久电影| 日本伦理一区二区| 精品一区二区免费视频| 亚洲四区在线观看| 欧美一区二区人人喊爽| www.亚洲激情.com| 免费在线观看一区二区三区| 国产精品免费av| 日韩一区二区三区四区五区六区| 成人av资源在线| 免费人成精品欧美精品| 亚洲免费在线看| 久久综合久色欧美综合狠狠| 色av成人天堂桃色av| 国产伦精品一区二区三区视频青涩| 一区二区三区中文字幕电影| 精品国产欧美一区二区| 欧美日韩精品电影| av电影一区二区| 国产盗摄一区二区| 日韩黄色免费网站| 亚洲青青青在线视频| 久久久久国产精品人| 欧美一级日韩免费不卡| 欧美这里有精品| k8久久久一区二区三区| 激情综合亚洲精品| 日韩有码一区二区三区| 伊人色综合久久天天人手人婷| 亚洲国产精品高清| 精品区一区二区| 欧美一区二区在线看| 欧美四级电影网| 91免费精品国自产拍在线不卡| 成人免费毛片嘿嘿连载视频| 九色|91porny| 麻豆精品视频在线观看视频| 亚洲福利视频一区| 一二三四社区欧美黄| 亚洲男同性恋视频| 亚洲视频一区二区在线观看| 国产精品欧美一区二区三区| 国产欧美一区二区在线观看| 2020国产精品自拍| 精品久久99ma| 精品国产亚洲在线| 国产亚洲人成网站| 国产欧美一区二区精品性色超碰| 欧美va在线播放| 久久先锋资源网| 久久精品夜夜夜夜久久| 国产校园另类小说区| 欧美精品一区二区三区蜜臀 | 久久精品视频网| 久久综合九色综合97婷婷| 精品久久久网站| 2014亚洲片线观看视频免费| 精品国产伦一区二区三区观看体验 | 久久先锋影音av| 久久蜜桃一区二区| 国产精品毛片无遮挡高清| 自拍偷拍国产亚洲| 亚洲精品欧美综合四区| 性欧美大战久久久久久久久| 日韩中文字幕1| 激情文学综合网| 成人小视频免费在线观看| 99久久99久久精品免费观看| 一本久久a久久精品亚洲| 91福利国产精品| 欧美理论片在线| 精品国产乱码久久久久久图片 | 日韩一区二区在线看| 久久综合一区二区| 中文字幕一区二区三区精华液| 一区二区三区加勒比av| 香港成人在线视频| 精品亚洲成a人在线观看| 国产成人丝袜美腿| 99久久婷婷国产综合精品电影| 欧美三级乱人伦电影| 欧美sm极限捆绑bd| 中文字幕人成不卡一区| 香蕉影视欧美成人| 国产美女一区二区| 色哟哟欧美精品| 精品乱码亚洲一区二区不卡| 中文字幕一区二区三中文字幕| 香蕉影视欧美成人| 国产成人av一区二区三区在线| 91女厕偷拍女厕偷拍高清| 日韩欧美国产综合一区 | 国产精品久久777777| 亚洲福利一区二区三区| 国产成人福利片| 欧美日韩在线免费视频| 国产视频一区二区在线观看| 亚洲综合久久久| 国产精品一品视频| 欧美色视频一区| 国产精品区一区二区三| 美女网站一区二区| 日本精品视频一区二区| 久久蜜桃香蕉精品一区二区三区| 一区二区三区欧美视频| 国产二区国产一区在线观看| 7777精品伊人久久久大香线蕉完整版 | 亚洲国产日韩a在线播放性色| 国产一区高清在线| 91久久国产最好的精华液| 久久先锋影音av鲁色资源| 天天综合网 天天综合色| 成人精品鲁一区一区二区| 精品国产乱子伦一区| 婷婷激情综合网| 色综合久久中文综合久久牛| 亚洲精品在线观看网站| 午夜成人在线视频| 在线观看欧美精品| 亚洲日本电影在线| 粉嫩在线一区二区三区视频| 日韩美一区二区三区| 亚洲风情在线资源站| 色吊一区二区三区| 136国产福利精品导航| 福利一区二区在线观看| 久久久久久久久久电影| 国产一区二区在线看| 日韩欧美亚洲一区二区| 视频一区视频二区中文| 在线观看91视频| 一级女性全黄久久生活片免费| 91天堂素人约啪| 亚洲天天做日日做天天谢日日欢 | 欧美激情资源网| 国产精品123区| 久久亚洲欧美国产精品乐播 | 亚洲人123区| 色欧美片视频在线观看 | 国产精品三级在线观看| 国产电影一区二区三区| 日本一区二区高清| 成人免费高清在线观看| 国产精品久久久久久久午夜片| 成人理论电影网| 中文字幕av一区 二区| 成人影视亚洲图片在线| 国产精品三级久久久久三级| av电影在线观看不卡| 亚洲美女屁股眼交3| 色婷婷综合激情| 亚洲成人免费看| 日韩视频一区二区三区| 国产一区二区三区免费看| 久久先锋资源网| gogogo免费视频观看亚洲一| 亚洲日穴在线视频| 在线中文字幕一区| 婷婷成人综合网| 亚洲精品一区二区三区精华液| 国产美女主播视频一区| 国产精品美女久久久久av爽李琼 | 久久九九久久九九| 成人精品视频网站| 亚洲综合成人在线| 欧美一区二区成人| 国产高清亚洲一区| 亚洲精品免费电影| 日韩欧美中文字幕精品| 国产精品一二三四五| 中文字幕亚洲在| 69堂亚洲精品首页| 国产乱子轮精品视频| 日韩久久一区二区| 91精品国产高清一区二区三区 |