Fortran编程零碎小建议

当处理一个数组时,应遵循下面的原则:

113、使用RESHAPE函数改变数组的结构。当利用数组构造器创建所需结构的数组常量时,这一函数非常有用。

114、使用隐含的DO循环来读写二维数组,数组的一行看作是输入或输出文件的一行。这种方式可以使程序员更容易将文件中的数据和程序中表示的数据建立联系。

115、如果只是希望修改和赋值那些通过某些测试的元素,可以使用WHERE结构来修改和赋值数组元素。

116、使用可分配数组来产生程序,可以动态地调节内存需求以适用于所解决问题的大小。用ALLOCATABLE属性声明可分配数组,用ALLOCATE语句分配内存,用DEALLOCATE语句释放内存。

117、在任何ALLOCATE语句中始终应该总是包含STAT=子句,始终检查返回的状态,以便在没有足够的空间分配给数组时,可以使程序友好的退出。

118、在Fortran 2003的任意ALLOCATE或DEALLOCATE语句中,始终应该包含ERRMSG=子句,当出现分配错误时,返回一个用户可读的错误信息。

119、一旦使用完可分配数组之后,应该始终用DEALLOCATE语句释放可分配数组。

当使用子程序和函数的时候,应遵循下述原则:

120、始终应该用显式结构形参数组或者不定结构形参数组作为形参数组参数。永远不要在任何新的程序中使用不定大小的形参数组。

121、如果需要保持在连续的过程调用期间过程中的变量值不被改变,那么在变量的类型声明语句中指明SAVE属性,包含该变量在SAVE语句中,或者在他的类型声明语句中初始化该变量。

122、在过程中使用自动数组来创建局部临时工作出租。使用可分配数组创建在主程序中的数组,或者在不同的过程中创建或销毁的数组,或者在给定的过程中能够改变大小的数组。

123、使用内部过程完成只需要在一个程序单元中执行,且必须重复执行的低级操作。

当使用字符变量的时候,应遵循下述原则:

124、使用字符串函数,而不是关系操作符,来判断两个字符串是否相同。这种方式可以避免程序从基于ASCII数据集的处理机移植到基于EBCDIC字符集的处理机上时产生的潜在问题。

125、使用ACHAR函数和IACHAR函数,而不是CHAR函数和ICHAR函数。因为前两个函数的运行结果独立于它们所运行的处理机,而后两个函数的运行结果很大程度上依赖它们所运行的处理机所采用的字符排序序列。

126、在过程中使用CHARACTER (LEN=*)类型语句来声明字符类形式参数。这个特性使得过程可以操作任意长度的字符串。如果子程序或者函数需要知道特定变量的实际长度,可以用该变量做参数调用LEN函数。

127、使用内部文件把数据从字符格式转换为数字格式,反之也一样。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190120G0TDXM00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券