Changeset 32289cd for partem_s.f
- Timestamp:
- 11/19/09 11:29:41 (14 years ago)
- Branches:
- master
- Children:
- 38d77eb
- Parents:
- 6650a56
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
partem_s.f
r6650a56 r32289cd 4 4 ! 5 5 ! Copyright 2003-2005 Frank Eisenmenger, U.H.E. Hansmann, 6 ! Shura Hayryan, Chin-Ku 6 ! Shura Hayryan, Chin-Ku 7 7 ! Copyright 2007 Frank Eisenmenger, U.H.E. Hansmann, 8 8 ! Jan H. Meinke, Sandipan Mohanty … … 10 10 ! 11 11 ! ************************************************************** 12 12 13 13 subroutine partem_s(num_rep, nequi, nswp, nmes, nsave, newsta, 14 14 & switch) … … 20 20 ! 21 21 include 'INCL.H' 22 23 double precision gasc, dv, grnd, vr, addang, energ, energy, acz 24 double precision ee, rgy, temp0, delta, ra 25 26 integer i, j, nml, k, nstart, iv, nsw, iswitch, k1, num_rep1, nu 27 integer in, jn 28 22 29 external can_weight 23 30 ! TODO Store global coordinates in pgbpr … … 44 51 ! ipoi: Points to replica ipoi(k) which is currently 45 52 ! at inverse temperature pbe(k) 46 ! eol: energy of each replica 53 ! eol: energy of each replica 47 54 ! acc: accepatance rate of each replica 48 55 ! … … 55 62 allocate(temp(num_rep), pbe(num_rep), eol(num_rep)) 56 63 allocate(acc(num_rep), ipoi(num_rep)) 57 64 58 65 if (.not.(allocated(coor_G).and.allocated(temp) 59 66 & .and. allocated(pbe).and. allocated(eol) … … 77 84 ipoi(i) = 0 78 85 end do 79 86 80 87 81 88 ! READ IN TEMPERATURES … … 90 97 91 98 open(13,file='time.d',status='unknown') 92 99 93 100 if(.not.newsta) then 94 101 ! READ START Values … … 122 129 pgbpr(j, nml, i) = gbpr(j, nml) 123 130 end do 124 end do 125 end do 126 131 end do 132 end do 133 127 134 ! Equilibrization for each replica (No replica exchange move) 128 135 do k=1,num_rep … … 141 148 CALL METROPOLIS(energ,acz,can_weight) 142 149 end do 143 write(*,*) 'Start energy after equilibration for replica:', 150 write(*,*) 'Start energy after equilibration for replica:', 144 151 & k, energ 145 152 do i=1,nvr … … 155 162 end do 156 163 end if 157 164 158 165 ! Now begins the simulation with Multiple Markov Chains 159 166 iswitch = 1 … … 176 183 end do 177 184 CALL METROPOLIS(energ,acz,can_weight) 178 ! 185 ! 179 186 if(mod(nsw,nmes).eq.0) then 180 187 ! Measure and store here all quantities you want to analyse later … … 195 202 end do 196 203 end do 197 204 198 205 eol(k) = energ 199 206 acc(k) = acz … … 214 221 j=i+1 215 222 if(i.eq.num_rep) j=1 216 in=ipoi(i) 223 in=ipoi(i) 217 224 jn=ipoi(j) 218 225 delta=-pbe(i)*eol(jn)-pbe(j)*eol(in)
Note:
See TracChangeset
for help on using the changeset viewer.