updated top-level README and version_decl for V4.5 (#1847)
[WRF.git] / var / obsproc / Changes
blob14f2cdda6160d6bb6932b1b1a145f0c40ff93289
1 Updated for Version 3.1 release.  Mar 17 2009
3 1, rename 3dvar_obs.F90 to obsproc.F90.
4 2, rename 3dvar_obs.exe to obsproc.exe.
5 3, rename namelist.3dvar_obs.wrfvar-tut to namelist.obsproc.wrfvar-tut.
6 4, remove some unnecessary files only for development team internal use only.
7 5, update README and README.namelist
9 Updated Makefile to support more compilers.  Mar 5 2009
11 1, to compile, add compiler choice in the make command line, for example,
12    make FC="pgf90"
13    make FC="ifort"     # for Linux only
14    make FC="gfortran"  # for Linux only
15    make FC="g95"       # for Mac only
17 Updated by Y.-R. Guo, 7 May 2008
19 1, To correct the "0 obs" ascii output file writing
21    Modified:
22        src/module_write.F90
24 Updated by Y.-R. Guo, 28 March 2008
26 1, Improve the printing, change "print *," to be "write(0,"
28    Modified:
29        src/module_map_utils.F90
30        src/module_decoded.F90
31        src/module_err_afwa.F90
33 2, Plot only one set of the obs distribution maps
35    Modified
36        MAP_plot/Dir_map/Map.F
37        MAP_plot/Dir_map/plstn1.F
39 3, Added the function to write out the obs files for use of 
40    3DVAR, FGAT, and 4DVAR
42    For 3DVAR, the obs within slot [time_window_min, time_window_max)
43               are outputted. no time duplicate obs;
45    For FGAT,  the obs files for multiple time slots are outputted.
46               each of the time slots has the closed low bound and 
47               opened upper bound. Within the whole time window, no time-
48               duplicate obs allowed;
50    For 4DVAR, same as FGAT but there may be time-duplicate obs within 
51               the whole time window. Within each of time slots,however,
52               no time-duplicate obs allowed. 
54    * The opened upper-bound is important for the cycling run to avoid the
55      duplicated usage of the observations in the different cycles.
57    * The number of time-slots before and after analysis time could be 
58      different (i.e.asymetric). However, the number of the time-slots
59      before the analysis time MUST BE >= 1 for FGAT or 4DVAR.
61    * Currently the lengths for all of the time-slots are considered to be 
62      same. 
64    * Note: the current MAX_OB_RANGE in scripts is ONLY allowed to be integer 
65      (hours), and the entir time window = 2 * MAX_OB_RANGE, must be the even 
66      numbers (hours). So for 6-h cycling run (MAX_OB_RANGE=3), the time window 
67      for obsproc is correct, but for a 3-h cycling run, the time window for 
68      obsproc will not be correct. 
70    Modified
71        src/3dvar_obs.F90
72        src/module_namelist.F90
73        src/module_write.F90
74        src/module_duplicate.F90
76 4, Introduced the switches to control the specific types of obs in
77    the obs_gts (ASCII) files. This is mostly for testing purpose.
79    Modified
80        src/3dvar_obs.F90
81        src/module_namelist.F90
82    
83 Updated by Y.-R. Guo, 31 January 2008
85 1) Bug fix in module_recoverh.F90 -->
86               SUBROUTINE recover_h_from_ptq(P,T,Q,HGT,KXS,K_START,K_TOP)
88    it must be processed separately when k >= kxs under k_start == 0.
90 2) Add the limitation on iproj setting in module_namelist.F90
92    modified codes:
93   
94        src/module_namelist.F90
95        src/module_recoverh.F90
96    and README
98 Updated by Y.-R. Guo, 10 May 2007
100 1) To make the namelist variables in record6 more understandable:
102    ps0 --> base_pres
103    ts0 --> base_temp
104    tlp --> base_lapse
106    and 
108    pis0 --> base_tropo_pres
109    tis0 --> base_start_temp.
111 2) To maintain the backward compatible, users could 
113    either set 
115      a set of variable names: ts0,  ps0, tlp, and tis0, pis0 
117    or set 
119      a set of variable names: base_temp, base_pres, base_lapse, and 
120                               base_start_temp.base_tropo_pres 
122    Both of the settings are giving the exactly same results.
124 3) Note: In most cases, pis0, tis0 or base_start_temp, base_tropo_pres.
125    do not need to set in namelist file. The default values are OK.
127 4) Modified subroutines
129      src/module_mm5.F90
130      src/module_namelist.F90
131      src/module_write.F90
133      README
134      README.namelist
135      namelist.3dvar_obs.sample1
136      namelist.3dvar_obs.wrfvar-tut
138 Updated by Y.-R. Guo, 12 April 2007
140 Modified the functions Ref_height and Ref_pres in order to consider
141 the more accurate reference state in stratosphere. 
143   The tropopause pressure (default=20000.0 Pa) and the isothermal 
144   temperature above tropopause (default = 215 K) are introduced into 
145   the "namelist.3dvar_obs" file.
147 As the model top level became high and high, 1000 Pa, even 100 Pa,
148 the accurate reference state must be provided in the OBSPROC to
149 do the gross quality control, recover the pressure or height, etc.
151 The codes are modified"
153    3DVAR_OBSPROC/src/3dvar_obs.F90
154    3DVAR_OBSPROC/src/module_mm5.F90
155    3DVAR_OBSPROC/src/module_namelist.F90
156    3DVAR_OBSPROC/src/module_write.F90
158 Updated by Y.-R. Guo, 22 March 2007
160 Jim Bresch found the variable, m_miss, not initiated to be zero in 
162    3DVAR_OBSPROC/src/module_decoded.F90
164 Added "m_miss = 0" in this code.
166 Updated by Y.-R. Guo, 5 February 2007
168 To move the elevation missing check after the domain and time-window screen
169 in 3DVAR_OBSPROC/src/module_decoded.F90, and the printing stuff reduced.
171 Updated by Y.-R. Guo, 1 February 2007
173 1, Removed the line:
175    $(RANLIB) $(LIBDIR)$(FDVARLIB)
177    in MAP_plot/Dir_map/Makefile and MAP_plot/Dir_map/Skewt/Makefile 
179    The Error in compiling Map.exe will disappeared.
181 2, Modified the MAP_plot/configure.user.ibm
183    A -O2 option added to FCFLAGS. Otherwise, Map.exe does not work properly
184    in bluevista. (This is happened in compiling the wrfvar code too). 
186 Updated by Y.-R. Guo, 20 January 2007
188 Hui-Chuan encountered the segmentation error with 2007010418 and
189   2007010812 obs (Jim Brsch) data in check_duplicate_loc.
191 The code is rather complicated during the check duplication and data merging
192 together. I found that the logic is not correct when the "first" coming
193 report has a "0 level data record". Because the code is used the pointer/link
194 structure, it takes me 3 days to fix the module:
196          module_obs_merge.F90
198 Updated by Y.-R. Guo, 28 November 2006
200 1, g95 compiler in Mac is added:
202      mak mac_g95
204 2, Remove the redundant codes
206    subroutine local in module_qc.F90
208    AA = (PMAX - PMSL) / LOG (NTOP/NBOT) in module_err_afwa.F90
210 3, Added the AIRS plotting to MAP_plot
212 Updated by Y.-R. Guo, 10 November 2006
214 1, Added the GPS RO excess phase processing (GPSEP)
216    GPS RO Refractivity observation error specification is updated (Chen and Kuo
217    2005).
219    The GPS RO little_r file is from the bufr decoder program. The data
220    contain the height, lat, lon, impact parameter, azimuth angle, bending 
221    angle, refractivity.
223 2, Reviewed the AIRS data processing
225    p-h gross check should be done, not skept over by Rizvi's mod.
227 3, Note that AIRS and GPSEP are not includeed in prebufr output data yet.
228    More work needed for this.
230 Modifications:
232         M README
233         M namelist.3dvar_obs.wrfvar-tut
234         M src/3dvar_obs.F90
235         M src/fm_decoder.F90
236         M src/module_complete.F90
237         M src/module_decoded.F90
238         M src/module_diagnostics.F90
239         M src/module_duplicate.F90
240         M src/module_err_afwa.F90
241         M src/module_err_ncep.F90
242         M src/module_per_type.F90
243         M src/module_qc.F90
244         M src/module_recoverh.F90
245         M src/module_recoverp.F90
246         M src/module_sort.F90
247         M src/module_write.F90
248         M src/platform_interface.inc
249         M src/sort_platform.F90
251 Updated by Y.=R. Guo, 29 September 2006
253 1, Added the system library SYSLIB=-lSystemStubs for Mac xlf.
254 2, Mercator map projection bug fix.
256 Updated by Y.-R. Guo, 27 April 2006
258   Added the directory: kmabufr_to_littler, in which the kma bufr format
259   observations are converted to the little_r format observations.
261 Updated by Y.-R. Guo, 13 April 2006
263   Incorporated the Jim Bresch's changes in preparing the release to KMA.
265   3DVAR_OBSPROC/Makefile
266   3DVAR_OBSPROC/lib/cwordsh/README_cwordsh
267   3DVAR_OBSPROC/lib/cwordsh/Makefile
268   3DVAR_OBSPROC/lib/cwordsh/cwordsh.f
269   3DVAR_OBSPROC/lib/cwordsh/cwordsh.sh
270   3DVAR_OBSPROC/lib/Makefile
271   3DVAR_OBSPROC/lib/ncep/Makefile
272   3DVAR_OBSPROC/src/module_decoded.F90
274   3DVAR_OBSPROC/MAP_plot/Map.csh
275   3DVAR_OBSPROC/README
277 Updated by Y.-R. Guo, 6 March 2006
279   1, This version of 3DVAR_OBSPROC code included the prebufr OBS
280      file output (see README.namelist), special for KMA 2005 project.
282      What are changed by Jim Bresch and Jim Drake? see below:
284      Updated by Jim Bresch, 1 February 2006
285      --------------------------------------
287      Completed prepbufr code. Added NCEP's bufrlib to the directory.
288      Numerous changes to source code and Makefiles.
290      Updated by Jim Drake, 20 Oct 2005
291      ---------------------------------
293      Modified to add PREPBUFR processing of surface observation types:
295         3DVAR_OBSPROC/README
296         3DVAR_OBSPROC/README.namelist
297         3DVAR_OBSPROC/Makefile     (for faster builds)
298         3DVAR_OBSPROC/little_r     (only FM-13 and FM-15 because that's
299                                     all AFWA puts out right now. Tested
300                                     with FM-12 and FM-18 too).
301         3DVAR_OBSPROC/namelist.3dvar_obs
302         3DVAR_OBSPROC/src/Makefile (for faster builds)
303         3DVAR_OBSPROC/src/3dvar_obs.F90
304         3DVAR_OBSPROC/src/module_write.F90
306     For architectures other than IBM the macro LDFLAGS will need adjusting, and
307     the macro LOCAL_LIBRARIES needs to be pointed at the BUFRLIB library, (cf.
308     3DVAR_OBSPROC/Makefile).
310     On AFWA IBM's, set the environment variable OBJECT_MODE to 64 in order to
311     build.
313     3DVAR_OBSPROC puts out a warning for some deficiency in some of the 
314     observations as they are read in that I haven't pursued.
316   2,In general, this version of 3DVAR_OBSPROC code can be applied to write out
317     both the ASCII and prebufr 3dvar_OBS files. Only restriction is the number
318     of vertical levels to 190. If users expect the number of vertical levels 
319     > 190, such as GPS Ref from COSMIC/CDDAC, you should use a earlier version
320     of 3DVAR_OBSPROC code obtained by
322       cvs -d bay-mmm:/data3/mp/wrfvar co -r V2_11 3DVAR_OBSPROC
324 Updated by Y.-R. Guo, 20 February 2006
326   AFWA found a "STOP" problem with SOUND data in Sub. reorder in 
327   module module_recoverh.F90 because the pressure is missing at
328   some levels. The problem is existed in module module_recoverp.F90
329   that at certain bottom levels, the pressure was not retrieved.
330   Two modules are modified.
332 Updated by Y.-R. Guo, 2 February 2006
334   Jim Bresch found that all sea surface wind speed from SSMI became missing.
335   However, I checked the old file: t1a_obs_ssmi_retrieval.02110418.3dvar,
336   the wind speed is OK. This was caused by "meaningless wind check" added
337   on 04/27/2004. Actually, for SSMI, this check should be skept over.
339   Also I found the the quality index for SSMI PW became "4" --- error 
340   specified. It may be better to keep it to be "0" as before.
342    Updated by Y.-R. Guo, 17 January 2006
344    1, with CWB 2003090312Z obs data: PILOT --> FM-32, ID=48698, 
345       1.370, 103.980, the "dead-loop" occurred in module_recoverh.F90
347       The bugs in re-assign the negative values to the HGT%qc in
348       subroutine recover_h_from_ptq are found:
350        HGT(k-1)%qc   = - HGT(k-1)%qc
352       should be
354        if (HGT(k-1)%qc>0) HGT(k-1)%qc   = - HGT(k-1)%qc
356    Updated by Y.-R. Guo, 25 October 2005
358    1, CWB (Hi-Chuan Lin) found the dead-loop with the data 
359       pilot2005081800.problem.r in module_recoverh.F90.
361       The bug corrected in module: pilot2005081800.problem.r
363    2, Occasionally found 3DVAR_OBSPROC is not working properly 
364       in MMM Dec alpha machine.
367    3, For AMD Opteron Processor 848 (x86_64), the module: module_sort.F90
368       must have a statement such as:
370       write(1001,'("In  RECURSIVE SUBROUTINE merge_sort: high and low:",2i10)') high, low
372   modified code:
374     module_diagnostics.F90
375     module_err_afwa.F90
377     module_recoverp.F90 --- to guarantee the pressure is 
378                             retrieved at all levels.
379     module_recoverh.F90 --- the "STOP" statement commented, 
380                             instead, if the "STOP" condition
381                             happened, that SOUND will be discarded.    
382     module_sort.F90     --- special for AMD Opteron
385 Updated by Y.-R. Guo, 23 September 2005
387 1, For Mercator projection (Hurrican Rita), 3DVAR_OBSPROC/src/map_utils 
388    should be corrected to obtain the correct (x,y) from lat/lon;
390 2, When the projection is "LC" with TRUELAT1=TRUELAT2 and "ME", plotting 
391    MAP is not working properly. 3DVAR_OBSPROC/MAP_plot/Dir_map/setup.F is 
392    modified.
394 Modified:
395         3DVAR_OBSPROC/src/map_utils.F90
396         3DVAR_OBSPROC/MAP_plot/Dir_map/setup.F
398 Updated by Yong-Run Guo, 31 May 2005
400 To make the 3DVAR_OBSPROC working in Mac G5.
402 Modified:
404         3DVAR_OBSPROC/README
405         3DVAR_OBSPROC/Makefile
406         3DVAR_OBSPROC/MAP_plot/Makefile
408 Added:
410         3DVAR_OBSPROC/MAP_plot/configure.user.mac
411         3DVAR_OBSPROC/MAP_plot/mac_Makefile1
412         3DVAR_OBSPROC/MAP_plot/mac_Makefile2
414 Updated by Yong-Run Guo, 22 April 2005
416 Rizvi added code to module_decoded.F90 for MODIS obs: "FM-88 MODIS".
417 Also file: namelist.3dvar_obs.AMPS is updated.
419 Updated by Yong-Run Guo, 3 February, 2005
421 1, For application to the Polar Stereographic map projection, the
422    calculation of (i,j) from latlon or latlon from (i,j) are different
423    from the Lambert Conformal projection.
425    In Lambert projection, it is always (1,1) from the (lat1,lon1),
426       no matter what knowni, knowj given. So if (lat1,lon1) were
427       assigned by the cen_lat and cen_lon, the computed (i,j) must
428       have the correction with the knowi and knowj.
430    In PolarStereographic projection, when (lat1,lon1)=(cen_lat,cen_lon),
431       the (i,j) = (knowi,knowj).
433           module_map_utils.F90
435 2, Conversion of the WRF domain configuration to MM5 domain configuration
437           module_namelist.F90
439 3, For projection 'ST', it is always confac = 0.0, not need to call lccone.
440    in MAP_plot/Dir_map/plots.F. Otherwise, there is a floating point error 
441    when abs(fsplat)=90.0 
443           MAP_plot/Dir_map/plots.F
445 Updated by Yong-Run Guo, January 11, 2005
447 1, For correctly computing the model coordinates, especially with 
448    lat=-90.0 when truelat1>0 or 90.0 when truelat1<0.
450           module_namelist.F90
451           module_decoded.F90
453 2, One more data type: Bogus soundings for tropical cyclone is added
455    FM=135 and platform='BOGUS'
457           module_per_type.F90
458           module_complete.F90
459           module_duplicate.F90
460           module_qc.F90
461           module_write.F90
462           platform_interface.inc
463           fm_decoder.F90
464           module_decoded.F90
465           3dvar_obs.F90
466           sort_platform.F90
468    U/V errors (m/s) are specified in the fields u%data.v%data in little_r file.
469    SLP error (Pa) is specified in the field psfc%data in little_r file.
471           module_err_afwa.F90
473    In order to keep the data (U,V)=0.0 at the center of Typhoon, the 
474    'diagnostics_wind' procedure is skept over.
476           module_diagnostics.F90
478 ------------------------------------------------------------------------------
479 Updated by Yong-Run Guo, November 11, 2004
481 1, Added the WRF application option (fg_format='WRF') and  the module:
482       module_map_utils.F90
483    for model coordinate (X,Y) calculation.
485 2, Removed those GPS related modules:
486       module_gpspw.F90
487       module_gpspw_caa.F9
488       module_gpspw_gst.F90
489    because they are never used in the program
491 3, The file namelist.3dvar_obs is changed (see README.namelist).
493 -----------------------------------------------------------------------------
495 Updated by Yong-Run Guo, September 2, 2004
497 1, Indian visitors found that time duplicate check is not working properly,
498    not retaining the observation closest to the analysis time. Rizvi 
499    worked with them to correct the "module_duplicate.F90". Y.-R. Guo 
500    reveiwed it, and included the GPS Ref. in this module.
502 2, SHU-YA CHEN, Central University, Taiwan, found compiling failed in
503    PC Linux with cpp flag -DBKG. Y.-R. Guo corrected the bug in setup.F90.
504    There is no problem without cpp flag -DBKG, so not affect AFWA, KMA. 
506 3, Code changed
508      src/module_duplicate.F90
509      src/setup.F90
510      src/3dvar_obs.F90
512 -----------------------------------------------------------------------------
513 Updated by Yong-Run Guo, July 29, 2004
515 Problem:  With AFWA obs data file:" 04072306.3DVAR", the job stopped.
517 Fix    : 1) To commented the STOP in 3DVAR_OBSPROC/src/error_handler.F90;
518          2) To discarded the OBS with the fatal errors, if any, in
519             3DVAR_OBSPROC/src/module_qc.F90;
520          3) To add the hydrostatic check for the reported height in
521             3DVAR_OBSPROC/src/module_recoverh.F90:
523             If (abs(Hd - Ho) > 0.10*Hd), use Hd to replace the Ho.
524             where Hd is the computed height from the (P,T,q) based
525             on the hydrostatic equation. Ho is the reported height.
527 ----------------------------------------------------------------------------
528 Updated by Yong-Run Guo, July 21, 2004
530  I, Main points in this update
532   1, The GPS Refeacrivity is included. The Refractivity N has the 
533      WMO code = 116, and the field 'dew_point' is used to store the 
534      refrectivity N. This will minimize the code changes. Currently,
535      only the local OBS operator is used in 3DVAR, so N is the only
536      observation data. 
538      The observation errors are assigned as
540         error = nbot*exp ( (pres-pmsl)/aa )
542      where nbot = 10, ntop = 3, pmax = 1000, pmls = 100000, 
543          aa = (pmax-pmls) / log(ntop/nbot), and pres is the pressure
544          at the observed level.
546      Reference
547      
548      Huang, C.-Y., Y.-H. Kuo, S.-H. Chen, and F. Vandenberghe, 2004:
549        Improvements in Typhoon Forecasting with Assimilated GPS Occultation
550        Refractivity. (Submitted to Mon. Wea. Rev.)
552   2, For KMA Global unified 3DVAR system, one more namelist vaviable added:
554      &record4
555       domain_check_h           = .false.,
557       domain_check_h=.false. -- ignore the outside domain check 
558                                 for global 3DVAR.
559       domain_check_h=.true.  -- do the outside domain check for regional 3DVAR.
561      Note: when running for Global OBS processing, you MUST delete the
562            option  -DBKG in Makefile and use the namelist.3dvar_obs.template1
563            because there is no Background file available.
565   3, Modified the 'above_top` check by using 'ptop' instead of hlid
567      &record4
568       remove_above_lid         = .true.,
570       remove_above_lid=.false. -- keep the data at all the levels. 
571       remove_above_lid=.true.  -- discard the data at the levels above ptop.
573   4, In order to plot a global coverage map background, one more value, 0,
574      in addition to 1 (LAMBERT), 2 (POLAR), 3 (MECATOR), is effective for 
575      namelist variable
577      &record7
578       IPROJ    =   0,
580      This is Cylindrical Equidistance map projection for plotting the
581      distribution of the Global observations.
583      Note that for a global map, always set 
585      &record8
586       IDD      =   1,
587       MAXNES   =   1,
588       NESTIX   =      181,
589       NESTJX   =      361,
590       DIS      =    110.0,
592 II, Bug fix
594   1, A bug fixed in src/module_map.F90 and MAP_plot/Dir_map/llxy.F.
596      When usimg Mecator map projection and the domain across the date line,
597      the (x,y) was computed increectly.
599   2, A bug fixed in src/module_recoverh.F90
601      When a multiple-level OBS with the height missing at the bottom
602      levels, the heights recovered at those levels are incorrect. This
603      bug sometime caused the program Preprocessor stopped, but not 
604      affect the 3DVAR.
606 III, Code changed
608      src/3dvar_obs.F90
609      src/fm_decoder.F90
610      src/module_complete.F90
611      src/module_decoded.F90
612      src/module_diagnostics.F90
613      src/module_duplicate.F90
614      src/module_err_afwa.F90
615      src/module_err_ncep.F90
616      src/module_map.F90
617      src/module_mm5.F90
618      src/module_namelist.F90
619      src/module_per_type.F90
620      src/module_qc.F90
621      src/module_recoverh.F90
622      src/module_write.F90
623      src/platform_interface.inc
624      src/setup.F90
625      src/sort_platform.F
627      MAP_plot/Dir_map/DA_Constants.f90
628      MAP_plot/Dir_map/DA_Define_Structures.f90
629      MAP_plot/Dir_map/DA_Read_Obs.inc
630      MAP_plot/Dir_map/DA_Read_Obs_Info.inc
631      MAP_plot/Dir_map/Map.F
632      MAP_plot/Dir_map/llxy.F
633      MAP_plot/Dir_map/plstn1.F
634      MAP_plot/Dir_map/setup.F
635 ----------------------------------------------------------------------------   
637 VERSION 1_3_0 3dvar_obs PROGRAM
638 (Updated by Yong-Run Guo, June 4, 2003)
640 This is the main directory of the "3dvar_obs" observation processing program 
641 of the MM5 3D-VAR data assimilation system (3dvar_1_3_0 and after)
643 Everything a user needs to run the 3dvar_obs program is contained in this 
644 directory.
646 For questions, please send emails to mesouser@ucar.edu
648 For detailed documentation about 3dvar_obs programs, please read below 
649 and file "README.namelist" in this directory.
651 For more information on the MM5 3D-VAR data assimilation system, please see
653 http://www.mmm.ucar.edu/mm53dvar/docs/
655 For details on the 3dvar_obs input data format, please see
657 http://www.mmm.ucar.edu/mm53dvar/3dvar_tutorial_presentations.htm
659 -------------------------------------------------------------------------------
661 What is in 3dvar_obs?
663 3dvar_obs process decoded observations in LITTLE_R format, such as the ouput 
664 of the MM5 "gts_decoder" or the "fetch.csh" utilities for inputing into
665 the MM5 3DVAR system. 
667 The basic operations performed by 3dvar_obs are:
669 1) Remove the observations outside the time range and domain (horizontal 
670    and top).
672 2) Re-order and merge the duplicate (time and location) data reports. 
674 3) Retrieve the pressure or height based on the observed information with
675    the hydrostatic assumption.
677 4) Check the vertical consistency and super adiabatic for multi-level 
678    observations.
680 5) Estimate observational error based on the pre-specified error file.
682 6) Write out at the 3DVAR input format.
684 7) Plot the distribution for each type of observations.
686 -------------------------------------------------------------------------------
688 3dvar_obs is a Fortran 90 program, and requires Fortran 90 compiler.
690 At the moment, 3dvar_obs is working only for Dec_alpha, IBM, SGI, NEC 
691 and Fujitsu with their native compilers, and PC running Linux using 
692 Portland Group Fortran 90 compiler. If your machine isn't one of the 
693 ones supported or the compiler isn't the native one from the vendor, 
694 you need to edit the Makefile. For CRAY, SUN, and HP, we did not do 
695 fully testing of this program although Makefile included the MACRO 
696 for these machines.
698 ---------------------------------------------------------------
700 To compile 3dvar_obs:
702 - Type 'make' in the 3DVAR_OBS directory to complie;
704 - When make is successful, executable 3dvar_obs.exe will be created in this
705   directory.
707 ---------------------------------------------------------------
709 To run 3dvar_obs:
711 To create a namelist.3dvar_obs by edit the file namelist.3dvar_obs.sample
712 (README.namelist for details), and type 
714     3dvar_obs.exe >& 3dvar_obs.out
716 to execute the program.
718 Required input files for 3dvar_obs are:
720  1) First guess file (MMINPUT/MMOUT)**,
722     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
723       ****** Note Note Note Note Note Note Note Note Note Note ****** 
724              -------------------------------------------------
725          The first guess MUST BE MM5V3 input format because the code 
726        was origigally developed for MM5 3DVAR. If you want to apply 
727        this OBS preprocessor for WRF 3DVAR, you must choose another 
728        option "not usingthe first guess" described below.
729     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
731  2) A decoded observation file,
732  3) An observational error file (obserr.txt provided in this directory)
733  4) Namelist file: namelist.3dvar_obs
735  ** Note that there is an option to run 3DVAR OBSPROC not using the 
736     first guess (MMINPU/MMOUT) as input. In this case,
738     1) you need to modify the 3DVAR_OBSPROC/Makefile by deleting -DBKG 
739        from CPPFLAGS, and re-compile the executable with make;
740     2) Use another sample namelist file: namelist.3dvar_obs.sample1 as 
741        the namelist.3dvar_obs, and edit it to provide some MM5 parameter 
742        related to the reference state and the domain configuration.  
743        These parameters can be found in the MM5 INTERPF namelist and MM5 
744        TERRAIN namelist.
746     This option gives users a flexible choice to specify any domain
747     settings, not necessary related to the MMINPUT/MMOUT. 
749 The output files from 3dvar_obs are:
751 1) File "obs_gts.3dvar" is the obsevation data file input to 3dvar.
753 2) File "obs_ssmi_retrieval.3dvar" is generated only when SSMI data 
754    are present in the input file.
756 3) Several diagnostic files (*.diag), and with these files users can
757    know the troubles happened at which observations. 
759 4) The observational error profiles (*.txt)
761 5) In the printing file: 3dvar_obs.out, the flow of executions is shown
762    step by step. Users can look at this file to monitor the program
763    execution.
764 -------------------------------------------------------------------------------
766 To get the plots of the observation distribution
768     After the observation data files: obs_gts.3dvar and/or 
769   obs_ssmi_retrieval.3dvar produced, there is a utility to plot 
770   the observation distribution for each type of observations.
772   ** NCAR GRAPHICS library should ne installed in computer system.
774   1) cd MAP_plot;
775   2) Modify the shell script Map.csh, set the time window and OBS filename:
777      set TIME_WINDOW_MIN = '1999081911'
778      set TIME_ANALYSIS   = '1999081912'
779      set TIME_WINDOW_MAX = '1999081913'
781      set OBSDATA  = ../obs_gts.3dvar
783   3) Type
785      Map.csh
787   4) When job completed, you'll have
789     a gmeta file         :  gmeta.ccyymmddhh, and 
790     a printed output file:  Map.out.ccyymmddhh 
791     
792     This gmeta file displayed the OBS distribution for each type of
793     observations within the analysis domain in the time window. A quick
794     glance at these plots will make you more comfortable to go ahead 
795     with 3DVAR.
797   ** There are several plotting subroutines under the directory Dir_map.
798      With minor modifications, it is easy to plot the observed parameters:
799      pressure, temperature, wind, etc.
801 ----------------------------------------------------------------------------
803 To clean the directory obsproc
805      make clean
807    will clean the directory obsproc and its sub-directory. Be sure
808    to keep the files: obs_gts.3dvar, etc. before cleaning.
812      
813