fortran中pack
时间: 2024-03-23 08:40:41 浏览: 101
optpack:现代Fortran中基于有限元模拟的自动全局优化-开源
在Fortran中,PACK是一种用于从数组中选择元素的内置函数。它的语法如下:
```
PACK(source, mask, vector)
```
其中,`source`是原始数组,`mask`是一个逻辑数组,`vector`是输出数组。`mask`中的每个元素都对应着`source`中的每个元素,如果`mask`中的元素为`.TRUE.`,则将对应`source`中的元素压入`vector`中。
例如,如果我们有一个整数数组`a`和一个逻辑数组`mask`,我们可以使用`PACK`函数将`a`中所有大于5的元素压入一个新的数组`b`中:
```
INTEGER :: a(10) = [1, 6, 2, 7, 3, 8, 4, 9, 5, 10]
LOGICAL :: mask(10) = a > 5
INTEGER :: b(5)
b = PACK(a, mask)
```
在这个例子中,`mask`的值为`[.FALSE., .TRUE., .FALSE., .TRUE., .FALSE., .TRUE., .FALSE., .TRUE., .FALSE., .TRUE.]`,所以`b`的值为`[6, 7, 8, 9, 10]`。
阅读全文