diff -c /b2/nrf90/f90/nr.f90 ./nr.f90 *** /b2/nrf90/f90/nr.f90 Fri Dec 22 16:23:59 1995 --- ./nr.f90 Tue Oct 15 04:32:36 1996 *************** *** 2154,2160 **** END INTERFACE INTERFACE FUNCTION ran(idum) ! INTEGER(selected_int_kind(9)), INTENT(INOUT) :: idum REAL :: ran END FUNCTION ran END INTERFACE --- 2154,2161 ---- END INTERFACE INTERFACE FUNCTION ran(idum) ! USE nrtype ! INTEGER(I4B) :: idum REAL :: ran END FUNCTION ran END INTERFACE diff -c /b2/nrf90/f90/nrtype.f90 ./nrtype.f90 *** /b2/nrf90/f90/nrtype.f90 Sun Dec 31 19:46:07 1995 --- ./nrtype.f90 Sun Oct 06 04:20:29 1996 *************** *** 1,5 **** MODULE nrtype ! INTEGER, PARAMETER :: I4B = SELECTED_INT_KIND(9) INTEGER, PARAMETER :: I2B = SELECTED_INT_KIND(4) INTEGER, PARAMETER :: I1B = SELECTED_INT_KIND(2) INTEGER, PARAMETER :: SP = KIND(1.0) --- 1,5 ---- MODULE nrtype ! INTEGER, PARAMETER :: I4B = KIND(1) INTEGER, PARAMETER :: I2B = SELECTED_INT_KIND(4) INTEGER, PARAMETER :: I1B = SELECTED_INT_KIND(2) INTEGER, PARAMETER :: SP = KIND(1.0) diff -c /b2/nrf90/f90/nrutil.f90 ./nrutil.f90 *** /b2/nrf90/f90/nrutil.f90 Tue Feb 13 15:09:01 1996 --- ./nrutil.f90 Sun Oct 06 03:07:44 1996 *************** *** 1132,1138 **** INTEGER(I4B) :: n n=0 if (present(extra)) n=extra ! upper_triangle=(outerdiff(arth_i(1,1,j),arth_i(1,1,k)) < n) END FUNCTION upper_triangle !BL FUNCTION lower_triangle(j,k,extra) --- 1132,1138 ---- INTEGER(I4B) :: n n=0 if (present(extra)) n=extra ! upper_triangle=(outerdiff(arth_i(1_i4b,1_i4b,j),arth_i(1_i4b,1_i4b,k)) < n) END FUNCTION upper_triangle !BL FUNCTION lower_triangle(j,k,extra) *************** *** 1142,1148 **** INTEGER(I4B) :: n n=0 if (present(extra)) n=extra ! lower_triangle=(outerdiff(arth_i(1,1,j),arth_i(1,1,k)) > -n) END FUNCTION lower_triangle !BL FUNCTION vabs(v) --- 1142,1148 ---- INTEGER(I4B) :: n n=0 if (present(extra)) n=extra ! lower_triangle=(outerdiff(arth_i(1_i4b,1_i4b,j),arth_i(1_i4b,1_i4b,k)) > -n) END FUNCTION lower_triangle !BL FUNCTION vabs(v) diff -c /b2/nrf90/f90/ran.f90 ./ran.f90 *** /b2/nrf90/f90/ran.f90 Fri Oct 06 10:31:14 1995 --- ./ran.f90 Mon May 05 03:22:29 1997 *************** *** 1,22 **** FUNCTION ran(idum) IMPLICIT NONE INTEGER, PARAMETER :: K4B=selected_int_kind(9) ! INTEGER(K4B), INTENT(INOUT) :: idum REAL :: ran INTEGER(K4B), PARAMETER :: IA=16807,IM=2147483647,IQ=127773,IR=2836 REAL, SAVE :: am INTEGER(K4B), SAVE :: ix=-1,iy=-1,k if (idum <= 0 .or. iy < 0) then am=nearest(1.0,-1.0)/IM ! iy=ior(ieor(888889999,abs(idum)),1) ! ix=ieor(777755555,abs(idum)) ! idum=abs(idum)+1 end if ix=ieor(ix,ishft(ix,13)) ! ix=ieor(ix,ishft(ix,-17)) ix=ieor(ix,ishft(ix,5)) k=iy/IQ iy=IA*(iy-k*IQ)-IR*k if (iy < 0) iy=iy+IM ! ran=am*ior(iand(IM,ieor(ix,iy)),1) END FUNCTION ran --- 1,30 ---- FUNCTION ran(idum) + USE nrtype IMPLICIT NONE INTEGER, PARAMETER :: K4B=selected_int_kind(9) ! INTEGER(I4B), INTENT(INOUT) :: idum REAL :: ran INTEGER(K4B), PARAMETER :: IA=16807,IM=2147483647,IQ=127773,IR=2836 + INTEGER(K4B), PARAMETER :: IMASK=32767 REAL, SAVE :: am INTEGER(K4B), SAVE :: ix=-1,iy=-1,k if (idum <= 0 .or. iy < 0) then am=nearest(1.0,-1.0)/IM ! idum=abs(idum) ! iy=ior(ieor(888889999_k4b,int(idum,k4b)),1_k4b) ! ix=ieor(777755555_k4b,int(idum,k4b)) ! if (idum < IM) then ! idum=idum+1 ! else ! idum=-IM ! idum=idum-1 ! end if end if ix=ieor(ix,ishft(ix,13)) ! ix=ieor(ix,iand(ishft(ix,-17),imask)) ix=ieor(ix,ishft(ix,5)) k=iy/IQ iy=IA*(iy-k*IQ)-IR*k if (iy < 0) iy=iy+IM ! ran=am*ior(iand(IM,ieor(ix,iy)),1_k4b) END FUNCTION ran diff -c /b2/nrf90/f90/ran0.f90 ./ran0.f90 *** /b2/nrf90/f90/ran0.f90 Fri Feb 17 19:11:13 1995 --- ./ran0.f90 Mon May 05 03:22:29 1997 *************** *** 3,9 **** USE ran_state, ONLY: K4B,amm,lenran,ran_init,iran0,jran0,kran0,nran0,rans IMPLICIT NONE REAL(SP), INTENT(OUT) :: harvest ! if (lenran < 1) call ran_init(1) rans=iran0-kran0 if (rans < 0) rans=rans+2147483579_k4b iran0=jran0 --- 3,9 ---- USE ran_state, ONLY: K4B,amm,lenran,ran_init,iran0,jran0,kran0,nran0,rans IMPLICIT NONE REAL(SP), INTENT(OUT) :: harvest ! if (lenran < 1) call ran_init(1_k4b) rans=iran0-kran0 if (rans < 0) rans=rans+2147483579_k4b iran0=jran0 *************** *** 10,16 **** jran0=kran0 kran0=rans nran0=ieor(nran0,ishft(nran0,13)) ! nran0=ieor(nran0,ishft(nran0,-17)) nran0=ieor(nran0,ishft(nran0,5)) rans=ieor(nran0,rans) harvest=amm*merge(rans,not(rans), rans<0 ) --- 10,16 ---- jran0=kran0 kran0=rans nran0=ieor(nran0,ishft(nran0,13)) ! nran0=ieor(nran0,iand(ishft(nran0,-17),32767_k4b)) nran0=ieor(nran0,ishft(nran0,5)) rans=ieor(nran0,rans) harvest=amm*merge(rans,not(rans), rans<0 ) *************** *** 23,29 **** REAL(SP), DIMENSION(:), INTENT(OUT) :: harvest INTEGER(K4B) :: n n=size(harvest) ! if (lenran < n+1) call ran_init(n+1) ranv(1:n)=iran(1:n)-kran(1:n) where (ranv(1:n) < 0) ranv(1:n)=ranv(1:n)+2147483579_k4b iran(1:n)=jran(1:n) --- 23,29 ---- REAL(SP), DIMENSION(:), INTENT(OUT) :: harvest INTEGER(K4B) :: n n=size(harvest) ! if (lenran < n+1) call ran_init(n+1_k4b) ranv(1:n)=iran(1:n)-kran(1:n) where (ranv(1:n) < 0) ranv(1:n)=ranv(1:n)+2147483579_k4b iran(1:n)=jran(1:n) *************** *** 30,36 **** jran(1:n)=kran(1:n) kran(1:n)=ranv(1:n) nran(1:n)=ieor(nran(1:n),ishft(nran(1:n),13)) ! nran(1:n)=ieor(nran(1:n),ishft(nran(1:n),-17)) nran(1:n)=ieor(nran(1:n),ishft(nran(1:n),5)) ranv(1:n)=ieor(nran(1:n),ranv(1:n)) harvest=amm*merge(ranv(1:n),not(ranv(1:n)), ranv(1:n)<0 ) --- 30,36 ---- jran(1:n)=kran(1:n) kran(1:n)=ranv(1:n) nran(1:n)=ieor(nran(1:n),ishft(nran(1:n),13)) ! nran(1:n)=ieor(nran(1:n),iand(ishft(nran(1:n),-17),32767_k4b)) nran(1:n)=ieor(nran(1:n),ishft(nran(1:n),5)) ranv(1:n)=ieor(nran(1:n),ranv(1:n)) harvest=amm*merge(ranv(1:n),not(ranv(1:n)), ranv(1:n)<0 ) diff -c /b2/nrf90/f90/ran1.f90 ./ran1.f90 *** /b2/nrf90/f90/ran1.f90 Tue Apr 11 21:21:18 1995 --- ./ran1.f90 Mon May 05 03:22:29 1997 *************** *** 4,10 **** iran0,jran0,kran0,nran0,mran0,rans IMPLICIT NONE REAL(SP), INTENT(OUT) :: harvest ! if (lenran < 1) call ran_init(1) rans=iran0-kran0 if (rans < 0) rans=rans+2147483579_k4b iran0=jran0 --- 4,10 ---- iran0,jran0,kran0,nran0,mran0,rans IMPLICIT NONE REAL(SP), INTENT(OUT) :: harvest ! if (lenran < 1) call ran_init(1_k4b) rans=iran0-kran0 if (rans < 0) rans=rans+2147483579_k4b iran0=jran0 *************** *** 11,23 **** jran0=kran0 kran0=rans nran0=ieor(nran0,ishft(nran0,13)) ! nran0=ieor(nran0,ishft(nran0,-17)) nran0=ieor(nran0,ishft(nran0,5)) if (nran0 == 1) nran0=270369_k4b mran0=ieor(mran0,ishft(mran0,5)) ! mran0=ieor(mran0,ishft(mran0,-13)) mran0=ieor(mran0,ishft(mran0,6)) ! rans=ieor(nran0,rans)+mran0 harvest=amm*merge(rans,not(rans), rans<0 ) END SUBROUTINE ran1_s --- 11,23 ---- jran0=kran0 kran0=rans nran0=ieor(nran0,ishft(nran0,13)) ! nran0=ieor(nran0,iand(ishft(nran0,-17),32767_k4b)) nran0=ieor(nran0,ishft(nran0,5)) if (nran0 == 1) nran0=270369_k4b mran0=ieor(mran0,ishft(mran0,5)) ! mran0=ieor(mran0,iand(ishft(mran0,-13),524287_k4b)) mran0=ieor(mran0,ishft(mran0,6)) ! rans=ieor(ieor(nran0,rans)+mran0,0_k4b) harvest=amm*merge(rans,not(rans), rans<0 ) END SUBROUTINE ran1_s *************** *** 29,35 **** REAL(SP), DIMENSION(:), INTENT(OUT) :: harvest INTEGER(K4B) :: n n=size(harvest) ! if (lenran < n+1) call ran_init(n+1) ranv(1:n)=iran(1:n)-kran(1:n) where (ranv(1:n) < 0) ranv(1:n)=ranv(1:n)+2147483579_k4b iran(1:n)=jran(1:n) --- 29,35 ---- REAL(SP), DIMENSION(:), INTENT(OUT) :: harvest INTEGER(K4B) :: n n=size(harvest) ! if (lenran < n+1) call ran_init(n+1_k4b) ranv(1:n)=iran(1:n)-kran(1:n) where (ranv(1:n) < 0) ranv(1:n)=ranv(1:n)+2147483579_k4b iran(1:n)=jran(1:n) *************** *** 36,47 **** jran(1:n)=kran(1:n) kran(1:n)=ranv(1:n) nran(1:n)=ieor(nran(1:n),ishft(nran(1:n),13)) ! nran(1:n)=ieor(nran(1:n),ishft(nran(1:n),-17)) nran(1:n)=ieor(nran(1:n),ishft(nran(1:n),5)) where (nran(1:n) == 1) nran(1:n)=270369_k4b mran(1:n)=ieor(mran(1:n),ishft(mran(1:n),5)) ! mran(1:n)=ieor(mran(1:n),ishft(mran(1:n),-13)) mran(1:n)=ieor(mran(1:n),ishft(mran(1:n),6)) ! ranv(1:n)=ieor(nran(1:n),ranv(1:n))+mran(1:n) harvest=amm*merge(ranv(1:n),not(ranv(1:n)), ranv(1:n)<0 ) END SUBROUTINE ran1_v --- 36,47 ---- jran(1:n)=kran(1:n) kran(1:n)=ranv(1:n) nran(1:n)=ieor(nran(1:n),ishft(nran(1:n),13)) ! nran(1:n)=ieor(nran(1:n),iand(ishft(nran(1:n),-17),32767_k4b)) nran(1:n)=ieor(nran(1:n),ishft(nran(1:n),5)) where (nran(1:n) == 1) nran(1:n)=270369_k4b mran(1:n)=ieor(mran(1:n),ishft(mran(1:n),5)) ! mran(1:n)=ieor(mran(1:n),iand(ishft(mran(1:n),-13),524287_k4b)) mran(1:n)=ieor(mran(1:n),ishft(mran(1:n),6)) ! ranv(1:n)=ieor(ieor(nran(1:n),ranv(1:n))+mran(1:n),0_k4b) harvest=amm*merge(ranv(1:n),not(ranv(1:n)), ranv(1:n)<0 ) END SUBROUTINE ran1_v diff -c /b2/nrf90/f90/ran2.f90 ./ran2.f90 *** /b2/nrf90/f90/ran2.f90 Fri Feb 17 19:11:14 1995 --- ./ran2.f90 Mon May 05 03:22:29 1997 *************** *** 4,10 **** iran0,jran0,kran0,nran0,mran0,rans IMPLICIT NONE REAL(SP), INTENT(OUT) :: harvest ! if (lenran < 1) call ran_init(1) rans=iran0-kran0 if (rans < 0) rans=rans+2147483579_k4b iran0=jran0 --- 4,10 ---- iran0,jran0,kran0,nran0,mran0,rans IMPLICIT NONE REAL(SP), INTENT(OUT) :: harvest ! if (lenran < 1) call ran_init(1_k4b) rans=iran0-kran0 if (rans < 0) rans=rans+2147483579_k4b iran0=jran0 *************** *** 11,22 **** jran0=kran0 kran0=rans nran0=ieor(nran0,ishft(nran0,13)) ! nran0=ieor(nran0,ishft(nran0,-17)) nran0=ieor(nran0,ishft(nran0,5)) ! rans=iand(mran0,65535) ! mran0=ishft(3533*ishft(mran0,-16)+rans,16)+ & ! 3533*rans+820265819_k4b ! rans=ieor(nran0,kran0)+mran0 harvest=amm*merge(rans,not(rans), rans<0 ) END SUBROUTINE ran2_s --- 11,23 ---- jran0=kran0 kran0=rans nran0=ieor(nran0,ishft(nran0,13)) ! nran0=ieor(nran0,iand(ishft(nran0,-17),32767_k4b)) nran0=ieor(nran0,ishft(nran0,5)) ! rans=iand(mran0,65535_k4b) ! mran0=ishft(3533*iand(ishft(mran0,-16),65535_k4b)+ & ! rans,16)+3533*rans+820265819 ! mran0=ieor(mran0,0_k4b) ! rans=ieor(ieor(nran0,kran0)+mran0,0_k4b) harvest=amm*merge(rans,not(rans), rans<0 ) END SUBROUTINE ran2_s *************** *** 28,34 **** REAL(SP), DIMENSION(:), INTENT(OUT) :: harvest INTEGER(K4B) :: n n=size(harvest) ! if (lenran < n+1) call ran_init(n+1) ranv(1:n)=iran(1:n)-kran(1:n) where (ranv(1:n) < 0) ranv(1:n)=ranv(1:n)+2147483579_k4b iran(1:n)=jran(1:n) --- 29,35 ---- REAL(SP), DIMENSION(:), INTENT(OUT) :: harvest INTEGER(K4B) :: n n=size(harvest) ! if (lenran < n+1) call ran_init(n+1_k4b) ranv(1:n)=iran(1:n)-kran(1:n) where (ranv(1:n) < 0) ranv(1:n)=ranv(1:n)+2147483579_k4b iran(1:n)=jran(1:n) *************** *** 35,45 **** jran(1:n)=kran(1:n) kran(1:n)=ranv(1:n) nran(1:n)=ieor(nran(1:n),ishft(nran(1:n),13)) ! nran(1:n)=ieor(nran(1:n),ishft(nran(1:n),-17)) nran(1:n)=ieor(nran(1:n),ishft(nran(1:n),5)) ! ranv(1:n)=iand(mran(1:n),65535) ! mran(1:n)=ishft(3533*ishft(mran(1:n),-16)+ranv(1:n),16)+ & ! 3533*ranv(1:n)+820265819_k4b ! ranv(1:n)=ieor(nran(1:n),kran(1:n))+mran(1:n) harvest=amm*merge(ranv(1:n),not(ranv(1:n)), ranv(1:n)<0 ) END SUBROUTINE ran2_v --- 36,47 ---- jran(1:n)=kran(1:n) kran(1:n)=ranv(1:n) nran(1:n)=ieor(nran(1:n),ishft(nran(1:n),13)) ! nran(1:n)=ieor(nran(1:n),iand(ishft(nran(1:n),-17),32767_k4b)) nran(1:n)=ieor(nran(1:n),ishft(nran(1:n),5)) ! ranv(1:n)=iand(mran(1:n),65535_k4b) ! mran(1:n)=ishft(3533*iand(ishft(mran(1:n),-16),65535_k4b)+ & ! ranv(1:n),16)+3533*ranv(1:n)+820265819 ! mran(1:n)=ieor(mran(1:n),0_k4b) ! ranv(1:n)=ieor(ieor(nran(1:n),kran(1:n))+mran(1:n),0_k4b) harvest=amm*merge(ranv(1:n),not(ranv(1:n)), ranv(1:n)<0 ) END SUBROUTINE ran2_v diff -c /b2/nrf90/f90/ran3.f90 ./ran3.f90 *** /b2/nrf90/f90/ran3.f90 Fri Feb 17 19:11:15 1995 --- ./ran3.f90 Mon May 05 03:22:29 1997 *************** *** 4,17 **** IMPLICIT NONE REAL(SP), INTENT(OUT) :: harvest INTEGER(K4B) :: temp ! if (lenran < 1) call ran_init(1) nran0=ieor(nran0,ishft(nran0,13)) ! nran0=ieor(nran0,ishft(nran0,-17)) nran0=ieor(nran0,ishft(nran0,5)) if (nran0 == 1) nran0=270369_k4b rans=nran0 mran0=ieor(mran0,ishft(mran0,5)) ! mran0=ieor(mran0,ishft(mran0,-13)) mran0=ieor(mran0,ishft(mran0,6)) temp=mran0 call ran_hash(temp,rans) --- 4,17 ---- IMPLICIT NONE REAL(SP), INTENT(OUT) :: harvest INTEGER(K4B) :: temp ! if (lenran < 1) call ran_init(1_k4b) nran0=ieor(nran0,ishft(nran0,13)) ! nran0=ieor(nran0,iand(ishft(nran0,-17),32767_k4b)) nran0=ieor(nran0,ishft(nran0,5)) if (nran0 == 1) nran0=270369_k4b rans=nran0 mran0=ieor(mran0,ishft(mran0,5)) ! mran0=ieor(mran0,iand(ishft(mran0,-13),524287_k4b)) mran0=ieor(mran0,ishft(mran0,6)) temp=mran0 call ran_hash(temp,rans) *************** *** 26,39 **** INTEGER(K4B), DIMENSION(size(harvest)) :: temp INTEGER(K4B) :: n n=size(harvest) ! if (lenran < n+1) call ran_init(n+1) nran(1:n)=ieor(nran(1:n),ishft(nran(1:n),13)) ! nran(1:n)=ieor(nran(1:n),ishft(nran(1:n),-17)) nran(1:n)=ieor(nran(1:n),ishft(nran(1:n),5)) where (nran(1:n) == 1) nran(1:n)=270369_k4b ranv(1:n)=nran(1:n) mran(1:n)=ieor(mran(1:n),ishft(mran(1:n),5)) ! mran(1:n)=ieor(mran(1:n),ishft(mran(1:n),-13)) mran(1:n)=ieor(mran(1:n),ishft(mran(1:n),6)) temp=mran(1:n) call ran_hash(temp,ranv(1:n)) --- 26,39 ---- INTEGER(K4B), DIMENSION(size(harvest)) :: temp INTEGER(K4B) :: n n=size(harvest) ! if (lenran < n+1) call ran_init(n+1_k4b) nran(1:n)=ieor(nran(1:n),ishft(nran(1:n),13)) ! nran(1:n)=ieor(nran(1:n),iand(ishft(nran(1:n),-17),32767_k4b)) nran(1:n)=ieor(nran(1:n),ishft(nran(1:n),5)) where (nran(1:n) == 1) nran(1:n)=270369_k4b ranv(1:n)=nran(1:n) mran(1:n)=ieor(mran(1:n),ishft(mran(1:n),5)) ! mran(1:n)=ieor(mran(1:n),iand(ishft(mran(1:n),-13),524287_k4b)) mran(1:n)=ieor(mran(1:n),ishft(mran(1:n),6)) temp=mran(1:n) call ran_hash(temp,ranv(1:n)) diff -c /b2/nrf90/f90/ran_state.f90 ./ran_state.f90 *** /b2/nrf90/f90/ran_state.f90 Thu Dec 21 16:40:11 1995 --- ./ran_state.f90 Mon May 05 03:22:29 1997 *************** *** 13,18 **** --- 13,47 ---- MODULE PROCEDURE ran_hash_s, ran_hash_v END INTERFACE CONTAINS + FUNCTION reallocate_kv(p,n) + INTEGER(K4B), DIMENSION(:), POINTER :: p, reallocate_kv + INTEGER(K4B), INTENT(IN) :: n + INTEGER(K4B) :: nold,ierr + allocate(reallocate_kv(n),stat=ierr) + ! if (ierr /= 0) call & + ! nrerror('reallocate_kv: problem in attempt to allocate memory') + if (.not. associated(p)) RETURN + nold=size(p) + reallocate_kv(1:min(nold,n))=p(1:min(nold,n)) + deallocate(p) + END FUNCTION reallocate_kv + + FUNCTION reallocate_km(p,n,m) + INTEGER(K4B), DIMENSION(:,:), POINTER :: p, reallocate_km + INTEGER(K4B), INTENT(IN) :: n,m + INTEGER(K4B) :: nold,mold,ierr + allocate(reallocate_km(n,m),stat=ierr) + ! if (ierr /= 0) call & + ! nrerror('reallocate_km: problem in attempt to allocate memory') + if (.not. associated(p)) RETURN + nold=size(p,1) + mold=size(p,2) + reallocate_km(1:min(nold,n),1:min(mold,m))=& + p(1:min(nold,n),1:min(mold,m)) + deallocate(p) + END FUNCTION reallocate_km + + !BL SUBROUTINE ran_init(length) USE nrtype; USE nrutil, ONLY : arth,nrerror,reallocate *************** *** 23,29 **** hgt=hg if (hg /= 2147483647) call nrerror('ran_init: arith assump 1 fails') if (hgng >= 0) call nrerror('ran_init: arith assump 2 fails') ! if (hgt+1 /= hgng) call nrerror('ran_init: arith assump 3 fails') if (not(hg) >= 0) call nrerror('ran_init: arith assump 4 fails') if (not(hgng) < 0) call nrerror('ran_init: arith assump 5 fails') if (hg+hgng >= 0) call nrerror('ran_init: arith assump 6 fails') --- 52,58 ---- hgt=hg if (hg /= 2147483647) call nrerror('ran_init: arith assump 1 fails') if (hgng >= 0) call nrerror('ran_init: arith assump 2 fails') ! ! if (hgt+1 /= hgng) call nrerror('ran_init: arith assump 3 fails') if (not(hg) >= 0) call nrerror('ran_init: arith assump 4 fails') if (not(hgng) < 0) call nrerror('ran_init: arith assump 5 fails') if (hg+hgng >= 0) call nrerror('ran_init: arith assump 6 fails') *************** *** 31,38 **** if (not(0_k4b) >= 0) call nrerror('ran_init: arith assump 8 fails') if (not(1_k4b) >= 0) call nrerror('ran_init: arith assump 9 fails') if (lenran > 0) then ! ranseeds=>reallocate(ranseeds,length,5) ! ranv=>reallocate(ranv,length-1) new=lenran+1 else allocate(ranseeds(length,5)) --- 60,67 ---- if (not(0_k4b) >= 0) call nrerror('ran_init: arith assump 8 fails') if (not(1_k4b) >= 0) call nrerror('ran_init: arith assump 9 fails') if (lenran > 0) then ! ranseeds=>reallocate_km(ranseeds,length,5_k4b) ! ranv=>reallocate_kv(ranv,length-1_k4b) new=lenran+1 else allocate(ranseeds(length,5)) *************** *** 43,49 **** call nrerror('ran_init: arth assump 10 fails') end if ranseeds(new:,1)=seq ! ranseeds(new:,2:5)=spread(arth(new,1,size(ranseeds(new:,1))),2,4) do j=1,4 call ran_hash(ranseeds(new:,j),ranseeds(new:,j+1)) end do --- 72,78 ---- call nrerror('ran_init: arth assump 10 fails') end if ranseeds(new:,1)=seq ! ranseeds(new:,2:5)=spread(arth(int(new,i4b),1,size(ranseeds(new:,1))),2,4) do j=1,4 call ran_hash(ranseeds(new:,j),ranseeds(new:,j+1)) end do *************** *** 112,118 **** do j=1,4 is=ir ir=ieor(ir,ishft(ir,5))+1422217823 ! ir=ieor(ir,ishft(ir,-16))+1842055030 ir=ieor(ir,ishft(ir,9))+80567781 ir=ieor(il,ir) il=is --- 141,147 ---- do j=1,4 is=ir ir=ieor(ir,ishft(ir,5))+1422217823 ! ir=ieor(ir,iand(ishft(ir,-16),65535_k4b))+1842055030 ir=ieor(ir,ishft(ir,9))+80567781 ir=ieor(il,ir) il=is *************** *** 127,133 **** do j=1,4 is=ir ir=ieor(ir,ishft(ir,5))+1422217823 ! ir=ieor(ir,ishft(ir,-16))+1842055030 ir=ieor(ir,ishft(ir,9))+80567781 ir=ieor(il,ir) il=is --- 156,162 ---- do j=1,4 is=ir ir=ieor(ir,ishft(ir,5))+1422217823 ! ir=ieor(ir,iand(ishft(ir,-16),65535_k4b))+1842055030 ir=ieor(ir,ishft(ir,9))+80567781 ir=ieor(il,ir) il=is