= Fortran = {{tag>Language Fortran}} = gFortran에서 행 길이 제한 무시 = gfortran -ffree-line-length-none xxx.f90 # -ffree-line-length-0 = Command line으로 Arguments를 받고 저장, 출력 = * 배열의 시작이 0이 아닌 1. PROGRAM test_getarg INTEGER :: i CHARACTER(len=32) :: arg !CHARACTER(len=32) args(10) ! 동적 배열 선언 및 할당 CHARACTER(len=50), DIMENSION (:), ALLOCATABLE :: args allocate(args(iargc())) DO i = 1, iargc() ! CALL getarg(i, arg) ! read(arg,*) args(i) CALL getarg(i, args(i)) args(i) = TRIM(args(i)) END DO print *,size(args) do i = 1, iargc() print *,args(i) end do ! 할당 해제 deallocate(args) END PROGRAM = String, Integer 상호 변환 = * https://gcc.gnu.org/onlinedocs/gfortran/ICHAR.html program read_val integer value character(len=10) string, string2 string = '154' ! Convert a string to a numeric value read (string,'(I10)') value print *, value ! Convert a value to a formatted string write (string2,'(I10)') value print *, string2 end program read_val == Command Line 응용 == PROGRAM test_getarg INTEGER :: i CHARACTER(len=8) :: arg INTEGER, DIMENSION (:), ALLOCATABLE :: args allocate(args(iargc())) DO i = 1, iargc() CALL getarg(i, arg) read(arg,'(I10)') args(i) END DO !print DO i = 1, SIZE(args) print *, args(i) end do deallocate(args) END PROGRAM = 문자열 동적 할당 = PROGRAM test CHARACTER(len=128) :: arg CHARACTER(len=:), ALLOCATABLE :: path INTEGER date(3) CALL getarg(1, arg) path = TRIM(arg) DO i=1, 3 CALL getarg(i+1, arg) READ(arg,'(I10)') date(i) END DO print *,LEN(path) print *,"path : ",path," /// ",date(1),date(2),date(3) END PROGRAM