APDL数据文件读入与写出系列讲解(一)
数据文件的读入与写出一直是APDL中的核心内容,微信公众号后台也有不少童鞋咨询关于这方面的内容。今日就简单介绍下APDL中关于数据文件的读入与写出,总共分为三个方面的内容:
1)关于APDL中的数据格式
2)*vwrite与*vread用法详解
3) 读入与写出实例
本篇为第一节,主要讲讲读入与写出时APDL中的数据格式问题。对APDL比较熟悉的童鞋应该都了解,APDL很多思维,包括流程类控制等其实都和Fortan语言具有很多相似之处,其实对于数据格式这块,两者差别也不是特别大,主要体现在下面两个方面:
(1)APDL在数值方面没有整型(I)、G型描述符,字符型数据采用A描述符,没有H描述符。
(2)在Fortran中如果数据是整数,但是输入格式采用实数(如单精度浮点型F),则系统可以按指定格式自动为数据加上小数点,但在APDL中如输入数据为整数,如:6,则格式 Fw.d中的d只能为零,否则会出现读入错误;而如果是6. 则Fw.d中的d可以不为0。
APDL数据格式分为10种:I格式、F格式、E格式、G格式、D格式、L格式、A格式、H格式、X格式、 /(斜杠)格式,下面对这九种格式略做介绍。其中I格式、F格式、X格式为常用格式,应重点掌握,本文对这三种格式做详细说明,其他格式了解即可,仅对其概念及使用用法做介绍。
1、I格式
I格式又称之为整数格式,使用格式为 Iw 或者Iw.m。其中:w 一个数据占的位数宽度(又称“字段宽度”),m 需要输出的最少数字位数。注意事项如下:
(1)数字在指定的区域内向右端靠齐,如果数字位数比指定的字段宽度w小,则左边补以空格。负数的符号也包含在字段宽度内。
(2)如果数字的位数超过了规定的字段宽度w,则不输出有效数据,而在该字段宽度范围内充满“*”符号。
(3)如果数字的位数超过了m,则按实际应输出的位数输出(但条件是不能超过w)。m不包括负号所占的一列。
2、F格式
F格式又称之为小数型格式,为最常用的格式,童鞋们应重点掌握。其使用形式为Fw.d,其中w 各数值占的总位数 d 输出数据的小数位数(小数点后的位数)。注意事项如下:
(1)数字在指定的区域内向右端靠齐,如果数字位数(含小数点和符号位)比指定的字段宽度w小,则左边补以空格;如果数字的位数超过了规定的字段宽度w,则不输出有效数据,而在该字段宽度范围内充满“*”符号。
(2)如果数据的小数位数比指定的小数位数d小,则在小数右边补0以凑足d位;如果小数位数大于d位,则输出时多于的小数位数按“四舍五入”规则舍去。
(3)假设b为数据整数部分的位数,则应使w≥b+d+1(小数点占一列),如果输出负数,则应保证w≥b+d+2(小数点和负号各占一列)。
(4)用F格式输出时应注意,由于难以事先确切估计出数据的大小,输出大的数时容易产生“宽度不够”的错误(由于w不够大),输出小的数时会出现丢掉有用数字的情况(由于d不够大而将后面的数字截去),这就是“大数印错,小数印丢”。
3、X格式
X格式又称之为空格性格式,主要用于输出空格,使用形式为:nX,其中n 输出的空格数目。即插入n个空格,或者说,使打印的“当前位置”向右移动n列。如果不用X格式插入空格,数据将连成一片,难以区分开。注意X格式符不能用来提供整数、实数、以及其它类型数据的输出格式,它只能插入若干个空格。
4、E格式
指数型格式,一般形式:w.d,其中w 为各数值占的总位数,d为输出数据的小数位数(小数点后的位数)。
5、G格式
G格式可以根据输出的实数大小决定用小数形式(F格式)输出或指数形式(E格式)输出。当输出大数值或小数值时自动按E格式,当输出的数不大不小时用F格式。其一般形式为:Gw.d
6、D格式
一般形式:Dw.a。用于双精度数据的输出,使用方法与E格式相仿,只是把字母“E”换成“D”。
7、L格式
一般形式:Lw ,该格式主要用于逻辑型数据的输出,w 输出数据的字段宽度。逻辑值“.TRUE.",在输出时打印一个字母T;逻辑值".FLASE.",在输出时打印一个字母F。T和F打印在字段范围内的最右端。
8、A格式
一般形式:Aw 或:A,主要用于字符型数据的输出,w为字段宽度,不指定w时(即形式:A),按字符变量的实际长度(即程序定义该变量时的长度)输出。
9、H格式
一般形式:nH <字符串>,用来输出字符常量, n为字符串中字符的个数。
10、/(斜杠)格式
斜杠(/)编辑符的作用是:结束本记录的输出并开始下一个记录的输出。