1
subroutine i_mput(fname)
4
integer topk,rhsk,topl,fd
5
logical checkrhs,checklhs,getsmat,checkval,getscalar
18
if(.not.checkrhs(fname,1,3)) return
19
if(.not.checklhs(fname,1,1)) return
21
c checking variable fd (number 3)
26
if(.not.getscalar(fname,top,top-rhs+3,lr3)) return
30
c checking variable res (number 1)
32
il=iadr(lstk(top-rhs+1))
33
n1=istk(il+1)*istk(il+2)
37
c checking variable type (number 2)
40
ityp(1:2)='l'//char(0)
43
if(.not.getsmat(fname,top,top-rhs+2,m2,n2,1,1,lr2,nlr2))
45
if(.not.checkval(fname,m2*n2,1)) return
46
call cvstr(nlr2,istk(lr2),ityp,1)
47
ityp(nlr2+1:nlr2+1)=char(0)
50
if(ityp(1:1).eq.'u') then
58
if(ityp(ik:ik).eq.'c') then
60
elseif(ityp(ik:ik).eq.'s') then
62
elseif(ityp(ik:ik).eq.'l') then
65
buf='Incorrect integer type: '//ityp
69
c converting data if necessary
72
if(mod(it,10).lt.mod(it1,10)) then
74
err=sadr(l+memused(it1,n1))-lstk(bot)
79
call tpconv(it,it1,n1, istk(l),inc,istk(l),inc)
84
call mputi(fd,istk(l),n1,ityp,err)
86
buf = fname // ' Internal Error'
93
lstk(top+1)=sadr(il+1)