Attualmente sto imparando FORTRAN (ho familiarità con MatLab) e sono molto confuso riguardo al punto delle subroutine. Perché qualcuno dovrebbe usarli al contrario delle funzioni. Inoltre, come è possibile che possano restituire i valori quando vengono chiamati nei programmi principali? Ad esempio:
PROGRAM SUBDEM
REAL A,B,C,SUM,SUMSQ
CALL INPUT( + A,B,C)
CALL CALC(A,B,C,SUM,SUMSQ)
CALL OUTPUT(SUM,SUMSQ)
END
SUBROUTINE INPUT(X, Y, Z)
REAL X,Y,Z
PRINT *,'ENTER THREE NUMBERS => '
READ *,X,Y,Z
RETURN
END
SUBROUTINE CALC(A,B,C, SUM,SUMSQ)
REAL A,B,C,SUM,SUMSQ
SUM = A + B + C
SUMSQ = SUM **2
RETURN
END
SUBROUTINE OUTPUT(SUM,SUMSQ)
REAL SUM, SUMSQ
PRINT *,'The sum of the numbers you entered are: ',SUM
PRINT *,'And the square of the sum is:',SUMSQ
RETURN
END
La mia domanda è essenzialmente, come faccio a sapere cosa restituisce ogni subroutine? Grazie.