在Fortran编程中,数组的使用可以分为几个部分,包括数组的声明、初始化、访问和操作。以下是一些关键点和示例代码:
1. 数组的声明
声明数组时,可以使用`dimension`修饰词来指定数组的大小,或者直接在变量名称后使用圆括号并指定长度。例如:
```fortran
integer, dimension(10) :: array
integer :: array(10)
```
对于多维数组,可以使用逗号分隔各个维度:
```fortran
integer, dimension(10, 10) :: array
```
还可以使用常量来声明数组的长度:
```fortran
integer, parameter :: n = 10
integer :: array(n)
```
2. 数组的初始化
可以使用多种方法来初始化数组,包括隐含的DO循环、数组元素和数组片段。例如:
```fortran
integer, dimension(5) :: a
a = (/1, 2, 3, 4, 5/) ! 使用隐含的DO循环初始化
real, dimension(5) :: b
b = [1.1, 2.2, 3.3, 4.4, 5.5] ! 使用数组元素初始化
real, dimension(2:5:2) :: c ! 使用数组片段初始化
```
3. 数组的访问
访问数组元素时,可以使用数组名加上下标来引用。例如:
```fortran
print *, a(3) ! 输出数组a的第3个元素
```
对于多维数组,可以使用多个下标来访问:
```fortran
integer, dimension(3, 3) :: matrix
matrix(2, 2) = 42 ! 输出矩阵matrix的第2行第2列的元素
```
4. 数组操作
可以对数组进行各种操作,包括计算、复制和输出。例如:
```fortran
program array_operations
implicit none
integer, parameter :: n = 5
real :: a(n), b(n), c(n)
integer :: i
! 初始化数组a和b
do i = 1, n
a(i) = real(i)
b(i) = real(n + 1 - i)
end do
! 计算数组c的元素
do i = 1, n
c(i) = a(i) + b(i)
end do
! 输出数组c的元素
print *, 'Array c:'
do i = 1, n
print *, 'c(', i, ')', c(i)
end do
end program array_operations
```
5. 动态数组
Fortran支持动态数组,可以使用`allocatable`和`allocate`等关键字来声明和分配内存。例如:
```fortran
integer, allocatable :: dynamic_array(:)
allocate(dynamic_array(10)) ! 分配内存
dynamic_array(1) = 1 ! 给数组元素赋值
```
使用完动态数组后,需要释放内存:
```fortran
deallocate(dynamic_array)
```
6. 数组传递
在子程序中可以使用数组变量或数组元素的值作为参数。例如:
```fortran
subroutine add_arrays(a, b, c)
implicit none
real, intent(in) :: a(:)
real, intent(in) :: b(:)
real, intent(out) :: c(:)
c(1:size(a)) = a(1:size(a)) + b(1:size(a))
end subroutine add_arrays
program main
implicit none
real, dimension(5) :: a = [1, 2, 3, 4, 5]
real, dimension(5) :: b = [5, 4, 3, 2, 1]
real, dimension(5) :: c
call add_arrays(a, b, c)
print *, 'Result:', c
end program main
```
这些示例展示了如何在Fortran中声明、初始化、访问和操作数组。根据具体需求,可以选择合适的方法来处理数组。