c sundum.f is used on the suns to provide translations of c cray subroutine names. c ranf no longer used: c real*8 function ranf() c data i /0/ c ranf=ran(i) c end integer function ishell(command) c spawns a shell to execute a command. c Equivalent routines: "system" on SUN & DEC alpha, ishell on Cray. character command*(*) ishell=system(command) return end c NAG TRANSLATION: c The NAG convection is that "single precision" routines end with an 'e', c while "double precision" routines end with an 'f'. c Unfortunately, single and double precision have different meanings c on CRAYs and the rest of the world. CRAYs are 64 bit machines so c single precision means real*8 and double precision means real*16, c while on most other machines single precision means real*4 and c double precision means real*8. c c Our standard practice will be to use real*8 NAG routines, which c means *e names on the CRAYs and *f names on the SUNs. The routines c below provide translations from the *e names to *f names, allowing c the calling program to be more portable. The subroutine arguments c in the calling program should be defined as real*8 (and i*4 for c integers), or be compiled with the "-r8 -i4" compiler switch. subroutine f01aaE(a,ia,n,unit,iunit,work,ifail) implicit none integer ia,n,iunit,ifail real*8 a(ia*ia),unit(ia*ia),work(ia) call f01aaf(a,ia,n,unit,iunit,work,ifail) return end real*8 function s21bbE(x,y,z,ifail) implicit none real*8 x,y,z real*8 s21bbf integer ifail s21bbE=s21bbf(x,y,z,ifail) return end real*8 function s21bcE(x,y,z,ifail) implicit none real*8 x,y,z real*8 s21bcf integer ifail s21bcE=s21bcf(x,y,z,ifail) return end real*8 function s18cfE(x,ifail) implicit none real*8 x real*8 s18cff integer ifail s18cfE=s18cff(x,ifail) return end real*8 function s18ceE(x,ifail) implicit none real*8 x real*8 s18cef integer ifail s18ceE=s18cef(x,ifail) return end subroutine c06fpE(m,n,x,init,trig,work,ifail) implicit none integer m,n,ifail real*8 x(m*n),trig(2*n),work(2*m*n) character*1 init call c06fpf(m,n,x,init,trig,work,ifail) return end subroutine c06fqE(m,n,x,init,trig,work,ifail) implicit none integer m,n,ifail real*8 x(m*n),trig(2*n),work(2*m*n) character*1 init call c06fqf(m,n,x,init,trig,work,ifail) return end subroutine c06frE(m,n,x,y,init,trig,work,ifail) implicit none integer m,n,ifail real*8 x(m*n),y(m*n),trig(2*n),work(2*m*n) character*1 init call c06frf(m,n,x,y,init,trig,work,ifail) return end subroutine c06fcE(x,y,n,work,ifail) implicit none integer n,ifail real*8 x(n),y(n),work(n) call c06fcf(x,y,n,work,ifail) return end subroutine c06gcE(y,n,ifail) implicit none integer n,ifail real*8 y(n) call c06gcf(y,n,ifail) return end character*30 function x05abE(itime) implicit none integer itime character*30 x05abf external x05abf x05abE=x05abf(itime) return end subroutine x05aaE(itime) implicit none integer itime(7) external x05aaf c call x05aaf(itime) return end subroutine g05ccE implicit none call g05ccf return end subroutine g05cbE(iseed) implicit none integer iseed call g05cbf(iseed) return end real*8 function g05caE(x) implicit none real*8 x,g05caf g05caE=g05caf(x) return end