From: <arj...@us...> - 2007-09-28 12:52:03
|
Revision: 7896 http://plplot.svn.sourceforge.net/plplot/?rev=7896&view=rev Author: arjenmarkus Date: 2007-09-28 05:52:06 -0700 (Fri, 28 Sep 2007) Log Message: ----------- Initial commit of example 28 - not tested yet Added Paths: ----------- trunk/examples/f95/x28f.f90 Added: trunk/examples/f95/x28f.f90 =================================================================== --- trunk/examples/f95/x28f.f90 (rev 0) +++ trunk/examples/f95/x28f.f90 2007-09-28 12:52:06 UTC (rev 7896) @@ -0,0 +1,367 @@ +! $Id: x28c.c 7884 2007-09-24 18:26:17Z airwin $ +! +! Demonstrates plotting text in 3D (plmtex3, plptex3) +! +! Copyright (C) 2007 Alan W. Irwin +! +! This file is part of PLplot. +! +! PLplot is free software; you can redistribute it and/or modify +! it under the terms of the GNU General Library Public License as +! published by the Free Software Foundation; either version 2 of the +! License, or (at your option) any later version. +! +! PLplot is distributed in the hope that it will be useful, +! but WITHOUT ANY WARRANTY; without even the implied warranty of +! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +! GNU Library General Public License for more details. +! +! You should have received a copy of the GNU Library General Public +! License along with PLplot; if not, write to the Free Software +! Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +! + + program x29f95 + use plplot, PI => PL_PI + + implicit none + + integer, parameter :: XPTS = 2 + integer, parameter :: YPTS = 2 + integer, parameter :: NREVOLUTION = 16 + integer, parameter :: NROTATION = 8 + integer, parameter :: NSHEAR = 8 + + real(PLFLT), dimension(:), allocatable :: x, y + real(PLFLT), dimension(:,:), allocatable :: z + + real(PLFLT) :: xmin=0., xmax=1.0, xmid = 0.5*(xmax + xmin), xrange = xmax - xmin, & + ymin=0., ymax=1.0, ymid = 0.5*(ymax + ymin), yrange = ymax - ymin, & + zmin=0., zmax=1.0, zmid = 0.5*(zmax + zmin), zrange = zmax - zmin, & + x_inclination, y_inclination, z_inclination, & + x_shear, y_shear, z_shear, & + omega, sin_omega, cos_omega, domega + integer :: i, j + real(PLFLT) :: radius, pitch, xpos, ypos, zpos + + character(len=1) :: p1string = "O" + character(len=80) :: pstring = & + *pstring = "The future of our civilization depends on software freedom." + + ! Allocate and define the minimal x, y, and z to insure 3D box + allocate( x(XPTS) ) + allocate( y(YPTS) ) + allocate( z(XPTS,YPTS) ) + + do i = 1,XPTS + x(i) = xmin + (i-1) * (xmax-xmin)/(XPTS-1) + enddo + + do j = 1,YPTS + y(j) = ymin + (j-1) * (ymax-ymin)/(YPTS-1) + enddo + + z = 0.0 + + ! Parse and process command line arguments + + call plparseopts(PL_PARSE_FULL) + + call plinit + + ! Page 1: Demonstrate inclination and shear capability pattern. + + call pladv(0) + call plvpor(-0.15, 1.15, -0.05, 1.05) + call plwind(-1.2, 1.2, -0.8, 1.5) + call plw3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, 20., 45.) + + call plcol0(2) + call plbox3("b", "", xmax-xmin, 0, & + "b", "", ymax-ymin, 0, & + "bcd", "", zmax-zmin, 0) + + ! z = zmin. + call plschr(0., 1.0) + do i = 1,NREVOLUTION + omega = 2.*PI*((i-1)/(PLFLT)NREVOLUTION) + sin_omega = sin(omega) + cos_omega = cos(omega) + x_inclination = 0.5*xrange*cos_omega + y_inclination = 0.5*yrange*sin_omega + z_inclination = 0. + x_shear = -0.5*xrange*sin_omega + y_shear = 0.5*yrange*cos_omega + z_shear = 0. + call plptex3( & + xmid, ymid, zmin, & + x_inclination, y_inclination, z_inclination, & + x_shear, y_shear, z_shear, & + 0.0, " revolution") + enddo + + ! x = xmax. + call plschr(0., 1.0) + do i = 1,NREVOLUTION + omega = 2.*PI*((i-1)/(PLFLT)NREVOLUTION) + sin_omega = sin(omega) + cos_omega = cos(omega) + x_inclination = 0. + y_inclination = -0.5*yrange*cos_omega + z_inclination = 0.5*zrange*sin_omega + x_shear = 0. + y_shear = 0.5*yrange*sin_omega + z_shear = 0.5*zrange*cos_omega + call plptex3( & + xmax, ymid, zmid, & + x_inclination, y_inclination, z_inclination, & + x_shear, y_shear, z_shear, & + 0.0, " revolution") + enddo + + ! y = ymax. + call plschr(0., 1.0) + do i = 1,NREVOLUTION + omega = 2.*M_PI*(i-1)/(PLFLT)NREVOLUTION) + sin_omega = sin(omega) + cos_omega = cos(omega) + x_inclination = 0.5*xrange*cos_omega + y_inclination = 0. + z_inclination = 0.5*zrange*sin_omega + x_shear = -0.5*xrange*sin_omega + y_shear = 0. + z_shear = 0.5*zrange*cos_omega + call plptex3( & + xmid, ymax, zmid, & + x_inclination, y_inclination, z_inclination, & + x_shear, y_shear, z_shear, & + 0.0, " revolution") + enddo + + ! Draw minimal 3D grid to finish defining the 3D box. + call plmesh(x, y, z, XPTS, YPTS, DRAW_LINEXY) + + ! Page 2: Demonstrate rotation of string around its axis. + call pladv(0) + call plvpor(-0.15, 1.15, -0.05, 1.05) + call plwind(-1.2, 1.2, -0.8, 1.5) + call plw3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, 20., 45.) + + call plcol0(2) + call plbox3("b", "", xmax-xmin, 0, & + "b", "", ymax-ymin, 0, & + "bcd", "", zmax-zmin, 0) + + ! y = ymax. + call plschr(0., 1.0) + x_inclination = 1. + y_inclination = 0. + z_inclination = 0. + x_shear = 0. + do i = 1,NROTATION + omega = 2.*PI*(i-1)/(PLFLT)NROTATION) + sin_omega = sin(omega) + cos_omega = cos(omega) + y_shear = 0.5*yrange*sin_omega + z_shear = 0.5*zrange*cos_omega + call plptex3( & + xmid, ymax, zmax -(zmax-0.2)*((i-1/(PLFLT)(NROTATION-1)), & + x_inclination, y_inclination, z_inclination, & + x_shear, y_shear, z_shear, & + 0.5, "rotation for y = y#dmax#u") + enddo + + ! x = xmax. + call plschr(0., 1.0) + x_inclination = 0. + y_inclination = -1. + z_inclination = 0. + y_shear = 0. + do i = 1,NROTATION + omega = 2.*PI*((i-1)/(PLFLT)NROTATION) + sin_omega = sin(omega) + cos_omega = cos(omega) + x_shear = 0.5*xrange*sin_omega + z_shear = 0.5*zrange*cos_omega + call plptex3( & + xmax, ymid, zmax -(zmax-0.2)*((i-1)/(PLFLT)(NROTATION-1)), & + x_inclination, y_inclination, z_inclination, & + x_shear, y_shear, z_shear, & + 0.5, "rotation for x = x#dmax#u") + } + + ! z = zmin. + call plschr(0., 1.0) + x_inclination = 1. + y_inclination = 0. + z_inclination = 0. + x_shear = 0. + do i = 1,NROTATION + omega = 2.*PI*((i-1)/(PLFLT)NROTATION) + sin_omega = sin(omega) + cos_omega = cos(omega) + y_shear = 0.5*yrange*cos_omega + z_shear = 0.5*zrange*sin_omega + call plptex3( & + xmid, ymax -(ymax-0.2)*((PLFLT)i/(PLFLT)(NROTATION-1)), zmin, & + x_inclination, y_inclination, z_inclination, & + x_shear, y_shear, z_shear, & + 0.5, "rotation for z = z#dmin#u") + enddo + ! Draw minimal 3D grid to finish defining the 3D box. + call plmesh(x, y, z, XPTS, YPTS, DRAW_LINEXY) + + ! Page 3: Demonstrate shear of string along its axis. + ! Work around xcairo and pngcairo (but not pscairo) problems for + ! shear vector too close to axis of string. (N.B. no workaround + ! would be domega = 0.) + domega = 0.05 + call pladv(0) + call plvpor(-0.15, 1.15, -0.05, 1.05) + call plwind(-1.2, 1.2, -0.8, 1.5) + call plw3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, 20., 45.) + + call plcol0(2) + call plbox3("b", "", xmax-xmin, 0, & + "b", "", ymax-ymin, 0, & + "bcd", "", zmax-zmin, 0) + + ! y = ymax. + call plschr(0., 1.0) + x_inclination = 1. + y_inclination = 0. + z_inclination = 0. + y_shear = 0. + do i = 1,NSHEAR + omega = domega + 2.*PI*((i-1)/(PLFLT)NSHEAR) + sin_omega = sin(omega) + cos_omega = cos(omega) + x_shear = 0.5*yrange*sin_omega + z_shear = 0.5*zrange*cos_omega + call plptex3( & + xmid, ymax, zmax -(zmax-0.2)*((PLFLT)i/(PLFLT)(NSHEAR-1)), & + x_inclination, y_inclination, z_inclination, & + x_shear, y_shear, z_shear, & + 0.5, "shear for y = y#dmax#u") + enddo + + ! x = xmax. + call plschr(0., 1.0) + x_inclination = 0. + y_inclination = -1. + z_inclination = 0. + x_shear = 0. + do i = 1,NSHEAR + omega = domega + 2.*PI*((i-1)/(PLFLT)NSHEAR) + sin_omega = sin(omega) + cos_omega = cos(omega) + y_shear = -0.5*xrange*sin_omega + z_shear = 0.5*zrange*cos_omega + call plptex3( + xmax, ymid, zmax -(zmax-0.2)*((i-1)/(PLFLT)(NSHEAR-1)), + x_inclination, y_inclination, z_inclination, + x_shear, y_shear, z_shear, + 0.5, "shear for x = x#dmax#u") + enddo + + ! z = zmin. + call plschr(0., 1.0) + x_inclination = 1. + y_inclination = 0. + z_inclination = 0. + z_shear = 0. + do i = 1,NSHEAR + omega = domega + 2.*PI*((i-1)/(PLFLT)NSHEAR) + sin_omega = sin(omega) + cos_omega = cos(omega) + y_shear = 0.5*yrange*cos_omega + x_shear = 0.5*zrange*sin_omega + call plptex3( & + xmid, ymax -(ymax-0.2)*((PLFLT)i/(PLFLT)(NSHEAR-1)), zmin, & + x_inclination, y_inclination, z_inclination, & + x_shear, y_shear, z_shear, & + 0.5, "shear for z = z#dmin#u") + enddo + ! Draw minimal 3D grid to finish defining the 3D box. + call plmesh(x, y, z, XPTS, YPTS, DRAW_LINEXY) + + ! Page 4: Demonstrate drawing a string on a 3D path. + call pladv(0) + call plvpor(-0.15, 1.15, -0.05, 1.05) + call plwind(-1.2, 1.2, -0.8, 1.5) + call plw3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, 40., -30.) + + call plcol0(2) + call plbox3("b", "", xmax-xmin, 0, + "b", "", ymax-ymin, 0, + "bcd", "", zmax-zmin, 0) + + call plschr(0., 1.2) + ! domega controls the spacing between the various characters of the + ! string and also the maximum value of omega for the given number + ! of characters in pstring. + domega = 2.*PI/len_trim(pstring) + omega = 0. + ! 3D function is a helix of the given radius and pitch + radius = 0.5 + pitch = 1./(2.*PI) + do i = 1,len_trim(pstring) + sin_omega = sin(omega) + cos_omega = cos(omega) + xpos = xmid + radius*sin_omega + ypos = ymid - radius*cos_omega + zpos = zmin + pitch*omega + ! In general, the inclination is proportional to the derivative of + ! the position wrt theta. + x_inclination = radius*cos_omega + y_inclination = radius*sin_omega + z_inclination = pitch + ! The shear vector should be perpendicular to the 3D line with Z + ! component maximized, but for low pitch a good approximation is + ! a constant vector that is parallel to the Z axis. + x_shear = 0. + y_shear = 0. + z_shear = 1. + p1string = pstring(i:i) + call plptex3( & + xpos, ypos, zpos, & + x_inclination, y_inclination, z_inclination, & + x_shear, y_shear, z_shear, & + 0.5, p1string) + omega = omega + domega + enddo + ! Draw minimal 3D grid to finish defining the 3D box. + call plmesh(x, y, z, XPTS, YPTS, DRAW_LINEXY) + + ! Page 5: Demonstrate plmtex3 axis labelling capability + call pladv(0) + call plvpor(-0.15, 1.15, -0.05, 1.05) + call plwind(-1.2, 1.2, -0.8, 1.5) + call plw3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, 20., 45.) + + call plcol0(2) + call plbox3("b", "", xmax-xmin, 0, & + "b", "", ymax-ymin, 0, & + "bcd", "", zmax-zmin, 0) + + call plschr(0., 1.0) + call plmtex3("xp", 3.0, 0.5, 0.5, "Arbitrarily displaced") + call plmtex3("xp", 4.5, 0.5, 0.5, "primary X-axis label") + call plmtex3("xs", -2.5, 0.5, 0.5, "Arbitrarily displaced") + call plmtex3("xs", -1.0, 0.5, 0.5, "secondary X-axis label") + call plmtex3("yp", 3.0, 0.5, 0.5, "Arbitrarily displaced") + call plmtex3("yp", 4.5, 0.5, 0.5, "primary Y-axis label") + call plmtex3("ys", -2.5, 0.5, 0.5, "Arbitrarily displaced") + call plmtex3("ys", -1.0, 0.5, 0.5, "secondary Y-axis label") + call plmtex3("zp", 4.5, 0.5, 0.5, "Arbitrarily displaced") + call plmtex3("zp", 3.0, 0.5, 0.5, "primary Z-axis label") + call plmtex3("zs", -2.5, 0.5, 0.5, "Arbitrarily displaced") + call plmtex3("zs", -1.0, 0.5, 0.5, "secondary Z-axis label") + ! Draw minimal 3D grid to finish defining the 3D box. + call plmesh(x, y, z, XPTS, YPTS, DRAW_LINEXY) + + ! Clean up. + deallocate( x, y, z ) + call plend + stop +end program Property changes on: trunk/examples/f95/x28f.f90 ___________________________________________________________________ Name: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2007-09-29 15:35:49
|
Revision: 7897 http://plplot.svn.sourceforge.net/plplot/?rev=7897&view=rev Author: airwin Date: 2007-09-29 08:35:52 -0700 (Sat, 29 Sep 2007) Log Message: ----------- Make svn properties the same as for other fortran examples. Modified Paths: -------------- trunk/examples/f95/x28f.f90 Property Changed: ---------------- trunk/examples/f95/x28f.f90 Modified: trunk/examples/f95/x28f.f90 =================================================================== --- trunk/examples/f95/x28f.f90 2007-09-28 12:52:06 UTC (rev 7896) +++ trunk/examples/f95/x28f.f90 2007-09-29 15:35:52 UTC (rev 7897) @@ -1,4 +1,4 @@ -! $Id: x28c.c 7884 2007-09-24 18:26:17Z airwin $ +! $Id$ ! ! Demonstrates plotting text in 3D (plmtex3, plptex3) ! Property changes on: trunk/examples/f95/x28f.f90 ___________________________________________________________________ Name: svn:executable - * Name: svn:keywords + Author Date Id Revision Name: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2007-09-30 21:01:59
|
Revision: 7912 http://plplot.svn.sourceforge.net/plplot/?rev=7912&view=rev Author: airwin Date: 2007-09-30 14:02:02 -0700 (Sun, 30 Sep 2007) Log Message: ----------- Minor tweaks. There are probably other parts of this example that won't even compile yet. Modified Paths: -------------- trunk/examples/f95/x28f.f90 Modified: trunk/examples/f95/x28f.f90 =================================================================== --- trunk/examples/f95/x28f.f90 2007-09-30 21:00:40 UTC (rev 7911) +++ trunk/examples/f95/x28f.f90 2007-09-30 21:02:02 UTC (rev 7912) @@ -21,7 +21,7 @@ ! Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ! - program x29f95 + program x28f95 use plplot, PI => PL_PI implicit none @@ -236,7 +236,7 @@ omega = domega + 2.*PI*((i-1)/(PLFLT)NSHEAR) sin_omega = sin(omega) cos_omega = cos(omega) - x_shear = 0.5*yrange*sin_omega + x_shear = 0.5*xrange*sin_omega z_shear = 0.5*zrange*cos_omega call plptex3( & xmid, ymax, zmax -(zmax-0.2)*((PLFLT)i/(PLFLT)(NSHEAR-1)), & @@ -255,7 +255,7 @@ omega = domega + 2.*PI*((i-1)/(PLFLT)NSHEAR) sin_omega = sin(omega) cos_omega = cos(omega) - y_shear = -0.5*xrange*sin_omega + y_shear = -0.5*yrange*sin_omega z_shear = 0.5*zrange*cos_omega call plptex3( xmax, ymid, zmax -(zmax-0.2)*((i-1)/(PLFLT)(NSHEAR-1)), @@ -275,7 +275,7 @@ sin_omega = sin(omega) cos_omega = cos(omega) y_shear = 0.5*yrange*cos_omega - x_shear = 0.5*zrange*sin_omega + x_shear = 0.5*xrange*sin_omega call plptex3( & xmid, ymax -(ymax-0.2)*((PLFLT)i/(PLFLT)(NSHEAR-1)), zmin, & x_inclination, y_inclination, z_inclination, & This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2007-10-02 09:57:14
|
Revision: 7919 http://plplot.svn.sourceforge.net/plplot/?rev=7919&view=rev Author: andrewross Date: 2007-10-02 02:57:17 -0700 (Tue, 02 Oct 2007) Log Message: ----------- Fix up f95 version of example 28 so it compiles. I still have some problems with plmesh using ifort, but these also occur with example 11. Modified Paths: -------------- trunk/examples/f95/x28f.f90 Modified: trunk/examples/f95/x28f.f90 =================================================================== --- trunk/examples/f95/x28f.f90 2007-10-01 16:06:45 UTC (rev 7918) +++ trunk/examples/f95/x28f.f90 2007-10-02 09:57:17 UTC (rev 7919) @@ -35,19 +35,36 @@ real(PLFLT), dimension(:), allocatable :: x, y real(PLFLT), dimension(:,:), allocatable :: z - real(PLFLT) :: xmin=0., xmax=1.0, xmid = 0.5*(xmax + xmin), xrange = xmax - xmin, & - ymin=0., ymax=1.0, ymid = 0.5*(ymax + ymin), yrange = ymax - ymin, & - zmin=0., zmax=1.0, zmid = 0.5*(zmax + zmin), zrange = zmax - zmin, & - x_inclination, y_inclination, z_inclination, & - x_shear, y_shear, z_shear, & - omega, sin_omega, cos_omega, domega + real(PLFLT), parameter :: xmin=0., xmax=1.0, & + xmid = 0.5*(xmax + xmin), xrange = xmax - xmin, & + ymin=0., ymax=1.0, ymid = 0.5*(ymax + ymin), yrange = ymax - ymin, & + zmin=0., zmax=1.0, zmid = 0.5*(zmax + zmin), zrange = zmax - zmin + real(PLFLT) :: x_inclination, y_inclination, z_inclination, & + x_shear, y_shear, z_shear, & + omega, sin_omega, cos_omega, domega integer :: i, j real(PLFLT) :: radius, pitch, xpos, ypos, zpos character(len=1) :: p1string = "O" character(len=80) :: pstring = & - *pstring = "The future of our civilization depends on software freedom." + "The future of our civilization depends on software freedom." + ! Plotting options for 3d plots, see plplot.h for the C definitions + ! of these options. + integer DRAW_LINEX, DRAW_LINEY, DRAW_LINEXY, MAG_COLOR, & + BASE_CONT, TOP_CONT, SURF_CONT, DRAW_SIDES, FACETED, MESH + parameter(DRAW_LINEX = 1) + parameter(DRAW_LINEY = 2) + parameter(DRAW_LINEXY = 3) + parameter(MAG_COLOR = 4) + parameter(BASE_CONT = 8) + parameter(TOP_CONT = 16) + parameter(SURF_CONT = 32) + parameter(DRAW_SIDES = 64) + parameter(FACETED = 128) + parameter(MESH = 256) + + ! Allocate and define the minimal x, y, and z to insure 3D box allocate( x(XPTS) ) allocate( y(YPTS) ) @@ -72,9 +89,9 @@ ! Page 1: Demonstrate inclination and shear capability pattern. call pladv(0) - call plvpor(-0.15, 1.15, -0.05, 1.05) - call plwind(-1.2, 1.2, -0.8, 1.5) - call plw3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, 20., 45.) + call plvpor(-0.15_plflt, 1.15_plflt, -0.05_plflt, 1.05_plflt) + call plwind(-1.2_plflt, 1.2_plflt, -0.8_plflt, 1.5_plflt) + call plw3d(1.0_plflt, 1.0_plflt, 1.0_plflt, xmin, xmax, ymin, ymax, zmin, zmax, 20._plflt, 45._plflt) call plcol0(2) call plbox3("b", "", xmax-xmin, 0, & @@ -82,9 +99,9 @@ "bcd", "", zmax-zmin, 0) ! z = zmin. - call plschr(0., 1.0) + call plschr(0.0_plflt, 1.0_plflt) do i = 1,NREVOLUTION - omega = 2.*PI*((i-1)/(PLFLT)NREVOLUTION) + omega = 2.*PI*((i-1)/dble(NREVOLUTION)) sin_omega = sin(omega) cos_omega = cos(omega) x_inclination = 0.5*xrange*cos_omega @@ -97,13 +114,13 @@ xmid, ymid, zmin, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & - 0.0, " revolution") + 0.0_plflt, " revolution") enddo ! x = xmax. - call plschr(0., 1.0) + call plschr(0._plflt, 1.0_plflt) do i = 1,NREVOLUTION - omega = 2.*PI*((i-1)/(PLFLT)NREVOLUTION) + omega = 2.*PI*((i-1)/dble(NREVOLUTION)) sin_omega = sin(omega) cos_omega = cos(omega) x_inclination = 0. @@ -116,13 +133,13 @@ xmax, ymid, zmid, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & - 0.0, " revolution") + 0.0_plflt, " revolution") enddo ! y = ymax. - call plschr(0., 1.0) + call plschr(0.0_plflt, 1.0_plflt) do i = 1,NREVOLUTION - omega = 2.*M_PI*(i-1)/(PLFLT)NREVOLUTION) + omega = 2.*PI*(i-1)/dble(NREVOLUTION) sin_omega = sin(omega) cos_omega = cos(omega) x_inclination = 0.5*xrange*cos_omega @@ -135,17 +152,18 @@ xmid, ymax, zmid, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & - 0.0, " revolution") + 0.0_plflt, " revolution") enddo ! Draw minimal 3D grid to finish defining the 3D box. - call plmesh(x, y, z, XPTS, YPTS, DRAW_LINEXY) + call plmesh(x, y, z, DRAW_LINEXY) ! Page 2: Demonstrate rotation of string around its axis. call pladv(0) - call plvpor(-0.15, 1.15, -0.05, 1.05) - call plwind(-1.2, 1.2, -0.8, 1.5) - call plw3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, 20., 45.) + call plvpor(-0.15_plflt, 1.15_plflt, -0.05_plflt, 1.05_plflt) + call plwind(-1.2_plflt, 1.2_plflt, -0.8_plflt, 1.5_plflt) + call plw3d(1.0_plflt, 1.0_plflt, 1.0_plflt, xmin, xmax, ymin, ymax, & + zmin, zmax, 20._plflt, 45._plflt) call plcol0(2) call plbox3("b", "", xmax-xmin, 0, & @@ -153,63 +171,63 @@ "bcd", "", zmax-zmin, 0) ! y = ymax. - call plschr(0., 1.0) + call plschr(0.0_plflt, 1.0_plflt) x_inclination = 1. y_inclination = 0. z_inclination = 0. x_shear = 0. do i = 1,NROTATION - omega = 2.*PI*(i-1)/(PLFLT)NROTATION) + omega = 2.*PI*(i-1)/dble(NROTATION) sin_omega = sin(omega) cos_omega = cos(omega) y_shear = 0.5*yrange*sin_omega z_shear = 0.5*zrange*cos_omega call plptex3( & - xmid, ymax, zmax -(zmax-0.2)*((i-1/(PLFLT)(NROTATION-1)), & + xmid, ymax, zmax -(zmax-0.2)*(dble(i-1)/dble(NROTATION-1)), & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & - 0.5, "rotation for y = y#dmax#u") + 0.5_plflt, "rotation for y = y#dmax#u") enddo ! x = xmax. - call plschr(0., 1.0) - x_inclination = 0. - y_inclination = -1. - z_inclination = 0. - y_shear = 0. + call plschr(0.0_plflt, 1.0_plflt) + x_inclination = 0.0 + y_inclination = -1.0 + z_inclination = 0.0 + y_shear = 0.0 do i = 1,NROTATION - omega = 2.*PI*((i-1)/(PLFLT)NROTATION) + omega = 2.*PI*((i-1)/dble(NROTATION)) sin_omega = sin(omega) cos_omega = cos(omega) x_shear = 0.5*xrange*sin_omega z_shear = 0.5*zrange*cos_omega call plptex3( & - xmax, ymid, zmax -(zmax-0.2)*((i-1)/(PLFLT)(NROTATION-1)), & + xmax, ymid, zmax -(zmax-0.2)*((i-1)/dble(NROTATION-1)), & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & - 0.5, "rotation for x = x#dmax#u") - } + 0.5_plflt, "rotation for x = x#dmax#u") + enddo ! z = zmin. - call plschr(0., 1.0) + call plschr(0.0_plflt, 1.0_plflt) x_inclination = 1. y_inclination = 0. z_inclination = 0. x_shear = 0. do i = 1,NROTATION - omega = 2.*PI*((i-1)/(PLFLT)NROTATION) + omega = 2.*PI*((i-1)/dble(NROTATION)) sin_omega = sin(omega) cos_omega = cos(omega) y_shear = 0.5*yrange*cos_omega z_shear = 0.5*zrange*sin_omega call plptex3( & - xmid, ymax -(ymax-0.2)*((PLFLT)i/(PLFLT)(NROTATION-1)), zmin, & + xmid, ymax -(ymax-0.2)*(dble(i)/dble(NROTATION-1)), zmin, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & - 0.5, "rotation for z = z#dmin#u") + 0.5_plflt, "rotation for z = z#dmin#u") enddo ! Draw minimal 3D grid to finish defining the 3D box. - call plmesh(x, y, z, XPTS, YPTS, DRAW_LINEXY) + call plmesh(x, y, z, DRAW_LINEXY) ! Page 3: Demonstrate shear of string along its axis. ! Work around xcairo and pngcairo (but not pscairo) problems for @@ -217,9 +235,10 @@ ! would be domega = 0.) domega = 0.05 call pladv(0) - call plvpor(-0.15, 1.15, -0.05, 1.05) - call plwind(-1.2, 1.2, -0.8, 1.5) - call plw3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, 20., 45.) + call plvpor(-0.15_plflt, 1.15_plflt, -0.05_plflt, 1.05_plflt) + call plwind(-1.2_plflt, 1.2_plflt, -0.8_plflt, 1.5_plflt) + call plw3d(1.0_plflt, 1.0_plflt, 1.0_plflt, xmin, xmax, ymin, ymax, & + zmin, zmax, 20._plflt, 45._plflt) call plcol0(2) call plbox3("b", "", xmax-xmin, 0, & @@ -227,76 +246,76 @@ "bcd", "", zmax-zmin, 0) ! y = ymax. - call plschr(0., 1.0) + call plschr(0.0_plflt, 1.0_plflt) x_inclination = 1. y_inclination = 0. z_inclination = 0. y_shear = 0. do i = 1,NSHEAR - omega = domega + 2.*PI*((i-1)/(PLFLT)NSHEAR) + omega = domega + 2.*PI*((i-1)/dble(NSHEAR)) sin_omega = sin(omega) cos_omega = cos(omega) x_shear = 0.5*xrange*sin_omega z_shear = 0.5*zrange*cos_omega call plptex3( & - xmid, ymax, zmax -(zmax-0.2)*((PLFLT)i/(PLFLT)(NSHEAR-1)), & + xmid, ymax, zmax -(zmax-0.2)*(dble(i)/dble(NSHEAR-1)), & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & - 0.5, "shear for y = y#dmax#u") + 0.5_plflt, "shear for y = y#dmax#u") enddo ! x = xmax. - call plschr(0., 1.0) + call plschr(0.0_plflt, 1.0_plflt) x_inclination = 0. y_inclination = -1. z_inclination = 0. x_shear = 0. do i = 1,NSHEAR - omega = domega + 2.*PI*((i-1)/(PLFLT)NSHEAR) + omega = domega + 2.*PI*((i-1)/dble(NSHEAR)) sin_omega = sin(omega) cos_omega = cos(omega) y_shear = -0.5*yrange*sin_omega z_shear = 0.5*zrange*cos_omega - call plptex3( - xmax, ymid, zmax -(zmax-0.2)*((i-1)/(PLFLT)(NSHEAR-1)), - x_inclination, y_inclination, z_inclination, - x_shear, y_shear, z_shear, - 0.5, "shear for x = x#dmax#u") + call plptex3( & + xmax, ymid, zmax -(zmax-0.2)*((i-1)/dble(NSHEAR-1)), & + x_inclination, y_inclination, z_inclination, & + x_shear, y_shear, z_shear, & + 0.5_plflt, "shear for x = x#dmax#u") enddo ! z = zmin. - call plschr(0., 1.0) + call plschr(0.0_plflt, 1.0_plflt) x_inclination = 1. y_inclination = 0. z_inclination = 0. z_shear = 0. do i = 1,NSHEAR - omega = domega + 2.*PI*((i-1)/(PLFLT)NSHEAR) + omega = domega + 2.*PI*((i-1)/dble(NSHEAR)) sin_omega = sin(omega) cos_omega = cos(omega) y_shear = 0.5*yrange*cos_omega x_shear = 0.5*xrange*sin_omega call plptex3( & - xmid, ymax -(ymax-0.2)*((PLFLT)i/(PLFLT)(NSHEAR-1)), zmin, & + xmid, ymax -(ymax-0.2)*(dble(i)/dble(NSHEAR-1)), zmin, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & - 0.5, "shear for z = z#dmin#u") + 0.5_plflt, "shear for z = z#dmin#u") enddo ! Draw minimal 3D grid to finish defining the 3D box. - call plmesh(x, y, z, XPTS, YPTS, DRAW_LINEXY) + call plmesh(x, y, z, DRAW_LINEXY) ! Page 4: Demonstrate drawing a string on a 3D path. call pladv(0) - call plvpor(-0.15, 1.15, -0.05, 1.05) - call plwind(-1.2, 1.2, -0.8, 1.5) - call plw3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, 40., -30.) + call plvpor(-0.15_plflt, 1.15_plflt, -0.05_plflt, 1.05_plflt) + call plwind(-1.2_plflt, 1.2_plflt, -0.8_plflt, 1.5_plflt) + call plw3d(1.0_plflt, 1.0_plflt, 1.0_plflt, xmin, xmax, ymin, ymax, zmin, zmax, 40._plflt, -30._plflt) call plcol0(2) - call plbox3("b", "", xmax-xmin, 0, - "b", "", ymax-ymin, 0, + call plbox3("b", "", xmax-xmin, 0, & + "b", "", ymax-ymin, 0, & "bcd", "", zmax-zmin, 0) - call plschr(0., 1.2) + call plschr(0.0_plflt, 1.2_plflt) ! domega controls the spacing between the various characters of the ! string and also the maximum value of omega for the given number ! of characters in pstring. @@ -327,38 +346,38 @@ xpos, ypos, zpos, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & - 0.5, p1string) + 0.5_plflt, p1string) omega = omega + domega enddo ! Draw minimal 3D grid to finish defining the 3D box. - call plmesh(x, y, z, XPTS, YPTS, DRAW_LINEXY) + call plmesh(x, y, z, DRAW_LINEXY) ! Page 5: Demonstrate plmtex3 axis labelling capability call pladv(0) - call plvpor(-0.15, 1.15, -0.05, 1.05) - call plwind(-1.2, 1.2, -0.8, 1.5) - call plw3d(1.0, 1.0, 1.0, xmin, xmax, ymin, ymax, zmin, zmax, 20., 45.) + call plvpor(-0.15_plflt, 1.15_plflt, -0.05_plflt, 1.05_plflt) + call plwind(-1.2_plflt, 1.2_plflt, -0.8_plflt, 1.5_plflt) + call plw3d(1.0_plflt, 1.0_plflt, 1.0_plflt, xmin, xmax, ymin, ymax, zmin, zmax, 20._plflt, 45._plflt) call plcol0(2) call plbox3("b", "", xmax-xmin, 0, & "b", "", ymax-ymin, 0, & "bcd", "", zmax-zmin, 0) - call plschr(0., 1.0) - call plmtex3("xp", 3.0, 0.5, 0.5, "Arbitrarily displaced") - call plmtex3("xp", 4.5, 0.5, 0.5, "primary X-axis label") - call plmtex3("xs", -2.5, 0.5, 0.5, "Arbitrarily displaced") - call plmtex3("xs", -1.0, 0.5, 0.5, "secondary X-axis label") - call plmtex3("yp", 3.0, 0.5, 0.5, "Arbitrarily displaced") - call plmtex3("yp", 4.5, 0.5, 0.5, "primary Y-axis label") - call plmtex3("ys", -2.5, 0.5, 0.5, "Arbitrarily displaced") - call plmtex3("ys", -1.0, 0.5, 0.5, "secondary Y-axis label") - call plmtex3("zp", 4.5, 0.5, 0.5, "Arbitrarily displaced") - call plmtex3("zp", 3.0, 0.5, 0.5, "primary Z-axis label") - call plmtex3("zs", -2.5, 0.5, 0.5, "Arbitrarily displaced") - call plmtex3("zs", -1.0, 0.5, 0.5, "secondary Z-axis label") + call plschr(0.0_plflt, 1.0_plflt) + call plmtex3("xp", 3.0_plflt, 0.5_plflt, 0.5_plflt, "Arbitrarily displaced") + call plmtex3("xp", 4.5_plflt, 0.5_plflt, 0.5_plflt, "primary X-axis label") + call plmtex3("xs", -2.5_plflt, 0.5_plflt, 0.5_plflt, "Arbitrarily displaced") + call plmtex3("xs", -1.0_plflt, 0.5_plflt, 0.5_plflt, "secondary X-axis label") + call plmtex3("yp", 3.0_plflt, 0.5_plflt, 0.5_plflt, "Arbitrarily displaced") + call plmtex3("yp", 4.5_plflt, 0.5_plflt, 0.5_plflt, "primary Y-axis label") + call plmtex3("ys", -2.5_plflt, 0.5_plflt, 0.5_plflt, "Arbitrarily displaced") + call plmtex3("ys", -1.0_plflt, 0.5_plflt, 0.5_plflt, "secondary Y-axis label") + call plmtex3("zp", 4.5_plflt, 0.5_plflt, 0.5_plflt, "Arbitrarily displaced") + call plmtex3("zp", 3.0_plflt, 0.5_plflt, 0.5_plflt, "primary Z-axis label") + call plmtex3("zs", -2.5_plflt, 0.5_plflt, 0.5_plflt, "Arbitrarily displaced") + call plmtex3("zs", -1.0_plflt, 0.5_plflt, 0.5_plflt, "secondary Z-axis label") ! Draw minimal 3D grid to finish defining the 3D box. - call plmesh(x, y, z, XPTS, YPTS, DRAW_LINEXY) + call plmesh(x, y, z, DRAW_LINEXY) ! Clean up. deallocate( x, y, z ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <and...@us...> - 2007-10-02 11:37:05
|
Revision: 7921 http://plplot.svn.sourceforge.net/plplot/?rev=7921&view=rev Author: andrewross Date: 2007-10-02 04:37:08 -0700 (Tue, 02 Oct 2007) Log Message: ----------- Fix off by one errors in f95 version of example 28. Modified Paths: -------------- trunk/examples/f95/x28f.f90 Modified: trunk/examples/f95/x28f.f90 =================================================================== --- trunk/examples/f95/x28f.f90 2007-10-02 11:35:57 UTC (rev 7920) +++ trunk/examples/f95/x28f.f90 2007-10-02 11:37:08 UTC (rev 7921) @@ -221,7 +221,7 @@ y_shear = 0.5*yrange*cos_omega z_shear = 0.5*zrange*sin_omega call plptex3( & - xmid, ymax -(ymax-0.2)*(dble(i)/dble(NROTATION-1)), zmin, & + xmid, ymax -(ymax-0.2)*(dble(i-1)/dble(NROTATION-1)), zmin, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & 0.5_plflt, "rotation for z = z#dmin#u") @@ -258,7 +258,7 @@ x_shear = 0.5*xrange*sin_omega z_shear = 0.5*zrange*cos_omega call plptex3( & - xmid, ymax, zmax -(zmax-0.2)*(dble(i)/dble(NSHEAR-1)), & + xmid, ymax, zmax -(zmax-0.2)*(dble(i-1)/dble(NSHEAR-1)), & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & 0.5_plflt, "shear for y = y#dmax#u") @@ -296,7 +296,7 @@ y_shear = 0.5*yrange*cos_omega x_shear = 0.5*xrange*sin_omega call plptex3( & - xmid, ymax -(ymax-0.2)*(dble(i)/dble(NSHEAR-1)), zmin, & + xmid, ymax -(ymax-0.2)*(dble(i-1)/dble(NSHEAR-1)), zmin, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & 0.5_plflt, "shear for z = z#dmin#u") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ai...@us...> - 2008-01-15 19:07:09
|
Revision: 8134 http://plplot.svn.sourceforge.net/plplot/?rev=8134&view=rev Author: airwin Date: 2008-01-15 11:05:41 -0800 (Tue, 15 Jan 2008) Log Message: ----------- Remove dble(...) from argument lists because that was screwing up single precision (-DPL_DOUBLE=NO) case. Modified Paths: -------------- trunk/examples/f95/x28f.f90 Modified: trunk/examples/f95/x28f.f90 =================================================================== --- trunk/examples/f95/x28f.f90 2008-01-15 18:06:06 UTC (rev 8133) +++ trunk/examples/f95/x28f.f90 2008-01-15 19:05:41 UTC (rev 8134) @@ -39,8 +39,9 @@ xmid = 0.5*(xmax + xmin), xrange = xmax - xmin, & ymin=0., ymax=1.0, ymid = 0.5*(ymax + ymin), yrange = ymax - ymin, & zmin=0., zmax=1.0, zmid = 0.5*(zmax + zmin), zrange = zmax - zmin - real(PLFLT) :: x_inclination, y_inclination, z_inclination, & - x_shear, y_shear, z_shear, & + real(PLFLT) :: y_location, z_location, & + x_inclination, y_inclination, z_inclination, & + x_shear, y_shear, z_shear, & omega, sin_omega, cos_omega, domega integer :: i, j real(PLFLT) :: radius, pitch, xpos, ypos, zpos @@ -182,8 +183,9 @@ cos_omega = cos(omega) y_shear = 0.5*yrange*sin_omega z_shear = 0.5*zrange*cos_omega + z_location = zmax -(zmax-0.2)*(dble(i-1)/dble(NROTATION-1)) call plptex3( & - xmid, ymax, zmax -(zmax-0.2)*(dble(i-1)/dble(NROTATION-1)), & + xmid, ymax, z_location, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & 0.5_plflt, "rotation for y = y#dmax#u") @@ -201,8 +203,9 @@ cos_omega = cos(omega) x_shear = 0.5*xrange*sin_omega z_shear = 0.5*zrange*cos_omega + z_location = zmax -(zmax-0.2)*((i-1)/dble(NROTATION-1)) call plptex3( & - xmax, ymid, zmax -(zmax-0.2)*((i-1)/dble(NROTATION-1)), & + xmax, ymid, z_location, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & 0.5_plflt, "rotation for x = x#dmax#u") @@ -220,8 +223,9 @@ cos_omega = cos(omega) y_shear = 0.5*yrange*cos_omega z_shear = 0.5*zrange*sin_omega + y_location = ymax -(ymax-0.2)*(dble(i-1)/dble(NROTATION-1)) call plptex3( & - xmid, ymax -(ymax-0.2)*(dble(i-1)/dble(NROTATION-1)), zmin, & + xmid, y_location, zmin, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & 0.5_plflt, "rotation for z = z#dmin#u") @@ -257,8 +261,9 @@ cos_omega = cos(omega) x_shear = 0.5*xrange*sin_omega z_shear = 0.5*zrange*cos_omega + z_location = zmax -(zmax-0.2)*(dble(i-1)/dble(NSHEAR-1)) call plptex3( & - xmid, ymax, zmax -(zmax-0.2)*(dble(i-1)/dble(NSHEAR-1)), & + xmid, ymax, z_location, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & 0.5_plflt, "shear for y = y#dmax#u") @@ -276,8 +281,9 @@ cos_omega = cos(omega) y_shear = -0.5*yrange*sin_omega z_shear = 0.5*zrange*cos_omega + z_location = zmax -(zmax-0.2)*((i-1)/dble(NSHEAR-1)) call plptex3( & - xmax, ymid, zmax -(zmax-0.2)*((i-1)/dble(NSHEAR-1)), & + xmax, ymid, z_location, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & 0.5_plflt, "shear for x = x#dmax#u") @@ -295,8 +301,9 @@ cos_omega = cos(omega) y_shear = 0.5*yrange*cos_omega x_shear = 0.5*xrange*sin_omega + y_location = ymax -(ymax-0.2)*(dble(i-1)/dble(NSHEAR-1)) call plptex3( & - xmid, ymax -(ymax-0.2)*(dble(i-1)/dble(NSHEAR-1)), zmin, & + xmid, y_location, zmin, & x_inclination, y_inclination, z_inclination, & x_shear, y_shear, z_shear, & 0.5_plflt, "shear for z = z#dmin#u") This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Alan W. I. <ir...@be...> - 2007-09-28 18:03:03
|
On 2007-09-28 05:52-0700 arj...@us... wrote: > Revision: 7896 > http://plplot.svn.sourceforge.net/plplot/?rev=7896&view=rev > Author: arjenmarkus > Date: 2007-09-28 05:52:06 -0700 (Fri, 28 Sep 2007) > > [...]Property changes on: trunk/examples/f95/x28f.f90 > ___________________________________________________________________ > Name: svn:executable > + * Arjen, from the above property change there is something set up incorrectly with your svn configuration and/or permissions on x28f.f90. Please make the properties of x28f.f90 the same as the rest of the f95 examples. To list out properties: svn proplist --verbose x2?f.f90 To delete properties: svn propdel svn:executable x28f.f90 To add properties: svn propset svn:keywords 'Author Date Id Revision' x28f.f90 svn propset svn:eol-style native x28f.f90 svn commit after you make your property changes so the rest of us don't get the above incorrect property. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); PLplot scientific plotting software package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |