@@ -146,57 +146,57 @@ module function mean_3_sp_sp(x, dim) result(res)
146
146
integer , intent (in ) :: dim
147
147
integer :: j_
148
148
real (sp) :: res( &
149
- merge (size (x,2 ),size (x,1 ),mask = any ((/ (j_, j_ = dim, 3 )/ ) == 1 )), &
150
- merge (size (x,3 ),size (x,2 ),mask = any ((/ (j_, j_ = dim, 3 )/ ) == 2 )) )
149
+ merge (size (x,2 ),size (x,1 ),mask = any ((/ (j_, j_ = dim, rank(x) )/ ) == 1 )), &
150
+ merge (size (x,3 ),size (x,2 ),mask = any ((/ (j_, j_ = dim, rank(x) )/ ) == 2 )) )
151
151
end function mean_3_sp_sp
152
152
module function mean_3_dp_dp (x , dim ) result(res)
153
153
real (dp), intent (in ) :: x(:,:,:)
154
154
integer , intent (in ) :: dim
155
155
integer :: j_
156
156
real (dp) :: res( &
157
- merge (size (x,2 ),size (x,1 ),mask = any ((/ (j_, j_ = dim, 3 )/ ) == 1 )), &
158
- merge (size (x,3 ),size (x,2 ),mask = any ((/ (j_, j_ = dim, 3 )/ ) == 2 )) )
157
+ merge (size (x,2 ),size (x,1 ),mask = any ((/ (j_, j_ = dim, rank(x) )/ ) == 1 )), &
158
+ merge (size (x,3 ),size (x,2 ),mask = any ((/ (j_, j_ = dim, rank(x) )/ ) == 2 )) )
159
159
end function mean_3_dp_dp
160
160
module function mean_3_qp_qp (x , dim ) result(res)
161
161
real (qp), intent (in ) :: x(:,:,:)
162
162
integer , intent (in ) :: dim
163
163
integer :: j_
164
164
real (qp) :: res( &
165
- merge (size (x,2 ),size (x,1 ),mask = any ((/ (j_, j_ = dim, 3 )/ ) == 1 )), &
166
- merge (size (x,3 ),size (x,2 ),mask = any ((/ (j_, j_ = dim, 3 )/ ) == 2 )) )
165
+ merge (size (x,2 ),size (x,1 ),mask = any ((/ (j_, j_ = dim, rank(x) )/ ) == 1 )), &
166
+ merge (size (x,3 ),size (x,2 ),mask = any ((/ (j_, j_ = dim, rank(x) )/ ) == 2 )) )
167
167
end function mean_3_qp_qp
168
168
169
169
module function mean_3_int8_dp (x , dim ) result(res)
170
170
integer (int8), intent (in ) :: x(:,:,:)
171
171
integer , intent (in ) :: dim
172
172
integer :: j_
173
173
real (dp) :: res( &
174
- merge (size (x,2 ),size (x,1 ),mask = any ((/ (j_, j_ = dim, 3 )/ ) == 1 )), &
175
- merge (size (x,3 ),size (x,2 ),mask = any ((/ (j_, j_ = dim, 3 )/ ) == 2 )) )
174
+ merge (size (x,2 ),size (x,1 ),mask = any ((/ (j_, j_ = dim, rank(x) )/ ) == 1 )), &
175
+ merge (size (x,3 ),size (x,2 ),mask = any ((/ (j_, j_ = dim, rank(x) )/ ) == 2 )) )
176
176
end function mean_3_int8_dp
177
177
module function mean_3_int16_dp (x , dim ) result(res)
178
178
integer (int16), intent (in ) :: x(:,:,:)
179
179
integer , intent (in ) :: dim
180
180
integer :: j_
181
181
real (dp) :: res( &
182
- merge (size (x,2 ),size (x,1 ),mask = any ((/ (j_, j_ = dim, 3 )/ ) == 1 )), &
183
- merge (size (x,3 ),size (x,2 ),mask = any ((/ (j_, j_ = dim, 3 )/ ) == 2 )) )
182
+ merge (size (x,2 ),size (x,1 ),mask = any ((/ (j_, j_ = dim, rank(x) )/ ) == 1 )), &
183
+ merge (size (x,3 ),size (x,2 ),mask = any ((/ (j_, j_ = dim, rank(x) )/ ) == 2 )) )
184
184
end function mean_3_int16_dp
185
185
module function mean_3_int32_dp (x , dim ) result(res)
186
186
integer (int32), intent (in ) :: x(:,:,:)
187
187
integer , intent (in ) :: dim
188
188
integer :: j_
189
189
real (dp) :: res( &
190
- merge (size (x,2 ),size (x,1 ),mask = any ((/ (j_, j_ = dim, 3 )/ ) == 1 )), &
191
- merge (size (x,3 ),size (x,2 ),mask = any ((/ (j_, j_ = dim, 3 )/ ) == 2 )) )
190
+ merge (size (x,2 ),size (x,1 ),mask = any ((/ (j_, j_ = dim, rank(x) )/ ) == 1 )), &
191
+ merge (size (x,3 ),size (x,2 ),mask = any ((/ (j_, j_ = dim, rank(x) )/ ) == 2 )) )
192
192
end function mean_3_int32_dp
193
193
module function mean_3_int64_dp (x , dim ) result(res)
194
194
integer (int64), intent (in ) :: x(:,:,:)
195
195
integer , intent (in ) :: dim
196
196
integer :: j_
197
197
real (dp) :: res( &
198
- merge (size (x,2 ),size (x,1 ),mask = any ((/ (j_, j_ = dim, 3 )/ ) == 1 )), &
199
- merge (size (x,3 ),size (x,2 ),mask = any ((/ (j_, j_ = dim, 3 )/ ) == 2 )) )
198
+ merge (size (x,2 ),size (x,1 ),mask = any ((/ (j_, j_ = dim, rank(x) )/ ) == 1 )), &
199
+ merge (size (x,3 ),size (x,2 ),mask = any ((/ (j_, j_ = dim, rank(x) )/ ) == 2 )) )
200
200
end function mean_3_int64_dp
201
201
202
202
end interface
0 commit comments