NSF Unidata

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

20011226: GD programs and '//'

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.



Steve,

Following our phone conversation where you mentioned that the
naming of grid functions within the GD programs using the '//'
syntax for further use within the program was known to be broken
after the programs were rewritten in 5.6.E to use the file template
sequences, I have made the following changes in my 5.6.F release:

1) dgmfil.f (and new file dgctmp.f)

   I have added a check to determine if an open file matches the template
   file|dattim in the list of input files. This allows current open
   files to remain open when the user is using a template rather than a
   specific file name. Without this check, the old file is always closed
   and then reopened later which loses the savflg information for
   functions that the user has named with the '//' attribute. The dg_ctmp
   code could be included within the dgmfil.f code, but I pulled it out
   to make things easier to see.

2) Most of the GD programs use the DG_CLAL() routine to close all
   open grid files at the end of every plot (eg within the dynamic
   tutor do loop). The DG_CLAL routine calls DG_CLOS for each open file
   which resets all the savflg array values to .false. which prevents
   the user named '//' gfunc values from being found later. This
   also defeats the purpose of DG_MFIL looking for existing open files
   in the user input list.

   I moved the DG_CLAL call outside the main "DO" loop of the programs
   since the template call to DG_MFIL will first check the user input files
   against the open file list and close those files which are not needed.
   DG_CLAL is only called as the program is exiting. (If I'm missing something
   here please let me know).

I created a directory in the upc account on hp1 called patch5.6.f_changes
which has the dg_ library routines. I also placed the GD program routines
with the DG_CLAL call relocated in the directory. I left gdstat.f and gdtser.f
unchanged.

Let me know if you have any questions/comments
Thanks,
Steve