转自http://www.aoxue.org/bbs/read.php?tid=118484,ysy11的贴子。
ANSYS的APDL语言其语法等各方面均与Fortran有很大的共通之处。在数据的输入输出格式方面也可以参考Fortran。对于初学者来说,输入数据时更容易引发错误,所以下面谈几点在这方面的小认识。
APDL 从外部文件输入数据,一般是采用*vread命令实现,而输入格式一般是在此命令的下一行定义,关于此命令的具体应用,可参见ANSYS帮助。
在输入格式方面与Fortran不同:
(1)APDL在数值方面没有整型(I)、G型描述符,字符型数据采用A描述符,没有H描述符。
(2)在Fortran中如果数据是整数,但是输入格式采用实数(如单精度浮点型F),则系统可以按指定格式自动为数据加上小数点,但在APDL中如输入数据为整数,如:6,则格式 Fw.d中的d只能为零,否则会出现读入错误;而如果是6.则Fw.d中的d可以不为0。
另外在输入时还容易引起输入错误的是:
(1) 输入格式的长度大于数据长度(指前一个数据的起至紧接的下一个数据的起始前一位,小数点和负号均占一位),如6._ _ _ _-5.6,前面的数据长度应为6,如果输入格式Fw.d中的w>6,则会出现读入错误;
(2) 格式语句应置于*vread的下一行,两行之间可以有空行,但不能有其它语句,甚至是注释语句也不能有。
输出与输入在格式方面基本一致,用*vwrite执行,但也有不同之处:
输出时可以使用%c控制字符输出,%wI控制整数输出;%w.pF或%w.pE或%w.pG控制实数输出;
不能加括号。如格式语句: (F6.0,F5.2,A3),对应于:%6.0F%5.2F%3c;
应注意后一种格式中没有用逗号相隔开,也没有用括号括起,如有逗号,逗号也将一并输出。
用%号(%wI)的这种格式可以输出整型数字。
%这种控制语句也应紧接*vwrite行,可以有空行,但不能有其它语句夹在中间(注释也不行)。
应当指出的是,%这种控制语句不能用在控制输入中。
*GET, ELEMENTNUM,ELEMENT,0,COUNT
*GET, NODENUM,NODE,0,COUNT
*CFOPEN,c:\tecplot,plt !!tecplot的输出文件
*VWRITE
('TITLE="Ansys to Tecplot FOR TETRAHEDRON MESH"')*VWRITE
('VARIABLES="X","Y","Z"')*VWRITE, NODENUM,ELEMENTNUM
ZONE N=%5I,E=%7I,F=FEPOINT,ET=TETRAHEDRON*DO, I,1,NODENUM,1
*VWRITE, NX(I),NY(I),NZ(I)
(3F12.6)*ENDDO
*DO, I,1,ELEMENTNUM,1
*VWRITE, NELEM(I,1),NELEM(I,2),NELEM(I,3),NELEM(I,5)
%7I%7I%7I%7I*ENDDO
*CFCLOS