<div dir="ltr"><div><div>They &#39;prntq_l.f90&#39; etc are just provided for illustration. Actually, they are rather &#39;silly.&#39; However, I needed something to illustrate how modules should be loaded on the WRAPIT line.<br><br></div>They are &#39;dummy&#39; modules for the example. I needed something that fit on one slide. <br><br></div>D<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 21, 2016 at 1:15 PM, zhuxiao li <span dir="ltr">&lt;<a href="mailto:lizhuxiao70@gmail.com" target="_blank">lizhuxiao70@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Dennis,<div><br></div><div>Thanks for the slide. I just test it and the codes worked in this way, I wish I could get it earlier.😃 the NCL documents does need to be updated. </div><div><br></div><div>While I still don&#39;t quite understand why the prntq_l.f90 and cquad_l.f90 are needed by WRAPIT to produce the right object quad90.so?</div><div>What if I had &#39;real&#39; module includes the many subroutine? I can use that module directly or I need to make an interface instead of the original module, or I need to take the third option which is that I need to make an extra interface inside the original module?</div><div><br></div><div>I will give you an example later.</div><div><br></div><div>last, I would like to get the link for the whole PPT of this slide and thanks for your great help again!</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>Zhuxiao</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div> </div><div><br></div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 21, 2016 at 11:30 AM, Dennis Shea <span dir="ltr">&lt;<a href="mailto:shea@ucar.edu" target="_blank">shea@ucar.edu</a>&gt;</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>Attached is a PPT slide from the NCL Workshops that illustrate calling f90 via WRAPIT.  It is a bit over-the-top with module usage but it gives an idea of how to proceed.  To my knowledge, modules *must* be compiled before they are used. Hence, the ordering on the WRAIT example.<br><br></div>Since NCL&#39;s WRAPIT is f77 aware (*not* f90 aware), any f90 subroutine invoked from an NCL script must have an associated &#39;stub&#39; file which uses f77 syntax. It uses this to create the interface between NCL (written in C) and the user fortran subroutines.<br><br></div>HTH<br><div><br><br></div></div><div class="gmail_extra"><br><div class="gmail_quote"><span>On Tue, Jun 21, 2016 at 9:41 AM, Bill Ladwig <span dir="ltr">&lt;<a href="mailto:ladwig@ucar.edu" target="_blank">ladwig@ucar.edu</a>&gt;</span> wrote:<br></span><div><div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Zhuxiao,<div><br></div><div>Can you also provide us with how you called WRAPIT?  It doesn&#39;t look like your mquad routine ever got linked in when you built your .so module.</div><div><br></div><div>Regards,</div><div><br></div><div>Bill </div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div>On Mon, Jun 20, 2016 at 3:02 PM, zhuxiao li <span dir="ltr">&lt;<a href="mailto:lizhuxiao70@gmail.com" target="_blank">lizhuxiao70@gmail.com</a>&gt;</span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr"><div class="gmail_quote"><div dir="ltr">Hi There,<div><br></div><div>I have got a problem to use Â  external F90 code in NCL. </div><div>Actually, I just using the simple templet in <a href="http://www.ncl.ucar.edu/Document/Manuals/language_man.pdf" target="_blank">http://www.ncl.ucar.edu/Document/Manuals/language_man.pdf</a></div><div>page 36 of Section 7.3 f90 subroutines. </div><div><br></div><div>The problem is that when I use only the subroutine CQUAD to produce the object file (.so) and then execute the ncl code, it works. Please see the following attachment:</div><div> </div><div>quad.f90, </div><div>quad90.stub, </div><div>ncl_F90_test_temple.ncl. </div><div><br></div><div>While when I include the subroutine in a module structure exactly like the templet on P36 of the manual, it gave me some very tough error message, please check the following attachments:</div><div>  </div>















<div><div>quad_module.f90, </div><div>mquad90.stub, </div><div>ncl_F90_test_temple_module.ncl</div><div>







<p><span>error_message_ncl_exe.txt</span></p></div><div>The NCL I am using is ncl-6.3.0, do you have some idea on what is the reason of this problem?</div><div><br></div><div>Thanks very much in advance!</div><span><font color="#888888"><span><font color="#888888"><div><br></div><div>Zhuxiao</div><div><br></div>







<div> </div></font></span></font></span></div><div><br></div></div>
</div><br></div>
<br></div></div>_______________________________________________<br>
ncl-talk mailing list<br>
<a href="mailto:ncl-talk@ucar.edu" target="_blank">ncl-talk@ucar.edu</a><br>
List instructions, subscriber options, unsubscribe:<br>
<a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" rel="noreferrer" target="_blank">http://mailman.ucar.edu/mailman/listinfo/ncl-talk</a><br>
<br></blockquote></div><br></div>
<br>_______________________________________________<br>
ncl-talk mailing list<br>
<a href="mailto:ncl-talk@ucar.edu" target="_blank">ncl-talk@ucar.edu</a><br>
List instructions, subscriber options, unsubscribe:<br>
<a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" rel="noreferrer" target="_blank">http://mailman.ucar.edu/mailman/listinfo/ncl-talk</a><br>
<br></blockquote></div></div></div><br></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>