#!/bin/csh ## for serial job # @ environment = COPY_ALL; # @ job_name = REGRID.job # @ output = regrid.out # @ error = regrid.err # @ checkpoint = no # @ wall_clock_limit = 1500 # @ class = com_reg # @ queue set TMPDIR=/ptmp/mm5$$ mkdir $TMPDIR cd $TMPDIR # ******************************************** # ****** fetch interactive/batch C shell ***** # ******* NCAR IBM's only ****** # ******* f90 only ****** # ******************************************** # This shell fetches ADP data from the NCAR MSS system and # converts it into a format suitable for the little_r # program. The data are sent back to the local machine and # stored on the NCAR MSS. # Three types of data files are created: # obs:DATE : Upper-air and surface data used as # input to little_R # surface_obs_r:DATE : Surface data needed for FDDA in lillte_r # (if no FDDA will be done, these are not # needed, since they are also contained # in obs:DATE) # upper-air_obs_r:DATE : Upper-air data (this file is contained # in obs:DATE file, and is not needed for # input to little_r) # # This should be the user's case or experiment (used in MSS name). # This is where the data will be stored on the MSS. set ExpName = MM5V3/TEST # MSS path name for output set RetPd = 365 # MSS retention period in days # Location where data are to be returned on local machine. set Host = username@host.domain:/usr/tmp/username # The only user inputs to the fetch program are the beginning # and ending dates of the observations, and a bounding box for the # observation search. These dates are given in YYYYMMDDHH. The # ADP data are global, and include the surface observations and # upper-air soundings. A restrictive bounding box (where # possible) reduces the cost substantially. # # Note: No observational data are available prior to 1973, and # no or limited surface observations are available # prior to 1976. set starting_date = 1993031300 set ending_date = 1993031400 set lon_e = 180 set lon_w = -180 set lat_s = -90 set lat_n = 90 # Is there a personal copy of the source? set UseMySource = yes # ######################################################## # ######## ######### # ######## END OF USER MODIFICATIONS ######### # ######## ######### # ######################################################## # Get source code. if ( $UseMySource == yes ) then rcp $Host/fetch.tar . else cp /fs/othrorgs/home0/mesouser/MM5V3/FETCH.TAR.gz fetch.tar.gz if ( ! -e fetch.tar.gz ) then msread fetch.tar.gz /MESOUSER/MM5V3/FETCH.TAR.gz endif endif gunzip fetch.tar.gz if ( ! -e fetch.tar ) then echo "The fetch.tar file does not exist. Stopping." exit ( 1 ) endif tar -xf fetch.tar rm fetch.tar ls -ls cd FETCH # Pull ADP surface data from the MSS. pushd adp_sfc ./fetch_adp_sfc.csh $starting_date $ending_date >&! fetch_sfc_print & # Build the conversion routine, set the namelist up. make m4 -Dxstryy=`echo $starting_date | cut -c1-4` \ -Dxstrmm=`echo $starting_date | cut -c5-6` \ -Dxstrdd=`echo $starting_date | cut -c7-8` \ -Dxstrhh=`echo $starting_date | cut -c9-10` \ -Dxendyy=`echo $ending_date | cut -c1-4` \ -Dxendmm=`echo $ending_date | cut -c5-6` \ -Dxenddd=`echo $ending_date | cut -c7-8` \ -Dxendhh=`echo $ending_date | cut -c9-10` \ -Dxloe=$lon_e -Dxlow=$lon_w -Dxlas=$lat_s -Dxlan=$lat_n \ namelist.template >! namelist.input # The msreads are in the background, wait for everyone # to catch up. wait # Run the program (convert data to little_r format). # At least a single file must exist for input. if ( ( -e A.1 ) || ( -e B.1 ) || ( -e E.1 ) || ( -e F.1 ) ) then ( timex ./adp_sfc.exe [ABEF].[1-9]* ) >&! adp_sfc_print endif # Send surface data to local machine and to MSS. set y = `echo $starting_date | cut -c1-4` set m = `echo $starting_date | cut -c5-6` set d = `echo $starting_date | cut -c7-8` set h = `echo $starting_date | cut -c9-10` if ( -e surface_obs_r:${y}-${m}-${d}_${h} ) then if ( -e surface_obs_r.tar ) rm surface_obs_r.tar if ( -e surface_obs_r.tar.gz ) rm surface_obs_r.tar.gz tar -cvf surface_obs_r.tar surface_obs_r* gzip surface_obs_r.tar mswrite -t $RetPd surface_obs_r.tar.gz ${ExpName}/SURFACE_OBS_R.TAR.gz & rcp surface_obs_r.tar.gz $Host endif popd # Pull ADP upper-air data from the MSS pushd adp_upa ./fetch_adp_upa.csh $starting_date $ending_date >&! fetch_upa_print & # Build the conversion routine, set the namelist up. make m4 -Dxstryy=`echo $starting_date | cut -c1-4` \ -Dxstrmm=`echo $starting_date | cut -c5-6` \ -Dxstrdd=`echo $starting_date | cut -c7-8` \ -Dxstrhh=`echo $starting_date | cut -c9-10` \ -Dxendyy=`echo $ending_date | cut -c1-4` \ -Dxendmm=`echo $ending_date | cut -c5-6` \ -Dxenddd=`echo $ending_date | cut -c7-8` \ -Dxendhh=`echo $ending_date | cut -c9-10` \ -Dxloe=$lon_e -Dxlow=$lon_w -Dxlas=$lat_s -Dxlan=$lat_n \ namelist.template >! namelist.input # The msreads are in the background, wait for everyone # to catch up. wait # Run the program (convert data to little_r format). # At least a single file must exist for input. if ( -e UPA.1 ) then ( timex ./adp_upa.exe UPA.* ) >&! adp_upa_print endif # Send upper-air data to local machine and to MSS. set y = `echo $starting_date | cut -c1-4` set m = `echo $starting_date | cut -c5-6` set d = `echo $starting_date | cut -c7-8` set h = `echo $starting_date | cut -c9-10` if ( -e upper-air_obs_r:${y}-${m}-${d}_${h} ) then if ( -e upper-air_obs_r.tar ) rm upper-air_obs_r.tar if ( -e upper-air_obs_r.tar.gz ) rm upper-air_obs_r.tar.gz tar -cvf upper-air_obs_r.tar upper-air_obs_r* gzip upper-air_obs_r.tar mswrite -t $RetPd upper-air_obs_r.tar.gz ${ExpName}/UPPER-AIR_OBS_R.TAR.gz & rcp upper-air_obs_r.tar.gz $Host if ( -e obs.tar ) rm obs.tar if ( -e obs.tar.gz ) rm obs.tar.gz foreach fil ( upper-air_obs_r:* ) set dd = ` echo $fil | cut -c17-30 ` set fil2 = ../adp_sfc/surface\*{$dd} cat $fil > obs:$dd cat $fil2 >> obs:$dd end tar -cvf obs.tar obs* gzip obs.tar mswrite -t $RetPd obs.tar.gz ${ExpName}/OBS.TAR.gz & rcp obs.tar.gz $Host endif popd # Put additional files on MSS. These are the standard out # files from the ADP program processing. cp adp_sfc/adp_sfc_print . cp adp_sfc/fetch_sfc_print . cp adp_upa/adp_upa_print . cp adp_upa/fetch_upa_print . cp adp_upa/namelist.input . tar -cvf fetch_info.tar adp_sfc_print adp_upa_print namelist.input fetch_sfc_print fetch_upa_print mswrite -t ${RetPd} fetch_info.tar ${ExpName}/FETCH_INFO.TAR & # Print the standard out in this file for the user's benefit. echo ADP_SFC fetch print cat fetch_sfc_print echo ADP_SFC print cat adp_sfc_print echo ADP_UPA fetch print cat fetch_upa_print echo ADP_UPA print cat adp_upa_print echo NAMELIST cat namelist.input echo "DONE" exit