1、中空工业标准编格式HB/Z 181.2-90 FORTRAN 1 主题内容与适用范围本标准规定了使用FORTRAN语言编程的格式。本标准不涉及程序设计方法和编程技巧。本标准适用于软件开发中的编程工作。2基本约定2. 1 元符号飞、缩格指示符(在实际的程序行文中并不出现)指示该行相对于上行向右缩格,箭头左端与上行左端对齐,箭头右端指示本行开始位置,缩格数为2-3格,但在同一程序单元中,缩格数必须相同。叽可选择符号,表示括在其内的内容是可有可无的.2.2 程序单元长度一个程序单元的长度一般不超过4页打印纸(约240行,包括注释在内。2.3程序结构主程序结构z(PROGRAM 程序名)(某些FOR四
2、AN文本无此项描述体说明语句程序体STOP C格式语句END 子程序。UBROUTINE或FUNCfION)结构zSUBROUTII回E或FUNCfION程序单元名(参数表)J描述体说明语句程序体RETURN 格式语句END 航空航天工业部1990-09-18发布174 1991-02-01实施HB/Z 181.2-90 2. 4 描述体描述体以注释形式给出,它至少包括下述信息,按顺序为.程序单元名及其含义说明版本号及完成日期程序单元的功能编程人员的姓名,单位程序修改人员的姓名,单位,修改日期对环境的依赖性E调用本程序单元的程序单元名X主程序无此项)本程序调用的其它程序单元名输入参数说明(主程
3、序无此项)输出参数说明主程序无此项其它需说明的问题描述体前后各用一行一号的注释与程序单元的其它部分隔开,描述体内容应放在772列之间。描述体的具体格式见附录Ao2.5 注释为使程序清晰可读,应适当加以注释,一个程序中的注释行的行数一般应占该程序单元的长度的1/51/30注释行的内容一律写在2172之间,且左端须对齐。具体格式见附录Bo2.6 标识符所有的标识符应尽量具有明显的含义,必要时用注释加以说明。3语句约定3. 1 说明语句说明语句应按照下列先后顺序出现zPARAMETER IMPLICIT INTEGER REAL DOUBLE PRECISION COMPLEX LOGICAL CH
4、ARACTER DIMENSION COMMON EQUIV ALENCE SAVE 175 EXTERNAL INTRINSIC DATA 语句函数语句3.2 语句标号HB/Z 181.2-90 语句标号只能加在CONTINUE和FORMAT两种语句上。加在CONTINUE语句上的标号为1-3位数e加在FORMAT语句上的标号为4位数,其中输入或既输入又输出的格式语句标号以5打头,仅输出用的格式语句标号以6打头.标号采用右对齐的格式(特殊机型除外),即个位数在第5列,十位数在第4列,依此类推.在一个程序单元中,标号出现的先后顺序按升序排列。例如zE 10 CONTINUE g 30 CONT
5、INUE g 150 CONTINUE 5010 FORMAT() 2 6010 FORMAT() 2 3.3 DO语句DO语句的终止语句必须是CONTINUEoDO语句的循环体要缩格。例如gDO 120 I=l ,N CO,J)=A (I,1)+80,J) 110 CONTINUE 120 CONTINUE 3.4块IF语句块IF语句的语句要缩格。例如zIF(条件。THEN116 一IF(条件2)THEN语句1ELSE 语句2END IF ELSE 语句3END IF 3.5 FORMAT语句HB/Z 181.2-90 FORMAT语句一律放在程序体之后、END之前。输入用的FORMAT语句
6、在前、输出用的FORMAT语句在后,二者兼顾居中。4 其它约定4. 1 子程序参数SUBROUTINE或FUNCTION的参数不超过S个.参数的顺序满足如下协调原则输入参数在前,输出参数在后,整型参数在前,实型参数在后。4.2 继续行第6列的继续符号一律使用$(或程序中不出现的其它字符。4.3 空格的使用适当地使用空格可使编写的程序更为清渐、易读。建议在算术运算符(飞飞+、呐、逻辑运算符(飞NOT.、飞AND.、飞OR.飞、.EQV.、飞NEQV.)、关系运算符(飞EQ. . LE. /,、飞LT.飞机.NE.、飞GT.飞飞GE.)和赋值号=的前后各留一个空格。177 C HB/Z 181.2
7、-90 附录A描述体细节(以SUBROUTINE为例)(补充件)SUBROUTINE 程序单元名(参数表)C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -甸甸C C C C C C C C C C C C NAME , VERSION , FUNCTION , AUTHOR , MODIFED BY , DEPENDENCE , CALLED BY , CALLS , INPUT , OUTPUT , OTHERS , 程序单元名及其含义说明版本号及完成日期程序单元的功能编程人员的姓名及所在单位修改人员的姓名,单位,修改
8、日期对环境的依赖性调用本程序单元的程序单元名本程序单元调用的其它程序单元名输入参数名、输入参数类型说明、输入参数功能说明)(若无输入参数,则填NONE)输出参数名、输出参数类型说明、输出参数功能说明)(若无输出参数,则填NONE)其它需说明的问题c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -178 HB/Z 181.2-90 最B实例(参考件)SUBROUTINE BZSPPD(NUOFCP ,LENGTH ,COPOIN ,ALLPol) c - - - - - - - - - - - - - - - -
9、 - - - - - - - - - - - - - - - - - - - - -CCCCCCCCCCCCCCC CCC C NAME , VERSION , FUNCTION , BZSPPD BEZIER SPLINE POINTS DIVIDING BZSPPD 1. 0 JUNE 15, 1986 THIS ROUTINE IS USED TO GENERATE A. BEZIER SOLINE CONSISTED OF N一1SEGMENT BEZIER CURVE BY GIVING N CONTROL POINTS WU MING DEPT 8 ,CACT INST. ,XIA
10、N THIS ROUTINE IS INDEPENDENT OF MACHINE ABS AUTHOR , DEPENDENCE , CALLS , INPUT , NUOFCP INTEGER NUMBER OF CONTROL POINTS INTEGER LENGTH OF ARRA. Y COPOIN ,IT EQU A. LS (3铸NUOFCP+1)REAL(3,NUOFCP) ARRA Y FOR CONTROL POINTS OF BEZI ER SPLINE REAL(3,LENGTH) ARRA Y FOR POINTS ON ALL SEGMENT OF BEZIER C
11、URVE LENGTH COPOIN OUTPUT , ALLPOI c - - - - - - - - - - - - - - - - - - - - - - M - - - - - - - - - - - - - -C CCC REAL COPOIN (3,NUOFCP) ,ALLPOI(3,LENGTH) ,COB DIVIDING CONTROL POIN.TS FOR END POINTS D05K=I ,3 ALLPOI(K ,2)= (2赞COPOIN(K,1) +COPOIN(K ,2)/3. 0 ALLPOI(K ,LENGTH -1)= (COPOIN (K ,NUOFCP
12、一1)$ +2骨COPOIN(K,NUOFCP)/3. 0 179 HB/Z 181.2-90 5 CONT1NUE COB=O.O D0101=1 ,3 COB=COB+ABS(COP01N(I,。一COPOIN(I,N)10 CONTINUE CCC DECID1NG 1F THE SPLINE IS CLOSED IF(COB. GT. O. 001 )GOTO 20 CCC CURVE IS CLOSED,PR1NT MESSAGE WRITE币,6000)00151=1 ,3 COPOIN (I, 1) =ALLPOI(I, 2) +ALLPOI(I ,LENGTH -1) /2.。
13、COP01N(I,NUOFCP)=COPQ1N(I,I) 15 CONTINUE 20 CONT1NUE CCC SUBDIVIDE CONTROL P01NTS FOR EACH SEGMENT 00 25 K=1,3 ALLPOI(K ,1) =COPOIN (K ,0 ALLPOI(K ,LENGTH) =COP01N (K ,NUOFCP) 25 CONT1NUE C C DIVIDE CONTROL POINTS FOR INTERNAL POINTS C N2=NUFCP-2 00 35 K= 1,3 D0301=I ,N2 ALLPOI(K ,3祷1)=(2赞COPOIN(K ,
14、1+ I)+COPOIN(K ,1)/3.。ALLPOI(K ,3铃1+2)=(2铃COPOIN(K ,1+ I)+COPOIN(K ,1+2)/3.0 ALLPOI(K ,3势1+1)= (ALLP01(K ,3畴。+ALLPOI(K,3骨1+2)/2.030 CONT1NUE 35 CONT1NUE WR1TE (6 , 6005) (ALLPOI(I,刀,1=1 , 3) ,J= 1 , LENGTH) C 180 HB/Z 181.2-90 RETURN 6000 FORMAT (10x,NOTICE THE SPLINE IS CLOSED , $ THE END POINT ON SPLINE IS NOT ORIGINAL ONE。600& FORMAT (1 0X , ALLPOI(3,LENGTH) /(10X ,3EI5. 4) END 附加说明本标准由航空航天工业部第三。一研究所提出本标准由航空航天工业部第六三一研究所负责起草181