@@ -42,6 +42,7 @@ module function mean_1_int64_dp(x) result(res)
42
42
real (dp) :: res
43
43
end function mean_1_int64_dp
44
44
45
+
45
46
module function mean_2_all_sp_sp (x ) result(res)
46
47
real (sp), intent (in ) :: x(:,:)
47
48
real (sp) :: res
@@ -109,6 +110,95 @@ module function mean_2_int64_dp(x, dim) result(res)
109
110
real (dp) :: res(size (x)/ size (x, dim))
110
111
end function mean_2_int64_dp
111
112
113
+
114
+ module function mean_3_all_sp_sp (x ) result(res)
115
+ real (sp), intent (in ) :: x(:,:,:)
116
+ real (sp) :: res
117
+ end function mean_3_all_sp_sp
118
+ module function mean_3_all_dp_dp (x ) result(res)
119
+ real (dp), intent (in ) :: x(:,:,:)
120
+ real (dp) :: res
121
+ end function mean_3_all_dp_dp
122
+ module function mean_3_all_qp_qp (x ) result(res)
123
+ real (qp), intent (in ) :: x(:,:,:)
124
+ real (qp) :: res
125
+ end function mean_3_all_qp_qp
126
+
127
+ module function mean_3_all_int8_dp (x ) result(res)
128
+ integer (int8), intent (in ) :: x(:,:,:)
129
+ real (dp) :: res
130
+ end function mean_3_all_int8_dp
131
+ module function mean_3_all_int16_dp (x ) result(res)
132
+ integer (int16), intent (in ) :: x(:,:,:)
133
+ real (dp) :: res
134
+ end function mean_3_all_int16_dp
135
+ module function mean_3_all_int32_dp (x ) result(res)
136
+ integer (int32), intent (in ) :: x(:,:,:)
137
+ real (dp) :: res
138
+ end function mean_3_all_int32_dp
139
+ module function mean_3_all_int64_dp (x ) result(res)
140
+ integer (int64), intent (in ) :: x(:,:,:)
141
+ real (dp) :: res
142
+ end function mean_3_all_int64_dp
143
+
144
+ module function mean_3_sp_sp (x , dim ) result(res)
145
+ real (sp), intent (in ) :: x(:,:,:)
146
+ integer , intent (in ) :: dim
147
+ integer :: j_
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 )) )
151
+ end function mean_3_sp_sp
152
+ module function mean_3_dp_dp (x , dim ) result(res)
153
+ real (dp), intent (in ) :: x(:,:,:)
154
+ integer , intent (in ) :: dim
155
+ integer :: j_
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 )) )
159
+ end function mean_3_dp_dp
160
+ module function mean_3_qp_qp (x , dim ) result(res)
161
+ real (qp), intent (in ) :: x(:,:,:)
162
+ integer , intent (in ) :: dim
163
+ integer :: j_
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 )) )
167
+ end function mean_3_qp_qp
168
+
169
+ module function mean_3_int8_dp (x , dim ) result(res)
170
+ integer (int8), intent (in ) :: x(:,:,:)
171
+ integer , intent (in ) :: dim
172
+ integer :: j_
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 )) )
176
+ end function mean_3_int8_dp
177
+ module function mean_3_int16_dp (x , dim ) result(res)
178
+ integer (int16), intent (in ) :: x(:,:,:)
179
+ integer , intent (in ) :: dim
180
+ integer :: j_
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 )) )
184
+ end function mean_3_int16_dp
185
+ module function mean_3_int32_dp (x , dim ) result(res)
186
+ integer (int32), intent (in ) :: x(:,:,:)
187
+ integer , intent (in ) :: dim
188
+ integer :: j_
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 )) )
192
+ end function mean_3_int32_dp
193
+ module function mean_3_int64_dp (x , dim ) result(res)
194
+ integer (int64), intent (in ) :: x(:,:,:)
195
+ integer , intent (in ) :: dim
196
+ integer :: j_
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 )) )
200
+ end function mean_3_int64_dp
201
+
112
202
end interface
113
203
114
204
end module
0 commit comments