This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
>From: Anthony James Wimmers <address@hidden> >Organization: UVa >Keywords: 199901271455.HAA12002 McIDAS user code Tony, >Hi. Thanks for the help so far on remapping. Now that I have that behind >me, I can start on some bigger challenges. Good. Bigger challanges usually make for more interesting questions! >Case in point: > >We just received from Tim Schmidt a radiative transfer model that runs on >McIDAS. There are two ".pgm" files and a number of others. This is the >full listing: > >adday.for extemp.for levsfc.for raobsc.for trangx.for >britgo.for filmix.for lisgix.pgm rfraox.for tvpice.for >calpir.for getraox.for lwcls.for satmix.for upraox.for >chop.for gimrad.for lwopn.for satvap.for vatopo.for >clmozo.for goesxbnd.hex lwread.for sigtrp.for vpice.for >clmtem.for gphite.for lwrite.for stdatm.for wfgimnt.pgm >cofitn.for intptw.for outint.for svpice.for wsat.for >conpir.for intupt.for pfcgim.for svpwat.for wvmixr.for >dewpt.for iokrao.for plango.for taugen.for wvsig.for >exmixr.for isatnv.for precw.for tauwet.for > >All we need to do is compile them. Could you give us some instructions >for compiling this, or maybe a generic makefile? I would suggest doing the following since it is the easiest path. o cd to the McIDAS src directory o make a backup copy of 'makefile' as, say, makefile.bak o modify 'makefile' adding your code into a separate section o copy all of the code you want to add to the McIDAS src directory o build the program executables o install the executable(s) and help file(s) o if desired, add the one line help from the programs to the data/PROGRAMS.DAT file; this is used in the help section of MCGUI. A quick look at the form of PROGRAMS.DAT will show you what to do. From your list, I think I see: o fortran sources that should be included in the McIDAS library o an include file (goesxbnd.hex)? o two programs (lisgix.pgm wfgimnt.pgm) If this is the case, I would add the following to 'makefile'. Where you add it is not crutial, but I suggest putting it just before the 'miscellaneous dependencies' section located at the very end. Here is a segment that you should be able to clip out and add to the makefile (the code contains tabs; normal X window cutting and pasting will lose these): #------------------------- begin UVa makefile additions -------------------- ###################################################################### #------- # UVa header files #------- Incs = \ $(Cincs) \ $(Fincs) Cincs = Fincs = \ goesxbnd.hex known :: @echo $(Incs) >> $(KNOWN) chksrc :: @set X $(Incs); shift; $(CHKSRC) uninstall.inc :: cd $(INCDIR) && rm -f $(Incs) install.inc :: chkgen uninstall.inc $(LN) $(Incs) $(INCDIR) ###################################################################### #------- # UVa Fortran sources for libmcidas. #------- UVALIBMcIDAS_FSRCS = \ adday.for \ britgo.for \ calpir.for \ chop.for \ clmozo.for \ clmtem.for \ cofitn.for \ conpir.for \ dewpt.for \ exmixr.for \ extemp.for \ filmix.for \ getraox.for \ gimrad.for \ gphite.for \ intptw.for \ intupt.for \ iokrao.for \ isatnv.for \ levsfc.for \ lwcls.for \ lwopn.for \ lwread.for \ lwrite.for \ outint.for \ pfcgim.for \ plango.for \ precw.for \ raobsc.for \ rfraox.for \ satmix.for \ satvap.for \ sigtrp.for \ stdatm.for \ svpice.for \ svpwat.for \ taugen.for \ tauwet.for \ trangx.for \ tvpice.for \ upraox.for \ vatopo.for \ vpice.for \ wsat.for \ wvmixr.for \ wvsig.for UVALIBMcIDAS_FOBJS = $(UVALIBMcIDAS_FSRCS:.for=.o) $(LIBMcIDAS) :: $(UVALIBMcIDAS_FOBJS) @$(MCLOG) $(MCAR) $(LIBMcIDAS) $? chksrc :: @set X $(UVALIBMcIDAS_FSRCS); shift; $(CHKSRC) known :: @echo $(UVALIBMcIDAS_FSRCS) >> $(KNOWN) @echo $(UVALIBMcIDAS_FOBJS) >> $(KNOWN) clean :: $(RM) $(UVALIBMcIDAS_FOBJS) ###################################################################### #------- # UVa McIDAS apps #------- UVAPgm_Srcs = \ lisgix.pgm \ wfgimnt.pgm UVAPgm_Objs = $(UVAPgm_Srcs:.pgm=.o) UVAPgm_Prog = $(UVAPgm_Srcs:.pgm=.k) UVAPgm_Help = $(UVAPgm_Srcs:.pgm=.hlp) lisgix.k : lisgix.o $(LIBDEPS) @$(L) -o $@ $(main_o) lisgix.o $(LIBARGS) wfgimnt.k : wfgimnt.o $(LIBDEPS) @$(L) -o $@ $(main_o) wfgimnt.o $(LIBARGS) _all :: $(UVAPgm_Prog) $(UVAPgm_Help) chksrc :: @set X $(UVAPgm_Srcs); shift; $(CHKSRC) chkgen :: @set X $(UVAPgm_Prog); shift; $(CHKGEN) @set X $(UVAPgm_Help); shift; $(CHKGEN) known :: @echo $(UVAPgm_Srcs) >> $(KNOWN) @echo $(UVAPgm_Objs) >> $(KNOWN) @echo $(UVAPgm_Prog) >> $(KNOWN) @echo $(UVAPgm_Help) >> $(KNOWN) clean :: $(RM) $(UVAPgm_Objs) clobber :: clean $(RM) $(UVAPgm_Prog) $(RM) $(UVAPgm_Help) uninstall.bin :: cd $(BINDIR) && $(RM) $(UVAPgm_Prog) install.bin :: chkgen uninstall.bin $(LN) $(UVAPgm_Prog) $(BINDIR) cd $(BINDIR) && chmod $(PROGPERM) $(UVAPgm_Prog) uninstall.help :: cd $(HELPDIR) && $(RM) $(UVAPgm_Help) install.help :: chkgen uninstall.help $(LN) $(UVAPgm_Help) $(HELPDIR) cd $(HELPDIR) && chmod $(RWDATAPERM) $(UVAPgm_Help) #------------------------- end UVa makefile additions ---------------------- >Thanks, as always, Hint: keep the additions above in a separate file outside of the McIDAS src directory so that you can add them to new McIDAS distributions in the future. Also, use the "template" above when you add new code to the distribution. The only thing that you have to be watchful for is a duplication of entry already in the McIDAS library. >Tony Wimmers >University of Virginia Tom