View previous topic :: View next topic |
Author |
Message |
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 8214 Location: Salford, UK
|
Posted: Sun Jan 14, 2018 3:27 pm Post subject: |
|
|
John
I don't have a simple answer to your questions. You will appreciate that the personal edition is free and is aimed at students learning Fortran who have no interest in the latest developments. All they need is a stable product. |
|
Back to top |
|
 |
silicondale
Joined: 15 Mar 2007 Posts: 252 Location: Matlock, Derbyshire, UK
|
Posted: Mon Jan 22, 2018 2:08 pm Post subject: |
|
|
I have a task which may or may not be implementable in native %pl. Sonar data consists of a set of N wavy lines which are separate. N is a large number which can vary from one plot to another. Each wavy line contains m points, where m can be different for each line.
This is what they should look like:
but the lines all get linked together in native %pl, like this:
Is there a way of suppressing the unwanted line segments? |
|
Back to top |
|
 |
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 8214 Location: Salford, UK
|
Posted: Mon Jan 22, 2018 5:03 pm Post subject: |
|
|
Does each wavy line have its own y array? |
|
Back to top |
|
 |
silicondale
Joined: 15 Mar 2007 Posts: 252 Location: Matlock, Derbyshire, UK
|
Posted: Mon Jan 22, 2018 5:45 pm Post subject: |
|
|
Each wavy line is a set of x(i) y(i) pairs. All I need to do is separate the lines so that the last element of each wavy line isn't joined to the first element of the next one. |
|
Back to top |
|
 |
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 8214 Location: Salford, UK
|
Posted: Mon Jan 22, 2018 8:59 pm Post subject: |
|
|
Can you post some code that illustrates how the y array or arrays are constructed? |
|
Back to top |
|
 |
silicondale
Joined: 15 Mar 2007 Posts: 252 Location: Matlock, Derbyshire, UK
|
Posted: Mon Jan 22, 2018 10:11 pm Post subject: |
|
|
The upper plot was generated using old coding:
call draw_line_between@ (iu1,iv1,iu2,iv2,irgb)
where each line segment is drawn separately by computing the pixel positions iu1,iv1 and iu2,iv2 for the ends of each line segment
The lower plot uses
i=winio@('%`pl[x_array,link=lines,symbol=0]&',
1 iwvm,ihvm,NUMDAT,xval,yval,ighandle)
where all of the wavy lines are held in the same xval,yval arrays - of necessity since it isn't practical to have umpteen separate arrays. |
|
Back to top |
|
 |
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 8214 Location: Salford, UK
|
Posted: Tue Jan 23, 2018 9:11 am Post subject: |
|
|
I am guessing that you get the join because to ask for it. Make sure that the end point of one wiggly line is not the start point of the next. |
|
Back to top |
|
 |
silicondale
Joined: 15 Mar 2007 Posts: 252 Location: Matlock, Derbyshire, UK
|
Posted: Tue Jan 23, 2018 11:19 am Post subject: |
|
|
The first wiggly line ends at xval(n),yval(n)
The second wiggly line starts at xval(n+1),yval(n+1) and goes on to xval(n+m),yval(n+m) ... and so on, for several wiggly lines. In the sample plots there are about 40 of them, but the exact number can vary.
So how, using %pl, do I suppress the line segments n to n+1 etc. so that the end point of one line is NOT the start point of the next?
Yes, I know you can set the number of graphs such as
call winop@ ('%pl[N_GRAPHS=10]')
but as N_GRAPHS gets bigger, the final i=winio@('%`pl.... call gets steadily longer because of all the arrays for the N_GRAPHS different data sets, and has to be coded separately for every possible different N_GRAPHS value.
Maybe I have missed the answer in this very long thread, but just how do you plot 40 separate wiggly lines using %pl ? |
|
Back to top |
|
 |
PaulLaidler Site Admin
Joined: 21 Feb 2005 Posts: 8214 Location: Salford, UK
|
Posted: Tue Jan 23, 2018 12:28 pm Post subject: |
|
|
If you have the release that includes v8.20 of FTN95 then look at item 394 in the document cwplus.enh. |
|
Back to top |
|
 |
silicondale
Joined: 15 Mar 2007 Posts: 252 Location: Matlock, Derbyshire, UK
|
Posted: Tue Jan 23, 2018 12:49 pm Post subject: |
|
|
Sadly I just have v8.0. Can't afford to keep on buying new versions at full commercial price. I don't even qualify for an academic licence though all my work is now on EU research projects. Would be good if you could offer an annual maintenance contract for loyal customers, that provides updates as and when issued. |
|
Back to top |
|
 |
silverfrost Site Admin

Joined: 29 Nov 2006 Posts: 193 Location: Manchester
|
Posted: Tue Jan 23, 2018 1:20 pm Post subject: |
|
|
Quote: | Sadly I just have v8.0. Can't afford to keep on buying new versions at full commercial price. I don't even qualify for an academic licence though all my work is now on EU research projects. Would be good if you could offer an annual maintenance contract for loyal customers, that provides updates as and when issued. |
We do and have always provided exactly what you require. |
|
Back to top |
|
 |
silicondale
Joined: 15 Mar 2007 Posts: 252 Location: Matlock, Derbyshire, UK
|
Posted: Tue Jan 23, 2018 6:54 pm Post subject: |
|
|
Problem resolved. Many thanks to quick response from Silverfrost!
Looking forward to installing v8.20 soonish. |
|
Back to top |
|
 |
silicondale
Joined: 15 Mar 2007 Posts: 252 Location: Matlock, Derbyshire, UK
|
Posted: Fri Jan 26, 2018 2:21 pm Post subject: |
|
|
I have updated the program but it's giving me a run-time error
Code: |
call winop@ ('%pl[native,independent,stacked,n_graphs=39]')
call winop@ ('%pl[x_min=7500]')
call winop@ ('%pl[x_max=7710]')
call winop@ ('%pl[y_min=0]')
call winop@ ('%pl[y_max=130]')
call winop@ ('%pl[x_axis=X]')
call winop@ ('%pl[y_axis=SEQNUM]')
call winop@ ('%pl[color=black]')
call winop@ ('%pl[link=lines,symbol=0]')
i=winio@ ('%`pl&',iwvm,ihvm,numld,xval,yval,ighandle)
|
where
where iwvm = 500 ihvm = 500
numld is an integer array holding the number of points for each of the 39 graphs
xval is a double precision array of all the x values for all graphs
yval is a double precision array of all the y values for all graphs
ighandle = 1
The error message is
Argument No.7 of winio@ (continuation 1) should be a REAL*8
Definitely refers to this winio@ call - which has no continuation lines and is not over-length. Am I missing an argument somehow?
Last edited by silicondale on Fri Jan 26, 2018 3:07 pm; edited 1 time in total |
|
Back to top |
|
 |
DanRRight
Joined: 10 Mar 2008 Posts: 2925 Location: South Pole, Antarctica
|
Posted: Fri Jan 26, 2018 2:52 pm Post subject: |
|
|
Silicondale, You are probably the first to try new feature 'stacked'. Post full demo |
|
Back to top |
|
 |
silicondale
Joined: 15 Mar 2007 Posts: 252 Location: Matlock, Derbyshire, UK
|
Posted: Fri Jan 26, 2018 3:06 pm Post subject: |
|
|
This was just a snippet out of a large program. In fact each winop@ call was constructed by a formatted write because the numeric values had to be inserted from variables. What I posted was just the set of resulting calls. |
|
Back to top |
|
 |
|