From: <ai...@us...> - 2013-11-20 22:58:03
|
Revision: 12725 http://sourceforge.net/p/plplot/code/12725 Author: airwin Date: 2013-11-20 22:58:00 +0000 (Wed, 20 Nov 2013) Log Message: ----------- Extirpate anything having to do with Fortran 77. These changes were quite intrusive because I went out of my way to search for any mention of "77" in our source tree and followed up with an edit or deletion of the file where appropriate. Tested by Alan W. Irwin <ai...@us...> on Linux using the test_noninteractive target in the build tree. More comprehensive tests to follow. Modified Paths: -------------- trunk/bindings/CMakeLists.txt trunk/bindings/f95/plstubs.h trunk/bindings/f95/readme_f95.txt trunk/bindings/f95/scstubs.c trunk/bindings/f95/sfstubsf95.f90 trunk/cmake/FindPLplot.cmake trunk/cmake/modules/fortran.cmake trunk/cmake/modules/plplot_version.cmake trunk/cmake/modules/summary.cmake trunk/doc/Doxyfile.in trunk/doc/docbook/src/CMakeLists.txt trunk/doc/docbook/src/advanced.xml trunk/doc/docbook/src/api-c.xml trunk/doc/docbook/src/api.xml trunk/doc/docbook/src/fortran95.xml trunk/doc/docbook/src/intro.xml trunk/doc/docbook/src/libraries.xml trunk/doc/docbook/src/plplotdoc.xml.in trunk/examples/CMakeLists.txt trunk/examples/Makefile.examples.in trunk/examples/f95/CMakeLists.txt trunk/examples/f95/plf95demos.inc.in trunk/examples/f95/x17f.f90 trunk/examples/f95/x20f.f90 trunk/examples/plplot_configure.cmake_installed_examples.in trunk/include/pldll.h.in trunk/pkgcfg/README trunk/plplot_test/CMakeLists.txt trunk/plplot_test/plplot-test.sh.in trunk/plplot_test/test_diff.sh.in trunk/plplot_test/test_f95.sh.in trunk/scripts/check_api_completeness.sh trunk/scripts/style_source.sh Removed Paths: ------------- trunk/bindings/f77/ trunk/cmake/modules/TestF77CmdLine.cmake trunk/cmake/modules/TestF77CmdLine.f trunk/doc/docbook/src/api-fortran77.xml trunk/doc/docbook/src/fortran77.xml trunk/examples/f77/ trunk/plplot_test/test_f77.sh.in Modified: trunk/bindings/CMakeLists.txt =================================================================== --- trunk/bindings/CMakeLists.txt 2013-11-20 19:25:53 UTC (rev 12724) +++ trunk/bindings/CMakeLists.txt 2013-11-20 22:58:00 UTC (rev 12725) @@ -23,7 +23,6 @@ # python, java, lua, and octave). add_subdirectory(swig-support) add_subdirectory(c++) -add_subdirectory(f77) add_subdirectory(f95) add_subdirectory(tcl) add_subdirectory(tk) Modified: trunk/bindings/f95/plstubs.h =================================================================== --- trunk/bindings/f95/plstubs.h 2013-11-20 19:25:53 UTC (rev 12724) +++ trunk/bindings/f95/plstubs.h 2013-11-20 22:58:00 UTC (rev 12725) @@ -157,9 +157,9 @@ // Each stub must have an entry here. //-------------------------------------------------------------------------- -// N.B. By default the g77 compiler appends second underscore to name if +// N.B. By default the gfortran compiler appends second underscore to name if // the original name contains any underscore at all. According to info -// g77, "This is done to ensure compatibility with code produced by many +// gfortran, "This is done to ensure compatibility with code produced by many // UNIX Fortran compilers." However, other fortran compilers do not have // this default naming scheme so to avoid trouble I have #defined two // variations of the embedded underscore names, one with and one without @@ -174,7 +174,7 @@ #define PLADV FNAME( PLADV, pladv ) #define PLARC FNAME( PLARC, plarc ) #define PLAXES7 FNAME( PLAXES7, plaxes7 ) -#define PLBIN FNAME( PLBINF77, plbinf77 ) +#define PLBIN FNAME( PLBINF95, plbinf95 ) #define PLBOP FNAME( PLBOP, plbop ) #define PLBOX37 FNAME( PLBOX37, plbox37 ) #define PLBOX7 FNAME( PLBOX7, plbox7 ) @@ -192,18 +192,18 @@ #define PLCON17 FNAME( PLCON17, plcon17 ) #define PLCON27 FNAME( PLCON27, plcon27 ) #define PLCONT7 FNAME( PLCONT7, plcont7 ) -#define PLCPSTRM FNAME( PLCPSTRMF77, plcpstrmf77 ) +#define PLCPSTRM FNAME( PLCPSTRMF95, plcpstrmf95 ) #define PLCTIME FNAME( PLCTIME, plctime ) #define PLEND FNAME( PLEND, plend ) #define PLEND1 FNAME( PLEND1, plend1 ) #define PLENV FNAME( PLENV, plenv ) #define PLENV0 FNAME( PLENV0, plenv0 ) #define PLEOP FNAME( PLEOP, pleop ) -#define PLERRX FNAME( PLERRXF77, plerrxf77 ) -#define PLERRY FNAME( PLERRYF77, plerryf77 ) +#define PLERRX FNAME( PLERRXF95, plerrxf95 ) +#define PLERRY FNAME( PLERRYF95, plerryf95 ) #define PLFAMADV FNAME( PLFAMADV, plfamadv ) -#define PLFILL FNAME( PLFILLF77, plfillf77 ) -#define PLFILL3 FNAME( PLFILL3F77, plfill3f77 ) +#define PLFILL FNAME( PLFILLF95, plfillf95 ) +#define PLFILL3 FNAME( PLFILL3F95, plfill3f95 ) #define PLFLUSH FNAME( PLFLUSH, plflush ) #define PLFONT FNAME( PLFONT, plfont ) #define PLFONTLD FNAME( PLFONTLD, plfontld ) @@ -226,8 +226,8 @@ #define PLGLEVEL FNAME( PLGLEVEL, plglevel ) #define PLGPAGE FNAME( PLGPAGE, plgpage ) #define PLGRA FNAME( PLGRA, plgra ) -#define PLGRADIENT FNAME( PLGRADIENTF77, plgradientf77 ) -#define PLGRIDDATA FNAME( PLGRIDDATAF77, plgriddataf77 ) +#define PLGRADIENT FNAME( PLGRADIENTF95, plgradientf95 ) +#define PLGRIDDATA FNAME( PLGRIDDATAF95, plgriddataf95 ) #define PLGSPA FNAME( PLGSPA, plgspa ) #define PLGSTRM FNAME( PLGSTRM, plgstrm ) #define PLGVER7 FNAME( PLGVER7, plgver7 ) @@ -236,9 +236,9 @@ #define PLGXAX FNAME( PLGXAX, plgxax ) #define PLGYAX FNAME( PLGYAX, plgyax ) #define PLGZAX FNAME( PLGZAX, plgzax ) -#define PLHIST FNAME( PLHISTF77, plhistf77 ) +#define PLHIST FNAME( PLHISTF95, plhistf95 ) #define PLHLSRGB FNAME( PLHLSRGB, plhlsrgb ) -#define PLIMAGE FNAME( PLIMAGEF77, plimagef77 ) +#define PLIMAGE FNAME( PLIMAGEF95, plimagef95 ) #define PLIMAGEFR07 FNAME( PLIMAGEFR07, plimagefr07 ) #define PLIMAGEFR17 FNAME( PLIMAGEFR17, plimagefr17 ) #define PLIMAGEFR27 FNAME( PLIMAGEFR27, plimagefr27 ) @@ -249,23 +249,23 @@ #define PLLEGEND_CNV_TEXT FNAME( PLLEGEND07_CNV_TEXT, pllegend07_cnv_text ) #define PLLEGEND FNAME( PLLEGEND07, pllegend07 ) #define PLLIGHTSOURCE FNAME( PLLIGHTSOURCE, pllightsource ) -#define PLLINE FNAME( PLLINEF77, pllinef77 ) -#define PLLINE3 FNAME( PLLINE3F77, plline3f77 ) +#define PLLINE FNAME( PLLINEF95, pllinef95 ) +#define PLLINE3 FNAME( PLLINE3F95, plline3f95 ) #define PLLSTY FNAME( PLLSTY, pllsty ) #define PLMAP7 FNAME( PLMAP7, plmap7 ) #define PLMERIDIANS7 FNAME( PLMERIDIANS7, plmeridians7 ) -#define PLMESH FNAME( PLMESHF77, plmeshf77 ) -#define PLMESHC FNAME( PLMESHCF77, plmeshcf77 ) +#define PLMESH FNAME( PLMESHF95, plmeshf95 ) +#define PLMESHC FNAME( PLMESHCF95, plmeshcf95 ) #define PLMKSTRM FNAME( PLMKSTRM, plmkstrm ) #define PLMTEX7 FNAME( PLMTEX7, plmtex7 ) #define PLMTEX37 FNAME( PLMTEX37, plmtex37 ) -#define PLOT3D FNAME( PLOT3DF77, plot3df77 ) -#define PLOT3DC FNAME( PLOT3DCF77, plot3dcf77 ) +#define PLOT3D FNAME( PLOT3DF95, plot3df95 ) +#define PLOT3DC FNAME( PLOT3DCF95, plot3dcf95 ) #if STUB_LINKAGE == STUB_STDCALL || STUB_LINKAGE == STUB_FORTRAN -#define CALL_PLOT3DC PLOT3DCF77 +#define CALL_PLOT3DC PLOT3DCF95 #elif STUB_LINKAGE == STUB_LAU -#define CALL_PLOT3DC plot3dcf77_ +#define CALL_PLOT3DC plot3dcf95_ #else #define CALL_PLOT3DC PLOT3DC #endif @@ -273,26 +273,26 @@ #define PLPARSEOPTS7 FNAME( PLPARSEOPTS7, plparseopts7 ) #define PLPAT FNAME( PLPAT, plpat ) #define PLPATH FNAME( PLPATH, plpath ) -#define PLPOIN FNAME( PLPOINF77, plpoinf77 ) -#define PLPOIN3 FNAME( PLPOIN3F77, plpoin3f77 ) -#define PLPOLY3 FNAME( PLPOLY3F77, plpoly3f77 ) +#define PLPOIN FNAME( PLPOINF95, plpoinf95 ) +#define PLPOIN3 FNAME( PLPOIN3F95, plpoin3f95 ) +#define PLPOLY3 FNAME( PLPOLY3F95, plpoly3f95 ) #define PLPREC FNAME( PLPREC, plprec ) #define PLPSTY FNAME( PLPSTY, plpsty ) #define PLPTEX7 FNAME( PLPTEX7, plptex7 ) #define PLPTEX37 FNAME( PLPTEX37, plptex37 ) -#define PLRANDD FNAME( PLRANDDF77, plranddf77 ) +#define PLRANDD FNAME( PLRANDDF95, plranddf95 ) #define PLREPLOT FNAME( PLREPLOT, plreplot ) #define PLRGBHLS FNAME( PLRGBHLS, plrgbhls ) #define PLSCHR FNAME( PLSCHR, plschr ) -#define PLSCMAP0 FNAME( PLSCMAP0F77, plscmap0f77 ) -#define PLSCMAP0A FNAME( PLSCMAP0AF77, plscmap0af77 ) +#define PLSCMAP0 FNAME( PLSCMAP0F95, plscmap0f95 ) +#define PLSCMAP0A FNAME( PLSCMAP0AF95, plscmap0af95 ) #define PLSCMAP0N FNAME( PLSCMAP0N, plscmap0n ) -#define PLSCMAP1 FNAME( PLSCMAP1F77, plscmap1f77 ) -#define PLSCMAP1A FNAME( PLSCMAP1AF77, plscmap1af77 ) -#define PLSCMAP1L FNAME( PLSCMAP1LF77, plscmap1lf77 ) -#define PLSCMAP1L2 FNAME( PLSCMAP1L2F77, plscmap1l2f77 ) -#define PLSCMAP1LA FNAME( PLSCMAP1LAF77, plscmap1laf77 ) -#define PLSCMAP1LA2 FNAME( PLSCMAP1LA2F77, plscmap1la2f77 ) +#define PLSCMAP1 FNAME( PLSCMAP1F95, plscmap1f95 ) +#define PLSCMAP1A FNAME( PLSCMAP1AF95, plscmap1af95 ) +#define PLSCMAP1L FNAME( PLSCMAP1LF95, plscmap1lf95 ) +#define PLSCMAP1L2 FNAME( PLSCMAP1L2F95, plscmap1l2f95 ) +#define PLSCMAP1LA FNAME( PLSCMAP1LAF95, plscmap1laf95 ) +#define PLSCMAP1LA2 FNAME( PLSCMAP1LA2F95, plscmap1la2f95 ) #define PLSCMAP1N FNAME( PLSCMAP1N, plscmap1n ) #define PLSCMAP1_RANGE FNAME( PLSCMAP1_RANGE, plscmap1_range ) #define PLSCOL0 FNAME( PLSCOL0, plscol0 ) @@ -336,7 +336,7 @@ #define PLSPAGE FNAME( PLSPAGE, plspage ) #define PLSPAL07 FNAME( PLSPAL07, plspal07 ) #define PLSPAL17 FNAME( PLSPAL17, plspal17 ) -#define PLSPAUSE FNAME( PLSPAUSEF77, plspausef77 ) +#define PLSPAUSE FNAME( PLSPAUSEF95, plspausef95 ) #define PLSSTRM FNAME( PLSSTRM, plsstrm ) #define PLSSUB FNAME( PLSSUB, plssub ) #define PLSSYM FNAME( PLSSYM, plssym ) @@ -348,15 +348,15 @@ #define PLSTRING7 FNAME( PLSTRING7, plstring7 ) #define PLSTRING37 FNAME( PLSTRING37, plstring37 ) #define PLSTRIPA FNAME( PLSTRIPA, plstripa ) -#define PLSTRIPC FNAME( PLSTRIPCF77, plstripcf77 ) +#define PLSTRIPC FNAME( PLSTRIPCF95, plstripcf95 ) #define PLSTRIPD FNAME( PLSTRIPD, plstripd ) #define PLSTYL FNAME( PLSTYL, plstyl ) -#define PLSURF3D FNAME( PLSURF3DF77, plsurf3df77 ) -#define PLSVECT FNAME( PLSVECTF77, plsvectf77 ) +#define PLSURF3D FNAME( PLSURF3DF95, plsurf3df95 ) +#define PLSVECT FNAME( PLSVECTF95, plsvectf95 ) #define PLSVPA FNAME( PLSVPA, plsvpa ) #define PLSXAX FNAME( PLSXAX, plsxax ) #define PLSYAX FNAME( PLSYAX, plsyax ) -#define PLSYM FNAME( PLSYMF77, plsymf77 ) +#define PLSYM FNAME( PLSYMF95, plsymf95 ) #define PLSZAX FNAME( PLSZAX, plszax ) #define PLTEXT FNAME( PLTEXT, pltext ) #define PLTIMEFMT7 FNAME( PLTIMEFMT7, pltimefmt7 ) @@ -371,7 +371,7 @@ #define PLW3D FNAME( PLW3D, plw3d ) #define PLWIDTH FNAME( PLWIDTH, plwidth ) #define PLWIND FNAME( PLWIND, plwind ) -#define PLXORMOD FNAME( PLXORMODF77, plxormodf77 ) +#define PLXORMOD FNAME( PLXORMODF95, plxormodf95 ) #ifdef PL_DEPRECATE #define PLRGB FNAME( PLRGB, plrgb ) Modified: trunk/bindings/f95/readme_f95.txt =================================================================== --- trunk/bindings/f95/readme_f95.txt 2013-11-20 19:25:53 UTC (rev 12724) +++ trunk/bindings/f95/readme_f95.txt 2013-11-20 22:58:00 UTC (rev 12725) @@ -7,7 +7,6 @@ ------------ The Fortran 95 bindings for PLplot have been set up with the following considerations in mind: -- reuse the bindings for FORTRAN 77 if possible - provide alternative calls for the various routines to take advantage of the features of Fortran 95, most notably, to simplify the interface - provide a module that takes care of all the details @@ -90,7 +89,7 @@ real(kind=plflt), dimension(:) :: x, y ! - ! Fortran 95, method 1 (compatible with FORTRAN 77) + ! Fortran 95, method 1 ! icenter = 1 nbin = size(x) @@ -116,8 +115,6 @@ Method 2 is preferred, as it is most "Fortran 95" in character. - - Linking DLLs on Windows ----------------------- On Windows it is necessary to specify which routines and functions in Modified: trunk/bindings/f95/scstubs.c =================================================================== --- trunk/bindings/f95/scstubs.c 2013-11-20 19:25:53 UTC (rev 12724) +++ trunk/bindings/f95/scstubs.c 2013-11-20 22:58:00 UTC (rev 12725) @@ -37,7 +37,7 @@ static void ( STDCALL *plmapform )( PLINT *, PLFLT *, PLFLT * ); // Note: slightly different prototype than // (*mapform)! // Slightly different to (*label_func) as we don't support PLPointer for -// additional data in f77. +// additional data in f95. // Note the hidden argument! static void ( STDCALL *pllabelfunc )( PLINT *, PLFLT *, char *, PLINT *, PLINT ); @@ -1347,7 +1347,6 @@ c_plslabelfunc( NULL, NULL ); } -// Provided for symmetry with FORTRAN 77 void PLSLABELFUNC_NONE( void ) { @@ -1462,7 +1461,6 @@ c_plstransform( NULL, NULL ); } -// Provided for symmetry with FORTRAN 77 void PLSTRANSFORM3( void ) { Modified: trunk/bindings/f95/sfstubsf95.f90 =================================================================== --- trunk/bindings/f95/sfstubsf95.f90 2013-11-20 19:25:53 UTC (rev 12724) +++ trunk/bindings/f95/sfstubsf95.f90 2013-11-20 22:58:00 UTC (rev 12725) @@ -23,15 +23,12 @@ ! ! ! This file contains the interfaces for Fortran 95: -! - it includes the actual FORTRAN routines from the FORTRAN 77 bindings +! - it includes the actual FORTRAN routines from the FORTRAN 95 bindings ! - it includes interfaces to the C routines from these bindings ! - it defines a few Fortran 95 specific items and interfaces ! ! NB -! This module is written in fixed form, because that way we can reuse -! the FORTRAN 77 bindings (including the original file is not possible: -! the "end" statement has to be replaced by the "end subroutine" -! statement) +! This module is written in fixed form. ! To enable a redefinition of certain interfaces, we actually have ! two modules. ! @@ -1013,7 +1010,7 @@ real(kind=plflt), dimension(:) :: x, y integer :: center - call plbinf77( size(x), x, y, center ) + call plbinf95( size(x), x, y, center ) end subroutine plbin subroutine plcolorbar_1( p_colorbar_width, p_colorbar_height, & @@ -1097,38 +1094,38 @@ integer :: iflags iflags = convert_to_int( flags ) - call plcpstrmf77( iplsr, iflags ) + call plcpstrmf95( iplsr, iflags ) end subroutine plcpstrm subroutine plerrx( xmin, xmax, y ) real(kind=plflt), dimension(:) :: xmin, xmax, y - call plerrxf77( size(xmin), xmin, xmax, y ) + call plerrxf95( size(xmin), xmin, xmax, y ) end subroutine plerrx subroutine plerry( x, ymin, ymax ) real(kind=plflt), dimension(:) :: x, ymin, ymax - call plerryf77( size(x), x, ymin, ymax ) + call plerryf95( size(x), x, ymin, ymax ) end subroutine plerry subroutine plfill( x, y ) real(kind=plflt), dimension(:) :: x, y - call plfillf77( size(x), x, y ) + call plfillf95( size(x), x, y ) end subroutine plfill subroutine plfill3( x, y, z ) real(kind=plflt), dimension(:) :: x, y, z - call plfill3f77( size(x), x, y, z ) + call plfill3f95( size(x), x, y, z ) end subroutine plfill3 subroutine plgradient( x, y, angle ) real(kind=plflt), dimension(:) :: x, y real(kind=plflt) :: angle - call plgradientf77( size(x), x, y, angle ) + call plgradientf95( size(x), x, y, angle ) end subroutine plgradient subroutine plgriddata( x, y, z, xg, yg, zg, type, data ) @@ -1137,7 +1134,7 @@ real(kind=plflt) :: data integer :: type - call plgriddataf77( x, y, z, size(x), xg, size(xg), yg, size(yg), zg, & + call plgriddataf95( x, y, z, size(x), xg, size(xg), yg, size(yg), zg, & type, data ) return @@ -1148,7 +1145,7 @@ real(kind=plflt) :: datmin, datmax integer :: nbin, oldwin - call plhistf77( size(data), data, datmin, datmax, nbin, oldwin ) + call plhistf95( size(data), data, datmin, datmax, nbin, oldwin ) end subroutine plhist ! subroutine plimagefr( idata, xmin, xmax, ymin, ymax, zmin, zmax, & @@ -1162,7 +1159,7 @@ ! ! nx = size(idata,1) ! ny = size(idata,2) -! call plimagefrf77( idata, nx, ny, xmin, xmax, ymin, ymax, zmin, zmax, & +! call plimagefrf95( idata, nx, ny, xmin, xmax, ymin, ymax, zmin, zmax, & ! dxmin, dxmax, dymin, dymax, valuemin, valuemax ) ! end subroutine plimagefr @@ -1176,7 +1173,7 @@ nx = size(idata,1) ny = size(idata,2) - call plimagef77( idata, nx, ny, xmin, xmax, ymin, ymax, zmin, zmax, & + call plimagef95( idata, nx, ny, xmin, xmax, ymin, ymax, zmin, zmax, & dxmin, dxmax, dymin, dymax ) end subroutine plimage @@ -1279,13 +1276,13 @@ subroutine plline( x, y ) real(kind=plflt), dimension(:) :: x, y - call pllinef77( size(x), x, y ) + call pllinef95( size(x), x, y ) end subroutine plline subroutine plline3( x, y, z ) real(kind=plflt), dimension(:) :: x, y, z - call plline3f77( size(x), x, y, z ) + call plline3f95( size(x), x, y, z ) end subroutine plline3 subroutine plmap1(mapform,mapname,minx,maxx,miny,maxy) @@ -1347,7 +1344,7 @@ real(kind=plflt), dimension(:) :: x, y real(kind=plflt), dimension(:,:) :: z - call plmeshf77( x, y, z, size(x), size(y), opt, size(x)) + call plmeshf95( x, y, z, size(x), size(y), opt, size(x)) end subroutine plmesh @@ -1356,7 +1353,7 @@ real(kind=plflt), dimension(:) :: x, y, clevel real(kind=plflt), dimension(:,:) :: z - call plmeshcf77( x, y, z, size(x), size(y), opt, & + call plmeshcf95( x, y, z, size(x), size(y), opt, & clevel, size(clevel), size(x)) end subroutine plmeshc @@ -1369,7 +1366,7 @@ integer :: iside iside = convert_to_int(side) - call plot3df77( x, y, z, size(x), size(y), opt, iside, size(x)) + call plot3df95( x, y, z, size(x), size(y), opt, iside, size(x)) end subroutine plot3d @@ -1378,7 +1375,7 @@ real(kind=plflt), dimension(:) :: x, y, clevel real(kind=plflt), dimension(:,:) :: z - call plot3dcf77( x, y, z, size(x), size(y), opt, clevel, & + call plot3dcf95( x, y, z, size(x), size(y), opt, clevel, & size(clevel), size(x)) end subroutine plot3dc @@ -1389,7 +1386,7 @@ integer :: ipause ipause = convert_to_int( lpause ) - call plspausef77( ipause ) + call plspausef95( ipause ) end subroutine plspause subroutine plsurf3d( x, y, z, opt, clevel ) @@ -1397,7 +1394,7 @@ real(kind=plflt), dimension(:) :: x, y, clevel real(kind=plflt), dimension(:,:) :: z - call plsurf3df77( x, y, z, size(x), size(y), opt, clevel, & + call plsurf3df95( x, y, z, size(x), size(y), opt, clevel, & size(clevel), size(x)) end subroutine plsurf3d @@ -1406,14 +1403,14 @@ integer :: code real(kind=plflt), dimension(:) :: x, y - call plpoinf77( size(x), x, y, code ) + call plpoinf95( size(x), x, y, code ) end subroutine plpoin subroutine plpoin3( x, y, z, code ) integer :: code real(kind=plflt), dimension(:) :: x, y, z - call plpoin3f77( size(x), x, y, z, code ) + call plpoin3f95( size(x), x, y, z, code ) end subroutine plpoin3 subroutine plpoly3( x, y, z, draw, ifcc ) @@ -1429,40 +1426,40 @@ do i = 1,size(draw) idraw(i) = convert_to_int( draw(i) ) enddo - call plpoly3f77( size(x), x, y, z, idraw, iifcc ) + call plpoly3f95( size(x), x, y, z, idraw, iifcc ) end subroutine plpoly3 real (kind=plflt) function plrandd() - external plranddf77 - real(kind=plflt) :: plranddf77 + external plranddf95 + real(kind=plflt) :: plranddf95 - plrandd = plranddf77() + plrandd = plranddf95() end function plrandd subroutine plscmap0( r, g, b ) integer, dimension(:) :: r, g, b - call plscmap0f77( r, g, b, size(r) ) + call plscmap0f95( r, g, b, size(r) ) end subroutine plscmap0 subroutine plscmap0a( r, g, b, a ) integer, dimension(:) :: r, g, b real(kind=plflt), dimension(:) :: a - call plscmap0af77( r, g, b, a, size(r) ) + call plscmap0af95( r, g, b, a, size(r) ) end subroutine plscmap0a subroutine plscmap1( r, g, b ) integer, dimension(:) :: r, g, b - call plscmap1f77( r, g, b, size(r) ) + call plscmap1f95( r, g, b, size(r) ) end subroutine plscmap1 subroutine plscmap1a( r, g, b, a ) integer, dimension(:) :: r, g, b real(kind=plflt), dimension(:) :: a - call plscmap1af77( r, g, b, a, size(r) ) + call plscmap1af95( r, g, b, a, size(r) ) end subroutine plscmap1a subroutine plscmap1l( rgbtype, intensity, coord1, coord2, coord3, alt_hue_path) @@ -1478,7 +1475,7 @@ do i = 1,size(alt_hue_path) ialt_hue_path(i) = convert_to_int( alt_hue_path(i) ) enddo - call plscmap1lf77( type, size(intensity), intensity, coord1, coord2, coord3, ialt_hue_path ) + call plscmap1lf95( type, size(intensity), intensity, coord1, coord2, coord3, ialt_hue_path ) end subroutine plscmap1l subroutine plscmap1l2( rgbtype, intensity, coord1, coord2, coord3) @@ -1488,7 +1485,7 @@ integer :: type type = convert_to_int( rgbtype ) - call plscmap1l2f77( type, size(intensity), intensity, coord1, coord2, coord3) + call plscmap1l2f95( type, size(intensity), intensity, coord1, coord2, coord3) end subroutine plscmap1l2 subroutine plscmap1la( rgbtype, intensity, coord1, coord2, coord3, a, alt_hue_path) @@ -1504,7 +1501,7 @@ do i = 1,size(alt_hue_path) ialt_hue_path(i) = convert_to_int( alt_hue_path(i) ) enddo - call plscmap1laf77( type, size(intensity), intensity, coord1, coord2, coord3, a, ialt_hue_path ) + call plscmap1laf95( type, size(intensity), intensity, coord1, coord2, coord3, a, ialt_hue_path ) end subroutine plscmap1la subroutine plscmap1la2( rgbtype, intensity, coord1, coord2, coord3, a) @@ -1514,7 +1511,7 @@ integer :: type type = convert_to_int( rgbtype ) - call plscmap1la2f77( type, size(intensity), intensity, coord1, coord2, coord3, a) + call plscmap1la2f95( type, size(intensity), intensity, coord1, coord2, coord3, a) end subroutine plscmap1la2 subroutine plstripc(id, xspec, yspec, xmin, xmax, xjump, & @@ -1553,7 +1550,7 @@ s7 = transfer( string7, s7 ) s8 = transfer( string8, s8 ) s9 = transfer( string9, s9 ) - call plstripcf77(id, s1, s2, xmin, xmax, xjump, & + call plstripcf95(id, s1, s2, xmin, xmax, xjump, & ymin, ymax, xlpos, ylpos, iy_ascl, iacc, & colbox, collab, colline, styline, & s3, s4, s5, s6, & @@ -1567,21 +1564,21 @@ integer ifill ifill = convert_to_int(fill) - call plsvectf77( arrowx, arrowy, size(arrowx), ifill ) + call plsvectf95( arrowx, arrowy, size(arrowx), ifill ) end subroutine plsvect subroutine plsym( x, y, code ) integer :: code real(kind=plflt), dimension(:) :: x, y - call plsymf77( size(x), x, y, code ) + call plsymf95( size(x), x, y, code ) end subroutine plsym subroutine plxormod( mode, status ) logical :: mode, status integer :: imode, istatus imode = convert_to_int(mode) - call plxormodf77( imode, istatus) + call plxormodf95( imode, istatus) status = convert_to_log(istatus) end subroutine plxormod end module plplot Modified: trunk/cmake/FindPLplot.cmake =================================================================== --- trunk/cmake/FindPLplot.cmake 2013-11-20 19:25:53 UTC (rev 12724) +++ trunk/cmake/FindPLplot.cmake 2013-11-20 22:58:00 UTC (rev 12725) @@ -36,15 +36,6 @@ set( PLplot_LIBRARIES ${PLplot_LIBRARIES} ${PLplot_cxx_LIBRARY} ) endif( PLplot_cxx_LIBRARY ) - # find f77 bindings - find_library( PLplot_f77_LIBRARY - NAMES plplotf77d - PATHS /usr/local/lib /usr/lib - ) - if( PLplot_f77_LIBRARY ) - set( PLplot_LIBRARIES ${PLplot_LIBRARIES} ${PLplot_f77_LIBRARY} ) - endif( PLplot_f77_LIBRARY ) - # find f90 bindings find_library( PLplot_f90_LIBRARY NAMES plplotf90d Deleted: trunk/cmake/modules/TestF77CmdLine.cmake =================================================================== --- trunk/cmake/modules/TestF77CmdLine.cmake 2013-11-20 19:25:53 UTC (rev 12724) +++ trunk/cmake/modules/TestF77CmdLine.cmake 2013-11-20 22:58:00 UTC (rev 12725) @@ -1,53 +0,0 @@ -# cmake/modules/TestF77CmdLine.cmake -# -# F77 binding configuration -# -# Copyright (C) 2006 Andrew Ross -# -# This file is part of PLplot. -# -# PLplot is free software; you can redistribute it and/or modify -# it under the terms of the GNU Library General Public License as published -# by the Free Software Foundation; version 2 of the License. -# -# 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 the file PLplot; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - -# Check if iargc() works -IF(NOT DEFINED CMAKE_F77_CMD_LINE) - MESSAGE(STATUS "Check for f77 command line support") - TRY_COMPILE(CMAKE_F77_CMD_LINE - ${CMAKE_BINARY_DIR} - ${CMAKE_SOURCE_DIR}/cmake/modules/TestF77CmdLine.f - OUTPUT_VARIABLE OUTPUT) - -# Iargc support is broken for with g77 and shared libraries on cygwin -# (as of 2005-12-05, but this problem has been known -# for several years, see http://cygwin.com/ml/cygwin/2005-11/msg00891.html). - IF (CYGWIN AND CMAKE_Fortran_COMPILER_ID MATCHES ".*g77.*") - MESSAGE(STATUS "Check for f77 command line support - turning off - ${CMAKE_Fortran_COMPILER_ID} ") - SET (CMAKE_F77_CMD_LINE OFF) - ENDIF (CYGWIN AND CMAKE_Fortran_COMPILER_ID MATCHES ".*g77.*") - - IF (CMAKE_F77_CMD_LINE) - MESSAGE(STATUS "Check for f77 command line support - found") - SET (F77_CMD_LINE 1 CACHE INTERNAL - "Does the f77 compiler support command line arguments") - FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeOutput.log - "Determining if the f77 compiler has command line argument support passed with " - "the following output:\n${OUTPUT}\n\n") - ELSE (CMAKE_F77_CMD_LINE) - MESSAGE(STATUS "Check for f77 command line support - not found") - SET (F77_CMD_LINE 0 CACHE INTERNAL - "Does the f77 compiler support command line arguments") - FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log - "Determining if the f77 compiler has command line argument support failed with " - "the following output:\n${OUTPUT}\n\n") - ENDIF (CMAKE_F77_CMD_LINE) -ENDIF(NOT DEFINED CMAKE_F77_CMD_LINE) Deleted: trunk/cmake/modules/TestF77CmdLine.f =================================================================== --- trunk/cmake/modules/TestF77CmdLine.f 2013-11-20 19:25:53 UTC (rev 12724) +++ trunk/cmake/modules/TestF77CmdLine.f 2013-11-20 22:58:00 UTC (rev 12725) @@ -1,21 +0,0 @@ - implicit none - character*100 command - integer narg, iargc -c get number of command-line arguments - narg = iargc() -c get command name. Apparently this does not always give back the -c command name on all systems, but all that is required for the -c getarg(0 call by the interface logic is that a valid string is -c returned. (All we are really interested in is the subsequent -c arguments.) - call getarg(0, command) - if(narg.gt.0) call getarg(1, command) -c ran into one case (Cygwin) where under certain badly linked -c circumstances, iargc() could return -1 - if(narg.lt.0) then - call exit(0) - else - call exit(1) - endif - stop - end Modified: trunk/cmake/modules/fortran.cmake =================================================================== --- trunk/cmake/modules/fortran.cmake 2013-11-20 19:25:53 UTC (rev 12724) +++ trunk/cmake/modules/fortran.cmake 2013-11-20 22:58:00 UTC (rev 12725) @@ -1,6 +1,6 @@ # cmake/modules/fortran.cmake # -# F77/F95 binding configuration +# F95 binding configuration # # Copyright (C) 2006 Andrew Ross # @@ -19,41 +19,33 @@ # along with the file PLplot; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -# Module for determining F77/F95 bindings configuration options +# Module for determining F95 bindings configuration options # Options to enable Fortran bindings if(DEFAULT_NO_BINDINGS) - option(ENABLE_f77 "Enable f77 bindings" OFF) option(ENABLE_f95 "Enable f95 bindings" OFF) else(DEFAULT_NO_BINDINGS) - option(ENABLE_f77 "Enable f77 bindings" OFF) option(ENABLE_f95 "Enable f95 bindings" ON) endif(DEFAULT_NO_BINDINGS) -if(ENABLE_f77 OR ENABLE_f95) - set(ENABLE_fortran ON) -endif(ENABLE_f77 OR ENABLE_f95) - -if(ENABLE_fortran AND NOT PLPLOT_Fortran_COMPILER_WORKS) +if(Enable_f95 AND NOT PLPLOT_Fortran_COMPILER_WORKS) workaround_9220(Fortran PLPLOT_Fortran_COMPILER_WORKS) if(NOT PLPLOT_Fortran_COMPILER_WORKS) message(STATUS "WARNING: no working Fortran compiler so disabling Fortran bindings and examples.") - set(ENABLE_f77 OFF CACHE BOOL "Enable f77 bindings" FORCE) set(ENABLE_f95 OFF CACHE BOOL "Enable f95 bindings" FORCE) endif(NOT PLPLOT_Fortran_COMPILER_WORKS) -endif(ENABLE_fortran AND NOT PLPLOT_Fortran_COMPILER_WORKS) +endif(Enable_f95 AND NOT PLPLOT_Fortran_COMPILER_WORKS) -if(ENABLE_f77 OR ENABLE_f95) +if(ENABLE_f95) # Find and check Fortran compiler. enable_language(Fortran OPTIONAL) if(NOT CMAKE_Fortran_COMPILER_WORKS) message(STATUS "WARNING: no working Fortran compiler so disabling Fortran bindings and examples.") - set(ENABLE_f77 OFF CACHE BOOL "Enable f77 bindings" FORCE) set(ENABLE_f95 OFF CACHE BOOL "Enable f95 bindings" FORCE) endif(NOT CMAKE_Fortran_COMPILER_WORKS) -endif(ENABLE_f77 OR ENABLE_f95) +endif(ENABLE_f95) -if(ENABLE_f77 OR ENABLE_f95) +if(ENABLE_f95) # Don't compile Fortran 95 binding if compiler doesn't support it if(ENABLE_f95 AND NOT CMAKE_Fortran_COMPILER_SUPPORTS_F90) message(STATUS "WARNING: " @@ -62,25 +54,17 @@ set(ENABLE_f95 OFF CACHE BOOL "Enable f95 bindings" FORCE) endif(ENABLE_f95 AND NOT CMAKE_Fortran_COMPILER_SUPPORTS_F90) - # Set installation location for f77 include files - set(F77_INCLUDE_DIR ${LIB_DIR}/fortran/include/${PACKAGE} - CACHE PATH "installation location for f95 modules" - ) - # Set installation location for f95 modules. set(F95_MOD_DIR ${LIB_DIR}/fortran/modules/${PACKAGE} CACHE PATH "installation location for f95 modules" ) - # Check if f77/f95 style command line parsing is possible - include(TestF77CmdLine) - # Check if isnan is available as a fortran function include(TestFortranIsnan) # Determine which Fortran compiler we have. We do not need to # this for all compilers, just the ones that have a test in - # bindings/f77/plstubs.h and bindings/f95/plstubs.h + # bindings/f95/plstubs.h message(STATUS "NOTICE: " "Found: ${CMAKE_Fortran_COMPILER}") if(CMAKE_Fortran_COMPILER MATCHES ".*/ifort.*") @@ -101,4 +85,4 @@ set(TARGET_FORTRAN "CVF" CACHE STRING "Target Fortran Compiler") endif(CMAKE_Fortran_COMPILER MATCHES ".*/F90.*" AND WIN32_OR_CYGWIN) -endif(ENABLE_f77 OR ENABLE_f95) +endif(ENABLE_f95) Modified: trunk/cmake/modules/plplot_version.cmake =================================================================== --- trunk/cmake/modules/plplot_version.cmake 2013-11-20 19:25:53 UTC (rev 12724) +++ trunk/cmake/modules/plplot_version.cmake 2013-11-20 22:58:00 UTC (rev 12725) @@ -52,9 +52,6 @@ set(plplotdmd_SOVERSION 1) set(plplotdmd_VERSION ${plplotdmd_SOVERSION}.0.0) -set(plplotf77_SOVERSION 9) -set(plplotf77_VERSION ${plplotf77_SOVERSION}.1.1) - set(plplotf95_SOVERSION 10) set(plplotf95_VERSION ${plplotf95_SOVERSION}.0.0) Modified: trunk/cmake/modules/summary.cmake =================================================================== --- trunk/cmake/modules/summary.cmake 2013-11-20 19:25:53 UTC (rev 12724) +++ trunk/cmake/modules/summary.cmake 2013-11-20 22:58:00 UTC (rev 12725) @@ -74,13 +74,13 @@ CMAKE_CXX_COMPILER CMAKE_CXX_FLAGS: ${CMAKE_CXX_COMPILER} ${CMAKE_CXX_FLAGS}") endif(CMAKE_CXX_COMPILER_WORKS) -if(ENABLE_f77 OR ENABLE_f95) +if(ENABLE_f95) set( _output_results "${_output_results} CMAKE_Fortran_COMPILER CMAKE_Fortran_FLAGS: ${CMAKE_Fortran_COMPILER} ${CMAKE_Fortran_FLAGS} Target Fortran: ${TARGET_FORTRAN}") -endif(ENABLE_f77 OR ENABLE_f95) +endif(ENABLE_f95) if(ENABLE_python) set( @@ -110,15 +110,23 @@ HAVE_AGG: ${HAVE_AGG} HAVE_SHAPELIB: ${HAVE_SHAPELIB} Language Bindings: -ENABLE_f77: ${ENABLE_f77} ENABLE_f95: ${ENABLE_f95} -ENABLE_cxx: ${ENABLE_cxx} ENABLE_java: ${ENABLE_java} -ENABLE_python: ${ENABLE_python} ENABLE_octave: ${ENABLE_octave} -ENABLE_tcl: ${ENABLE_tcl} ENABLE_itcl: ${ENABLE_itcl} -ENABLE_tk: ${ENABLE_tk} ENABLE_itk: ${ENABLE_itk} -ENABLE_pdl: ${ENABLE_pdl} ENABLE_wxwidgets: ${ENABLE_wxwidgets} -ENABLE_ada: ${ENABLE_ada} ENABLE_d: ${ENABLE_d} -ENABLE_ocaml: ${ENABLE_ocaml} ENABLE_lua: ${ENABLE_lua} -ENABLE_qt: ${ENABLE_qt} ENABLE_pyqt4: ${ENABLE_pyqt4} +ENABLE_ada: ${ENABLE_ada} +ENABLE_cxx: ${ENABLE_cxx} +ENABLE_d: ${ENABLE_d} +ENABLE_f95: ${ENABLE_f95} +ENABLE_java: ${ENABLE_java} +ENABLE_lua: ${ENABLE_lua} +ENABLE_ocaml: ${ENABLE_ocaml} +ENABLE_octave: ${ENABLE_octave} +ENABLE_pdl: ${ENABLE_pdl} +ENABLE_python: ${ENABLE_python} +ENABLE_qt: ${ENABLE_qt} +ENABLE_pyqt4: ${ENABLE_pyqt4} +ENABLE_tcl: ${ENABLE_tcl} +ENABLE_itcl: ${ENABLE_itcl} +ENABLE_tk: ${ENABLE_tk} +ENABLE_itk: ${ENABLE_itk} +ENABLE_wxwidgets: ${ENABLE_wxwidgets} ") message("${_output_results}") endmacro(summary) Modified: trunk/doc/Doxyfile.in =================================================================== --- trunk/doc/Doxyfile.in 2013-11-20 19:25:53 UTC (rev 12724) +++ trunk/doc/Doxyfile.in 2013-11-20 22:58:00 UTC (rev 12725) @@ -705,8 +705,7 @@ # Note that relative paths are relative to the directory from which doxygen is # run. -EXCLUDE = "@CMAKE_BINARY_DIR@/bindings/f77/plplot_parameters.h" \ - "@CMAKE_SOURCE_DIR@/bindings/f95/plplot_parameters.h" \ +EXCLUDE = "@CMAKE_SOURCE_DIR@/bindings/f95/plplot_parameters.h" \ "@CMAKE_BINARY_DIR@/bindings/f95/plplot_parameters.h" \ "@CMAKE_SOURCE_DIR@/bindings/python/plplot.py" \ "@CMAKE_BINARY_DIR@/bindings/python/plplot.py" Modified: trunk/doc/docbook/src/CMakeLists.txt =================================================================== --- trunk/doc/docbook/src/CMakeLists.txt 2013-11-20 19:25:53 UTC (rev 12724) +++ trunk/doc/docbook/src/CMakeLists.txt 2013-11-20 22:58:00 UTC (rev 12725) @@ -47,14 +47,12 @@ ${CMAKE_CURRENT_SOURCE_DIR}/api.xml ${CMAKE_CURRENT_SOURCE_DIR}/api-c.xml ${CMAKE_CURRENT_SOURCE_DIR}/api-compat.xml - ${CMAKE_CURRENT_SOURCE_DIR}/api-fortran77.xml ${CMAKE_CURRENT_SOURCE_DIR}/api-fortran95.xml ${CMAKE_CURRENT_SOURCE_DIR}/api-internal.xml ${CMAKE_CURRENT_SOURCE_DIR}/api-obsolete.xml ${CMAKE_CURRENT_SOURCE_DIR}/bibliography.xml ${CMAKE_CURRENT_SOURCE_DIR}/c.xml ${CMAKE_CURRENT_SOURCE_DIR}/deploying.xml - ${CMAKE_CURRENT_SOURCE_DIR}/fortran77.xml ${CMAKE_CURRENT_SOURCE_DIR}/fortran95.xml ${CMAKE_CURRENT_SOURCE_DIR}/cplus.xml ${CMAKE_CURRENT_SOURCE_DIR}/drivers.xml Modified: trunk/doc/docbook/src/advanced.xml =================================================================== --- trunk/doc/docbook/src/advanced.xml 2013-11-20 19:25:53 UTC (rev 12724) +++ trunk/doc/docbook/src/advanced.xml 2013-11-20 22:58:00 UTC (rev 12725) @@ -2553,7 +2553,7 @@ use non-continuous line styles. Further, one may specify arbitrary coordinate mappings from array indices to world coordinates, such as for contours in a polar coordinate system. In this case it is best - to draw the distinction between the C, Fortran 95, and Fortran 77 + to draw the distinction between the C and Fortran 95 interfaces so these are handled in turn. </para> @@ -2656,194 +2656,6 @@ </para> </sect2> - <sect2 id="contour-plots-f77"> - <title>Contour Plots from the Fortran 77 interface</title> - - <para> - The routines mentioned above are not recommended for use directly - from Fortran 77 due to the need to pass a function pointer. That is, - the transformation function is written in C and can not generally - be changed by the user. The call for routine &plcontfortran77; from - Fortran 77 is then: - </para> - - <para> - <funcsynopsis> - <funcprototype> - <funcdef> - call <function>plcont</function> - </funcdef> - <paramdef><parameter>z</parameter></paramdef> - <paramdef><parameter>nx</parameter></paramdef> - <paramdef><parameter>ny</parameter></paramdef> - <paramdef><parameter>kx</parameter></paramdef> - <paramdef><parameter>lx</parameter></paramdef> - <paramdef><parameter>ky</parameter></paramdef> - <paramdef><parameter>ly</parameter></paramdef> - <paramdef><parameter>clevel</parameter></paramdef> - <paramdef><parameter>nlevel</parameter></paramdef> - </funcprototype> - </funcsynopsis> - </para> - - <para> - When called from Fortran 77, this routine has the same effect as when invoked - from C. The interpretation of all parameters (see &plcont;) is also the - same except there is no transformation function supplied as the last - parameter. Instead, a 6-element array specifying coefficients to use in the - transformation is supplied via the named common block - <literal>plplot</literal> (see code). - Since this approach is somewhat - inflexible, the user is recommended to call either of &plcon0;, &plcon1;, or - &plcon2; instead for Fortran 77. - </para> - - <para> - The three routines recommended for use from Fortran 77 are &plcon0;, - &plcon1;, and &plcon2;. These routines are similar to existing - commercial plot package contour plotters in that they offer - successively higher complexity, with &plcon0; utilizing no - transformation arrays, while those used by &plcon1; and &plcon2; - are one and two dimensional, respectively. The call syntax for - each is - </para> - - <para> - <funcsynopsis> - <funcprototype> - <funcdef> - call <function>plcon0</function> - </funcdef> - <paramdef><parameter>z</parameter></paramdef> - <paramdef><parameter>nx</parameter></paramdef> - <paramdef><parameter>ny</parameter></paramdef> - <paramdef><parameter>kx</parameter></paramdef> - <paramdef><parameter>lx</parameter></paramdef> - <paramdef><parameter>ky</parameter></paramdef> - <paramdef><parameter>ly</parameter></paramdef> - <paramdef><parameter>clevel</parameter></paramdef> - <paramdef><parameter>nlevel</parameter></paramdef> - </funcprototype> - </funcsynopsis> - - <funcsynopsis> - <funcprototype> - <funcdef> - call <function>plcon1</function> - </funcdef> - <paramdef><parameter>z</parameter></paramdef> - <paramdef><parameter>nx</parameter></paramdef> - <paramdef><parameter>ny</parameter></paramdef> - <paramdef><parameter>kx</parameter></paramdef> - <paramdef><parameter>lx</parameter></paramdef> - <paramdef><parameter>ky</parameter></paramdef> - <paramdef><parameter>ly</parameter></paramdef> - <paramdef><parameter>clevel</parameter></paramdef> - <paramdef><parameter>nlevel</parameter></paramdef> - <paramdef><parameter>xg1</parameter></paramdef> - <paramdef><parameter>yg1</parameter></paramdef> - </funcprototype> - </funcsynopsis> - - <funcsynopsis> - <funcprototype> - <funcdef> - call <function>plcon2</function> - </funcdef> - <paramdef><parameter>z</parameter></paramdef> - <paramdef><parameter>nx</parameter></paramdef> - <paramdef><parameter>ny</parameter></paramdef> - <paramdef><parameter>kx</parameter></paramdef> - <paramdef><parameter>lx</parameter></paramdef> - <paramdef><parameter>ky</parameter></paramdef> - <paramdef><parameter>ly</parameter></paramdef> - <paramdef><parameter>clevel</parameter></paramdef> - <paramdef><parameter>nlevel</parameter></paramdef> - <paramdef><parameter>xg2</parameter></paramdef> - <paramdef><parameter>yg2</parameter></paramdef> - </funcprototype> - </funcsynopsis> - </para> - - <para> - The &plcon0; routine is implemented via a call to &plcont; with a - very simple (identity) transformation function, while &plcon1; and - &plcon2; use interpolating transformation functions as well as - a call to - &plcont;. - </para> - - <para> - The transformation arrays are used by these routines to specify a - mapping between the computational coordinate system and the - physical one. For example, the transformation to polar coordinates - might look like: - </para> - - <para> - <programlisting> do i = 1, NX - do j = 1, NY - xg(i, j) = r(i) * cos( theta(j) ) - yg(i, j) = r(i) * sin( theta(j) ) - enddo - enddo</programlisting> - </para> - - <para> - assuming the user had already set up arrays <literal>r</literal> - and <literal>theta</literal> to specify the (r, θ) values at - the gridpoints in his system. For this example, it is recommended - that the user add an additional cell in theta such that - <literal>xg(i, NY+1) = xg(i, 1)</literal> and <literal>yg(i, NY+1) - = yg(i, 1)</literal> so that the contours show the proper periodic - behavior in θ (see also example program 9). - </para> - - <para> - The transformation function not only specifies the transformation - at grid points, but also at intermediate locations, via linear - interpolation. For example, in the <literal>pltr1</literal> - transformation function used by &plcon1;, the 1-d interpolation to - get <literal>tx</literal> as a function of <literal>x</literal> - looks like (in C): - </para> - - <para> - <programlisting> ul = (PLINT)x; - ur = ul + 1; - du = x - ul; - - xl = *(xg+ul); - xr = *(xg+ur); - - *tx = xl * (1-du) + xr * du;</programlisting> - </para> - - <para> - while in Fortran 77 this might look like: - </para> - - <para> - <programlisting> lxl = x - lxr = lxl + 1 - dx = x - lxl - - xl = xg(lxl) - xr = xg(lxr) - - tx = xl * (1-dx) + xr * dx</programlisting> - </para> - - </sect2> - - <sect2 id="shade-plots-f77"> - <title>Shade Plots from the Fortran 77 interface</title> - <para> - NEEDS DOCUMENTATION. Follow the plshade* and plshades* usage in - <filename>examples/f77/x??f.f</filename>. - </para> - </sect2> - </sect1> <sect1 id="legends"> Modified: trunk/doc/docbook/src/api-c.xml =================================================================== --- trunk/doc/docbook/src/api-c.xml 2013-11-20 19:25:53 UTC (rev 12724) +++ trunk/doc/docbook/src/api-c.xml 2013-11-20 22:58:00 UTC (rev 12725) @@ -92,7 +92,7 @@ </variablelist> <para> - This function is currently available in C, f77, f95 and python. + This function is currently available in C, f95 and python. </para> <para> Deleted: trunk/doc/docbook/src/api-fortran77.xml =================================================================== --- trunk/doc/docbook/src/api-fortran77.xml 2013-11-20 19:25:53 UTC (rev 12724) +++ trunk/doc/docbook/src/api-fortran77.xml 2013-11-20 22:58:00 UTC (rev 12725) @@ -1,1024 +0,0 @@ -<!-- -*- mode: nxml -*- --> -<!-- - api-fortran77.xml: "The Specialized Fortran 77 API for PLplot" chapter - -Copyright (C) 1994 Geoffrey Furnish and Maurice LeBrun -Copyright (C) 1999, 2000, 2001, 2002, 2003 Rafael Laboissiere -Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004 Alan W. Irwin -Copyright (C) 2003 Joao Cardoso -Copyright (C) 2004 Andrew Ross - -Redistribution and use in source (XML DocBook) and "compiled" forms -(HTML, PDF, PostScript, DVI, TeXinfo and so forth) with or without -modification, are permitted provided that the following conditions are -met: - -1. Redistributions of source code (XML DocBook) must retain the -above copyright notice, this list of conditions and the following -disclaimer as the first lines of this file unmodified. - -2. Redistributions in compiled form (transformed to other DTDs, -converted to HTML, PDF, PostScript, and other formats) must -reproduce the above copyright notice, this list of conditions and -the following disclaimer in the documentation and/or other -materials provided with the distribution. - -Important: THIS DOCUMENTATION IS PROVIDED BY THE PLPLOT PROJECT "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PLPLOT PROJECT BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR -OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---> - -<chapter id="API-FORTRAN-77"> - <title>The Specialized Fortran 77 API for PLplot</title> - - <para> - The purpose of this Chapter is to document the API for each Fortran 77 function - in PLplot that differs substantially (usually in argument lists) - from the common API that has already been - documented in <xref linkend="API"/>. - </para> - - <para> - Normally, the common API is wrapped in such a way for Fortran 77 that there is - and one-to-one correspondence between each Fortran 77 and C argument - (see <xref linkend="fortran77"/> - for discussion). However, for certain routines documented in this - chapter the Fortran 77 argument lists - necessarily differ substantially from the C versions. - </para> - - <para> - This chapter is incomplete and NEEDS DOCUMENTATION of, e.g., the Fortran 77 - equivalent of the plshade C routines. - </para> - - - <sect1 id="plcon0" renderas="sect3"> - <title> - <function>plcon0</function>: Contour plot, identity mapping for Fortran 77 - </title> - - <para> - <funcsynopsis> - <funcprototype> - <funcdef> - <function>plcon0</function> - </funcdef> - <paramdef><parameter>z</parameter></paramdef> - <paramdef><parameter>nx</parameter></paramdef> - <paramdef><parameter>ny</parameter></paramdef> - <paramdef><parameter>kx</parameter></paramdef> - <paramdef><parameter>lx</parameter></paramdef> - <paramdef><parameter>ky</parameter></paramdef> - <paramdef><parameter>ly</parameter></paramdef> - <paramdef><parameter>clevel</parameter></paramdef> - <paramdef><parameter>nlevel</parameter></paramdef> - </funcprototype> - </funcsynopsis> - </para> - - <para> - Draws a contour plot of the data in - <literal><parameter>z</parameter>[<parameter>nx</parameter>][<parameter>ny</parameter>]</literal>, - using the <literal><parameter>nlevel</parameter></literal> contour - levels specified by <literal><parameter>clevel</parameter></literal>. - Only the region of the array from - <literal><parameter>kx</parameter></literal> to - <literal><parameter>lx</parameter></literal> and from - <literal><parameter>ky</parameter></literal> to - <literal><parameter>ly</parameter></literal> is plotted out. See - <xref linkend="contour-plots"/> for more information. - </para> - - <variablelist> - <varlistentry> - <term> - <parameter>z</parameter> - (<literal>PLFLT **</literal>, input) - </term> - <listitem> - <para> - Pointer to a vectored two-dimensional array containing data to - be contoured. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <parameter>nx, ny</parameter> - (<literal>PLINT</literal>, input) - </term> - <listitem> - <para> - Physical dimensions of array - <literal><parameter>z</parameter></literal>. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <parameter>kx, lx</parameter> - (<literal>PLINT</literal>, input) - </term> - <listitem> - <para> - Range of <literal>x</literal> indices to consider. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <parameter>ky, ly</parameter> - (<literal>PLINT</literal>, input) - </term> - <listitem> - <para> - Range of <literal>y</literal> indices to consider. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <parameter>clevel</parameter> - (<literal>PLFLT *</literal>, input) - </term> - <listitem> - <para> - Pointer to array specifying levels at which to draw contours. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <parameter>nlevel</parameter> - (<literal>PLINT</literal>, input) - </term> - <listitem> - <para> - Number of contour levels to draw. - </para> - </listitem> - </varlistentry> - </variablelist> - <para> - NOTE: this function is intended for use from a Fortran 77 caller only. - The C user should instead call &plcont; using the built-in - transformation function <function>pltr0</function> for the same - capability. - </para> - </sect1> - - <sect1 id="plcon1" renderas="sect3"> - <title> - <function>plcon1</function>: Contour plot, general 1-d mapping for - Fortran 77 - </title> - - <para> - <funcsynopsis> - <funcprototype> - <funcdef> - <function>plcon1</function> - </funcdef> - <paramdef><parameter>z</parameter></paramdef> - <paramdef><parameter>nx</parameter></paramdef> - <paramdef><parameter>ny</parameter></paramdef> - <paramdef><parameter>kx</parameter></paramdef> - <paramdef><parameter>lx</parameter></paramdef> - <paramdef><parameter>ky</parameter></paramdef> - <paramdef><parameter>ly</parameter></paramdef> - <paramdef><parameter>clevel</parameter></paramdef> - <paramdef><parameter>nlevel</parameter></paramdef> - <paramdef><parameter>xg</parameter></paramdef> - <paramdef><parameter>yg</parameter></paramdef> - </funcprototype> - </funcsynopsis> - </para> - - <para> - Draws a contour plot of the data in - <literal><parameter>z</parameter>[<parameter>nx</parameter>][<parameter>ny</parameter>]</literal>, - using the <literal><parameter>nlevel</parameter></literal> contour - levels specified by <literal><parameter>clevel</parameter></literal>. - Only the region of the array from - <literal><parameter>kx</parameter></literal> to - <literal><parameter>lx</parameter></literal> and from - <literal><parameter>ky</parameter></literal> to - <literal><parameter>ly</parameter></literal> is plotted out. The - arrays <literal><parameter>xg</parameter></literal> and - <literal><parameter>yg</parameter></literal> are used to specify the - transformation between array indices and world coordinates. See - <xref linkend="contour-plots"/> for more information. - </para> - - <variablelist> - <varlistentry> - <term> - <parameter>z</parameter> - (<literal>PLFLT **</literal>, input) - </term> - <listitem> - <para> - Pointer to a vectored two-dimensional array containing data to - be contoured. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <parameter>nx, ny</parameter> - (<literal>PLINT</literal>, input) - </term> - <listitem> - <para> - Physical dimensions of array - <literal><parameter>z</parameter></literal>. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <parameter>kx, lx</parameter> - (<literal>PLINT</literal>, input) - </term> - <listitem> - <para> - Range of <literal>x</literal> indices to consider. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <parameter>ky, ly</parameter> - (<literal>PLINT</literal>, input) - </term> - <listitem> - <para> - Range of <literal>y</literal> indices to consider. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <parameter>clevel</parameter> - (<literal>PLFLT *</literal>, input) - </term> - <listitem> - <para> - Pointer to array specifying levels at which to draw contours. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <parameter>nlevel</parameter> - (<literal>PLINT</literal>, input) - </term> - <listitem> - <para> - Number of contour levels to draw. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <parameter>xg, yg</parameter> - (<literal>PLFLT *</literal>, input) - </term> - <listitem> - <para> - Pointers to arrays which specify the transformation from array - indices to world coordinates. These must be one-dimensional - arrays, used for a transformation of the form: - <literal>tx</literal> = <literal>f(x)</literal>, - <literal>ty</literal> = <literal>f(y)</literal>. Function - values at locations between grid points are obtained via linear - interpolation. - </para> - </listitem> - </varlistentry> - </variablelist> - <para> - NOTE: this function is intended for use from a Fortran 77 caller only. - The C user should instead call &plcont; using the built-in - transformation function <function>pltr1</function> for the same - capability. - </para> - - </sect1> - - <sect1 id="plcon2" renderas="sect3"> - <title> - <function>plcon2</function>: Contour plot, general 2-d mapping for - Fortran 77 - </title> - - <para> - <funcsynopsis> - <funcprototype> - <funcdef> - <function>plcon2</function> - </funcdef> - <paramdef><parameter>z</parameter></paramdef> - <paramdef><parameter>nx</parameter></paramdef> - <paramdef><parameter>ny</parameter></paramdef> - <paramdef><parameter>kx</parameter></paramdef> - <paramdef><parameter>lx</parameter></paramdef> - <paramdef><parameter>ky</parameter></paramdef> - <paramdef><parameter>ly</parameter></paramdef> - <paramdef><parameter>clevel</parameter></paramdef> - <paramdef><parameter>nlevel</parameter></paramdef> - <paramdef><parameter>xg</parameter></paramdef> - <paramdef><parameter>yg</parameter></paramdef> - </funcprototype> - </funcsynopsis> - </para> - <para> - Draws a contour plot of the data in - <literal><parameter>z</parameter>[<parameter>nx</parameter>][<parameter>ny</parameter>]</literal>, - using the <literal><parameter>nlevel</parameter></literal> contour - levels specified by <literal><parameter>clevel</parameter></literal>. - Only the region of the array from - <literal><parameter>kx</parameter></literal> to - <literal><parameter>lx</parameter></literal> and from - <literal><parameter>ky</parameter></literal> to - <literal><parameter>ly</parameter></literal> is plotted out. The - arrays <literal><parameter>xg</parameter></literal> and - <literal><parameter>yg</parameter></literal> are used to specify the - transformation between array indices and world coordinates. See - <xref linkend="contour-plots"/> for more information. - </para> - - <variablelist> - <varlistentry> - <term> - <parameter>z</parameter> - (<literal>PLFLT **</literal>, input) - </term> - <listitem> - <para> - Pointer to a vectored two-dimensional array containing data to - be contoured. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <parameter>nx, ny</parameter> - (<literal>PLINT</literal>, input) - </term> - <listitem> - <para> - Physical dimensions of array - <literal><parameter>z</parameter></literal>. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <parameter>kx, lx</parameter> (<literal>PLINT</literal>, input) - </term> - <listitem> - <para> - Range of <literal>x</literal> indices to consider. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <parameter>ky, ly</parameter> - (<literal>PLINT</literal>, input) - </term> - <listitem> - <para> - Range of <literal>y</literal> indices to consider. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - ... [truncated message content] |