1 SUBROUTINE phrtsd(phrase,seed1,seed2)
39 parameter(table=
'abcdefghijklmnopqrstuvwxyz'//
40 +
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'//
'0123456789'//
41 +
'!@#$%^&*()_+[];:''"<>?,./')
43 parameter(twop30=1073741824)
52 INTEGER*4 i,ichr,j,lphr,idxval
55 INTEGER*4 shift(0:4),values(5)
70 DATA shift/1,64,4096,262144,16777216/
78 idxval = index(table,phrase(i:i))
79 ichr =
mod(idxval,sixty4)
80 IF (ichr.EQ.0) ichr = 63
83 IF (values(j).LT.1) values(j) = values(j) + 63
86 seed1 =
mod(seed1+shift(j-1)*values(j),twop30)
87 seed2 =
mod(seed2+shift(j-1)*values(6-j),twop30)
subroutine phrtsd(phrase, seed1, seed2)