-
数组的声明和初始化:
fortarn中可以通过声明和初始化来创建数组。例如:
integer :: my_array(3) = [1, 2, 3] ! 声明一个包含3个整数的数组并初始化
-
数组元素的访问:
fortran中可以通过索引来访问数组中的元素。数组的索引从1开始。例如:
my_array(2) = 5 ! 将数组中索引为2的元素设置为5
-
数组的赋值操作:
fortran中可以使用等号将一个数组的值赋给另一个数组。例如:
integer :: array1(3) = [1, 2, 3]
integer :: array2(3)
array2 = array1 ! 将array1的值赋给array2
-
数组的数学运算:
fortran中可以对数组进行数学运算,例如加法、减法、乘法和除法。运算符会逐元素地应用于数组中对应的元素。例如:
integer :: array1(3) = [1, 2, 3]
integer :: array2(3) = [4, 5, 6]
integer :: result(3)
result = array1 + array2 ! 数组元素对应相加
-
数组的变形操作:
fortran中可以通过reshape函数改变数组的形状。例如:
integer :: old_array(6) = [1, 2, 3, 4, 5, 6]
integer :: new_array(2, 3)
new_array = reshape(old_array, [2, 3]) ! 将一维数组变形为二维数组
-
矩阵的运算:
fortran中可以进行矩阵的乘法和转置运算。例如:
real :: matrix1(2, 3) = reshape([1, 2, 3, 4, 5, 6], [2, 3])
real :: matrix2(3, 2) = reshape([7, 8, 9, 10, 11, 12], [3, 2])
real :: result(2, 2)
result = matmul(matrix1, matrix2) ! 矩阵乘法
result = transpose(matrix1) ! 矩阵转置
以上是fortran中对数组和矩阵的主要操作和内置运算的一些示例。实际使用时,还可以进行更多的操作,例如数组的排序、矩阵的求逆等。😃
Fortran中自带了一个进行矩阵乘法运算的函数 MATMUL,用来计算矩阵乘法。
矩阵在fortran中,一个3*3的数组a(3,3)所表示的矩阵如下
program main
implicit none
real a(3, 3), b(3, 3), c(3, 3)
integer m, n, k
integer i, j
a = reshap
在之前的章节中,常量,变量用于保存一个数值。如果需要保存大量的数据,就可以用到数组,数组是一系列相同类型的数据组合而成的特殊数据类型。
1. 数组的声明
在创建数组时,可以增加dimension修饰词来表明声明数组的长度,也可以在变量名称后增加圆括号,并在圆括号内使用数字来表明数组的长度。下面的两个例子都声明了一个用于储存integer变量类型的长度为10的数组。
integer, dimension(10) :: array
integer :: array(10)
总的来说,按照如下的方式声明数
为了实现分子按照特定方向转向,参考之前利用VESTA手动截取晶面并采用矩阵计算转向的方法,用fortran编写了一个实现简单矩阵计算功能的小程序,用于处理矩阵加、减、乘、除、行列式值、求逆、转置几类计算,主要是求逆和除法的实现。
求逆采用了初等变换和利用伴随矩阵两种方法,但编译好的应当时默认利用伴随矩阵方法。
缺点:计算种类简单,后续应参考“云算子”增加“线性方程组、特征值和特征向量、Chol...