subroutine dfault (iparm,rparm) c c ... dfault sets the default values of iparm and rparm. c c ... parameters -- c c iparm c and c rparm arrays specifying options and tolerances c c c ... specifications for parameters c integer iparm(30) dimension rparm(30) c c *** begin -- package common c common / itcom4 / keygs, srelpr, keyzer c c *** end -- package common c c description of variables in common blocks in main routine c c srelpr - computer precision (approx.) c if installer of package does not know srelpr value, c an approximate value can be determined from a simple c fortran program such as c c srelpr = 1.0 c 2 srelpr = 0.5*srelpr c temp = srelpr + 1.0 c if (temp .gt. 1.0) go to 2 c srelpr = 2.0*srelpr c write (6,3) srelpr c 3 format (1x,'srelpr = ',e20.10) c stop c end c c c some values are- c c srelpr = 7.1e-15 for cray x-mp (approx.) 2**-47 c = 1.49e-8 for dec 10 (approx.) 2**-26 c = 1.192e-7 for vax 11/780 (approx) 2**-23 c = 4.768e-7 for ibm 370/158 c c *** should be changed for other machines *** c c to facilitate convergence, rparm(1) should be set to c 500.*srelpr or larger c c srelpr = 7.1e-15 c c ... keygs is a flag to specify how gather/scatter operations c are performed. c = 1 gather explicitly into a workspace vector c = 2 gather implicitly using indirect addressing c c keygs = 1 c c ... keyzer is a flag to specify if memory has been zeroed out. c i.e., is the operation 0.0 * indefinite = 0.0 legal c = 0 not legal c = 1 legal c keyzer = 0 c c iparm(1) = 2 iparm(2) = 100 iparm(3) = 0 iparm(4) = 6 iparm(5) = 0 iparm(6) = 1 iparm(7) = 1 iparm(8) = 1 iparm(9) = 5 iparm(10) = 100000 iparm(11) = 0 iparm(12) = 2 iparm(13) = 0 iparm(14) = 0 iparm(15) = 1 iparm(16) = 0 iparm(17) = 0 iparm(18) = 2 iparm(19) = -1 iparm(20) = -1 iparm(21) = 1 iparm(22) = 1 iparm(23) = 2 iparm(24) = 0 iparm(25) = 1 c rparm(1) = 1.e-6 rparm(2) = 2.0 rparm(3) = 1.0 rparm(4) = 0.75 rparm(5) = 0.75 rparm(6) = 0.0 rparm(7) = 0.0 rparm(8) = 0.0 rparm(9) = 1.0 rparm(10) = 0.0 rparm(11) = 0.25 rparm(12) = 0.0 rparm(13) = 0.0 rparm(14) = 0.0 rparm(15) = 500.0*srelpr rparm(16) = 0.0 c return end function timer (timdmy) c c ... timer is a routine to return the execution time in c ... seconds. timer uses the fortran timing routine second. c c ... parameters -- c c timdmy dummy argument c c c note -- on many computer systems there is a cpu-time subprogram c which is more accurate than the fortran routine second. c c c use the following when using second c c timer = second (0.0) c c c ********************************************* c ** ** c ** this routine is not portable. ** c ** ** c ********************************************* c c ... specifications for parameters c c timer = second () c c real tarray(2) c call etime (tarray) c timer = tarray(1) c return end