! Program Example from "Essential Fortran 90 & 95" by Loren P. Meissner
! Copyright 1996. Copying for sale requires permission from the author.
! Otherwise, distribution is permitted if these three lines are included.

! Example 6.18.
  module G18M
    use Element_M
    implicit none
    private  ! Required because this module imports another module
    public :: Show
    type, private :: City_Data
      character (len = 20) :: City_Name
      real :: Latitude, Longitude
    end type City_Data
    type (City_Data), private, save :: San_Francisco = City_Data( "San Francisco", 37.8, 122.4 )
  contains
    subroutine Show( )
      type (Chem_El_Type_1), save :: Linoleum = Chem_El_Type_1( "LINOLEUM", "Lo", 0, 0.0 )
  ! start subroutine Show
      write (unit = *, fmt = *) Linoleum
      write (unit = *, fmt = *) San_Francisco
      return
    end subroutine Show
  end module G18M

