Every Fortran source has a program unit. implicit none disables Fortran's legacy implicit typing, so every name must be declared.

Program

Play the program to watch a character name flow into a greeting and print.

hello.f90
program hello
    implicit none
    character(len=20) :: name
    name = "Ada"
    print '(A)', "Hello, " // trim(name) // "!"
end program hello
program `program ... end program` wraps the main entry point.
implicit none `implicit none` forces every variable to be explicitly declared.
// and trim `//` concatenates strings; `trim` removes trailing blanks.