program fmain use mkprocdata_map, only : mkmap implicit none character(len= 256) :: arg integer :: n !index integer :: nargs !number of arguments integer, external :: iargc !number of arguments function character(len=256) :: filei !input file character(len=256) :: fileo !output mapped file character(len=256) :: fmap !maping file character(len=256) :: ftemplate !template file, containing lat & lon arrays desired in output file character(len=256) :: cmdline !input command line integer, parameter :: inival = -999 !initial value for command-line integers !---------------------------------------------------- filei = ' ' fileo = ' ' fmap = ' ' ftemplate = ' ' cmdline = 'mkprocdata_map' nargs = iargc() n = 1 do while (n <= nargs) arg = ' ' call getarg (n, arg) n = n + 1 select case (arg) case ('-i') call getarg (n, arg) n = n + 1 filei = trim(arg) cmdline = trim(cmdline) // ' -i ' // trim(arg) case ('-o') call getarg (n, arg) n = n + 1 fileo = trim(arg) cmdline = trim(cmdline) // ' -o ' // trim(arg) case ('-m') call getarg (n, arg) n = n + 1 fmap = trim(arg) cmdline = trim(cmdline) // ' -m ' // trim(arg) case ('-t') call getarg (n, arg) n = n + 1 ftemplate = trim(arg) cmdline = trim(cmdline) // ' -t ' // trim(arg) case default write (6,*) 'Argument ', arg,' is not known' call usage_exit (' ') cmdline = trim(cmdline) // ' ' // trim(arg) end select end do if (filei == ' ' .or. fileo == ' ' .or. fmap == ' ' & .or. ftemplate == ' ') then call usage_exit ('Must specify all the following arguments') end if call mkmap (filei, fileo, fmap, ftemplate) end program fmain subroutine usage_exit (arg) implicit none character(len=*) :: arg if (arg /= ' ') write (6,*) arg write (6,*) 'Usage: mkprocdata_map -i -o -m -t