23#include "hardware.inc"
30#if CPP_mach != CPP_macosx64
35#if CPP_mach == CPP_w95 || CPP_mach == CPP_win64_spmd || CPP_mach == CPP_p4win64_spmd || CPP_mach == CPP_wnt || CPP_mach == CPP_wmr || CPP_mach == CPP_p4win64 || CPP_mach == CPP_p4win32
43#include <sys/resource.h>
63void (*
st_lecg) (
int * igtyp,
char * rootn,
int* rootlen,
int * nuvar,
my_real * pargeo);
65void (*
st_lecm) (
int* ilaw ,
char * rootn,
int* rootlen,
my_real* uparam ,
int* maxuparam ,
int* nuparam,
int* nuvar,
int* ifunc ,
int* maxfunc ,
int* mfunc ,
my_real* parmat,
int* unitab);
66void (*
st_lecr) (
int* irupt ,
char * rootn,
int* rootlen,
my_real* uparam ,
int* maxuparam ,
int* nuparam,
int* nuvar,
int* ifunc ,
int* maxfunc ,
int* mfunc ,
int*
id);
67void (*
st_lecm99) (
int * ilaw,
char * rootn,
int* rootlen,
int * iuser_law,
my_real * uparam ,
int * maxuparam,
int * nuparam,
int * nuvar,
int * ifunc,
int * maxfunc,
int * nfunc,
my_real * parmat);
68void (*
st_lecsen) (
int * typ,
char * rootn,
int* rootlen);
69void (*
st_riniuser) (
int *igtyp,
char * rootn,
int* rootlen,
int* nel,
int* iprop,
int * ix,
my_real *xl,
my_real *mass,
my_real *xiner,
my_real *stifn,
my_real *stifr,
my_real *vism ,
my_real *visr,
my_real *uvar,
int *nuvar);
70void (*
st_userwis) (
char * rootn,
int* rootlen,
int*numnod,
int * itab,
my_real *
x ,
my_real *v,
my_real *vr,
my_real *mass,
my_real *iner,
int *nuvar ,
int *nuvari ,
my_real *uvar ,
int *iuvar );
71void (*
st_userwis_ini) (
char * rootn,
int* rootlen,
int*iuparam,
int*numnod,
int * itab,
my_real *
x ,
my_real *v,
my_real *vr,
my_real *mass,
my_real *iner,
int *nuvar ,
int *nuvari ,
my_real *uvar ,
int *iuvar );
73 int *NEL ,
int *NUVAR ,
int *IPROP ,
int *IMAT ,
int *SOLID_ID,
my_real *TIME ,
my_real * TIMESTEP,
113#if CPP_mach == CPP_w95 || CPP_mach == CPP_win64_spmd || CPP_mach == CPP_p4win64_spmd || CPP_mach == CPP_wnt || CPP_mach == CPP_wmr || CPP_mach == CPP_p4win64 || CPP_mach == CPP_p4win32
119void _FCALL DYN_USERLIB_INIT (
char * libname,
int *size,
int * userlib_avail,
int * userlib_ver ,
int* iresp,
int * userlib_altname){
121 char* libn,current_dir;
124 char dllpath[10240],dllname[15000];
125 int result,dllpath_size;
132 if(*userlib_altname==0){
135 libname[*size+1 ]=
'i';
136 libname[*size+2 ]=
'n';
137 libname[*size+3 ]=
'6';
138 libname[*size+4 ]=
'4';
139 libname[*size+5 ]=
'_';
140 libname[*size+6 ]=
's';
141 libname[*size+7 ]=
'p';
142 libname[*size+8 ]=
'.';
143 libname[*size+9 ]=
'd';
144 libname[*size+10]=
'l';
145 libname[*size+11]=
'l';
149 libname[*size+1]=
'i';
150 libname[*size+2]=
'n';
151 libname[*size+3]=
'6';
152 libname[*size+4]=
'4';
153 libname[*size+5]=
'.';
154 libname[*size+6]=
'd';
155 libname[*size+7]=
'l';
156 libname[*size+8]=
'l';
160 libn = (
char * )malloc(
sizeof(
char)* *size+1);
161 for (i=0;i<*size;i++)libn[i]=libname[i];
166 for (i=0;i<*size;i++){
167 if (libn[i]==47 || libn[i]==92)has_path=1;
176 dllpath_size=GetEnvironmentVariable(
"RAD_USERLIB_LIBPATH",dllpath,10240);
177 if (dllpath_size > 0){
178 strcpy_s(dllname,15000,dllpath);
179 strcat_s(dllname,15000,
"\\");
180 strcat_s(dllname,15000,libn);
186 dllpath_size=GetCurrentDirectory(10240,dllpath);
187 strcpy_s(dllname,15000,dllpath);
188 strcat_s(dllname,15000,
"\\");
189 strcat_s(dllname,15000,libn);
195 dllpath_size=GetEnvironmentVariable(
"PATH",dllpath,10240);
196 SetDllDirectory(dllpath);
204 sprintf(rname,
"ST_LECG");
209 sprintf(rname,
"ST_LECGUSER");
214 sprintf(rname,
"ST_LECM");
219 sprintf(rname,
"ST_LECR");
224 sprintf(rname,
"ST_LECM99");
229 sprintf(rname,
"ST_LECSEN");
234 sprintf(rname,
"ST_RINIUSER");
239 sprintf(rname,
"ST_SINIUSR");
244 sprintf(rname,
"ST_USERWIS");
249 sprintf(rname,
"ST_USERWIS_INI");
254 sprintf(rname,
"ST_GET_USERBUF_VAR");
259 sprintf(rname,
"userlib_id");
268 sprintf(rname,
"set_callback");
275 if (err==0){ *userlib_avail = 1;}
287 void * callback_array[200];
295#if CPP_mach==CPP_macosx64
297void dyn_userlib_init_(
char * libname,
int *size,
int * userlib_avail,
int * userlib_ver ,
int* iresp,
int * userlib_altname){
308void dyn_userlib_init_(
char * libname,
int *size,
int * userlib_avail,
int * userlib_ver ,
int* iresp,
int * userlib_altname){
313 char * rad_userlib_libpath;
321 if(*userlib_altname==0){
325 strcpy(libname_c,
"linuxa64_sp.so");
327 strcpy(libname_c,
"linuxa64.so");
329 sz=strlen(libname_c);
330 for (i=0;i<sz;i++) { libname[*size + i ] = libname_c[i]; }
337 libname[*size+1 ]=
'i';
338 libname[*size+2 ]=
'n';
339 libname[*size+3 ]=
'u';
340 libname[*size+4 ]=
'x';
341 libname[*size+5 ]=
'6';
342 libname[*size+6 ]=
'4';
343 libname[*size+7 ]=
'_';
344 libname[*size+8 ]=
's';
345 libname[*size+9 ]=
'p';
346 libname[*size+10]=
'.';
347 libname[*size+11]=
's';
348 libname[*size+12]=
'o';
352 libname[*size+1]=
'i';
353 libname[*size+2]=
'n';
354 libname[*size+3]=
'u';
355 libname[*size+4]=
'x';
356 libname[*size+5]=
'6';
357 libname[*size+6]=
'4';
358 libname[*size+7]=
'.';
359 libname[*size+8]=
's';
360 libname[*size+9]=
'o';
366 libn = (
char * )malloc(
sizeof(
char)* *size+1);
367 for (i=0;i<*size;i++)libn[i]=libname[i];
372 for (i=0;i<*size;i++){
373 if (libn[i]==47 || libn[i]==92)has_path=1;
381 userlibhandle = dlopen(libn,RTLD_LAZY|RTLD_GLOBAL|RTLD_DEEPBIND);
386 rad_userlib_libpath=getenv(
"RAD_USERLIB_LIBPATH");
387 if (rad_userlib_libpath){
415 userlibhandle = dlopen(libn,RTLD_LAZY|RTLD_GLOBAL|RTLD_DEEPBIND);
426 sprintf(rname,
"st_lecg_");
431 sprintf(rname,
"st_lecguser_");
436 sprintf(rname,
"st_lecm_");
441 sprintf(rname,
"st_lecr_");
446 sprintf(rname,
"st_lecm99_");
451 sprintf(rname,
"st_lecsen_");
456 sprintf(rname,
"st_riniuser_");
461 sprintf(rname,
"st_siniusr_");
466 sprintf(rname,
"st_userwis_");
471 sprintf(rname,
"st_userwis_ini_");
477 sprintf(rname,
"userlib_id");
485 if (err==0){ *userlib_avail = 1;}
506 (*st_lecg)(igtyp,rootn,rootlen,nuvar,pargeo);
515 (*st_lecg)(igtyp,rootn,rootlen,nuvar,pargeo);
527 (*st_lecguser)(igtyp,rootn,rootlen,nuvar,pargeo);
536 (*st_lecguser)(igtyp,rootn,rootlen,nuvar,pargeo);
546void _FCALL ST_USERLIB_USERMAT(
int *MATNUM,
char* ROOTN,
int *
ROOTLEN,
my_real *UPARAM,
int *MAXUPARAM,
int *NUPARAM,
int *NUVAR,
int *IFUNC,
int *MAXFUNC,
int *MFUNC,
my_real *PARMAT,
int *UNITAB)
549 (*st_lecm)(MATNUM, ROOTN,
ROOTLEN,UPARAM, MAXUPARAM, NUPARAM, NUVAR, IFUNC, MAXFUNC, MFUNC, PARMAT,UNITAB);
555void st_userlib_usermat_(
int *MATNUM,
char *ROOTN,
int *
ROOTLEN,
my_real *UPARAM,
int * MAXUPARAM,
int *NUPARAM,
int *NUVAR,
int *IFUNC,
int * MAXFUNC,
int * MFUNC,
my_real *PARMAT,
int *UNITAB)
558 (*st_lecm)(MATNUM, ROOTN,
ROOTLEN,UPARAM, MAXUPARAM, NUPARAM, NUVAR, IFUNC, MAXFUNC, MFUNC, PARMAT,UNITAB);
567void _FCALL ST_USERLIB_LECM99(
int * ilaw,
char * rootn,
int* rootlen,
int * iuser_law,
my_real * uparam ,
int * maxuparam,
int * nuparam,
int * nuvar,
int * ifunc,
int * maxfunc,
int * nfunc,
my_real * parmat)
570 (*st_lecm99)(ilaw,rootn,rootlen,iuser_law,uparam,maxuparam,nuparam,nuvar,ifunc,maxfunc,nfunc,parmat);
575void st_userlib_lecm99_(
int * ilaw,
char * rootn,
int* rootlen,
int * iuser_law,
my_real * uparam ,
int * maxuparam,
int * nuparam,
int * nuvar,
int * ifunc,
int * maxfunc,
int * nfunc,
my_real * parmat)
578 (*st_lecm99)(ilaw,rootn,rootlen,iuser_law,uparam,maxuparam,nuparam,nuvar,ifunc,maxfunc,nfunc,parmat);
587void _FCALL ST_USERLIB_LECR(
int *RUPTID,
char *ROOTN,
int *
ROOTLEN,
my_real *UPARAM,
int *MAXUPARAM,
int *NUPARAM,
int *NUVAR,
int *IFUNC,
int *MAXFUNC,
int *MFUNC,
int *ID)
590 (*st_lecr)(RUPTID, ROOTN,
ROOTLEN,UPARAM, MAXUPARAM, NUPARAM, NUVAR, IFUNC, MAXFUNC, MFUNC, ID);
595void st_userlib_lecr_(
int *RUPTID,
char *ROOTN,
int *
ROOTLEN,
my_real *UPARAM,
int *MAXUPARAM,
int *NUPARAM,
int *NUVAR,
int *IFUNC,
int *MAXFUNC,
int *MFUNC,
int *ID)
598 (*st_lecr)(RUPTID, ROOTN,
ROOTLEN,UPARAM, MAXUPARAM, NUPARAM, NUVAR, IFUNC, MAXFUNC, MFUNC, ID);
611 (*st_lecsen)(typ,rootn,rootlen);
619 (*st_lecsen)(typ,rootn,rootlen);
633 (*st_riniuser)(igtyp,rootn,rootlen,nel,iprop,
634 ix,xl,mass,xiner,stifn,
635 stifr,vism ,visr,uvar,nuvar );
645 (*st_riniuser)(igtyp,rootn,rootlen,nel,iprop,
646 ix,xl,mass,xiner,stifn,
647 stifr,vism ,visr,uvar,nuvar );
656 int *NEL ,
int *NUVAR ,
int *IPROP ,
int *IMAT ,
int *SOLID_ID,
my_real *TIME ,
my_real * TIMESTEP,
679 (*st_siniusr)( ITYP,ROOTN,
ROOTLEN,
680 NEL ,NUVAR ,IPROP ,IMAT ,SOLID_ID,TIME ,TIMESTEP,
681 EINT ,VOL ,UVAR ,FR_WAVE,OFF ,RHO ,SIG ,
682 XX1 ,XX2 ,XX3 ,XX4 ,XX5 ,XX6 ,XX7 ,XX8 ,
683 YY1 ,YY2 ,YY3 ,YY4 ,YY5 ,YY6 ,YY7 ,YY8 ,
684 ZZ1 ,ZZ2 ,ZZ3 ,ZZ4 ,ZZ5 ,ZZ6 ,ZZ7 ,ZZ8 ,
685 UX1 ,UX2 ,UX3 ,UX4 ,UX5 ,UX6 ,UX7 ,UX8 ,
686 UY1 ,UY2 ,UY3 ,UY4 ,UY5 ,UY6 ,UY7 ,UY8 ,
687 UZ1 ,UZ2 ,UZ3 ,UZ4 ,UZ5 ,UZ6 ,UZ7 ,UZ8 ,
688 VX1 ,VX2 ,VX3 ,VX4 ,VX5 ,VX6 ,VX7 ,VVX8 ,
689 VY1 ,VY2 ,VY3 ,VY4 ,VY5 ,VY6 ,VY7 ,VVY8 ,
690 VZ1 ,VZ2 ,VZ3 ,VZ4 ,VZ5 ,VZ6 ,VZ7 ,VVZ8 ,
691 VRX1 ,VRX2 ,VRX3 ,VRX4 ,VRX5 ,VRX6 ,VRX7 ,VVRX8 ,
692 VRY1 ,VRY2 ,VRY3 ,VRY4 ,VRY5 ,VRY6 ,VRY7 ,VVRY8 ,
693 VRZ1 ,VRZ2 ,VRZ3 ,VRZ4 ,VRZ5 ,VRZ6 ,VRZ7 ,VVRZ8 ,
694 FX1 ,FX2 ,FX3 ,FX4 ,FX5 ,FX6 ,FX7 ,VFX8 ,
695 FY1 ,FY2 ,FY3 ,FY4 ,FY5 ,FY6 ,FY7 ,VFY8 ,
696 FZ1 ,FZ2 ,FZ3 ,FZ4 ,FZ5 ,FZ6 ,FZ7 ,VFZ8 ,
697 MX1 ,MX2 ,MX3 ,MX4 ,MX5 ,MX6 ,MX7 ,VMX8 ,
698 MY1 ,MY2 ,MY3 ,MY4 ,MY5 ,MY6 ,MY7 ,MY8 ,
699 MZ1 ,MZ2 ,MZ3 ,MZ4 ,MZ5 ,MZ6 ,MZ7 ,MZ8 ,
700 STIFM ,STIFR ,VISCM ,VISCR);
706 int *NEL ,
int *NUVAR ,
int *IPROP ,
int *IMAT ,
int *SOLID_ID,
my_real *TIME ,
my_real * TIMESTEP,
729 (*st_siniusr)( ITYP,ROOTN,
ROOTLEN,
730 NEL ,NUVAR ,IPROP ,IMAT ,SOLID_ID,TIME ,TIMESTEP,
731 EINT ,VOL ,UVAR ,FR_WAVE,OFF ,RHO ,SIG ,
732 XX1 ,XX2 ,XX3 ,XX4 ,XX5 ,XX6 ,XX7 ,XX8 ,
733 YY1 ,YY2 ,YY3 ,YY4 ,YY5 ,YY6 ,YY7 ,YY8 ,
734 ZZ1 ,ZZ2 ,ZZ3 ,ZZ4 ,ZZ5 ,ZZ6 ,ZZ7 ,ZZ8 ,
735 UX1 ,UX2 ,UX3 ,UX4 ,UX5 ,UX6 ,UX7 ,UX8 ,
736 UY1 ,UY2 ,UY3 ,UY4 ,UY5 ,UY6 ,UY7 ,UY8 ,
737 UZ1 ,UZ2 ,UZ3 ,UZ4 ,UZ5 ,UZ6 ,UZ7 ,UZ8 ,
738 VX1 ,VX2 ,VX3 ,VX4 ,VX5 ,VX6 ,VX7 ,VVX8 ,
739 VY1 ,VY2 ,VY3 ,VY4 ,VY5 ,VY6 ,VY7 ,VVY8 ,
740 VZ1 ,VZ2 ,VZ3 ,VZ4 ,VZ5 ,VZ6 ,VZ7 ,VVZ8 ,
741 VRX1 ,VRX2 ,VRX3 ,VRX4 ,VRX5 ,VRX6 ,VRX7 ,VVRX8 ,
742 VRY1 ,VRY2 ,VRY3 ,VRY4 ,VRY5 ,VRY6 ,VRY7 ,VVRY8 ,
743 VRZ1 ,VRZ2 ,VRZ3 ,VRZ4 ,VRZ5 ,VRZ6 ,VRZ7 ,VVRZ8 ,
744 FX1 ,FX2 ,FX3 ,FX4 ,FX5 ,FX6 ,FX7 ,VFX8 ,
745 FY1 ,FY2 ,FY3 ,FY4 ,FY5 ,FY6 ,FY7 ,VFY8 ,
746 FZ1 ,FZ2 ,FZ3 ,FZ4 ,FZ5 ,FZ6 ,FZ7 ,VFZ8 ,
747 MX1 ,MX2 ,MX3 ,MX4 ,MX5 ,MX6 ,MX7 ,VMX8 ,
748 MY1 ,MY2 ,MY3 ,MY4 ,MY5 ,MY6 ,MY7 ,MY8 ,
749 MZ1 ,MZ2 ,MZ3 ,MZ4 ,MZ5 ,MZ6 ,MZ7 ,MZ8 ,
750 STIFM ,STIFR ,VISCM ,VISCR);
763 (*st_userwis)(rootn,rootlen,numnod,itab,
x ,v,
764 vr,mass,iner,nuvar ,nuvari ,
774 (*st_userwis)(rootn,rootlen,numnod,itab,
x ,v,
775 vr,mass,iner,nuvar ,nuvari ,
789 (*st_userwis_ini)(rootn,rootlen,iuparam,numnod,itab,
x ,v,
790 vr,mass,iner,nuvar ,nuvari ,
799 (*st_userwis_ini)(rootn,rootlen,iuparam,numnod,itab,
x ,v,
800 vr,mass,iner,nuvar ,nuvari ,
812 (*st_get_userbuf_variable)(
id,title);
819 (*st_get_userbuf_variable)(
id,title);
830 filn = (
char*)malloc(
sizeof(
char)* 1+ *len);
831 for (i=0;i< *len ; i++){
844 filn = (
char*)malloc(
sizeof(
char)* 1+ *len);
845 for (i=0;i< *len ; i++){
void st_userlib_usermat_(int *MATNUM, char *ROOTN, int *ROOTLEN, my_real *UPARAM, int *MAXUPARAM, int *NUPARAM, int *NUVAR, int *IFUNC, int *MAXFUNC, int *MFUNC, my_real *PARMAT, int *UNITAB)
void init_callback(void **callback_array)
void(* st_lecm)(int *ilaw, char *rootn, int *rootlen, my_real *uparam, int *maxuparam, int *nuparam, int *nuvar, int *ifunc, int *maxfunc, int *mfunc, my_real *parmat, int *unitab)
void st_userlib_lecguser_(int *igtyp, char *rootn, int *rootlen, int *nuvar, my_real *pargeo)
void _FCALL ST_USERLIB_SINIUSR(int *ITYP, char *ROOTN, int *ROOTLEN, int *NEL, int *NUVAR, int *IPROP, int *IMAT, int *SOLID_ID, my_real *TIME, my_real *TIMESTEP, my_real *EINT, my_real *VOL, my_real *UVAR, my_real *FR_WAVE, my_real *OFF, my_real *RHO, my_real *SIG, my_real *XX1, my_real *XX2, my_real *XX3, my_real *XX4, my_real *XX5, my_real *XX6, my_real *XX7, my_real *XX8, my_real *YY1, my_real *YY2, my_real *YY3, my_real *YY4, my_real *YY5, my_real *YY6, my_real *YY7, my_real *YY8, my_real *ZZ1, my_real *ZZ2, my_real *ZZ3, my_real *ZZ4, my_real *ZZ5, my_real *ZZ6, my_real *ZZ7, my_real *ZZ8, my_real *UX1, my_real *UX2, my_real *UX3, my_real *UX4, my_real *UX5, my_real *UX6, my_real *UX7, my_real *UX8, my_real *UY1, my_real *UY2, my_real *UY3, my_real *UY4, my_real *UY5, my_real *UY6, my_real *UY7, my_real *UY8, my_real *UZ1, my_real *UZ2, my_real *UZ3, my_real *UZ4, my_real *UZ5, my_real *UZ6, my_real *UZ7, my_real *UZ8, my_real *VX1, my_real *VX2, my_real *VX3, my_real *VX4, my_real *VX5, my_real *VX6, my_real *VX7, my_real *VVX8, my_real *VY1, my_real *VY2, my_real *VY3, my_real *VY4, my_real *VY5, my_real *VY6, my_real *VY7, my_real *VVY8, my_real *VZ1, my_real *VZ2, my_real *VZ3, my_real *VZ4, my_real *VZ5, my_real *VZ6, my_real *VZ7, my_real *VVZ8, my_real *VRX1, my_real *VRX2, my_real *VRX3, my_real *VRX4, my_real *VRX5, my_real *VRX6, my_real *VRX7, my_real *VVRX8, my_real *VRY1, my_real *VRY2, my_real *VRY3, my_real *VRY4, my_real *VRY5, my_real *VRY6, my_real *VRY7, my_real *VVRY8, my_real *VRZ1, my_real *VRZ2, my_real *VRZ3, my_real *VRZ4, my_real *VRZ5, my_real *VRZ6, my_real *VRZ7, my_real *VVRZ8, my_real *FX1, my_real *FX2, my_real *FX3, my_real *FX4, my_real *FX5, my_real *FX6, my_real *FX7, my_real *VFX8, my_real *FY1, my_real *FY2, my_real *FY3, my_real *FY4, my_real *FY5, my_real *FY6, my_real *FY7, my_real *VFY8, my_real *FZ1, my_real *FZ2, my_real *FZ3, my_real *FZ4, my_real *FZ5, my_real *FZ6, my_real *FZ7, my_real *VFZ8, my_real *MX1, my_real *MX2, my_real *MX3, my_real *MX4, my_real *MX5, my_real *MX6, my_real *MX7, my_real *VMX8, my_real *MY1, my_real *MY2, my_real *MY3, my_real *MY4, my_real *MY5, my_real *MY6, my_real *MY7, my_real *MY8, my_real *MZ1, my_real *MZ2, my_real *MZ3, my_real *MZ4, my_real *MZ5, my_real *MZ6, my_real *MZ7, my_real *MZ8, my_real *STIFM, my_real *STIFR, my_real *VISCM, my_real *VISCR)
void(* userlib_id)(int *info)
void st_userlib_userwis_(char *rootn, int *rootlen, int *numnod, int *itab, my_real *x, my_real *v, my_real *vr, my_real *mass, my_real *iner, int *nuvar, int *nuvari, my_real *uvar, int *iuvar)
void st_userlib_lecg_(int *igtyp, char *rootn, int *rootlen, int *nuvar, my_real *pargeo)
void _FCALL ST_USERLIB_LECR(int *RUPTID, char *ROOTN, int *ROOTLEN, my_real *UPARAM, int *MAXUPARAM, int *NUPARAM, int *NUVAR, int *IFUNC, int *MAXFUNC, int *MFUNC, int *ID)
void _FCALL ST_USERLIB_LECGUSER(int *igtyp, char *rootn, int *rootlen, int *nuvar, my_real *pargeo)
void(* st_lecg)(int *igtyp, char *rootn, int *rootlen, int *nuvar, my_real *pargeo)
void _FCALL ST_USERLIB_LECSEN(int *typ, char *rootn, int *rootlen)
void _FCALL ST_USERLIB_USERMAT(int *MATNUM, char *ROOTN, int *ROOTLEN, my_real *UPARAM, int *MAXUPARAM, int *NUPARAM, int *NUVAR, int *IFUNC, int *MAXFUNC, int *MFUNC, my_real *PARMAT, int *UNITAB)
void(* st_riniuser)(int *igtyp, char *rootn, int *rootlen, int *nel, int *iprop, int *ix, my_real *xl, my_real *mass, my_real *xiner, my_real *stifn, my_real *stifr, my_real *vism, my_real *visr, my_real *uvar, int *nuvar)
void _FCALL ST_USERLIB_LECM99(int *ilaw, char *rootn, int *rootlen, int *iuser_law, my_real *uparam, int *maxuparam, int *nuparam, int *nuvar, int *ifunc, int *maxfunc, int *nfunc, my_real *parmat)
void st_get_userbuf_var_(int *id, char *title)
void _FCALL ST_USERLIB_USERWIS(char *rootn, int *rootlen, int *numnod, int *itab, my_real *x, my_real *v, my_real *vr, my_real *mass, my_real *iner, int *nuvar, int *nuvari, my_real *uvar, int *iuvar)
void st_userlib_lecr_(int *RUPTID, char *ROOTN, int *ROOTLEN, my_real *UPARAM, int *MAXUPARAM, int *NUPARAM, int *NUVAR, int *IFUNC, int *MAXFUNC, int *MFUNC, int *ID)
void delete_user_file_(char *filnam, int *len)
void _FCALL ST_USERLIB_USERWIS_INI(char *rootn, int *rootlen, int *iuparam, int *numnod, int *itab, my_real *x, my_real *v, my_real *vr, my_real *mass, my_real *iner, int *nuvar, int *nuvari, my_real *uvar, int *iuvar)
void(* set_library_callback)(void *callback_array[200])
void _FCALL ST_GET_USERBUF_VAR(int *id, char *title)
void(* st_lecm99)(int *ilaw, char *rootn, int *rootlen, int *iuser_law, my_real *uparam, int *maxuparam, int *nuparam, int *nuvar, int *ifunc, int *maxfunc, int *nfunc, my_real *parmat)
void(* st_userwis)(char *rootn, int *rootlen, int *numnod, int *itab, my_real *x, my_real *v, my_real *vr, my_real *mass, my_real *iner, int *nuvar, int *nuvari, my_real *uvar, int *iuvar)
void _FCALL DYN_USERLIB_INIT(char *libname, int *size, int *userlib_avail, int *userlib_ver, int *iresp, int *userlib_altname)
void(* st_get_userbuf_variable)(int *id, char *title)
void st_userlib_riniuser_(int *igtyp, char *rootn, int *rootlen, int *nel, int *iprop, int *ix, my_real *xl, my_real *mass, my_real *xiner, my_real *stifn, my_real *stifr, my_real *vism, my_real *visr, my_real *uvar, int *nuvar)
void st_userlib_userwis_ini_(char *rootn, int *rootlen, int *iuparam, int *numnod, int *itab, my_real *x, my_real *v, my_real *vr, my_real *mass, my_real *iner, int *nuvar, int *nuvari, my_real *uvar, int *iuvar)
void st_userlib_lecm99_(int *ilaw, char *rootn, int *rootlen, int *iuser_law, my_real *uparam, int *maxuparam, int *nuparam, int *nuvar, int *ifunc, int *maxfunc, int *nfunc, my_real *parmat)
void(* st_siniusr)(int *ITYP, char *ROOTN, int *ROOTLEN, int *NEL, int *NUVAR, int *IPROP, int *IMAT, int *SOLID_ID, my_real *TIME, my_real *TIMESTEP, my_real *EINT, my_real *VOL, my_real *UVAR, my_real *FR_WAVE, my_real *OFF, my_real *RHO, my_real *SIG, my_real *XX1, my_real *XX2, my_real *XX3, my_real *XX4, my_real *XX5, my_real *XX6, my_real *XX7, my_real *XX8, my_real *YY1, my_real *YY2, my_real *YY3, my_real *YY4, my_real *YY5, my_real *YY6, my_real *YY7, my_real *YY8, my_real *ZZ1, my_real *ZZ2, my_real *ZZ3, my_real *ZZ4, my_real *ZZ5, my_real *ZZ6, my_real *ZZ7, my_real *ZZ8, my_real *UX1, my_real *UX2, my_real *UX3, my_real *UX4, my_real *UX5, my_real *UX6, my_real *UX7, my_real *UX8, my_real *UY1, my_real *UY2, my_real *UY3, my_real *UY4, my_real *UY5, my_real *UY6, my_real *UY7, my_real *UY8, my_real *UZ1, my_real *UZ2, my_real *UZ3, my_real *UZ4, my_real *UZ5, my_real *UZ6, my_real *UZ7, my_real *UZ8, my_real *VX1, my_real *VX2, my_real *VX3, my_real *VX4, my_real *VX5, my_real *VX6, my_real *VX7, my_real *VVX8, my_real *VY1, my_real *VY2, my_real *VY3, my_real *VY4, my_real *VY5, my_real *VY6, my_real *VY7, my_real *VVY8, my_real *VZ1, my_real *VZ2, my_real *VZ3, my_real *VZ4, my_real *VZ5, my_real *VZ6, my_real *VZ7, my_real *VVZ8, my_real *VRX1, my_real *VRX2, my_real *VRX3, my_real *VRX4, my_real *VRX5, my_real *VRX6, my_real *VRX7, my_real *VVRX8, my_real *VRY1, my_real *VRY2, my_real *VRY3, my_real *VRY4, my_real *VRY5, my_real *VRY6, my_real *VRY7, my_real *VVRY8, my_real *VRZ1, my_real *VRZ2, my_real *VRZ3, my_real *VRZ4, my_real *VRZ5, my_real *VRZ6, my_real *VRZ7, my_real *VVRZ8, my_real *FX1, my_real *FX2, my_real *FX3, my_real *FX4, my_real *FX5, my_real *FX6, my_real *FX7, my_real *VFX8, my_real *FY1, my_real *FY2, my_real *FY3, my_real *FY4, my_real *FY5, my_real *FY6, my_real *FY7, my_real *VFY8, my_real *FZ1, my_real *FZ2, my_real *FZ3, my_real *FZ4, my_real *FZ5, my_real *FZ6, my_real *FZ7, my_real *VFZ8, my_real *MX1, my_real *MX2, my_real *MX3, my_real *MX4, my_real *MX5, my_real *MX6, my_real *MX7, my_real *VMX8, my_real *MY1, my_real *MY2, my_real *MY3, my_real *MY4, my_real *MY5, my_real *MY6, my_real *MY7, my_real *MY8, my_real *MZ1, my_real *MZ2, my_real *MZ3, my_real *MZ4, my_real *MZ5, my_real *MZ6, my_real *MZ7, my_real *MZ8, my_real *STIFM, my_real *STIFR, my_real *VISCM, my_real *VISCR)
void(* st_lecguser)(int *igtyp, char *rootn, int *rootlen, int *nuvar, my_real *pargeo)
void(* st_lecr)(int *irupt, char *rootn, int *rootlen, my_real *uparam, int *maxuparam, int *nuparam, int *nuvar, int *ifunc, int *maxfunc, int *mfunc, int *id)
void _FCALL DELETE_USER_FILE(char *filnam, int *len)
void(* st_lecsen)(int *typ, char *rootn, int *rootlen)
void st_userlib_siniusr_(int *ITYP, char *ROOTN, int *ROOTLEN, int *NEL, int *NUVAR, int *IPROP, int *IMAT, int *SOLID_ID, my_real *TIME, my_real *TIMESTEP, my_real *EINT, my_real *VOL, my_real *UVAR, my_real *FR_WAVE, my_real *OFF, my_real *RHO, my_real *SIG, my_real *XX1, my_real *XX2, my_real *XX3, my_real *XX4, my_real *XX5, my_real *XX6, my_real *XX7, my_real *XX8, my_real *YY1, my_real *YY2, my_real *YY3, my_real *YY4, my_real *YY5, my_real *YY6, my_real *YY7, my_real *YY8, my_real *ZZ1, my_real *ZZ2, my_real *ZZ3, my_real *ZZ4, my_real *ZZ5, my_real *ZZ6, my_real *ZZ7, my_real *ZZ8, my_real *UX1, my_real *UX2, my_real *UX3, my_real *UX4, my_real *UX5, my_real *UX6, my_real *UX7, my_real *UX8, my_real *UY1, my_real *UY2, my_real *UY3, my_real *UY4, my_real *UY5, my_real *UY6, my_real *UY7, my_real *UY8, my_real *UZ1, my_real *UZ2, my_real *UZ3, my_real *UZ4, my_real *UZ5, my_real *UZ6, my_real *UZ7, my_real *UZ8, my_real *VX1, my_real *VX2, my_real *VX3, my_real *VX4, my_real *VX5, my_real *VX6, my_real *VX7, my_real *VVX8, my_real *VY1, my_real *VY2, my_real *VY3, my_real *VY4, my_real *VY5, my_real *VY6, my_real *VY7, my_real *VVY8, my_real *VZ1, my_real *VZ2, my_real *VZ3, my_real *VZ4, my_real *VZ5, my_real *VZ6, my_real *VZ7, my_real *VVZ8, my_real *VRX1, my_real *VRX2, my_real *VRX3, my_real *VRX4, my_real *VRX5, my_real *VRX6, my_real *VRX7, my_real *VVRX8, my_real *VRY1, my_real *VRY2, my_real *VRY3, my_real *VRY4, my_real *VRY5, my_real *VRY6, my_real *VRY7, my_real *VVRY8, my_real *VRZ1, my_real *VRZ2, my_real *VRZ3, my_real *VRZ4, my_real *VRZ5, my_real *VRZ6, my_real *VRZ7, my_real *VVRZ8, my_real *FX1, my_real *FX2, my_real *FX3, my_real *FX4, my_real *FX5, my_real *FX6, my_real *FX7, my_real *VFX8, my_real *FY1, my_real *FY2, my_real *FY3, my_real *FY4, my_real *FY5, my_real *FY6, my_real *FY7, my_real *VFY8, my_real *FZ1, my_real *FZ2, my_real *FZ3, my_real *FZ4, my_real *FZ5, my_real *FZ6, my_real *FZ7, my_real *VFZ8, my_real *MX1, my_real *MX2, my_real *MX3, my_real *MX4, my_real *MX5, my_real *MX6, my_real *MX7, my_real *VMX8, my_real *MY1, my_real *MY2, my_real *MY3, my_real *MY4, my_real *MY5, my_real *MY6, my_real *MY7, my_real *MY8, my_real *MZ1, my_real *MZ2, my_real *MZ3, my_real *MZ4, my_real *MZ5, my_real *MZ6, my_real *MZ7, my_real *MZ8, my_real *STIFM, my_real *STIFR, my_real *VISCM, my_real *VISCR)
void _FCALL ST_USERLIB_RINIUSER(int *igtyp, char *rootn, int *rootlen, int *nel, int *iprop, int *ix, my_real *xl, my_real *mass, my_real *xiner, my_real *stifn, my_real *stifr, my_real *vism, my_real *visr, my_real *uvar, int *nuvar)
void st_userlib_lecsen_(int *typ, char *rootn, int *rootlen)
void _FCALL ST_USERLIB_LECG(int *igtyp, char *rootn, int *rootlen, int *nuvar, my_real *pargeo)
void(* st_userwis_ini)(char *rootn, int *rootlen, int *iuparam, int *numnod, int *itab, my_real *x, my_real *v, my_real *vr, my_real *mass, my_real *iner, int *nuvar, int *nuvari, my_real *uvar, int *iuvar)