All,<br><br>&nbsp;&nbsp;&nbsp;&nbsp; One of the core activities in OpenGrADS Project (<a href="http://opengrads.org">http://opengrads.org</a>) is the development of high
performance user defined commands and functions. The classic user
defined functions (UDFs) in GrADS relies on disk files for the
transmission of data to and from the UDF. While this approach is
somewhat robust and language independent, reading the exchange file is
somewhat tedious and the unnecessary I/O leads to a large performance
penalty.<br>&nbsp;&nbsp; <br clear="all">&nbsp;&nbsp;&nbsp; Starting with GrADS v1.9.0-rc1, you now can write your own UDF in C or Fortran and have it dynamically linked to your grads application during runtime.&nbsp; (This is similar to &quot;mex&quot; files in Matlab(tm), but for GrADS; the extension files name have &quot;.gex&quot; in their names.) You can find more information about these extensions at the OpenGrADS Wiki, including how to write your own extensions and how to use an extension that someone compiled for you:<br>
<br>&nbsp;&nbsp; <a href="http://opengrads.org/wiki/index.php?title=User_Defined_Extensions">http://opengrads.org/wiki/index.php?title=User_Defined_Extensions</a><br><br>&nbsp;&nbsp; As a proof of concept we have uploaded to <a href="http://sf.net">sf.net</a> a small (but handy) collection of UDFs and UDCs:<br>
<br>&nbsp;&nbsp; <a href="http://sourceforge.net/project/showfiles.php?group_id=161773&amp;package_id=256757">http://sourceforge.net/project/showfiles.php?group_id=161773&amp;package_id=256757</a><br><br>Among these extensions is re(), a very fast regrid function contributed by B.-J. Tsuang which is meant as a replacement for the classic UDF regrid2() that Mike Fiorino wrote a few years back.&nbsp; You can find out more about re() here:<br>
<br>&nbsp; <a href="http://opengrads.org/doc/udxt/re/">http://opengrads.org/doc/udxt/re/</a><br><br>&nbsp; As Jennifer mentioned, the just released  GrADS v2.0.a0 no longer supports the classic file-based UDFs. A mechanism similar to the dynamic extensions implemented in v1.9.0-rc1 is being considered for GrADS v2.&nbsp; <br>
<br>&nbsp; Cheers!<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Arlindo<br><br>-- <br>Arlindo da Silva<br><a href="mailto:dasilva@alum.mit.edu">dasilva@alum.mit.edu</a>