In ECMWF NEMO sbccpl.f90 this WHERE construct.
WHERE( picefr(:,:) > 1.e-10 ) ; zevap_ice(:,:,1) = frcv(jpr_ievp)%z3(:,:,1) * SUM( a_i_last_couple, dim=3 ) / picefr(:,:)
ELSEWHERE ; zevap_ice(:,:,1) = 0._wp
END WHERE
is converted to:
do widx2_2 = 1, SIZE(picefr, 2), 1
do widx1_2 = 1, SIZE(picefr, 1), 1
if (picefr(widx1_2,widx2_2) > 1.e-10) then 1
zevap_ice(widx1_2,widx2_2,1) = frcv(jpr_ievp)%z3(widx1_2,widx2_2,1) * SUM(a_i_last_couple, dim=3) / picefr(widx1_2,widx2_2)
else
zevap_ice(widx1_2,widx2_2,1) = 0._wp
end if
enddo
enddo
Which produces the compiler error: The shapes of the array expressions do not conform. [ZEVAP_ICE]
I am not sure what the error is, but it is a nested WHERE (#1651 ?) with array elements ( #717 ?) and it uses 1, SIZE instead of L/UBound which could cause troubles with non-standard bounds.
UPDATE: This doesn't produce invalid code anymore, but it is still a CodeBlock
In ECMWF NEMO sbccpl.f90 this WHERE construct.
is converted to:
Which produces the compiler error:
The shapes of the array expressions do not conform. [ZEVAP_ICE]I am not sure what the error is, but it is a nested WHERE (#1651 ?) with array elements ( #717 ?) and it uses 1, SIZE instead of L/UBound which could cause troubles with non-standard bounds.
UPDATE: This doesn't produce invalid code anymore, but it is still a CodeBlock