<div dir="ltr"><div><div>If you are learning NCL, Please see some documentation and tutorials at<br><br><a href="http://www.ncl.ucar.edu">http://www.ncl.ucar.edu</a><br><br></div>CLick &#39;Suoort&#39;,  then click &#39;Manuals&#39;<br><br></div>See the two tutorials created by DKRZ<br><br><br><div><br><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 9, 2014 at 3:40 AM, 易路 <span dir="ltr">&lt;<a href="mailto:dg1225033@smail.nju.edu.cn" target="_blank">dg1225033@smail.nju.edu.cn</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
Thank you very much the Fortran code can be called , after eliminating the possible &quot;dos&quot; characters using “dos2unix”!<br>
<br>
And it is very right and simple to replace the frotran calling by using asciiread, I did not know that method before.<br>
<br>
Thanks very much for reminding of the application of &quot;asciiread&quot;, and I also learned the use of &quot;asciiwrite&quot;,&quot;numAsciiCol&quot;,&quot;numAsciiRow&quot;. Thank you very much!!<br>
<span class=""><br>
----- 原始邮件 -----<br>
发件人: Dennis Shea &lt;<a href="mailto:shea@ucar.edu">shea@ucar.edu</a>&gt;<br>
收件人: 易路 &lt;<a href="mailto:dg1225033@smail.nju.edu.cn">dg1225033@smail.nju.edu.cn</a>&gt;<br>
抄送: <a href="mailto:ncl-talk@ucar.edu">ncl-talk@ucar.edu</a><br>
</span>已发送邮件: Tue, 09 Dec 2014 13:16:20 +0800 (CST)<br>
主题: Re: 回复: Re: [ncl-talk] call Fortran in NCL<br>
<div class="HOEnZb"><div class="h5"><br>
I think you have a hidden  illegal character.<br>
There is a &#39;dos&#39; character. Use dos2unix to eliminate the character.<br>
<br>
ot there<br>
<br>
%&gt; WRAPIT getlatlon.stub<br>
<br>
WRAPIT Version: 120209<br>
A syntax error occurred while parsing:<br>
LINKING<br>
END WRAPIT<br>
<br>
 %&gt; dos2unix getlatlon.stub<br>
<br>
dos2unix: converting file getlatlon.stub to Unix format ...<br>
<br>
%&gt; WRAPIT getlatlon.stub<br>
<br>
WRAPIT Version: 120209<br>
LINKING<br>
END WRAPIT<br>
<br>
+++++++++++++++<br>
I do not know why you are reading in fortran.<br>
It is easy in NCL<br>
++++++++++++++++<br>
<br>
  diri = &quot;./&quot;<br>
  fili = &quot;station.txt&quot;<br>
<br>
  ncol = 2<br>
  nrow = numAsciiRow(diri+fili)  ; determine # or rows<br>
<br>
  latlon = asciiread(diri+fili, (/nrow,ncol/), &quot;float&quot;)<br>
  lat    = latlon(:,0)<br>
  lon    = latlon(:,1)<br>
<br>
  print(lat+&quot;  &quot;+lon)<br>
