This README for library routines is generated by running the following: ~oplapb/bin/libsummary.csh | tee README To improve the documentation, more 'cdoc' comments can be added to individual library source code files. The 'cdoc' in each flagged comment line will be keyed by this script. These comments should briefly (generally in one or two lines) explain the purpose of each subroutine or function. add.f subroutine add(a,b,result,imax,jmax) Routine to add array 'b' to array 'a' and put the result into array 'result' . subroutine add_miss(a,b,result,imax,jmax) Routine to add array 'b' to array 'a' and put the result into array 'result'. This takes account of 'r_missing_data'. addcon.f subroutine addcon(a,con,result,imax,jmax) Routine to add the constant 'con' to array 'a' and put the result into array 'result'. subroutine addcon_miss(a,con,result,imax,jmax) Routine to add the constant 'con' to array 'a' and put the result into array 'result'. This takes account of 'r_missing_data'. advect.f subroutine advect(u,v,array_in,array_buf,grid_spacing_m subroutine cpt_advection(field,u,v,dx,dy,ni,nj,advection) array_diagnosis.f subroutine array_diagnosis(a,imax,jmax,name) subroutine get_mxmn_2d(nx,ny,array_2d,rmx2d,rmn2d aski4tim_gg.f function aski4t_gg(time) atan3.f FUNCTION ATAN3(X,Y) atan3d.f FUNCTION ATAN3D(X,Y) barnes_multivariate.f subroutine barnes_multivariate subroutine barnes_multivariate_sub subroutine get_fnorm_max(imax,jmax ! I subroutine get_rms_barnesobs(u,ni,nj,nk,r_missing_data,nobs ! I/O function fnorm_calc(iii,r0_norm_sq,exp_offset,expm80) subroutine arrays_to_barnesobs(imax,jmax,kmax ! I subroutine get_time_wt(i4time_sys,i4time_ob,time_wt,istatus) bilinear_interp.f subroutine bilinear_interp (n1,m1,g1,n2,m2,g2,dn,dm) block_data.f climate_sm.f subroutine climate_sm(v_lat, !input subroutine det_mix_rat_sm(press, temp, dewpt_dep, real function sat_pt_sm(press, temp) real function vpice_sm(temp) function satvap_sm(temp) subroutine calday(nyrday,kyear,nmon,kalday,mon) constant.f subroutine constant(a,const,imax,jmax) subroutine constant_i(a,iconst,imax,jmax) subroutine constant_3d(a,const,imax,jmax,kmax) convc2f.f subroutine conv_c2f(t_c,t_f,imax,jmax) conversions.f function omega_to_w(omega,pressure_pa) Convert Omega to W function w_to_omega(w,pressure_pa) Convert W to Omega subroutine latlon_to_radar(lat_grid,lon_grid,height_grid Convert Lat/Lon/Elev to Radar Azimuth / Slant Range / Elevation Angle function height_to_zcoord(height_m,istatus) ! Using standard atmosphere Convert Height to fractional Z-coordinate Note that this routine works with the standard atmosphere. When the vertical grid is pressure, the height is converted to pressure, then the interpolation to the vertical grid is performed. Thus if the height is midway between two LAPS levels in height space, the value of height_to_zcoord will not have a fraction of 0.5. If the pressure is midway between two LAPS levels, then the value of height_to_zcoord will have a fraction of 0.5. function height_to_zcoord2(height_m,heights_3d Convert from Height to fractional Z-coordinate. 3-D Heights are used as a reference. Note that this routine works with the real atmosphere. When the vertical grid is pressure (e.g.), the height is converted to pressure, then the interpolation to the vertical grid is performed. Thus if the height is midway between two LAPS levels in height space, the value of 'height_to_zcoord3' will not have a fraction of 0.5. If the pressure is midway between two LAPS levels, then the value of 'height_to_zcoord3' will have a fraction of 0.5. function height_to_zcoord3(height_m,heights_3d,zcoords_1d Convert from Height to fractional Z-coordinate. 3-D Heights and 1-D Z-coordinate values are used as a reference. Note that this routine works with the real atmosphere. The type of interpolation is similar to that in 'height_to_zcoord2'. When the vertical grid is pressure (e.g.), the height is converted to pressure, then the interpolation to the vertical grid is performed. Thus if the height is midway between two LAPS levels in height space, the value of 'height_to_zcoord3' will not have a fraction of 0.5. If the pressure is midway between two LAPS levels, then the value of 'height_to_zcoord3' will have a fraction of 0.5. function height_to_pressure(height_m,heights_3d Convert height to pressure, using 3-D heights and 1-D pressures as a reference. subroutine pressure_to_height(pres_pa,heights_3d Convert Pressure to Height, using a 3-D Height field for reference subroutine pres_to_ht(pres_pa,pres_3d,heights_3d Convert Pressure to Height, using 3-D Pres & Ht fields for reference This currently does a linear interpolation in the vertical. We can change this to a log interpolation later if needed. function height_of_level(level) Calculate the height of a given pressure level, using standard atmos. Works only for constant pressure levels function zcoord_of_level(level) Calculate zcoord (e.g. pressure) of a given level. Works only for constant pressure levels function pressure_of_level(level) Calculate pressure of a given integer level. Works only for constant pressure levels function pressure_of_rlevel(rlevel) Obtain pressure of a given real (fractional) level. Works only for constant pressure levels function rlevel_of_field(value,field_3d,ni,nj,nk,i,j,istatus) Find z coordinate given a field value, i, j, and the whole 3-D field function rlevel_of_logfield(value,field_3d,ni,nj,nk,i,j,istatus) Find z coordinate given a field value, i, j, and the whole 3-D field Log vertical interpolation is used. Warning: under construction as log code is not yet in place. function zcoord_of_pressure(pres_pa) Convert pressure to a real (fractional) level. Works only for constant pressure levels. function zcoord_of_logpressure(pres_pa) Convert pressure to a real (fractional) level in log space. Works only for constant pressure levels. subroutine uvgrid_to_radar(u_grid, ! I Convert U and V (grid north) to Tangential and Radial velocity, given the radar azimuth and geographic longitude. subroutine uvtrue_to_radar(u_true, ! I Convert U and V (true north) to Tangential and Radial velocity, given the radar azimuth. subroutine uvgrid_to_disptrue(u_grid, ! I Convert U and V (grid north) to DIR and SPEED (true north), given the longitude. subroutine disptrue_to_radar(di_true, ! I Convert DIR and SPEED (true north) to Tangential and Radial velocity, given the radar azimuth. subroutine radar_to_uvgrid(t_radar, ! I Convert Tangential and Radial velocity to U and V (grid north), given the radar azimuth and geographic longitude. subroutine radar_to_uvtrue(t_radar, ! I Convert Tangential and Radial velocity to U and V (true north), given the radar azimuth. subroutine radar_to_disptrue(di_true, ! O Convert Tangential and Radial velocity to DIR and SPEED (true north), given the radar azimuth. subroutine disptrue_to_uvgrid(di_true, ! I Convert DIR and SPEED (true north) to U and V (grid north) subroutine uvtrue_to_uvgrid(u_true, ! I Convert wind vector from true north to grid north, given the longitude. subroutine uvgrid_to_uvtrue(u_grid, ! I Convert wind vector from grid north to true north, given the longitude subroutine rotate_vec(u1,v1,u2,v2,angle) Rotate vector (u1,v1) through an angle to obtain vector (u2,v2) subroutine disp_to_uv(dir, Convert DIR and SPEED to U and V subroutine uv_to_disp(u, Convert U and V to DIR and SPEED function k_to_f(x) Convert Kelvin to Fahrenheit function f_to_k(x) Convert Fahrenheit to Kelvin function k_to_c(x) Convert Kelvin to Celsius function c_to_k(x) Convert Celsius to Kelvin function f_to_c(x) Convert Fahrenheit to Celsius function c_to_f(t_c) Convert Celsius to Fahrenheit subroutine conv_meters_to_inches(data_in, numarr,prodno, convf2c.f subroutine conv_f2c(t_f,t_c,imax,jmax) convf2k.f subroutine conv_f2k(t_f,t_k,imax,jmax) convk2f.f subroutine conv_k2f(t_k,t_f,imax,jmax) convkt2ms.f subroutine conv_kt2ms(kt,ms,imax,jmax) convm2miles.f subroutine conv_m2miles(m,miles,imax,jmax) convmiles2m.f subroutine conv_miles2m(miles,m,imax,jmax) convms2kt.f subroutine conv_ms2kt(ms,kt,imax,jmax) diff.f subroutine diff(a,b,result,imax,jmax) subroutine diff_3d(a,b,result,imax,jmax,kmax) subroutine diff_miss(a,b,result,imax,jmax) Routine to subtract array 'b' from array 'a' and put the result into array 'result'. This takes account of 'r_missing_data' downcase.f subroutine downcase(input,output) esat1.f subroutine esat1(t,es,ni,nj) fflxc.f SUBROUTINE FFLXC(NI,NJ,M,SCALE,uh,vh,field,flxcnv,lat,lon Calculates convergence given a wind field rotated to the map projection subroutine get_sigma(rlat,rlon,sigma,istatus) Sigma (map factor) is defined to be one when we are located in the intersection of the projection plane and the earth's surface. It varies from unity elsewhere. filename13.f function filename13(i4time,ext) filter_filenames.f subroutine Filter_non_numeric_fnames(c_fnames, Routine takes the result of 'get_file_names' and filters it for certain filename types. It tests the first two characters fname_conversions.f function a10_to_a9(a10_time,istatus) Convert a10_time (yyMMddhhmm) to a9_time (yydddhhmm) function yr_a10_to_a9(a10_time) Convert a10_time (yyyyMMddhh) to a9_time (yydddhhmm) function a9_to_yr_a10_time(a9_time,istatus) Convert a9_time (yydddhhmm) to a10_time (yyyyMMddhh) function a8_to_a9(a8_time) Convert a8_time (yyMMddhh) to a9_time (yydddhhmm) function a9_to_a8(a9_time) Routine to convert LAPS 'yyjjjhhmm' time to 'yymmddhh' time. function rsa13_to_a9(rsa13_time) Convert rsa13_time (yyyyjjjhhmmss) to a9_time (yyjjjhhmm) function a9_to_rsa13(a9_time) Convert a9_time (yyjjjhhmm) to rsa13_time (yyyyjjjhhmmss) function a7_to_a9_time(a7_time) Routine takes FA (CWB) model intial time, as described below, and converts (make_fa_valtime, a9_to_a7_time, make_fa_ext, and fname13_to_FA_filename) take the FA model filename extension and convert it to a 4 character valid time, or vice versa. function a9_to_a7_time(a9_time) function fname13_to_FA_filename(fname13,cmodel) function c4_FA_valtime(c_FA_ext) function c3_FA_ext(a4_string) function wrftolaps_c6_maprojname(map_proj_name) fsystem_dum.f function fsystem_dum() gen_bl_file.f subroutine gen_bl_file (i4time,pb,igrid,jgrid,istatus) gen_btemps.f subroutine gen_btemps (kk,temp,pres,sfc_temp,sfc_pres,q, real zenith !external function get_cloud_deriv.f subroutine get_cloud_deriv(ni,nj,nk,clouds_3d,cld_hts, This routine calculates SLWC, Cloud Type, MVD, and Icing Index This routine also does the Cloud Bogussed Omega and the Snow Potential. subroutine cpt_pcp_type_3d(temp_3d,rh_3d_pct,pres_3d Compute 3D Precip Type given profiles of T, RH, Reflectivity subroutine get_sfc_preciptype(pres_2d,t_sfc_k,td_sfc_k Compute Sfc Precip Type, given both sfc and 3D fields subroutine get_slwc1d(nk,cbase_m,ctop_m,kbase,ktop Determine cloud liquid profile within a given cloud layer subroutine integrate_slwc(slwc,heights_3d,imax,jmax,kmax Integrates cloud liquid through the column subroutine get_mvd(itype,rmvd) rmvd Output Mean Volume Diameter in microns, given cloud type subroutine get_cloudtype(temp_k,d_thetae_dz Determine Cloud Type, given temperature and stability d(theta(e))/dz subroutine get_stability(nk,temp_1d,heights_1d,pressures_mb This routine returns stability at a given level given 1D array inputs Saturation is assumed and d(theta(e))/dz is returned subroutine isi3(slw,temp,ictype,iptype,xindex) routine to calculate icing severity index function wb_melting_threshold(t_c,dbz) This function calculates the wet-bulb threshold for melting snow into rain as a function of dbz and t_c. subroutine nowrad_virga_correction(r_pcp_type_2d, Correct precip type for snow drying in sub-cloud layer based on sfc rh get_dir_length.f subroutine get_directory_length(c_fname,lenf) This routine takes as input a full path filename and returns an index that points at the end of the directory portion of the pathname. subroutine get_time_length(c_fname,lenf) This routine takes as input a full path filename and returns an index that points at the end of the filetime portion of the pathname. subroutine s_len(string,s_length) This routine receives a fortran string, and returns the number of characters in the string before the first "space" is encountered. subroutine get_fname_length(c_fname,lenf) This routine takes as input a full path filename and returns the length of the filename portion of the path. subroutine get_filetime_length(c_fname,lent) This routine takes as input a full path filename and returns the length of the file time length portion of the path. subroutine get_filetime_type(c_fname,c20_type,leni,lent) This routine takes as input a full path filename and returns the length and type of the file time length portion of the path. subroutine filter_string(string) This routine filters a fortran string of unprintable characters function l_string_contains(string,substring,istatus) Returns boolean on whether 'string' contains 'substring' The 'string' and 'substring' should be free of blanks. function l_parse(string1,string2) Returns boolean on whether 'string1' contains 'string2' Similar to 'l_string_contains' except that blanks are allowed subroutine s_len2(string,len_string) This routine finds the length of the string counting intermediate blanks get_directory.f subroutine get_directory(ext_in,directory_out,len_dir) get_domain_perimeter.f subroutine get_latlon_perimeter(ni,nj,r_buffer ! I Obtain lat/lon box surrounding laps grid, including a buffer Works on the basis of max/min lat/lons and limited accounting for when the dateline or poles are near the box. This version is more generic with static file source. subroutine get_domain_perimeter(ni,nj,LAPS_DOMAIN_FILE Obtain lat/lon box surrounding laps grid, including a buffer Works on the basis of max/min lat/lons and limited accounting for when the dateline or poles are near the box. subroutine get_domain_perimeter_grid(ni,nj,LAPS_DOMAIN_FILE Obtain lat/lon box surrounding laps grid, including a buffer Works on the basis of lat/lons and greater accounting for when the dateline or poles are near or in the box. get_file_names.f subroutine get_file_names(pathname_in,numoffiles,c_filenames, subroutine sort_fn (names,number,istatus) get_file_time.f subroutine get_file_time(c_filespec Given a directory path with a wildcard and a desired time, find the best matching file i4time in the given directory matching that wildcard. If there are very many files in the directory, you will need to use a directory name only, the ls command can't handle it otherwise. subroutine get_latest_file_time(c_filespec,i4time_latest) Given a directory path with a wildcard find the latest matching file i4time in the given directory matching that wildcard. If there are very many files in the directory, you will need to use a directory name only, the ls command can't handle it otherwise. subroutine get_file_times(c_filespec,max_files,c_fnames Given a directory path with a wildcard find all files and return a list of the filenames and associated i4times If there are very many files in the directory, you will need to use a directory name only, the ls command can't handle it otherwise. get_heights_hydrostatic.f subroutine get_heights_hydrostatic Generate heights of grid points using laps data and hydrostatic equation FUNCTION Z_thk(PT,P,T,TD,alog_array,esat_lut,N) THIS FUNCTION RETURNS THE THICKNESS OF A LAYER BOUNDED BY PRESSURE P(1) AT THE BOTTOM AND PRESSURE PT AT THE TOP. FUNCTION W_laps(T,P,esat_lut) Convert T(C) and P to W. This is a fast approximate routine. Output W_laps is dimensionless mixing ratio get_local_towerobs.f subroutine get_local_towerobs(maxsta,maxlvls, ! I subroutine read_local_tower(filename,fn_len, ! I subroutine remove_blanks(string) get_lowref.f subroutine get_low_ref(z_3d_in,pres_sfc_pa,ni,nj,nk get_maps_lapsgrid.f subroutine get_modelfg_3d(i4time,var_2d,imax,jmax,kmax subroutine get_modelfg_3d_sub(i4time_needed,var_2d,subdir,ext_a subroutine get_fcst_times(a_filename,i4_initial,i4_valid, subroutine get_best_fcst(maxfiles,i4time_needed subroutine get_modelfg_2d(i4time,var_2d,imax,jmax get_maxref.f subroutine get_max_ref(grid_ra_ref,imax,jmax,kmax,radar_array) subroutine get_max_reflect(grid_ra_ref,imax,jmax,kmax get_maxtops.f subroutine get_maxtops(grid_ra_ref,heights_3d get_pres_3d.f subroutine get_pres_1d(i4time,nk,pres_1d_out,istatus) Returns a 1-D grid of pressures. This is useful if we have a non-uniform pressure grid. This does not support an arbitrary vertical grid. subroutine get_pres_3d(i4time,ni,nj,nk,pres_3d,istatus) Returns a 3-D grid of pressures. This is useful if we have a non-uniform pressure grid or other type of arbitrary vertical grid. subroutine get_rep_pres_intvl(pres_3d,ni,nj,nk,rep_pres_intvl This routine returns a representative pressure interval that is used in the free atmosphere. This is useful if we have a variable interval pressure grid (even perhaps an arbitrary vertical grid), especially if there are more levels in the boundary layer. get_radar_deriv.f subroutine get_radar_deriv(nx,ny,nz,dx,r_miss, subroutine radar_bogus_w subroutine get_con_str(nx,ny,nz,nxx,nyy,radar_ref_3d,pres_3d, subroutine df_random_index(nx,ny,str_con_index,index_random subroutine dfconstr(nx,ny,r_miss,ref_2d,icon,ier,dx1) get_radar_max_pd.f subroutine get_radar_max_pd(i4time_beg,i4time_end,imax,jmax,kmax subroutine get_fracs_radar(i4time_beg,i4time_end,max_radar_gap get_static_info.f subroutine get_static_info(c_vars_req,c_values_req_in,n_vars_req get_systime.f subroutine get_systime(i4time_sys,a9_time,istatus) subroutine get_systime_i4(i4time_sys,istatus) subroutine get_systime_all(i4time_sys,a9_time,analysis_hr, get_time_window.f subroutine get_windob_time_window(c_obstype,i4_window_ob subroutine get_tempob_time_window(c_obstype,i4_window_ob get_wrfsi_config.f subroutine get_wrfsi_config(nest,istatus) function grid_spacing_wrf_m(nest) subroutine get_nmm_grid_spacing(dlmd,dphd,res) end subroutine get_nmm_grid_spacing getcld3d.f subroutine get_clouds_3dgrid(i4time_needed,i4time_nearest subroutine get_clouds_3dpres(i4time_needed,imax,jmax,kmax subroutine interp_height_pres(imax,jmax,kmax,kcloud subroutine interp_height_pres_fast(imax,jmax,kmax,kcloud getradar.f Module Summary: get_multiradar_vel now called from wind/lplot get_radar_ref now called from lplot read_radar_3dref now called from deriv now called from accum now called from lplot now called from get_radar_ref now called from mosaic_radar read_multiradar_3dref now called from cloud now called from read_radar_3dref read_radar_2dref now called directly from wind-derived now called from (wind-derived via) get_radar_max_pd read_radar_vel now called from (wind/lplot via) get_multiradar_vel read_nowrad_3dref now called from read_multiradar_3dref read_vrz_3dref now called from read_multiradar_3dref subroutine get_multiradar_vel( Returns Velocity from multiple radars. Called from wind/lapsplot subroutine get_radar_ref(i4time_ref,i4time_tol,i4time_radar This routine returns 3D radar ref data from the LAPS radar files Called from lapsplot subroutine read_radar_3dref(i4time_radar, ! I Steve Albers Feb 1998 This routine will read in a 3D radar reflectivity field. It is a jacket that calls read_multiradar_3dref. subroutine read_multiradar_3dref(i4time_radar, ! I subroutine read_radar_2dref(i4time_radar,radar_name, subroutine read_radar_raw2d(i4time_radar, ! I subroutine read_radar_vel(i4time_radar,l_apply_map, subroutine ground_clutter( subroutine read_nowrad_3dref(i4time_radar subroutine read_vrz_3dref(i4time_radar ! I gettmp2d.f subroutine get_temp_2d(i4time_needed,i4time_tol,i4time_nearest gettmp3d.f subroutine get_temp_3d(i4time_needed,i4time_nearest,iflag, Returns 3-D temperature (or ht) field within a time window. Has options for theta and/or balanced fields depending on the 'iflag' input. getuv3d.f subroutine get_uv_3d(i4time,imax,jmax,kmax,u_3d,v_3d,ext,istatus getw3d.f subroutine get_w_3d(i4time,imax,jmax,kmax,w_3d,ext,istatus) ghbry.f subroutine ghbry (i4time,p_3d,pb,sfc_t,lt1dat,htby, gridconv.f subroutine polar_stereographic subroutine geoll_2_psll(glat,glon,PLA,PLO) subroutine psll_2_psij(pslat,pslon,psi,psj) subroutine psij_2_psll(psi,psj,pslat,pslon) subroutine psll_2_geoll(pla,plo,glat,glon) subroutine ps_param(xmin,ymin,dx,dy) subroutine conical_equidistant subroutine geoll_2_coneqll(glat,glon,celat,celon) subroutine coneqll_2_coneqij(celat,celon,cei,cej) subroutine coneqij_2_coneqll(cei,cej,celat,celon) subroutine coneqll_2_geoll(celat,celon,glat,glon) subroutine lambert_conformal subroutine lc_param(s,cone,xmin,ymin,dx,dy) subroutine lat_lon subroutine cylindrical_equidistant subroutine latlon_2_mcij(n,rlat,rlon,ri,rj) subroutine latlon_2_npij(n,rlat,rlon,ri,rj) subroutine init_gridconv_cmn(gproj,nxbg,nybg,nzbg subroutine init_hinterp(nx_bg,ny_bg,nx_laps,ny_laps,gproj, subroutine hinterp_field(nx_bg,ny_bg,nx_laps,ny_laps,nz, subroutine gdtost(ab,ix,iy,stax,stay,staval,bgmodel) subroutine binom(x1,x2,x3,x4,y1,y2,y3,y4,xxx,yyy) gridconv_new.f subroutine polar_stereographic subroutine geoll_2_psll(glat,glon,PLA,PLO) subroutine psll_2_psij(pslat,pslon,psi,psj) subroutine psij_2_psll(psi,psj,pslat,pslon) subroutine psll_2_geoll(pla,plo,glat,glon) subroutine ps_param(xmin,ymin,dx,dy) subroutine conical_equidistant subroutine geoll_2_coneqll(glat,glon,celat,celon) subroutine coneqll_2_coneqij(celat,celon,cei,cej) subroutine coneqij_2_coneqll(cei,cej,celat,celon) subroutine coneqll_2_geoll(celat,celon,glat,glon) subroutine lambert_conformal subroutine lc_param(s,cone,xmin,ymin,dx,dy) subroutine lat_lon subroutine cylindrical_equidistant subroutine latlon_2_mcij(n,rlat,rlon,ri,rj) subroutine init_gridconv_cmn(gproj,nxbg,nybg,nzbg subroutine init_hinterp(nx_bg,ny_bg,nx_laps,ny_laps,gproj, subroutine hinterp_field(nx_bg,ny_bg,nx_laps,ny_laps,nz, subroutine gdtost(ab,ix,iy,stax,stay,staval,bgmodel) subroutine binom(x1,x2,x3,x4,y1,y2,y3,y4,xxx,yyy) ground_temp.f subroutine get_ground_temperature(i4time,laps_cycle_time function t_ground_k(t_sfc_k,solar_alt,solar_ha else ! ramp the function hum.f subroutine hum(t,td,rh,ni,nj,sat_t,sat_td) i4time_asc_gg.f function i4time_asc_gg(atime,istatus) integer i4time_asc_gg, ! this function i4time_fname_lp.f SUBROUTINE i4time_fname_lp (FNAME_IN, I4TIME, ISTATUS) This routine converts several different file name types (i.e. yydddhhmm) into the corresponding I4 time. SUBROUTINE CV_JUL_MMDD_LP (JULIAN_DAY, YEAR, MONTH, DAY, ISTATUS This routine converts from day of year (Julian days) to month and FUNCTION I4TIME_INT_LP (NYEAR,NMONTH,NDAY,NHOUR,NMIN,NSEC I4TIME_INT_LP RETURNS I4 TIME (# OF SECONDS SINCE 00:00 01-JAN-60) GIVEN A 6 INTEGERS CONTAINING YEAR, MONTH, DAY, HOUR, MINUTE, SECOND ingest_madis_map.f subroutine ingest_madis_map(i4time_sys,NX_L,NY_L,ext,istatus) ingest_routines.f function l_closest_time_i(wmoid,a9time_ob,nobs Determine if the ob time is the closest time for that station to systime subroutine convert_array(array_in,array_out,n,string QC the observation array and convert units if needed If 'string' is 'none', then do just the QC without conversion subroutine convert_array_i2r(array_in,array_out,n,string QC the observation array and convert units if needed If 'string' is 'none', then do just the QC without conversion subroutine apply_qc_rsa(iflag_rsa,variable,nobs) interp.f subroutine interp (li,l1,l2,v1,v2,output) interpolate_3dfield.f subroutine interpolate_3dfield(field_3d_in,nx,ny, laps_io.f subroutine get_laps_2d(i4time,EXT,var_2d,units_2d, Used to read in a surface grid with inputs of time and ext subroutine get_lapsdata_2d(i4time,i4_valid,EXT This routine can be used to read in a surface grid of known time by calling the new READ_LAPS routine subroutine get_laps_2dgrid(i4time_needed,i4tol,i4time_nearest Returns a 2-D grid. Inputs include the extension and time window. subroutine get_2dgrid_dname(directory Returns a 2-D grid. Inputs include the directory, ext, and time window. subroutine get_laps_2dvar(i4time_needed,i4tol,i4time_nearest This routine tries to read in the desired variable from all files having the proper extension, picking the closest one within the specified time window. added lvd subdirectory flexibility. Only one 2d satellite field returned. subroutine get_laps_3d(i4time,imax,jmax,kmax Returns a 3-D grid. Inputs include the extension and time. subroutine get_lapsdata_3d(i4time,i4_valid Returns a 3-D fcst grid. Inputs include directory, initial and valid time. subroutine get_laps_3dgrid(i4time_needed,i4tol,i4time_nearest, Returns a 3-D analysis grid. Inputs include the extension and time window. subroutine put_laps_2d(i4time,EXT,var_2d,units_2d, Writes a 2-D grid. Inputs include the extension and time. subroutine put_laps_3d(i4time,EXT,var_2d,units_2d, Writes a 3-D grid. Inputs include the extension and time. subroutine put_laps_multi_3d(i4time,EXT,var_2d,units_2d, Writes multiple 3-D grids. Inputs include the extension and time. subroutine put_compressed_multi_3d(i4time,EXT,var_2d,units_2d, Writes multiple 3-D compressed grids. Inputs include the extension and time. subroutine put_laps_multi_2d(i4time,EXT,var_a,units_a, Writes multiple 2-D grids. Inputs include the extension and time. subroutine sort_integer(i_array,i_dim,istatus) subroutine open_lapsprd_file(lun,i4time,ext,istatus) subroutine open_lapsprd_file_read(lun,i4time,ext,istatus) subroutine open_lapsprd_file_append(lun,i4time,ext,istatus) subroutine open_ext(lun,i4time_sys,ext,istatus) subroutine get_filespec(ext,mode,c_filespec,istatus) subroutine get_laps_sat(maxsat,c_sat_id,isats This routine acquires satellite data from the lvd subdirectories and makes decisions about what the best data is to return as the 2d field (for var_2d). subroutine get_laps_lvd(c_sat_id, subroutine get_3dgrid_dname(directory_in Returns a 3-D analysis grid. Inputs include a directory, ext, and time window. subroutine get_3d_dir_time(directory_in,i4time Returns a 3-D grid. Inputs include a directory, ext, and time. function l_is_vxx(ext) subroutine bgmodel_name(maxbgmodels,nbgm,bgmodelnames,istatus) laps_routines.f subroutine mean_lapse(num_sfc,elev,t,td,a_t,b_t,a_td,b_td, subroutine mean_pressure(p_s,n_sfc,p_bk,ni,nj,badflag,pbar) real function alt_2_sfc_press(alt,elev) c Changes: 07-20-88 Changed from subroutine to function. subroutine find_ij(lat_s,lon_s,lat,lon,numsta,mxsta, subroutine extract(a,imax,jmax,i,j,ix,jy) subroutine decompwind_gm(dd,ff,ucomp,vcomp,status) subroutine stats(x,ni,nj) subroutine clouds(imax,jmax,topo,t,smsng,tb8, subroutine lp_fire_danger (ni,nj,lp_10krh,lp_10kt,lp_10kws, subroutine heat_index(t,rh,hi,ni,nj,r_missing_data) subroutine bkgwts(lat,lon,topo,numsfc,lat_s,lon_s,elev_s, ! I subroutine aplot(field, ni, nj) subroutine check_field_2d(x,ni,nj,fill_val,istatus) subroutine checknan_2d(x,ni,nj,nan_flag) subroutine get_background_sfc(i4time_in,var_in,bkg_ext, subroutine get_bkgwind_sfc(i4time_in,bkg_ext,bkg_time,bkg_u,bkg_v, subroutine interp_to_sfc(sfc_2d,field_3d,heights_3d,ni,nj,nk, subroutine tagit(name, code) subroutine pstn_anal(back_mp,back_sp,mslp_bk,mslp,ni,nj subroutine meso_anl(u,v,p,t,td,theta,dx,dy,q,qcon,qadv, subroutine verify(field,ob,stn,n_obs_b,title,iunit, subroutine splie2(x1a,x2a,ya,m,n,y2a) subroutine splin2(x1a,x2a,ya,y2a,m,n,x1,x2,y) subroutine spline_db(x,y,n,yp1,ypn,y2) subroutine splint(xa,ya,y2a,n,x,y) subroutine reduce_p(temp,dewp,pres,elev,lapse_t, laps_thermo.f subroutine put_stability( Calculate and write out set of 2-D stability grids subroutine laps_be(ni,nj,nk Returns 2-D PBE and NBE in Joules, Parcel is lifted from lowest level SUBROUTINE SINDX(NLEVEL,LI,SI,BLI,TT,SWEAT,HWB0 Calculate a variety of stability indices from an input sounding SUBROUTINE POTBE(Q,NLEVEL,PMEAN,TMEAN,WMEAN,PLCL Calculate a PBE/LCL related indices from an input sounding FUNCTION WTBLB(P,TC,W,IOUT,istatus) Calculate Wet Bulb, given P,T,W SUBROUTINE BLAYR(P,T,Q,PMEAN,TMEAN,WMEAN,THKNES,NLEVEL,HH, Calculate boundary layer mean values from an input sounding SUBROUTINE LLCL(LCL,TLCL,PLCL,P,TC,W,IO) ! In Meters Calculate LCL properties from an input parcel SUBROUTINE LCL_fast(P,TC,TD,HLCL,TLCL,PLCL) Calculate LCL properties from an input sounding (efficiently) SUBROUTINE ITPLV(P,PARAM,NLEVEL,PINT,PARMAN,IO,istatus) Interpolate any parameter from a pressure sounding to a specific pres SUBROUTINE NEWTN(X,XOLD,Y,YOLD,SLOPE,ITER,IO,FENCE,istatus) Newton iteration SUBROUTINE MSAD5 Calculate along a moist adiabat. Solve for T, given ThetaE and P FUNCTION THAE(TC,TD,P) Calculate Theta(e), given T, Td, P FUNCTION THD(P,T,W,PMEI) COMPUTES THE DRY AIR POTENTIAL TEMPERATURE FUNCTION RL(TM2) LATENT HEAT OF EVAPORATION SUBROUTINE DRYAD(P1,P2,T1,T2,W,IO) COMPUTES THE DRY AIR POTENTIAL TEMPERATURE (theta), GIVEN P and T FUNCTION THETE(T,TD,ALT,HGT) Compute theta(e), given T, TD, Altimeter setting, and elevation (HGT) FUNCTION XMXRAT(PRES,DEWP) COMPUTE MIXING RATIO (GM/GM) GIVEN DEW POINT TEMP AND THE PRESSURE (MB) FUNCTION THAEK(P,TC,W) COMPUTES THE EQUIVALENT POTENTIAL TEMPURATURE (K). (USING THE ROSSBY DEFINITION) function oe_fast(t,td,pres) Quick way to get Theta(e) using lookup table function tmlaps_fast(thetae,pres) Quick way to get temperature along a moist adiabat given theta(e) This uses a lookup table FUNCTION DWPT_laps(T,RH) THIS FUNCTION RETURNS THE DEW POINT (CELSIUS) GIVEN THE TEMPERATURE (CELSIUS) AND RELATIVE HUMIDITY (%). function twet_fast(t_c,td_c,pres_mb) This is a fast approximate Wet Bulb routine using lookup tables subroutine li_laps(tc,td,pr,i4time,imax,jmax,li,flag Compute 2-D grid of LI, given a grid of parcels to launch function func_li(t_c,td_c,psta_mb,t500_c,r_missing_data) Calculate LI given an input parcel subroutine thetae_to_t500(thetae,t500,istatus) Given theta(e), what is T-500mb? function expm(x) Calculate exp function with check to avoid underflow with large inputs. function devirt_td(t_k,td_k,p_pa) This function yields the approximate temperature given the virtual temp tv from the mthermo library is called. function devirt_sh(t_k,sh,p_pa) This function yields the approximate temperature given the virtual temp tv from the mthermo library is called. function devirt_rh(t_k,rh,p_pa) This function yields the approximate temperature given the virtual temp devirt_td from the laps library is called. FUNCTION TV_SH(T,SH,P) THIS FUNCTION RETURNS THE VIRTUAL TEMPERATURE TV (CELSIUS) OF A PARCEL OF AIR AT TEMPERATURE T (CELSIUS), DEW POINT TD (CELSIUS), AND PRESSURE P (MILLIBARS). THE EQUATION APPEARS IN MOST STANDARD METEOROLOGICAL TEXTS. FUNCTION TSA_fast(OS,P) THIS FUNCTION RETURNS THE TEMPERATURE TSA (CELSIUS) ON A SATURATION ADIABAT AT PRESSURE P (MILLIBARS). OS IS THE EQUIVALENT POTENTIAL TEMPERATURE OF THE PARCEL (CELSIUS). SIGN(A,B) REPLACES THE ALGEBRAIC SIGN OF A WITH THAT OF B. subroutine get_tw_approx_2d(t_k,td_k,p_pa,ni,nj,tw_k) Calculate Wet Bulb, using a fast approximate method subroutine get_tw_2d(t_k,td_k,p_pa,ni,nj,tw_k) Calculate 2-D grid of Wet Bulb, using 'tw_fast' subroutine get_tw_2d_orig(t_k,td_k,p_pa,ni,nj,tw_k) Calculate 2-D grid of Wet Bulb, using 'tw' FUNCTION TW_fast(T,TD,P) THIS FUNCTION RETURNS THE WET-BULB TEMPERATURE TW (CELSIUS) GIVEN THE TEMPERATURE T (CELSIUS), DEW POINT TD (CELSIUS) AND PRESSURE P (MB). SEE P.13 IN STIPANUK (1973), REFERENCED ABOVE, FOR A DESCRIPTION OF THE TECHNIQUE. WARNING: This routine may not work because it calls TSA_fast FUNCTION W_fast(T,P) ! Saturation mixing ratio wrt water THIS FUNCTION RETURNS THE MIXING RATIO (GRAMS OF WATER VAPOR PER KILOGRAM OF DRY AIR) GIVEN THE TEMPERATURE T (CELSIUS) AND PRESSURE (MILLIBARS). THE FORMULA IS QUOTED IN MOST METEOROLOGICAL TEXTS. Note this is a faster version done by Steve Albers. FUNCTION Wice_fast(T,P) ! Saturation mixing ratio wrt ice THIS FUNCTION RETURNS THE MIXING RATIO (GRAMS OF WATER VAPOR PER KILOGRAM OF DRY AIR) GIVEN THE TEMPERATURE T (CELSIUS) AND PRESSURE (MILLIBARS). THE FORMULA IS QUOTED IN MOST METEOROLOGICAL TEXTS. Note this is a faster version done by Steve Albers FUNCTION OS_fast(TK,P) THIS FUNCTION RETURNS THE EQUIVALENT POTENTIAL TEMPERATURE OS (K) FOR A PARCEL OF AIR SATURATED AT TEMPERATURE T (K) AND PRESSURE P (MILLIBARS). Note this is a faster version done by Steve Albers lapsgrid.f subroutine get_mother_domain(ni,nj,lat,lon,istatus) Reads in lat and lon fields for nested domains. Only WRFSI subroutine get_laps_domain(ni,nj,grid_fnam,lat,lon,topo,istatus) Reads in lat/lon/topo/landfrac fields subroutine get_domain_laps(ni,nj,grid_fnam,lat,lon,topo Reads in lat/lon/topo fields with grid spacing subroutine get_laps_domain_95(ni,nj,lat,lon,topo Reads in lat/lon/topo/landfrac fields with grid spacing subroutine read_static_grid(ni,nj,var,static_grid,istatus) Reads an arbitrary static field given an input 'var' string subroutine force_get_laps_config(grid_fnam,istatus) subroutine get_laps_config(grid_fnam,istatus) subroutine get_config(istatus) subroutine get_laps_config_sub(grid_fnam,istatus) subroutine find_domain_name(data_root, domain_name, subroutine get_mother_dims(nx_mother,ny_mother,istatus) subroutine get_standard_longitude(std_lon_ret,istatus) subroutine get_grid_spacing(grid_spacing_m_ret,istatus) subroutine get_grid_center(grid_cen_lat_ret,grid_cen_lon_ret subroutine get_standard_latitude(std_lat,istatus) subroutine get_standard_latitudes(std_lat1,std_lat2,istatus) subroutine get_vertical_grid(vert_grid,istatus) subroutine get_maxstns(maxstns_ret,istatus) subroutine get_c8_project(c8_project_ret,istatus) subroutine get_c8_blpfmt(c8_blpfmt_ret,istatus) subroutine get_raddat_type(c_raddat_type_ret,istatus) subroutine get_c6_maproj(c6_maproj_ret,istatus) subroutine get_c80_description(c80_description_ret,istatus) subroutine get_laps_dimensions(nk,istatus) subroutine get_aircraft_time_window(aircraft_time_window_ret subroutine get_laps_cycle_time(laps_cycle_time_ret,istatus) subroutine get_num_domains(num_domains,istatus) subroutine get_domain_origin(lli_orig,llj_orig subroutine get_ratio_to_parent(iratio,istatus) subroutine get_parent_id(parent_id,istatus) subroutine get_grid_dim_xy(NX_L_ret,NY_L_ret,istatus) subroutine get_topo_parms(silavwt_parm_ret,toptwvl_parm_ret subroutine get_meso_sao_pirep(n_meso,n_sao,n_pirep_ret,istatus) subroutine get_max_radars (max_radars_ret, istatus) subroutine get_max_stations (maxstns_ret, istatus) subroutine get_vert_rads (vert_rad_pirep_ret, subroutine get_r_missing_data(r_missing_data_ret, istatus) subroutine get_i2_missing_data(i2_missing_data_ret, istatus) subroutine get_i_perimeter(i_perimeter_ret, istatus) subroutine get_ref_base(ref_base_ret, istatus) subroutine get_ref_base_useable(ref_base_useable_ret, istatus) subroutine get_r_hybrid_first_gate(r_hybrid_first_gate_ret subroutine get_max_radar_files(max_radar_files_ret, istatus) subroutine get_l_compress_radar(l_compress_radar_ret, istatus) subroutine get_l_use_tamdar(l_use_tamdar_ret, istatus) subroutine get_l_3dvar(l_3dvar_ret, istatus) function ltest_vertical_grid(c_vertical_grid) function ltest_vertical_grid_lc(c_vertical_grid) subroutine get_earth_radius(erad,istatus) subroutine get_fdda_model_source(fdda_model_source_ret subroutine get_path_to_topo_10m(path_to_topo_10m_ret,istatus) subroutine get_path_to_topo_30s(path_to_topo_30s_ret,istatus) subroutine get_path_to_soiltype_top(path_to_soiltype_top_30s_ret subroutine get_path_to_soiltype_bot(path_to_soiltype_bot_30s_ret subroutine get_path_to_landuse_30s(path_to_landuse_30s_ret subroutine get_path_to_green_frac(path_to_green_frac_ret subroutine get_path_to_soiltemp_1deg(path_to_soiltemp_1deg_ret subroutine get_path_to_albedo(path_to_albedo_ret,istatus) subroutine get_path_to_maxsnoalb(pathtomaxsnoalb_ret,istatus) subroutine get_path_to_islope(pathtoislope_ret,istatus) subroutine get_path_to_sst(path_to_sst_ret,istatus) subroutine get_n_staggers(n_staggers,istatus) subroutine get_stagger_index(istag,istatus) subroutine array_minmax(a,ni,nj,rmin,rmax,r_missing_data) latlon_to_rlaps.f subroutine latlon_to_rlapsgrid(rlat,rlon,lat,lon,ni,nj,ri,rj This routine assumes a polar stereographic, lambert conformal, or mercator projection. subroutine rlapsgrid_to_latlon(ri,rj,lat,lon,ni,nj,rlat,rlon This routine assumes a polar stereographic, lambert conformal, or mercator projection. subroutine latlon_to_uv(rlat,rlon,u,v,istatus) This routine assumes a polar stereographic, lambert conformal, or mercator projection. subroutine latlon_to_uv_ps(rlat_in,rlon_in,slat,polat,slon,u,v) subroutine latlon_to_uv_lc(rlat,rlon,slat1,slat2,slon,u,v) subroutine latlon_to_uv_mc(rlat,rlon,slat,cenlon,u,v) subroutine latlon_to_uv_ll(rlat,rlon,cenlon,u,v) subroutine uv_to_latlon(u,v,rlat,rlon,istatus) subroutine uv_to_latlon_ps(u,v,slat,polat,slon subroutine uv_to_latlon_lc(u,v,slat1,slat2,slon,rlat,rlon) subroutine uv_to_latlon_mc(u,v,slat,cenlon,rlat,rlon) subroutine uv_to_latlon_ll(u,v,cenlon,rlat,rlon) function projrot_latlon(rlat,rlon,istatus) 1997 Steve Albers Calculate map projection rotation, this is the angle between the y-axis (grid north) and true north. Units are degrees. function projrot_laps(rlon) This routine is being phased out. Please try to use 'projrot_latlon'. subroutine check_domain(lat,lon,ni,nj,grid_spacing_m,intvl This routine checks whether the lat/lon grid is consistent with map projection parameters as processed by latlon_to_rlapsgrid, and rlapsgrid_to_latlon. The grid size is also checked. This is a good sanity check of the NetCDF static file, namelist files, as well as various grid conversion routines. subroutine lambert_parms(slat1,slat2,n_out,s_out,rconst_out) subroutine get_grid_spacing_actual(rlat,rlon Calculate actual grid spacing at any given lat/lon location subroutine get_grid_spacing_actual_xy(rlat,rlon Calculate actual grid spacing (x,y directions) at any given lat/lon location. This works for conformal or 'latlon' grids subroutine get_grid_spacing_cen(grid_spacing_cen_m,istatus) Calculate actual grid spacing at the center of the domain If we have a lat/lon domain the Y direction spacing will be used subroutine get_ps_parms(slat1,slat2,grid_spacing_m ! I libdummies.f function ishow_timer() function init_timer() subroutine LIB$SHOW_TIMER(my_show_timer) FUNCTION LIB$INIT_TIMER() FUNCTION lib$set_logical() FUNCTION ltest_log_gg() FUNCTION lib$set_symbol() subroutine notify_exec_gs(izero, ! INPUT machine_dependent.f function i4_to_byte(i4_in) Converts an integer to a byte (character) variable function byte_to_i4(b_in) Converts a byte (character) to an integer variable subroutine open_append(lun,file,status,istat) Opens a file for appending Below are some Taiwan FGGE routines Below are dummy routines for other platforms subroutine read_fa(lun,filename ! I subroutine read_fa_nf ( lun, filename, ! I make_optran_layers.f subroutine make_optran_layers (a,b,c,aa,bb,cc,p,pp,kk,istatus) end subroutine make_optran_layers make_rh.f function make_rh (p,t,ssh,t_ref) real eslo !function type real esice !function type real es !function type make_ssh.f function make_ssh (p,t,rh, t_ref) real eslo !function type real esice !function type real es !function type make_td.f function make_td (p,t,q,t_ref) function func (x) real ssh2 !function type func = qc-ssh2(pc,tc,x,t_refc) ! function will be zero when ssh2=q map_proj.f SUBROUTINE XYTOPS(X,Y,PLA,PLO,ERAD) SUBROUTINE PSTOGE(PLA,PLO,GLAT,GLON,RLAT,WLON1) SUBROUTINE GETOPS(PLA_r4,PLO_r4,GLAT_r4,GLON_r4,RLAT_r4,WLON1_r4) SUBROUTINE PSTOXY(X,Y,PLA,PLO,ERAD) subroutine latlon_to_xy_old(glat,glon,rlat,wlon1,erad,x,y) subroutine latlon_to_xy(glat,glon,erad,x,y) subroutine xy_to_latlon_old(x,y,erad,rlat,wlon1,glat,glon) subroutine xy_to_latlon(x,y,erad,glat,glon) subroutine xy_to_uv(x,y,erad,u,v) subroutine uv_to_xy(u,v,erad,x,y) meanlapse.f subroutine mean_lapse(num_sfc,elev,t,td,a_t,b_t,a_td,b_td,hbar) meanpres.f subroutine mean_pres(num_sfc,p_s,pbar) move.f subroutine move(a,b,imax,jmax) subroutine move_i(a,b,imax,jmax) subroutine move_3d(a,b,imax,jmax,kmax) subroutine move_2dto3d(a,b,index,imax,jmax,kmax) subroutine move_3dto2d(a,index,b,imax,jmax,kmax) multar.f subroutine multar(a,b,result,imax,jmax) multcon.f subroutine multcon(a,const,imax,jmax) my_show_timer.f subroutine my_show_timer (line) nan_routines.f subroutine check_nan (var,istatus) This routine checks a variable for Not a Number conditions (NaN). It returns an istatus of 0 if NaNs are detected. Otherwise it returns a value of 1. subroutine check_nan1 (var1,n,istatus) This routine checks a 1d array for Not a Number conditions (NaN). It returns an istatus of 0 if NaNs are detected. Otherwise it returns a value of 1. subroutine check_nan2 (var2,n,m,istatus) This routine checks a 2d array for Not a Number conditions (NaN). It returns an istatus of 0 if NaNs are detected. Otherwise it returns a value of 1. subroutine check_nan3 (var3,n,m,l,istatus) This routine checks a 3d array for Not a Number conditions (NaN). It returns an istatus of 0 if NaNs are detected. Otherwise it returns a value of 1. function nanf(arg) Function subroutine to check a variable for Nan. 1 means a Nan was detected, otherwise it returns a 0. newreadobs.f subroutine read_obs_i(infile,maxstns,atime,num_meso, normalize.f Subroutine Normalize_Brightness(i4time,lat,lon,image,ni,nj Subroutine Stretch(IL,IH,JL,JH,rArg) subroutine deviate_ray(l1,x5,y5,z5,x3,y3,z3,x8,y8,z8) subroutine sat_angular_alt(sat_radius,lat,lon ofm.f subroutine ofm (kk,laps_p,laps_t,laps_q,laps_sfc_t, integer compute_rtm ! optran 90 wrapper function is type int oh_zone.f subroutine oh_zone (i_p, ozone, nl, repeat, istatus) subroutine interpolate_ozone(xa,ya,n,x,y,istatus) pcpcnc.f subroutine cpt_pcp_cnc(ref_3d,temp_3d,cldpcp_type_3d ! Input subroutine cpt_fall_velocity(ipcp_type,p,t,dbz,fall_velocity) subroutine cpt_concentration(rate,fall_velocity,concentration) prof_cdf.f subroutine PROF_CDF_CLOSE(cdfid,status) subroutine PROF_CDF_OPEN(file,cdfid,status) subroutine PROF_CDF_READ(cdfid,staname,wmoid,varname,dtype, subroutine PROF_CDF_SET_ERROR(error_code,status) subroutine PROF_CDF_GET_STATIONS(cdfid,n_stations,staname, subroutine prof_i4_avg_wdw(i4_avg_wdw_sec, cdfid, istatus) psatoz.f Real Function PsaToZ(psain) qc.f function pct_rejected(n_good_qc,n_bad_qc) qc_field_3d.f subroutine qc_field_2d(var_2d,field_2d,ni,nj,istatus) subroutine qc_field_3d(var_2d,field_3d,ni,nj,nk,istatus) radar_qc.f subroutine radar_qc(ni,nj,nk,ref_3d,istatus_qc) radar_to_latlon.f subroutine radar_to_latlon_old(lat_grid,lon_grid,height_grid subroutine radar_to_latlon(lat_grid,lon_grid,height_grid Calculate radar echo location given radar location and az/ran/elev of radar echo razm_lat_lon_gm.f Subroutine RAzm_Lat_Lon_GM(r4_SLat,r4_SLon,r4_Range, rd_laps_static.f subroutine rd_laps_static (dir,laps_dom_file,imax,jmax,n_grids, subroutine make_static_fname(dir,laps_dom_file,file_name, read-laps-static.f SUBROUTINE READ_LAPS_STATIC (DIR, EXT, IDIM, JDIM, KMAX, KDIM, read_acars_ob.f subroutine read_acars_ob(lun,c_obtype,xlat,xlon,elev,arg1,arg2 read_covar.f subroutine read_stage4(filename,nx4,ny4,km,ri, read_ldad_prof.f subroutine read_ldad_prof(i4time_sys,i4_prof_window subroutine read_prof(nf_fid, level, maxStaticIds, nInventoryBins, subroutine read_ldad_prof_netcdf(nf_fid, level, maxStaticIds, function iqc_rsa(iflag) read_namelist.f subroutine config_satellite_lvd(istatus) Reads static/satellite_lvd.nl file. subroutine get_sat_sounder_info(n_sndr, Reads static/sat_sounder.nl file. subroutine get_balance_nl(lrunbal,adv_anal_by_t_min Reads static/balance.nl file. subroutine get_sfcqc_nl(lrunqc,istatus) Reads static/balance.nl file. subroutine mosaic_radar_nl(c_radar_mosaic_type,n_radars, Reads static/radar_mosaic.nl file subroutine get_background_info(bgpaths,bgmodels reads static/background.nl Reads static/osse.nl file. subroutine get_wind_parms(l_use_raob,l_use_cdw,l_use_radial_vel subroutine get_gridnl(mode) subroutine read_verif_nl(type_obs,path_to_raw_profiler, subroutine read_sfc_nl(use_lso_qc,skip_internal_qc subroutine get_laps_redp(redp_lvl,istatus) subroutine conf_isjtkc(nsdim,ntdim,ncdim, read_pro_data.f subroutine read_pro_metadata(lun,i4time_prof,ext ! I Returns wind profile metadata from the PRO file. Jacket for read_pro_data. subroutine read_pro_data(lun,i4time_prof,ext ! I Returns wind profile data from the PRO file read_snd_data.f subroutine read_snd_data2(lun,i4time_snd,ext ! I Returns sounding wind, T, Td data from the SND file Also returns the lat/lon/time info from all the levels subroutine read_snd_data(lun,i4time_snd,ext ! I Returns sounding wind, T, Td data from the SND file subroutine read_snd_metadata(lun,i4time_snd,ext ! I Returns sounding metadata from the SND file subroutine read_sfc_snd(i4time,atime_s,n_obs_g,n_obs_b, ! regular SND read_surface_obs.f subroutine read_surface_data(i4time,btime,n_obs_g,n_obs_b,time, Routine to read the newer LAPS LSO surface data file with the expanded variable list. The data is passed back to the calling routine in 1-d arrays. subroutine read_sfc_metadata(i4time,n_obs_g,n_obs_b,time Routine to read the LAPS LSO surface data file and return the station metadata. The data is passed back to the calling routine in 1-d arrays. subroutine read_sfc_state(i4time,ext,btime,n_obs_g,n_obs_b, Routine to read the LAPS LSO surface data file and return the state variables (wind, temp, dewpt, altimeter & pressure). The data is passed back to the calling routine in 1-d arrays. subroutine read_sfc_temp(i4time,btime,n_obs_g,n_obs_b, Routine to read the LAPS LSO surface data file and return the temperature. The data is passed back to the calling routine in 1-d arrays. subroutine read_sfc_wind(i4time,ext,n_obs_g,n_obs_b,obstime Routine to read the LAPS LSO surface data file and return wind data. The data is passed back to the calling routine in 1-d arrays. subroutine read_sfc_press(i4time,btime,n_obs_g,n_obs_b, Routine to read the LAPS LSO surface data file and return pressure data. The data is passed back to the calling routine in 1-d arrays. subroutine read_sfc_precip(i4time,btime,n_obs_g,n_obs_b, Routine to read the LAPS LSO surface data file and return precipitation data. The data is passed back to the calling routine in 1-d arrays. subroutine read_surface_dataqc(i4time,btime,n_obs_g,n_obs_b,time, Routine to read the LAPS LSO_QC surface data file with the expanded variable list. The data is passed back to the calling routine in 1-d arrays. read_surface_old.f subroutine read_surface_old(infile,maxsta,atime,n_meso_g, Routine to read surface data for LAPS that has been written into the LSO/LSOQC file by the 'write_surface_obs' routine. Return arguments are more in tune with an earlier lso variable list. Calls 'read_surface_data' and 'read_surface_dataqc'. subroutine left_justify(string) subroutine right_justify(string) read_surface_sa.f subroutine read_surface_sa(i4time,maxsta, ! I This routine calls 'read_surface_data' and is used primarily to read This is called only from the cloud analysis at present. subroutine read_cloud_obs(i4time,maxsta, ! I This routine calls 'read_surface_data' and is used primarily to read in cloud info from the current LSO file and potentially SYNOP obs from a wider time window. The initial design is to call this from the 'read_surface_sa' routine. read_wrfsi_nl.f subroutine open_namelist (lun) subroutine read_wrfsi_project_id (istatus) subroutine read_wrfsi_filetimespec (lun, subroutine read_wrfsi_hgridspec (istatus) subroutine read_wrfsi_vgridspec (istatus) subroutine read_wrfsi_sfcfiles (istatus) subroutine read_wrfsi_rawdatapaths (istatus) subroutine get_stand_lon_wrf(std_lon,istatus) subroutine get_stand_lats_wrf(std_lat,std_lat2 subroutine get_c6_maproj_wrf(c6_maproj subroutine get_grid_center_lon_wrf(grid_center_lon subroutine get_grid_spacing_wrf(grid_spacing_m,istatus) readlaps.f subroutine read_laps(reftime,valtime,dir,ext,iimax,jjmax, Reads data requested by arrays VAR_REQ and LVL_REQ for the I4TIME, DIR and EXT specified. Returns LVL_COORD-REQ, UNITS_REQ, COMMENT_REQ, DATA AND ISTATUS REFTIME is the time of the model run. VALTIME is the valid time of the data. For analysis, valtime = reftime. readlapscompressed.f subroutine read_laps_compressed(i4time,dir,ext, subroutine runlength_decode(ngrids,n_cmprs,array1,array2 ! I readlapsdata.f subroutine read_laps_data(i4time,dir,ext,iimax,jjmax,kkmax,kdim, subroutine cvt_fname_v3(dir,gtime,fhh,ext,ext_len,file_name, subroutine make_fcst_time(valtime,reftime,fcst_hh_mm,istatus) readlapsheader.f SUBROUTINE READ_LAPS_HEADER(I4TIME,DIR,EXT,IMAX,JMAX,KMAX, subroutine setup_var_lvl(ext_in,num_levels,lvl_avail, rfill.f subroutine ref_fill_vert(ref_3d_io,ni,nj,nk rh2cld.f function rh_to_cldcv(rh) rootfind.f FUNCTION ROOTFIND(FUNC,X1,X2,TOL) sfc_routines.f subroutine write_surface_obs(btime,outfile,n_obs_g, subroutine get_sfc_badflag(badflag_out,istatus) Returns "badflag" used in surface code subroutine get_ibadflag(ibadflag,istatus) Returns "ibadflag" used in surface code subroutine get_filetime_range( Determine the range of needed filetimes, given observation time range and other info about the files. subroutine ck_array_real(var, recNum, filval, badflag) subroutine ck_array_dble(var, recNum, filval, badflag) subroutine get_sfc_obtime(int_obtime,i4time_lso ! I smf_wisp91.f subroutine get_smf_1d(nk,cbase_m,ctop_m,itype_in SUBROUTINE RAOB(NXFLAG,NVFLAG,MAXOBSR) SUBROUTINE INTERP_smf(NDECKS) SUBROUTINE AL(LVLCT,LAYR,TI,N1,N2,CALW) SUBROUTINE TZ(P,T,DTZ,ES) SUBROUTINE MVD(NDECKS,ICTP,XMVD) SUBROUTINE IINDEX(XMVD,WATR,NDECKS,AINDEX,HINDEX) SUBROUTINE CLTYPE(ICTP,NDECKS,CLDTYP) SUBROUTINE OUTPUT(CLDTYP,WATR,XMVD,AINDEX,HINDEX,ICP,NDECKS,TITLE) SUBROUTINE OUT_LAPS SUBROUTINE LWC(NDECKS,ICP,ICTP,WATR,XMVD) SUBROUTINE LW(LAY,IRAIN,LVLCT,WATR,NEPH,RMVD) SUBROUTINE DSD SUBROUTINE NDROPS(LVLCT,LWC,DROPSZ,N,LAY, CC LATER I INTEND TO MAKE THIS A FUNCTION OF CLOUD BASE VERTICAL smf_wisp92.f subroutine get_sfm_1d(nll,zcb,zctop,ityp,zlevel, cc currently, this subroutine will only use the Smith- cc linear function of in cloud temperature going from smooth_cross_laps.f subroutine smooth_cross_laps(ni,nj,i_l,i_h,j_l,j_h,r4_img snooze_gg.f subroutine snooze_gg(rseconds,istatus) ssh2.f function ssh2 (p,t,td,t_ref) real esice !function type real eslo !function type real es !function type subcon.f subroutine subcon(a,con,result,imax,jmax) sunfuncs.f SUBROUTINE solar_position(rlat,rlon,i4time,alt,dec,hrangle) SUBROUTINE solalt(rlat,rlon,i4time,alt) FUNCTION RADNORM(JD) FUNCTION SOLDEC(JD) FUNCTION TIMEQ(JD) time_conversions.f SUBROUTINE make_fnam_lp (I4TIME, FILE_NAME, ISTATUS) make_fnam_lp CONSTRUCTS THE FILE NAME STRING 'yyjjjhhmm' FOR THE TIME CORRESPONDING TO I4TIME. SUBROUTINE CV_I4TIM_INT_LP (I4TIME,NYEAR,NMONTH,NDAY,NHOUR, CV_I4TIM_INT_LP CONVERTS I4 TIME TO SIX INTEGERS Note that NYEAR is the number of years since 1900 subroutine make_fnam13_lp(initial_i4time,forecast_time,filename, Converts initial time and forecast time to a 13 character filename subroutine c_time2fname(utime,a9time) Convert utime to a9time. Jacket routine that calls 'make_fnam_lp'. subroutine afwa_julhr_i4time(I_A1JUL,I_A1MIN,i4time) I_A1JUL is number of hours since Dec 31, 1967 at 00z This is converted to i4time, number of sec since Jan 1, 1960 at 00z subroutine cv_asc_i4time(ascii_time,I4time) Converts 9 character ascii time into i4time subroutine cv_i4tim_asc_lp(i4time,atime,istatus) Takes in an i4time and returns the time as an ASCII string (e.g. 27-MAR-1990 12:30:00.00 ). The i4time is assumed to be a 1960-relative time, although the starting year is easily changed in the code. subroutine jd_to_i4time(jd,i4time,istatus) Converts Julian Day (Number of days since Jan 1 4713BCE to i4time) trig.f function sind(x) function cosd(x) function tand(x) function asind(x) function acosd(x) function atan2d(x,y) trig_dum.f function atan2_deg(x,y) upcase.f subroutine upcase(input,output) vectors.f subroutine midpoint(a1,a2,a3,b1,b2,b3,m1,m2,m3) subroutine anglevectors(a1,a2,a3,b1,b2,b3,angle) function dotproduct(a1,a2,a3,b1,b2,b3) function angle_vectors(a1,a2,a3,b1,b2,b3) subroutine normalize(a1,a2,a3,maga) function mag(a1,a2,a3) subroutine xyztolatlon(x,y,z,lat,lon) subroutine latlontoxyz(lat,lon,x,y,z) subroutine crossproduct(a1,a2,a3,b1,b2,b3,c1,c2,c3) vis2albedo.f subroutine vis_to_albedo(i4time,csatid, function albedo_to_cloudfrac(albedo) function cloudfrac_to_albedo(cloud_frac_vis) Subroutine Stretch2(IL,IH,JL,JH,rArg) vv.f Subroutine Cloud_bogus_w (dx, cloud_type, height, nk ! I !The following specifies the maximum vv in two cloud types as functions Real Function Parabolic_vv_profile (zbase, ztop, ratio, z) Real Function Parabolic_vv_profile1 (zbase, ztop, ratio, z) wait_for_data.f subroutine wait_for_data(c_filespec,i4time_desired ! Inputs wfo_fname_conversions.f function wfo_fname13_to_fname9(wfo_fname13) Routine converts wfo filename 'yyyymmdd_hhmm' to 'yyjjjhhmm' filename. function fname9_to_wfo_fname13(a9_time_in) Routine to convert LAPS 'yyjjjhhmm' time to 'yyyymmdd_hhmm' time. function cvt_wfo_fname13_i4time(wfo_fname13) Convert wfo filename*13 to i4time function cvt_i4time_wfo_fname13(i4time) Convert i4time to wfo filename*13 function cvt_fname13_to_wfo_fname13(fname13) function cvt_wfo_fname13_to_fname13(fname13) windspeed.f subroutine windspeed(u,v,ff,ni,nj) write_covar.f subroutine write_covar_nam(filename,x,iy,pr, write_snd.f subroutine write_snd(lun_out ! I writelaps.f subroutine write_laps(i4_reftime,i4_valtime,dir,ext, writelapscompressed.f subroutine write_laps_compressed(i4time,dir,ext,imax,jmax, subroutine runlength_encode(ngrids,n_cmprs_max,data ! I writelapsdata.f subroutine write_laps_data(i4time,dir,ext,imax,jmax, subroutine write_laps_multi(i4time,dir,ext,imax,jmax, writelapslfm.f subroutine write_laps_lfm(reftime,valtime,datadir,cdldir, writelapslvls.f subroutine write_laps_lvls(reftime,valtime,dir,ext,imax,jmax, wrt_laps_static.f subroutine wrt_laps_static (dir, laps_dom_file, imax, jmax, zero.f subroutine zero(a,imax,jmax) subroutine zero3d(a,nx,ny,nz) zr.f subroutine zr(z_2d_in zs.f subroutine zs(precip_rate,temp_col_max,ni,nj,s_2d_out) function snow_to_rain_ratio(temp_col_max) ztopsa.f Real Function ZtoPsa(Z) machine_dependent.F function i4_to_byte(i4_in) Converts an integer to a byte (character) variable function byte_to_i4(b_in) Converts a byte (character) to an integer variable double precision function pi_180() end function pi_180 real function rsind(val) end function rsind real function rasind(val) end function rasind real function rcosd(val) end function rcosd real function racosd(val) end function racosd real function rtand(val) end function rtand real function ratand(val) end function ratand real function ratan2d(val1,val2) end function ratan2d double precision function dsind(val) end function dsind double precision function dasind(val) end function dasind double precision function dcosd(val) end function dcosd double precision function dacosd(val) end function dacosd double precision function dtand(val) end function dtand double precision function datand(val) end function datand double precision function datan2d(val1,val2) end function datan2d The above functions operate with the USE_TRIGD compiler directive. This is normally set by configure via 'trigd.inc' and supplies degree based trig functions if they are not intrinsic. subroutine open_append(lun,file,status,istat) Opens a file for appending real function transfer(in,out) Below are some Taiwan FGGE routines Below are dummy routines for other platforms subroutine read_fa(lun,filename ! I subroutine read_fa_nf ( lun, filename, ! I util/bilinear_laps.f subroutine bilinear_laps(ri,rj,imax,jmax,array_2d,result) Interpolate 2-d array to find the field value at a fractional grid point. subroutine bilinear_interp_extrap(ri,rj,imax,jmax Interpolate 2-d array to find the field value at a fractional grid point. This one allows you to extrapolate very slightly outside the grid. util/cpt_liw.f subroutine cpt_liw(lifted,w_2d,imax,jmax,liw) util/degfrom.f subroutine degfrom(xd,yd,deg_from) util/filter_2dx.f subroutine filter_2dx(field,ix,iy,iz,smth) util/get_static_field_interp.f SUBROUTINE get_static_field_interp(ctype,i4time,nx,ny,data END SUBROUTINE get_static_field_interp util/helicity.f subroutine helicity_laps(uanl,vanl,ustorm,vstorm Calculate storm relative helicity over a 2-D grid util/interp2sfc.f subroutine interp_to_sfc(sfc_2d,field_3d,heights_3d,ni,nj,nk, util/laps_slwc_revb.f Subroutine LAPS_SLWC_REVb(CB_PA,CB_K,GT_PA,GT_K,CT_K, FUNCTION VAPOR(TFP) util/meanwind.f subroutine mean_wind_bunkers(uanl,vanl,topo,imax,jmax,kmax ! I subroutine mean_wind(uanl,vanl,topo,imax,jmax,kmax util/put_wind_2d.f subroutine put_wind_2d(i4time,DIRECTORY,EXT,var,units, util/stats.f subroutine moment(data,n, util/steer_grid.f subroutine steer_grid(i4time_latest,ni,nj,nk subroutine analyze_storm_motion(ni,nj,umean,vmean ! Input subroutine barnes_r5th(ni,nj,ncnt,max_obs util/storm_cent_rt.f subroutine storm_cent_rt(ni,nj,nz,i4time_latest, util/trilinear_laps.f subroutine trilinear_laps(ri,rj,rk,imax,jmax,kmax,array_3d Interpolate 3-d array to find the field value at a fractional grid point. subroutine trilinear_interp_extrap(ri,rj,rk,imax,jmax,kmax Interpolate 3-d array to find the field value at a fractional grid point. This one allows you to extrapolate very slightly outside the grid. util/windcnvrt.f subroutine windcnvrt(uwind,vwind,direction,speed) util/windfields.f subroutine get_grid_spacing_array(lat,lon,imax,jmax,dx,dy) c===== Here are John's subroutines...(abandon hope, ye who enter) subroutine vortdiv(u,v,vort,div,imax,jmax,dx,dy) subroutine bounds(x,imax,jmax) util/xytomet.f SUBROUTINE XY_TO_MET_XM( X, mthermo/alcl.f function alcl(t,td,p) mthermo/ct.f function ct(wbar,pc,ps) mthermo/dewpt.f function dewpt(ew) mthermo/dpt.f function dpt(ew) mthermo/dwpt.f function dwpt(t,rh) mthermo/ept.f function ept(t,td,p) mthermo/es.f function es(t) mthermo/esat.f function esat(t) mthermo/esgg.f function esgg(t) mthermo/esice.f function esice(t) mthermo/esilo.f function esilo(t) mthermo/eslo.f function eslo(t) real esice ! function if (t.gt.-46.) then ! Lowe's function elseif (t.gt.-132.) then ! Pielke's tuned function (liquid data unknown) mthermo/esrw.f function esrw(t) mthermo/esw.f function esw(t) mthermo/heatl.f function heatl(key,t) mthermo/hum.f function humidity(t,td) mthermo/o.f function o(t,p) mthermo/oe.f function oe(t,td,p) mthermo/os.f function os(t,p) mthermo/ow.f function ow(t,td,p) mthermo/pccl.f function pccl(pm,p,t,td,wbar,n) mthermo/pcon.f function pcon(p,t,tc) mthermo/powt.f function powt(t,p,td) mthermo/precpw.f function precpw(td,p,n) mthermo/ptlcl.f subroutine ptlcl(p,t,td,pc,tc) mthermo/satlft.f function satlft(thw,p) mthermo/ssh.f function ssh(p,t) mthermo/tcon.f function tcon(t,d) mthermo/tda.f function tda(o,p) mthermo/tdew.f function tdew(p,sh) mthermo/te.f function te(t,td,p) mthermo/thm.f function thm(t,p) mthermo/tlcl.f function tlcl(t,td) mthermo/tlcl1.f function tlcl1(t,td) mthermo/tmlaps.f function tmlaps(thetae,p) mthermo/tmr.f function tmr(w,p) mthermo/tsa.f function tsa(os,p) mthermo/tv.f function tv(t,td,p) mthermo/tw.f function tw(t,td,p) mthermo/w.f function w(t,p) mthermo/wmr.f function wmr(p,t) mthermo/wobf.f function wobf(t) mthermo/z.f function z(pt,p,t,td,n) bgdata/bkgd_stn_interp.f subroutine bkgd_stn_interp(nstns,slat,slon,selev,stime subroutine bkgd_stn_interp_sub( subroutine read_bgdata(nx_bg,ny_bg end subroutine subroutine vinterp(nz_laps,nx,ny, end subroutine subroutine get_bkgd_mdl_info(bgmodel end subroutine subroutine init_hinterp(nx_bg,ny_bg,nx_laps,ny_laps,gproj, end subroutine subroutine hinterp_field(nx_bg,ny_bg,nx_laps,ny_laps,nz end subroutine subroutine tdcheck(nx_laps,ny_laps,sh_sfc,tp_sfc, bgdata/bkgd_util.f subroutine rotate_lga_winds(ldir,bgmodel,cmodel,fullname subroutine rotate_background_uv(nx,ny,nz,lon,bgmodel,cmodel subroutine print_rotproj(gproj,c6_maproj,lon0,lat1,lat2 subroutine thvpc2tq(thv,pc,p,t,q) subroutine tv2tq(tv,rh,p,t,q) subroutine reset_lapsparms_common(ldir,bgmodel,cmodel bgdata/es_table.f subroutine es_ini bgdata/get_acceptable_files.f subroutine get_acceptable_files(i4time_anal,bgpath,bgmodel,names bgdata/get_attr_sbn.f subroutine get_attribute_sbn(cdfname,centralLat,centralLon, bgdata/get_bkgd_files.f subroutine get_bkgd_files(i4time_now,bgpath,bgmodel,names bgdata/get_bkgd_mdl_info-get_fua_center.f subroutine get_bkgd_mdl_info(bgmodel,cmodel,fullname subroutine get_eta48_dims(filename,NX,NY,NZ end subroutine subroutine get_ruc2_dims(filename,cmodel,NX,NY,NZ end subroutine subroutine get_attribute_sbn(cdfname,centralLat,centralLon, end subroutine subroutine get_sbn_dims(cdfname,cmodel end subroutine subroutine readavnpublicdims(fname,x,y,numIsoLevel,record, end subroutine subroutine read_lapsprd_attr(fullname, end subroutine subroutine get_fua_center(path,lat,lon,istat) bgdata/get_bkgd_mdl_info.f subroutine get_bkgd_mdl_info(bgmodel,cmodel,fullname subroutine get_eta48_dims(filename,NX,NY,NZ end subroutine subroutine get_ruc2_dims(filename,cmodel,NX,NY,NZ end subroutine subroutine get_attribute_sbn(cdfname,centralLat,centralLon, end subroutine subroutine get_sbn_dims(cdfname,cmodel end subroutine subroutine readavnpublicdims(fname,x,y,numIsoLevel,record, end subroutine subroutine read_lapsprd_attr(fullname, end subroutine bgdata/getdims_lapsprd.f subroutine getdims_lapsprd(fullname,x,y,z,istatus) subroutine read_lapsprd_attr(fullname, bgdata/lapsio.f subroutine get_laps_lat_lon(dir,ext,nx,ny,lat,lon,istatus) subroutine get_laps_wind(dir,i4time,ext,nx,ny,nz,uw,vw,istatus) subroutine get_laps_2d_sfc(dir,i4time,ext,nx,ny,nfld,fldid subroutine get_laps_sfc_elev(dir,ext,nx,ny,sht,istatus) subroutine get_laps_3d_analysis_data(i4time,nx,ny,nz bgdata/lga_driver.f subroutine lga_driver(nx_laps,ny_laps,nz_laps,luse_sfc_bkgd real ssh2, !Function name subroutine read_bgdata(nx_bg,ny_bg end subroutine subroutine vinterp(nz_laps,nx,ny, end subroutine subroutine get_bkgd_mdl_info(bgmodel end subroutine subroutine init_hinterp(nx_bg,ny_bg,nx_laps,ny_laps,gproj, end subroutine subroutine hinterp_field(nx_bg,ny_bg,nx_laps,ny_laps,nz end subroutine subroutine filter_2dx(field,ix,iy,iz,smth) end subroutine c... of subroutine sfcbkgd_sfc. This routine uses the 2m Td and sfc_press subroutine get_lga_source(nx,ny,nz,fname,af,source) bgdata/lga_interp_subs.f subroutine vinterp(nz_laps,nx,ny, subroutine vinterp_sub(msngflag end subroutine subroutine vinterp_sub(msngflag,nx,ny,nz,nzbg subroutine time_interp(dir,ext,nx,ny,nz,ngrids,pr, bgdata/lprep_eta_conusc.f subroutine lprep_eta_conusc(nx,ny,nz,pr,tp,rh bgdata/lprep_ruc2_hold.f subroutine lprep_ruc2_hybrid(nx,ny,nz,ht,pr,sh,uw,vw,th print*,'This is where we have a subroutine to bgdata/lprep_ruc2_pub.f subroutine lprep_ruc2_hybrid(nx,ny,nz,ht,pr,sh,uw,vw,th bgdata/rdmodelindex.f subroutine readindexfile(cfname,nfldsmax,nlevsmax bgdata/readFMIcdf.f subroutine get_bgdata_data subroutine read_FMI_netcdf(filename, numIsoLevel, record, x, y, bgdata/read_fuafsf.f subroutine read_fuafsf_cdf(fullname, x, y, z, subroutine swap_array_k(a1,nx,ny,nz) bgdata/read_mm5_grids.f subroutine read_mm5_grids_v2(cfilename,i4time_init,laps_cycle_time print*,'*** Subroutine Background ' print*,'*** Subroutine Background ' print*,'*** Subroutine Background ' print*,'*** Subroutine Background ' print*,'*** Subroutine Background ' bgdata/read_netcdf_field.f subroutine read_netcdf_real(nf_fid,fname,n1,f,start,count,istatus) bgdata/read_ramsDUMP.f subroutine read_ramsDUMP(fname,nx,ny,nz,ht,uw,vw,ww,temp bgdata/read_sbn_grids.f subroutine get_sbn_model_id(filename,cmodel,ivaltimes,ntbg subroutine get_sbn_dims(cdfname,cmodel subroutine get_nvaltimes(cdfname,nvaltimes,ivaltimes,istatus) subroutine read_sbn_grids(cdfname,af,cmodel, subroutine get_prbg(nf_fid,nlvls,cvar,cmodel end subroutine subroutine read_netcdf_real(nf_fid,fname,n1,f end subroutine subroutine get_prbg(nf_fid,nlvls,cvar,cmodel bgdata/read_unidata_grids.f subroutine get_unidata_model_id(filename,cmodel,ivaltimes,ntbg subroutine get_unidata_dims(cdfname,cmodel subroutine get_nvaltimes_unidata(cdfname,nvaltimes,ivaltimes, subroutine read_unidata_iso(cdfname,af,cmodel, subroutine read_netcdf_real(nf_fid,fname,n1,f end subroutine subroutine get_unidata_grid(filename,cmodel,NX,NY subroutine read_unidata_ruc_hyb(cdfname,af,cmodel, subroutine read_netcdf_real(nf_fid,fname,n1,f end subroutine bgdata/readavnpublic.f subroutine readavnpublicdims(fname,x,y,numIsoLevel,record, subroutine read_avn_netcdf(fname, numIsoLevel, record, x, y, bgdata/readbgdata.f subroutine read_bgdata(nx_bg,ny_bg, subroutine read_sbn_grids(cdfname,af,cmodel, end subroutine subroutine read_dgprep(bgmodel,cmodel,path,fname,af end subroutine bgdata/readconusnws.f subroutine get_conus_dims(fname,nx,ny,nz) subroutine read_conus_nws(path,fname,af,nx,ny,nz bgdata/readdgprep.f subroutine read_dgprep(bgmodel,cmodel,path,fname,af,nx,ny,nz subroutine read_avn(lun,nx,ny,nz,tp,uw,vw,ht,sh subroutine read_eta(lun,nx,ny,nz,tp,uw,vw,ht,sh subroutine qcmodel_sh(nx,ny,nz,sh) subroutine read_nf15km(mx,my,nz,full_name bgdata/readeta48_pub.f subroutine get_eta48_dims(filename,NX,NY,NZ subroutine read_eta_conusc(fname, NX,NY,NZ, ht,p,t,uw,vw, subroutine swap_array(n1,n2,a1) bgdata/readmm5.f SUBROUTINE READMM5(CDATE, SIGMA, SIGFULL, USIG, VSIG, TSIG, SUBROUTINE SWAP2D (FLDIN, FLDOUT, IMAX, JMAX) END SUBROUTINE SWAP2D SUBROUTINE SWAP3D (FLDIN, FLDOUT, IMAX, JMAX, KDIM) END SUBROUTINE SWAP3D PRINT*,'*** SUBROUTINE: READMM5' PRINT*,'*** SUBROUTINE: READMM5' END SUBROUTINE READMM5 bgdata/readnamnh221_pub.f subroutine get_namnh221_dims(filename,NX,NY,NZ subroutine read_nam_nh221(fname, NX,NY,NZ, ht,p,t,uw,vw, subroutine swap_array(n1,n2,a1) bgdata/readnogaps.f subroutine read_nogaps(lun,nx,ny,nz bgdata/readruc2_pub.f subroutine get_ruc2_dims(filename,cmodel,NX,NY,NZ subroutine read_ruc2_hybb(filename, NX, NY, NZ, mmsp bgdata/readruc60native.f subroutine read_ruc60_native(path,fname,af,nx,ny,nz, bgdata/sfcbkgd.f SUBROUTINE SFCBKGD(bgmodel,t,q,height,tsfc,tdsfc,ter,p, subroutine compute_sfc_bgfields(bgm,nx,ny,nz,i,j,k,ter,height bgdata/sfcbkgd_sfc.f SUBROUTINE SFCBKGD_SFC(bgmodel,t,q,height,heightsfc subroutine compute_sfc_bgfields_sfc(bgm,nx,ny,nz,i,j,k,ter,height bgdata/tcbogus-28-Oct-04.f subroutine tcbogus(jx,ix,nz,ht,tp,rh_c,uw,vw, subroutine lc_param11(s,cone,xmin,ymin,dx,dy, subroutine hourcalc(year,month,day,hour,tothours) subroutine cen_posi(lat,lon,glon,glat,cen_I,cen_J,JX,IX) subroutine vor(u,v,dmf,xmf,ix,jx,kx,ds,vort) subroutine relax(chi,ff,rd,ix,jx,ds,level,istatus) subroutine fillit(f,ix,jx,kx,imx,jmx,ifirst,ilast,jfirst,jlast) subroutine balance(f,psi,ix,jx,ds,out) subroutine delta(psi,ix,jx,ds,out) subroutine crs2dot(crs,dot,ix,jx,iend,jend) bgdata/tcbogus.f subroutine tcbogus(jx,ix,nz,ht,tp,rh_c,uw,vw, subroutine lc_param11(s,cone,xmin,ymin,dx,dy, subroutine hourcalc(year,month,day,hour,tothours) subroutine cen_posi(lat,lon,glon,glat,cen_I,cen_J,JX,IX) subroutine vor(u,v,dmf,xmf,ix,jx,kx,ds,vort) subroutine relax(chi,ff,rd,ix,jx,ds,level,istatus) subroutine fillit(f,ix,jx,kx,imx,jmx,ifirst,ilast,jfirst,jlast) subroutine balance(f,psi,ix,jx,ds,out) subroutine delta(psi,ix,jx,ds,out) subroutine crs2dot(crs,dot,ix,jx,iend,jend) bgdata/writelgalgb.f subroutine write_lga(nx_laps,ny_laps,nz_laps,bgtime,bgvalid, subroutine write_lgb(nx_laps,ny_laps,bgtime,bgvalid,cmodel temp/adjust_heights.f subroutine adjust_heights(temp_3d,heights_3d,ht_500_fg temp/compare_temp.f subroutine compare_temp ( subroutine comp_grid_tempobs(t_3d,ni,nj,nk subroutine get_temp_obstypes(obs_barnes,max_obs,ncnt_total temp/insert_tobs.f subroutine insert_tobs(i4time ! Input subroutine analyze_tobs(n_tsnd,ni,nj,nk ! I subroutine barnes_univariate_shell(ni,nj,nk ! Inputs subroutine get_temp_obstype(c_obstype,i_obstype,mode) temp/interp_rass.f subroutine interp_laps_to_rass(ob_pr_ht_obs,ob_pr_t_obs, temp/interp_tobs.f subroutine interp_tobs_to_laps(ob_pr_ht_obs,ob_pr_t_obs, ! I temp/puttmpanal.f subroutine put_temp_anal(i4time_needed subroutine write_temp_anal(i4time,imax,jmax,kmax,temp_3d subroutine get_temp_parms(l_read_raob_t,l_use_raob_t temp/read_acars_t.f subroutine rd_acars_t(i4time,heights_3d,temp_bkg_3d ! I temp/read_sfc_t.f subroutine rd_sfc_t(i4time,heights_3d,temp_bkg_3d ! I temp/read_tsnd.f subroutine read_tsnd(i4time_sys,heights_3d,temp_bkg_3d, ! Input wind/get_fg_wind.f subroutine get_fg_wind_new( subroutine get_fg_var( wind/get_wind_obs.f subroutine get_wind_3d_obs( subroutine remap_profiles( wind/interp_prof.f subroutine interp_prof(ob_pr_ht_obs,ob_pr_u_obs,ob_pr_v_obs, ! I wind/rdpoint.f subroutine rdpoint(i4time,heights_3d ! I subroutine read_laps_cdw_wind(lun,xlat,xlon,pres,dd,ff subroutine get_time_term(field_4d,NX_L,NY_L,NZ_L,NTMIN,NTMAX wind/rdsfc.f subroutine rdsfc(i4time,heights_3d ! I ! sfc_k function and add ri rj values. wind/read_profiles.f subroutine read_profiles(i4time_sys,heights_3d, ! I wind/vertwind.f subroutine vert_wind(uanl,vanl ! I ! /O wind/wind_post_process.f subroutine wind_post_process(i4time_sys subroutine write_wind_output(i4time_sys,EXT,var_3d subroutine put_laps_multi_3d_jacket(i4time_sys,EXT,var_3d alloca.c cio.c fort2c_str.c fsystem.c getfile_linda.c getfilenames_c.c i4time_now_gg.c nan.c regex.c rwl_v3.c rwl_v3_exp.c static_routines.c time_now.c unpkfgge_a.c waiting_c.c xmalloc.c