Unary wrapper contracting an array with a smaller array. String name "cont". Uses realParams as the contracting array. The input size is assumed to be evenly divided by size(realParams) and by intParams(1). The input does not have to have size equal to size(realParams)*intParams(1). intParams(1) determines the expected size of the output, while intParams(2) determines which of the strided slices is returnd. See below for example.
Contraction is performed on strided slices of the input of length size(realParams). The strides are determined by intParams(1). For example, contracting [1,2,3,4,5,6,7,8] with [1,2] yields the intermediate result [5,11,17,23]. Then if intParams(1) is , we are looking to get a result of length 1. If intParams(2) is then 2, we get [11]. If intParams(1) is 2, we want a result of length 2, sampled evenly from the contracted array (this is useful for ReMKiT1D's flattened represenation of distributions). If intParams(2) is 1, we get [5,17], and if intParams(2) is 2, we get [11,23]
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rk), | intent(in), | dimension(:) | :: | input | ||
real(kind=rk), | intent(in), | optional, | dimension(:) | :: | realParams | |
integer(kind=ik), | intent(in), | optional, | dimension(:) | :: | intParams | |
logical, | intent(in), | optional, | dimension(:) | :: | logicalParams |