<br>
<br>
<br>
On Mon, Dec 8, 2014 at 8:22 PM, 易路 &lt;<a href="mailto:dg1225033@smail.nju.edu.cn">dg1225033@smail.nju.edu.cn</a>&gt; wrote:<br>
<br>
&gt;<br>
&gt; ----- 转发邮件 -----<br>
&gt; 发件人: 易路 &lt;<a href="mailto:dg1225033@smail.nju.edu.cn">dg1225033@smail.nju.edu.cn</a>&gt;<br>
&gt; 收件人: Dennis Shea &lt;<a href="mailto:shea@ucar.edu">shea@ucar.edu</a>&gt;<br>
&gt; 已发送邮件: Tue, 09 Dec 2014 11:21:15 +0800 (CST)<br>
&gt; 主题: 回复: Re: [ncl-talk] call Fortran in NCL<br>
&gt;<br>
&gt; Thanks very much for your remind of statements must starting in column 7,<br>
&gt; but it still show error:<br>
&gt;<br>
&gt; A syntax error occurred while parsing:<br>
&gt; COMPILING getlatlon.f90<br>
&gt; END WRAPIT<br>
&gt;<br>
&gt; would you please help me check it again? Thanks a lot!<br>
&gt;<br>
&gt; ----- 原始邮件 -----<br>
&gt; 发件人: Dennis Shea &lt;<a href="mailto:shea@ucar.edu">shea@ucar.edu</a>&gt;<br>
&gt; 收件人: 易路 &lt;<a href="mailto:dg1225033@smail.nju.edu.cn">dg1225033@smail.nju.edu.cn</a>&gt;<br>
&gt; 抄送: <a href="mailto:ncl-talk@ucar.edu">ncl-talk@ucar.edu</a><br>
&gt; 已发送邮件: Tue, 09 Dec 2014 01:25:12 +0800 (CST)<br>
&gt; 主题: Re: [ncl-talk] call Fortran in NCL<br>
&gt;<br>
&gt; Remember f77 requires that statements must start in column 7.<br>
&gt;<br>
&gt; Your SUBROUTINE statement started befor column 7.<br>
&gt; I&#39;ve made a 2nd stub file to illustrate how to include<br>
&gt; a more general CHARACTER declaration.<br>
&gt;<br>
&gt; ===&gt; foo.stub<br>
&gt;<br>
&gt; C NCLFORTSTART<br>
&gt;       SUBROUTINE getlatlon (infile,nx,ny,ii,iilat,iilon)<br>
&gt;        CHARACTER*80 infile<br>
&gt;         INTEGER  nx,ny,ii<br>
&gt;         REAL iilat,iilon<br>
&gt; C NCLEND<br>
&gt; C NCLFORTSTART<br>
&gt;       SUBROUTINE getlatlon1(infile,nx,ny,ii,iilat,iilon)<br>
&gt;        CHARACTER*(*) infile<br>
&gt;         INTEGER  nx,ny,ii<br>
&gt;         REAL iilat,iilon<br>
&gt; C NCLEND<br>
&gt;<br>
&gt; =====<br>
&gt;<br>
&gt; WRAPIT foo.stub<br>
&gt;<br>
&gt; WRAPIT Version: 120209<br>
&gt; LINKING<br>
&gt; END WRAPIT<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; On Mon, Dec 8, 2014 at 9:06 AM, 易路 &lt;<a href="mailto:dg1225033@smail.nju.edu.cn">dg1225033@smail.nju.edu.cn</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; Hi all,<br>
&gt; &gt; I want to call Fortran in NCL to read in data, but it shows errors while<br>
&gt; &gt; run WRAPIT, would you please help me find out the resons?<br>
&gt; &gt;<br>
&gt; &gt; error1 ,while WRAPTI getlatlon.stub getlatlon.f90,shows:<br>
&gt; &gt;         A syntax error occurred while parsing:<br>
&gt; &gt;         LINKING<br>
&gt; &gt;         END WRAPIT<br>
&gt; &gt;<br>
&gt; &gt; erro2, while run ncl getlatlon.ncl<br>
&gt; &gt;<br>
&gt; &gt;       warning:Could not find Init() in external file ./getlatlon.so, file<br>
&gt; &gt; not loaded<br>
&gt; &gt;       warning:error at line 2 in file getlatlon.ncl<br>
&gt; &gt;<br>
&gt; &gt;       fatal:syntax error: line 10 in file getlatlon.ncl before or near :<br>
&gt; &gt;        GETLATLON_SO:<br>
&gt; &gt;    ----------------^<br>
&gt; &gt;<br>
&gt; &gt; fatal:error in statement<br>
&gt; &gt; fatal:Syntax Error in block, block not executed<br>
&gt; &gt; fatal:error at line 16 in file getlatlon.ncl<br>
&gt; &gt; ***********fortran program**************<br>
&gt; &gt; subroutine getlatlon (infile,nx,ny,ii,iilat,iilon)<br>
&gt; &gt; implicit none<br>
&gt; &gt; character*80 infile<br>
&gt; &gt; integer:: nx,ny,ii,i,j<br>
&gt; &gt; real:: iilat, iilon<br>
&gt; &gt; real,allocatable::latlon(:,:)<br>
&gt; &gt;<br>
&gt; &gt; open(10,file=infile,status=&#39;old&#39;)<br>
&gt; &gt;<br>
&gt; &gt; allocate(latlon(nx,ny))<br>
&gt; &gt; do j=1,ny<br>
&gt; &gt;    read(10,*)(latlon(i,j),i=1,nx)<br>
&gt; &gt; end do<br>
&gt; &gt;<br>
&gt; &gt; iilat=latlon(1,ii)<br>
&gt; &gt; iilon=latlon(2,ii)<br>
&gt; &gt;<br>
&gt; &gt; close(10)<br>
&gt; &gt; return<br>
&gt; &gt; end subroutine<br>
&gt; &gt; *************************stub file************************<br>
&gt; &gt; C NCLFORTSTART<br>
&gt; &gt;     SUBROUTINE getlatlon (infile,nx,ny,ii,iilat,iilon)<br>
&gt; &gt;        CHARACTER*80 infile<br>
&gt; &gt;         INTEGER  nx,ny,ii<br>
&gt; &gt;         REAL iilat,iilon<br>
&gt; &gt; C NCLEND<br>
&gt; &gt;<br>
&gt; &gt; ********************NCL file********************************<br>
&gt; &gt;<br>
&gt; &gt; load &quot;$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl&quot;<br>
&gt; &gt; external GETLATLON_SO &quot;./getlatlon.so&quot;<br>
&gt; &gt;<br>
&gt; &gt; begin<br>
&gt; &gt; infile =&quot;./station.txt&quot;<br>
&gt; &gt; nx=2<br>
&gt; &gt; ny=60<br>
&gt; &gt; do ii=1,ny<br>
&gt; &gt;<br>
&gt; &gt;     GETLATLON_SO::getlatlon(infile,nx,ny,ii,iilat,iilon)<br>
&gt; &gt;     print(iilat)<br>
&gt; &gt;     print(iilon)<br>
&gt; &gt;<br>
&gt; &gt; end do<br>
&gt; &gt;<br>
&gt; &gt; end<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; ncl-talk mailing list<br>
&gt; &gt; List instructions, subscriber options, unsubscribe:<br>
&gt; &gt; <a href="http://mailman.ucar.edu/mailman/listinfo/ncl-talk" target="_blank">http://mailman.ucar.edu/mailman/listinfo/ncl-talk</a><br>
&gt; &gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
<br>
</div></div></blockquote></div><br></div>