module name implicit none private some declarations public :: names of public stuff contains some subroutines/functions end module name