Dostęp do elementów zwróconej tablicy w Fortran

Jak uzyskać dostęp do elementu tablicy zwracanego z funkcji? Na przykład,shape() zwraca tablicę liczb całkowitych. Jak porównać element tej tablicy do liczby całkowitej? Poniższe informacje nie są kompilowane:

integer :: a
integer, dimension(5) :: b

a = 5
if (a .eq. shape(b)) then
    print *, 'equal'
end if

Błąd jest:

if (a .eq. shape(c)) then
    1
Error: IF clause at (1) requires a scalar LOGICAL expression

Rozumiem, że to dlatego, żeshape(c) zwraca tablicę. Jednak dostęp do elementu tablicy nie wydaje się możliwy w ten sposób:shape(c)(1)

Teraz, jeśli dodam te dwie linie:

integer, dimension(1) :: c
c = shape(b)

... i zmieńif klauzula do tego:

if (a .eq. c(1)) then

... to działa. Ale czy naprawdę muszę zadeklarować dodatkową zmienną tablicową, aby pomieścić zwracaną wartośćshape(), czy jest jakiś inny sposób na to?

questionAnswers(4)

yourAnswerToTheQuestion