def run(time: datetime, altkm: float,<EOL>glat: Union[float, np.ndarray], glon: Union[float, np.ndarray], *,<EOL>f107a: float = None, f107: float = None, Ap: int = None) -> xarray.Dataset:
glat = np.atleast_2d(glat)<EOL>glon = np.atleast_2d(glon)  <EOL><INDENT>altitude <NUM_LIT:1>-D<EOL><DEDENT>if glat.size == <NUM_LIT:1> and glon.size == <NUM_LIT:1> and isinstance(time, (str, date, datetime, np.datetime64)):<EOL><INDENT>atmos = rungtd1d(time, altkm, glat.squeeze()[()], glon.squeeze()[()],<EOL>f107a=f107a, f107=f107, Ap=Ap)<EOL>
loops the rungtd1d function below. Figure it's easier to troubleshoot in Python than Fortran.