[ncl-talk] regCoef_n without y-axis intercept

Dave Allured - NOAA Affiliate dave.allured at noaa.gov
Wed Oct 26 09:10:40 MDT 2022


Giorgio, WRAPIT is capable of handling arrays correctly.  I suggest you try
some of the working fortran examples in the WRAPIT documentation, so that
you can get familiar with WRAPIT and array arguments.  Then, get the
*original* regcoef_dp.f working with WRAPIT and arrays, but change the
function name to prevent conflict.  It might be helpful to write external
standalone fortran main programs that call the fortran routines you are
testing, to ensure those routines are working independently from NCL.

Only after that, try interfacing your modified routine with WRAPIT.  Please
completely avoid regcoefW.c.  It is full of internal protocol that is not
related to WRAPIT and will continue to confuse you.

I do not have time to analyze or debug your code and procedures.  If
needed, perhaps someone else is available.


On Wed, Oct 26, 2022 at 3:09 AM Giorgio Graffino <g.graffino at tim.it> wrote:

> Hi Dave,
>
> Thanks for confirming that. I'm changing the fortran subroutine Dennis
> sent last week into a function, but it keeps giving me an error wherever I
> try to use arrays as arguments. It only works when X and Y are scalar
> numbers. I really don't understand how a linear regression fit can be found
> with scalar numbers as arguments. I'm looking at the C interface to see how
> to subroutine is called, but there are too many things happening in
> regcoefW.c and it's difficult to understand the workflow. Can anyone please
> help me understand how to make the fortran subroutine work for 1d and 2d
> arrays?
>
> Cheers,
>
> Giorgio
>
>
> ------ Messaggio Originale ------
> Da: dave.allured at noaa.gov
> A: g.graffino at tim.it
> Cc: ncl-talk at ucar.edu
> Inviato: lunedì 24 ottobre 2022 22:10
> Oggetto: Re: [ncl-talk] regCoef_n without y-axis intercept
>
> Giorgio, you are right, regcoefW.c is an NCL internal interface routine
> for regCoef_n. But it uses a different protocol than a WRAPIT interfaced
> function. Just ignore regcoefW.c, and follow the WRAPIT fortran
> instructions carefully, for your new function. Change the function name,
> and do not attempt to replace the built-in regCoef_n function. You can
> change the arguments as you like, but follow the documented WRAPIT rules.
>
> There are two different methods for calling external C functions: fortran
> wrapper, and shared object. Please study the WRAPIT documentation carefully.
>
>
> On Mon, Oct 24, 2022 at 1:35 PM Giorgio Graffino via ncl-talk <
> ncl-talk at mailman.ucar.edu> wrote:
>
>> Hello,
>>
>> I'm doing some modifications to the regcoef_dp.f file to consider a zero
>> y-intercept, but now I don't know how to try it in a script. The number of
>> arguments in the fortran subroutine is different than in regCoef_n, so
>> the subroutine is probably going through some more steps, possibly
>> involving this script (
>> https://github.com/NCAR/ncl/blob/develop/ni/src/lib/nfp/regcoefW.c). Am
>> I right?
>>
>> How can I incorporate both fortran and C scripts in my NCL script? I know
>> I can use WRAPIT to read external fortran code, but what about C code?
>>
>> I need help please.
>>
>> Giorgio
>>
>>
>> ------ Messaggio Originale ------
>> Da: ncl-talk at mailman.ucar.edu
>> A: shea at ucar.edu
>> Cc: ncl-talk at ucar.edu
>> Inviato: venerdì 21 ottobre 2022 13:14
>> Oggetto: Re: [ncl-talk] regCoef_n without y-axis intercept
>>
>> Hi Dennis, Dave
>>
>> Thanks for sending the relevant function and for explaining how to access
>> the source code. Now I'm thinking how to make the function to force the
>> regression to pass from origin. Any idea on how to do that?
>>
>> Cheers,
>>
>> Giorgio
>>
>>
>> ------ Messaggio Originale ------
>> Da: shea at ucar.edu
>> A: g.graffino at tim.it
>> Cc: dave.allured at noaa.gov; ncl-talk at ucar.edu
>> Inviato: giovedì 20 ottobre 2022 19:17
>> Oggetto: Re: [ncl-talk] regCoef_n without y-axis intercept
>>
>> The f77 code is attached.
>>
>>
>> On Thu, Oct 20, 2022 at 9:53 AM Giorgio Graffino via ncl-talk <
>> ncl-talk at mailman.ucar.edu> wrote:
>>
>>> Hi Dave,
>>>
>>> Thanks for the advice. I looked at the examples in
>>> https://www.ncl.ucar.edu/Applications/regress.shtml, especially
>>> examples 2 and 4, but I couldn't find any supplementary information about
>>> regCoef. I also can't find anything under
>>> $NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl and
>>> $NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl.
>>>
>>> Is NCL source code located anywhere in $NCARG_ROOT? Can anyone please
>>> point me where it is?
>>>
>>> Cheers,
>>>
>>> Giorgio
>>>
>>>
>>> ------ Messaggio Originale ------
>>> Da: dave.allured at noaa.gov
>>> A: g.graffino at tim.it
>>> Cc: ncl-talk at ucar.edu
>>> Inviato: giovedì 13 ottobre 2022 18:47
>>> Oggetto: Re: [ncl-talk] regCoef_n without y-axis intercept
>>>
>>> Giorgio, for your second question, please see this very brief
>>> description that I recently wrote, for how to search for functions in the
>>> NCL source code.
>>> https://mailman.ucar.edu/pipermail/ncl-talk/2022-August/018954.html
>>>
>>>
>>> On Thu, Oct 13, 2022 at 10:38 AM Giorgio Graffino via ncl-talk <
>>> ncl-talk at mailman.ucar.edu> wrote:
>>>
>>>> Hi NCL community,
>>>>
>>>> I want regCoef_n to find the regression coefficient between two arrays
>>>> without y-axis intercept. Do you know how I can change the function to do
>>>> that?
>>>>
>>>> Can you also please tell me where I can find the function? I did a grep
>>>> recursive search in my $NCARG_ROOT directory but I couldn't find it.
>>>>
>>>> Cheers,
>>>>
>>>> Giorgio
>>>>
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.ucar.edu/pipermail/ncl-talk/attachments/20221026/5be0f286/attachment.htm>


More information about the ncl-talk mailing list