subroutine cosset (value, limits, eval) character*(*) value character*2 limits real eval(2) logical ok character*80 mesage character*1 symbol, symend lenval = len(value) ok = lenval .ge. 3 if (ok) then ix = index (value(2:), '-') + 1 ok = ix .ne. 1 .and. ix .ne. lenval if (ok) then symend = value(lenval:lenval) call shiftup (symend) symbol = value(ix-1:ix-1) call shiftup (symbol) if (index(limits, symend) .ne. 0 .and. 2 index(limits, symbol) .eq. 0) then c allow 32-33N or 33-35S lenmes = 0 call append (value(:ix-1), mesage, lenmes) call append (symend, mesage, lenmes) call coord (mesage(:lenmes), limits, eval(1), ok) else call coord (value(:ix-1), limits, eval(1), ok) end if call coord (value(ix+1:), limits, eval(2), ok) end if end if if (limits .eq. 'SN') then kase = 1 if (eval(1) .gt. eval(2)) then temp = eval(1) eval(1) = eval(2) eval(2) = temp end if else if (limits .eq. 'WE') then kase = 2 if (eval(1) .gt. eval(2)) print *, 2 'Note: Search area crosses 180 degree meridian' else call abort ('Lat/lon suffixes neither ''WE'' nor ''SN''') end if if (.not.ok) then lenmes = 0 call append ('Unsuitable value for coordinate range: ', 2 mesage, lenmes) call append (value, mesage, lenmes) call abort (mesage(:lenmes)) end if return end