SHELL=/bin/sh # This makefile is to create Post flat file from available and control XML file # Currently support GFS, GFS GOES, GFS ANL, NMM, and NGAC # See documentation EMC POST Performance Improvement Upgrade for information # 2015/04 Lin Gan : First version # 2015/10 Lin Gan : Add HRRR and RAP # 2016/03 Lin Gan : Add GEFS and new control section tag using GEFS ctrl and GFS avail file # Target flat file GFSFLATFILENAME = postxconfig-NT-GFS.txt GFSGOESFLATFILENAME = postxconfig-NT-GFS-GOES.txt GFSANLFLATFILENAME = postxconfig-NT-GFS-ANL.txt GFSF00FLATFILENAME = postxconfig-NT-GFS-F00.txt GFSFLUXFLATFILENAME = postxconfig-NT-GFS-FLUX.txt GFSFLUXF00FLATFILENAME = postxconfig-NT-GFS-FLUX-F00.txt NMMFLATFILENAME = postxconfig-NT-NMM.txt NGACFLATFILENAME = postxconfig-NT-NGAC.txt #HRRRFLATFILENAME = postxconfig-NT-HRRR.txt GEFSFLATFILENAME = postxconfig-NT-GEFS.txt GEFSANLFLATFILENAME = postxconfig-NT-GEFS-ANL.txt GEFSF00FLATFILENAME = postxconfig-NT-GEFS-F00.txt FV3SARFLATFILENAME = postxconfig-NT-fv3sar.txt # Source Post XML file GFSAVAILXMLFILENAME = post_avblflds.xml GFSCTRLFILENAME = postcntrl_gfs.xml GFSGOESCTRLFILENAME = postcntrl_gfs_goes.xml GFSANLCTRLFILENAME = postcntrl_gfs_anl.xml GFSCTRLF00FILENAME = postcntrl_gfs_f00.xml GFSCTRLFLUXFILENAME = postcntrl_gfs_flux.xml GFSCTRLFLUXF00FILENAME = postcntrl_gfs_flux_f00.xml NMMAVAILXMLFILENAME = nam_post_avblflds.xml NMMCTRLFILENAME = nam_cntrl_cmaq.xml NGACAVAILXMLFILENAME = ngac_post_avblflds.xml NGACCTRLFILENAME = ngac_postcntrl.xml #HRRRAVAILXMLFILENAME = hrrr_post_avblflds.xml #HRRRCTRLFILENAME = hrrr_postcntrl.xml GEFSAVAILXMLFILENAME = post_avblflds.xml GEFSCTRLFILENAME = postcntrl_gefs.xml GEFSANLCTRLFILENAME = postcntrl_gefs_anl.xml GEFSCTRLF00FILENAME = postcntrl_gefs_f00.xml FV3SARCTRLFILENAME = fv3sar.xml # Post flat file generator PERLXML = PostXMLPreprocessor.pl # CMD with param PERLXMLGFS = /usr/bin/perl $(PERLXML) $(GFSCTRLFILENAME) $(GFSAVAILXMLFILENAME) $(GFSFLATFILENAME) PERLXMLGFSGOES = /usr/bin/perl $(PERLXML) $(GFSGOESCTRLFILENAME) $(GFSAVAILXMLFILENAME) $(GFSGOESFLATFILENAME) PERLXMLGFSANL = /usr/bin/perl $(PERLXML) $(GFSANLCTRLFILENAME) $(GFSAVAILXMLFILENAME) $(GFSANLFLATFILENAME) PERLXMLGFSF00 = /usr/bin/perl $(PERLXML) $(GFSCTRLF00FILENAME) $(GFSAVAILXMLFILENAME) $(GFSF00FLATFILENAME) PERLXMLGFSFLUX = /usr/bin/perl $(PERLXML) $(GFSCTRLFLUXFILENAME) $(GFSAVAILXMLFILENAME) $(GFSFLUXFLATFILENAME) PERLXMLGFSFLUXF00 = /usr/bin/perl $(PERLXML) $(GFSCTRLFLUXF00FILENAME) $(GFSAVAILXMLFILENAME) $(GFSFLUXF00FLATFILENAME) PERLXMLNMM = /usr/bin/perl $(PERLXML) $(NMMCTRLFILENAME) $(NMMAVAILXMLFILENAME) $(NMMFLATFILENAME) PERLXMLNGAC = /usr/bin/perl $(PERLXML) $(NGACCTRLFILENAME) $(NGACAVAILXMLFILENAME) $(NGACFLATFILENAME) #PERLXMLHRRR = /usr/bin/perl $(PERLXML) $(HRRRCTRLFILENAME) $(HRRRAVAILXMLFILENAME) $(HRRRFLATFILENAME) PERLXMLGEFS = /usr/bin/perl $(PERLXML) $(GEFSCTRLFILENAME) $(GFSAVAILXMLFILENAME) $(GEFSFLATFILENAME) PERLXMLGEFSANL = /usr/bin/perl $(PERLXML) $(GEFSANLCTRLFILENAME) $(GFSAVAILXMLFILENAME) $(GEFSANLFLATFILENAME) PERLXMLGEFSF00 = /usr/bin/perl $(PERLXML) $(GEFSCTRLF00FILENAME) $(GFSAVAILXMLFILENAME) $(GEFSF00FLATFILENAME) PERLXMLFV3SAR = /usr/bin/perl $(PERLXML) $(FV3SARCTRLFILENAME) $(NMMAVAILXMLFILENAME) $(FV3SARFLATFILENAME) # File to look for change GFSXMLS = $(GFSAVAILXMLFILENAME) $(GFSCTRLFILENAME) GFSGOESXMLS = $(GFSAVAILXMLFILENAME) $(GFSGOESCTRLFILENAME) GFSANLXMLS = $(GFSAVAILXMLFILENAME) $(GFSANLCTRLFILENAME) GFSF00XMLS = $(GFSAVAILXMLFILENAME) $(GFSCTRLF00FILENAME) GFSFLUXXMLS = $(GFSAVAILXMLFILENAME) $(GFSCTRLFLUXFILENAME) GFSFLUXF00XMLS = $(GFSAVAILXMLFILENAME) $(GFSCTRLFLUXF00FILENAME) NMMXMLS = $(NMMAVAILXMLFILENAME) $(NMMCTRLFILENAME) NGACXMLS = $(NGACAVAILXMLFILENAME) $(NGACCTRLFILENAME) #HRRRXMLS = $(HRRRAVAILXMLFILENAME) $(HRRRCTRLFILENAME) GEFSXMLS = $(GFSAVAILXMLFILENAME) $(GEFSCTRLFILENAME) GEFSANLXMLS = $(GFSAVAILXMLFILENAME) $(GEFSANLCTRLFILENAME) GEFSF00XMLS = $(GFSAVAILXMLFILENAME) $(GEFSCTRLF00FILENAME) FV3SARXMLS = $(NMMAVAILXMLFILENAME) $(FV3SARCTRLFILENAME) # If action is triggered; run the following all: $(GFSFLATFILENAME) $(GFSGOESFLATFILENAME) $(GFSANLFLATFILENAME) $(GFSF00FLATFILENAME) $(GFSFLUXFLATFILENAME) $(GFSFLUXF00FLATFILENAME) $(NMMFLATFILENAME) $(NGACFLATFILENAME) $(GEFSFLATFILENAME) $(GEFSANLFLATFILENAME) $(GEFSF00FLATFILENAME) $(FV3SARFLATFILENAME) $(GFSFLATFILENAME): $(GFSXMLS) $(PERLXMLGFS) $(GFSGOESFLATFILENAME): $(GFSGOESXMLS) $(PERLXMLGFSGOES) $(GFSANLFLATFILENAME): $(GFSANLXMLS) $(PERLXMLGFSANL) $(GFSF00FLATFILENAME): $(GFSF00XMLS) $(PERLXMLGFSF00) $(GFSFLUXFLATFILENAME): $(GFSFLUXXMLS) $(PERLXMLGFSFLUX) $(GFSFLUXF00FLATFILENAME): $(GFSFLUXF00XMLS) $(PERLXMLGFSFLUXF00) $(NMMFLATFILENAME): $(NMMXMLS) $(PERLXMLNMM) $(NGACFLATFILENAME): $(NGACXMLS) $(PERLXMLNGAC) $(GEFSFLATFILENAME): $(GEFSXMLS) $(PERLXMLGEFS) $(GEFSANLFLATFILENAME): $(GEFSANLXMLS) $(PERLXMLGEFSANL) $(GEFSF00FLATFILENAME): $(GEFSF00XMLS) $(PERLXMLGEFSF00) $(FV3SARFLATFILENAME): $(FV3SARXMLS) $(PERLXMLFV3SAR) # Make clean clean: @echo @echo '==== CLEAN ===================================================' /bin/rm -f $(GFSFLATFILENAME) $(GFSGOESFLATFILENAME) $(GFSANLFLATFILENAME) $(GFSF00FLATFILENAME) $(NMMFLATFILENAME) $(NGACFLATFILENAME) $(GEFSFLATFILENAME) $(GEFSANLFLATFILENAME) $(GEFSF00FLATFILENAME) $(FV3SARFLATFILENAME)