[ncl-talk] WRAPIT, error in the fortran code
Dennis Shea
shea at ucar.edu
Fri Dec 30 12:31:34 MST 2016
WRAPIT is not a complete fortran-77 parser. WRAPIT strictly looks at the
arguments being passed between NCL (written in C) and the fortran
subroutine. The types and sizes must match.
WRAPIT does not understand fortran 'dynamic' array sizing. Also, WRAPIT
does not allow things like redefining the array extent such as: foo(-N:N).
A stub file or is one way of addressing these limitations. NOTE: the stub
file could be a valid fortran subroutine containing the NCL delimeters [ C
NCLFORTSTART and C NCLEND ] that handles assorted issues in the fortran
world.
That sadi:
I speculate that the issue is the 'nbin-1' id the array declarations.
Maybe, add and 'nbin1' argument where
nbin1 = nbin-1
and make the stub file be
C NCLFORTSTART
subroutine wacftd(nxx,nyx,nkx,ntx,nbin,nbin1, wa,bfra)
integer nxx,nyx,nkx,ntx,nbin, nbin1
real wa(nxx,nyx,nkx,ntx) ! input variable
c c c real bins(ntx,nbin),bcnt(ntx,nbin-1), bfra(ntx,nbin-1)
real bfra(ntx,nbin1) ! return variable
C NCLEND
C WRAPIT will not look at the following.
integer npts
real bins(ntx,nbin), bcnt(ntx,nbin-1) ! local ... fortran
compiler handles this
npts = nxx*nyx*nkx
This would have to be added to the NCL script calling the subroutine as a
shared object.
Further, variable 'bins' is not being passed to-from the NCL script. I can
an
---
Re: PARAMETER statements
WRAPIT strictly looks at the arguments being passed between NCL (written
in C) and the fortran subroutine. The types and sizes must match.
C NCLFORTSTART
subroutine fooo(nxx,nyx,nkx,ntx,nbin, ........wa,.....)
integer nxx,nyx,nkx,ntx,nbin, nbin1
real wa(nxx,nyx,nkx,ntx) ! input variable
C NCLEND
integer ii, jj ! WRAPIT does not care
about the following
parameter (ii=30, jj=999) ! baecause they are not passed into
or out the subroutine
double precision work(ii,jj)
---
You do not have to have a stub file. A minor rearrangement
C NCLFORTSTART
subroutine wacftd(nxx,nyx,nkx,ntx,nbin,nbin1, wa,bfra)
integer nxx,nyx,nkx,ntx,nbin, nbin1
real wa(nxx,nyx,nkx,ntx) ! input variable
real bfra(ntx,nbin1) ! return variable
C NCLEND
real bins(ntx,nbin),bcnt(ntx,nbin-1)
Good luck
On Fri, Dec 30, 2016 at 11:33 AM, Ying Song <ysong4 at slu.edu> wrote:
> Hello,
>
> I am using WRAPIT in NCL to calculate velocity frequency, following the
> ex01. After running the command:
> WRAPIT cftd.stub cftd.f
> The error shows below:
> ++++++++++++++++++++
> WRAPIT Version: 120209
> A syntax error occurred while parsing: 1
> COMPILING cftd.f
> LINKING
> END WRAPIT
> ++++++++++++++++++++
> I think there are some problems in my cftd.f script but I can not find it.
> So I write this email asking for help!
>
> cftd.f and cftd.stub are attached. Thank you very much!
>
> --
> Ying Song, PhD, Post Doctoral Fellow
> Department of Earth and Atmospheric Sciences
> Saint Louis University
>
> ysong4 at slu.edu
>
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20161230/d78f1337/attachment.html
More information about the ncl-talk
mailing list