[ncl-talk] Dimension Error Issue
Sakib Ahmed
nonicknameforever at gmail.com
Sun Aug 11 08:00:44 MDT 2019
Hi Karin,
Thank you for the suggestion. I tried the reassignment operator but it
didn't work. I'm still getting the error message "fatal:Dimension sizes on
right hand side of assignment do not match dimension sizes of left hand
side"
I also tried to convert p_b1 & p_b2 from 1D to 2D just to be consistent
with the other variables (z0 and ust_array) dimension but that didn't work
either.
-Sakib
On Sun, Aug 11, 2019 at 9:21 AM Karin Meier-Fleischer <
meier-fleischer at dkrz.de> wrote:
> Hi Sakib,
>
> try using the reassignment operator := for the lines defining p.
>
> p := p_b1
> and
> p := p_b2
>
> -Karin
>
> Am 11.08.2019 um 14:00 schrieb Sakib Ahmed via ncl-talk <ncl-talk at ucar.edu
> >:
>
> Dear NCL Community,
>
> I'm stuck with a dimension size error issue. Following is what the code
> looks like:
>
>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>
> begin
>
> ustar=new(1,float)
>
> z0=new((/1,4001/),float)
>
> ust=fspan(0,4,4001)
>
>
> ust_array=((/ust^8, ust^7, ust^6, ust^5, ust^4, ust^3, ust^2, ust^1,
> ust^0/))
>
>
> printVarSummary(ust_array)
>
> ;polynomial
>
> p_b1= (/-0.000098701949811, 0.001486209983407, -0.007584567778927,
> 0.019487056157620, -0.029314498154105, 0.024309735869547,
> -0.006997554677642, 0.001258400989803, -0.000043976208055/)
>
> p_b2=(/-0.002182648458354, 0.046387047659009, -0.428830523588356,
> 2.251251262348664, -7.334368361013868, 15.163848944684784,
> -19.388290305787166,13.970227275905133, -4.319572176336596/)
>
> g=9.806650
>
> do i=0,4000
> ustar=ust(i)
>
> if (ustar.lt.0.3) then
> z0(:,i)=0.0185/g * ustar^2
>
> else if (ustar.lt. 2.35) then ; this is the loop
> where I'm having the issue; not sure how to properly write this in NCL
>
> p=p_b1
> z0(:,i)=p*(ust_array(:,i))
>
> else if (ustar.lt.3) then
>
> p=p_b2
> z0(:,i)=p*ust_array(:,i)
>
>
> else
> z0(:,i)=0.001305
>
> end if
> end if
> end if
> end do
> end
>
> fatal:Dimension sizes on right hand side of assignment do not match
> dimension sizes of left hand side
> fatal:["Execute.c":8635]:Execute: Error occurred at or near line 32
>
>
> printVarSummary(ust_array)
>
> Variable: ust_array
> Type: float
> Total Size: 144036 bytes
> 36009 values
> Number of Dimensions: 2
> Dimensions and sizes: [9] x [4001]
> Coordinates:
>
> printVarSummary(z0)
>
> Variable: z0
> Type: float
> Total Size: 16004 bytes
> 4001 values
> Number of Dimensions: 2
> Dimensions and sizes: [1] x [4001]
> Coordinates:
> Number Of Attributes: 1
> _FillValue : 9.96921e+36
>
>
> I'm still new in NCL but I able to solve this same problem in Matlab and
> putting this below as a reference. But I'm really interested to do this in
> NCL.
>
> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;Matlab
> version;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
>
> z0=[]; ust_array=[];
> ustar=[];
>
> ust=[0:001:4];
>
> ust_array=[ust.^8; ust.^7; ust.^6; ust.^5; ust.^4; ust.^3; ust.^2; ust.^1;
> ust.^0;];
>
> % polynomial:
> p_b1= [-0.000098701949811, 0.001486209983407, ...
> -0.007584567778927, 0.019487056157620, ...
> -0.029314498154105, 0.024309735869547, ...
> -0.006997554677642, 0.001258400989803, ...
> -0.000043976208055];
> p_b2=[-0.002182648458354, 0.046387047659009, ...
> -0.428830523588356, 2.251251262348664, ...
> -7.334368361013868, 15.163848944684784, ...
> -19.388290305787166,13.970227275905133, ...
> -4.319572176336596];
> g=9.806650;
>
>
> for i=1:length(ust)
>
> ustar=ust(i);
> if ustar < 0.3
> z0(i)=0.0185/g * ustar^2;
> elseif ustar < 2.35
> p=p_b1;
> z0(i)=p*ust_array(:,i);
> elseif ustar < 3
> p=p_b2;
> z0(i)=p*ust_array(:,i);
> else
> z0(i)=0.001305;
> end
> end
>
> Thank you in advance for the help.
> Sakib
>
> Sakib Ahmed
> Connecticut College
> Environmental Studies Major,
> New London, CT 06320
>
>
> _______________________________________________
> 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/20190811/41d8a69f/attachment.html>
More information about the ncl-talk
mailing list