[cig-commits] r8531 - seismo/2D/SPECFEM2D/trunk
walter at geodynamics.org
walter at geodynamics.org
Fri Dec 7 15:54:03 PST 2007
Author: walter
Date: 2007-12-07 15:54:02 -0800 (Fri, 07 Dec 2007)
New Revision: 8531
Added:
seismo/2D/SPECFEM2D/trunk/plotpost.F90
Removed:
seismo/2D/SPECFEM2D/trunk/plotpost.f90
Modified:
seismo/2D/SPECFEM2D/trunk/Makefile
Log:
renamed plotpost.f90 to plotpost.F90 to enable conditional compilation during preprocessing.
Modified: seismo/2D/SPECFEM2D/trunk/Makefile
===================================================================
--- seismo/2D/SPECFEM2D/trunk/Makefile 2007-06-26 00:48:37 UTC (rev 8530)
+++ seismo/2D/SPECFEM2D/trunk/Makefile 2007-12-07 23:54:02 UTC (rev 8531)
@@ -92,8 +92,8 @@
$O/plotgll.o: plotgll.f90 constants.h
${F90} $(FLAGS_CHECK) -c -o $O/plotgll.o plotgll.f90
-$O/plotpost.o: plotpost.f90 constants.h
- ${F90} $(FLAGS_CHECK) -c -o $O/plotpost.o plotpost.f90
+$O/plotpost.o: plotpost.F90 constants.h
+ ${F90} $(FLAGS_CHECK) -c -o $O/plotpost.o plotpost.F90
$O/locate_receivers.o: locate_receivers.F90 constants.h
${F90} $(FLAGS_CHECK) -c -o $O/locate_receivers.o locate_receivers.F90
Added: seismo/2D/SPECFEM2D/trunk/plotpost.F90
===================================================================
--- seismo/2D/SPECFEM2D/trunk/plotpost.F90 2007-06-26 00:48:37 UTC (rev 8530)
+++ seismo/2D/SPECFEM2D/trunk/plotpost.F90 2007-12-07 23:54:02 UTC (rev 8531)
@@ -0,0 +1,2059 @@
+
+!========================================================================
+!
+! S P E C F E M 2 D Version 5.2
+! ------------------------------
+!
+! Dimitri Komatitsch
+! University of Pau, France
+!
+! (c) April 2007
+!
+!========================================================================
+
+ subroutine plotpost(displ,coord,vpext,x_source,z_source,st_xval,st_zval,it,dt,coorg, &
+ xinterp,zinterp,shapeint,Uxinterp,Uzinterp,flagrange,density,elastcoef,knods,kmato,ibool, &
+ numabs,codeabs,anyabs,simulation_title,npoin,npgeo,vpmin,vpmax,nrec, &
+ colors,numbers,subsamp,imagetype,interpol,meshvect,modelvect, &
+ boundvect,assign_external_model,cutsnaps,sizemax_arrows,nelemabs,numat,pointsdisp, &
+ nspec,ngnod,coupled_acoustic_elastic,any_acoustic,plot_lowerleft_corner_only, &
+ fluid_solid_acoustic_ispec,fluid_solid_acoustic_iedge,num_fluid_solid_edges)
+
+!
+! PostScript display routine
+!
+
+ implicit none
+
+ include "constants.h"
+
+! color palette
+ integer, parameter :: NUM_COLORS = 236
+ double precision, dimension(NUM_COLORS) :: red,green,blue
+
+ integer it,nrec,nelemabs,numat,pointsdisp,pointsdisp_loop,nspec
+ integer i,npoin,npgeo,ngnod
+
+ integer kmato(nspec),knods(ngnod,nspec)
+ integer ibool(NGLLX,NGLLZ,nspec)
+
+ double precision xinterp(pointsdisp,pointsdisp),zinterp(pointsdisp,pointsdisp)
+ double precision shapeint(ngnod,pointsdisp,pointsdisp)
+ double precision Uxinterp(pointsdisp,pointsdisp)
+ double precision Uzinterp(pointsdisp,pointsdisp)
+ double precision flagrange(NGLLX,pointsdisp)
+ double precision density(numat),elastcoef(4,numat)
+
+ double precision dt,timeval,x_source,z_source
+ double precision displ(NDIM,npoin),coord(NDIM,npoin)
+ double precision vpext(NGLLX,NGLLZ,nspec)
+
+ double precision coorg(NDIM,npgeo)
+ double precision, dimension(nrec) :: st_xval,st_zval
+
+ integer numabs(nelemabs),codeabs(4,nelemabs)
+ logical anyabs,coupled_acoustic_elastic,any_acoustic,plot_lowerleft_corner_only
+
+! for fluid/solid edge detection
+ integer :: num_fluid_solid_edges
+ integer, dimension(num_fluid_solid_edges) :: fluid_solid_acoustic_ispec,fluid_solid_acoustic_iedge
+
+ double precision xmax,zmax,height,xw,zw,usoffset,sizex,sizez,vpmin,vpmax
+
+! for the file name
+ character(len=100) :: file_name
+
+! to suppress useless white spaces in postscript lines
+ character(len=100) :: postscript_line
+ character(len=1), dimension(100) :: ch1,ch2
+ equivalence (postscript_line,ch1)
+ logical :: first
+
+ double precision convert,x1,rlamda,rmu,denst,rKvol,cploc,xa,za,xb,zb
+ double precision z1,x2,z2,d,d1,d2,dummy,theta,thetaup,thetadown
+
+ integer k,j,ispec,material,is,ir,imat,icol,l,line_length
+ integer index_char,ii,ipoin,in,nnum,inum,ideb,ifin,iedge
+
+ integer colors,numbers,subsamp,imagetype
+ logical interpol,meshvect,modelvect,boundvect,assign_external_model
+ double precision cutsnaps,sizemax_arrows
+
+ double precision ratio_page,dispmax,xmin,zmin
+
+! title of the plot
+ character(len=60) simulation_title
+
+! A4 or US letter paper
+ if(US_LETTER) then
+ usoffset = 1.75d0
+ sizex = 27.94d0
+ sizez = 21.59d0
+ else
+ usoffset = 0.d0
+ sizex = 29.7d0
+ sizez = 21.d0
+ endif
+
+! height of domain numbers in centimeters
+ height = 0.25d0
+
+! define color palette in random order
+
+! red
+ red(1) = 1.00000000000000
+ green(1) = 0.000000000000000E+000
+ blue(1) = 0.000000000000000E+000
+
+! DodgerBlue2
+ red(2) = 0.109803921568627
+ green(2) = 0.525490196078431
+ blue(2) = 0.933333333333333
+
+! gold
+ red(3) = 1.00000000000000
+ green(3) = 0.840000000000000
+ blue(3) = 0.000000000000000E+000
+
+! springgreen
+ red(4) = 0.000000000000000E+000
+ green(4) = 1.00000000000000
+ blue(4) = 0.500000000000000
+
+! NavajoWhite
+ red(5) = 1.00000000000000
+ green(5) = 0.870588235294118
+ blue(5) = 0.678431372549020
+
+! SteelBlue3
+ red(6) = 0.309803921568627
+ green(6) = 0.580392156862745
+ blue(6) = 0.803921568627451
+
+! Ivory3
+ red(7) = 0.803921568627451
+ green(7) = 0.803921568627451
+ blue(7) = 0.756862745098039
+
+! SkyBlue4
+ red(8) = 0.290196078431373
+ green(8) = 0.439215686274510
+ blue(8) = 0.545098039215686
+
+! Snow
+ red(9) = 0.980392156862745
+ green(9) = 0.980392156862745
+ blue(9) = 0.980392156862745
+
+! SteelBlue
+ red(10) = 0.274509803921569
+ green(10) = 0.509803921568627
+ blue(10) = 0.705882352941177
+
+! Bisque3
+ red(11) = 0.803921568627451
+ green(11) = 0.717647058823529
+ blue(11) = 0.619607843137255
+
+! Salmon
+ red(12) = 0.980392156862745
+ green(12) = 0.501960784313725
+ blue(12) = 0.447058823529412
+
+! SlateBlue2
+ red(13) = 0.478431372549020
+ green(13) = 0.403921568627451
+ blue(13) = 0.933333333333333
+
+! NavajoWhite2
+ red(14) = 0.933333333333333
+ green(14) = 0.811764705882353
+ blue(14) = 0.631372549019608
+
+! MediumBlue
+ red(15) = 0.000000000000000E+000
+ green(15) = 0.000000000000000E+000
+ blue(15) = 0.803921568627451
+
+! LightCoral
+ red(16) = 0.941176470588235
+ green(16) = 0.501960784313725
+ blue(16) = 0.501960784313725
+
+! FloralWhite
+ red(17) = 1.00000000000000
+ green(17) = 0.980392156862745
+ blue(17) = 0.941176470588235
+
+! Cornsilk3
+ red(18) = 0.803921568627451
+ green(18) = 0.784313725490196
+ blue(18) = 0.694117647058824
+
+! GhostWhite
+ red(19) = 0.972549019607843
+ green(19) = 0.972549019607843
+ blue(19) = 1.00000000000000
+
+! blue
+ red(20) = 0.000000000000000E+000
+ green(20) = 0.000000000000000E+000
+ blue(20) = 1.00000000000000
+
+! Linen
+ red(21) = 0.980392156862745
+ green(21) = 0.941176470588235
+ blue(21) = 0.901960784313726
+
+! peachpuff
+ red(22) = 1.00000000000000
+ green(22) = 0.850000000000000
+ blue(22) = 0.730000000000000
+
+! Cornsilk1
+ red(23) = 1.00000000000000
+ green(23) = 0.972549019607843
+ blue(23) = 0.862745098039216
+
+! LightSalmon
+ red(24) = 1.00000000000000
+ green(24) = 0.627450980392157
+ blue(24) = 0.478431372549020
+
+! DeepSkyBlue1
+ red(25) = 0.000000000000000E+000
+ green(25) = 0.749019607843137
+ blue(25) = 1.00000000000000
+
+! LemonChiffon4
+ red(26) = 0.545098039215686
+ green(26) = 0.537254901960784
+ blue(26) = 0.439215686274510
+
+! PeachPuff1
+ red(27) = 1.00000000000000
+ green(27) = 0.854901960784314
+ blue(27) = 0.725490196078431
+
+! BlanchedAlmond
+ red(28) = 1.00000000000000
+ green(28) = 0.921568627450980
+ blue(28) = 0.803921568627451
+
+! SlateBlue3
+ red(29) = 0.411764705882353
+ green(29) = 0.349019607843137
+ blue(29) = 0.803921568627451
+
+! LightSkyBlue1
+ red(30) = 0.690196078431373
+ green(30) = 0.886274509803922
+ blue(30) = 1.00000000000000
+
+! DarkViolet
+ red(31) = 0.580392156862745
+ green(31) = 0.000000000000000E+000
+ blue(31) = 0.827450980392157
+
+! Azure3
+ red(32) = 0.756862745098039
+ green(32) = 0.803921568627451
+ blue(32) = 0.803921568627451
+
+! LavenderBlush3
+ red(33) = 0.803921568627451
+ green(33) = 0.756862745098039
+ blue(33) = 0.772549019607843
+
+! Honeydew1
+ red(34) = 0.941176470588235
+ green(34) = 1.00000000000000
+ blue(34) = 0.941176470588235
+
+! Ivory2
+ red(35) = 0.933333333333333
+ green(35) = 0.933333333333333
+ blue(35) = 0.878431372549020
+
+! RosyBrown
+ red(36) = 0.737254901960784
+ green(36) = 0.560784313725490
+ blue(36) = 0.560784313725490
+
+! Thistle
+ red(37) = 0.847058823529412
+ green(37) = 0.749019607843137
+ blue(37) = 0.847058823529412
+
+! Orange
+ red(38) = 1.00000000000000
+ green(38) = 0.647058823529412
+ blue(38) = 0.000000000000000E+000
+
+! DarkSeaGreen
+ red(39) = 0.560784313725490
+ green(39) = 0.737254901960784
+ blue(39) = 0.560784313725490
+
+! Moccasin
+ red(40) = 1.00000000000000
+ green(40) = 0.894117647058824
+ blue(40) = 0.709803921568627
+
+! DeepSkyBlue2
+ red(41) = 0.000000000000000E+000
+ green(41) = 0.698039215686274
+ blue(41) = 0.933333333333333
+
+! SlateGray4
+ red(42) = 0.423529411764706
+ green(42) = 0.482352941176471
+ blue(42) = 0.545098039215686
+
+! Beige
+ red(43) = 0.960784313725490
+ green(43) = 0.960784313725490
+ blue(43) = 0.862745098039216
+
+! Gold
+ red(44) = 1.00000000000000
+ green(44) = 0.843137254901961
+ blue(44) = 0.000000000000000E+000
+
+! SlateBlue
+ red(45) = 0.415686274509804
+ green(45) = 0.352941176470588
+ blue(45) = 0.803921568627451
+
+! SteelBlue1
+ red(46) = 0.388235294117647
+ green(46) = 0.721568627450980
+ blue(46) = 1.00000000000000
+
+! SaddleBrown
+ red(47) = 0.545098039215686
+ green(47) = 0.270588235294118
+ blue(47) = 7.450980392156863E-002
+
+! Pink
+ red(48) = 1.00000000000000
+ green(48) = 0.752941176470588
+ blue(48) = 0.796078431372549
+
+! Black
+ red(49) = 0.000000000000000E+000
+ green(49) = 0.000000000000000E+000
+ blue(49) = 0.000000000000000E+000
+
+! SlateGrey
+ red(50) = 0.439215686274510
+ green(50) = 0.501960784313725
+ blue(50) = 0.564705882352941
+
+! Ivory
+ red(51) = 1.00000000000000
+ green(51) = 1.00000000000000
+ blue(51) = 0.941176470588235
+
+! OliveDrab
+ red(52) = 0.419607843137255
+ green(52) = 0.556862745098039
+ blue(52) = 0.137254901960784
+
+! Ivory1
+ red(53) = 1.00000000000000
+ green(53) = 1.00000000000000
+ blue(53) = 0.941176470588235
+
+! SkyBlue
+ red(54) = 0.529411764705882
+ green(54) = 0.807843137254902
+ blue(54) = 0.921568627450980
+
+! MistyRose3
+ red(55) = 0.803921568627451
+ green(55) = 0.717647058823529
+ blue(55) = 0.709803921568627
+
+! LimeGreen
+ red(56) = 0.196078431372549
+ green(56) = 0.803921568627451
+ blue(56) = 0.196078431372549
+
+! Purple
+ red(57) = 0.627450980392157
+ green(57) = 0.125490196078431
+ blue(57) = 0.941176470588235
+
+! SkyBlue2
+ red(58) = 0.494117647058824
+ green(58) = 0.752941176470588
+ blue(58) = 0.933333333333333
+
+! Red
+ red(59) = 1.00000000000000
+ green(59) = 0.000000000000000E+000
+ blue(59) = 0.000000000000000E+000
+
+! DarkKhaki
+ red(60) = 0.741176470588235
+ green(60) = 0.717647058823529
+ blue(60) = 0.419607843137255
+
+! MediumTurquoise
+ red(61) = 0.282352941176471
+ green(61) = 0.819607843137255
+ blue(61) = 0.800000000000000
+
+! Grey
+ red(62) = 0.745098039215686
+ green(62) = 0.745098039215686
+ blue(62) = 0.745098039215686
+
+! Coral
+ red(63) = 1.00000000000000
+ green(63) = 0.498039215686275
+ blue(63) = 0.313725490196078
+
+! NavajoWhite4
+ red(64) = 0.545098039215686
+ green(64) = 0.474509803921569
+ blue(64) = 0.368627450980392
+
+! SlateBlue4
+ red(65) = 0.278431372549020
+ green(65) = 0.235294117647059
+ blue(65) = 0.545098039215686
+
+! RoyalBlue4
+ red(66) = 0.152941176470588
+ green(66) = 0.250980392156863
+ blue(66) = 0.545098039215686
+
+! YellowGreen
+ red(67) = 0.603921568627451
+ green(67) = 0.803921568627451
+ blue(67) = 0.196078431372549
+
+! DeepSkyBlue3
+ red(68) = 0.000000000000000E+000
+ green(68) = 0.603921568627451
+ blue(68) = 0.803921568627451
+
+! goldenrod
+ red(69) = 0.854901960784314
+ green(69) = 0.647058823529412
+ blue(69) = 0.125490196078431
+
+! AntiqueWhite4
+ red(70) = 0.545098039215686
+ green(70) = 0.513725490196078
+ blue(70) = 0.470588235294118
+
+! lemonchiffon
+ red(71) = 1.00000000000000
+ green(71) = 0.980000000000000
+ blue(71) = 0.800000000000000
+
+! GreenYellow
+ red(72) = 0.678431372549020
+ green(72) = 1.00000000000000
+ blue(72) = 0.184313725490196
+
+! LightSlateGray
+ red(73) = 0.466666666666667
+ green(73) = 0.533333333333333
+ blue(73) = 0.600000000000000
+
+! RoyalBlue
+ red(74) = 0.254901960784314
+ green(74) = 0.411764705882353
+ blue(74) = 0.882352941176471
+
+! DarkGreen
+ red(75) = 0.000000000000000E+000
+ green(75) = 0.392156862745098
+ blue(75) = 0.000000000000000E+000
+
+! NavajoWhite3
+ red(76) = 0.803921568627451
+ green(76) = 0.701960784313725
+ blue(76) = 0.545098039215686
+
+! Azure1
+ red(77) = 0.941176470588235
+ green(77) = 1.00000000000000
+ blue(77) = 1.00000000000000
+
+! PowderBlue
+ red(78) = 0.690196078431373
+ green(78) = 0.878431372549020
+ blue(78) = 0.901960784313726
+
+! slateblue
+ red(79) = 0.420000000000000
+ green(79) = 0.350000000000000
+ blue(79) = 0.800000000000000
+
+! MediumOrchid
+ red(80) = 0.729411764705882
+ green(80) = 0.333333333333333
+ blue(80) = 0.827450980392157
+
+! turquoise
+ red(81) = 0.250000000000000
+ green(81) = 0.880000000000000
+ blue(81) = 0.820000000000000
+
+! Snow1
+ red(82) = 1.00000000000000
+ green(82) = 0.980392156862745
+ blue(82) = 0.980392156862745
+
+! violet
+ red(83) = 0.930000000000000
+ green(83) = 0.510000000000000
+ blue(83) = 0.930000000000000
+
+! DeepPink
+ red(84) = 1.00000000000000
+ green(84) = 7.843137254901961E-002
+ blue(84) = 0.576470588235294
+
+! MistyRose4
+ red(85) = 0.545098039215686
+ green(85) = 0.490196078431373
+ blue(85) = 0.482352941176471
+
+! PeachPuff3
+ red(86) = 0.803921568627451
+ green(86) = 0.686274509803922
+ blue(86) = 0.584313725490196
+
+! MediumSeaGreen
+ red(87) = 0.235294117647059
+ green(87) = 0.701960784313725
+ blue(87) = 0.443137254901961
+
+! Honeydew4
+ red(88) = 0.513725490196078
+ green(88) = 0.545098039215686
+ blue(88) = 0.513725490196078
+
+! Tan
+ red(89) = 0.823529411764706
+ green(89) = 0.705882352941177
+ blue(89) = 0.549019607843137
+
+! DarkGoldenrod
+ red(90) = 0.721568627450980
+ green(90) = 0.525490196078431
+ blue(90) = 4.313725490196078E-002
+
+! Blue2
+ red(91) = 0.000000000000000E+000
+ green(91) = 0.000000000000000E+000
+ blue(91) = 0.933333333333333
+
+! Maroon
+ red(92) = 0.690196078431373
+ green(92) = 0.188235294117647
+ blue(92) = 0.376470588235294
+
+! LightSkyBlue3
+ red(93) = 0.552941176470588
+ green(93) = 0.713725490196078
+ blue(93) = 0.803921568627451
+
+! LemonChiffon2
+ red(94) = 0.933333333333333
+ green(94) = 0.913725490196078
+ blue(94) = 0.749019607843137
+
+! Snow3
+ red(95) = 0.803921568627451
+ green(95) = 0.788235294117647
+ blue(95) = 0.788235294117647
+
+! Ivory4
+ red(96) = 0.545098039215686
+ green(96) = 0.545098039215686
+ blue(96) = 0.513725490196078
+
+! AntiqueWhite3
+ red(97) = 0.803921568627451
+ green(97) = 0.752941176470588
+ blue(97) = 0.690196078431373
+
+! Bisque4
+ red(98) = 0.545098039215686
+ green(98) = 0.490196078431373
+ blue(98) = 0.419607843137255
+
+! Snow2
+ red(99) = 0.933333333333333
+ green(99) = 0.913725490196078
+ blue(99) = 0.913725490196078
+
+! SlateGray1
+ red(100) = 0.776470588235294
+ green(100) = 0.886274509803922
+ blue(100) = 1.00000000000000
+
+! Seashell2
+ red(101) = 0.933333333333333
+ green(101) = 0.898039215686275
+ blue(101) = 0.870588235294118
+
+! Aquamarine
+ red(102) = 0.498039215686275
+ green(102) = 1.00000000000000
+ blue(102) = 0.831372549019608
+
+! SlateGray2
+ red(103) = 0.725490196078431
+ green(103) = 0.827450980392157
+ blue(103) = 0.933333333333333
+
+! White
+ red(104) = 1.00000000000000
+ green(104) = 1.00000000000000
+ blue(104) = 1.00000000000000
+
+! LavenderBlush
+ red(105) = 1.00000000000000
+ green(105) = 0.941176470588235
+ blue(105) = 0.960784313725490
+
+! DodgerBlue3
+ red(106) = 9.411764705882353E-002
+ green(106) = 0.454901960784314
+ blue(106) = 0.803921568627451
+
+! RoyalBlue3
+ red(107) = 0.227450980392157
+ green(107) = 0.372549019607843
+ blue(107) = 0.803921568627451
+
+! LightYellow
+ red(108) = 1.00000000000000
+ green(108) = 1.00000000000000
+ blue(108) = 0.878431372549020
+
+! DeepSkyBlue
+ red(109) = 0.000000000000000E+000
+ green(109) = 0.749019607843137
+ blue(109) = 1.00000000000000
+
+! AntiqueWhite2
+ red(110) = 0.933333333333333
+ green(110) = 0.874509803921569
+ blue(110) = 0.800000000000000
+
+! CornflowerBlue
+ red(111) = 0.392156862745098
+ green(111) = 0.584313725490196
+ blue(111) = 0.929411764705882
+
+! PeachPuff4
+ red(112) = 0.545098039215686
+ green(112) = 0.466666666666667
+ blue(112) = 0.396078431372549
+
+! SpringGreen
+ red(113) = 0.000000000000000E+000
+ green(113) = 1.00000000000000
+ blue(113) = 0.498039215686275
+
+! Honeydew
+ red(114) = 0.941176470588235
+ green(114) = 1.00000000000000
+ blue(114) = 0.941176470588235
+
+! Honeydew2
+ red(115) = 0.878431372549020
+ green(115) = 0.933333333333333
+ blue(115) = 0.878431372549020
+
+! LightSeaGreen
+ red(116) = 0.125490196078431
+ green(116) = 0.698039215686274
+ blue(116) = 0.666666666666667
+
+! NavyBlue
+ red(117) = 0.000000000000000E+000
+ green(117) = 0.000000000000000E+000
+ blue(117) = 0.501960784313725
+
+! Azure4
+ red(118) = 0.513725490196078
+ green(118) = 0.545098039215686
+ blue(118) = 0.545098039215686
+
+! MediumAquamarine
+ red(119) = 0.400000000000000
+ green(119) = 0.803921568627451
+ blue(119) = 0.666666666666667
+
+! SkyBlue3
+ red(120) = 0.423529411764706
+ green(120) = 0.650980392156863
+ blue(120) = 0.803921568627451
+
+! LavenderBlush2
+ red(121) = 0.933333333333333
+ green(121) = 0.878431372549020
+ blue(121) = 0.898039215686275
+
+! Bisque1
+ red(122) = 1.00000000000000
+ green(122) = 0.894117647058824
+ blue(122) = 0.768627450980392
+
+! DarkOrange
+ red(123) = 1.00000000000000
+ green(123) = 0.549019607843137
+ blue(123) = 0.000000000000000E+000
+
+! LightSteelBlue
+ red(124) = 0.690196078431373
+ green(124) = 0.768627450980392
+ blue(124) = 0.870588235294118
+
+! SteelBlue2
+ red(125) = 0.360784313725490
+ green(125) = 0.674509803921569
+ blue(125) = 0.933333333333333
+
+! LemonChiffon3
+ red(126) = 0.803921568627451
+ green(126) = 0.788235294117647
+ blue(126) = 0.647058823529412
+
+! DarkSlateBlue
+ red(127) = 0.282352941176471
+ green(127) = 0.239215686274510
+ blue(127) = 0.545098039215686
+
+! Seashell
+ red(128) = 1.00000000000000
+ green(128) = 0.960784313725490
+ blue(128) = 0.933333333333333
+
+! Firebrick
+ red(129) = 0.698039215686274
+ green(129) = 0.133333333333333
+ blue(129) = 0.133333333333333
+
+! LightGray
+ red(130) = 0.827450980392157
+ green(130) = 0.827450980392157
+ blue(130) = 0.827450980392157
+
+! Blue
+ red(131) = 0.000000000000000E+000
+ green(131) = 0.000000000000000E+000
+ blue(131) = 1.00000000000000
+
+! Bisque2
+ red(132) = 0.933333333333333
+ green(132) = 0.835294117647059
+ blue(132) = 0.717647058823529
+
+! WhiteSmoke
+ red(133) = 0.960784313725490
+ green(133) = 0.960784313725490
+ blue(133) = 0.960784313725490
+
+! SeaGreen
+ red(134) = 0.180392156862745
+ green(134) = 0.545098039215686
+ blue(134) = 0.341176470588235
+
+! Burlywood
+ red(135) = 0.870588235294118
+ green(135) = 0.721568627450980
+ blue(135) = 0.529411764705882
+
+! RoyalBlue2
+ red(136) = 0.262745098039216
+ green(136) = 0.431372549019608
+ blue(136) = 0.933333333333333
+
+! RoyalBlue1
+ red(137) = 0.282352941176471
+ green(137) = 0.462745098039216
+ blue(137) = 1.00000000000000
+
+! SteelBlue4
+ red(138) = 0.211764705882353
+ green(138) = 0.392156862745098
+ blue(138) = 0.545098039215686
+
+! AliceBlue
+ red(139) = 0.941176470588235
+ green(139) = 0.972549019607843
+ blue(139) = 1.00000000000000
+
+! LightSlateBlue
+ red(140) = 0.517647058823529
+ green(140) = 0.439215686274510
+ blue(140) = 1.00000000000000
+
+! MistyRose1
+ red(141) = 1.00000000000000
+ green(141) = 0.894117647058824
+ blue(141) = 0.882352941176471
+
+! SandyBrown
+ red(142) = 0.956862745098039
+ green(142) = 0.643137254901961
+ blue(142) = 0.376470588235294
+
+! DarkOliveGreen
+ red(143) = 0.333333333333333
+ green(143) = 0.419607843137255
+ blue(143) = 0.184313725490196
+
+! Yellow
+ red(144) = 1.00000000000000
+ green(144) = 1.00000000000000
+ blue(144) = 0.000000000000000E+000
+
+! SlateGray3
+ red(145) = 0.623529411764706
+ green(145) = 0.713725490196078
+ blue(145) = 0.803921568627451
+
+! HotPink
+ red(146) = 1.00000000000000
+ green(146) = 0.411764705882353
+ blue(146) = 0.705882352941177
+
+! Violet
+ red(147) = 0.933333333333333
+ green(147) = 0.509803921568627
+ blue(147) = 0.933333333333333
+
+! LightSkyBlue
+ red(148) = 0.529411764705882
+ green(148) = 0.807843137254902
+ blue(148) = 0.980392156862745
+
+! Cornsilk2
+ red(149) = 0.933333333333333
+ green(149) = 0.909803921568627
+ blue(149) = 0.803921568627451
+
+! MidnightBlue
+ red(150) = 9.803921568627451E-002
+ green(150) = 9.803921568627451E-002
+ blue(150) = 0.439215686274510
+
+! AntiqueWhite
+ red(151) = 0.980392156862745
+ green(151) = 0.921568627450980
+ blue(151) = 0.843137254901961
+
+! PaleGreen
+ red(152) = 0.596078431372549
+ green(152) = 0.984313725490196
+ blue(152) = 0.596078431372549
+
+! MedSpringGreen
+ red(153) = 0.000000000000000E+000
+ green(153) = 0.980392156862745
+ blue(153) = 0.603921568627451
+
+! DodgerBlue1
+ red(154) = 0.117647058823529
+ green(154) = 0.564705882352941
+ blue(154) = 1.00000000000000
+
+! Blue3
+ red(155) = 0.000000000000000E+000
+ green(155) = 0.000000000000000E+000
+ blue(155) = 0.803921568627451
+
+! Cyan
+ red(156) = 0.000000000000000E+000
+ green(156) = 1.00000000000000
+ blue(156) = 1.00000000000000
+
+! LemonChiffon
+ red(157) = 1.00000000000000
+ green(157) = 0.980392156862745
+ blue(157) = 0.803921568627451
+
+! mediumorchid
+ red(158) = 0.730000000000000
+ green(158) = 0.330000000000000
+ blue(158) = 0.830000000000000
+
+! Turquoise
+ red(159) = 0.250980392156863
+ green(159) = 0.878431372549020
+ blue(159) = 0.815686274509804
+
+! IndianRed
+ red(160) = 0.803921568627451
+ green(160) = 0.360784313725490
+ blue(160) = 0.360784313725490
+
+! DodgerBlue
+ red(161) = 0.117647058823529
+ green(161) = 0.564705882352941
+ blue(161) = 1.00000000000000
+
+! Seashell3
+ red(162) = 0.803921568627451
+ green(162) = 0.772549019607843
+ blue(162) = 0.749019607843137
+
+! BlueViolet
+ red(163) = 0.541176470588235
+ green(163) = 0.168627450980392
+ blue(163) = 0.886274509803922
+
+! DeepSkyBlue4
+ red(164) = 0.000000000000000E+000
+ green(164) = 0.407843137254902
+ blue(164) = 0.545098039215686
+
+! PaleVioletRed
+ red(165) = 0.858823529411765
+ green(165) = 0.439215686274510
+ blue(165) = 0.576470588235294
+
+! Azure2
+ red(166) = 0.878431372549020
+ green(166) = 0.933333333333333
+ blue(166) = 0.933333333333333
+
+! greenyellow
+ red(167) = 0.680000000000000
+ green(167) = 1.00000000000000
+ blue(167) = 0.180000000000000
+
+! LightGoldenrod
+ red(168) = 0.933333333333333
+ green(168) = 0.866666666666667
+ blue(168) = 0.509803921568627
+
+! MistyRose
+ red(169) = 1.00000000000000
+ green(169) = 0.894117647058824
+ blue(169) = 0.882352941176471
+
+! LightSkyBlue4
+ red(170) = 0.376470588235294
+ green(170) = 0.482352941176471
+ blue(170) = 0.545098039215686
+
+! OrangeRed
+ red(171) = 1.00000000000000
+ green(171) = 0.270588235294118
+ blue(171) = 0.000000000000000E+000
+
+! DimGrey
+ red(172) = 0.411764705882353
+ green(172) = 0.411764705882353
+ blue(172) = 0.411764705882353
+
+! MediumVioletRed
+ red(173) = 0.780392156862745
+ green(173) = 8.235294117647059E-002
+ blue(173) = 0.521568627450980
+
+! DarkSlateGray
+ red(174) = 0.184313725490196
+ green(174) = 0.309803921568627
+ blue(174) = 0.309803921568627
+
+! yellow
+ red(175) = 1.00000000000000
+ green(175) = 1.00000000000000
+ blue(175) = 0.000000000000000E+000
+
+! Plum
+ red(176) = 0.866666666666667
+ green(176) = 0.627450980392157
+ blue(176) = 0.866666666666667
+
+! DarkTurquoise
+ red(177) = 0.000000000000000E+000
+ green(177) = 0.807843137254902
+ blue(177) = 0.819607843137255
+
+! DodgerBlue4
+ red(178) = 6.274509803921569E-002
+ green(178) = 0.305882352941176
+ blue(178) = 0.545098039215686
+
+! Cornsilk
+ red(179) = 1.00000000000000
+ green(179) = 0.972549019607843
+ blue(179) = 0.862745098039216
+
+! SkyBlue1
+ red(180) = 0.529411764705882
+ green(180) = 0.807843137254902
+ blue(180) = 1.00000000000000
+
+! Seashell1
+ red(181) = 1.00000000000000
+ green(181) = 0.960784313725490
+ blue(181) = 0.933333333333333
+
+! lavender
+ red(182) = 0.901960784313726
+ green(182) = 0.901960784313726
+ blue(182) = 0.980392156862745
+
+! Snow4
+ red(183) = 0.545098039215686
+ green(183) = 0.537254901960784
+ blue(183) = 0.537254901960784
+
+! Peru
+ red(184) = 0.803921568627451
+ green(184) = 0.521568627450980
+ blue(184) = 0.247058823529412
+
+! PeachPuff
+ red(185) = 1.00000000000000
+ green(185) = 0.854901960784314
+ blue(185) = 0.725490196078431
+
+! Green
+ red(186) = 0.000000000000000E+000
+ green(186) = 1.00000000000000
+ blue(186) = 0.000000000000000E+000
+
+! Blue1
+ red(187) = 0.000000000000000E+000
+ green(187) = 0.000000000000000E+000
+ blue(187) = 1.00000000000000
+
+! Seashell4
+ red(188) = 0.545098039215686
+ green(188) = 0.525490196078431
+ blue(188) = 0.509803921568627
+
+! dodgerblue
+ red(189) = 0.120000000000000
+ green(189) = 0.560000000000000
+ blue(189) = 1.00000000000000
+
+! MistyRose2
+ red(190) = 0.933333333333333
+ green(190) = 0.835294117647059
+ blue(190) = 0.823529411764706
+
+! Tomato
+ red(191) = 1.00000000000000
+ green(191) = 0.388235294117647
+ blue(191) = 0.278431372549020
+
+! Wheat
+ red(192) = 0.960784313725490
+ green(192) = 0.870588235294118
+ blue(192) = 0.701960784313725
+
+! LightBlue
+ red(193) = 0.678431372549020
+ green(193) = 0.847058823529412
+ blue(193) = 0.901960784313726
+
+! Chocolate
+ red(194) = 0.823529411764706
+ green(194) = 0.411764705882353
+ blue(194) = 0.117647058823529
+
+! Blue4
+ red(195) = 0.000000000000000E+000
+ green(195) = 0.000000000000000E+000
+ blue(195) = 0.545098039215686
+
+! LavenderBlush1
+ red(196) = 1.00000000000000
+ green(196) = 0.941176470588235
+ blue(196) = 0.960784313725490
+
+! Magenta
+ red(197) = 1.00000000000000
+ green(197) = 0.000000000000000E+000
+ blue(197) = 1.00000000000000
+
+! darkturquoise
+ red(198) = 0.000000000000000E+000
+ green(198) = 0.810000000000000
+ blue(198) = 0.820000000000000
+
+! blueviolet
+ red(199) = 0.540000000000000
+ green(199) = 0.170000000000000
+ blue(199) = 0.890000000000000
+
+! MintCream
+ red(200) = 0.960784313725490
+ green(200) = 1.00000000000000
+ blue(200) = 0.980392156862745
+
+! PaleGoldenrod
+ red(201) = 0.933333333333333
+ green(201) = 0.909803921568627
+ blue(201) = 0.666666666666667
+
+! MediumPurple
+ red(202) = 0.576470588235294
+ green(202) = 0.439215686274510
+ blue(202) = 0.858823529411765
+
+! PapayaWhip
+ red(203) = 1.00000000000000
+ green(203) = 0.937254901960784
+ blue(203) = 0.835294117647059
+
+! LavenderBlush4
+ red(204) = 0.545098039215686
+ green(204) = 0.513725490196078
+ blue(204) = 0.525490196078431
+
+! Cornsilk4
+ red(205) = 0.545098039215686
+ green(205) = 0.533333333333333
+ blue(205) = 0.470588235294118
+
+! LtGoldenrodYello
+ red(206) = 0.980392156862745
+ green(206) = 0.980392156862745
+ blue(206) = 0.823529411764706
+
+! limegreen
+ red(207) = 0.200000000000000
+ green(207) = 0.800000000000000
+ blue(207) = 0.200000000000000
+
+! LemonChiffon1
+ red(208) = 1.00000000000000
+ green(208) = 0.980392156862745
+ blue(208) = 0.803921568627451
+
+! DarkOrchid
+ red(209) = 0.600000000000000
+ green(209) = 0.196078431372549
+ blue(209) = 0.800000000000000
+
+! SlateBlue1
+ red(210) = 0.513725490196078
+ green(210) = 0.435294117647059
+ blue(210) = 1.00000000000000
+
+! chartreuse
+ red(211) = 0.500000000000000
+ green(211) = 1.00000000000000
+ blue(211) = 0.000000000000000E+000
+
+! PaleTurquoise
+ red(212) = 0.686274509803922
+ green(212) = 0.933333333333333
+ blue(212) = 0.933333333333333
+
+! NavajoWhite1
+ red(213) = 1.00000000000000
+ green(213) = 0.870588235294118
+ blue(213) = 0.678431372549020
+
+! LightSkyBlue2
+ red(214) = 0.643137254901961
+ green(214) = 0.827450980392157
+ blue(214) = 0.933333333333333
+
+! VioletRed
+ red(215) = 0.815686274509804
+ green(215) = 0.125490196078431
+ blue(215) = 0.564705882352941
+
+! mocassin
+ red(216) = 1.00000000000000
+ green(216) = 0.890000000000000
+ blue(216) = 0.710000000000000
+
+! OldLace
+ red(217) = 0.992156862745098
+ green(217) = 0.960784313725490
+ blue(217) = 0.901960784313726
+
+! deeppink
+ red(218) = 1.00000000000000
+ green(218) = 8.000000000000000E-002
+ blue(218) = 0.580000000000000
+
+! Honeydew3
+ red(219) = 0.756862745098039
+ green(219) = 0.803921568627451
+ blue(219) = 0.756862745098039
+
+! Gainsboro
+ red(220) = 0.862745098039216
+ green(220) = 0.862745098039216
+ blue(220) = 0.862745098039216
+
+! DarkSalmon
+ red(221) = 0.913725490196078
+ green(221) = 0.588235294117647
+ blue(221) = 0.478431372549020
+
+! AntiqueWhite1
+ red(222) = 1.00000000000000
+ green(222) = 0.937254901960784
+ blue(222) = 0.858823529411765
+
+! LightCyan
+ red(223) = 0.878431372549020
+ green(223) = 1.00000000000000
+ blue(223) = 1.00000000000000
+
+! ForestGreen
+ red(224) = 0.133333333333333
+ green(224) = 0.545098039215686
+ blue(224) = 0.133333333333333
+
+! Orchid
+ red(225) = 0.854901960784314
+ green(225) = 0.439215686274510
+ blue(225) = 0.839215686274510
+
+! PeachPuff2
+ red(226) = 0.933333333333333
+ green(226) = 0.796078431372549
+ blue(226) = 0.678431372549020
+
+! LightPink
+ red(227) = 1.00000000000000
+ green(227) = 0.713725490196078
+ blue(227) = 0.756862745098039
+
+! Sienna
+ red(228) = 0.627450980392157
+ green(228) = 0.321568627450980
+ blue(228) = 0.176470588235294
+
+! darkorchid
+ red(229) = 0.600000000000000
+ green(229) = 0.200000000000000
+ blue(229) = 0.800000000000000
+
+! MediumSlateBlue
+ red(230) = 0.482352941176471
+ green(230) = 0.407843137254902
+ blue(230) = 0.933333333333333
+
+! CadetBlue
+ red(231) = 0.372549019607843
+ green(231) = 0.619607843137255
+ blue(231) = 0.627450980392157
+
+! LawnGreen
+ red(232) = 0.486274509803922
+ green(232) = 0.988235294117647
+ blue(232) = 0.000000000000000E+000
+
+! Chartreuse
+ red(233) = 0.498039215686275
+ green(233) = 1.00000000000000
+ blue(233) = 0.000000000000000E+000
+
+! Brown
+ red(234) = 0.647058823529412
+ green(234) = 0.164705882352941
+ blue(234) = 0.164705882352941
+
+! Azure
+ red(235) = 0.941176470588235
+ green(235) = 1.00000000000000
+ blue(235) = 1.00000000000000
+
+! Bisque
+ red(236) = 1.00000000000000
+ green(236) = 0.894117647058824
+ blue(236) = 0.768627450980392
+
+! get minimum and maximum values of mesh coordinates
+ xmin = minval(coord(1,:))
+ zmin = minval(coord(2,:))
+ xmax = maxval(coord(1,:))
+ zmax = maxval(coord(2,:))
+ write(IOUT,*) 'X min, max = ',xmin,xmax
+ write(IOUT,*) 'Z min, max = ',zmin,zmax
+
+! ratio of physical page size/size of the domain meshed
+ ratio_page = min(rpercentz*sizez/(zmax-zmin),rpercentx*sizex/(xmax-xmin)) / 100.d0
+
+! compute the maximum of the norm of the vector
+ dispmax = maxval(sqrt(displ(1,:)**2 + displ(2,:)**2))
+ write(IOUT,*) 'Max norm = ',dispmax
+
+!
+!---- open PostScript file
+!
+ write(file_name,"('OUTPUT_FILES/vect',i6.6,'.ps')") it
+ open(unit=24,file=file_name,status='unknown')
+
+!
+!---- write PostScript header
+!
+ write(24,10) simulation_title
+ write(24,*) '/CM {28.5 mul} def'
+ write(24,*) '/LR {rlineto} def'
+ write(24,*) '/LT {lineto} def'
+ write(24,*) '/L {lineto} def'
+ write(24,*) '/MR {rmoveto} def'
+ write(24,*) '/MV {moveto} def'
+ write(24,*) '/M {moveto} def'
+ write(24,*) '/ST {stroke} def'
+ write(24,*) '/CP {closepath} def'
+ write(24,*) '/RG {setrgbcolor} def'
+ write(24,*) '/GF {gsave fill grestore} def'
+ write(24,*) '% different useful symbols'
+ write(24,*) '/Point {2 0 360 arc CP 0 setgray fill} def'
+ write(24,*) '/VDot {-0.75 -1.5 MR 1.5 0 LR 0 3. LR -1.5 0 LR'
+ write(24,*) 'CP fill} def'
+ write(24,*) '/HDot {-1.5 -0.75 MR 3. 0 LR 0 1.5 LR -3. 0 LR'
+ write(24,*) 'CP fill} def'
+ write(24,*) '/Cross {gsave 0.05 CM setlinewidth'
+ write(24,*) 'gsave 3 3 MR -6. -6. LR ST grestore'
+ write(24,*) 'gsave 3 -3 MR -6. 6. LR ST grestore'
+ write(24,*) '0.01 CM setlinewidth} def'
+ write(24,*) '/SmallLine {MV 0.07 CM 0 rlineto} def'
+ write(24,*) '/Diamond {gsave 0.05 CM setlinewidth 0 4.2 MR'
+ write(24,*) '-3 -4.2 LR 3 -4.2 LR 3 4.2 LR CP ST'
+ write(24,*) 'grestore 0.01 CM setlinewidth} def'
+ write(24,*) '%'
+ write(24,*) '% gray levels for the velocity model'
+ write(24,*) '/BK {setgray fill} def'
+ write(24,*) '% black and white version'
+ write(24,*) '%/BK {pop 1 setgray fill} def'
+ write(24,*) '%'
+ write(24,*) '% magenta for vectors'
+ write(24,*) '/Colvects {0.01 CM setlinewidth 1. 0. 1. RG} def'
+ write(24,*) '% black and white version'
+ write(24,*) '%/Colvects {0.01 CM setlinewidth 0. setgray} def'
+ write(24,*) '%'
+ write(24,*) '% chartreuse for macrobloc mesh'
+ write(24,*) '/Colmesh {0.02 CM setlinewidth 0.5 1. 0. RG} def'
+ write(24,*) '% black and white version'
+ write(24,*) '%/Colmesh {0.02 CM setlinewidth 0. setgray} def'
+ write(24,*) '%'
+ write(24,*) '% cyan for sources and receivers'
+ write(24,*) '/Colreceiv {0. 1. 1. RG} def'
+ write(24,*) '% black and white version'
+ write(24,*) '%/Colreceiv {0. setgray} def'
+ write(24,*) '%'
+ write(24,*) '% macro to draw an arrow'
+ write(24,*) '/F {MV LR gsave LR ST grestore LR ST} def'
+ write(24,*) '% macro to draw the contour of the elements'
+ write(24,*) '/CO {M counttomark 2 idiv {L} repeat cleartomark CP} def'
+ write(24,*) '%'
+ write(24,*) '.01 CM setlinewidth'
+ write(24,*) '/Times-Roman findfont'
+ write(24,*) '.35 CM scalefont setfont'
+ write(24,*) '%'
+ write(24,*) '/vshift ',-height/2,' CM def'
+ write(24,*) '/Rshow { currentpoint stroke MV'
+ write(24,*) 'dup stringwidth pop neg vshift MR show } def'
+ write(24,*) '/Cshow { currentpoint stroke MV'
+ write(24,*) 'dup stringwidth pop -2 div vshift MR show } def'
+ write(24,*) '/fN {/Helvetica-Bold findfont ',height,' CM scalefont setfont} def'
+ write(24,*) '%'
+ write(24,*) 'gsave newpath 90 rotate'
+ write(24,*) '0 ',-sizez,' CM translate 1. 1. scale'
+ write(24,*) '% uncomment this to zoom on parts of the mesh'
+ write(24,*) '% -32 CM -21 CM translate 3. 3. scale'
+ write(24,*) '% -52 CM -24 CM translate 4. 4. scale'
+ write(24,*) '%'
+
+!
+!--- write captions of PostScript figure
+!
+ write(24,*) '0 setgray'
+ write(24,*) '/Times-Roman findfont'
+ write(24,*) '.5 CM scalefont setfont'
+
+ write(24,*) '24. CM 1.2 CM MV'
+ write(24,610) usoffset,it
+ write(24,*) '%'
+
+ write(24,*) '24. CM 1.95 CM MV'
+ timeval = it*dt
+ if(timeval >= 1.d-3 .and. timeval < 1000.d0) then
+ write(24,600) usoffset,timeval
+ else
+ write(24,601) usoffset,timeval
+ endif
+ write(24,*) '%'
+ write(24,*) '24. CM 2.7 CM MV'
+ write(24,640) usoffset,dispmax
+ write(24,*) '%'
+ write(24,*) '24. CM 3.45 CM MV'
+ write(24,620) usoffset,cutsnaps*100.d0
+
+ write(24,*) '%'
+ write(24,*) '/Times-Roman findfont'
+ write(24,*) '.6 CM scalefont setfont'
+ if(colors == 1) write(24,*) '.4 .9 .9 setrgbcolor'
+ write(24,*) '11 CM 1.1 CM MV'
+ write(24,*) '(X axis) show'
+ write(24,*) '%'
+ write(24,*) '1.4 CM 9.5 CM MV'
+ write(24,*) 'currentpoint gsave translate 90 rotate 0 0 moveto'
+ write(24,*) '(Y axis) show'
+ write(24,*) 'grestore'
+ write(24,*) '%'
+ write(24,*) '/Times-Roman findfont'
+ write(24,*) '.7 CM scalefont setfont'
+ if(colors == 1) write(24,*) '.8 0 .8 setrgbcolor'
+ write(24,*) '24.35 CM 18.9 CM MV'
+ write(24,*) usoffset,' CM 2 div neg 0 MR'
+ write(24,*) 'currentpoint gsave translate -90 rotate 0 0 moveto'
+ if(imagetype == 1) then
+ write(24,*) '(Displacement vector field) show'
+ else if(imagetype == 2) then
+ write(24,*) '(Velocity vector field) show'
+ else if(imagetype == 3) then
+ write(24,*) '(Acceleration vector field) show'
+ else
+ call exit_MPI('Bad field code in PostScript display')
+ endif
+ write(24,*) 'grestore'
+ write(24,*) '25.35 CM 18.9 CM MV'
+ write(24,*) usoffset,' CM 2 div neg 0 MR'
+ write(24,*) 'currentpoint gsave translate -90 rotate 0 0 moveto'
+ write(24,*) '(',simulation_title,') show'
+ write(24,*) 'grestore'
+ write(24,*) '26.45 CM 18.9 CM MV'
+ write(24,*) usoffset,' CM 2 div neg 0 MR'
+ write(24,*) 'currentpoint gsave translate -90 rotate 0 0 moveto'
+
+ if(coupled_acoustic_elastic) then
+ write(24,*) '(Coupled Acoustic/Elastic Wave 2D - SEM) show'
+ else if(any_acoustic) then
+ write(24,*) '(Acoustic Wave 2D - Spectral Element Method) show'
+ else
+ write(24,*) '(Elastic Wave 2D - Spectral Element Method) show'
+ endif
+
+ write(24,*) 'grestore'
+
+ write(24,*) '%'
+ write(24,*) '1 1 scale'
+ write(24,*) '%'
+
+!
+!---- print the spectral elements mesh in PostScript
+!
+
+ write(IOUT,*) 'Shape functions based on ',ngnod,' control nodes'
+
+ convert = PI / 180.d0
+
+!
+!---- draw the velocity model in background
+!
+ if(modelvect) then
+
+ do ispec=1,nspec
+ do i=1,NGLLX-subsamp,subsamp
+ do j=1,NGLLX-subsamp,subsamp
+
+ if((vpmax-vpmin)/vpmin > 0.02d0) then
+ if(assign_external_model) then
+ x1 = (vpext(i,j,ispec)-vpmin) / (vpmax-vpmin)
+ else
+ material = kmato(ispec)
+ rlamda = elastcoef(1,material)
+ rmu = elastcoef(2,material)
+ denst = density(material)
+ rKvol = rlamda + 2.d0*rmu/3.d0
+ cploc = sqrt((rKvol + 4.d0*rmu/3.d0)/denst)
+ x1 = (cploc-vpmin)/(vpmax-vpmin)
+ endif
+ else
+ x1 = 0.5d0
+ endif
+
+! rescale to avoid very dark gray levels
+ x1 = x1*0.7 + 0.2
+ if(x1 > 1.d0) x1=1.d0
+
+! invert scale: white = vpmin, dark gray = vpmax
+ x1 = 1.d0 - x1
+
+ xw = coord(1,ibool(i,j,ispec))
+ zw = coord(2,ibool(i,j,ispec))
+ xw = (xw-xmin)*ratio_page + orig_x
+ zw = (zw-zmin)*ratio_page + orig_z
+ xw = xw * centim
+ zw = zw * centim
+ write(24,500) xw,zw
+
+ xw = coord(1,ibool(i+subsamp,j,ispec))
+ zw = coord(2,ibool(i+subsamp,j,ispec))
+ xw = (xw-xmin)*ratio_page + orig_x
+ zw = (zw-zmin)*ratio_page + orig_z
+ xw = xw * centim
+ zw = zw * centim
+ write(24,499) xw,zw
+
+ xw = coord(1,ibool(i+subsamp,j+subsamp,ispec))
+ zw = coord(2,ibool(i+subsamp,j+subsamp,ispec))
+ xw = (xw-xmin)*ratio_page + orig_x
+ zw = (zw-zmin)*ratio_page + orig_z
+ xw = xw * centim
+ zw = zw * centim
+ write(24,499) xw,zw
+
+ xw = coord(1,ibool(i,j+subsamp,ispec))
+ zw = coord(2,ibool(i,j+subsamp,ispec))
+ xw = (xw-xmin)*ratio_page + orig_x
+ zw = (zw-zmin)*ratio_page + orig_z
+ xw = xw * centim
+ zw = zw * centim
+ write(24,499) xw,zw
+
+! display P-velocity model using gray levels
+ write(24,604) x1
+
+ enddo
+ enddo
+ enddo
+
+ endif
+
+!
+!---- draw the spectral element mesh
+!
+
+ write(24,*) '%'
+ write(24,*) '% spectral element mesh'
+ write(24,*) '%'
+
+ do ispec=1,nspec
+
+ write(24,*) '% elem ',ispec
+
+ do i=1,pointsdisp
+ do j=1,pointsdisp
+ xinterp(i,j) = 0.d0
+ zinterp(i,j) = 0.d0
+ do in = 1,ngnod
+ nnum = knods(in,ispec)
+ xinterp(i,j) = xinterp(i,j) + shapeint(in,i,j)*coorg(1,nnum)
+ zinterp(i,j) = zinterp(i,j) + shapeint(in,i,j)*coorg(2,nnum)
+ enddo
+ enddo
+ enddo
+
+ is = 1
+ ir = 1
+ x1 = (xinterp(ir,is)-xmin)*ratio_page + orig_x
+ z1 = (zinterp(ir,is)-zmin)*ratio_page + orig_z
+ x1 = x1 * centim
+ z1 = z1 * centim
+ write(24,*) 'mark'
+ write(24,681) x1,z1
+
+ if(ngnod == 4) then
+
+! draw straight lines if elements have 4 nodes
+
+ ir=pointsdisp
+ x2 = (xinterp(ir,is)-xmin)*ratio_page + orig_x
+ z2 = (zinterp(ir,is)-zmin)*ratio_page + orig_z
+ x2 = x2 * centim
+ z2 = z2 * centim
+ write(24,681) x2,z2
+
+ ir=pointsdisp
+ is=pointsdisp
+ x2 = (xinterp(ir,is)-xmin)*ratio_page + orig_x
+ z2 = (zinterp(ir,is)-zmin)*ratio_page + orig_z
+ x2 = x2 * centim
+ z2 = z2 * centim
+ write(24,681) x2,z2
+
+ is=pointsdisp
+ ir=1
+ x2 = (xinterp(ir,is)-xmin)*ratio_page + orig_x
+ z2 = (zinterp(ir,is)-zmin)*ratio_page + orig_z
+ x2 = x2 * centim
+ z2 = z2 * centim
+ write(24,681) x2,z2
+
+ ir=1
+ is=2
+ x2 = (xinterp(ir,is)-xmin)*ratio_page + orig_x
+ z2 = (zinterp(ir,is)-zmin)*ratio_page + orig_z
+ x2 = x2 * centim
+ z2 = z2 * centim
+ write(24,681) x2,z2
+
+ else
+
+! draw curved lines if elements have 9 nodes
+ do ir=2,pointsdisp
+ x2 = (xinterp(ir,is)-xmin)*ratio_page + orig_x
+ z2 = (zinterp(ir,is)-zmin)*ratio_page + orig_z
+ x2 = x2 * centim
+ z2 = z2 * centim
+ write(24,681) x2,z2
+ enddo
+
+ ir=pointsdisp
+ do is=2,pointsdisp
+ x2 = (xinterp(ir,is)-xmin)*ratio_page + orig_x
+ z2 = (zinterp(ir,is)-zmin)*ratio_page + orig_z
+ x2 = x2 * centim
+ z2 = z2 * centim
+ write(24,681) x2,z2
+ enddo
+
+ is=pointsdisp
+ do ir=pointsdisp-1,1,-1
+ x2 = (xinterp(ir,is)-xmin)*ratio_page + orig_x
+ z2 = (zinterp(ir,is)-zmin)*ratio_page + orig_z
+ x2 = x2 * centim
+ z2 = z2 * centim
+ write(24,681) x2,z2
+ enddo
+
+ ir=1
+ do is=pointsdisp-1,2,-1
+ x2 = (xinterp(ir,is)-xmin)*ratio_page + orig_x
+ z2 = (zinterp(ir,is)-zmin)*ratio_page + orig_z
+ x2 = x2 * centim
+ z2 = z2 * centim
+ write(24,681) x2,z2
+ enddo
+
+ endif
+
+ write(24,*) 'CO'
+
+ if(colors == 1) then
+
+! use a different color for each material set
+ imat = kmato(ispec)
+ icol = mod(imat - 1,NUM_COLORS) + 1
+
+ if(meshvect) then
+ write(24,680) red(icol),green(icol),blue(icol)
+ else
+ write(24,679) red(icol),green(icol),blue(icol)
+ endif
+
+ endif
+
+ if(meshvect) then
+ if(modelvect) then
+ write(24,*) 'Colmesh ST'
+ else
+ write(24,*) '0 setgray ST'
+ endif
+ endif
+
+! write the element number, the group number and the material number inside the element
+ if(numbers == 1) then
+
+ xw = (coorg(1,knods(1,ispec)) + coorg(1,knods(2,ispec)) + coorg(1,knods(3,ispec)) + coorg(1,knods(4,ispec))) / 4.d0
+ zw = (coorg(2,knods(1,ispec)) + coorg(2,knods(2,ispec)) + coorg(2,knods(3,ispec)) + coorg(2,knods(4,ispec))) / 4.d0
+ xw = (xw-xmin)*ratio_page + orig_x
+ zw = (zw-zmin)*ratio_page + orig_z
+ xw = xw * centim
+ zw = zw * centim
+ if(colors == 1) write(24,*) '1 setgray'
+
+ write(24,500) xw,zw
+
+! write spectral element number
+ write(24,502) ispec
+
+ endif
+
+ enddo
+
+!
+!--- draw absorbing boundaries with a thick color line
+!
+
+ if(anyabs .and. boundvect) then
+
+ write(24,*) '%'
+ write(24,*) '% boundary conditions on the mesh'
+ write(24,*) '%'
+
+! use green color
+ write(24,*) '0 1 0 RG'
+
+ write(24,*) '0.10 CM setlinewidth'
+ write(24,*) '% uncomment this when zooming on parts of the mesh'
+ write(24,*) '% 0.02 CM setlinewidth'
+
+ do inum = 1,nelemabs
+ ispec = numabs(inum)
+
+ do iedge = 1,4
+
+ if(codeabs(iedge,inum) /= 0) then
+
+ if(iedge == ITOP) then
+ ideb = 3
+ ifin = 4
+ else if(iedge == IBOTTOM) then
+ ideb = 1
+ ifin = 2
+ else if(iedge == ILEFT) then
+ ideb = 4
+ ifin = 1
+ else if(iedge == IRIGHT) then
+ ideb = 2
+ ifin = 3
+ else
+ call exit_MPI('Wrong absorbing boundary code')
+ endif
+
+ x1 = (coorg(1,knods(ideb,ispec))-xmin)*ratio_page + orig_x
+ z1 = (coorg(2,knods(ideb,ispec))-zmin)*ratio_page + orig_z
+ x2 = (coorg(1,knods(ifin,ispec))-xmin)*ratio_page + orig_x
+ z2 = (coorg(2,knods(ifin,ispec))-zmin)*ratio_page + orig_z
+ x1 = x1 * centim
+ z1 = z1 * centim
+ x2 = x2 * centim
+ z2 = z2 * centim
+ write(24,602) x1,z1,x2,z2
+
+ endif
+ enddo
+
+ enddo
+
+ write(24,*) '0 setgray'
+ write(24,*) '0.01 CM setlinewidth'
+
+ endif
+
+!
+!---- draw the fluid-solid coupling edges with a thick color line
+!
+
+ if(coupled_acoustic_elastic .and. boundvect) then
+
+ write(24,*) '%'
+ write(24,*) '% fluid-solid coupling edges in the mesh'
+ write(24,*) '%'
+
+ write(24,*) '0.10 CM setlinewidth'
+ write(24,*) '% uncomment this when zooming on parts of the mesh'
+ write(24,*) '% 0.02 CM setlinewidth'
+
+! loop on all the coupling edges
+ do inum = 1,num_fluid_solid_edges
+
+! get the edge of the acoustic element
+ ispec = fluid_solid_acoustic_ispec(inum)
+ iedge = fluid_solid_acoustic_iedge(inum)
+
+! use pink color
+ write(24,*) '1 0.75 0.8 RG'
+
+ if(iedge == ITOP) then
+ ideb = 3
+ ifin = 4
+ else if(iedge == IBOTTOM) then
+ ideb = 1
+ ifin = 2
+ else if(iedge == ILEFT) then
+ ideb = 4
+ ifin = 1
+ else if(iedge == IRIGHT) then
+ ideb = 2
+ ifin = 3
+ else
+ call exit_MPI('Wrong fluid-solid coupling edge code')
+ endif
+
+ x1 = (coorg(1,knods(ideb,ispec))-xmin)*ratio_page + orig_x
+ z1 = (coorg(2,knods(ideb,ispec))-zmin)*ratio_page + orig_z
+ x2 = (coorg(1,knods(ifin,ispec))-xmin)*ratio_page + orig_x
+ z2 = (coorg(2,knods(ifin,ispec))-zmin)*ratio_page + orig_z
+ x1 = x1 * centim
+ z1 = z1 * centim
+ x2 = x2 * centim
+ z2 = z2 * centim
+ write(24,602) x1,z1,x2,z2
+
+ enddo
+
+ write(24,*) '0 setgray'
+ write(24,*) '0.01 CM setlinewidth'
+
+ endif
+
+!
+!---- draw the normalized vector field
+!
+
+! return if the maximum vector equals zero (no source)
+ if(dispmax == 0.d0) then
+ write(IOUT,*) 'null vector: returning!'
+ return
+ endif
+
+ write(24,*) '%'
+ write(24,*) '% vector field'
+ write(24,*) '%'
+
+! color arrows if we draw the velocity model in the background
+ if(modelvect) then
+ write(24,*) 'Colvects'
+ else
+ write(24,*) '0 setgray'
+ endif
+
+ if(interpol) then
+
+ write(IOUT,*) 'Interpolating the vector field...'
+
+ do ispec=1,nspec
+
+! interpolation on a uniform grid
+ if(mod(ispec,1000) == 0) write(IOUT,*) 'Interpolation uniform grid element ',ispec
+
+! option to plot only lowerleft corner value to avoid very large files if dense meshes
+ if(plot_lowerleft_corner_only) then
+ pointsdisp_loop = 1
+ else
+ pointsdisp_loop = pointsdisp
+ endif
+
+ do i=1,pointsdisp_loop
+ do j=1,pointsdisp_loop
+
+ xinterp(i,j) = 0.d0
+ zinterp(i,j) = 0.d0
+ do in = 1,ngnod
+ nnum = knods(in,ispec)
+ xinterp(i,j) = xinterp(i,j) + shapeint(in,i,j)*coorg(1,nnum)
+ zinterp(i,j) = zinterp(i,j) + shapeint(in,i,j)*coorg(2,nnum)
+ enddo
+
+ Uxinterp(i,j) = 0.d0
+ Uzinterp(i,j) = 0.d0
+
+ do k=1,NGLLX
+ do l=1,NGLLX
+
+ Uxinterp(i,j) = Uxinterp(i,j) + displ(1,ibool(k,l,ispec))*flagrange(k,i)*flagrange(l,j)
+ Uzinterp(i,j) = Uzinterp(i,j) + displ(2,ibool(k,l,ispec))*flagrange(k,i)*flagrange(l,j)
+
+ enddo
+ enddo
+
+ x1 =(xinterp(i,j)-xmin)*ratio_page
+ z1 =(zinterp(i,j)-zmin)*ratio_page
+
+ x2 = Uxinterp(i,j)*sizemax_arrows/dispmax
+ z2 = Uzinterp(i,j)*sizemax_arrows/dispmax
+
+ d = sqrt(x2**2 + z2**2)
+
+! ignore if vector is too small
+ if(d > cutsnaps*sizemax_arrows) then
+
+ d1 = d * ARROW_RATIO
+ d2 = d1 * cos(ARROW_ANGLE*convert)
+
+ dummy = x2/d
+ if(dummy > 0.9999d0) dummy = 0.9999d0
+ if(dummy < -0.9999d0) dummy = -0.9999d0
+ theta = acos(dummy)
+
+ if(z2 < 0.d0) theta = 360.d0*convert - theta
+ thetaup = theta - ARROW_ANGLE*convert
+ thetadown = theta + ARROW_ANGLE*convert
+
+! draw the vector
+ x1 = (orig_x+x1) * centim
+ z1 = (orig_z+z1) * centim
+ x2 = x2 * centim
+ z2 = z2 * centim
+ xa = -d2*cos(thetaup)
+ za = -d2*sin(thetaup)
+ xa = xa * centim
+ za = za * centim
+ xb = -d2*cos(thetadown)
+ zb = -d2*sin(thetadown)
+ xb = xb * centim
+ zb = zb * centim
+ write(postscript_line,700) xb,zb,xa,za,x2,z2,x1,z1
+
+! suppress useless white spaces to make PostScript file smaller
+
+! suppress leading white spaces again, if any
+ postscript_line = adjustl(postscript_line)
+
+ line_length = len_trim(postscript_line)
+ index_char = 1
+ first = .false.
+ do ii = 1,line_length-1
+ if(ch1(ii) /= ' ' .or. first) then
+ if(ch1(ii) /= ' ' .or. ch1(ii+1) /= ' ') then
+ ch2(index_char) = ch1(ii)
+ index_char = index_char + 1
+ first = .true.
+ endif
+ endif
+ enddo
+ ch2(index_char) = ch1(line_length)
+ write(24,"(100(a1))") (ch2(ii), ii=1,index_char)
+
+ endif
+
+ enddo
+ enddo
+ enddo
+
+! draw the vectors at the nodes of the mesh if we do not interpolate the display on a regular grid
+ else
+
+ do ipoin=1,npoin
+
+ x1 =(coord(1,ipoin)-xmin)*ratio_page
+ z1 =(coord(2,ipoin)-zmin)*ratio_page
+
+ x2 = displ(1,ipoin)*sizemax_arrows/dispmax
+ z2 = displ(2,ipoin)*sizemax_arrows/dispmax
+
+ d = sqrt(x2**2 + z2**2)
+
+! ignore if vector is too small
+ if(d > cutsnaps*sizemax_arrows) then
+
+ d1 = d * ARROW_RATIO
+ d2 = d1 * cos(ARROW_ANGLE*convert)
+
+ dummy = x2/d
+ if(dummy > 0.9999d0) dummy = 0.9999d0
+ if(dummy < -0.9999d0) dummy = -0.9999d0
+ theta = acos(dummy)
+
+ if(z2 < 0.d0) theta = 360.d0*convert - theta
+ thetaup = theta - ARROW_ANGLE*convert
+ thetadown = theta + ARROW_ANGLE*convert
+
+! draw the vector
+ x1 = (orig_x+x1) * centim
+ z1 = (orig_z+z1) * centim
+ x2 = x2 * centim
+ z2 = z2 * centim
+ xa = -d2*cos(thetaup)
+ za = -d2*sin(thetaup)
+ xa = xa * centim
+ za = za * centim
+ xb = -d2*cos(thetadown)
+ zb = -d2*sin(thetadown)
+ xb = xb * centim
+ zb = zb * centim
+ write(postscript_line,700) xb,zb,xa,za,x2,z2,x1,z1
+
+! suppress useless white spaces to make PostScript file smaller
+
+! suppress leading white spaces again, if any
+ postscript_line = adjustl(postscript_line)
+
+ line_length = len_trim(postscript_line)
+ index_char = 1
+ first = .false.
+ do ii = 1,line_length-1
+ if(ch1(ii) /= ' ' .or. first) then
+ if(ch1(ii) /= ' ' .or. ch1(ii+1) /= ' ') then
+ ch2(index_char) = ch1(ii)
+ index_char = index_char + 1
+ first = .true.
+ endif
+ endif
+ enddo
+ ch2(index_char) = ch1(line_length)
+ write(24,"(100(a1))") (ch2(ii), ii=1,index_char)
+
+ endif
+
+ enddo
+
+ endif
+
+ write(24,*) '0 setgray'
+
+! sources and receivers in color if velocity model
+ if(modelvect) then
+ write(24,*) 'Colreceiv'
+ else
+ write(24,*) '0 setgray'
+ endif
+
+!
+!---- write position of the source
+!
+ xw = x_source
+ zw = z_source
+ xw = (xw-xmin)*ratio_page + orig_x
+ zw = (zw-zmin)*ratio_page + orig_z
+ xw = xw * centim
+ zw = zw * centim
+ write(24,500) xw,zw
+ write(24,*) 'Cross'
+
+!
+!---- write position of the receivers
+!
+ do i=1,nrec
+ if(i == 1) write(24,*) '% beginning of receiver line'
+ if(i == nrec) write(24,*) '% end of receiver line'
+
+ xw = st_xval(i)
+ zw = st_zval(i)
+
+ xw = (xw-xmin)*ratio_page + orig_x
+ zw = (zw-zmin)*ratio_page + orig_z
+ xw = xw * centim
+ zw = zw * centim
+ write(24,500) xw,zw
+ write(24,*) 'Diamond'
+ enddo
+
+ write(24,*) '%'
+ write(24,*) 'grestore'
+ write(24,*) 'showpage'
+
+ close(24)
+
+ 10 format('%!PS-Adobe-2.0',/,'%%',/,'%% Title: ',a50,/,'%% Created by: Specfem2D',/,'%% Author: Dimitri Komatitsch',/,'%%')
+ 600 format(f6.3,' neg CM 0 MR (Time =',f8.3,' s) show')
+ 601 format(f6.3,' neg CM 0 MR (Time =',1pe12.3,' s) show')
+ 610 format(f6.3,' neg CM 0 MR (Time step = ',i7,') show')
+ 620 format(f6.3,' neg CM 0 MR (Cut =',f5.2,' \%) show')
+ 640 format(f6.3,' neg CM 0 MR (Max norm =',1pe12.3,') show')
+
+ 499 format(f6.2,1x,f6.2,' L')
+ 500 format(f6.2,1x,f6.2,' M')
+ 502 format('fN (',i4,') Cshow')
+ 679 format(f12.6,1x,f12.6,1x,f12.6,' RG fill stroke')
+ 680 format(f12.6,1x,f12.6,1x,f12.6,' RG GF')
+ 681 format(f6.2,1x,f6.2)
+ 602 format(f6.2,1x,f6.2,' M ',f6.2,1x,f6.2,' L ST')
+ 604 format('CP ',f12.6,' BK')
+ 700 format(8(f6.2,1x),'F')
+
+ end subroutine plotpost
+
Deleted: seismo/2D/SPECFEM2D/trunk/plotpost.f90
===================================================================
--- seismo/2D/SPECFEM2D/trunk/plotpost.f90 2007-06-26 00:48:37 UTC (rev 8530)
+++ seismo/2D/SPECFEM2D/trunk/plotpost.f90 2007-12-07 23:54:02 UTC (rev 8531)
@@ -1,2059 +0,0 @@
-
-!========================================================================
-!
-! S P E C F E M 2 D Version 5.2
-! ------------------------------
-!
-! Dimitri Komatitsch
-! University of Pau, France
-!
-! (c) April 2007
-!
-!========================================================================
-
- subroutine plotpost(displ,coord,vpext,x_source,z_source,st_xval,st_zval,it,dt,coorg, &
- xinterp,zinterp,shapeint,Uxinterp,Uzinterp,flagrange,density,elastcoef,knods,kmato,ibool, &
- numabs,codeabs,anyabs,simulation_title,npoin,npgeo,vpmin,vpmax,nrec, &
- colors,numbers,subsamp,imagetype,interpol,meshvect,modelvect, &
- boundvect,assign_external_model,cutsnaps,sizemax_arrows,nelemabs,numat,pointsdisp, &
- nspec,ngnod,coupled_acoustic_elastic,any_acoustic,plot_lowerleft_corner_only, &
- fluid_solid_acoustic_ispec,fluid_solid_acoustic_iedge,num_fluid_solid_edges)
-
-!
-! PostScript display routine
-!
-
- implicit none
-
- include "constants.h"
-
-! color palette
- integer, parameter :: NUM_COLORS = 236
- double precision, dimension(NUM_COLORS) :: red,green,blue
-
- integer it,nrec,nelemabs,numat,pointsdisp,pointsdisp_loop,nspec
- integer i,npoin,npgeo,ngnod
-
- integer kmato(nspec),knods(ngnod,nspec)
- integer ibool(NGLLX,NGLLZ,nspec)
-
- double precision xinterp(pointsdisp,pointsdisp),zinterp(pointsdisp,pointsdisp)
- double precision shapeint(ngnod,pointsdisp,pointsdisp)
- double precision Uxinterp(pointsdisp,pointsdisp)
- double precision Uzinterp(pointsdisp,pointsdisp)
- double precision flagrange(NGLLX,pointsdisp)
- double precision density(numat),elastcoef(4,numat)
-
- double precision dt,timeval,x_source,z_source
- double precision displ(NDIM,npoin),coord(NDIM,npoin)
- double precision vpext(NGLLX,NGLLZ,nspec)
-
- double precision coorg(NDIM,npgeo)
- double precision, dimension(nrec) :: st_xval,st_zval
-
- integer numabs(nelemabs),codeabs(4,nelemabs)
- logical anyabs,coupled_acoustic_elastic,any_acoustic,plot_lowerleft_corner_only
-
-! for fluid/solid edge detection
- integer :: num_fluid_solid_edges
- integer, dimension(num_fluid_solid_edges) :: fluid_solid_acoustic_ispec,fluid_solid_acoustic_iedge
-
- double precision xmax,zmax,height,xw,zw,usoffset,sizex,sizez,vpmin,vpmax
-
-! for the file name
- character(len=100) :: file_name
-
-! to suppress useless white spaces in postscript lines
- character(len=100) :: postscript_line
- character(len=1), dimension(100) :: ch1,ch2
- equivalence (postscript_line,ch1)
- logical :: first
-
- double precision convert,x1,rlamda,rmu,denst,rKvol,cploc,xa,za,xb,zb
- double precision z1,x2,z2,d,d1,d2,dummy,theta,thetaup,thetadown
-
- integer k,j,ispec,material,is,ir,imat,icol,l,line_length
- integer index_char,ii,ipoin,in,nnum,inum,ideb,ifin,iedge
-
- integer colors,numbers,subsamp,imagetype
- logical interpol,meshvect,modelvect,boundvect,assign_external_model
- double precision cutsnaps,sizemax_arrows
-
- double precision ratio_page,dispmax,xmin,zmin
-
-! title of the plot
- character(len=60) simulation_title
-
-! A4 or US letter paper
- if(US_LETTER) then
- usoffset = 1.75d0
- sizex = 27.94d0
- sizez = 21.59d0
- else
- usoffset = 0.d0
- sizex = 29.7d0
- sizez = 21.d0
- endif
-
-! height of domain numbers in centimeters
- height = 0.25d0
-
-! define color palette in random order
-
-! red
- red(1) = 1.00000000000000
- green(1) = 0.000000000000000E+000
- blue(1) = 0.000000000000000E+000
-
-! DodgerBlue2
- red(2) = 0.109803921568627
- green(2) = 0.525490196078431
- blue(2) = 0.933333333333333
-
-! gold
- red(3) = 1.00000000000000
- green(3) = 0.840000000000000
- blue(3) = 0.000000000000000E+000
-
-! springgreen
- red(4) = 0.000000000000000E+000
- green(4) = 1.00000000000000
- blue(4) = 0.500000000000000
-
-! NavajoWhite
- red(5) = 1.00000000000000
- green(5) = 0.870588235294118
- blue(5) = 0.678431372549020
-
-! SteelBlue3
- red(6) = 0.309803921568627
- green(6) = 0.580392156862745
- blue(6) = 0.803921568627451
-
-! Ivory3
- red(7) = 0.803921568627451
- green(7) = 0.803921568627451
- blue(7) = 0.756862745098039
-
-! SkyBlue4
- red(8) = 0.290196078431373
- green(8) = 0.439215686274510
- blue(8) = 0.545098039215686
-
-! Snow
- red(9) = 0.980392156862745
- green(9) = 0.980392156862745
- blue(9) = 0.980392156862745
-
-! SteelBlue
- red(10) = 0.274509803921569
- green(10) = 0.509803921568627
- blue(10) = 0.705882352941177
-
-! Bisque3
- red(11) = 0.803921568627451
- green(11) = 0.717647058823529
- blue(11) = 0.619607843137255
-
-! Salmon
- red(12) = 0.980392156862745
- green(12) = 0.501960784313725
- blue(12) = 0.447058823529412
-
-! SlateBlue2
- red(13) = 0.478431372549020
- green(13) = 0.403921568627451
- blue(13) = 0.933333333333333
-
-! NavajoWhite2
- red(14) = 0.933333333333333
- green(14) = 0.811764705882353
- blue(14) = 0.631372549019608
-
-! MediumBlue
- red(15) = 0.000000000000000E+000
- green(15) = 0.000000000000000E+000
- blue(15) = 0.803921568627451
-
-! LightCoral
- red(16) = 0.941176470588235
- green(16) = 0.501960784313725
- blue(16) = 0.501960784313725
-
-! FloralWhite
- red(17) = 1.00000000000000
- green(17) = 0.980392156862745
- blue(17) = 0.941176470588235
-
-! Cornsilk3
- red(18) = 0.803921568627451
- green(18) = 0.784313725490196
- blue(18) = 0.694117647058824
-
-! GhostWhite
- red(19) = 0.972549019607843
- green(19) = 0.972549019607843
- blue(19) = 1.00000000000000
-
-! blue
- red(20) = 0.000000000000000E+000
- green(20) = 0.000000000000000E+000
- blue(20) = 1.00000000000000
-
-! Linen
- red(21) = 0.980392156862745
- green(21) = 0.941176470588235
- blue(21) = 0.901960784313726
-
-! peachpuff
- red(22) = 1.00000000000000
- green(22) = 0.850000000000000
- blue(22) = 0.730000000000000
-
-! Cornsilk1
- red(23) = 1.00000000000000
- green(23) = 0.972549019607843
- blue(23) = 0.862745098039216
-
-! LightSalmon
- red(24) = 1.00000000000000
- green(24) = 0.627450980392157
- blue(24) = 0.478431372549020
-
-! DeepSkyBlue1
- red(25) = 0.000000000000000E+000
- green(25) = 0.749019607843137
- blue(25) = 1.00000000000000
-
-! LemonChiffon4
- red(26) = 0.545098039215686
- green(26) = 0.537254901960784
- blue(26) = 0.439215686274510
-
-! PeachPuff1
- red(27) = 1.00000000000000
- green(27) = 0.854901960784314
- blue(27) = 0.725490196078431
-
-! BlanchedAlmond
- red(28) = 1.00000000000000
- green(28) = 0.921568627450980
- blue(28) = 0.803921568627451
-
-! SlateBlue3
- red(29) = 0.411764705882353
- green(29) = 0.349019607843137
- blue(29) = 0.803921568627451
-
-! LightSkyBlue1
- red(30) = 0.690196078431373
- green(30) = 0.886274509803922
- blue(30) = 1.00000000000000
-
-! DarkViolet
- red(31) = 0.580392156862745
- green(31) = 0.000000000000000E+000
- blue(31) = 0.827450980392157
-
-! Azure3
- red(32) = 0.756862745098039
- green(32) = 0.803921568627451
- blue(32) = 0.803921568627451
-
-! LavenderBlush3
- red(33) = 0.803921568627451
- green(33) = 0.756862745098039
- blue(33) = 0.772549019607843
-
-! Honeydew1
- red(34) = 0.941176470588235
- green(34) = 1.00000000000000
- blue(34) = 0.941176470588235
-
-! Ivory2
- red(35) = 0.933333333333333
- green(35) = 0.933333333333333
- blue(35) = 0.878431372549020
-
-! RosyBrown
- red(36) = 0.737254901960784
- green(36) = 0.560784313725490
- blue(36) = 0.560784313725490
-
-! Thistle
- red(37) = 0.847058823529412
- green(37) = 0.749019607843137
- blue(37) = 0.847058823529412
-
-! Orange
- red(38) = 1.00000000000000
- green(38) = 0.647058823529412
- blue(38) = 0.000000000000000E+000
-
-! DarkSeaGreen
- red(39) = 0.560784313725490
- green(39) = 0.737254901960784
- blue(39) = 0.560784313725490
-
-! Moccasin
- red(40) = 1.00000000000000
- green(40) = 0.894117647058824
- blue(40) = 0.709803921568627
-
-! DeepSkyBlue2
- red(41) = 0.000000000000000E+000
- green(41) = 0.698039215686274
- blue(41) = 0.933333333333333
-
-! SlateGray4
- red(42) = 0.423529411764706
- green(42) = 0.482352941176471
- blue(42) = 0.545098039215686
-
-! Beige
- red(43) = 0.960784313725490
- green(43) = 0.960784313725490
- blue(43) = 0.862745098039216
-
-! Gold
- red(44) = 1.00000000000000
- green(44) = 0.843137254901961
- blue(44) = 0.000000000000000E+000
-
-! SlateBlue
- red(45) = 0.415686274509804
- green(45) = 0.352941176470588
- blue(45) = 0.803921568627451
-
-! SteelBlue1
- red(46) = 0.388235294117647
- green(46) = 0.721568627450980
- blue(46) = 1.00000000000000
-
-! SaddleBrown
- red(47) = 0.545098039215686
- green(47) = 0.270588235294118
- blue(47) = 7.450980392156863E-002
-
-! Pink
- red(48) = 1.00000000000000
- green(48) = 0.752941176470588
- blue(48) = 0.796078431372549
-
-! Black
- red(49) = 0.000000000000000E+000
- green(49) = 0.000000000000000E+000
- blue(49) = 0.000000000000000E+000
-
-! SlateGrey
- red(50) = 0.439215686274510
- green(50) = 0.501960784313725
- blue(50) = 0.564705882352941
-
-! Ivory
- red(51) = 1.00000000000000
- green(51) = 1.00000000000000
- blue(51) = 0.941176470588235
-
-! OliveDrab
- red(52) = 0.419607843137255
- green(52) = 0.556862745098039
- blue(52) = 0.137254901960784
-
-! Ivory1
- red(53) = 1.00000000000000
- green(53) = 1.00000000000000
- blue(53) = 0.941176470588235
-
-! SkyBlue
- red(54) = 0.529411764705882
- green(54) = 0.807843137254902
- blue(54) = 0.921568627450980
-
-! MistyRose3
- red(55) = 0.803921568627451
- green(55) = 0.717647058823529
- blue(55) = 0.709803921568627
-
-! LimeGreen
- red(56) = 0.196078431372549
- green(56) = 0.803921568627451
- blue(56) = 0.196078431372549
-
-! Purple
- red(57) = 0.627450980392157
- green(57) = 0.125490196078431
- blue(57) = 0.941176470588235
-
-! SkyBlue2
- red(58) = 0.494117647058824
- green(58) = 0.752941176470588
- blue(58) = 0.933333333333333
-
-! Red
- red(59) = 1.00000000000000
- green(59) = 0.000000000000000E+000
- blue(59) = 0.000000000000000E+000
-
-! DarkKhaki
- red(60) = 0.741176470588235
- green(60) = 0.717647058823529
- blue(60) = 0.419607843137255
-
-! MediumTurquoise
- red(61) = 0.282352941176471
- green(61) = 0.819607843137255
- blue(61) = 0.800000000000000
-
-! Grey
- red(62) = 0.745098039215686
- green(62) = 0.745098039215686
- blue(62) = 0.745098039215686
-
-! Coral
- red(63) = 1.00000000000000
- green(63) = 0.498039215686275
- blue(63) = 0.313725490196078
-
-! NavajoWhite4
- red(64) = 0.545098039215686
- green(64) = 0.474509803921569
- blue(64) = 0.368627450980392
-
-! SlateBlue4
- red(65) = 0.278431372549020
- green(65) = 0.235294117647059
- blue(65) = 0.545098039215686
-
-! RoyalBlue4
- red(66) = 0.152941176470588
- green(66) = 0.250980392156863
- blue(66) = 0.545098039215686
-
-! YellowGreen
- red(67) = 0.603921568627451
- green(67) = 0.803921568627451
- blue(67) = 0.196078431372549
-
-! DeepSkyBlue3
- red(68) = 0.000000000000000E+000
- green(68) = 0.603921568627451
- blue(68) = 0.803921568627451
-
-! goldenrod
- red(69) = 0.854901960784314
- green(69) = 0.647058823529412
- blue(69) = 0.125490196078431
-
-! AntiqueWhite4
- red(70) = 0.545098039215686
- green(70) = 0.513725490196078
- blue(70) = 0.470588235294118
-
-! lemonchiffon
- red(71) = 1.00000000000000
- green(71) = 0.980000000000000
- blue(71) = 0.800000000000000
-
-! GreenYellow
- red(72) = 0.678431372549020
- green(72) = 1.00000000000000
- blue(72) = 0.184313725490196
-
-! LightSlateGray
- red(73) = 0.466666666666667
- green(73) = 0.533333333333333
- blue(73) = 0.600000000000000
-
-! RoyalBlue
- red(74) = 0.254901960784314
- green(74) = 0.411764705882353
- blue(74) = 0.882352941176471
-
-! DarkGreen
- red(75) = 0.000000000000000E+000
- green(75) = 0.392156862745098
- blue(75) = 0.000000000000000E+000
-
-! NavajoWhite3
- red(76) = 0.803921568627451
- green(76) = 0.701960784313725
- blue(76) = 0.545098039215686
-
-! Azure1
- red(77) = 0.941176470588235
- green(77) = 1.00000000000000
- blue(77) = 1.00000000000000
-
-! PowderBlue
- red(78) = 0.690196078431373
- green(78) = 0.878431372549020
- blue(78) = 0.901960784313726
-
-! slateblue
- red(79) = 0.420000000000000
- green(79) = 0.350000000000000
- blue(79) = 0.800000000000000
-
-! MediumOrchid
- red(80) = 0.729411764705882
- green(80) = 0.333333333333333
- blue(80) = 0.827450980392157
-
-! turquoise
- red(81) = 0.250000000000000
- green(81) = 0.880000000000000
- blue(81) = 0.820000000000000
-
-! Snow1
- red(82) = 1.00000000000000
- green(82) = 0.980392156862745
- blue(82) = 0.980392156862745
-
-! violet
- red(83) = 0.930000000000000
- green(83) = 0.510000000000000
- blue(83) = 0.930000000000000
-
-! DeepPink
- red(84) = 1.00000000000000
- green(84) = 7.843137254901961E-002
- blue(84) = 0.576470588235294
-
-! MistyRose4
- red(85) = 0.545098039215686
- green(85) = 0.490196078431373
- blue(85) = 0.482352941176471
-
-! PeachPuff3
- red(86) = 0.803921568627451
- green(86) = 0.686274509803922
- blue(86) = 0.584313725490196
-
-! MediumSeaGreen
- red(87) = 0.235294117647059
- green(87) = 0.701960784313725
- blue(87) = 0.443137254901961
-
-! Honeydew4
- red(88) = 0.513725490196078
- green(88) = 0.545098039215686
- blue(88) = 0.513725490196078
-
-! Tan
- red(89) = 0.823529411764706
- green(89) = 0.705882352941177
- blue(89) = 0.549019607843137
-
-! DarkGoldenrod
- red(90) = 0.721568627450980
- green(90) = 0.525490196078431
- blue(90) = 4.313725490196078E-002
-
-! Blue2
- red(91) = 0.000000000000000E+000
- green(91) = 0.000000000000000E+000
- blue(91) = 0.933333333333333
-
-! Maroon
- red(92) = 0.690196078431373
- green(92) = 0.188235294117647
- blue(92) = 0.376470588235294
-
-! LightSkyBlue3
- red(93) = 0.552941176470588
- green(93) = 0.713725490196078
- blue(93) = 0.803921568627451
-
-! LemonChiffon2
- red(94) = 0.933333333333333
- green(94) = 0.913725490196078
- blue(94) = 0.749019607843137
-
-! Snow3
- red(95) = 0.803921568627451
- green(95) = 0.788235294117647
- blue(95) = 0.788235294117647
-
-! Ivory4
- red(96) = 0.545098039215686
- green(96) = 0.545098039215686
- blue(96) = 0.513725490196078
-
-! AntiqueWhite3
- red(97) = 0.803921568627451
- green(97) = 0.752941176470588
- blue(97) = 0.690196078431373
-
-! Bisque4
- red(98) = 0.545098039215686
- green(98) = 0.490196078431373
- blue(98) = 0.419607843137255
-
-! Snow2
- red(99) = 0.933333333333333
- green(99) = 0.913725490196078
- blue(99) = 0.913725490196078
-
-! SlateGray1
- red(100) = 0.776470588235294
- green(100) = 0.886274509803922
- blue(100) = 1.00000000000000
-
-! Seashell2
- red(101) = 0.933333333333333
- green(101) = 0.898039215686275
- blue(101) = 0.870588235294118
-
-! Aquamarine
- red(102) = 0.498039215686275
- green(102) = 1.00000000000000
- blue(102) = 0.831372549019608
-
-! SlateGray2
- red(103) = 0.725490196078431
- green(103) = 0.827450980392157
- blue(103) = 0.933333333333333
-
-! White
- red(104) = 1.00000000000000
- green(104) = 1.00000000000000
- blue(104) = 1.00000000000000
-
-! LavenderBlush
- red(105) = 1.00000000000000
- green(105) = 0.941176470588235
- blue(105) = 0.960784313725490
-
-! DodgerBlue3
- red(106) = 9.411764705882353E-002
- green(106) = 0.454901960784314
- blue(106) = 0.803921568627451
-
-! RoyalBlue3
- red(107) = 0.227450980392157
- green(107) = 0.372549019607843
- blue(107) = 0.803921568627451
-
-! LightYellow
- red(108) = 1.00000000000000
- green(108) = 1.00000000000000
- blue(108) = 0.878431372549020
-
-! DeepSkyBlue
- red(109) = 0.000000000000000E+000
- green(109) = 0.749019607843137
- blue(109) = 1.00000000000000
-
-! AntiqueWhite2
- red(110) = 0.933333333333333
- green(110) = 0.874509803921569
- blue(110) = 0.800000000000000
-
-! CornflowerBlue
- red(111) = 0.392156862745098
- green(111) = 0.584313725490196
- blue(111) = 0.929411764705882
-
-! PeachPuff4
- red(112) = 0.545098039215686
- green(112) = 0.466666666666667
- blue(112) = 0.396078431372549
-
-! SpringGreen
- red(113) = 0.000000000000000E+000
- green(113) = 1.00000000000000
- blue(113) = 0.498039215686275
-
-! Honeydew
- red(114) = 0.941176470588235
- green(114) = 1.00000000000000
- blue(114) = 0.941176470588235
-
-! Honeydew2
- red(115) = 0.878431372549020
- green(115) = 0.933333333333333
- blue(115) = 0.878431372549020
-
-! LightSeaGreen
- red(116) = 0.125490196078431
- green(116) = 0.698039215686274
- blue(116) = 0.666666666666667
-
-! NavyBlue
- red(117) = 0.000000000000000E+000
- green(117) = 0.000000000000000E+000
- blue(117) = 0.501960784313725
-
-! Azure4
- red(118) = 0.513725490196078
- green(118) = 0.545098039215686
- blue(118) = 0.545098039215686
-
-! MediumAquamarine
- red(119) = 0.400000000000000
- green(119) = 0.803921568627451
- blue(119) = 0.666666666666667
-
-! SkyBlue3
- red(120) = 0.423529411764706
- green(120) = 0.650980392156863
- blue(120) = 0.803921568627451
-
-! LavenderBlush2
- red(121) = 0.933333333333333
- green(121) = 0.878431372549020
- blue(121) = 0.898039215686275
-
-! Bisque1
- red(122) = 1.00000000000000
- green(122) = 0.894117647058824
- blue(122) = 0.768627450980392
-
-! DarkOrange
- red(123) = 1.00000000000000
- green(123) = 0.549019607843137
- blue(123) = 0.000000000000000E+000
-
-! LightSteelBlue
- red(124) = 0.690196078431373
- green(124) = 0.768627450980392
- blue(124) = 0.870588235294118
-
-! SteelBlue2
- red(125) = 0.360784313725490
- green(125) = 0.674509803921569
- blue(125) = 0.933333333333333
-
-! LemonChiffon3
- red(126) = 0.803921568627451
- green(126) = 0.788235294117647
- blue(126) = 0.647058823529412
-
-! DarkSlateBlue
- red(127) = 0.282352941176471
- green(127) = 0.239215686274510
- blue(127) = 0.545098039215686
-
-! Seashell
- red(128) = 1.00000000000000
- green(128) = 0.960784313725490
- blue(128) = 0.933333333333333
-
-! Firebrick
- red(129) = 0.698039215686274
- green(129) = 0.133333333333333
- blue(129) = 0.133333333333333
-
-! LightGray
- red(130) = 0.827450980392157
- green(130) = 0.827450980392157
- blue(130) = 0.827450980392157
-
-! Blue
- red(131) = 0.000000000000000E+000
- green(131) = 0.000000000000000E+000
- blue(131) = 1.00000000000000
-
-! Bisque2
- red(132) = 0.933333333333333
- green(132) = 0.835294117647059
- blue(132) = 0.717647058823529
-
-! WhiteSmoke
- red(133) = 0.960784313725490
- green(133) = 0.960784313725490
- blue(133) = 0.960784313725490
-
-! SeaGreen
- red(134) = 0.180392156862745
- green(134) = 0.545098039215686
- blue(134) = 0.341176470588235
-
-! Burlywood
- red(135) = 0.870588235294118
- green(135) = 0.721568627450980
- blue(135) = 0.529411764705882
-
-! RoyalBlue2
- red(136) = 0.262745098039216
- green(136) = 0.431372549019608
- blue(136) = 0.933333333333333
-
-! RoyalBlue1
- red(137) = 0.282352941176471
- green(137) = 0.462745098039216
- blue(137) = 1.00000000000000
-
-! SteelBlue4
- red(138) = 0.211764705882353
- green(138) = 0.392156862745098
- blue(138) = 0.545098039215686
-
-! AliceBlue
- red(139) = 0.941176470588235
- green(139) = 0.972549019607843
- blue(139) = 1.00000000000000
-
-! LightSlateBlue
- red(140) = 0.517647058823529
- green(140) = 0.439215686274510
- blue(140) = 1.00000000000000
-
-! MistyRose1
- red(141) = 1.00000000000000
- green(141) = 0.894117647058824
- blue(141) = 0.882352941176471
-
-! SandyBrown
- red(142) = 0.956862745098039
- green(142) = 0.643137254901961
- blue(142) = 0.376470588235294
-
-! DarkOliveGreen
- red(143) = 0.333333333333333
- green(143) = 0.419607843137255
- blue(143) = 0.184313725490196
-
-! Yellow
- red(144) = 1.00000000000000
- green(144) = 1.00000000000000
- blue(144) = 0.000000000000000E+000
-
-! SlateGray3
- red(145) = 0.623529411764706
- green(145) = 0.713725490196078
- blue(145) = 0.803921568627451
-
-! HotPink
- red(146) = 1.00000000000000
- green(146) = 0.411764705882353
- blue(146) = 0.705882352941177
-
-! Violet
- red(147) = 0.933333333333333
- green(147) = 0.509803921568627
- blue(147) = 0.933333333333333
-
-! LightSkyBlue
- red(148) = 0.529411764705882
- green(148) = 0.807843137254902
- blue(148) = 0.980392156862745
-
-! Cornsilk2
- red(149) = 0.933333333333333
- green(149) = 0.909803921568627
- blue(149) = 0.803921568627451
-
-! MidnightBlue
- red(150) = 9.803921568627451E-002
- green(150) = 9.803921568627451E-002
- blue(150) = 0.439215686274510
-
-! AntiqueWhite
- red(151) = 0.980392156862745
- green(151) = 0.921568627450980
- blue(151) = 0.843137254901961
-
-! PaleGreen
- red(152) = 0.596078431372549
- green(152) = 0.984313725490196
- blue(152) = 0.596078431372549
-
-! MedSpringGreen
- red(153) = 0.000000000000000E+000
- green(153) = 0.980392156862745
- blue(153) = 0.603921568627451
-
-! DodgerBlue1
- red(154) = 0.117647058823529
- green(154) = 0.564705882352941
- blue(154) = 1.00000000000000
-
-! Blue3
- red(155) = 0.000000000000000E+000
- green(155) = 0.000000000000000E+000
- blue(155) = 0.803921568627451
-
-! Cyan
- red(156) = 0.000000000000000E+000
- green(156) = 1.00000000000000
- blue(156) = 1.00000000000000
-
-! LemonChiffon
- red(157) = 1.00000000000000
- green(157) = 0.980392156862745
- blue(157) = 0.803921568627451
-
-! mediumorchid
- red(158) = 0.730000000000000
- green(158) = 0.330000000000000
- blue(158) = 0.830000000000000
-
-! Turquoise
- red(159) = 0.250980392156863
- green(159) = 0.878431372549020
- blue(159) = 0.815686274509804
-
-! IndianRed
- red(160) = 0.803921568627451
- green(160) = 0.360784313725490
- blue(160) = 0.360784313725490
-
-! DodgerBlue
- red(161) = 0.117647058823529
- green(161) = 0.564705882352941
- blue(161) = 1.00000000000000
-
-! Seashell3
- red(162) = 0.803921568627451
- green(162) = 0.772549019607843
- blue(162) = 0.749019607843137
-
-! BlueViolet
- red(163) = 0.541176470588235
- green(163) = 0.168627450980392
- blue(163) = 0.886274509803922
-
-! DeepSkyBlue4
- red(164) = 0.000000000000000E+000
- green(164) = 0.407843137254902
- blue(164) = 0.545098039215686
-
-! PaleVioletRed
- red(165) = 0.858823529411765
- green(165) = 0.439215686274510
- blue(165) = 0.576470588235294
-
-! Azure2
- red(166) = 0.878431372549020
- green(166) = 0.933333333333333
- blue(166) = 0.933333333333333
-
-! greenyellow
- red(167) = 0.680000000000000
- green(167) = 1.00000000000000
- blue(167) = 0.180000000000000
-
-! LightGoldenrod
- red(168) = 0.933333333333333
- green(168) = 0.866666666666667
- blue(168) = 0.509803921568627
-
-! MistyRose
- red(169) = 1.00000000000000
- green(169) = 0.894117647058824
- blue(169) = 0.882352941176471
-
-! LightSkyBlue4
- red(170) = 0.376470588235294
- green(170) = 0.482352941176471
- blue(170) = 0.545098039215686
-
-! OrangeRed
- red(171) = 1.00000000000000
- green(171) = 0.270588235294118
- blue(171) = 0.000000000000000E+000
-
-! DimGrey
- red(172) = 0.411764705882353
- green(172) = 0.411764705882353
- blue(172) = 0.411764705882353
-
-! MediumVioletRed
- red(173) = 0.780392156862745
- green(173) = 8.235294117647059E-002
- blue(173) = 0.521568627450980
-
-! DarkSlateGray
- red(174) = 0.184313725490196
- green(174) = 0.309803921568627
- blue(174) = 0.309803921568627
-
-! yellow
- red(175) = 1.00000000000000
- green(175) = 1.00000000000000
- blue(175) = 0.000000000000000E+000
-
-! Plum
- red(176) = 0.866666666666667
- green(176) = 0.627450980392157
- blue(176) = 0.866666666666667
-
-! DarkTurquoise
- red(177) = 0.000000000000000E+000
- green(177) = 0.807843137254902
- blue(177) = 0.819607843137255
-
-! DodgerBlue4
- red(178) = 6.274509803921569E-002
- green(178) = 0.305882352941176
- blue(178) = 0.545098039215686
-
-! Cornsilk
- red(179) = 1.00000000000000
- green(179) = 0.972549019607843
- blue(179) = 0.862745098039216
-
-! SkyBlue1
- red(180) = 0.529411764705882
- green(180) = 0.807843137254902
- blue(180) = 1.00000000000000
-
-! Seashell1
- red(181) = 1.00000000000000
- green(181) = 0.960784313725490
- blue(181) = 0.933333333333333
-
-! lavender
- red(182) = 0.901960784313726
- green(182) = 0.901960784313726
- blue(182) = 0.980392156862745
-
-! Snow4
- red(183) = 0.545098039215686
- green(183) = 0.537254901960784
- blue(183) = 0.537254901960784
-
-! Peru
- red(184) = 0.803921568627451
- green(184) = 0.521568627450980
- blue(184) = 0.247058823529412
-
-! PeachPuff
- red(185) = 1.00000000000000
- green(185) = 0.854901960784314
- blue(185) = 0.725490196078431
-
-! Green
- red(186) = 0.000000000000000E+000
- green(186) = 1.00000000000000
- blue(186) = 0.000000000000000E+000
-
-! Blue1
- red(187) = 0.000000000000000E+000
- green(187) = 0.000000000000000E+000
- blue(187) = 1.00000000000000
-
-! Seashell4
- red(188) = 0.545098039215686
- green(188) = 0.525490196078431
- blue(188) = 0.509803921568627
-
-! dodgerblue
- red(189) = 0.120000000000000
- green(189) = 0.560000000000000
- blue(189) = 1.00000000000000
-
-! MistyRose2
- red(190) = 0.933333333333333
- green(190) = 0.835294117647059
- blue(190) = 0.823529411764706
-
-! Tomato
- red(191) = 1.00000000000000
- green(191) = 0.388235294117647
- blue(191) = 0.278431372549020
-
-! Wheat
- red(192) = 0.960784313725490
- green(192) = 0.870588235294118
- blue(192) = 0.701960784313725
-
-! LightBlue
- red(193) = 0.678431372549020
- green(193) = 0.847058823529412
- blue(193) = 0.901960784313726
-
-! Chocolate
- red(194) = 0.823529411764706
- green(194) = 0.411764705882353
- blue(194) = 0.117647058823529
-
-! Blue4
- red(195) = 0.000000000000000E+000
- green(195) = 0.000000000000000E+000
- blue(195) = 0.545098039215686
-
-! LavenderBlush1
- red(196) = 1.00000000000000
- green(196) = 0.941176470588235
- blue(196) = 0.960784313725490
-
-! Magenta
- red(197) = 1.00000000000000
- green(197) = 0.000000000000000E+000
- blue(197) = 1.00000000000000
-
-! darkturquoise
- red(198) = 0.000000000000000E+000
- green(198) = 0.810000000000000
- blue(198) = 0.820000000000000
-
-! blueviolet
- red(199) = 0.540000000000000
- green(199) = 0.170000000000000
- blue(199) = 0.890000000000000
-
-! MintCream
- red(200) = 0.960784313725490
- green(200) = 1.00000000000000
- blue(200) = 0.980392156862745
-
-! PaleGoldenrod
- red(201) = 0.933333333333333
- green(201) = 0.909803921568627
- blue(201) = 0.666666666666667
-
-! MediumPurple
- red(202) = 0.576470588235294
- green(202) = 0.439215686274510
- blue(202) = 0.858823529411765
-
-! PapayaWhip
- red(203) = 1.00000000000000
- green(203) = 0.937254901960784
- blue(203) = 0.835294117647059
-
-! LavenderBlush4
- red(204) = 0.545098039215686
- green(204) = 0.513725490196078
- blue(204) = 0.525490196078431
-
-! Cornsilk4
- red(205) = 0.545098039215686
- green(205) = 0.533333333333333
- blue(205) = 0.470588235294118
-
-! LtGoldenrodYello
- red(206) = 0.980392156862745
- green(206) = 0.980392156862745
- blue(206) = 0.823529411764706
-
-! limegreen
- red(207) = 0.200000000000000
- green(207) = 0.800000000000000
- blue(207) = 0.200000000000000
-
-! LemonChiffon1
- red(208) = 1.00000000000000
- green(208) = 0.980392156862745
- blue(208) = 0.803921568627451
-
-! DarkOrchid
- red(209) = 0.600000000000000
- green(209) = 0.196078431372549
- blue(209) = 0.800000000000000
-
-! SlateBlue1
- red(210) = 0.513725490196078
- green(210) = 0.435294117647059
- blue(210) = 1.00000000000000
-
-! chartreuse
- red(211) = 0.500000000000000
- green(211) = 1.00000000000000
- blue(211) = 0.000000000000000E+000
-
-! PaleTurquoise
- red(212) = 0.686274509803922
- green(212) = 0.933333333333333
- blue(212) = 0.933333333333333
-
-! NavajoWhite1
- red(213) = 1.00000000000000
- green(213) = 0.870588235294118
- blue(213) = 0.678431372549020
-
-! LightSkyBlue2
- red(214) = 0.643137254901961
- green(214) = 0.827450980392157
- blue(214) = 0.933333333333333
-
-! VioletRed
- red(215) = 0.815686274509804
- green(215) = 0.125490196078431
- blue(215) = 0.564705882352941
-
-! mocassin
- red(216) = 1.00000000000000
- green(216) = 0.890000000000000
- blue(216) = 0.710000000000000
-
-! OldLace
- red(217) = 0.992156862745098
- green(217) = 0.960784313725490
- blue(217) = 0.901960784313726
-
-! deeppink
- red(218) = 1.00000000000000
- green(218) = 8.000000000000000E-002
- blue(218) = 0.580000000000000
-
-! Honeydew3
- red(219) = 0.756862745098039
- green(219) = 0.803921568627451
- blue(219) = 0.756862745098039
-
-! Gainsboro
- red(220) = 0.862745098039216
- green(220) = 0.862745098039216
- blue(220) = 0.862745098039216
-
-! DarkSalmon
- red(221) = 0.913725490196078
- green(221) = 0.588235294117647
- blue(221) = 0.478431372549020
-
-! AntiqueWhite1
- red(222) = 1.00000000000000
- green(222) = 0.937254901960784
- blue(222) = 0.858823529411765
-
-! LightCyan
- red(223) = 0.878431372549020
- green(223) = 1.00000000000000
- blue(223) = 1.00000000000000
-
-! ForestGreen
- red(224) = 0.133333333333333
- green(224) = 0.545098039215686
- blue(224) = 0.133333333333333
-
-! Orchid
- red(225) = 0.854901960784314
- green(225) = 0.439215686274510
- blue(225) = 0.839215686274510
-
-! PeachPuff2
- red(226) = 0.933333333333333
- green(226) = 0.796078431372549
- blue(226) = 0.678431372549020
-
-! LightPink
- red(227) = 1.00000000000000
- green(227) = 0.713725490196078
- blue(227) = 0.756862745098039
-
-! Sienna
- red(228) = 0.627450980392157
- green(228) = 0.321568627450980
- blue(228) = 0.176470588235294
-
-! darkorchid
- red(229) = 0.600000000000000
- green(229) = 0.200000000000000
- blue(229) = 0.800000000000000
-
-! MediumSlateBlue
- red(230) = 0.482352941176471
- green(230) = 0.407843137254902
- blue(230) = 0.933333333333333
-
-! CadetBlue
- red(231) = 0.372549019607843
- green(231) = 0.619607843137255
- blue(231) = 0.627450980392157
-
-! LawnGreen
- red(232) = 0.486274509803922
- green(232) = 0.988235294117647
- blue(232) = 0.000000000000000E+000
-
-! Chartreuse
- red(233) = 0.498039215686275
- green(233) = 1.00000000000000
- blue(233) = 0.000000000000000E+000
-
-! Brown
- red(234) = 0.647058823529412
- green(234) = 0.164705882352941
- blue(234) = 0.164705882352941
-
-! Azure
- red(235) = 0.941176470588235
- green(235) = 1.00000000000000
- blue(235) = 1.00000000000000
-
-! Bisque
- red(236) = 1.00000000000000
- green(236) = 0.894117647058824
- blue(236) = 0.768627450980392
-
-! get minimum and maximum values of mesh coordinates
- xmin = minval(coord(1,:))
- zmin = minval(coord(2,:))
- xmax = maxval(coord(1,:))
- zmax = maxval(coord(2,:))
- write(IOUT,*) 'X min, max = ',xmin,xmax
- write(IOUT,*) 'Z min, max = ',zmin,zmax
-
-! ratio of physical page size/size of the domain meshed
- ratio_page = min(rpercentz*sizez/(zmax-zmin),rpercentx*sizex/(xmax-xmin)) / 100.d0
-
-! compute the maximum of the norm of the vector
- dispmax = maxval(sqrt(displ(1,:)**2 + displ(2,:)**2))
- write(IOUT,*) 'Max norm = ',dispmax
-
-!
-!---- open PostScript file
-!
- write(file_name,"('OUTPUT_FILES/vect',i6.6,'.ps')") it
- open(unit=24,file=file_name,status='unknown')
-
-!
-!---- write PostScript header
-!
- write(24,10) simulation_title
- write(24,*) '/CM {28.5 mul} def'
- write(24,*) '/LR {rlineto} def'
- write(24,*) '/LT {lineto} def'
- write(24,*) '/L {lineto} def'
- write(24,*) '/MR {rmoveto} def'
- write(24,*) '/MV {moveto} def'
- write(24,*) '/M {moveto} def'
- write(24,*) '/ST {stroke} def'
- write(24,*) '/CP {closepath} def'
- write(24,*) '/RG {setrgbcolor} def'
- write(24,*) '/GF {gsave fill grestore} def'
- write(24,*) '% different useful symbols'
- write(24,*) '/Point {2 0 360 arc CP 0 setgray fill} def'
- write(24,*) '/VDot {-0.75 -1.5 MR 1.5 0 LR 0 3. LR -1.5 0 LR'
- write(24,*) 'CP fill} def'
- write(24,*) '/HDot {-1.5 -0.75 MR 3. 0 LR 0 1.5 LR -3. 0 LR'
- write(24,*) 'CP fill} def'
- write(24,*) '/Cross {gsave 0.05 CM setlinewidth'
- write(24,*) 'gsave 3 3 MR -6. -6. LR ST grestore'
- write(24,*) 'gsave 3 -3 MR -6. 6. LR ST grestore'
- write(24,*) '0.01 CM setlinewidth} def'
- write(24,*) '/SmallLine {MV 0.07 CM 0 rlineto} def'
- write(24,*) '/Diamond {gsave 0.05 CM setlinewidth 0 4.2 MR'
- write(24,*) '-3 -4.2 LR 3 -4.2 LR 3 4.2 LR CP ST'
- write(24,*) 'grestore 0.01 CM setlinewidth} def'
- write(24,*) '%'
- write(24,*) '% gray levels for the velocity model'
- write(24,*) '/BK {setgray fill} def'
- write(24,*) '% black and white version'
- write(24,*) '%/BK {pop 1 setgray fill} def'
- write(24,*) '%'
- write(24,*) '% magenta for vectors'
- write(24,*) '/Colvects {0.01 CM setlinewidth 1. 0. 1. RG} def'
- write(24,*) '% black and white version'
- write(24,*) '%/Colvects {0.01 CM setlinewidth 0. setgray} def'
- write(24,*) '%'
- write(24,*) '% chartreuse for macrobloc mesh'
- write(24,*) '/Colmesh {0.02 CM setlinewidth 0.5 1. 0. RG} def'
- write(24,*) '% black and white version'
- write(24,*) '%/Colmesh {0.02 CM setlinewidth 0. setgray} def'
- write(24,*) '%'
- write(24,*) '% cyan for sources and receivers'
- write(24,*) '/Colreceiv {0. 1. 1. RG} def'
- write(24,*) '% black and white version'
- write(24,*) '%/Colreceiv {0. setgray} def'
- write(24,*) '%'
- write(24,*) '% macro to draw an arrow'
- write(24,*) '/F {MV LR gsave LR ST grestore LR ST} def'
- write(24,*) '% macro to draw the contour of the elements'
- write(24,*) '/CO {M counttomark 2 idiv {L} repeat cleartomark CP} def'
- write(24,*) '%'
- write(24,*) '.01 CM setlinewidth'
- write(24,*) '/Times-Roman findfont'
- write(24,*) '.35 CM scalefont setfont'
- write(24,*) '%'
- write(24,*) '/vshift ',-height/2,' CM def'
- write(24,*) '/Rshow { currentpoint stroke MV'
- write(24,*) 'dup stringwidth pop neg vshift MR show } def'
- write(24,*) '/Cshow { currentpoint stroke MV'
- write(24,*) 'dup stringwidth pop -2 div vshift MR show } def'
- write(24,*) '/fN {/Helvetica-Bold findfont ',height,' CM scalefont setfont} def'
- write(24,*) '%'
- write(24,*) 'gsave newpath 90 rotate'
- write(24,*) '0 ',-sizez,' CM translate 1. 1. scale'
- write(24,*) '% uncomment this to zoom on parts of the mesh'
- write(24,*) '% -32 CM -21 CM translate 3. 3. scale'
- write(24,*) '% -52 CM -24 CM translate 4. 4. scale'
- write(24,*) '%'
-
-!
-!--- write captions of PostScript figure
-!
- write(24,*) '0 setgray'
- write(24,*) '/Times-Roman findfont'
- write(24,*) '.5 CM scalefont setfont'
-
- write(24,*) '24. CM 1.2 CM MV'
- write(24,610) usoffset,it
- write(24,*) '%'
-
- write(24,*) '24. CM 1.95 CM MV'
- timeval = it*dt
- if(timeval >= 1.d-3 .and. timeval < 1000.d0) then
- write(24,600) usoffset,timeval
- else
- write(24,601) usoffset,timeval
- endif
- write(24,*) '%'
- write(24,*) '24. CM 2.7 CM MV'
- write(24,640) usoffset,dispmax
- write(24,*) '%'
- write(24,*) '24. CM 3.45 CM MV'
- write(24,620) usoffset,cutsnaps*100.d0
-
- write(24,*) '%'
- write(24,*) '/Times-Roman findfont'
- write(24,*) '.6 CM scalefont setfont'
- if(colors == 1) write(24,*) '.4 .9 .9 setrgbcolor'
- write(24,*) '11 CM 1.1 CM MV'
- write(24,*) '(X axis) show'
- write(24,*) '%'
- write(24,*) '1.4 CM 9.5 CM MV'
- write(24,*) 'currentpoint gsave translate 90 rotate 0 0 moveto'
- write(24,*) '(Y axis) show'
- write(24,*) 'grestore'
- write(24,*) '%'
- write(24,*) '/Times-Roman findfont'
- write(24,*) '.7 CM scalefont setfont'
- if(colors == 1) write(24,*) '.8 0 .8 setrgbcolor'
- write(24,*) '24.35 CM 18.9 CM MV'
- write(24,*) usoffset,' CM 2 div neg 0 MR'
- write(24,*) 'currentpoint gsave translate -90 rotate 0 0 moveto'
- if(imagetype == 1) then
- write(24,*) '(Displacement vector field) show'
- else if(imagetype == 2) then
- write(24,*) '(Velocity vector field) show'
- else if(imagetype == 3) then
- write(24,*) '(Acceleration vector field) show'
- else
- call exit_MPI('Bad field code in PostScript display')
- endif
- write(24,*) 'grestore'
- write(24,*) '25.35 CM 18.9 CM MV'
- write(24,*) usoffset,' CM 2 div neg 0 MR'
- write(24,*) 'currentpoint gsave translate -90 rotate 0 0 moveto'
- write(24,*) '(',simulation_title,') show'
- write(24,*) 'grestore'
- write(24,*) '26.45 CM 18.9 CM MV'
- write(24,*) usoffset,' CM 2 div neg 0 MR'
- write(24,*) 'currentpoint gsave translate -90 rotate 0 0 moveto'
-
- if(coupled_acoustic_elastic) then
- write(24,*) '(Coupled Acoustic/Elastic Wave 2D - SEM) show'
- else if(any_acoustic) then
- write(24,*) '(Acoustic Wave 2D - Spectral Element Method) show'
- else
- write(24,*) '(Elastic Wave 2D - Spectral Element Method) show'
- endif
-
- write(24,*) 'grestore'
-
- write(24,*) '%'
- write(24,*) '1 1 scale'
- write(24,*) '%'
-
-!
-!---- print the spectral elements mesh in PostScript
-!
-
- write(IOUT,*) 'Shape functions based on ',ngnod,' control nodes'
-
- convert = PI / 180.d0
-
-!
-!---- draw the velocity model in background
-!
- if(modelvect) then
-
- do ispec=1,nspec
- do i=1,NGLLX-subsamp,subsamp
- do j=1,NGLLX-subsamp,subsamp
-
- if((vpmax-vpmin)/vpmin > 0.02d0) then
- if(assign_external_model) then
- x1 = (vpext(i,j,ispec)-vpmin) / (vpmax-vpmin)
- else
- material = kmato(ispec)
- rlamda = elastcoef(1,material)
- rmu = elastcoef(2,material)
- denst = density(material)
- rKvol = rlamda + 2.d0*rmu/3.d0
- cploc = sqrt((rKvol + 4.d0*rmu/3.d0)/denst)
- x1 = (cploc-vpmin)/(vpmax-vpmin)
- endif
- else
- x1 = 0.5d0
- endif
-
-! rescale to avoid very dark gray levels
- x1 = x1*0.7 + 0.2
- if(x1 > 1.d0) x1=1.d0
-
-! invert scale: white = vpmin, dark gray = vpmax
- x1 = 1.d0 - x1
-
- xw = coord(1,ibool(i,j,ispec))
- zw = coord(2,ibool(i,j,ispec))
- xw = (xw-xmin)*ratio_page + orig_x
- zw = (zw-zmin)*ratio_page + orig_z
- xw = xw * centim
- zw = zw * centim
- write(24,500) xw,zw
-
- xw = coord(1,ibool(i+subsamp,j,ispec))
- zw = coord(2,ibool(i+subsamp,j,ispec))
- xw = (xw-xmin)*ratio_page + orig_x
- zw = (zw-zmin)*ratio_page + orig_z
- xw = xw * centim
- zw = zw * centim
- write(24,499) xw,zw
-
- xw = coord(1,ibool(i+subsamp,j+subsamp,ispec))
- zw = coord(2,ibool(i+subsamp,j+subsamp,ispec))
- xw = (xw-xmin)*ratio_page + orig_x
- zw = (zw-zmin)*ratio_page + orig_z
- xw = xw * centim
- zw = zw * centim
- write(24,499) xw,zw
-
- xw = coord(1,ibool(i,j+subsamp,ispec))
- zw = coord(2,ibool(i,j+subsamp,ispec))
- xw = (xw-xmin)*ratio_page + orig_x
- zw = (zw-zmin)*ratio_page + orig_z
- xw = xw * centim
- zw = zw * centim
- write(24,499) xw,zw
-
-! display P-velocity model using gray levels
- write(24,604) x1
-
- enddo
- enddo
- enddo
-
- endif
-
-!
-!---- draw the spectral element mesh
-!
-
- write(24,*) '%'
- write(24,*) '% spectral element mesh'
- write(24,*) '%'
-
- do ispec=1,nspec
-
- write(24,*) '% elem ',ispec
-
- do i=1,pointsdisp
- do j=1,pointsdisp
- xinterp(i,j) = 0.d0
- zinterp(i,j) = 0.d0
- do in = 1,ngnod
- nnum = knods(in,ispec)
- xinterp(i,j) = xinterp(i,j) + shapeint(in,i,j)*coorg(1,nnum)
- zinterp(i,j) = zinterp(i,j) + shapeint(in,i,j)*coorg(2,nnum)
- enddo
- enddo
- enddo
-
- is = 1
- ir = 1
- x1 = (xinterp(ir,is)-xmin)*ratio_page + orig_x
- z1 = (zinterp(ir,is)-zmin)*ratio_page + orig_z
- x1 = x1 * centim
- z1 = z1 * centim
- write(24,*) 'mark'
- write(24,681) x1,z1
-
- if(ngnod == 4) then
-
-! draw straight lines if elements have 4 nodes
-
- ir=pointsdisp
- x2 = (xinterp(ir,is)-xmin)*ratio_page + orig_x
- z2 = (zinterp(ir,is)-zmin)*ratio_page + orig_z
- x2 = x2 * centim
- z2 = z2 * centim
- write(24,681) x2,z2
-
- ir=pointsdisp
- is=pointsdisp
- x2 = (xinterp(ir,is)-xmin)*ratio_page + orig_x
- z2 = (zinterp(ir,is)-zmin)*ratio_page + orig_z
- x2 = x2 * centim
- z2 = z2 * centim
- write(24,681) x2,z2
-
- is=pointsdisp
- ir=1
- x2 = (xinterp(ir,is)-xmin)*ratio_page + orig_x
- z2 = (zinterp(ir,is)-zmin)*ratio_page + orig_z
- x2 = x2 * centim
- z2 = z2 * centim
- write(24,681) x2,z2
-
- ir=1
- is=2
- x2 = (xinterp(ir,is)-xmin)*ratio_page + orig_x
- z2 = (zinterp(ir,is)-zmin)*ratio_page + orig_z
- x2 = x2 * centim
- z2 = z2 * centim
- write(24,681) x2,z2
-
- else
-
-! draw curved lines if elements have 9 nodes
- do ir=2,pointsdisp
- x2 = (xinterp(ir,is)-xmin)*ratio_page + orig_x
- z2 = (zinterp(ir,is)-zmin)*ratio_page + orig_z
- x2 = x2 * centim
- z2 = z2 * centim
- write(24,681) x2,z2
- enddo
-
- ir=pointsdisp
- do is=2,pointsdisp
- x2 = (xinterp(ir,is)-xmin)*ratio_page + orig_x
- z2 = (zinterp(ir,is)-zmin)*ratio_page + orig_z
- x2 = x2 * centim
- z2 = z2 * centim
- write(24,681) x2,z2
- enddo
-
- is=pointsdisp
- do ir=pointsdisp-1,1,-1
- x2 = (xinterp(ir,is)-xmin)*ratio_page + orig_x
- z2 = (zinterp(ir,is)-zmin)*ratio_page + orig_z
- x2 = x2 * centim
- z2 = z2 * centim
- write(24,681) x2,z2
- enddo
-
- ir=1
- do is=pointsdisp-1,2,-1
- x2 = (xinterp(ir,is)-xmin)*ratio_page + orig_x
- z2 = (zinterp(ir,is)-zmin)*ratio_page + orig_z
- x2 = x2 * centim
- z2 = z2 * centim
- write(24,681) x2,z2
- enddo
-
- endif
-
- write(24,*) 'CO'
-
- if(colors == 1) then
-
-! use a different color for each material set
- imat = kmato(ispec)
- icol = mod(imat - 1,NUM_COLORS) + 1
-
- if(meshvect) then
- write(24,680) red(icol),green(icol),blue(icol)
- else
- write(24,679) red(icol),green(icol),blue(icol)
- endif
-
- endif
-
- if(meshvect) then
- if(modelvect) then
- write(24,*) 'Colmesh ST'
- else
- write(24,*) '0 setgray ST'
- endif
- endif
-
-! write the element number, the group number and the material number inside the element
- if(numbers == 1) then
-
- xw = (coorg(1,knods(1,ispec)) + coorg(1,knods(2,ispec)) + coorg(1,knods(3,ispec)) + coorg(1,knods(4,ispec))) / 4.d0
- zw = (coorg(2,knods(1,ispec)) + coorg(2,knods(2,ispec)) + coorg(2,knods(3,ispec)) + coorg(2,knods(4,ispec))) / 4.d0
- xw = (xw-xmin)*ratio_page + orig_x
- zw = (zw-zmin)*ratio_page + orig_z
- xw = xw * centim
- zw = zw * centim
- if(colors == 1) write(24,*) '1 setgray'
-
- write(24,500) xw,zw
-
-! write spectral element number
- write(24,502) ispec
-
- endif
-
- enddo
-
-!
-!--- draw absorbing boundaries with a thick color line
-!
-
- if(anyabs .and. boundvect) then
-
- write(24,*) '%'
- write(24,*) '% boundary conditions on the mesh'
- write(24,*) '%'
-
-! use green color
- write(24,*) '0 1 0 RG'
-
- write(24,*) '0.10 CM setlinewidth'
- write(24,*) '% uncomment this when zooming on parts of the mesh'
- write(24,*) '% 0.02 CM setlinewidth'
-
- do inum = 1,nelemabs
- ispec = numabs(inum)
-
- do iedge = 1,4
-
- if(codeabs(iedge,inum) /= 0) then
-
- if(iedge == ITOP) then
- ideb = 3
- ifin = 4
- else if(iedge == IBOTTOM) then
- ideb = 1
- ifin = 2
- else if(iedge == ILEFT) then
- ideb = 4
- ifin = 1
- else if(iedge == IRIGHT) then
- ideb = 2
- ifin = 3
- else
- call exit_MPI('Wrong absorbing boundary code')
- endif
-
- x1 = (coorg(1,knods(ideb,ispec))-xmin)*ratio_page + orig_x
- z1 = (coorg(2,knods(ideb,ispec))-zmin)*ratio_page + orig_z
- x2 = (coorg(1,knods(ifin,ispec))-xmin)*ratio_page + orig_x
- z2 = (coorg(2,knods(ifin,ispec))-zmin)*ratio_page + orig_z
- x1 = x1 * centim
- z1 = z1 * centim
- x2 = x2 * centim
- z2 = z2 * centim
- write(24,602) x1,z1,x2,z2
-
- endif
- enddo
-
- enddo
-
- write(24,*) '0 setgray'
- write(24,*) '0.01 CM setlinewidth'
-
- endif
-
-!
-!---- draw the fluid-solid coupling edges with a thick color line
-!
-
- if(coupled_acoustic_elastic .and. boundvect) then
-
- write(24,*) '%'
- write(24,*) '% fluid-solid coupling edges in the mesh'
- write(24,*) '%'
-
- write(24,*) '0.10 CM setlinewidth'
- write(24,*) '% uncomment this when zooming on parts of the mesh'
- write(24,*) '% 0.02 CM setlinewidth'
-
-! loop on all the coupling edges
- do inum = 1,num_fluid_solid_edges
-
-! get the edge of the acoustic element
- ispec = fluid_solid_acoustic_ispec(inum)
- iedge = fluid_solid_acoustic_iedge(inum)
-
-! use pink color
- write(24,*) '1 0.75 0.8 RG'
-
- if(iedge == ITOP) then
- ideb = 3
- ifin = 4
- else if(iedge == IBOTTOM) then
- ideb = 1
- ifin = 2
- else if(iedge == ILEFT) then
- ideb = 4
- ifin = 1
- else if(iedge == IRIGHT) then
- ideb = 2
- ifin = 3
- else
- call exit_MPI('Wrong fluid-solid coupling edge code')
- endif
-
- x1 = (coorg(1,knods(ideb,ispec))-xmin)*ratio_page + orig_x
- z1 = (coorg(2,knods(ideb,ispec))-zmin)*ratio_page + orig_z
- x2 = (coorg(1,knods(ifin,ispec))-xmin)*ratio_page + orig_x
- z2 = (coorg(2,knods(ifin,ispec))-zmin)*ratio_page + orig_z
- x1 = x1 * centim
- z1 = z1 * centim
- x2 = x2 * centim
- z2 = z2 * centim
- write(24,602) x1,z1,x2,z2
-
- enddo
-
- write(24,*) '0 setgray'
- write(24,*) '0.01 CM setlinewidth'
-
- endif
-
-!
-!---- draw the normalized vector field
-!
-
-! return if the maximum vector equals zero (no source)
- if(dispmax == 0.d0) then
- write(IOUT,*) 'null vector: returning!'
- return
- endif
-
- write(24,*) '%'
- write(24,*) '% vector field'
- write(24,*) '%'
-
-! color arrows if we draw the velocity model in the background
- if(modelvect) then
- write(24,*) 'Colvects'
- else
- write(24,*) '0 setgray'
- endif
-
- if(interpol) then
-
- write(IOUT,*) 'Interpolating the vector field...'
-
- do ispec=1,nspec
-
-! interpolation on a uniform grid
- if(mod(ispec,1000) == 0) write(IOUT,*) 'Interpolation uniform grid element ',ispec
-
-! option to plot only lowerleft corner value to avoid very large files if dense meshes
- if(plot_lowerleft_corner_only) then
- pointsdisp_loop = 1
- else
- pointsdisp_loop = pointsdisp
- endif
-
- do i=1,pointsdisp_loop
- do j=1,pointsdisp_loop
-
- xinterp(i,j) = 0.d0
- zinterp(i,j) = 0.d0
- do in = 1,ngnod
- nnum = knods(in,ispec)
- xinterp(i,j) = xinterp(i,j) + shapeint(in,i,j)*coorg(1,nnum)
- zinterp(i,j) = zinterp(i,j) + shapeint(in,i,j)*coorg(2,nnum)
- enddo
-
- Uxinterp(i,j) = 0.d0
- Uzinterp(i,j) = 0.d0
-
- do k=1,NGLLX
- do l=1,NGLLX
-
- Uxinterp(i,j) = Uxinterp(i,j) + displ(1,ibool(k,l,ispec))*flagrange(k,i)*flagrange(l,j)
- Uzinterp(i,j) = Uzinterp(i,j) + displ(2,ibool(k,l,ispec))*flagrange(k,i)*flagrange(l,j)
-
- enddo
- enddo
-
- x1 =(xinterp(i,j)-xmin)*ratio_page
- z1 =(zinterp(i,j)-zmin)*ratio_page
-
- x2 = Uxinterp(i,j)*sizemax_arrows/dispmax
- z2 = Uzinterp(i,j)*sizemax_arrows/dispmax
-
- d = sqrt(x2**2 + z2**2)
-
-! ignore if vector is too small
- if(d > cutsnaps*sizemax_arrows) then
-
- d1 = d * ARROW_RATIO
- d2 = d1 * cos(ARROW_ANGLE*convert)
-
- dummy = x2/d
- if(dummy > 0.9999d0) dummy = 0.9999d0
- if(dummy < -0.9999d0) dummy = -0.9999d0
- theta = acos(dummy)
-
- if(z2 < 0.d0) theta = 360.d0*convert - theta
- thetaup = theta - ARROW_ANGLE*convert
- thetadown = theta + ARROW_ANGLE*convert
-
-! draw the vector
- x1 = (orig_x+x1) * centim
- z1 = (orig_z+z1) * centim
- x2 = x2 * centim
- z2 = z2 * centim
- xa = -d2*cos(thetaup)
- za = -d2*sin(thetaup)
- xa = xa * centim
- za = za * centim
- xb = -d2*cos(thetadown)
- zb = -d2*sin(thetadown)
- xb = xb * centim
- zb = zb * centim
- write(postscript_line,700) xb,zb,xa,za,x2,z2,x1,z1
-
-! suppress useless white spaces to make PostScript file smaller
-
-! suppress leading white spaces again, if any
- postscript_line = adjustl(postscript_line)
-
- line_length = len_trim(postscript_line)
- index_char = 1
- first = .false.
- do ii = 1,line_length-1
- if(ch1(ii) /= ' ' .or. first) then
- if(ch1(ii) /= ' ' .or. ch1(ii+1) /= ' ') then
- ch2(index_char) = ch1(ii)
- index_char = index_char + 1
- first = .true.
- endif
- endif
- enddo
- ch2(index_char) = ch1(line_length)
- write(24,"(100(a1))") (ch2(ii), ii=1,index_char)
-
- endif
-
- enddo
- enddo
- enddo
-
-! draw the vectors at the nodes of the mesh if we do not interpolate the display on a regular grid
- else
-
- do ipoin=1,npoin
-
- x1 =(coord(1,ipoin)-xmin)*ratio_page
- z1 =(coord(2,ipoin)-zmin)*ratio_page
-
- x2 = displ(1,ipoin)*sizemax_arrows/dispmax
- z2 = displ(2,ipoin)*sizemax_arrows/dispmax
-
- d = sqrt(x2**2 + z2**2)
-
-! ignore if vector is too small
- if(d > cutsnaps*sizemax_arrows) then
-
- d1 = d * ARROW_RATIO
- d2 = d1 * cos(ARROW_ANGLE*convert)
-
- dummy = x2/d
- if(dummy > 0.9999d0) dummy = 0.9999d0
- if(dummy < -0.9999d0) dummy = -0.9999d0
- theta = acos(dummy)
-
- if(z2 < 0.d0) theta = 360.d0*convert - theta
- thetaup = theta - ARROW_ANGLE*convert
- thetadown = theta + ARROW_ANGLE*convert
-
-! draw the vector
- x1 = (orig_x+x1) * centim
- z1 = (orig_z+z1) * centim
- x2 = x2 * centim
- z2 = z2 * centim
- xa = -d2*cos(thetaup)
- za = -d2*sin(thetaup)
- xa = xa * centim
- za = za * centim
- xb = -d2*cos(thetadown)
- zb = -d2*sin(thetadown)
- xb = xb * centim
- zb = zb * centim
- write(postscript_line,700) xb,zb,xa,za,x2,z2,x1,z1
-
-! suppress useless white spaces to make PostScript file smaller
-
-! suppress leading white spaces again, if any
- postscript_line = adjustl(postscript_line)
-
- line_length = len_trim(postscript_line)
- index_char = 1
- first = .false.
- do ii = 1,line_length-1
- if(ch1(ii) /= ' ' .or. first) then
- if(ch1(ii) /= ' ' .or. ch1(ii+1) /= ' ') then
- ch2(index_char) = ch1(ii)
- index_char = index_char + 1
- first = .true.
- endif
- endif
- enddo
- ch2(index_char) = ch1(line_length)
- write(24,"(100(a1))") (ch2(ii), ii=1,index_char)
-
- endif
-
- enddo
-
- endif
-
- write(24,*) '0 setgray'
-
-! sources and receivers in color if velocity model
- if(modelvect) then
- write(24,*) 'Colreceiv'
- else
- write(24,*) '0 setgray'
- endif
-
-!
-!---- write position of the source
-!
- xw = x_source
- zw = z_source
- xw = (xw-xmin)*ratio_page + orig_x
- zw = (zw-zmin)*ratio_page + orig_z
- xw = xw * centim
- zw = zw * centim
- write(24,500) xw,zw
- write(24,*) 'Cross'
-
-!
-!---- write position of the receivers
-!
- do i=1,nrec
- if(i == 1) write(24,*) '% beginning of receiver line'
- if(i == nrec) write(24,*) '% end of receiver line'
-
- xw = st_xval(i)
- zw = st_zval(i)
-
- xw = (xw-xmin)*ratio_page + orig_x
- zw = (zw-zmin)*ratio_page + orig_z
- xw = xw * centim
- zw = zw * centim
- write(24,500) xw,zw
- write(24,*) 'Diamond'
- enddo
-
- write(24,*) '%'
- write(24,*) 'grestore'
- write(24,*) 'showpage'
-
- close(24)
-
- 10 format('%!PS-Adobe-2.0',/,'%%',/,'%% Title: ',a50,/,'%% Created by: Specfem2D',/,'%% Author: Dimitri Komatitsch',/,'%%')
- 600 format(f6.3,' neg CM 0 MR (Time =',f8.3,' s) show')
- 601 format(f6.3,' neg CM 0 MR (Time =',1pe12.3,' s) show')
- 610 format(f6.3,' neg CM 0 MR (Time step = ',i7,') show')
- 620 format(f6.3,' neg CM 0 MR (Cut =',f5.2,' \%) show')
- 640 format(f6.3,' neg CM 0 MR (Max norm =',1pe12.3,') show')
-
- 499 format(f6.2,1x,f6.2,' L')
- 500 format(f6.2,1x,f6.2,' M')
- 502 format('fN (',i4,') Cshow')
- 679 format(f12.6,1x,f12.6,1x,f12.6,' RG fill stroke')
- 680 format(f12.6,1x,f12.6,1x,f12.6,' RG GF')
- 681 format(f6.2,1x,f6.2)
- 602 format(f6.2,1x,f6.2,' M ',f6.2,1x,f6.2,' L ST')
- 604 format('CP ',f12.6,' BK')
- 700 format(8(f6.2,1x),'F')
-
- end subroutine plotpost
-
More information about the cig-commits
mailing list