dlutpeng 发表于 2011-3-15 09:25:03

同一个模型中的同一个subroutine能用几次?

问题是这样的:
我自己编了一个VFORCE的用户子程序,而且在同一个模型中有多个地方需要用这个子程序。单个调试的时候子程序时没有问题的,和我理想中的情况是一样的。

首先,在模型中建立了一个VFORCE,和调试的时候一样很理想,但是当我继续完善模型的时候,加了第二个VFORCE(也是调用同一个子函数,只是传递的参数不一样),这时候两个VFORCE都不对了,就连刚才还好用的第一个VFORCE测量出来的力也是乱七八糟的。

会不会是两个VFORCE,在调用同一个subroutine时,函数内部的参数混乱了呢?为了避免出现这种情况应该怎么做?或者说这种情况能不能避免呢?

谢谢了!!!

dlutpeng 发表于 2011-3-22 08:40:21

问题已解决,把subroutine调用时的id号作为一个参数就可以了。
VOID_FUNCTION VFOSUB(int *id,REAL *time,REAL *par,int *nPar,BOOL *dflag,BOOL *iflag,REAL *value)
{
//*id---为ID号
//*time---为时间
//*par---为接收数组
//*nPar---为数组维数
//*dflag---为微分标志
//*iflag---为积分标志
//*value---为返回值
//在子程序中*id、*time、*nPar、*dflag、*iflag自动传递数据
//ADAMS中的数据是通过*par数组接收的
……
……
……


……
}

pbsmile 发表于 2011-8-12 08:55:56

:'(我练子程序都还不会写啊!

sanding 发表于 2011-12-28 23:05:56

高手, 学习了

亭子间 发表于 2014-12-17 15:22:04


高手, 学习了

jgn824 发表于 2014-12-28 22:56:36

果然是高手,拜了。我现在还在挣扎着弄单独一个的过程呢。。。。。。问题不断啊。慢慢学习中。。。。。。。。。。。。。网站上的帖子不能收藏确实不太好,我怕看过,再回头就找不到了。

xifengyang 发表于 2015-7-26 16:20:05

dlutpeng 发表于 2011-3-22 08:40
问题已解决,把subroutine调用时的id号作为一个参数就可以了。
VOID_FUNCTION VFOSUB(int *id,REAL *time,R ...

请问楼主,是不是添加了多个vforce,调用同一个子程序,只是输入的参数不同,对吧?
然后,你说的把id作为调用的一个参数是怎么回事,是将id的值赋值给子程序中的那个变量吗?能不能说明一下,感谢~
页: [1]
查看完整版本: 同一个模型中的同一个subroutine能用几次?