Chciałbym przeczytać w niektórych ciągach tekstowych z wiersza polecenia używanego do uruchomienia programu. Używam wewnętrzny podprogram GET_COMMAND_ARGUMENT
w programie, który w zasadzie jest coś takiego:Jak zdobyć argumenty wiersza poleceń o nieznanej długości w Fortranie?
program test
character(len=100) :: argument
call GET_COMMAND_ARGUMENT(1,argument)
print*, argument
end program test
chodzi tu o to, że czuję, że to trochę niebezpieczne, aby ustawić maksymalną długość łańcucha w czasie kompilacji. Niektóre z argumentów są zwykle plikami z ich ścieżką, więc mogą być bardzo długie. Rozwiązanie polegające na ustawieniu długości statycznie na 1000 brzmi jak brzydkie obejście.
Nie ma bardziej eleganckiego sposobu w Fortranie, aby zdefiniować ciąg znaków, który może zawierać łańcuch znaków, którego długość jest znana tylko w czasie wykonywania?
Twoje podejście jest o wiele lepsze, jakoś zapomniałem tego argumentu. –
Być może warto również zauważyć, że to podejście działa również dla 'get_environment_variable'. – francescalus
Dzięki, to bardzo pomaga i rzeczywiście rozwiązuje pytanie.Mam tylko drobne pytanie, dlaczego konieczne jest raczej zawiłe "przydzielić (argument (część długości) :: zamiast prostszego" przydzielić (argument (trochę długości)) " – Onturenio