43 real,
intent(out) :: scrsz,scrrat
46 character :: filename*(199)
50 filename = trim(
homedir)//
'/.PGPlot'
51 inquire(file=trim(filename), exist=ex)
58 open(unit=ip,form=
'formatted',status=
'old',action=
'read',position=
'rewind',file=trim(filename),iostat=io)
60 write(0,
'(A,/)')
' Error opening settings file '//trim(filename)//
' for reading.'
63 read(ip, nml=screen_settings, iostat=io)
68 write(0,
'(A)')
' An error occured when reading the settings file '//trim(filename)// &
69 ', using default settings.'
70 write(0,
'(A)')
' The format of your settings file may be outdated.'
71 write(0,
'(A)')
' Consider renaming the existing file and rerunning this program to generate a new settings file.'
83 write(*,
'(A)')
'############################################################'
85 write(*,
'(A)')
'# No PGPlot settings file found. #'
86 write(*,
'(A)')
'# Creating '//trim(filename)//
' with default settings, #'
87 write(*,
'(A)')
'# please edit it to set your preferences. #'
89 write(*,
'(A)')
'############################################################'
96 open(unit=op,form=
'formatted',status=
'unknown',action=
'write',position=
'rewind',file=trim(filename),iostat=io)
98 write(0,
'(A,/)')
' Error opening settings file '//trim(filename)//
' for writing.'
101 write(op, nml=screen_settings, iostat=io)
103 if(io.ne.0)
write(0,
'(A)')
' An error occured when writing the settings file '//trim(filename)
123 integer,
intent(in) :: horiz,vert
124 real,
intent(out) :: size,ratio
126 size = real(horiz-1)/85.
127 ratio = real(vert-1)/real(horiz-1)
143 real,
intent(in) :: size,ratio
144 integer,
intent(out) :: horiz,vert
146 horiz = nint(size*85) + 1
147 vert = nint(size*ratio*85) + 1
165 integer,
intent(in) :: horiz,vert
166 real,
intent(in) :: dpi
167 real,
intent(out) :: size,ratio
169 size = real(horiz-48) / dpi
170 ratio = real(vert -48) / real(horiz-48)
187 real,
intent(in) :: size,ratio, dpi
188 integer,
intent(out) :: horiz,vert
190 horiz = nint(dpi*size) + 48
191 vert = nint(dpi*size*ratio) + 48
Provides all constants in the library, and routines to define them.
character, dimension(199), public homedir
Current user's home directory (= $HOME, will contain e.g. '/home/user')
Procedures to handle PGPlot (screen) settings.
pure subroutine pgszrat2hv_bitmap(size, ratio, horiz, vert)
Convert PGPlot bitmap size and ratio to horizontal and vertical dimensions in pixels.
subroutine pgplot_settings(scrsz, scrrat)
Read/create PGPlot settings file ~/.PGPlot.
integer screen_size_h
Horizontal screen size (pixels)
pure subroutine pghv2szrat_screen(horiz, vert, dpi, size, ratio)
Convert x,y screen dimensions to PGPlot paper size and ratio for a screen.
integer screen_size_v
Vertical screen size (pixels)
pure subroutine pghv2szrat_bitmap(horiz, vert, size, ratio)
Convert PGPlot horizontal and vertical dimensions to paper size and ratio for bitmap.
real screen_dpi
Screen resolution (DPI)
pure subroutine pgszrat2hv_screen(size, ratio, dpi, horiz, vert)
Convert PGPlot paper size and ratio to screen dimensions.
System-related procedures.
subroutine find_free_io_unit(unit)
Find the first unused I/O unit larger than 100.