Ho bisogno in un programma di passare alcuni array allocabili a subroutine, e ho bisogno di sapere se il modo in cui lo faccio sono nello standard o no.fortran, passando gli array allocabili a una subroutine con limiti a destra
Se sai dove posso cercare lo standard di Fortran, Dimmi per favore.
Ecco un po 'di codice che verrà spiegare meglio di quanto le parole
program test
use modt99
implicit none
real(pr), dimension(:), allocatable :: vx
allocate(vx(-1:6))
vx=(/666,214,558,332,-521,-999,120,55/)
call test3(vx,vx,vx)
deallocate(vx)
end program test
con il modulo modt99
module modt99
contains
subroutine test3(v1,v2,v3)
real(pr), dimension(:), intent(in) :: v1
real(pr), dimension(0:), intent(in) :: v2
real(pr), dimension(:), allocatable, intent(in) :: v3
print*,'================================'
print*,v1(1:3)
print*,'================================'
print*,v2(1:3)
print*,'================================'
print*,v3(1:3)
print*,'================================'
end subroutine test3
end module modt99
sullo schermo, ho
================================
666.000000000000 214.000000000000 558.000000000000
================================
214.000000000000 558.000000000000 332.000000000000
================================
558.000000000000 332.000000000000 -521.000000000000
================================
Così sono i tre modi di argomenti fittizi in subroutine test3 legale (in quale versione di fortran, 90, 95, 2003?) e sono il loro comportamento normale?
grazie per la risposta, mi aiuterà molto. Nel link che dai, sembra che sia ok anche in f95 o no? – user2910558
* Tutti * I documenti standard vengono forniti qui, a partire da * Fortran per IBM 704 * (1957!). –