<HTML> <BODY BGCOLOR=#ccccdd LINK=#0000aa VLINK=#0000ff ALINK=#ff0000 ><BASE TARGET="bottom_target"><PRE> <A NAME='MODULE_GPSPW'><A href='../../html_code/obsproc/module_gpspw.F90.html#MODULE_GPSPW' TARGET='top_target'><IMG SRC="../../gif/bar_purple.gif" border=0></A>MODULE module_gpspw !------------------------------------------------------------------------------! ! Read in integrated precipitable water measurement from GPS stations coming ! from data files provided by CAA or GST. ! ! F. VANDENBERGHE, March 2001 !------------------------------------------------------------------------------! CONTAINS !------------------------------------------------------------------------------! <A NAME='READ_OBS_GPSPW'><A href='../../html_code/obsproc/module_gpspw.F90.html#READ_OBS_GPSPW' TARGET='top_target'><IMG SRC="../../gif/bar_red.gif" border=0></A>
SUBROUTINE read_obs_gpspw (filename, filenum, obs, n_obs, &,7 total_number_of_obs, fatal_if_exceed_max_obs, & time_window_min, time_analysis, time_window_max,& ins, jew, missing_flag, print_gpspw_read) !SUBROUTINE read_obs_gpspw (filename, filenum, gpspw_file_format) !------------------------------------------------------------------------------! USE module_gpspw_caa
USE module_gpspw_gst
IMPLICIT NONE CHARACTER (LEN = 80), INTENT (in) :: filename INTEGER, INTENT (in) :: filenum INTEGER, INTENT (inout) :: n_obs INTEGER, INTENT (in) :: total_number_of_obs LOGICAL, INTENT (in) :: fatal_if_exceed_max_obs TYPE (report), DIMENSION (:), INTENT (out) :: obs INTEGER, INTENT (in) :: ins, jew CHARACTER (LEN = 19), INTENT (in) :: time_window_min CHARACTER (LEN = 19), INTENT (in) :: time_analysis CHARACTER (LEN = 19), INTENT (in) :: time_window_max REAL, INTENT (out) :: missing_flag LOGICAL, INTENT (in) :: print_gpspw_read ! CHARACTER (LEN=*), INTENT (out) :: gpspw_file_format INTEGER :: io_error CHARACTER (LEN = 80) :: header CHARACTER (LEN = 32), PARAMETER :: proc_name ='read_obs_gpspw ' !------------------------------------------------------------------------------! ! WRITE (UNIT = 0, FMT = '(A)') & !'-----------------------------------------------------------------------------' ! WRITE (UNIT = 0, FMT = '(A,A,/)') & ! 'READ GPS OBSERVATIONS IN FILE: ', TRIM (filename) ! 1. OPEN INPUT FILE AND RED HEADER ! ================================== ! 1.1 Open input file ! --------------- OPEN (UNIT = filenum, FILE = filename, FORM='formatted', ACTION = 'read',& IOSTAT = io_error) IF (io_error .NE. 0 ) THEN CALL error_handler
(proc_name, "Unable to open input file ", & filename, .TRUE.) ! ELSE ! WRITE (UNIT = 0, FMT = '(A,A,/)') & ! "Diagnostics in file ", TRIM (filename) ENDIF ! 1.2 Read header ! ----------- REWIND (filenum) READ (UNIT = filenum, FMT = '(A)', IOSTAT = io_error) header IF (io_error .NE. 0 ) THEN CALL error_handler
(proc_name, "Unable to read input file ", & filename, .TRUE.) ENDIF ! 1.3 Close input file ! ---------------- CLOSE (filenum) ! 2. CALL GPSPW READ ROUTINE UPON HEADER ! ====================================== ! 2.1 CAA GPS PW data ! --------------- IF (TRIM (header) == 'GPS STATIONS IN TAIWAN:') THEN CALL read_gpspw_caa
(filename, filenum, obs, n_obs, & total_number_of_obs, fatal_if_exceed_max_obs, & time_window_min, time_analysis, time_window_max,& ins, jew, missing_flag, print_gpspw_read) ! gpspw_file_format = 'CAA' ! 2.1 GST GPS PW data ! --------------- ELSE IF (TRIM (header) == & ' STN YYYYMMDD/HHMM PWV[mm] ERR[mm] ZWD[mm] PALT TMPC RELH') THEN CALL read_gpspw_gst
(filename, filenum, obs, n_obs, & total_number_of_obs, fatal_if_exceed_max_obs, & time_window_min, time_analysis, time_window_max,& ins, jew, missing_flag, print_gpspw_read) ! gpspw_file_format = 'GST' ELSE CALL error_handler
(proc_name, "Don`t know how to read file ", & filename, .TRUE.) ! gpspw_file_format = 'UNKNOWN' ENDIF END SUBROUTINE read_obs_gpspw END MODULE module_gpspw