module ABC141

  ! <module>s to import
  use, intrinsic :: iso_fortran_env

  ! require all variables to be explicitly declared
  implicit none

  ! accessibility of <subroutine>s and <function>s in this <module>
  public :: task_A

  ! contained <subroutine>s and <function>s are below
  contains

  subroutine task_A

    ! variables for this <subroutine>
    character(len=10, kind=1) :: buffer

    ! STEP.01
    ! read out the given string
    read(unit=INPUT_UNIT, fmt='(A)') buffer

    ! STEP.02
    ! output the answer of this task
    if (trim(buffer) .eq. 'Sunny') then
      write(unit=OUTPUT_UNIT, fmt='(A)', advance='yes') 'Cloudy'
    else if (trim(buffer) .eq. 'Cloudy') then
      write(unit=OUTPUT_UNIT, fmt='(A)', advance='yes') 'Rainy'
    else
      write(unit=OUTPUT_UNIT, fmt='(A)', advance='yes') 'Sunny'
    end if

    ! STEP.END
    return

  end subroutine task_A

end module ABC141


program main

  ! <module>s to import
  use, non_intrinsic :: ABC141

  ! require all variables to be explicitly declared
  implicit none

  call task_A

end program main