<div dir="ltr">THX!   I did not know this factoid!   Sigh!   D <br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, May 24, 2018 at 10:48 AM, Michael Toy <span dir="ltr"><<a href="mailto:toy@ucar.edu" target="_blank">toy@ucar.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>Hi Dennis,</div><div><br></div><div>Sorry to be cluttering the ncl-talk conversation, but I was able to find out the issue to my problem.  It turns out that I had to call the "gwdo_gsd_F77” subroutine with all LOWERCASE (or lowercase) letters, i.e., “gwdo_gsd_f77”.  I learned from a colleague down the hall, Jim Rosinski, that somewhere in the process of creating the *.so file, the names of subroutines get converted to all lowercase.  This was evident from doing a UNIX “nm” on the *.so file.  I guess the moral of the story is to use lowercase letters when naming subroutines in the F77 stub file to help avoid the problem I was having.</div><div><br></div><div>Thanks.</div><div><br></div><div>— Mike</div><div><br></div><div><br></div><div><br></div><br><div><blockquote type="cite"><div>On May 24, 2018, at 8:42 AM, Michael Toy <<a href="mailto:toy@ucar.edu" target="_blank">toy@ucar.edu</a>> wrote:</div><br class="m_-5120460587379665104Apple-interchange-newline"><div><div style="word-wrap:break-word"><div>Hi Dennis,</div><div><br></div><div>After successfully creating the *.so file with WRAPIT and having it load properly in NCL with the command ‘ external GWDO “./module_bl_gwdo_gsd.so” ‘, when I try to call the subroutine “gwdo_gsd_F77” from NCL using the command ‘ GWDO::gwdo_gsd_F77(76 arguments) ‘, I get the following error message:</div><div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Monaco;background-color:rgb(255,255,255)"><span style="font-variant-ligatures:no-common-ligatures">fatal:syntax error: procedure gwdo_gsd_F77 is not defined in package GWDO</span></div></div><div><br></div><div>Is there a way to query “GWDO” to see what subroutines it supposedly contains?</div><div><br></div><div>Thanks.</div><div><br></div><div>— Mike</div><div><br></div><div><br></div><br><div><blockquote type="cite"><div>On May 17, 2018, at 5:04 PM, Dennis Shea <<a href="mailto:shea@ucar.edu" target="_blank">shea@ucar.edu</a>> wrote:</div><br class="m_-5120460587379665104Apple-interchange-newline"><div><div dir="ltr"><div><div><div><div>Hi Mike/Barry,<br><br></div>I asked one of the core NCL developers [Rick Brownrigg; cc'd] to help with what I could not see [literally]. He responded with two messages:<br>---<br>[1]<br>All I know at this point is that it occurs with this line:<br><br>$NCARG_ROOT/bin/wrapit77 < WRAPIT.stub >! WRAPIT.c<br><br>wrapit77
 is a C program with a full lex/yacc grammar, and the error message 
originates out of the grammar parsing code. Beyond that, I haven't been 
able to determine why, just yet.  Looking at the contents of WRAPIT.stuib, there's nothing that stands out.<br><br>[2] <br>OK, it appears the issue is that the original fortran code contains 
carriage-return/newline delimiters, and wrapit77's grammar does not 
expect that. Things appear to work if I strip those out:<br><br>cat test.NCL.f | sed 's/\r$//' | cat >testNCL_noCR.f<br>---<br></div><div>NOTE: the above does not seem to work with the MacOS.<br><br></div><div>It had to rune on a 'real linux box'<br></div><div><br></div>So .... NCL itself handles carriage returns and new line characters **BUT** the "full lex/yacc grammar ..." WRAPIT does not. <br><br>%> WRAPIT module_bl_gwdo_gsd.f90 testNCL_noCR.f<br> <br>WRAPIT Version: 120209<br>COMPILING module_bl_gwdo_gsd.f90<br>COMPILING testNCL_noCR.f<br>LINKING<br>END WRAPIT<br><br>===<br></div>I am the messenger. Rick did the real work.<br><br></div>D<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 16, 2018 at 10:28 PM, Dennis Shea <span dir="ltr"><<a href="mailto:shea@ucar.edu" target="_blank">shea@ucar.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div><div><div>[A]<br><br></div><div>(0:1,0:1,0:1) is legal f77 & f90<br><br></div>WRAPIT is not a full fortran language parser. It is not very sophisticated. It does not understand this syntax.<br><br></div>[B]<br><br></div>Again, we must do the "end-around". <br><br></div>I added 'imsime', 'jmsjme', 'kmskme'<br><br></div><div>to the argument list and the declarations.<br></div><div><br></div>Where the quantities are:<br><br></div>   imsime   =  ime-ims+1<br></div>   jmsjme   =  jme-jms+1<br></div>   kmskme =  kme-kms+1<br><div><div><br>--------<br><br></div><div>%> gfortran -c module_bl_gwdo_gsd.f90 test.NCL.f<br><br></div><div>works fine.<br><br></div><div>Unfortunately, <br></div><div><br>%> WRAPIT module_bl_gwdo_gsd.f90 test.NCL.f<br><br>WRAPIT Version: 120209<span><br>A syntax error occurred while parsing: <br></span>COMPILING module_bl_gwdo_gsd.f90<br>COMPILING test.NCL.f<br>LINKING<br>END WRAPIT<br><br></div><div>I'll look again tomorrow but it is late!<span class="m_-5120460587379665104HOEnZb"><font color="#888888"><br><br></font></span></div><span class="m_-5120460587379665104HOEnZb"><font color="#888888"><div>D<br></div><div><div><div><div><div><br></div></div></div></div></div></font></span></div></div><div class="m_-5120460587379665104HOEnZb"><div class="m_-5120460587379665104h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 16, 2018 at 6:15 AM, Dennis Shea <span dir="ltr"><<a href="mailto:shea@ucar.edu" target="_blank">shea@ucar.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Hi, Michael, Barry, <br><br></div>I hope to look at this later today.<span class="m_-5120460587379665104m_6488725240813113978HOEnZb"><font color="#888888"><br><br></font></span></div><span class="m_-5120460587379665104m_6488725240813113978HOEnZb"><font color="#888888">D<br></font></span></div><div class="m_-5120460587379665104m_6488725240813113978HOEnZb"><div class="m_-5120460587379665104m_6488725240813113978h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, May 15, 2018 at 11:14 AM, Michael Toy <span dir="ltr"><<a href="mailto:toy@ucar.edu" target="_blank">toy@ucar.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Hi Dennis and Barry,<div><br></div><div>I think narrowed my issue with WRAPIT and the "<span style="background-color:rgb(255,255,255)"><font face="Monaco"><span style="font-size:11px">A syntax error occurred while parsing: :” </span></font></span>error message I’m getting to declaring arrays in F77 in which the indices are not the standard 1..N arrangement.  For the simple stub below, I get the error message:</div><div><br></div><div>C NCLFORTSTART</div><div>      subroutine print_array(x)</div><div>      implicit none</div><div>      real x( 0:1, 0:1, 0:1 )</div><div>C NCLEND</div><div><br></div><div>However, if I change the declaration line to:</div><div>      real x ( 2, 2, 2 )</div><div><br></div><div>It compiles fine.</div><div><br></div><div>I’ve looked up some documentation on Fortran77, and it looks the (0:1,0:1,0:1) declaration should work.  Is this not legal F77 syntax?</div><div><br></div><div>Thanks.</div><div><br></div><div>— Mike</div><div><br></div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
<span id="m_-5120460587379665104cid:88E472A9-3873-4AA9-85A7-592A491666D0@fsl.noaa.gov"><testNCL_noCR.f></span><span id="m_-5120460587379665104cid:C7D27686-1E9E-4114-ADF7-2B846593316B@fsl.noaa.gov"><module_bl_<wbr>gwdo_gsd.f90></span></div></blockquote></div><br></div></div></blockquote></div><br></div></blockquote></div><br></div>