#include "machine.h"Include dependency graph for sciblk2i.c:

Go to the source code of this file.
Functions | |
| integer C2F() | scierr () |
| void C2F() | itosci () |
| void C2F() | dtosci () |
| void C2F() | vvtosci () |
| void C2F() | scitovv () |
| void C2F() | skipvars () |
| void C2F() | scitod () |
| void C2F() | list2vars () |
| void C2F() | ltopadj () |
| void C2F() | scifunc () |
| int C2F() | mklist () |
| void | sciblk2i (integer *flag, integer *nevprt,*t, residual, xd, x, integer *nx, z, integer *nz, tvec, integer *ntvec, rpar, integer *nrpar, ipar, integer *nipar, inptr, insz, integer *nin, outptr, outsz, integer *nout) |
| void C2F() dtosci | ( | ) |
| void C2F() itosci | ( | ) |
| void C2F() list2vars | ( | ) |
| void C2F() ltopadj | ( | ) |
| int C2F() mklist | ( | ) |
| void sciblk2i | ( | integer * | flag, | |
| integer* | nevprt, | |||
| * | t, | |||
| residual | , | |||
| xd | , | |||
| x | , | |||
| integer* | nx, | |||
| z | , | |||
| integer* | nz, | |||
| tvec | , | |||
| integer* | ntvec, | |||
| rpar | , | |||
| integer* | nrpar, | |||
| ipar | , | |||
| integer* | nipar, | |||
| inptr | , | |||
| insz | , | |||
| integer* | nin, | |||
| outptr | , | |||
| outsz | , | |||
| integer* | nout | |||
| ) |
Definition at line 18 of file sciblk2i.c.
References C2F, dtosci(), err, itosci(), list2vars(), ltopadj(), mklist(), mlhs, mrhs, nu, scierr(), scifunc(), scitod(), scitovv(), skip, skipvars(), vvtosci(), and y.
00025 { 00026 int k; 00027 double *y; 00028 double *u; 00029 /* int nev,ic;*/ 00030 integer one=1,skip; 00031 integer nu,ny; 00032 integer mlhs=6,mrhs=9; 00033 integer ltop; 00034 /* 00035 00036 [y, x, z, tvec,xd]=func(flag,nevprt,t,xd,x,z,rpar,ipar,u) 00037 [y, x, z, tvec,res]=func(flag,nevprt,t,xd,x,z,rpar,ipar,u) 00038 */ 00039 C2F(itosci)(flag,&one,&one); 00040 if (C2F(scierr)()!=0) goto err; 00041 C2F(itosci)(nevprt,&one,&one); 00042 if (C2F(scierr)()!=0) goto err; 00043 C2F(dtosci)(t,&one,&one); 00044 if (C2F(scierr)()!=0) goto err; 00045 C2F(dtosci)(xd,nx,&one); 00046 if (C2F(scierr)()!=0) goto err; 00047 C2F(dtosci)(x,nx,&one); 00048 if (C2F(scierr)()!=0) goto err; 00049 C2F(vvtosci)(z,nz); 00050 if (C2F(scierr)()!=0) goto err; 00051 C2F(vvtosci)(rpar,nrpar); 00052 if (C2F(scierr)()!=0) goto err; 00053 C2F(itosci)(ipar,nipar,&one); 00054 if (C2F(scierr)()!=0) goto err; 00055 for (k=0;k<*nin;k++) { 00056 u=(double *)inptr[k]; 00057 nu=insz[k]; 00058 C2F(dtosci)(u,&nu,&one); 00059 if (C2F(scierr)()!=0) goto err; 00060 } 00061 C2F(mklist)(nin); 00062 00063 00064 C2F(scifunc)(&mlhs,&mrhs); 00065 if (C2F(scierr)()!=0) goto err; 00066 00067 switch (*flag) { 00068 case 1 : 00069 /* y computation */ 00070 { 00071 skip=4; 00072 C2F(skipvars)(&skip); 00073 } 00074 if (*nout==0) { 00075 skip=1; 00076 C2F(skipvars)(&skip); 00077 } 00078 else { 00079 C2F(list2vars)(nout,<op); 00080 if (C2F(scierr)()!=0) goto err; 00081 for (k=*nout-1;k>=0;k--) { 00082 y=(double *)outptr[k]; 00083 ny=outsz[k]; 00084 C2F(scitod)(y,&ny,&one); 00085 if (C2F(scierr)()!=0) goto err; 00086 } 00087 /* list2vars has changed the Lstk(top+1) value. 00088 reset the correct value */ 00089 C2F(ltopadj)(<op); 00090 } 00091 break; 00092 case 0 : 00093 /* residual computation */ 00094 { 00095 C2F(scitod)(residual,nx,&one); 00096 skip=4; 00097 C2F(skipvars)(&skip); 00098 break; 00099 } 00100 case 2 : 00101 /* continuous and discrete state jump */ 00102 { 00103 C2F(scitod)(xd,nx,&one); 00104 skip=1; 00105 C2F(skipvars)(&skip); 00106 C2F(scitovv)(z,nz); 00107 C2F(scitod)(x,nx,&one); 00108 skip=1; 00109 C2F(skipvars)(&skip); 00110 } 00111 break; 00112 case 3 : 00113 /* output event */ 00114 skip=1; 00115 C2F(skipvars)(&skip); 00116 C2F(scitod)(tvec,ntvec,&one); 00117 skip=3; 00118 C2F(skipvars)(&skip); 00119 break; 00120 case 4 : 00121 C2F(scitod)(xd,nx,&one); 00122 skip=1;C2F(skipvars)(&skip); 00123 C2F(scitovv)(z,nz); 00124 C2F(scitod)(x,nx,&one); 00125 skip=1;C2F(skipvars)(&skip); 00126 break; 00127 case 5 : 00128 C2F(scitod)(xd,nx,&one); 00129 skip=1;C2F(skipvars)(&skip); 00130 C2F(scitovv)(z,nz); 00131 C2F(scitod)(x,nx,&one); 00132 skip=1; 00133 C2F(skipvars)(&skip); 00134 break; 00135 case 6 : 00136 C2F(scitod)(xd,nx,&one); 00137 skip=1; 00138 C2F(skipvars)(&skip); 00139 C2F(scitovv)(z,nz); 00140 C2F(scitod)(x,nx,&one); 00141 if (*nout==0) { 00142 skip=1; 00143 C2F(skipvars)(&skip); 00144 } 00145 else { 00146 C2F(list2vars)(nout,<op); 00147 if (C2F(scierr)()!=0) goto err; 00148 for (k=*nout-1;k>=0;k--) { 00149 y=(double *)outptr[k]; 00150 ny=outsz[k]; 00151 C2F(scitod)(y,&ny,&one); 00152 if (C2F(scierr)()!=0) goto err; 00153 } 00154 /* list2vars has changed the Lstk(top+1) value. 00155 reset the correct value */ 00156 C2F(ltopadj)(<op); 00157 } 00158 break; 00159 } 00160 return; 00161 err: 00162 *flag=-1; 00163 }
Here is the call graph for this function:

| integer C2F() scierr | ( | ) |
| void C2F() scifunc | ( | ) |
| void C2F() scitod | ( | ) |
| void C2F() scitovv | ( | ) |
| void C2F() skipvars | ( | ) |
| void C2F() vvtosci | ( | ) |
1.5.1