%!PS-Adobe-3.0 EPSF-3.0 http://farbe.li.tu-berlin.de/DE39/DE391-7A 20180701
%%BoundingBox: 70 85 226 206

%START PDFDE011.EPS
/pdfmark17 where {pop} {userdict /pdfmark17 /cleartomark load put} ifelse
/languagelevel where {pop languagelevel} {1} ifelse
2 lt { userdict (<<) cvn ([) cvn load put
       userdict (>>) cvn (]) cvn load put} if
[ /Title (PostScript pictures: farbe.li.tu-berlin.de/DE39/DE39.HTM)
  /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1)
  /Subject (goto: http://farbe.li.tu-berlin.de http://130.149.60.45/~farbmetrik)
  /Keywords (image reproduction, colour devices)
  /Creator (klaus.richter@mac.com)
  /CreationDate (D:2018070112000)
  /ModDate (D:20180701112000)
/DOCINFO pdfmark17
[ /View [ /Fit ]
/DOCVIEW pdfmark17
%END  PDFDE011

%SETCMYK_OLV.PS
/setcmyk_olvcolor %transfer cmyk to olv
{/ncolor exch def /ycolor exch def
 /mcolor exch def /ccolor exch def
 ncolor 0 eq {1 ccolor sub
              1 mcolor sub
              1 ycolor sub setrgbcolor
             }
             {ccolor 0 eq 
              mcolor 0 eq and
              ycolor 0 eq and {%only black n
                               1 ncolor sub 
                               dup
                               dup
                               setrgbcolor
                              }
                              {%cmy and black n
                               1 ccolor sub 1 ncolor sub mul
                               1 mcolor sub 1 ncolor sub mul
                               1 ycolor sub 1 ncolor sub mul
                               setrgbcolor
                              } ifelse
             } ifelse
} bind def

/FS {findfont exch scalefont setfont} bind def
/MM {72 25.4 div mul} def /str {8 string } bind def

/languagelevel where {pop languagelevel} {1} ifelse
                     /PSL12 exch def
/dictende {counttomark 2 idiv dup dict begin {def}
           repeat pop currentdict end} bind def

/Times-Roman findfont dup length dict  begin
{1 index /FID ne {def} {pop pop} ifelse }forall
/Encoding ISOLatin1Encoding def
currentdict end
/Times-ISOL1 exch definefont pop

/Times-Italic findfont dup length dict  begin
{1 index /FID ne {def} {pop pop} ifelse }forall
/Encoding ISOLatin1Encoding def
currentdict end
/TimesI-ISOL1 exch definefont pop

/Times-Bold findfont dup length dict  begin
{1 index /FID ne {def} {pop pop} ifelse }forall
/Encoding ISOLatin1Encoding def
currentdict end
/TimesB-ISOL1 exch definefont pop

/Times-BoldItalic findfont dup length dict  begin
{1 index /FID ne {def} {pop pop} ifelse }forall
/Encoding ISOLatin1Encoding def
currentdict end
/TimesBI-ISOL1 exch definefont pop

/Courier findfont dup length dict  begin
{1 index /FID ne {def} {pop pop} ifelse }forall
/Encoding ISOLatin1Encoding def
currentdict end
/Courier-ISOL1 exch definefont pop

/Courier-Oblique findfont dup length dict  begin
{1 index /FID ne {def} {pop pop} ifelse }forall
/Encoding ISOLatin1Encoding def
currentdict end
/CourierI-ISOL1 exch definefont pop

/Courier-Bold findfont dup length dict  begin
{1 index /FID ne {def} {pop pop} ifelse }forall
/Encoding ISOLatin1Encoding def
currentdict end
/CourierB-ISOL1 exch definefont pop

/Courier-BoldOblique findfont dup length dict  begin
{1 index /FID ne {def} {pop pop} ifelse }forall
/Encoding ISOLatin1Encoding def
currentdict end
/CourierBI-ISOL1 exch definefont pop

/TG   {350 /Times-ISOL1 FS} bind def
/TM   {280 /Times-ISOL1 FS} bind def
/TK   {240 /Times-ISOL1 FS} bind def
/TS   {200 /Times-ISOL1 FS} bind def
/TV   {160 /Times-ISOL1 FS} bind def

/TIG  {350 /TimesI-ISOL1 FS} bind def
/TIM  {280 /TimesI-ISOL1 FS} bind def
/TIK  {240 /TimesI-ISOL1 FS} bind def
/TIS  {200 /TimesI-ISOL1 FS} bind def
/TIV  {160 /TimesI-ISOL1 FS} bind def

/TBG  {350 /TimesB-ISOL1 FS} bind def
/TBM  {280 /TimesB-ISOL1 FS} bind def
/TBK  {240 /TimesB-ISOL1 FS} bind def
/TBS  {200 /TimesB-ISOL1 FS} bind def
/TBV  {160 /TimesB-ISOL1 FS} bind def

/TBIG {350 /TimesBI-ISOL1 FS} bind def
/TBIM {280 /TimesBI-ISOL1 FS} bind def
/TBIK {240 /TimesBI-ISOL1 FS} bind def
/TBIS {200 /TimesBI-ISOL1 FS} bind def
/TBIV {160 /TimesBI-ISOL1 FS} bind def

/SG {350 /Symbol FS} bind def
/SM {280 /Symbol FS} bind def
/SK {240 /Symbol FS} bind def
/SS {200 /Symbol FS} bind def
/SV {160 /Symbol FS} bind def

/CV {160 /Courier-ISOL1 FS} bind def
/CS {200 /Courier-ISOL1 FS} bind def
/CK {240 /Courier-ISOL1 FS} bind def
/CM {280 /Courier-ISOL1 FS} bind def
/CG {350 /Courier-ISOL1 FS} bind def

/CBV {160 /CourierB-ISOL1 FS} bind def
/CBS {200 /CourierB-ISOL1 FS} bind def
/CBK {240 /CourierB-ISOL1 FS} bind def
/CBM {280 /CourierB-ISOL1 FS} bind def
/CBG {350 /CourierB-ISOL1 FS} bind def

/ns {350 /Times-ISOL1 FS  show} bind def
/ks {350 /TimesI-ISOL1 FS  show} bind def
/bs {350 /TimesB-ISOL1 FS  show} bind def
/js {350 /TimesBI-ISOL1 FS  show} bind def
/sy {350 /Symbol FS  show} bind def
/is {280 /Times-ISOL1 FS 0 -90 rmoveto show 0   90 rmoveto} bind def
/es {280 /Times-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def
/ib {280 /TimesB-ISOL1 FS 0 -90 rmoveto show 0   90 rmoveto} bind def
/eb {280 /TimesB-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def
/ip {280 /Times-ISOL1 FS 50 50 rmoveto (\267) show 50 -50 rmoveto} bind def

%20% kleiner
/ns2 {280 /Times-ISOL1 FS  show TM} bind def
/ks2 {280 /TimesI-ISOL1 FS  show TM} bind def
/bs2 {280 /TimesB-ISOL1 FS  show TM} bind def
/js2 {280 /TimesBI-ISOL1 FS  show TM} bind def
/sy2 {280 /Symbol FS  show TM} bind def
/is2 {240 /Times-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def
/es2 {240 /Times-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def
/ib2 {240 /TimesB-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def
/eb2 {240 /TimesB-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def
/ip2 {240 /Times-ISOL1 FS 40 40 rmoveto (\267) show 40 -40 rmoveto TM} bind def
/iy2 {240 /Symbol FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def

%40% kleiner
/ns4 {240 /Times-ISOL1 FS  show TK} bind def
/ks4 {240 /TimesI-ISOL1 FS  show TK} bind def
/bs4 {240 /TimesB-ISOL1 FS  show TK} bind def
/js4 {240 /TimesBI-ISOL1 FS  show TK} bind def
/ss4 {240 /Symbol FS  show TK} bind def
/is4 {200 /Times-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def
/es4 {200 /Times-ISOL1 FS 0 130 rmoveto show 0 -130 rmoveto TK} bind def
/ib4 {200 /TimesB-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def
/eb4 {200 /TimesB-ISOL1 FS 0 130 rmoveto show 0 -130 rmoveto TK} bind def
/ip4 {200 /Times-ISOL1 FS 30 30 rmoveto (\267) show 30 -30 rmoveto TK} bind def
/iy4 {200 /Symbol FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def

%60% kleiner
/ns6 {200 /Times-ISOL1 FS  show TS} bind def
/ks6 {200 /TimesI-ISOL1 FS  show TS} bind def
/bs6 {200 /TimesB-ISOL1 FS  show TS} bind def
/js6 {200 /TimesBI-ISOL1 FS  show TS} bind def
/ss6 {200 /Symbol FS  show TS} bind def
/is6 {160 /Times-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def
/es6 {160 /Times-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TS} bind def
/ib6 {160 /TimesB-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def
/eb6 {160 /TimesB-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TS} bind def
/ip6 {160 /Times-ISOL1 FS 24 24 rmoveto (\267) show 24 -24 rmoveto TS} bind def
/iy6 {160 /Symbol FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def

/cvicvs  {cvi 6 string cvs} def
/cvishow {cvi 6 string cvs show ( ) show} def
/cvsshow1 {10 mul cvi 0.1 mul 9 string cvs show ( ) show} def
/cvsshow2 {100 mul cvi 0.01 mul 9 string cvs show ( ) show} def
/cvsshow3 {1000 mul cvi 0.001 mul 9 string cvs show ( ) show} def
/cvsshow4 {10000 mul cvi 0.0001 mul 9 string cvs show ( ) show} def
/cvsshow5 {100000 mul cvi 0.00001 mul 9 string cvs show ( ) show} def

/cvsshow1x {/nxx exch def                              %example nxx=99.1/99.0
             nxx 0 lt {(-) show /nxx nxx abs def} if
             nxx 10 mul cvi /nxi exch def              %nxi=991/990
             nxi 10 idiv /nxa exch def                 %nxa=99
             nxi nxa 10 mul sub /nxb exch def          %nxb=1/0
             nxa cvishow (,) show                      %nxa=99
             nxb cvishow                               %nxb=1/0
           } def
/cvsshow2x {/nxx exch def                              %example nxx=99.12/99,02/99,00
             nxx 0 lt {(-) show /nxx nxx abs def} if
             nxx 100 mul cvi /nxi exch def             %nxi=9912/9902/00
             nxi 100 idiv /nxa exch def                %nxa=99
             nxi nxa 100 mul sub /nxb exch def         %nxb=12/02/00
             nxa cvishow (,) show                      %nxb=99,
             nxb 10 ge {nxb cvishow} if                %nxb=12
             nxb  1 ge
             nxb  9 le and {(0) show nxb cvishow} if   %nxb=02
             nxb  0 eq {(00) show} if                  %nxb=00
           } def
/cvsshow3x {/nxx exch def                              %example nxx=99.123/99.012/99.001/99.000
             nxx 0 lt {(-) show /nxx nxx abs def} if
             nxx 1000 mul cvi /nxi exch def            %nxi=99123/99012/99001/99000
             nxi 1000 idiv /nxa exch def               %nxa=99
             nxi nxa 1000 mul sub /nxb exch def        %nxb=123/012/001/000
             nxa cvishow (,) show                      %nxb=99,
             nxb 100 ge {nxb cvishow} if               %nxb=123/012/001/000
             nxb  10 ge
             nxb  99 le and {(0) show nxb cvishow} if  %nxb=012
             nxb   1 ge
             nxb   9 le and {(00) show nxb cvishow} if %nxb=001
             nxb   0 eq {(000) show} if                %nxb=000
           } def
/cvsshow4x {/nxx exch def                               %example nxx=99.1234/99.0123/99.0010/99.0001
             nxx 0 lt {(-) show /nxx nxx abs def} if
             nxx 10000 mul cvi /nxi exch def            %nxi=991234/990123/990010/990000
             nxi 10000 idiv /nxa exch def               %nxa=99
             nxi nxa 10000 mul sub /nxb exch def        %nxb=1234/0123/0010/0001
             nxa cvishow (,) show                       %nxb=99,
             nxb 1000 ge {nxb cvishow} if               %nxb=1234/0123/0010/0001
             nxb  100 ge
             nxb  999 le and {(0) show nxb cvishow} if  %nxb=012
             nxb   10 ge
             nxb   99 le and {(00) show nxb cvishow} if %nxb=012
             nxb   1 ge
             nxb   9 le and {(000) show nxb cvishow} if %nxb=001
             nxb   0 eq {(000) show} if                 %nxb=000
           } def


/rec %x, y width heigth
  {/heigth exch def /width exch def
   moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto
   closepath } bind def
 
/colrecfi %x y width heigth c m y k
  {setcmykcolor rec fill} bind def
 
/colrecst %x y width heigth c m y k
  {setcmykcolor rec stroke} bind def
 
/tzo {0.0 1.0 1.0 0.0} bind def %Reproduktionsfarben
/tzl {1.0 0.0 1.0 0.0} bind def
/tzv {1.0 1.0 0.0 0.0} bind def
/tzc {1.0 0.0 0.0 0.0} bind def
/tzm {0.0 1.0 0.0 0.0} bind def
/tzy {0.0 0.0 1.0 0.0} bind def
 
/tzn {0.0 0.0 0.0 1.00} bind def %Graureihe
/tzd {0.0 0.0 0.0 0.75} bind def
/tzz {0.0 0.0 0.0 0.50} bind def
/tzh {0.0 0.0 0.0 0.25} bind def
/tzw {0.0 0.0 0.0 0.00} bind def
 
/tzr {0.0 1.0 0.5 0.0} bind def %Elementarfarben
/tzg {1.0 0.0 0.5 0.0} bind def
/tzb {1.0 0.5 0.0 0.0} bind def
/tzj {0.0 0.0 1.0 0.0} bind def
 
/tzrz {0.0 1.0 0.5 0.5} bind def %Elementarfarben vergraut
/tzgz {1.0 0.0 0.5 0.5} bind def
/tzbz {1.0 0.5 0.0 0.5} bind def
/tzjz {0.0 0.0 1.0 0.5} bind def
 
/tfo {tzo setcmykcolor} bind def
/tfl {tzl setcmykcolor} bind def
/tfv {tzv setcmykcolor} bind def
/tfc {tzc setcmykcolor} bind def
/tfm {tzm setcmykcolor} bind def
/tfy {tzy setcmykcolor} bind def
 
/tfn {tzn setcmykcolor} bind def
/tfd {tzd setcmykcolor} bind def
/tfz {tzz setcmykcolor} bind def
/tfh {tzh setcmykcolor} bind def
/tfw {tzw setcmykcolor} bind def
 
/tfr {tzr setcmykcolor} bind def
/tfg {tzg setcmykcolor} bind def
/tfb {tzb setcmykcolor} bind def
/tfj {tzj setcmykcolor} bind def
 
/tfrz {tzrz setcmykcolor} bind def
/tfgz {tzgz setcmykcolor} bind def
/tfbz {tzbz setcmykcolor} bind def
/tfjz {tzjz setcmykcolor} bind def

%allways after %Prolog
/proc_XYZ_colours
{%BEG proc_XYZ_colours

%for xchart8=0
/SP25 80 array def %380 bis 775 mit deltalambda=05
/SP30 80 array def %380 bis 775 mit deltalambda=05
/SP35 80 array def %380 bis 775 mit deltalambda=05
/SP40 80 array def %380 bis 775 mit deltalambda=05
/SP45 80 array def %380 bis 775 mit deltalambda=05
/SP50 80 array def %380 bis 775 mit deltalambda=05
/SP55 80 array def %380 bis 775 mit deltalambda=05
/SP60 80 array def %380 bis 775 mit deltalambda=05
%for xchart8=1
/SD65 80 array def %380 bis 775 mit deltalambda=05
/SD50 80 array def %380 bis 775 mit deltalambda=05
/SP40 80 array def %380 bis 775 mit deltalambda=05
/SA00 80 array def %380 bis 775 mit deltalambda=05
/SE00 80 array def %380 bis 775 mit deltalambda=05
/SC00 80 array def %380 bis 775 mit deltalambda=05
/SP00 80 array def %380 bis 775 mit deltalambda=05
/SQ00 80 array def %380 bis 775 mit deltalambda=05

%for combined
/SX00 80 array def %380 bis 775 mit deltalambda=05
/SX01 80 array def %380 bis 775 mit deltalambda=05
/SX02 80 array def %380 bis 775 mit deltalambda=05
/SX03 80 array def %380 bis 775 mit deltalambda=05
/SX04 80 array def %380 bis 775 mit deltalambda=05
/SX05 80 array def %380 bis 775 mit deltalambda=05
/SX06 80 array def %380 bis 775 mit deltalambda=05
/SX07 80 array def %380 bis 775 mit deltalambda=05

/SDAK 80 array def %380 bis 775 mit deltalambda=05
/RA   80 array def %380 bis 770 nm
/F2  240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm
/F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm
/F10  240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm

%C
%C      LITERATURQUELLEN  LICHTARTEN
%C      SA,SC,SD65,  CIE-DOKUMENT NR.15 FARBMESSUNG, 1971
%C                   TABELLE 1.1.1, SEITE 81
%C      SD55,SD75,   CIE-DOKUMENT NR.15 FARBMESSUNG, 1971
%C                   TABELLE 1.1.4, SEITE 85
%C                   LINEAR INTERPOLIERT VON 5 ZU 5NM
%C      SG,SP,SXE,   DIN 5033, BLATT 7 ,SEITE 8-9
%C                   AUSGABE  1966

/SD65 %80 data 5 nm
[50.0  52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 
 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 
 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 
 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 
 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 
 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 
 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 
 46.4 56.6 66.8 65.1] def

/SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS
[24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9
 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2
 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6
102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3
 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4
 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1
 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7
 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used

/SA00 %80 data 5 nm CIE 15.3  Seite 30; aus JE540-1N.PS
[9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99
 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30
 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06
 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44
 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39
 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42
 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12
 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41
 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59
 232.12 234.59 237.01 239.37 0.0] def %0.0 not used

% AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92
%C     PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI-
%C     LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA  
%C     BEI GEGEBENER TEMPERATUR T                                        
%C     VERWENDETE VARIABLE                                               
%C        T                   TEMPERATUR                                 
%C        C2                  PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) 
%C        LAMDA(I)            WELLENLAENGE                               
%C        S(I)                STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS 
%C                                                                       
%C     LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION,       
%C               CA. 1969, SEITE 21 UND TABELLE 1.1.1                    
%C                                                                       
%SDP4 80 array def %380 bis 775 mit deltalambda=05
%      DO 50 I=1,54                                                      
%   50 S(I)=100.
%     1*(560./FLOAT(LAMDA(I)))**5
%     2*(EXP(C2/(560.*10.**(-7)*T))-1.)
%     3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.)

%new CIE 15.3:2004, Eq. (3.1) page 2
%S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560   )} - 1]
%                           /[exp{(c2*10**7)/(TNC*lambda)} - 1]
% exp = e {...} = 2.71 {...} 

%/TNC 2848 def %NLA
/TNC 4000 def
/EE 2.718281 def %e=mac pocket calculator
/C2 1.4350000 10 7 exp mul def
/lamd 80 array def
/TNCj 8 array def
/TNCj [6000 5500 5000 4500 4000 3500 3000 2500] def

xchart8 0 eq {%xchart8=0
0 1 7 {/j exch def %j=0,7
0 1 79 {%i=0,79
        /i exch def
        /lambda 380 i 5 mul add def
        lamd i lambda put
        /E1 560 lambda div 5 exp def

        /E4 C2 TNCj j get 560    mul div def
        /E5 C2 TNCj j get lambda mul div def

        /E6 EE E4 exp def
        /E7 EE E5 exp def

        j 0 eq {SP60 i} if
        j 1 eq {SP55 i} if
        j 2 eq {SP50 i} if
        j 3 eq {SP45 i} if
        j 4 eq {SP40 i} if
        j 5 eq {SP35 i} if
        j 6 eq {SP30 i} if
        j 7 eq {SP25 i} if

        E1 100 mul E6 1 sub
                   E7 1 sub div mul
        put
       } for %i=0,79
       } for %j=0,7
           } %xchart8=0
           { %xchart8=1
0 1 79 {%i=0,79
        /i exch def
        /lambda 380 i 5 mul add def
        lamd i lambda put
        /E1 560 lambda div 5 exp def

        /E4 C2 TNC 560    mul div def
        /E5 C2 TNC lambda mul div def

        /E6 EE E4 exp def
        /E7 EE E5 exp def

        SP40 i
        E1 100 mul E6 1 sub
                   E7 1 sub div mul

        put
       } for %i=0,79
            } ifelse %xchart8=1

/xex 10 2 exp def
/yex EE 2 exp def

/SE00 %80 data 5 nm
[100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0
 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0
 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0
 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0
 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0
 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0
 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0
 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used

/SC00 %80 data 5 nm
[ 33.00  39.92  47.40  55.17  63.30  71.81  80.60  89.53  98.10 105.80
 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09
 123.90 122.92 120.70 116.90 112.10 106.98 102.30  98.81  96.90  96.78
  98.00  99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15
  97.80  95.43  93.20  91.22  89.70  88.83  88.40  88.19  88.10  88.06
  88.00  87.86  87.80  87.99  88.20  88.20  87.90  87.22  86.30  85.30
  84.00  82.21  80.20  78.24  76.30  74.36  72.40  70.40  68.30  66.30
  64.40  62.80  61.50  60.20  59.20  58.50  58.10  58.00  58.20  58.50
 ] def %0.0 not used
 
0 1 79 {/i exch def %i=0,79
        /lamda 380 i 5 mul add def
        SP00 i SE00 i get lamda 560 div mul put
        SQ00 i SE00 i get 1120 lamda sub 560 div mul put
       } for %i=0,79

%C      LITERATURQUELLEN  SPEKTRALWERTE
%C       F2          CIE-DOKUMENT NR.15 FARBMESSUNG, 1971
%C                   TABELLE 2.1, SEITE 93-102

/F2  %3x80 data
[.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 
 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 
 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 
 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 
 .7621
 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 
 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 
 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 
 .004109 .002899 .002049 .001440 .0009999 .0006901 
 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 
 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 
 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 
 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 
 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 
 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 
 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 
 .01192 .00821 .005723 .004102 .002929 .002091 .001484 
 .001047 .00074 .00052 .0003611 .0002492 .0001719 
 .00012 .0000848 .00006 .0000424 .00003 .0000212 
 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 
 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 
 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 
 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 
 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 
 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 
 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10
 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20
 0.0 0.0 0.0 0.0 0.0 0.0 %26
] def

/F10 %3x80 data
[.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 
 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323
  .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177
  .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 
 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 
 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 
 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 
 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 
 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 
 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 
 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 
 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 
 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 
 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 
 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 
 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 
 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 
 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 
 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 
 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 
 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 
 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 
 .001091 
 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10
 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20
 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30
 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40
 0.0 0.0 0.0 0.0 %44
] def

%calculation of transformation data
/FARBEO 27 array def %Ostwald
/FARBEO [(R) (m) ( 561_770) %00
         (Y) (m) ( 520_770) %01
         (G) (m) ( 475_573) %02
         (C) (m) ( 380_561) %03
         (B) (m) ( 380_520) %04
         (M) (m) ( 573_475) %05
         (N) (0) ( 380_770) %06
         (W) (0) ( 380_770) %07
         (W) (1) ( 380_770) %08
        ] def

/DOW  82 array def
/DOWZ 17 array def
/F02Z 51 array def
/F10Z 51 array def

%TRISTIMULUS VALUES FOR PURPLE COLORS from 'dmyy'KRPROG.FOR
%FOR 02- AND 10-DEGREE-OBSERVER, ILLUMINANT E

0 1 79 {/i exch def %i=0,79 = 380_775
        DOW i 380 i 5 mul add put
       } for %i=0,79

/DOWZ %17 data
[700 -495 -500 -505 -510 -515 -520 -525 -530 
 -535 -540 -545 -550 -555 -560 -565 400] def

/F02Z %3x17 data 700 ... 400
[.01136 .01141 .01158 .01169 .01176 .01182 .01187 .01191 .01195 
 .01199 .01204 .01210 .01219 .01232 .01254 .01300 .01431 
 .00410 .00404 .00383 .00369 .00359 .00352 .00346 .00342 .00337 
 .00331 .00325 .00317 .00306 .00289 .00262 .00205 .00040 
 .00000 .00118 .00507 .00754 .00930 .01064 .01167 .01256 .01346 
 .01445 .01562 .01709 .01910 .02210 .02718 .03765 .06785] def

/F10Z %3x17 data 700 ... 400
[.00958 .01015 .01037 .01053 .01065 .01075 .01085 .01096 .01108 
 .01122 .01139 .01163 .01201 .01268 .01416 .02078 .01911 
 .00372 .00361 .00357 .00355 .00352 .00351 .00349 .00347 .00345 
 .00342 .00339 .00335 .00328 .00316 .00289 .00170 .00200 
 .00000 .00517 .00718 .00858 .00972 .01063 .01150 .01245 .01354 
 .01478 .01635 .01856 .02194 .02795 .04136 .10106 .08601] def

%***************************************************

/TELi0 8 array def
/TELi1 8 array def
/TELi  8 array def
/TELi0 [(P60) (P55) (P50) (P45) (P40) (P35) (P30) (P25)] def %7 illumin
/TELi1 [(D65) (D50) (P40) (A00) (E00) (C00) (P00) (Q00)] def %7 illumin.

0 1 7 {/i exch def %i=0,7
xchart8 0 eq {%xchart8=0
              TELi i TELi0 i get put
             }%xchart8=0
             {%xchart8=1
              TELi i TELi1 i get put
             } ifelse %xchart8=1
       } for %i=0,7

/FXN   82 array def
/FYN   82 array def
/FZN   82 array def
/Xi    82 array def
/Yi    82 array def
/Zi    82 array def
/XANi  82 array def
/YANi  82 array def
/ZANi  82 array def

/AANi  82 array def %actual data for plot, spectral colours
/BANi  82 array def
/AAN1i  200 array def %actual data for plot, Munsell colours (M=1)
/BAN1i  200 array def

/AANXi  200 array def %either from (XAN/YAN/ZAN)Mi, or (XAN/YAN/ZAN)Oi
/BANXi  200 array def

/FXNZ  17 array def
/FYNZ  17 array def
/FZNZ  17 array def
/XZi   17 array def
/YZi   17 array def
/ZZi   17 array def
/XANZi 17 array def
/YANZi 17 array def
/ZANZi 17 array def

/AANZi  17 array def %actual data for plot, purple colours
/BANZi  17 array def

/XAND65 0.3127 def /YAND65 0.3290 def /ZAND65 1. XAND65 sub YAND65 sub def
/XAND50 0.3457 def /YAND50 0.3585 def /ZAND50 1. XAND50 sub YAND50 sub def
/XANP40 0.3799 def /YANP40 0.3764 def /ZANP40 1. XANP40 sub YANP40 sub def
/XANA00 0.4475 def /YANA00 0.4074 def /ZANA00 1. XANA00 sub YANA00 sub def
/XANE00 0.3333 def /YANE00 0.3333 def /ZANE00 1. XANE00 sub YANE00 sub def
/XANC00 0.3100 def /YANC00 0.3161 def /ZANC00 1. XANC00 sub YANC00 sub def
/XANP00 0.3604 def /YANP00 0.3531 def /ZANP00 1. XANP00 sub YANP00 sub def
/XANQ00 0.3090 def /YANQ00 0.3155 def /ZANQ00 1. XANQ00 sub YANQ00 sub def

xcolor 1 eq {0 1 239 {/i exch def %i=0,239
                       F2 i F10 i get put
                      } for %i=0,239
              0 1 050 {/i exch def %i=0,50
                       F02Z i F10Z i get put
                      } for %i=0,50
             } if

%calculation of XW,YW,ZW for illuminant D65, D50, ...
0 1 79 {/i exch def %i=0,79
        xchart8 0 eq {%xchart8=0
        xchartx 0 eq {SX00 i SP60 i get put} if
        xchartx 1 eq {SX01 i SP55 i get put} if
        xchartx 2 eq {SX02 i SP50 i get put} if
        xchartx 3 eq {SX03 i SP45 i get put} if
        xchartx 4 eq {SX04 i SP40 i get put} if
        xchartx 5 eq {SX05 i SP35 i get put} if
        xchartx 6 eq {SX06 i SP30 i get put} if
        xchartx 7 eq {SX07 i SP25 i get put} if
                     } %xchart8=0
                     { %xchart8=1
        xchartx 0 eq {SX00 i SD65 i get put} if
        xchartx 1 eq {SX01 i SD50 i get put} if
        xchartx 2 eq {SX02 i SP40 i get put} if
        xchartx 3 eq {SX03 i SA00 i get put} if
        xchartx 4 eq {SX04 i SE00 i get put} if
        xchartx 5 eq {SX05 i SC00 i get put} if
        xchartx 6 eq {SX06 i SP00 i get put} if
        xchartx 7 eq {SX07 i SQ00 i get put} if
                     } ifelse %xchart8=1
       } for %i=0,79

0 1 79 {/i exch def %i=0,79
        SDAK i xchartx 0 eq {SX00 i get} if
               xchartx 1 eq {SX01 i get} if
               xchartx 2 eq {SX02 i get} if
               xchartx 3 eq {SX03 i get} if
               xchartx 4 eq {SX04 i get} if
               xchartx 5 eq {SX05 i get} if
               xchartx 6 eq {SX06 i get} if
               xchartx 7 eq {SX07 i get} if
               put
       } for %i=0,79

/YKSUM 0 def %For CIE Illuminant E
0 1 79 {/i exch def %i=0,1,79
        /YKSUM YKSUM SDAK i get F2  80 i add get mul add def
} for %i=0,1,79

0 1 79 {/i exch def %i=0,79
        FXN i SDAK i get F2  00 i add get mul YKSUM div 100 mul put
        FYN i SDAK i get F2  80 i add get mul YKSUM div 100 mul put
        FZN i SDAK i get F2 160 i add get mul YKSUM div 100 mul put
} for %i=0,79
FXN 80 FXN 79 get put
FYN 80 FYN 79 get put
FZN 80 FZN 79 get put
DOW 80 DOW 79 get put
%STOP1
0 1 80 {/i exch def %i=0,80 %for any illuminant
        Xi i FXN i get put
        Yi i FYN i get put
        Zi i FZN i get put
        /SUM FXN i get FYN i get add FZN i get add 0.00001 add def
        XANi i FXN i get SUM div put
        YANi i FYN i get SUM div put
        ZANi i FZN i get SUM div put
} for %i=0,80
%STOP1a
0 1 16 {/i exch def %i=0,16 %for illuminant E: S(lamdda=100)
        FXNZ i F02Z 00 i add get 100 mul YKSUM div 100 mul put
        FYNZ i F02Z 17 i add get 100 mul YKSUM div 100 mul put
        FZNZ i F02Z 34 i add get 100 mul YKSUM div 100 mul put
} for %i=0,16
%STOP2
0 1 16 {/i exch def %i=0,16 %for illuminant E: S(lamdda=100)
        XZi i FXNZ i get put
        YZi i FYNZ i get put
        ZZi i FZNZ i get put
        /SUMZ FXNZ i get FYNZ i get add FZNZ i get add def
        XANZi i FXNZ i get SUMZ div put
        YANZi i FYNZ i get SUMZ div put
        ZANZi i FZNZ i get SUMZ div put
} for %i=0,16

/a2 1.0 def
/b2 0.4 neg def
/K 0 def  %normalization Y=1.00
%/K 1 def %normalization Y=0.886

%XW,YW,ZW for white
/XW 0 def
/YW 0 def
/ZW 0 def
0 1 079 {/i exch def %i=0,79
         /XW XW FXN i get add def
         /YW YW FYN i get add def
         /ZW ZW FZN i get add def
        } for %i=0,79

/SUMW XW YW add ZW add def %for X00, X01, X02, X03, X04, X05, X06, X07
/XANW XW SUMW FL add div def
/YANW YW SUMW FL add div def
/ZANW ZW SUMW FL add div def

K 0 eq {%K=0
        /XK XW def
        /YK YW def
        /ZK ZW def
       }%K=0
       {%K=1
        /XK XW 0.8859 mul def
        /YK YW 0.8859 mul def
        /ZK ZW 0.8859 mul def
       } ifelse %K=1

/SUMK XK YK add ZK add def %for X00, X01, X02, X03, X04, X05, X06, X07
/XANK XK SUMK div def
/YANK YK SUMK div def
/ZANK ZK SUMK div def

/hABW 0 def

/xshift 10 array def %max 6 device + 4 elementary
/yshift 10 array def
/colori 10 array def

/XANWL XANW def
/YANWL YANW def
/ZANWL ZANW def

/XANWC XANC00 def
/YANWC YANC00 def
/ZANWC ZANC00 def

/AnYi 100 array def
/BnYi 100 array def

} bind def %END proc_XYZ_colours

%****************************************************************
/proc_PDT_colours
{%BEG proc_PDT_colours

/l02Ii 77 array def  /m02Ii 77 array def  /s02Ii 77 array def
/l02Mi 77 array def  /m02Mi 77 array def  /s02Mi 77 array def
/X02Ii   77 array def  /Y02Ii   77 array def  /Z02Ii   77 array def
/xan02Ii 77 array def  /yan02Ii 77 array def  /zan02Ii 77 array def
/X02Mi   77 array def  /Y02Mi   77 array def  /Z02Mi   77 array def
/xan02Mi 77 array def  /yan02Mi 77 array def  /zan02Mi 77 array def
/ycuri   77 array def

/l02Mi [
%LMS2.TXT
%L2.DAT CIE Table 6.7, p. 34 380=390,385=390, 390, 395, ...760nm
4.150019e-4 4.150019e-4 4.150019e-4 1.051914e-3 2.408353e-3 %400
4.833371e-3 8.721273e-3 1.338382e-2 1.844803e-2 2.293190e-2
2.818772e-2 3.410515e-2 4.025595e-2 4.493761e-2 4.986433e-2 %450
5.534138e-2 6.471575e-2 8.069006e-2 9.947639e-2 1.188010e-1
1.401458e-1 1.639532e-1 1.915579e-1 2.329271e-1 2.889615e-1 %500
3.597162e-1 4.436801e-1 5.364880e-1 6.285647e-1 7.047255e-1
7.706373e-1 8.257146e-1 8.810083e-1 9.190730e-1 9.401995e-1 %550
9.657395e-1 9.814541e-1 9.944890e-1 1           9.923160e-1
9.694379e-1 9.556085e-1 9.276625e-1 8.859720e-1 8.339884e-1 %600
7.751040e-1 7.057161e-1 6.307685e-1 5.542300e-1 4.799434e-1
4.007098e-1 3.278612e-1 2.657847e-1 2.132849e-1 1.651391e-1 %650
1.247498e-1 9.300794e-2 6.850937e-2 4.986664e-2 3.582284e-2
2.537932e-2 1.772025e-2 1.216998e-2 8.471687e-3 5.897527e-3 %700
4.091288e-3 2.804465e-3 1.920570e-3 1.326875e-3 9.177829e-4
6.393665e-4 4.460361e-4 3.108708e-4 2.193310e-4 1.545503e-4 %750
1.095065e-4 7.799195e-5
] def

/m02Mi [
%M2.DAT
3.683495e-4 3.683495e-4 3.683495e-4 9.586496e-4 2.269917e-3 %400
4.700132e-3 8.793667e-3 1.452780e-2 2.166506e-2 2.957127e-2
3.945663e-2 5.182030e-2 6.477837e-2 7.588048e-2 8.705225e-2 %450
9.819288e-2 1.162733e-1 1.445407e-1 1.758936e-1 2.053998e-1
2.357545e-1 2.680649e-1 3.036267e-1 3.570590e-1 4.277598e-1 %500
5.155847e-1 6.155169e-1 7.191508e-1 8.166012e-1 8.855437e-1
9.356857e-1 9.688577e-1 9.952165e-1 9.971948e-1 9.771922e-1 %550 9.995->9.95?
9.565771e-1 9.177407e-1 8.732126e-1 8.135046e-1 7.402868e-1
6.532810e-1 5.725950e-1 4.925950e-1 4.112444e-1 3.344260e-1 %600
2.648744e-1 2.052721e-1 1.562428e-1 1.166407e-1 8.558743e-2
6.211264e-2 4.448770e-2 3.142624e-2 2.180369e-2 1.544792e-2 %650
1.071199e-2 7.302475e-3 4.971759e-3 3.436687e-3 2.376184e-3
1.637344e-3 1.121270e-3 7.610442e-4 5.254605e-4 3.653171e-4 %700
2.534195e-4 1.744014e-4 1.206090e-4 8.417245e-5 5.893455e-5
4.160449e-5 2.943542e-5 2.088575e-5 1.504562e-5 1.082007e-5 %750
7.822762e-6 5.690886e-6
] def
/s02Mi [
%S2.DAT CIE 171.1:2006
9.547289e-3 9.547289e-3
9.547289e-3 2.382484e-2 5.665002e-2 1.224503e-1 2.330076e-1 %410
3.813643e-1 5.436132e-1 6.744815e-1 8.025461e-1 9.035662e-1
9.910145e-1 9.915166e-1 9.553885e-1 8.602408e-1 7.867016e-1 %460
7.382611e-1 6.463534e-1 5.164164e-1 3.903373e-1 2.903220e-1
2.118654e-1 1.605240e-1 1.228400e-1 8.889554e-2 6.082050e-2 %510
4.281244e-2 2.920317e-2 1.939099e-2 1.260114e-2 8.094500e-3 
5.088971e-3 3.168911e-3 1.958935e-3 1.202763e-3 7.401673e-4 %560
4.559845e-4 2.817993e-4 1.750370e-4 1.094536e-4 6.899855e-5
4.390257e-5 2.822280e-5 1.834593e-5 1.206675e-5 8.034895e-6 %610
5.418387e-6 0           0           0           0
0           0           0           0           0           %650
0           0           0           0           0
0           0           0           0           0           %700
0           0           0           0           0
0           0           0           0           0           %750
0           0
] def
 
%ED TC1-36 CIE 171-2, 2015, page 16, line 20-23
/A11  1.94735469 def
/A12 -1.41445123 def
/A13  0.36476327 def
/A21  0.68990272 def
/A22  0.34832189 def
/A33  1.93485343 def

/fsl02Mi 0 def  /fsm02Mi 0 def  /fss02Mi 0 def
0 1 76 {/i exch def  %i=0,76 Summe fsumlms
             /fsl02Mi fsl02Mi l02Mi i get add def
             /fsm02Mi fsm02Mi m02Mi i get add def
             /fss02Mi fss02Mi s02Mi i get add def
       } for %i=0,76

0 1 76 {/i exch def %i=0,76 Normierung LMS
             l02Ii i l02Mi i get fsm02Mi mul fsl02Mi div put
             m02Ii i m02Mi i get put
             s02Ii i s02Mi i get fsm02Mi mul fss02Mi div put
       } for %i=0,76

/fsl02Ii 0 def  /fsm02Ii 0 def  /fss02Ii 0 def
0 1 76 {/i exch def  %i=0,76 Summe fsumlms
             /fsl02Ii fsl02Ii l02Ii i get add def
             /fsm02Ii fsm02Ii m02Ii i get add def
             /fss02Ii fss02Ii s02Ii i get add def
       } for %i=0,76

0 1 76 {/i exch def %i=0,76
             X02Ii i l02Mi i get A11 mul
                     m02Mi i get A12 mul add
                     s02Mi i get A13 mul add put
             Y02Ii i l02Mi i get A21 mul
                     m02Mi i get A22 mul add put
             Z02Ii i s02Mi i get A33 mul put
       } for %i=0,76

/fsX02Ii 0 def  /fsY02Ii 0 def  /fsZ02Ii 0 def
0 1 76 {/i exch def  %i=0,76 Summe fsumxyzIi
             /fsX02Ii fsX02Ii X02Ii i get add def
             /fsY02Ii fsY02Ii Y02Ii i get add def
             /fsZ02Ii fsZ02Ii Z02Ii i get add def
       } for %i=0,76

0 1 76 {/i exch def %i=0,76 Normierung auf 1 XYZ
             X02Mi i X02Ii i get 1.1510330 div put %max 600nm
             Y02Mi i Y02Ii i get 0.9994608 div put %max 555nm
             Z02Mi i Z02Ii i get 1.9184370 div put %max 445nm
       } for %i=0,76

/fsX02Mi 0 def  /fsY02Mi 0 def  /fsZ02Mi 0 def
0 1 76 {/i exch def  %i=0,76 Summe fsumxyzMi
             /fsX02Mi fsX02Mi X02Mi i get add def
             /fsY02Mi fsY02Mi Y02Mi i get add def
             /fsZ02Mi fsZ02Mi Z02Mi i get add def
       } for %i=0,76

0 1 76 {/i exch def %i=0,76 xyzan
             /sumXYZ X02Ii i get
                     Y02Ii i get add
                     Z02Ii i get add def
             xan02Ii i X02Ii i get sumXYZ div put
             yan02Ii i Y02Ii i get sumXYZ div put
             zan02Ii i Z02Ii i get sumXYZ div put
       } for %i=0,76

} bind def %END proc_PDT_colours

%*************************************************
%STOP4
/proc_Munsell_colours
{%BEG proc_Munsell_colours

%calculation of transformation data
/FARBE 27 array def
/FARBE [(Munsell Value 1, 2, 5, 8, 9) () () %00
        () () () %01
        (Y=1.21, 3.13, 19.8, 59.1, 78.7) () () %02
        () () () %03
        (L* about 10, 20, 50, 80, 90) () () %04
        () () () %05
        () () () %06
        () () () %07
        () () () %08
       ] def

%Input
/xy_MUNSELL 400 array def %80*5=400 xan,yan*1000 data
/xy_MUNSELL %BEG xy_MUNSELL
[%'DMYY'MUNSELL_V19_CR2.DAT; CHROMA 2 FUER VALUE 1, 2, 5, 8, 9
%  05                                                                           
%  1 40  1  1 VALUE1
 2677 2280 2547 2310 2427 2368 2360 2420 2309 2491 2291 2579 2291 2677 2322 2781
 2362 2882 2430 3023 2500 3141 2600 3289 2689 3407 2758 3484 2833 3564 2910 3634
 3006 3720 3154 3840 3359 3982 3540 4088 3802 4212 4042 4287 4230 4265 4362 4177
 4446 3982 4430 3775 4377 3580 4258 3344 4128 3154 4020 3034 3908 2929 3768 2816
 3629 2710 3498 2617 3378 2542 3240 2459 3132 2404 3030 2361 2936 2330 2808 2296
%  1 40 02  2 VALUE2
 2803 2567 2712 2582 2638 2624 2592 2675 2558 2725 2545 2799 2559 2874 2578 2940
 2606 3010 2651 3098 2697 3175 2765 3271 2820 3341 2869 3400 2918 3450 2978 3507
 3069 3580 3165 3650 3309 3743 3421 3803 3556 3848 3660 3858 3757 3839 3825 3785
 3872 3688 3889 3590 3880 3476 3852 3365 3811 3274 3751 3181 3692 3111 3614 3033
 3532 2957 3459 2892 3383 2829 3279 2754 3161 2691 3071 2647 2984 2612 2892 2583
%  1 40 05  3 VALUE5
 2959 2905 2918 2908 2882 2923 2847 2942 2821 2966 2803 3000 2794 3032 2791 3071
 2796 3111 2812 3161 2841 3210 2880 3270 2910 3310 2945 3355 2978 3392 3030 3445
 3110 3508 3188 3560 3289 3612 3352 3636 3422 3648 3470 3640 3500 3620 3534 3570
 3546 3514 3540 3445 3530 3395 3506 3337 3465 3278 3425 3229 3392 3192 3360 3158
 3332 3131 3296 3098 3256 3065 3199 3019 3148 2986 3103 2959 3045 2928 3000 2912
%  1 40 08  4 VALUE8
 3027 3035 3003 3034 2974 3039 2957 3047 2935 3062 2922 3077 2908 3096 2897 3124
 2894 3152 2900 3183 2919 3228 2940 3268 2957 3293 2981 3326 3009 3359 3053 3404
 3121 3459 3194 3502 3284 3542 3327 3555 3359 3552 3379 3540 3394 3518 3406 3484
 3407 3434 3395 3379 3373 3330 3334 3276 3301 3237 3277 3211 3254 3186 3236 3169
 3218 3152 3200 3136 3180 3120 3154 3100 3131 3084 3107 3070 3065 3047 3048 3040
%  1 40 09  5 VALUE9
 3038 3054 3015 3052 2991 3057 2975 3063 2949 3076 2937 3087 2919 3102 2909 3125
 2907 3159 2911 3188 2930 3232 2947 3267 2965 3293 2987 3323 3017 3357 3058 3400
 3124 3454 3198 3500 3284 3534 3321 3539 3349 3537 3365 3527 3378 3504 3390 3472
 3392 3430 3380 3377 3353 3325 3320 3273 3284 3233 3263 3210 3240 3188 3210 3168
 3205 3155 3190 3141 3172 3126 3149 3108 3128 3094 3107 3081 3067 3060 3050 3051
] def %END xy_MUNSELL

/Y_MUNSELL 5 array def %5 Y*1000 data
/Y_MUNSELL %BEG xY_MUNSELL, from Richter Dissertation (1969), page 100
[12100 31300 197700 591000 786600] def %here 4 decimal places!

/xy_MUNSELL_C 2 array def %2 xy*1000 data
/xy_MUNSELL_C %BEG xy_MUNSELL_C 
[3101 3162] def %END xy_MUNSELL_C

/xy_MUNSELL_Ex 6 array def %6 xy*1000 data, Value 2, 5, 8
/xy_MUNSELL_Ex %BEG xy_MUNSELL_Ex
[%  1 01  2  4CR=2EX
 3149 3086
%  1 01  5  5CR=2EX
 3142 3234
%  1 01  8  6CR=2EX
 3144 3275
] def %END xy_MUNSELL_Ex

%M=Munsell

/XMi 200 array def %5*40 colour of chroma 2
/YMi 200 array def
/ZMi 200 array def
/XANMi 200 array def
/YANMi 200 array def
/ZANMi 200 array def

/AANMi 200 array def
/BANMi 200 array def

0 0 0 1 setcmykcolor

/fscale 0.0001 def
0 1 199 {/k exch def %k=0,199
         /k2 k 2 mul def
          XANMi k xy_MUNSELL k2 0 add get fscale mul put
          YANMi k xy_MUNSELL k2 1 add get fscale mul put
          ZANMi k 1. XANMi k get sub YANMi k get sub put
          /kV k 40 idiv def
          /YVALUE Y_MUNSELL kV get fscale mul def
          YMi   k YVALUE put
          /SUMY YVALUE YANMi k get div def
          XMi k SUMY XANMi k get mul put
          ZMi k SUMY ZANMi k get mul put
} for %k=0,199

%***********************
%XWM,YWM,ZWM and XKW,YKW,ZKW for white
/YANWM xy_MUNSELL_C 0 get fscale mul def
/YANWM xy_MUNSELL_C 1 get fscale mul def
/ZANWM 1. YANWM sub YANWM sub def
/YWM 100. def
/SUMWM YWM YANWM div def
/XWM SUMWM YANWM mul def
/ZWM SUMWM ZANWM mul def

/XKM XWM def
/YKM YWM def
/ZKM ZWM def

} bind def %END proc_Munsell_colours

%*************************************************************************
/proc_Ostwald_colours
{%BEG proc_Ostwald_colours

%Input
%/F2  240 array def %either 2 or 10 degree observer
%/F10 240 array def %either 2 or 10 degree observer

%/SX01 80  array def %380 bis 775 mit deltalambda=05
%/SX02 80  array def %380 bis 775 mit deltalambda=05
%/SX03 80  array def %380 bis 775 mit deltalambda=05
%/SX03 80  array def %380 bis 775 mit deltalambda=05
%/SX05 80  array def %380 bis 775 mit deltalambda=05
%/SX06 80  array def %380 bis 775 mit deltalambda=05
%/SX07 80  array def %380 bis 775 mit deltalambda=05

/WEL1i 60 array def %irregular definition
/WEL2i 60 array def %irregular definition
       %0   1   2   3   4   5   6   7   8   9
/WEL1i [405 435 450 460 465 470 475 480 485 490
        495 500 510 520 530 540 545 550 555 560
       ] def

%Calculation
/RAOi   80 array def %380 bis 770 nm
/F2Oi  240 array def %3 x 80 data for 380 bis 770nm, either 2 or 10 degree
/F2NOi 240 array def %3 x 80 data for 380 bis 770nm, either 2 or 10 degree

/SDAKOi 80 array def %380 bis 775 mit deltalambda=05

/SX00Oi 80 array def %380 bis 775 mit deltalambda=05
/SX01Oi 80 array def %380 bis 775 mit deltalambda=05
/SX02Oi 80 array def %380 bis 775 mit deltalambda=05
/SX03Oi 80 array def %380 bis 775 mit deltalambda=05
/SX04Oi 80 array def %380 bis 775 mit deltalambda=05
/SX05Oi 80 array def %380 bis 775 mit deltalambda=05
/SX06Oi 80 array def %380 bis 775 mit deltalambda=05
/SX07Oi 80 array def %380 bis 775 mit deltalambda=05

%special wavelength range with complementary colours for E?
/FXDOi 80 array def
/FYDOi 80 array def
/FZDOi 80 array def
/DOWOi 80 array def

/FADOi 80 array def
/FBDOi 80 array def
/FCDOi 80 array def

%Results
/XOi 80 array def %usually 40 Ostwald COLOURS
/YOi 80 array def
/ZOi 80 array def
/XANOi 80 array def %usually 40 Ostwald COLOURS
/YANOi 80 array def
/ZANOi 80 array def

%/XKO def
%/YKO def
%/ZKO def
%/XANKO def
%/YANKO def
%/ZANKO def
%STOP4a
0 1 239 {/i exch def %i=0,239
         xcolor 0 eq {%xcolor=0,1
         F2Oi   i F2   i get put
                     } %xcolor=0
                     {%xcolor=1
         F2Oi   i F10   i get put
                     } ifelse %xcolor=1
        } for %i=0,239
%STOP5
/YKSUMO 0 def %For any illuminant
0 1 79 {/i exch def %i=0,1,79
        /YKSUMO YKSUMO F2Oi  80 i add get add def
} for %i=0,1,79

0 1 79 {/i exch def %i=0,1,79
        F2NOi  00 i add F2Oi  00 i add get YKSUM div 100 mul put
        F2NOi  80 i add F2Oi  80 i add get YKSUM div 100 mul put
        F2NOi 160 i add F2Oi 160 i add get YKSUM div 100 mul put
} for %i=0,1,79
           
0 1 79 {/i exch def %i=0,79
%        F2Oi   i F2   i get put %failure??
        SX00Oi i SX00 i get put
        SX01Oi i SX01 i get put
        SX02Oi i SX02 i get put
        SX03Oi i SX03 i get put
        SX04Oi i SX04 i get put
        SX05Oi i SX05 i get put
        SX06Oi i SX06 i get put
        SX07Oi i SX07 i get put
       } for %i=0,79

%calculation of XW,YW,ZW for illuminant D65, D50, ...
0 1 79 {/i exch def %i=0,79
        SDAKOi i xchartx 0 eq {SX00Oi i get} if
                 xchartx 1 eq {SX01Oi i get} if
                 xchartx 2 eq {SX02Oi i get} if
                 xchartx 3 eq {SX03Oi i get} if
                 xchartx 4 eq {SX04Oi i get} if
                 xchartx 5 eq {SX05Oi i get} if
                 xchartx 6 eq {SX06Oi i get} if
                 xchartx 7 eq {SX07Oi i get} if
                 put
       } for %i=0,79

/YKSUM 0 def
0 1 79 {/i exch def %i=0,1,79
        /YKSUM YKSUM SDAKOi i get F2Oi  80 i add get mul add def
} for %i=0,1,79

0 1 79 {/i exch def %i=0,1,79
        F2NOi  00 i add SDAKOi i get F2Oi  00 i add get mul YKSUM div 100 mul put
        F2NOi  80 i add SDAKOi i get F2Oi  80 i add get mul YKSUM div 100 mul put
        F2NOi 160 i add SDAKOi i get F2Oi 160 i add get mul YKSUM div 100 mul put
} for %i=0,1,79

/FXNOi 80 array def %FXN 0 = F2N imax
/FYNOi 80 array def
/FZNOi 80 array def
%defines FXN, FYN, FZN 0 to 79
0 1 79 {/i exch def %i=0,79
        FXNOi i F2NOi 000 i add get put
        FYNOi i F2NOi 080 i add get put
        FZNOi i F2NOi 160 i add get put
} for %i=0,79

%XWO,YWO,ZWO for white
/XWO 0 def
/YWO 0 def
/ZWO 0 def
0 1 079 {/i exch def %i=0,79
         /XWO XWO F2NOi  00 i add get add def
         /YWO YWO F2NOi  80 i add get add def
         /ZWO ZWO F2NOi 160 i add get add def
        } for %i=0,79

/SUMWO XWO YWO add ZWO add def %for X00, X01, X02, X03, X04, X05, X06, X07
/XANWO XWO SUMWO div def
/YANWO YWO SUMWO div def
/ZANWO ZWO SUMWO div def

00 1 60 {/i exch def %i=0,60 %range 400..700nm
         FXDOi  i FXNOi 005 i add get put
         FYDOi  i FYNOi 005 i add get put
         FZDOi  i FZNOi 005 i add get put
         DOWOi i 400 i 5 mul add put %range 400 to 700
        } for %i=0,60

%for interpolation
FXDOi  61 FXDOi  60 get put
FYDOi  61 FYDOi  60 get put
FZDOi  61 FZDOi  60 get put

FXDOi  62 FXDOi  60 get put
FYDOi  62 FYDOi  60 get put
FZDOi  62 FZDOi  60 get put

0 1 62 {/i exch def %i=0,62
        FADOi i FXDOi i get put
        FBDOi i FYDOi i get put
        FCDOi i FZDOi i get put
       } for %i=0,62

%      FXU(1)=FF(2)*U(3)-FF(3)*U(2)
%      FXU(2)=FF(3)*U(1)-FF(1)*U(3)
%      FXU(3)=FF(1)*U(2)-FF(2)*U(1)

%      SUBROUTINE DOWEL (F,FXU,IMAX,IO)
%      DIMENSION F(99,3),FXU(3)
%      I=1
%      T2=F(1,1)*FXU(1)+F(1,2)*FXU(2)+F(1,3)*FXU(3)
%      IF(T2) 1,1,4
%    1 T1=T2
%      I=I+1
%      T2=F(I,1)*FXU(1)+F(I,2)*FXU(2)+F(I,3)*FXU(3)
%      IF(T2) 1,1,2
%    2 IF(T1) 3,3,1
%    3 IO=I-1
%      RETURN
%    4 T1=F(IMAX,1)*FXU(1)+F(IMAX,2)*FXU(2)+F(IMAX,3)*FXU(3)
%      IF(T1) 5,5,1
%    5 IO=IMAX
%      RETURN
%      END

%*********************************************************
/proc_ABC_KNP_FWERTiX
{%BEG proc_ABC_KNP_FWERT

%input FADO,FBDO,FCDO, KNPO
%output FWERTiX/Y/Z (i=1,4)

  KNP   1 ge {/FWERT1X FADOi KNP    1 sub get def
              /FWERT1Y FBDOi KNP    1 sub get def
              /FWERT1Z FCDOi KNP    1 sub get def}
             {/FWERT1X FADOi 0 get def %again 400nm for i=0
              /FWERT1Y FBDOi 0 get def
              /FWERT1Z FCDOi 0 get def} ifelse

    /FWERT2X FADOi KNP    get def
    /FWERT2Y FBDOi KNP    get def
    /FWERT2Z FCDOi KNP    get def

    /FWERT3X FADOi KNP    1 add get def
    /FWERT3Y FBDOi KNP    1 add get def
    /FWERT3Z FCDOi KNP    1 add get def

    /FWERT4X FADOi KNP    2 add get def
    /FWERT4Y FBDOi KNP    2 add get def
    /FWERT4Z FCDOi KNP    2 add get def

} bind def %END proc_ABC_KNP_FWERTiX

%*********************************************************
/proc_XIE_TN1
{%BEG proc_XIE_TN1

%input XIE, FWERTiX/Y/Z (i=1,4)
%output TN1

/A1N XIE       1 XIE sub mul XIE 2 sub mul 6 div   def
/A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def
/A3N XIE 1 add XIE       mul 2 XIE sub mul 0.5 mul def
/A4N XIE 1 add XIE       mul XIE 1 sub mul 6 div   def
/FNX A1N FWERT1X mul
     A2N FWERT2X mul add
     A3N FWERT3X mul add
     A4N FWERT4X mul add def
/FNY A1N FWERT1Y mul
     A2N FWERT2Y mul add
     A3N FWERT3Y mul add
     A4N FWERT4Y mul add def
/FNZ A1N FWERT1Z mul
     A2N FWERT2Z mul add
     A3N FWERT3Z mul add
     A4N FWERT4Z mul add def
/TNX FNX FXU1 mul
     FNY FXU2 mul add
     FNZ FXU3 mul add def

} bind def %END proc_XIE_TN1

%*********************************************************

0 1 19 {/k exch def %k=0,19 %wavelength 405..700nm

        /j  WEL1i k get 400 sub 5 idiv def
        /LP k def
        /LPP 20.5 k add def

       /FF1 FXDOi j get def %start at 405..700nm
       /FF2 FYDOi j get def
       /FF3 FZDOi j get def

       /U1 XWO def
       /U2 YWO def
       /U3 ZWO def
       
       /FXU1 FF2 U3 mul FF3 U2 mul sub def
       /FXU2 FF3 U1 mul FF1 U3 mul sub def
       /FXU3 FF1 U2 mul FF2 U1 mul sub def

/INP -1 def
/IPN -1 def
%assumption jump from TN to TP from negativ to positiv
       0 1 60 {/i exch def %i=1,60
               /TN FADOi i get FXU1 mul
                   FBDOi i get FXU2 mul add
                   FCDOi i get FXU3 mul add def

               /TP FADOi i 1 add get FXU1 mul
                   FBDOi i 1 add get FXU2 mul add
                   FCDOi i 1 add get FXU3 mul add def
               TN 0 le TP 0 gt and {/INP i def exit} if
              } for %i=1,60

       0 1 60 {/i exch def %i=1,60
               /TN FADOi i get FXU1 mul
                   FBDOi i get FXU2 mul add
                   FCDOi i get FXU3 mul add neg def
               /TP FADOi i 1 add get FXU1 mul
                   FBDOi i 1 add get FXU2 mul add
                   FCDOi i 1 add get FXU3 mul add neg def
               TN 0 le TP 0 gt and {/IPN i def exit} if
              } for %i=1,60

%*********************************************************
/KNP INP def

KNP    0 ge {%kNP>=0

proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4)

/XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2
/XIE2 1 def

0 1 9 {/mk exch def %mk=0,9
       /XIE XIE1 XIE2 add 0.5 mul def
       proc_XIE_TN1  %input XIE, ouput TN1
       TNX 0 le {/XIE1 XIE def /TN1 TNX def}
                {/XIE2 XIE def /TP1 TNX def} ifelse
      } for %mk=0,9

/XIE XIE1 XIE2 add 0.5 mul def
/DOWXIE1 DOWOi INP get DOWOi INP 1 add get DOWOi INP get sub XIE mul add def
/XIENP XIE def

       } if %kNP>=0

%*********************************************************
/KNP    IPN def

KNP    0 ge {%kNP>=0

proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4)

/XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2
/XIE2 1 def
/FXU1 FXU1 neg def
/FXU2 FXU2 neg def
/FXU3 FXU3 neg def

0 1 9 {/mk exch def %mk=0,9
       /XIE XIE1 XIE2 add 0.5 mul def
       proc_XIE_TN1  %input XIE, ouput TN1
       TNX 0 le {/XIE1 XIE def /TN1 TNX def}
                {/XIE2 XIE def /TP1 TNX def} ifelse
      } for %mk=0,9

/XIE XIE1 XIE2 add 0.5 mul def
/DOWXIE2 DOWOi IPN get DOWOi IPN 1 add get DOWOi IPN get sub XIE mul add def
/XIEPN XIE def

       } if %kNP>=0

%*********************************************************
0 1 79 {/i exch def %i=0,79
        RAOi i 0 put
       } for %i=0,79

INP -1 eq {/i1 0 def}                %380nm
          {/i1 INP 5 add def} ifelse %405..700nm

IPN -1 eq {/i2 79 def}               %770nm
          {/i2 IPN 5 add def} ifelse %405..700nm

i2 i1 ge {%i1<i2
          i1 1 i2 {/i exch def %i=i1,i2
                   RAOi i 1 put
                  } for %i=i1,i2
         }%i1<i2
         {%i1>i2
          i1 1 79 {/i exch def %i=i1,79
                   RAOi i 1 put
                  } for %i=i1,79
          0  1 i2 {/i exch def %i=0,i2
                   RAOi i 1 put
                  } for %i=0,i2
                  
         } ifelse %i1>i2

%correction
i2 i1 ge {%i1<i2
          RAOi i1 0.5 put
          RAOi i2 0.5 XIEPN 0.5 sub add put
         }%i1<i2
         {%i1>i2
          RAOi i1 0.5 put
          RAOi i2 0.5 XIEPN 0.5 sub add put
         } ifelse %i1>i2

%***************************************************
/XO 0 def
/YO 0 def
/ZO 0 def
0 1 079 {/i exch def %i=0,79
         /XO XO F2NOi  00 i add get RAOi i get mul add def
         /YO YO F2NOi  80 i add get RAOi i get mul add def
         /ZO ZO F2NOi 160 i add get RAOi i get mul add def
        } for %i=0,79

/SUMO XO YO add ZO add def
/XANO XO SUMO FL add div def
/YANO YO SUMO FL add div def
/ZANO ZO SUMO FL add div def

%*************************************************

0 0 0 1 setcmykcolor

0 1 1 {/Icom exch def %Icom=0,1

Icom 0 eq {%Icom=0,1
           XOi k XO put
           YOi k YO put
           ZOi k ZO put
           XANOi k XANO put
           YANOi k YANO put
           ZANOi k ZANO put
          }%Icom=0
          {%Icom=1
           /kP 20 k add def
           XOi kP XWO XO sub put
           YOi kP YWO YO sub put
           ZOi kP ZWO ZO sub put
           /SUMO XOi kP get
                 YOi kP get add
                 ZOi kP get add def
           XANOi kP XOi kP get SUMO FL add div put
           YANOi kP YOi kP get SUMO FL add div put
           ZANOi kP ZOi kP get SUMO FL add div put
          } ifelse %Icom=1

} for %Icom=0,1

K 1 eq {%K=1
        XOi k  XOi k  get 0.8859 mul put
        YOi k  YOi k  get 0.8859 mul put
        ZOi k  ZOi k  get 0.8859 mul put
        XOi kP XOi kP get 0.8859 mul put
        YOi kP YOi kP get 0.8859 mul put
        ZOi kP ZOi kP get 0.8859 mul put
       } if %K=1

} for %k=0,19

%**************************************
%XWO,YWO,ZWO and XKO,YKO,ZKO for white
/XWO 0 def
/YWO 0 def
/ZWO 0 def
0 1 079 {/i exch def %i=0,79
         /XWO XWO F2NOi  00 i add get add def
         /YWO YWO F2NOi  80 i add get add def
         /ZWO ZWO F2NOi 160 i add get add def
        } for %i=0,79

K 0 eq {%K=0
        /XKO XWO def
        /YKO YWO def
        /ZKO ZWO def
       }%K=0
       {%K=1
        /XKO XWO 0.8859 mul def
        /YKO YWO 0.8859 mul def
        /ZKO ZWO 0.8859 mul def
       } ifelse %K=1

/SUMKO XKO YKO add ZKO add def %for X00, X01, X02, X03, X04, X05, X06, X07
/XANKO XKO SUMKO div def
/YANKO YKO SUMKO div def
/ZANKO ZKO SUMKO div def

/XANWL XANWO def
/YANWL YANWO def
/ZANWL ZANWO def

icomp 1 eq {%icomp=1
            0 1 39 {/i exch def %i=0,39
                    XOi i XKO XOi i get sub put
                    YOi i YKO YOi i get sub put
                    ZOi i ZKO ZOi i get sub put
                   } for %i=0,39
            0 1 39 {/i exch def %i=0,39
                    /XYZSUMO XOi i get YOi i get add ZOi i get add def
                    XANOi i XOi i get XYZSUMO 0.0001 add div put
                    YANOi i YOi i get XYZSUMO 0.0001 add div put
                    ZANOi i ZOi i get XYZSUMO 0.0001 add div put
                   } for %i=0,39
           } if %icomp=1

} bind def %END proc_Ostwald_colours

%****************************************************************************
/proc_Spectral_colours
{%BEG proc_Spectral_colours

%Input
%/F2  240 array def %either 2 or 10 degree observer
%/F10 240 array def %either 2 or 10 degree observer

%/SX01 80  array def %380 bis 775 mit deltalambda=05
%/SX02 80  array def %380 bis 775 mit deltalambda=05
%/SX03 80  array def %380 bis 775 mit deltalambda=05
%/SX03 80  array def %380 bis 775 mit deltalambda=05
%/SX05 80  array def %380 bis 775 mit deltalambda=05
%/SX06 80  array def %380 bis 775 mit deltalambda=05
%/SX07 80  array def %380 bis 775 mit deltalambda=05


%Calculation
/RASi   80 array def %380 bis 770 nm
/F2Si  300 array def %3 x 97 data for 380 bis 770nm, either 2 or 10 degree
/F2NSi 300 array def %3 x 97 data for 380 bis 770nm, either 2 or 10 degree

/SDAKSi 80 array def %380 bis 775 mit deltalambda=05

/SX00Si 80 array def %380 bis 775 mit deltalambda=05
/SX01Si 80 array def %380 bis 775 mit deltalambda=05
/SX02Si 80 array def %380 bis 775 mit deltalambda=05
/SX03Si 80 array def %380 bis 775 mit deltalambda=05
/SX04Si 80 array def %380 bis 775 mit deltalambda=05
/SX05Si 80 array def %380 bis 775 mit deltalambda=05
/SX06Si 80 array def %380 bis 775 mit deltalambda=05
/SX07Si 80 array def %380 bis 775 mit deltalambda=05


/XSi  100 array  def %usually 97 Spectral COLOURS
/YSi  100 array  def
/ZSi  100 array  def
/XANSi  100 array  def %usually 97 Spectra COLOURS
/YANSi  100 array  def
/ZANSi  100 array  def

0 1 239 {/i exch def %i=0,239
         xcolor 0 eq {%xcolor=0,1
         F2Si   i F2   i get put
                     } %xcolor=0
                     {%xcolor=1
         F2Si   i F10   i get put
                     } ifelse %xcolor=1
        } for %i=0,239

/YKSUMS 0 def %For any illuminant
0 1 79 {/i exch def %i=0,1,79
        /YKSUMS YKSUMS F2Si  80 i add get add def
} for %i=0,1,79

0 1 79 {/i exch def %i=0,1,79
        F2NSi  00 i add F2Si  00 i add get YKSUM div 100 mul put
        F2NSi  80 i add F2Si  80 i add get YKSUM div 100 mul put
        F2NSi 160 i add F2Si 160 i add get YKSUM div 100 mul put
} for %i=0,1,79
           
0 1 79 {/i exch def %i=0,79
        SX00Si i SX00 i get put
        SX01Si i SX01 i get put
        SX02Si i SX02 i get put
        SX03Si i SX03 i get put
        SX04Si i SX04 i get put
        SX05Si i SX05 i get put
        SX06Si i SX06 i get put
        SX07Si i SX07 i get put
       } for %i=0,79

%calculation of XW,YW,ZW for illuminant D65, D50, ...
0 1 79 {/i exch def %i=0,79
        SDAKSi i xchartx 0 eq {SX00Si i get} if
                 xchartx 1 eq {SX01Si i get} if
                 xchartx 2 eq {SX02Si i get} if
                 xchartx 3 eq {SX03Si i get} if
                 xchartx 4 eq {SX04Si i get} if
                 xchartx 5 eq {SX05Si i get} if
                 xchartx 6 eq {SX06Si i get} if
                 xchartx 7 eq {SX07Si i get} if
                 put
       } for %i=0,79

/YKSUM 0 def
0 1 79 {/i exch def %i=0,1,79
        /YKSUM YKSUM SDAKSi i get F2Si  80 i add get mul add def
} for %i=0,1,79

0 1 79 {/i exch def %i=0,1,79
        F2NSi  00 i add SDAKSi i get F2Si  00 i add get mul YKSUM div 100 mul put
        F2NSi  80 i add SDAKSi i get F2Si  80 i add get mul YKSUM div 100 mul put
        F2NSi 160 i add SDAKSi i get F2Si 160 i add get mul YKSUM div 100 mul put
} for %i=0,1,79

/FXNSi  100 array  def %FXN 0 = F2N imax
/FYNSi  100 array  def
/FZNSi  100 array  def

%defines FXN, FYN, FZN 0 to 79
0 1 79 {/i exch def %i=0,79
        FXNSi i F2NSi  000 i add get put
        FYNSi i F2NSi  080 i add get put
        FZNSi i F2NSi  160 i add get put
} for %i=0,79


%XWS,YWS,ZWS and XKS,YKS,ZKS for white
/XWS 0 def
/YWS 0 def
/ZWS 0 def
0 1 079 {/i exch def %i=0,79
         /XWS XWS F2NSi  00 i add get add def
         /YWS YWS F2NSi  80 i add get add def
         /ZWS ZWS F2NSi 160 i add get add def
        } for %i=0,79

K 0 eq {%K=0
        /XKS XWS def
        /YKS YWS def
        /ZKS ZWS def
       }%K=0
       {%K=1
        /XKS XWS 0.8859 mul def
        /YKS YWS 0.8859 mul def
        /ZKS ZWS 0.8859 mul def
       } ifelse %K=1

/SUMKS XKS YKS add ZKS add def %for X00, X01, X02, X03, X04, X05, X06, X07
/XANKS XKS SUMKS div def
/YANKS YKS SUMKS div def
/ZANKS ZKS SUMKS div def

/XANWL XANKS def
/YANWL YANKS def
/ZANWL ZANKS def

0 1 16 {/i exch def %i=0,16
         xcolor 0 eq {%xcolor=0
         FXNSi 80 i add F02Z 00 i add get YKSUM div 100 mul put
         FYNSi 80 i add F02Z 17 i add get YKSUM div 100 mul put
         FZNSi 80 i add F02Z 34 i add get YKSUM div 100 mul put
        } %xcolor=0,1
        { %xcolor=1
         FXNSi 80 i add F10Z 00 i add get YKSUM div 100 mul put
         FYNSi 80 i add F10Z 17 i add get YKSUM div 100 mul put
         FZNSi 80 i add F10Z 34 i add get YKSUM div 100 mul put
        } ifelse
       } for %i=0,16

%STOP10
FXNSi 97 FXNSi 0 get put
FYNSi 97 FYNSi 0 get put
FZNSi 97 FZNSi 0 get put

0 1 61 {/i exch def %i=0,61
        XSi i FXNSi 5 i add get put
        YSi i FYNSi 5 i add get put
        ZSi i FZNSi 5 i add get put
       } for %i=0,61

0 1 16 {/i exch def %i=0,16
        XSi 61 i add FXNSi 80 i add get put
        YSi 61 i add FYNSi 80 i add get put
        ZSi 61 i add FZNSi 80 i add get put
       } for %i=0,16
       
0 1 76 {/i exch def %i=0,76
        /XYZSUMS XSi i get YSi i get add ZSi i get add def
        XANSi i XSi i get XYZSUMS 0.0001 add div put
        YANSi i YSi i get XYZSUMS 0.0001 add div put
        ZANSi i ZSi i get XYZSUMS 0.0001 add div put
       } for %i=0,76

XSi 77 XSi 0 get put
YSi 77 YSi 0 get put
ZSi 77 ZSi 0 get put
XANSi 77 XANSi 0 get put
YANSi 77 YANSi 0 get put
ZANSi 77 ZANSi 0 get put

icomp 1 eq {%icomp=1
            0 1 77 {/i exch def %i=0,77
                    XSi i XKS XSi i get sub put
                    YSi i YKS YSi i get sub put
                    ZSi i ZKS ZSi i get sub put
                   } for %i=0,77
            0 1 77 {/i exch def %i=0,77
                    /XYZSUMS XSi i get YSi i get add ZSi i get add def
                    XANSi i XSi i get XYZSUMS 0.0001 add div put
                    YANSi i YSi i get XYZSUMS 0.0001 add div put
                    ZANSi i ZSi i get XYZSUMS 0.0001 add div put
                   } for %i=0,77
           } if %icomp=1

} bind def %END proc_Spectral_colours

%**********************************************************************

%****************************************************************
%allways
/proc_DEF_colours
{%BEG proc_DEF_colours
%Colour Deficiencies

/ip1 700 380 sub 5 idiv def %ip=64:700nm
/XANP1 XANi ip1 get def
/YANP1 YANi ip1 get def
/ZANP1 ZANi ip1 get def

/id1 505 380 sub 5 idiv def %ip=25:505nm
/XAND1 XANi id1 get def
/YAND1 YANi id1 get def
/ZAND1 ZANi id1 get def

/it1 400 380 sub 5 idiv def %ip=4:400nm
/XANT1 XANi it1 get def
/YANT1 YANi it1 get def
/ZANT1 ZANi it1 get def

%*************************
/XANP XANP1 def
/YANP YANP1 def
/ZANP ZANP1 def

/XAND 1.000 def
/YAND 0.001 def
/ZAND 0.999 def

/XANT 0.171 def
/YANT 0.001 def
/ZANT 1.000 XANT sub YANT sub def

%*************************
/XAN00 0.3333 def %Illuminant E
/YAN00 0.3333 def

/mP YAN00 YANP sub XAN00 XANP sub div def %700nm
/bP YAN00 XAN00 mP mul sub def

/mD YAN00 YAND sub XAN00 XAND sub div def %xx
/bD YAN00 XAN00 mD mul sub def

/mT YAN00 YANT sub XAN00 XANT sub div def %xx
/bT YAN00 XAN00 mT mul sub def

%*************************
/mP1 YAN00 YANP1 sub XAN00 XANP1 sub div def %700nm
/bP1 YAN00 XAN00 mP1 mul sub def

%Deuteranop DM
0 1 0 setrgbcolor
/i 505 495 sub 5 idiv 1 add def %2 D (505c,E)
/XAND1 XANZi i get def
/YAND1 YANZi i get def

/mD1 YAN00 YAND1 sub XAN00 XAND1 sub div def %505cnm
/bD1 YAN00 XAN00 mD1 mul sub def

/mT1 YAN00 YANT1 sub XAN00 XANT1 sub div def %400nm
/bT1 YAN00 XAN00 mT1 mul sub def

/ishow {0 -40 rmoveto show 0 40 rmoveto} def
/eshow {0 60 rmoveto show 0 -60 rmoveto} def
/imshow {0 -40 rmoveto (m) show 0 40 rmoveto} def
/imaxshow {0 -40 rmoveto (max) show 0 40 rmoveto} def
/iminshow {0 -40 rmoveto (min) show 0 40 rmoveto} def

} bind def %END proc_DEF_colours

%allways if xchart6>=1
/proc_chromaticity
{%BEG proc_chromaticity
%chromaticity definitions

xchartl 0 eq {%xchartl=0 %(x,y)
              
0 1 79 {/i exch def %i=0,79
        AANi i XANi i get put
        BANi i YANi i get put
       } for %i=0,79

0 1 16 {/i exch def %i=0,16
        AANZi i XANZi i get put
        BANZi i YANZi i get put
       } for %i=0,16

%COlOUR VISION DEFICIENCIES
/AANP1 XANP1 def
/BANP1 YANP1 def
/AAND1 XAND1 def
/BAND1 YAND1 def
/AANT1 XANT1 def
/BANT1 YANT1 def

/AANP XANP def
/BANP YANP def
/AAND XAND def
/BAND YAND def
/AANT XANT def
/BANT YANT def

%ACHROMATIC COLOUR
/AANWL XANWL def
/BANWL YANWL def
/AANWC XANWC def
/BANWC YANWC def
      
             } if %xchartl=0 %only for (x,y)

%*****************
xchartl 1 eq {%xchartl=1 %(a0,b0)

0 1 79 {/i exch def %i=0,79
        AANi i XANi i get YANi i get FL add div a2 mul put
        BANi i ZANi i get YANi i get FL add div b2 mul put
       } for %i=0,79

0 1 16 {/i exch def %i=0,16
        AANZi i XANZi i get YANZi i get FL add div a2 mul put
        BANZi i ZANZi i get YANZi i get FL add div b2 mul put
       } for %i=0,79

%COlOUR VISION DEFICIENCIES
/AANP1 XANP1 YANP1 FL add div a2 mul def
/BANP1 ZANP1 YANP1 FL add div b2 mul def
/AAND1 XAND1 YAND1 FL add div a2 mul def
/BAND1 ZAND1 YAND1 FL add div b2 mul def
/AANT1 XANT1 YANT1 FL add div a2 mul def
/BANT1 ZANT1 YANT1 FL add div b2 mul def

/AANP XANP YANP FL add div a2 mul def
/BANP ZANP YANP FL add div b2 mul def
/AAND XAND YAND FL add div a2 mul def
/BAND ZAND YAND FL add div b2 mul def
/AANT XANT YANT FL add div a2 mul def
/BANT ZANT YANT FL add div b2 mul def

%ACHROMATIC COLOUR
/AANWL XANWL YANWL FL add div a2 mul def
/BANWL ZANWL YANWL FL add div b2 mul def
/AANWC XANWC YANWC FL add div a2 mul def
/BANWC ZANWC YANWC FL add div b2 mul def

             } if %xchartl=1 %only for (a0,b0)

%*****************
xchartl 2 eq {%xchartl=2 %(a1,b1)

0 1 79 {/i exch def %i=0,79
        AANi i XANi i get XANT sub YANi i get FL add div a2 mul put
        BANi i ZANi i get YANi i get FL add div b2 mul put
       } for %i=0,79

0 1 16 {/i exch def %i=0,16
        AANZi i XANZi i get XANT sub YANZi i get FL add div a2 mul put
        BANZi i ZANZi i get YANZi i get FL add div b2 mul put
       } for %i=0,79

%COlOUR VISION DEFICIENCIES
/AANP1 XANP1 XANT sub YANP1 FL add div a2 mul def
/BANP1 ZANP1 YANP1 FL add div b2 mul def
/AAND1 XAND1 XANT sub YAND1 FL add div a2 mul def
/BAND1 ZAND1 YAND1 FL add div b2 mul def
/AANT1 XANT1 XANT sub YANT1 FL add div a2 mul def
/BANT1 ZANT1 YANT1 FL add div b2 mul def

/AANP XANP XANT sub YANP FL add div a2 mul def
/BANP ZANP YANP FL add div b2 mul def
/AAND XAND XANT sub YAND FL add div a2 mul def
/BAND ZAND YAND FL add div b2 mul def
/AANT XANT XANT sub YANT FL add div a2 mul def
/BANT ZANT YANT FL add div b2 mul def

%ACHROMATIC COLOUR
/AANWL XANWL XANT sub YANWL FL add div a2 mul def
/BANWL ZANWL YANWL FL add div b2 mul def
/AANWC XANWC XANT sub YANWC FL add div a2 mul def
/BANWC ZANWC YANWC FL add div b2 mul def

             } if %xchartl=2 %only for (a1,b1)

%*****************
xchartl 3 eq {%xchartl=3 %(a2,b2)
%a=x/y 
%b=(mP1*x+bP1)/y

0 1 79 {/i exch def %i=0,79
        AANi i XANi i get YANi i get FL add div a2 mul put
        BANi i XANi i get mP1 mul bP1 add YANi i get FL add div b2 mul put
       } for %i=0,79

0 1 16 {/i exch def %i=0,16
        AANZi i XANZi i get YANZi i get FL add div a2 mul put
        BANZi i XANZi i get mP1 mul bP1 add YANZi i get FL add div b2 mul put
       } for %i=0,79

%COlOUR VISION DEFICIENCIES
/AANP1 XANP1 YANP1 FL add div a2 mul def
/BANP1 XANP1 mP1  mul bP1  add YANP1 FL add div b2 mul def
/AAND1 XAND1 YAND1 FL add div a2 mul def
/BAND1 XAND1 mP1  mul bP1  add YAND1 FL add div b2 mul def
/AANT1 XANT1 YANT1 FL add div a2 mul def
/BANT1 XANT1 mP1  mul bP1  add YANT1 FL add div b2 mul def

/AANP XANP YANP FL add div a2 mul def
/BANP XANP mP1  mul bP1  add YANP FL add div b2 mul def
/AAND XAND YAND FL add div a2 mul def
/BAND XAND mP1  mul bP1  add YAND FL add div b2 mul def
/AANT XANT YANT FL add div a2 mul def
/BANT XANT mP1  mul bP1  add YANT FL add div b2 mul def

%ACHROMATIC COLOUR
/AANWL XANWL YANWL FL add div a2 mul def
/BANWL XANWL mP1 mul bP1 add YANWL FL add div b2 mul def
/AANWC XANWC YANWC FL add div a2 mul def
/BANWC XANWC mP1 mul bP1 add YANWC FL add div b2 mul def

             } if %xchartl=3 %only for (a2,b2)

%*****************
xchartl 4 eq {%xchartl=4 %(a3,b3)
%a=(x-XANT)/y 
%b=(mD1*x+bD1)/y

0 1 79 {/i exch def %i=0,79
        AANi i XANi i get XANT sub YANi i get FL add div a2 mul put
        BANi i XANi i get mD1 mul bD1 add YANi i get FL add div b2 mul put
       } for %i=0,79

0 1 16 {/i exch def %i=0,16
        AANZi i XANZi i get XANT sub YANZi i get FL add div a2 mul put
        BANZi i XANZi i get mD1 mul bD1 add YANZi i get FL add div b2 mul put
       } for %i=0,79

%COlOUR VISION DEFICIENCIES
/AANP1 XANP1 XANT sub YANP1 FL add div a2 mul def
/BANP1 XANP1 mD1  mul bD1   add YANP1  FL add div b2 mul def
/AAND1 XAND1 XANT sub YAND1 FL add div a2 mul def
/BAND1 XAND1 mD1  mul bD1   add YAND1  FL add div b2 mul def
/AANT1 XANT1 XANT sub YANT1 FL add div a2 mul def
/BANT1 XANT1 mD1  mul bD1   add YANT1  FL add div b2 mul def

/AANP XANP XANT sub YANP FL add div a2 mul def
/BANP XANP mD1  mul bD1  add YANP FL add div b2 mul def
/AAND XAND XANT sub YAND FL add div a2 mul def
/BAND XAND mD1  mul bD1  add YAND FL add div b2 mul def
/AANT XANT XANT sub YANT FL add div a2 mul def
/BANT XANT mD1  mul bD1  add YANT FL add div b2 mul def

%ACHROMATIC COLOUR
/AANWL XANWL XANT sub YANWL FL add div a2 mul def
/BANWL XANWL mD1 mul bD1 add YANWL FL add div b2 mul def
/AANWC XANWC XANT sub YANWC FL add div a2 mul def
/BANWC XANWC mD1 mul bD1 add YANWC FL add div b2 mul def

             } if %xchartl=4 %only for (a3,b3)

%*****************
xchartl 5 eq {%xchartl=5 %(a4,b4)
%a=x/y 
%b=(mP1*x+bP1)/y

0 1 79 {/i exch def %i=0,79
        AANi i XANi i get XANT sub YANi i get FL add div a2 mul put
        BANi i XANi i get mP1 mul bP1 add YANi i get FL add div b2 mul put
       } for %i=0,79

0 1 16 {/i exch def %i=0,16
        AANZi i XANZi i get XANT sub YANZi i get FL add div a2 mul put
        BANZi i XANZi i get mP1 mul bP1 add YANZi i get FL add div b2 mul put
       } for %i=0,79

%COlOUR VISION DEFICIENCIES
/AANP1 XANP1 XANT sub YANP1 FL add div a2 mul def
/BANP1 XANP1 mP1  mul bP1  add YANP1 FL add div b2 mul def
/AAND1 XAND1 XANT sub YAND1 FL add div a2 mul def
/BAND1 XAND1 mP1  mul bP1  add YAND1  FL add div b2 mul def
/AANT1 XANT1 XANT sub YANT1 FL add div a2 mul def
/BANT1 XANT1 mP1  mul bP1  add YANT1 FL add div b2 mul def

/AANP XANP XANT sub YANP FL add div a2 mul def
/BANP XANP mP1  mul bP1  add YANP FL add div b2 mul def
/AAND XAND XANT sub YAND FL add div a2 mul def
/BAND XAND mP1  mul bP1  add YAND FL add div b2 mul def
/AANT XANT XANT sub YANT FL add div a2 mul def
/BANT XANT mP1  mul bP1  add YANT FL add div b2 mul def

%ACHROMATIC COLOUR
/AANWL XANWL XANT sub YANWL FL add div a2 mul def
/BANWL XANWL mP1 mul bP1 add YANWL FL add div b2 mul def
/AANWC XANWC XANT sub YANWC FL add div a2 mul def
/BANWC XANWC mP1 mul bP1 add YANWC FL add div b2 mul def

             } if %xchartl=5 %only for (a4,b4)

%*****************
xchartl 6 eq {%xchartl=6 %(a5,b5)
/A51  8.6120 def
/A52 -7.1966 def
/A53 -0.2689 def
/B51  1.9907 def
/B52  3.8617 def
/B53 -2.4046 def
%a=(a51*x+a52*y+a53)/y 
%b=(b51*x+b52*y+b53)/y
/a2x 0.1 def
/b2x 0.1 def

0 1 79 {/i exch def %i=0,79
        AANi i XANi i get A51 mul YANi i get A52 mul add A53 add
               YANi i get FL add div a2x mul put
        BANi i XANi i get B51 mul YANi i get B52 mul add B53 add
               YANi i get FL add div b2x mul put
       } for %i=0,79

0 1 16 {/i exch def %i=0,16
        AANZi i XANZi i get A51 mul YANZi i get A52 mul add A53 add
                YANZi i get FL add div a2x mul put
        BANZi i XANZi i get B51 mul YANZi i get B52 mul add B53 add
                YANZi i get FL add div b2x mul put
       } for %i=0,79

%COlOUR VISION DEFICIENCIES
/AANP1 XANP1 XANT sub YANP1 FL add div a2 mul def
/BANP1 XANP1 mD1 mul bD1 add YANP1 FL add div b2 mul def
/AAND1 XAND1 XANT sub YAND1 FL add div a2 mul def
/BAND1 XAND1 mD1 mul bD1 add YAND1 FL add div b2 mul def
/AANT1 XANT1 XANT sub YANT1 FL add div a2 mul def
/BANT1 XANT1 mD1 mul bD1 add YANT1 FL add div b2 mul def

/AANP XANP XANT sub YANP FL add div a2 mul def
/BANP XANP mD1 mul bD1 add YANP FL add div b2 mul def
/AAND XAND XANT sub YAND FL add div a2 mul def
/BAND XAND mD1 mul bD1 add YAND FL add div b2 mul def
/AANT XANT XANT sub YANT FL add div a2 mul def
/BANT XANT mD1 mul bD1 add YANT FL add div b2 mul def

%ACHROMATIC COLOUR
/AANWL XANWL A51 mul YANWL A52 mul add A53 add
       YANWL FL add div a2x mul def
/BANWL XANWL B51 mul YANWL B52 mul add B53 add
       YANWL FL add div b2x mul def
/AANWC XANWC A51 mul YANWC A52 mul add A53 add
       YANWC FL add div a2x mul def
/BANWC XANWC B51 mul YANWC B52 mul add B53 add
       YANWC FL add div b2x mul def

             } if %xchartl=6 %only for (a5,b5)
             
%*****************
xchartl 7 eq {%xchartl=7 %(a6,b6)
%a=x/y
%b=(mD1*x+bD1)/y

0 1 79 {/i exch def %i=0,79
        AANi i XANi i get YANi i get FL add div a2 mul put
        BANi i XANi i get mD1 mul bD1 add YANi i get FL add div b2 mul put
       } for %i=0,79

0 1 16 {/i exch def %i=0,16
        AANZi i XANZi i get YANZi i get FL add div a2 mul put
        BANZi i XANZi i get mD1 mul bD1 add YANZi i get FL add div b2 mul put
       } for %i=0,79

%COlOUR VISION DEFICIENCIES
/AANP1 XANP1 YANP1 FL add div a2 mul def
/BANP1 XANP1 mD1 mul bD1 add YANP1 FL add div b2 mul def
/AAND1 XAND1 YAND1 FL add div a2 mul def
/BAND1 XAND1 mD1 mul bD1 add YAND1 FL add div b2 mul def
/AANT1 XANT1 YANT1 FL add div a2 mul def
/BANT1 XANT1 mD1 mul bD1 add YANT1 FL add div b2 mul def

/AANP XANP YANP FL add div a2 mul def
/BANP XANP mD1 mul bD1 add YANP FL add div b2 mul def
/AAND XAND YAND FL add div a2 mul def
/BAND XAND mD1 mul bD1 add YAND FL add div b2 mul def
/AANT XANT YANT FL add div a2 mul def
/BANT XANT mD1 mul bD1 add YANT FL add div b2 mul def

%ACHROMATIC COLOUR
/AANWL XANWL YANWL FL add div a2 mul def
/BANWL XANWL mD1 mul bD1 add YANWL FL add div b2 mul def
/AANWC XANWC YANWC FL add div a2 mul def
/BANWC XANWC mD1 mul bD1 add YANWC FL add div b2 mul def

             } if %xchartl=7 %only for (a6,b6)

} bind def %END proc_chromaticity

%***********************************************************
/proc_diagram_xchartl_txt
{%BEG proc_diagram_xchartl_txt

xchartl 0 eq {%xchartl=0,#0
(Normfarbtafel) showde
(chromaticity diagram) showea
TBS ( \050) show TBIS (x) show
xcolor 1 eq {(10) ib6} if
TBS (, ) show TBIS (y) show
xcolor 1 eq {(10) ib6} if
TBS (\051) show
             }%xchartl=0
             {%xchartl#0, 3 cases xchart10: abx, ABx, AB*x

xchart10 0 eq {%%xchart10=0, abx
(Farbarttafel) showde
(chromaticity) showea
TBS ( \050) show TBIS (a) show xchartl 1 sub cvicvs ib6
xcolor 1 eq {(,10) ib6} if
TBS (, ) show TBIS (b) show xchartl cvicvs ib6
xcolor 1 eq {(,10) ib6} if
TBS (\051) show
             } if %%xchart10=0, abx

xchart10 1 eq {%%xchart10=1, ABx
(Buntwert) showde
(chromatic value) showea
TBS ( \050) show TBIS (A) show xchartl 1 sub cvicvs ib6
xcolor 1 eq {(,10) ib6} if
TBS (, ) show TBIS (B) show xchartl 1 sub cvicvs ib6
xcolor 1 eq {(,10) ib6} if
TBS (\051) show
             } if %%xchart10=1, abx

xchart10 2 eq {%xchart10=2, AB*x
(Buntheit) showde
(chroma) showea
TBS ( \050) show TBIS (A*) show xchartl 1 sub cvicvs ib6
xcolor 1 eq {(,10) ib6} if
TBS (, ) show TBIS (B*) show xchartl 1 sub cvicvs ib6
xcolor 1 eq {(,10) ib6} if
TBS (\051) show
             } if %%xchart10=2, AB*x
            
             } ifelse %xchart#0

} bind def %END proc_diagram_xchartl_txt

%***********************************************************
/proc_xaxis_xchartl_txt
{%BEG proc_xaxis_xchartl_txt

xchartl 0 eq {%xchartl=0,#0
TBIS (x) show
xcolor 1 eq {TBV (10) ishow} if
             }%xchartl=0
             {%xchartl#0, 3 cases xchart10: abx, ABx, AB*x

xchart10 0 eq {%xchart10=0, abx
TBIS (a) show xchartl 1 sub cvicvs ib6
xcolor 1 eq {(,10) ib6} if
             } if %xchart10=0, abx

xchart10 1 eq {%xchart10=1, ABx
TBIS (A) show xchartl 1 sub cvicvs ib6
xcolor 1 eq {(,10) ib6} if
             } if %xchart10=1, ABx

xchart10 2 eq {%xchart10=2, AB*x
-200 0 rmoveto
TBIS (A*) show xchartl 1 sub cvicvs ib6
xcolor 1 eq {(,10) ib6} if
             } if %xchart10=2, AB*x
            
             } ifelse %xchart#0

} bind def %END proc_xaxis_xchartl_txt

%***********************************************************
/proc_yaxis_xchartl_txt
{%BEG proc_yaxis_xchartl_txt

xchartl 0 eq {%xchartl=0,#0
TBIS (y) show
xcolor 1 eq {(10) ib6} if
             }%xchartl=0
             {%xchartl#0, 3 cases xchart10: abx, ABx, AB*x

xchart10 0 eq {%xchart10=0, abx
TBIS (b) show xchartl 1 sub cvicvs ib6
xcolor 1 eq {(,10) ib6} if
             } if %xchart10=0, abx

xchart10 1 eq {%xchart10=1, ABx
TBIS (B) show xchartl 1 sub cvicvs ib6
xcolor 1 eq {(,10) ib6} if
             } if %xchart10=1, ABx

xchart10 2 eq {%xchart10=2, AB*x
-200 0 rmoveto
TBIS (B*) show xchartl 1 sub cvicvs ib6
xcolor 1 eq {(,10) ib6} if
             } if %xchart10=2, AB*x
            
             } ifelse %xchart#8

} bind def %END proc_yaxis_xchartl_txt

%***********************************************************
/proc_xaxis_xchartl_coor
{%BEG proc_xaxis_xchartl_coor

xchartl 0 eq {%xchartl=0,#0
TBIS (x) show
xcolor 1 eq {(10) ib6} if
             }%xchartl=0
             {%xchartl#0, 1 case xchart10: abx (x=0,6)
xchart10 0 eq {%xchart10=0, abx

xchartl 1 ge
xchartl 7 le and {%xchartl=1<=7
TBIS (a) show xchartl 1 sub cvicvs ib6
xcolor 1 eq {(,10) ib6} if
                 } if %xchartl=1,7

xchartl 1 eq
xchartl 3 eq or
xchartl 7 eq or {%xchartl=1,3,7
TBS (=) show
TBIS (x) show
xcolor 1 eq {(10) ib6} if
TBS (/) show
TBIS (y) show
xcolor 1 eq {(10) ib6} if
                 } if %xchartl=1,3,7

xchartl 2 eq
xchartl 4 eq or
xchartl 5 eq or {%xchartl=2,4,5
TBS (=\050) show
TBIS (x) show
xcolor 1 eq {(10) ib6} if
TBS (-0,171\051/) show
TBIS (y) show
xcolor 1 eq {(10) ib6} if
                 } if %xchartl#2,4,5

xchartl 6 eq {%xchartl=6
TBS (=\0508,61) show
TBIS (x) show
xcolor 1 eq {(10) ib6} if
TBS (-7,20) show TBIS (y) show
xcolor 1 eq {(10) ib6} if
TBS (-0,269\051/) show
TBIS (y) show
xcolor 1 eq {(10) ib6} if
              } if %xchartl=6

             } if %xchart10=0, abx
 
             } ifelse %xchart=0,#0

} bind def %END proc_xaxis_xchartl_coor

%***********************************************************
/proc_yaxis_xchartl_coor
{%BEG proc_yaxis_xchartl_coor

xchartl 0 eq {%xchartl=0,#0
TBIS (y) show
xcolor 1 eq {(10) ib6} if
             }%xchartl=0
             {%xchartl#0, 1 casesxchart10: abx

xchart10 0 eq {%xchart10=0, abx

xchartl 1 ge
xchartl 7 le and {%xchartl=1,7
TBIS (b) show xchartl 1 sub cvicvs ib6
xcolor 1 eq {(,10) ib6} if
                 } if %xchartl=1,7

xchartl 1 eq
xchartl 2 eq or {%xchartl=1,2
TBS (=-0,40) show
TBIS (z) show
xcolor 1 eq {(10) ib6} if
TBS (/) show
TBIS (y) show
xcolor 1 eq {(10) ib6} if
                 } if %xchartl=1,2

xchartl 3 eq
xchartl 5 eq or {%xchartl=3,5
TBS (=\050) show mP1 cvsshow3x TBIS (x) show
xcolor 1 eq {(10) ib6} if
TBS (+) show bP1 cvsshow3x TBS (\051/) show TBIS (y) show
xcolor 1 eq {(10) ib6} if
                 } if %xchartl=3,5

xchartl 4 eq 
xchartl 7 eq or {%xchartl=4,7
TBS (=\050) show mD1 cvsshow3x TBIS (x) show
xcolor 1 eq {(10) ib6} if
TBS (+) show bD1 cvsshow3x TBS (\051/) show TBIS (y) show
xcolor 1 eq {(10) ib6} if
                 } if %xchartl=4,7

xchartl 6 eq {%xchartl=6
TBS (=\0501,99) show
TBIS (x) show
xcolor 1 eq {(10) ib6} if
TBS (+3,86) show TBIS (y) show
xcolor 1 eq {(10) ib6} if
TBS (-2,40\051/) show
TBIS (y) show
xcolor 1 eq {(10) ib6} if
              } if %xchartl=6

             } if %xchart10=0, abx

             } ifelse %xchart#0

} bind def %END proc_yaxis_xchartl_coor

%*********************************************************
/proc_chromaticity_lines
{%BEG proc_chromaticity_lines for xchart6>=1
%chromaticity lines and with names for xchart6=2

xchartl 0 eq {%xchartl=0 %(x,y)

/xtrans0 600 def
/ytrans0 400 def
xtrans0 ytrans0 translate %for scala and graphic

0 0 moveto  4000 0 rlineto  stroke
0 0 moveto  0 3200 rlineto  stroke

%! 100 S-Einheiten = 2000 Skalen-Einheiten
TBS

   0 -50 moveto  0 100 rlineto  stroke
 800 -50 moveto  0 100 rlineto  stroke
1600 -50 moveto  0 100 rlineto  stroke
2400 -50 moveto  0 100 rlineto  stroke
3200 -50 moveto  0 100 rlineto  stroke
4000 -50 moveto  0 100 rlineto  stroke

-100 -300 moveto (0,0) show
 700 -300 moveto (0,2) show
1500 -300 moveto (0,4) show
2300 -300 moveto (0,6) show
3100 -300 moveto (0,8) show
3900 -300 moveto (1,0) show

%! 100 S-Einheiten = 2000 Skalen-Einheiten

 -50    0 moveto  100 0 rlineto  stroke
 -50  800 moveto  100 0 rlineto  stroke
 -50 1600 moveto  100 0 rlineto  stroke
 -50 2400 moveto  100 0 rlineto  stroke
 -50 3200 moveto  100 0 rlineto  stroke

-450  -80 moveto (0,0) show
-450  720 moveto (0,2) show
-450 1520 moveto (0,4) show
-450 2320 moveto (0,6) show
-450 3120 moveto (0,8) show

TIS
4200  150 moveto (x) show
xcolor 1 eq {TV 0 -40 rmoveto (10) show 0 40 rmoveto TIS} if
-300 2800 moveto (y) show
xcolor 1 eq {TV 0 -40 rmoveto (10) show 0 40 rmoveto TIS} if

TBIS
2600 150 moveto
xcolor 0 eq {(CIE 1931) show} if
xcolor 1 eq {(CIE 1964) show} if

newpath

/fakt 4000 def

 %old
 %1000 02 01 16 01 .00 .0020              ********************
 %ANF  PROZSPEP3.FOR: MULYA= 4000 BEO=02 xy-Farbtafel IXY0:  600  400
 %600    400 translate
 %693     19 moveto

5 1 60 {/i exch def %i=5,60
        AANi i get fakt mul
        BANi i get fakt mul
        i 05 eq {moveto} if
        i 06 ge 
        i 59 le and {lineto} if
        i 60 eq {lineto closepath stroke} if
       } for %i=5,60

/xytshift 320 array def %min 4x65
/xytshift
[
0  000  000 (380) %0
0  000  000 (385) %1
0  000  000 (390) %2
0  000  000 (395) %3
1 -170 -170 (400) %4
0  000  000 (405) %5
0  000  000 (410) %6
0  000  000 (415) %7
0  000  000 (420) %8
0  000  000 (425) %9
0  000  000 (430) %10
0  000  000 (435) %11
0  000  000 (440) %12
0  000  000 (445) %13
1 -300 -050 (450) %14 S
0  000  000 (455) %15
0  000  000 (460) %16
0  000  000 (465) %17
0  000  000 (470) %18
1 -300 -030 (475) %19
0  000  000 (480) %20
0  000  000 (485) %21
1 -330 -050 (490) %22
1 -270  000 (495) %23 M=S
1 -300 -050 (500) %24
1 -300 -050 (505) %25
1 -330 -050 (510) %26 L=S
1 -300  050 (515) %27
1 -100  070 (520) %28
1  100  000 (525) %29
0  000  000 (530) %30
0  000  000 (535) %31
0  000  000 (540) %32 M
0  000  000 (545) %33
1  050  050 (550) %34
0  000  000 (555) %35
0  000  000 (560) %36
0  000  000 (565) %37
0  000  000 (570) %38 L
1  050  050 (575) %39
0  000  000 (580) %40
0  000  000 (585) %41
0  000  000 (590) %42
0  000  000 (595) %43
1  100  -50 (600) %44
0  000  000 (605) %45
0  000  000 (610) %46
0  000  000 (615) %47
0  000  000 (620) %48
1  100  -50 (625) %49
0  000  000 (630) %50
0  000  000 (635) %51
0  000  000 (640) %52
0  000  000 (645) %53
0  000  000 (650) %54
0  000  000 (655) %55
0  000  000 (660) %56
0  000  000 (665) %57
0  000  000 (670) %58
0  000  000 (675) %59
0  000  000 (680) %60
0  000  000 (685) %61
0  000  000 (690) %62
0  000  000 (695) %63
1  100  -50 (700) %64
] def

0 1 64 {/i exch def %i=5,1,60
        /i40 i 4 mul def
        xytshift i40 get 1 eq {%xytshift=1
        0 0 0 0 setcmykcolor
        AANi i get fakt mul
        BANi i get fakt mul
        30 0 360 arc fill %400,425,...,700
        0 0 0 1 setcmykcolor
        AANi i get fakt mul
        BANi i get fakt mul
        30 0 360 arc stroke %400,425,...,700
                              } if %xytshift=1
       } for %i=5,1,60

TBIV
0 1 59 {/i exch def %i=0,65
       /i40 i 4 mul def
       /i41 i40 1 add def
       /i42 i40 2 add def
       /i43 i40 3 add def
       xytshift i40 get 1 eq {%xytshift=1
       AANi i get fakt mul xytshift i41 get add
       BANi i get fakt mul xytshift i42 get add
       moveto xytshift i43 get show
       } if %xytshift=1
       } for %i=0,65

newpath /xytshiftZ 320 array def %min 4x65
/xytshiftZ
[
1  100  -50 (700)    %0 see normal
1  050 -100 (495c,E) %1
1  050 -100 (500c,E) %2
0  050 -100 (505c,E) %3
1  100  -60 (510c,E) %4
0  050 -100 (515c,E) %5
0  050 -100 (520c,E) %6
1  050 -100 (525c,E) %7
0  050 -100 (530c,E) %8
0  050 -100 (535c,E) %9
0  050 -100 (540c,E) %10
0  050 -100 (545c,E) %11
1  050 -100 (550c,E) %12
0  050 -100 (555c,E) %13
0  050 -100 (560c,E) %14 S
1  050 -100 (565c,E) %15
0 -100 -150 (400)    %16 see normal
] def

0 1 16 {/i exch def %i=5,5,60
        /i40 i 4 mul def
        xytshiftZ i40 get 1 eq {%xytshiftZ=1
        0 0 0 0 setcmykcolor
        AANZi i get fakt mul
        BANZi i get fakt mul
        30 0 360 arc fill %400,405,...,700
        0 0 0 1 setcmykcolor
        AANZi i get fakt mul
        BANZi i get fakt mul
        30 0 360 arc stroke %400,405,...,700
                                } if %xytshiftZ=1
       } for %i=0,1,16
       
TBIV
0 1 16 {/i exch def %i=0,16
       /i40 i 4 mul def
       /i41 i40 1 add def
       /i42 i40 2 add def
       /i43 i40 3 add def
       xytshiftZ i40 get 1 eq {%xytshiftZ=1
       AANZi i get fakt mul xytshiftZ i41 get add
       BANZi i get fakt mul xytshiftZ i42 get add moveto
       xytshiftZ i43 get show
                              } if %xytshiftZ=1
       } for %i=0,16

/AANWLf XANWL fakt mul def
/BANWLf YANWL fakt mul def
/AANWCf XANWC fakt mul def
/BANWCf YANWC fakt mul def
 
/i 400 380 sub 5 idiv def %4 T
/AANF AANi i get fakt mul def
/BANF BANi i get fakt mul def
0.5 0 0.5 setrgbcolor
AANWLf BANWLf moveto  AANF BANF lineto stroke
AANWLf 300 sub BANWLf 900 sub moveto TIK (T) show (S) is4 %TS

/i 450 380 sub 5 idiv def %14 S
/AANF AANi i get fakt mul def
/BANF BANi i get fakt mul def
1 0 1 setrgbcolor
AANWLf BANWLf moveto  AANF BANF lineto stroke
%AANF 500 add BANF 1000 sub moveto TIK (S) show (m) is4 %450 S
AANWLf 750 sub BANWLf 1000 sub moveto TIK (S) show (m) is4 %450 S

/i 475 380 sub 5 idiv def %18 B
/AANF AANi i get fakt mul def
/BANF BANi i get fakt mul def
0 0 1 setrgbcolor
AANWLf BANWLf moveto AANF BANF lineto stroke %475 Be        (Lc)
AANF 050 sub BANF 250 add moveto TIK (B) show TV (e) is4

/i 495 380 sub 5 idiv def %23 Rc
/AANF AANi i get fakt mul def
/BANF BANi i get fakt mul def
0 0 0 setrgbcolor
AANWLf BANWLf moveto AANF BANF lineto stroke %495 Rc (M=S)
AANF 120 add BANF 400 sub moveto TIK (M) show
(l) iy4 TK (=) show TIK (S) show (l) iy4

/i 505 380 sub 5 idiv def %26 505c,E
/AANF AANi i get fakt mul def
/BANF BANi i get fakt mul def
0 0 0 setrgbcolor
AANWLf BANWLf moveto AANF BANF lineto stroke %505 V (M=S)
AANF 250 add BANF 300 sub moveto TIK (V') show
0 0 0 setrgbcolor
AANF 050 add BANF 550 sub moveto TIK (V) show
(l) iy4 TK (=) show TIK (S) show (l) iy4

/i 520 380 sub 5 idiv def %28 G
/AANF AANi i get fakt mul def
/BANF BANi i get fakt mul def
0 1 0 setrgbcolor
AANWLf BANWLf moveto AANF BANF lineto stroke %525 G (Y=B)
AANF 150 add BANF 300 sub moveto TIK (G) show TS (e) is4
1 1 0 setrgbcolor
AANF 100 sub BANF 700 sub moveto TIK (Y) show
(l) iy4 TK (=) show 
0 0 1 setrgbcolor TIK (B) show (l) iy4

/i 540 380 sub 5 idiv def %32 M
/AANF AANi i get fakt mul def
/BANF BANi i get fakt mul def
0 0 0 setrgbcolor
AANWLf BANWLf moveto AANF BANF lineto stroke %540 M
AANF 100 sub BANF 100 add moveto TIK (M) show (m) is4

/i 555 380 sub 5 idiv def %35 V
/AANF AANi i get fakt mul def
/BANF BANi i get fakt mul def
0 0 0 setrgbcolor
AANWLf BANWLf moveto AANF BANF lineto stroke %555 V (L=M)
AANF 000 add BANF 000 add moveto TIK (V) show (m) is4

/i 570 380 sub 5 idiv def %38 L
/AANF AANi i get fakt mul def
/BANF BANi i get fakt mul def
0 0 0 setrgbcolor
AANWLf BANWLf moveto AANF BANF lineto stroke %570 L
%AANF 250 sub BANF 200 sub moveto TIK (Y) show
%0 0 0 setrgbcolor
AANF 050 sub BANF 150 add moveto TIK (L) show (m) is4

/i 575 380 sub 5 idiv def %39 L
/AANF AANi i get fakt mul def
/BANF BANi i get fakt mul def
1 1 0 setrgbcolor
AANWLf BANWLf moveto AANF BANF lineto stroke %575 L
AANF 050 sub BANF 300 sub moveto TIK (Y) show TV (e) is4

/i 700 380 sub 5 idiv def %64 R
/AANF AANi i get fakt mul def
/BANF BANi i get fakt mul def
1 0 0 setrgbcolor
AANWLf BANWLf moveto AANF BANF lineto stroke %700
AANF 750 sub BANF 120 sub moveto TIK (R) show (e) is4
%Protanop PL
1 0 0 setrgbcolor
AANF 600 sub BANF 150 add moveto TIK (P) show TS (L) is4 %PL

%Deuteranop DM
0 1 0 setrgbcolor
/i 505 495 sub 5 idiv 1 add def %2 D (505c,E)
/AANF AANZi i get fakt mul def
/BANF BANZi i get fakt mul def
0 1 0 setrgbcolor
AANWLf BANWLf moveto  AANF BANF lineto stroke
AANF 600 sub BANF 000 sub moveto TIK (D) show (M) is4 %DM

newpath
0 0 0 setrgbcolor
xchart5 1 ge {%xchart5=1
              AANWLf BANWLf %achromatic
              40 0 360 arc stroke
              newpath
             } if %xchart5=1
xchart5 2 eq {%xchart5=2
              0 0 0 setrgbcolor
              AANWLf 000 add BANWLf 300 sub moveto %achromatic
              TBS TELi xchartx get show %text illuminant
             } if %xchart5=2

xchart3 0 eq {%Munsell
              AANWCf 550 add BANWCf 250 add moveto TBV (1) show
              AANWCf 350 add BANWCf 100 add moveto TBV (2) show
              AANWCf 200 add BANWCf 050 add moveto TBV (5) show
             } if %Munsell

xtrans0 neg ytrans0 neg translate %for scala and grafic
 %ENDE: 1

       } if %xchartl=0 %(x,y)

%*****************
xchartl 1 eq {%xchartl=1 %(a0,b0)
%STOP9

/xtrans1a 0500 def
/xtrans1  1300 def
/ytrans1  3200 def
xtrans1a ytrans1 translate
 
0 400 moveto  4000  0 rlineto  stroke
0 400 moveto  0 -3600 rlineto  stroke
 
%! 100 S-Einheiten = 2000 Skalen-Einheiten
TBS
 
   0 350 moveto  0 100 rlineto  stroke
 800 350 moveto  0 100 rlineto  stroke
1600 350 moveto  0 100 rlineto  stroke
2400 350 moveto  0 100 rlineto  stroke
3200 350 moveto  0 100 rlineto  stroke
4000 350 moveto  0 100 rlineto  stroke
 
-150  500 moveto (-0,8) show
 650  500 moveto (0,0) show
1450  500 moveto (0,8) show
2250  500 moveto (1,6) show
%3050  500 moveto (2,4) show
%3850  500 moveto (3,2) show
 
%! 100 S-Einheiten = 2000 Skalen-Einheiten
 
 -50     0 moveto  100 0 rlineto  stroke
 -50  -800 moveto  100 0 rlineto  stroke
 -50 -1600 moveto  100 0 rlineto  stroke
 -50 -2400 moveto  100 0 rlineto  stroke
 -50 -3200 moveto  100 0 rlineto  stroke
 
-450  -100 moveto (  0,0) show
-450  -900 moveto (-0,8) show
-450 -1700 moveto (-1,6) show
%-450 -2500 moveto (-2,4) show

posax posay moveto
proc_xaxis_xchartl_coor
posbx posby moveto
90 rotate 
proc_yaxis_xchartl_coor
-90 rotate

xchart6 2 eq {%xchart6=2
              4150 300 moveto
              TBS (Parame\255) show
              4150 100 moveto
              TBS (ter:) show TBIS ( Y) show TV
             } if %xchart6=2
 
xtrans1a neg ytrans1 neg translate
 
 %1000 02 01 16 01-.03****************************************
 %ANF  PROZSPEP.FOR: MULYA= 1000 BEO=02 ab-Farbtafel IXY0: 1500 3200

xtrans1 ytrans1 translate

/fakt 1000 def

5 1 60 {/i exch def %i=5,60
        AANi i get fakt mul
        BANi i get fakt mul
        i 05 eq {moveto} if
        i 06 ge 
        i 59 le and {lineto} if
        i 60 eq {lineto closepath stroke} if
       } for %i=5,60

/xytshift 320 array def %min 4x65
/xytshift
[
0  000  000 (380) %00
0  000  000 (385) %01
0  000  000 (390) %02
0  000  000 (395) %03
0 -375 -250 (400) %04
0  000  000 (405) %05
0  000  000 (410) %06
0  000  000 (415) %07
0  000  000 (420) %08
0 -500 -100 (425) %09

0  000  000 (430) %10
0  000  000 (435) %11
0  000  000 (440) %12
0  000  000 (445) %13
0 -350 -030 (450) %14
0  000  000 (455) %15
0  000  000 (460) %16
0  000  000 (465) %17
0  000  000 (470) %18
0  000  000 (475) %19

1 -300 -100 (480) %20
0  000  000 (485) %21
1 -300 -100 (490) %22
0  000  000 (495) %23
1 -300 -100 (500) %24
0  000  000 (505) %25
0  000  000 (510) %26
0  000  000 (515) %27
0  000  000 (520) %28
1 -200  060 (525) %29

0  000  000 (530) %30
0  000  000 (535) %31
0  000  000 (540) %32
0  000  000 (545) %33
0  000  000 (550) %34
0  000  000 (555) %35
0  000  000 (560) %36
0  000  000 (565) %37
0  000  000 (570) %38
1  000  060 (575) %39

0  000  000 (580) %40
0  000  000 (585) %41
0  000  000 (590) %42
0  000  000 (595) %43
1 -150  060 (600) %44
0  000  000 (605) %45
0  000  000 (610) %46
0  000  000 (615) %47
0  000  000 (620) %48
1 -150  060 (625) %49

0  000  000 (630) %50
0  000  000 (635) %51
0  000  000 (640) %52
0  000  000 (645) %53
0  000  000 (650) %54
0  000  000 (655) %55
0  000  000 (660) %56
0  000  000 (665) %57
0  000  000 (670) %58
0  000  000 (675) %59

0  000  000 (680) %60
0  000  000 (685) %61
0  000  000 (690) %62
0  000  000 (695) %63
1  100 -150 (700) %64
] def

0 1 64 {/i exch def %i=5,1,60
        /i40 i 4 mul def
        xytshift i40 get 1 eq {%xytshift=1
        0 0 0 0 setcmykcolor
        AANi i get fakt mul
        BANi i get fakt mul
        30 0 360 arc fill %400,425,...,700
        0 0 0 1 setcmykcolor
        AANi i get fakt mul
        BANi i get fakt mul
        30 0 360 arc stroke %400,425,...,700
                               } if %xytshift=1
       } for %i=5,1,60

TBIV
0 1 59 {/i exch def %i=0,65
       /i40 i 4 mul def
       /i41 i40 1 add def
       /i42 i40 2 add def
       /i43 i40 3 add def
       xytshift i40 get 1 eq {%xytshift=1
       AANi i get fakt mul xytshift i41 get add
       BANi i get fakt mul xytshift i42 get add
       moveto xytshift i43 get show
       } if %xytshift=1
       } for %i=0,65


newpath /xytshiftZ 320 array def %min 4x65
/xytshiftZ
[
1 -100  060 (700)    %0 normal
1  070  -50 (495c,E) %1
1  070  -50 (500c,E) %2
1  070  -50 (505c,E) %3
1  070  -50 (510c,E) %4
0  050 -100 (515c,E) %5
0  050 -100 (520c,E) %6
1  070  -50 (525c,E) %7
0  050 -100 (530c,E) %8
0  050 -100 (535c,E) %9
0  050 -100 (540c,E) %10
0  050 -100 (545c,E) %11
1  070  -50 (550c,E) %12
0  050 -100 (555c,E) %13
0  050 -100 (560c,E) %14 S
1  070  -50 (565c,E) %15
0 -100 -150 (400)    %16 see normal
] def

0 1 16 {/i exch def %i=0,1,16
        /i40 i 4 mul def
        xytshiftZ i40 get 1 eq {%xytshiftZ=1
        0 0 0 0 setcmykcolor
        AANZi i get fakt mul
        BANZi i get fakt mul
        30 0 360 arc fill %400,425,...,700
        0 0 0 1 setcmykcolor
        AANZi i get fakt mul
        BANZi i get fakt mul
        30 0 360 arc stroke %400,425,...,700
                                } if %xytshiftZ=1
       } for %i=5,1,60
       
TBIV
0 1 16 {/i exch def %i=0,16
       /i40 i 4 mul def
       /i41 i40 1 add def
       /i42 i40 2 add def
       /i43 i40 3 add def
       xytshiftZ i40 get 1 eq {%xytshiftZ=1
       AANZi i get fakt mul xytshiftZ i41 get add
       BANZi i get fakt mul xytshiftZ i42 get add
       moveto xytshiftZ i43 get show
                              } if %xytshiftZ=1
       } for %i=0,16

/AANWLf AANWL fakt mul def
/BANWLf BANWL fakt mul def
/AANWCf AANWC fakt mul def
/BANWCf BANWC fakt mul def

/tabj 200 array def %20x12
/tabj
%00 01  02  03  04  05   06    07   08  09  10   12 
%JN lam la0 color        shix  shiy Na1 in1 Na2  in2 
[01 400 380 0.5 0.0 0.5  1100 -2000 (T) (S) ()   ()
 01 450 380 1.0 0.0 1.0  0500 -2000 (S) (m) ()   ()
 01 475 380 0.0 0.0 1.0 -0100 -2000 (B) (e) ()   ()
 01 495 380 0.0 0.0 0.0 -0700 -0100 (M) (l) (=S) (l)
 01 505 380 0.0 0.0 0.0 -0750  0000 (V) (l) (=S) (l)
 01 520 380 0.0 1.0 0.0 -0500  0050 (G) (e) ()   ()
 00 520 380 0.0 0.0 0.0 -0800 -0050 (Y) (l) (=B) (l)
 01 540 380 0.0 0.0 0.0 -0100  0100 (M) (m) ()   ()
 01 570 380 0.0 0.0 0.0 -0200  0100 (L) (m) ()   ()
 01 575 380 1.0 1.0 0.0 -0100  0250 (Y) (e) ()   ()
 01 700 380 1.0 0.0 0.0 -0450 -0300 (R) (e) ()   ()
 01 700 380 1.0 0.0 0.0 -0900 -0100 (P) (L) ()   ()
 01 505 490 0.0 1.0 0.0 -0600 -0180 (D) (M) ()   ()
] def

0 1 12 {/j exch def %j=0,12
        /j0 j 12 mul def
        /l01 j0 01 add def
        /l02 j0 02 add def
        /co1 j0 03 add def
        /co2 j0 04 add def
        /co3 j0 05 add def
        /po1 j0 06 add def
        /po2 j0 07 add def
        /n11 j0 08 add def
        /n12 j0 09 add def
        /n21 j0 10 add def
        /n22 j0 11 add def
        tabj j0 get 1 eq {%JN=1
                          /i tabj l01 get tabj l02 get sub 5 idiv def
                          /AANF AANi i get fakt mul def
                          /BANF BANi i get fakt mul def
                          j 12 eq {/AANF AANZi i get fakt mul def
                                   /BANF BANZi i get fakt mul def
                                  } if               
                          tabj co1 get tabj co2 get tabj co3 get
                          setrgbcolor
                          AANWLf BANWLf moveto
                          AANF BANF lineto stroke
                          xchart6 2 eq {%xchart6=2 %add text
                          j 2 le {AANWLf tabj po1 get add
                                  BANWLf tabj po2 get add moveto} %relative achromatic
                                 {AANF tabj po1 get add
                                  BANF tabj po2 get add moveto} ifelse
                          TIK tabj n11 get show
                          tabj n12 get (l) eq {(l) iy4}
                                              {tabj n12 get ishow} ifelse
                          TIK tabj n21 get show
                          tabj n22 get (l) eq {(l) iy4}
                                              {tabj n22 get ishow} ifelse
                                       } if %xchart6=2
                          } if %JN=1
        } for %j=0,12

newpath
0 0 0 setrgbcolor
xchart5 1 ge {%xchart5=1
              AANWLf BANWLf %achromatic
              40 0 360 arc stroke
              newpath
             } if %xchart5=1
xchart5 2 eq {%xchart5=2
              0 0 0 setrgbcolor
              AANWLf 000 add BANWLf 300 sub moveto %achromatic
              TBS TELi xchartx get show %text illuminant
             } if %xchart5=2

xchart3 0 eq {%Munsell
              AANWCf 550 add BANWCf 250 add moveto TBV (1) show
              AANWCf 350 add BANWCf 100 add moveto TBV (2) show
              AANWCf 200 add BANWCf 050 add moveto TBV (5) show
             } if %Munsell

xtrans1 neg ytrans1 neg translate

 %ENDE: 2

             } if %xchartl=1 %(a0,b0)

%***********************************************************
xchartl 2 eq {%xchartl=2 (a1,b1)

/xtrans2a 0500 def
/xtrans2  1300 def
/ytrans2  3200 def
xtrans2a ytrans2 translate %for text and grafic
 
0 400 moveto  4000  0 rlineto  stroke
0 400 moveto  0 -3600 rlineto  stroke
 
%! 100 S-Einheiten = 2000 Skalen-Einheiten
TBS
 
   0 350 moveto  0 100 rlineto  stroke
 800 350 moveto  0 100 rlineto  stroke
1600 350 moveto  0 100 rlineto  stroke
2400 350 moveto  0 100 rlineto  stroke
3200 350 moveto  0 100 rlineto  stroke
4000 350 moveto  0 100 rlineto  stroke
 
-150  500 moveto (-0,8) show
 650  500 moveto (0,0) show
1450  500 moveto (0,8) show
2250  500 moveto (1,6) show
%3050  500 moveto (2,4) show
%3850  500 moveto (3,2) show
 
%! 100 S-Einheiten = 2000 Skalen-Einheiten
 
 -50     0 moveto  100 0 rlineto  stroke
 -50  -800 moveto  100 0 rlineto  stroke
 -50 -1600 moveto  100 0 rlineto  stroke
 -50 -2400 moveto  100 0 rlineto  stroke
 -50 -3200 moveto  100 0 rlineto  stroke
 
-450  -100 moveto (  0,0) show
-450  -900 moveto (-0,8) show
-450 -1700 moveto (-1,6) show
%-450 -2500 moveto (-2,4) show

posax posay moveto
proc_xaxis_xchartl_coor
posbx posby moveto
90 rotate
proc_yaxis_xchartl_coor
-90 rotate

xchart6 2 eq {%xchart6=2
              4150 -200 moveto
              TBS (Parame\255) show
              4150 -400 moveto
              TBS (ter:) show TBIS ( Y) show TV
             } if %xchart6=2
 
xtrans2a neg ytrans2 neg translate %for text and grafic
 
 %1000 02 01 16 01-.03****************************************
 %ANF  PROZSPEP.FOR: MULYA= 1000 BEO=02 ab-Farbtafel IXY0: 1500 3200

xtrans2 ytrans2 translate %for text and grafic

/fakt 1000 def

5 1 60 {/i exch def %i=5,60
        AANi i get fakt mul
        BANi i get fakt mul
        i 05 eq {moveto} if
        i 06 ge 
        i 59 le and {lineto} if
        i 60 eq {lineto closepath stroke} if
       } for %i=5,60

/xytshift 320 array def %min 4x65
/xytshift
[
0  000  000 (380) %00
0  000  000 (385) %01
0  000  000 (390) %02
0  000  000 (395) %03
0 -375 -250 (400) %04
0  000  000 (405) %05
0  000  000 (410) %06
0  000  000 (415) %07
0  000  000 (420) %08
0 -500 -100 (425) %09

0  000  000 (430) %10
0  000  000 (435) %11
0  000  000 (440) %12
0  000  000 (445) %13
0 -350 -030 (450) %14
0  000  000 (455) %15
0  000  000 (460) %16
0  000  000 (465) %17
0  000  000 (470) %18
0  000  000 (475) %19

1 -300 -100 (480) %20
0  000  000 (485) %21
1 -300 -100 (490) %22
0  000  000 (495) %23
1 -300 -100 (500) %24
0  000  000 (505) %25
0  000  000 (510) %26
0  000  000 (515) %27
0  000  000 (520) %28
1 -250  060 (525) %29

0  000  000 (530) %30
0  000  000 (535) %31
0  000  000 (540) %32
0  000  000 (545) %33
0  000  000 (550) %34
0  000  000 (555) %35
0  000  000 (560) %36
0  000  000 (565) %37
0  000  000 (570) %38
1  050  060 (575) %39

0  000  000 (580) %40
0  000  000 (585) %41
0  000  000 (590) %42
0  000  000 (595) %43
1 -150  060 (600) %44
0  000  000 (605) %45
0  000  000 (610) %46
0  000  000 (615) %47
0  000  000 (620) %48
1 -150  060 (625) %49

0  000  000 (630) %50
0  000  000 (635) %51
0  000  000 (640) %52
0  000  000 (645) %53
0  000  000 (650) %54
0  000  000 (655) %55
0  000  000 (660) %56
0  000  000 (665) %57
0  000  000 (670) %58
0  000  000 (675) %59

0  000  000 (680) %60
0  000  000 (685) %61
0  000  000 (690) %62
0  000  000 (695) %63
1  100 -150 (700) %64
] def

0 1 64 {/i exch def %i=0,64
        /i40 i 4 mul def
        xytshift i40 get 1 eq {%xytshift=1
        0 0 0 0 setcmykcolor
        AANi i get fakt mul
        BANi i get fakt mul
        30 0 360 arc fill %400,425,...,700
        0 0 0 1 setcmykcolor
        AANi i get fakt mul
        BANi i get fakt mul
        30 0 360 arc stroke %400,425,...,700
                              } if %xytshift=1
       } for %i=0,64

TBIV
0 1 59 {/i exch def %i=0,59
       /i40 i 4 mul def
       /i41 i40 1 add def
       /i42 i40 2 add def
       /i43 i40 3 add def
       xytshift i40 get 1 eq {%xytshift=1
       AANi i get fakt mul xytshift i41 get add
       BANi i get fakt mul xytshift i42 get add
       moveto xytshift i43 get show
                             } if %xytshift=1
       } for %i=0,59

%STOPX
newpath /xytshiftZ 320 array def %min 4x65
/xytshiftZ
[
1 -100  060 (700)    %0 normal
1  070  -50 (495c,E) %1
1  070  -50 (500c,E) %2
0  070  -50 (505c,E) %3
1  070  -50 (510c,E) %4
0  050 -100 (515c,E) %5
0  050 -100 (520c,E) %6
1  070  -50 (525c,E) %7
0  050 -100 (530c,E) %8
0  050 -100 (535c,E) %9
0  050 -100 (540c,E) %10
0  050 -100 (545c,E) %11
1  070  -50 (550c,E) %12
0  050 -100 (555c,E) %13
0  050 -100 (560c,E) %14 S
1  070  -50 (565c,E) %15
0 -100 -150 (400)    %16 see normal
] def

0 1 16 {/i exch def %i=0,16
        /i40 i 4 mul def
        xytshiftZ i40 get 1 eq {%xytshiftZ=1
        0 0 0 0 setcmykcolor
        AANZi i get fakt mul
        BANZi i get fakt mul
        30 0 360 arc fill %400,425,...,700
        0 0 0 1 setcmykcolor
        AANZi i get fakt mul
        BANZi i get fakt mul
        30 0 360 arc stroke %400,425,...,700
                              } if %xytshiftZ=1
       } for %i=0,16
       
TBIV
0 1 16 {/i exch def %i=0,16
       /i40 i 4 mul def
       /i41 i40 1 add def
       /i42 i40 2 add def
       /i43 i40 3 add def
       xytshiftZ i40 get 1 eq {%xytshiftZ=1
       AANZi i get fakt mul xytshiftZ i41 get add
       BANZi i get fakt mul xytshiftZ i42 get add
       moveto xytshiftZ i43 get show
                              } if %xytshiftZ=1
       } for %i=0,16

/AANWLf AANWL fakt mul def
/BANWLf BANWL fakt mul def
/AANWCf AANWC fakt mul def
/BANWCf BANWC fakt mul def

/tabj 240 array def %20x12
/tabj
%00 01  02  03  04  05   06    07   08  09  10   12 
%JN lam la0 color        shix  shiy Na1 in1 Na2  in2 
[01 400 380 0.5 0.0 0.5  0100 -2000 (T) (S) ()   ()
 01 450 380 1.0 0.0 1.0 -0500 -2000 (S) (m) ()   ()
 01 475 380 0.0 0.0 1.0 -1000 -2000 (B) (e) ()   ()
 01 495 380 0.0 0.0 0.0 -0750 -0100 (M) (l) (=S) (l)
 01 505 380 0.0 0.0 0.0 -0750 -0050 (V) (l) (=S) (l)
 01 520 380 0.0 1.0 0.0 -0500  0150 (G) (e) ()   ()
 00 520 380 0.0 0.0 0.0 -0800 -0050 (Y) (l) (=B) (l)
 01 540 380 0.0 0.0 0.0 -0150  0100 (M) (m) ()   ()
 01 570 380 0.0 0.0 0.0 -0200  0100 (L) (m) ()   ()
 01 575 380 1.0 1.0 0.0 -0100  0250 (Y) (e) ()   ()
 01 700 380 1.0 0.0 0.0 -0450 -0300 (R) (e) ()   ()
 01 700 380 1.0 0.0 0.0 -0850 -0100 (P) (L) ()   ()
 01 505 490 0.0 1.0 0.0 -0600 -0130 (D) (M) ()   ()
] def

0 1 12 {/j exch def %j=0,12
        /j0 j 12 mul def
        /l01 j0 01 add def
        /l02 j0 02 add def
        /co1 j0 03 add def
        /co2 j0 04 add def
        /co3 j0 05 add def
        /po1 j0 06 add def
        /po2 j0 07 add def
        /n11 j0 08 add def
        /n12 j0 09 add def
        /n21 j0 10 add def
        /n22 j0 11 add def
        tabj j0 get 1 eq {%JN=1
                          /i tabj l01 get tabj l02 get sub 5 idiv def
                          /AANF AANi i get fakt mul def
                          /BANF BANi i get fakt mul def
                          j 12 eq {/AANF AANZi i get fakt mul def
                                   /BANF BANZi i get fakt mul def
                                  } if               
                          tabj co1 get tabj co2 get tabj co3 get
                          setrgbcolor
                          AANWLf BANWLf moveto
                          AANF BANF lineto stroke
                          xchart6 2 eq {%xchart6=2 %add text
                          j 2 le {AANWLf tabj po1 get add
                                  BANWLf tabj po2 get add moveto} %relative achromatic
                                 {AANF tabj po1 get add
                                  BANF tabj po2 get add moveto} ifelse
                          TIK tabj n11 get show
                          tabj n12 get (l) eq {(l) iy4}
                                              {tabj n12 get ishow} ifelse
                          TIK tabj n21 get show
                          tabj n22 get (l) eq {(l) iy4}
                                              {tabj n22 get ishow} ifelse
                                       } if %xchart6=2
                          } if %JN=1
        } for %j=0,12

newpath
0 0 0 setrgbcolor
xchart5 1 ge {%xchart5=1
              AANWLf BANWLf %achromatic
              40 0 360 arc stroke
              newpath
             } if %xchart5=1
xchart5 2 eq {%xchart5=2
              0 0 0 setrgbcolor
              AANWLf 000 add BANWLf 300 sub moveto %achromatic
              TBS TELi xchartx get show %text illuminant
             } if %xchart5=2

xchart3 0 eq {%Munsell
              AANWCf 550 add BANWCf 250 add moveto TBV (1) show
              AANWCf 350 add BANWCf 100 add moveto TBV (2) show
              AANWCf 200 add BANWCf 050 add moveto TBV (5) show
             } if %Munsell

xtrans2 neg ytrans2 neg translate %for text and grafic

 %ENDE: 2

             } if %xchartl=2

%*****************
xchartl 3 eq {%xchartl=3 %(a2,b2)

/xtrans3a 0500 def
/xtrans3  1300 def
/ytrans3  3200 def
xtrans3a ytrans3 translate %for text and grafic
 
0 400 moveto  4000  0 rlineto  stroke
0 400 moveto  0 -3600 rlineto  stroke
 
%! 100 S-Einheiten = 2000 Skalen-Einheiten
TBS
 
   0 350 moveto  0 100 rlineto  stroke
 800 350 moveto  0 100 rlineto  stroke
1600 350 moveto  0 100 rlineto  stroke
2400 350 moveto  0 100 rlineto  stroke
3200 350 moveto  0 100 rlineto  stroke
4000 350 moveto  0 100 rlineto  stroke
 
-150  500 moveto (-0,8) show
 650  500 moveto (0,0) show
1450  500 moveto (0,8) show
2250  500 moveto (1,6) show
%3050  500 moveto (2,4) show
%3850  500 moveto (3,2) show
 
%! 100 S-Einheiten = 2000 Skalen-Einheiten
 
 -50     0 moveto  100 0 rlineto  stroke
 -50  -800 moveto  100 0 rlineto  stroke
 -50 -1600 moveto  100 0 rlineto  stroke
 -50 -2400 moveto  100 0 rlineto  stroke
 -50 -3200 moveto  100 0 rlineto  stroke
 
-450  -100 moveto (  0,0) show
-450  -900 moveto (-0,8) show
%-450 -1700 moveto (-1,6) show
%-450 -2500 moveto (-2,4) show

posax posay moveto
proc_xaxis_xchartl_coor
posbx posby moveto
90 rotate
proc_yaxis_xchartl_coor
-90 rotate

xchart6 2 eq {%xchart6=2
              4150 300 moveto
              TBS (Parame\255) show
              4150 100 moveto
              TBS (ter:) show TBIS ( Y) show TV
             } if %xchart6=2

xtrans3a neg ytrans3 neg translate %for text and grafic
 
 %1000 02 01 16 01-.03****************************************
 %ANF  PROZSPEP.FOR: MULYA= 1000 BEO=02 ab-Farbtafel IXY0: 1500 3200

xtrans3 ytrans3 translate %for text and grafic

/fakt 1000 def

5 1 60 {/i exch def %i=5,60
        AANi i get fakt mul
        BANi i get fakt mul
        i 05 eq {moveto} if
        i 06 ge 
        i 59 le and {lineto} if
        i 60 eq {lineto closepath stroke} if
       } for %i=5,60

/xytshift 320 array def %min 4x65
/xytshift
[
0  000  000 (380) %00
0  000  000 (385) %01
0  000  000 (390) %02
0  000  000 (395) %03
0 -375 -250 (400) %04
0  000  000 (405) %05
0  000  000 (410) %06
0  000  000 (415) %07
0  000  000 (420) %08
0 -500 -100 (425) %09

0  000  000 (430) %10
0  000  000 (435) %11
0  000  000 (440) %12
0  000  000 (445) %13
0 -350 -030 (450) %14
0  000  000 (455) %15
0  000  000 (460) %16
0  000  000 (465) %17
1  100 -050 (470) %18
1 -300 -100 (475) %19

1 -300 -100 (480) %20
0  000  000 (485) %21
1 -300 -100 (490) %22
0  000  000 (495) %23
1 -300 -100 (500) %24
0  000  000 (505) %25
0  000  000 (510) %26
0  000  000 (515) %27
0  000  000 (520) %28
1 -200  060 (525) %29

0  000  000 (530) %30
0  000  000 (535) %31
0  000  000 (540) %32
0  000  000 (545) %33
0  000  000 (550) %34
0  000  000 (555) %35
0  000  000 (560) %36
0  000  000 (565) %37
0  000  000 (570) %38
1  000  060 (575) %39

0  000  000 (580) %40
0  000  000 (585) %41
0  000  000 (590) %42
0  000  000 (595) %43
1 -150  060 (600) %44
0  000  000 (605) %45
0  000  000 (610) %46
0  000  000 (615) %47
0  000  000 (620) %48
1 -150  060 (625) %49

0  000  000 (630) %50
0  000  000 (635) %51
0  000  000 (640) %52
0  000  000 (645) %53
0  000  000 (650) %54
0  000  000 (655) %55
0  000  000 (660) %56
0  000  000 (665) %57
0  000  000 (670) %58
0  000  000 (675) %59

0  000  000 (680) %60
0  000  000 (685) %61
0  000  000 (690) %62
0  000  000 (695) %63
1  100 -150 (700) %64
] def

0 1 64 {/i exch def %i=5,1,60
        /i40 i 4 mul def
        xytshift i40 get 1 eq {%xytshift=1
        0 0 0 0 setcmykcolor
        AANi i get fakt mul
        BANi i get fakt mul
        30 0 360 arc fill %400,425,...,700
        0 0 0 1 setcmykcolor
        AANi i get fakt mul
        BANi i get fakt mul
        30 0 360 arc stroke %400,425,...,700
                               } if %xytshift=1
       } for %i=5,1,60

TBIV
0 1 59 {/i exch def %i=0,65
       /i40 i 4 mul def
       /i41 i40 1 add def
       /i42 i40 2 add def
       /i43 i40 3 add def
       xytshift i40 get 1 eq {%xytshift=1
       AANi i get fakt mul xytshift i41 get add
       BANi i get fakt mul xytshift i42 get add
       moveto xytshift i43 get show
       } if %xytshift=1
       } for %i=0,65


newpath /xytshiftZ 320 array def %min 4x65
/xytshiftZ
[
1 -100  060 (700)    %0 normal
1  070  -50 (495c,E) %1
1  070  -50 (500c,E) %2
0  070  -50 (505c,E) %3
1  070  -50 (510c,E) %4
0  050 -100 (515c,E) %5
0  050 -100 (520c,E) %6
1  070  -50 (525c,E) %7
0  050 -100 (530c,E) %8
0  050 -100 (535c,E) %9
0  050 -100 (540c,E) %10
0  050 -100 (545c,E) %11
1  070  -50 (550c,E) %12
0  050 -100 (555c,E) %13
0  050 -100 (560c,E) %14 S
1  070  -50 (565c,E) %15
0 -100 -150 (400)    %16 see normal
] def

0 1 16 {/i exch def %i=0,1,16
        /i40 i 4 mul def
        xytshiftZ i40 get 1 eq {%xytshiftZ=1
        0 0 0 0 setcmykcolor
        AANZi i get fakt mul
        BANZi i get fakt mul
        30 0 360 arc fill %400,425,...,700
        0 0 0 1 setcmykcolor
        AANZi i get fakt mul
        BANZi i get fakt mul
        30 0 360 arc stroke %400,425,...,700
                                } if %xytshiftZ=1
       } for %i=5,1,60
       
TBIV
0 1 16 {/i exch def %i=0,16
       /i40 i 4 mul def
       /i41 i40 1 add def
       /i42 i40 2 add def
       /i43 i40 3 add def
       xytshiftZ i40 get 1 eq {%xytshiftZ=1
       AANZi i get fakt mul xytshiftZ i41 get add
       BANZi i get fakt mul xytshiftZ i42 get add
       moveto xytshiftZ i43 get show
                              } if %xytshiftZ=1
       } for %i=0,16

/AANWLf AANWL fakt mul def
/BANWLf BANWL fakt mul def
/AANWCf AANWC fakt mul def
/BANWCf BANWC fakt mul def

/tabj 240 array def %20x12
/tabj
%00 01  02  03  04  05   06    07   08  09  10   12 
%JN lam la0 color        shix  shiy Na1 in1 Na2  in2 
[01 400 380 0.5 0.0 0.5  1700 -1500 (T) (S) ()   ()
 01 450 380 1.0 0.0 1.0  1100 -1500 (S) (m) ()   ()
 01 475 380 0.0 0.0 1.0  0500 -1500 (B) (e) ()   ()
 01 495 380 0.0 0.0 0.0 -0900 -0200 (M) (l) (=S) (l)
 01 505 380 0.0 0.0 0.0 -0750  0050 (V) (l) (=S) (l)
 01 520 380 0.0 1.0 0.0 -0500  0250 (G) (e) ()   ()
 00 520 380 0.0 0.0 0.0 -0800 -0050 (Y) (l) (=B) (l)
 01 540 380 0.0 0.0 0.0 -0150  0100 (M) (m) ()   ()
 01 570 380 0.0 0.0 0.0 -0200  0100 (L) (m) ()   ()
 01 575 380 1.0 1.0 0.0 -0100  0250 (Y) (e) ()   ()
 01 700 380 1.0 0.0 0.0 -0450 -0200 (R) (e) ()   ()
 01 700 380 1.0 0.0 0.0 -0900  0100 (P) (L) ()   ()
 01 505 490 0.0 1.0 0.0 -0600 -0180 (D) (M) ()   ()
] def

0 1 12 {/j exch def %j=0,12
        /j0 j 12 mul def
        /l01 j0 01 add def
        /l02 j0 02 add def
        /co1 j0 03 add def
        /co2 j0 04 add def
        /co3 j0 05 add def
        /po1 j0 06 add def
        /po2 j0 07 add def
        /n11 j0 08 add def
        /n12 j0 09 add def
        /n21 j0 10 add def
        /n22 j0 11 add def
        tabj j0 get 1 eq {%JN=1
                          /i tabj l01 get tabj l02 get sub 5 idiv def
                          /AANF AANi i get fakt mul def
                          /BANF BANi i get fakt mul def
                          j 12 eq {/AANF AANZi i get fakt mul def
                                   /BANF BANZi i get fakt mul def
                                  } if               
                          tabj co1 get tabj co2 get tabj co3 get
                          setrgbcolor
                          AANWLf BANWLf moveto
                          AANF BANF lineto stroke
                          xchart6 2 eq {%xchart6=2 %add text
                          j 2 le {AANWLf tabj po1 get add
                                  BANWLf tabj po2 get add moveto} %relative achromatic
                                 {AANF tabj po1 get add
                                  BANF tabj po2 get add moveto} ifelse
                          TIK tabj n11 get show
                          tabj n12 get (l) eq {(l) iy4}
                                              {tabj n12 get ishow} ifelse
                          TIK tabj n21 get show
                          tabj n22 get (l) eq {(l) iy4}
                                              {tabj n22 get ishow} ifelse
                                       } if %xchart6=2
                          } if %JN=1
        } for %j=0,12

newpath
0 0 0 setrgbcolor
xchart5 1 ge {%xchart5=1
              AANWLf BANWLf %achromatic
              40 0 360 arc stroke
              newpath
             } if %xchart5=1
xchart5 2 eq {%xchart5=2
              0 0 0 setrgbcolor
              AANWLf 000 add BANWLf 300 sub moveto %achromatic
              TBS TELi xchartx get show %text illuminant
             } if %xchart5=2

xchart3 0 eq {%Munsell
              AANWCf 550 add BANWCf 250 add moveto TBV (1) show
              AANWCf 350 add BANWCf 100 add moveto TBV (2) show
              AANWCf 200 add BANWCf 050 add moveto TBV (5) show
             } if %Munsell

xtrans3 neg ytrans3 neg translate %for text and grafic
 %ENDE: 2

             } if %xchartl=3

%***********************************************************
xchartl 4 eq {%xchartl=4 %(a3,b3)

/xtrans4a 0500 def
/xtrans4  1300 def
/ytrans4  3200 def
xtrans4a ytrans4 translate %for text and grafic
 
0 400 moveto  4000  0 rlineto  stroke
0 400 moveto  0 -3600 rlineto  stroke
 
%! 100 S-Einheiten = 2000 Skalen-Einheiten
TBS
 
   0 350 moveto  0 100 rlineto  stroke
 800 350 moveto  0 100 rlineto  stroke
1600 350 moveto  0 100 rlineto  stroke
2400 350 moveto  0 100 rlineto  stroke
3200 350 moveto  0 100 rlineto  stroke
4000 350 moveto  0 100 rlineto  stroke
 
-150  500 moveto (-0,8) show
 650  500 moveto (0,0) show
1450  500 moveto (0,8) show
2250  500 moveto (1,6) show
%3050  500 moveto (2,4) show
%3850  500 moveto (3,2) show
 
%! 100 S-Einheiten = 2000 Skalen-Einheiten
 
 -50     0 moveto  100 0 rlineto  stroke
 -50  -800 moveto  100 0 rlineto  stroke
 -50 -1600 moveto  100 0 rlineto  stroke
 -50 -2400 moveto  100 0 rlineto  stroke
 -50 -3200 moveto  100 0 rlineto  stroke
 
-450  -100 moveto (  0,0) show
-450  -900 moveto (-0,8) show
%-450 -1700 moveto (-1,6) show
%-450 -2500 moveto (-2,4) show

posax posay moveto
proc_xaxis_xchartl_coor
posbx posby moveto
90 rotate
proc_yaxis_xchartl_coor
-90 rotate

xchart6 2 eq {%xchart6=2
              4150 -200 moveto
              TBS (Parame\255) show
              4150 -400 moveto
              TBS (ter:) show TBIS ( Y) show TV
             } if %xchart6=2
 
xtrans4a neg ytrans4 neg translate %for text and grafic
 
 %1000 02 01 16 01-.03****************************************
 %ANF  PROZSPEP.FOR: MULYA= 1000 BEO=02 ab-Farbtafel IXY0: 1500 3200

xtrans4 ytrans4 translate %for text and grafic

/fakt 1000 def

5 1 60 {/i exch def %i=5,60
        AANi i get fakt mul
        BANi i get fakt mul
        i 05 eq {moveto} if
        i 06 ge 
        i 59 le and {lineto} if
        i 60 eq {lineto closepath stroke} if
       } for %i=5,60

/xytshift 320 array def %min 4x65
/xytshift
[
0  000  000 (380) %00
0  000  000 (385) %01
0  000  000 (390) %02
0  000  000 (395) %03
0 -375 -250 (400) %04
0  000  000 (405) %05
0  000  000 (410) %06
0  000  000 (415) %07
0  000  000 (420) %08
0 -500 -100 (425) %09

0  000  000 (430) %10
0  000  000 (435) %11
0  000  000 (440) %12
0  000  000 (445) %13
0 -350 -030 (450) %14
0  000  000 (455) %15
0  000  000 (460) %16
0  000  000 (465) %17
1 -300 -100 (470) %18
1 -300 -100 (475) %19

1 -300 -100 (480) %20
0  000  000 (485) %21
1 -300 -100 (490) %22
0  000  000 (495) %23
1 -300 -100 (500) %24
0  000  000 (505) %25
0  000  000 (510) %26
0  000  000 (515) %27
0  000  000 (520) %28
1 -280  060 (525) %29

0  000  000 (530) %30
0  000  000 (535) %31
0  000  000 (540) %32
0  000  000 (545) %33
0  000  000 (550) %34
0  000  000 (555) %35
0  000  000 (560) %36
0  000  000 (565) %37
0  000  000 (570) %38
1  000  060 (575) %39

0  000  000 (580) %40
0  000  000 (585) %41
0  000  000 (590) %42
0  000  000 (595) %43
1 -150  060 (600) %44
0  000  000 (605) %45
0  000  000 (610) %46
0  000  000 (615) %47
0  000  000 (620) %48
1 -150  060 (625) %49

0  000  000 (630) %50
0  000  000 (635) %51
0  000  000 (640) %52
0  000  000 (645) %53
0  000  000 (650) %54
0  000  000 (655) %55
0  000  000 (660) %56
0  000  000 (665) %57
0  000  000 (670) %58
0  000  000 (675) %59

0  000  000 (680) %60
0  000  000 (685) %61
0  000  000 (690) %62
0  000  000 (695) %63
1  100 -150 (700) %64
] def

0 1 64 {/i exch def %i=0,64
        /i40 i 4 mul def
        xytshift i40 get 1 eq {%xytshift=1
        0 0 0 0 setcmykcolor
        AANi i get fakt mul
        BANi i get fakt mul
        30 0 360 arc fill %400,425,...,700
        0 0 0 1 setcmykcolor
        AANi i get fakt mul
        BANi i get fakt mul
        30 0 360 arc stroke %400,425,...,700
                              } if %xytshift=1
       } for %i=0,64

TBIV
0 1 59 {/i exch def %i=0,59
       /i40 i 4 mul def
       /i41 i40 1 add def
       /i42 i40 2 add def
       /i43 i40 3 add def
       xytshift i40 get 1 eq {%xytshift=1
       AANi i get fakt mul xytshift i41 get add
       BANi i get fakt mul xytshift i42 get add
       moveto xytshift i43 get show
                             } if %xytshift=1
       } for %i=0,59

%STOPX
newpath /xytshiftZ 320 array def %min 4x65
/xytshiftZ
[
1 -100  060 (700)    %0 normal
1  070  -50 (495c,E) %1
1  070  -50 (500c,E) %2
0  070  -50 (505c,E) %3
1  070  -50 (510c,E) %4
0  050 -100 (515c,E) %5
0  050 -100 (520c,E) %6
1  070  -50 (525c,E) %7
0  050 -100 (530c,E) %8
0  050 -100 (535c,E) %9
0  050 -100 (540c,E) %10
0  050 -100 (545c,E) %11
1  070  -50 (550c,E) %12
0  050 -100 (555c,E) %13
0  050 -100 (560c,E) %14 S
1  070  -50 (565c,E) %15
0 -100 -150 (400)    %16 see normal
] def

0 1 16 {/i exch def %i=0,16
        /i40 i 4 mul def
        xytshiftZ i40 get 1 eq {%xytshiftZ=1
        0 0 0 0 setcmykcolor
        AANZi i get fakt mul
        BANZi i get fakt mul
        30 0 360 arc fill %400,425,...,700
        0 0 0 1 setcmykcolor
        AANZi i get fakt mul
        BANZi i get fakt mul
        30 0 360 arc stroke %400,425,...,700
                              } if %xytshiftZ=1
       } for %i=0,16
       
TBIV
0 1 16 {/i exch def %i=0,16
       /i40 i 4 mul def
       /i41 i40 1 add def
       /i42 i40 2 add def
       /i43 i40 3 add def
       xytshiftZ i40 get 1 eq {%xytshiftZ=1
       AANZi i get fakt mul xytshiftZ i41 get add
       BANZi i get fakt mul xytshiftZ i42 get add
       moveto xytshiftZ i43 get show
                              } if %xytshiftZ=1
       } for %i=0,16

/AANWLf AANWL fakt mul def
/BANWLf BANWL fakt mul def
/AANWCf AANWC fakt mul def
/BANWCf BANWC fakt mul def

/tabj 240 array def %20x12
/tabj
%00 01  02  03  04  05   06    07   08  09  10   12 
%JN lam la0 color        shix  shiy Na1 in1 Na2  in2 
[01 400 380 0.5 0.0 0.5  0000 -2100 (T) (S) ()   ()
 01 450 380 1.0 0.0 1.0 -0600 -2100 (S) (m) ()   ()
 01 475 380 0.0 0.0 1.0 -1000 -2100 (B) (e) ()   ()
 01 495 380 0.0 0.0 0.0 -0800 -0100 (M) (l) (=S) (l)
 01 505 380 0.0 0.0 0.0 -0750  0000 (V) (l) (=S) (l)
 01 520 380 0.0 1.0 0.0 -0550  0150 (G) (e) ()   ()
 00 520 380 0.0 0.0 0.0 -0800 -0050 (Y) (l) (=B) (l)
 01 540 380 0.0 0.0 0.0 -0200  0100 (M) (m) ()   ()
 01 570 380 0.0 0.0 0.0 -0200  0100 (L) (m) ()   ()
 01 575 380 1.0 1.0 0.0 -0100  0250 (Y) (e) ()   ()
 01 700 380 1.0 0.0 0.0 -0450 -0300 (R) (e) ()   ()
 01 700 380 1.0 0.0 0.0 -0800 -0100 (P) (L) ()   ()
 01 505 490 0.0 1.0 0.0 -0600 -0200 (D) (M) ()   ()
] def

0 1 12 {/j exch def %j=0,12
        /j0 j 12 mul def
        /l01 j0 01 add def
        /l02 j0 02 add def
        /co1 j0 03 add def
        /co2 j0 04 add def
        /co3 j0 05 add def
        /po1 j0 06 add def
        /po2 j0 07 add def
        /n11 j0 08 add def
        /n12 j0 09 add def
        /n21 j0 10 add def
        /n22 j0 11 add def
        tabj j0 get 1 eq {%JN=1
                          /i tabj l01 get tabj l02 get sub 5 idiv def
                          /AANF AANi i get fakt mul def
                          /BANF BANi i get fakt mul def
                          j 12 eq {/AANF AANZi i get fakt mul def
                                   /BANF BANZi i get fakt mul def
                                  } if               
                          tabj co1 get tabj co2 get tabj co3 get
                          setrgbcolor
                          AANWLf BANWLf moveto
                          AANF BANF lineto stroke
                          xchart6 2 eq {%xchart6=2 %add text
                          j 2 le {AANWLf tabj po1 get add
                                  BANWLf tabj po2 get add moveto} %relative achromatic
                                 {AANF tabj po1 get add
                                  BANF tabj po2 get add moveto} ifelse
                          TIK tabj n11 get show
                          tabj n12 get (l) eq {(l) iy4}
                                              {tabj n12 get ishow} ifelse
                          TIK tabj n21 get show
                          tabj n22 get (l) eq {(l) iy4}
                                              {tabj n22 get ishow} ifelse
                                       } if %xchart6=2
                          } if %JN=1
        } for %j=0,12

newpath
0 0 0 setrgbcolor
xchart5 1 ge {%xchart5=1
              AANWLf BANWLf %achromatic
              40 0 360 arc stroke
              newpath
             } if %xchart5=1
xchart5 2 eq {%xchart5=2
              0 0 0 setrgbcolor
              AANWLf 000 add BANWLf 300 sub moveto %achromatic
              TBS TELi xchartx get show %text illuminant
             } if %xchart5=2

xchart3 0 eq {%Munsell
              AANWCf 550 add BANWCf 250 add moveto TBV (1) show
              AANWCf 350 add BANWCf 100 add moveto TBV (2) show
              AANWCf 200 add BANWCf 050 add moveto TBV (5) show
             } if %Munsell

xtrans4 neg ytrans4 neg translate %for text and grafic

 %ENDE: 2

             } if %xchartl=4

%***********************************************************
xchartl 5 eq {%xchartl=5 %(a4,b4)

/xtrans5a 0500 def
/xtrans5  1300 def
/ytrans5  3200 def
xtrans5a ytrans5 translate %for text and grafic
 
0 400 moveto  4000  0 rlineto  stroke
0 400 moveto  0 -3600 rlineto  stroke
 
%! 100 S-Einheiten = 2000 Skalen-Einheiten
TBS
 
   0 350 moveto  0 100 rlineto  stroke
 800 350 moveto  0 100 rlineto  stroke
1600 350 moveto  0 100 rlineto  stroke
2400 350 moveto  0 100 rlineto  stroke
3200 350 moveto  0 100 rlineto  stroke
4000 350 moveto  0 100 rlineto  stroke
 
-150  500 moveto (-0,8) show
 650  500 moveto (0,0) show
1450  500 moveto (0,8) show
2250  500 moveto (1,6) show
%3050  500 moveto (2,4) show
%3850  500 moveto (3,2) show
 
%! 100 S-Einheiten = 2000 Skalen-Einheiten
 
 -50     0 moveto  100 0 rlineto  stroke
 -50  -800 moveto  100 0 rlineto  stroke
 -50 -1600 moveto  100 0 rlineto  stroke
 -50 -2400 moveto  100 0 rlineto  stroke
 -50 -3200 moveto  100 0 rlineto  stroke
 
-450  -100 moveto (  0,0) show
-450  -900 moveto (-0,8) show
%-450 -1700 moveto (-1,6) show
%-450 -2500 moveto (-2,4) show

posax posay moveto
proc_xaxis_xchartl_coor
posbx posby moveto
90 rotate
proc_yaxis_xchartl_coor
-90 rotate

xchart6 2 eq {%xchart6=2
              4150 -200 moveto
              TBS (Parame\255) show
              4150 -400 moveto
              TBS (ter:) show TBIS ( Y) show TV
             } if %xchart6=2
 
xtrans5a neg ytrans5 neg translate %for text and grafic
 
 %1000 02 01 16 01-.03****************************************
 %ANF  PROZSPEP.FOR: MULYA= 1000 BEO=02 ab-Farbtafel IXY0: 1500 3200

xtrans5 ytrans5 translate %for text and grafic

/fakt 1000 def

5 1 60 {/i exch def %i=5,60
        AANi i get fakt mul
        BANi i get fakt mul
        i 05 eq {moveto} if
        i 06 ge 
        i 59 le and {lineto} if
        i 60 eq {lineto closepath stroke} if
       } for %i=5,60

/xytshift 320 array def %min 4x65
/xytshift
[
0  000  000 (380) %00
0  000  000 (385) %01
0  000  000 (390) %02
0  000  000 (395) %03
0 -375 -250 (400) %04
0  000  000 (405) %05
0  000  000 (410) %06
0  000  000 (415) %07
0  000  000 (420) %08
0 -500 -100 (425) %09

0  000  000 (430) %10
0  000  000 (435) %11
0  000  000 (440) %12
0  000  000 (445) %13
0 -350 -030 (450) %14
0  000  000 (455) %15
0  000  000 (460) %16
0  000  000 (465) %17
1 -300 -100 (470) %18
1  050 -050 (475) %19

1 -300 -100 (480) %20
0  000  000 (485) %21
1 -300 -100 (490) %22
0  000  000 (495) %23
1 -300 -050 (500) %24
0  000  000 (505) %25
0  000  000 (510) %26
0  000  000 (515) %27
0  000  000 (520) %28
1 -300  060 (525) %29

0  000  000 (530) %30
0  000  000 (535) %31
0  000  000 (540) %32
0  000  000 (545) %33
0  000  000 (550) %34
0  000  000 (555) %35
0  000  000 (560) %36
0  000  000 (565) %37
0  000  000 (570) %38
1  050  060 (575) %39

0  000  000 (580) %40
0  000  000 (585) %41
0  000  000 (590) %42
0  000  000 (595) %43
1 -150  060 (600) %44
0  000  000 (605) %45
0  000  000 (610) %46
0  000  000 (615) %47
0  000  000 (620) %48
1 -150  060 (625) %49

0  000  000 (630) %50
0  000  000 (635) %51
0  000  000 (640) %52
0  000  000 (645) %53
0  000  000 (650) %54
0  000  000 (655) %55
0  000  000 (660) %56
0  000  000 (665) %57
0  000  000 (670) %58
0  000  000 (675) %59

0  000  000 (680) %60
0  000  000 (685) %61
0  000  000 (690) %62
0  000  000 (695) %63
1  100 -150 (700) %64
] def

0 1 64 {/i exch def %i=0,64
        /i40 i 4 mul def
        xytshift i40 get 1 eq {%xytshift=1
        0 0 0 0 setcmykcolor
        AANi i get fakt mul
        BANi i get fakt mul
        30 0 360 arc fill %400,425,...,700
        0 0 0 1 setcmykcolor
        AANi i get fakt mul
        BANi i get fakt mul
        30 0 360 arc stroke %400,425,...,700
                              } if %xytshift=1
       } for %i=0,64

TBIV
0 1 59 {/i exch def %i=0,59
       /i40 i 4 mul def
       /i41 i40 1 add def
       /i42 i40 2 add def
       /i43 i40 3 add def
       xytshift i40 get 1 eq {%xytshift=1
       AANi i get fakt mul xytshift i41 get add
       BANi i get fakt mul xytshift i42 get add
       moveto xytshift i43 get show
                             } if %xytshift=1
       } for %i=0,59

%STOPX
newpath /xytshiftZ 320 array def %min 4x65
/xytshiftZ
[
1 -100  060 (700)    %0 normal
1  070  -50 (495c,E) %1
1  070  -50 (500c,E) %2
0  070  -50 (505c,E) %3
1  070  -50 (510c,E) %4
0  050 -100 (515c,E) %5
0  050 -100 (520c,E) %6
1  070  -50 (525c,E) %7
0  050 -100 (530c,E) %8
0  050 -100 (535c,E) %9
0  050 -100 (540c,E) %10
0  050 -100 (545c,E) %11
1  070  -50 (550c,E) %12
0  050 -100 (555c,E) %13
0  050 -100 (560c,E) %14 S
1  070  -50 (565c,E) %15
0 -100 -150 (400)    %16 see normal
] def

0 1 16 {/i exch def %i=0,16
        /i40 i 4 mul def
        xytshiftZ i40 get 1 eq {%xytshiftZ=1
        0 0 0 0 setcmykcolor
        AANZi i get fakt mul
        BANZi i get fakt mul
        30 0 360 arc fill %400,425,...,700
        0 0 0 1 setcmykcolor
        AANZi i get fakt mul
        BANZi i get fakt mul
        30 0 360 arc stroke %400,425,...,700
                              } if %xytshiftZ=1
       } for %i=0,16
       
TBIV
0 1 16 {/i exch def %i=0,16
       /i40 i 4 mul def
       /i41 i40 1 add def
       /i42 i40 2 add def
       /i43 i40 3 add def
       xytshiftZ i40 get 1 eq {%xytshiftZ=1
       AANZi i get fakt mul xytshiftZ i41 get add
       BANZi i get fakt mul xytshiftZ i42 get add
       moveto xytshiftZ i43 get show
                              } if %xytshiftZ=1
       } for %i=0,16

/AANWLf AANWL fakt mul def
/BANWLf BANWL fakt mul def
/AANWCf AANWC fakt mul def
/BANWCf BANWC fakt mul def

/tabj 240 array def %20x12
/tabj
%00 01  02  03  04  05   06    07   08  09  10   12 
%JN lam la0 color        shix  shiy Na1 in1 Na2  in2 
[01 400 380 0.5 0.0 0.5  0100 -1500 (T) (S) ()   ()
 01 450 380 1.0 0.0 1.0 -0650 -1500 (S) (m) ()   ()
 01 475 380 0.0 0.0 1.0 -0800 -1500 (B) (e) ()   ()
 01 495 380 0.0 0.0 0.0 -0900 -0000 (M) (l) (=S) (l)
 01 505 380 0.0 0.0 0.0 -0700  0080 (V) (l) (=S) (l)
 01 520 380 0.0 1.0 0.0 -0500  0300 (G) (e) ()   ()
 00 520 380 0.0 0.0 0.0 -0800 -0050 (Y) (l) (=B) (l)
 01 540 380 0.0 0.0 0.0 -0200  0100 (M) (m) ()   ()
 01 570 380 0.0 0.0 0.0 -0200  0100 (L) (m) ()   ()
 01 575 380 1.0 1.0 0.0 -0100  0250 (Y) (e) ()   ()
 01 700 380 1.0 0.0 0.0 -0450 -0200 (R) (e) ()   ()
 01 700 380 1.0 0.0 0.0 -0800  0050 (P) (L) ()   ()
 01 505 490 0.0 1.0 0.0 -0600 -0180 (D) (M) ()   ()
] def

0 1 12 {/j exch def %j=0,12
        /j0 j 12 mul def
        /l01 j0 01 add def
        /l02 j0 02 add def
        /co1 j0 03 add def
        /co2 j0 04 add def
        /co3 j0 05 add def
        /po1 j0 06 add def
        /po2 j0 07 add def
        /n11 j0 08 add def
        /n12 j0 09 add def
        /n21 j0 10 add def
        /n22 j0 11 add def
        tabj j0 get 1 eq {%JN=1
                          /i tabj l01 get tabj l02 get sub 5 idiv def
                          /AANF AANi i get fakt mul def
                          /BANF BANi i get fakt mul def
                          j 12 eq {/AANF AANZi i get fakt mul def
                                   /BANF BANZi i get fakt mul def
                                  } if               
                          tabj co1 get tabj co2 get tabj co3 get
                          setrgbcolor
                          AANWLf BANWLf moveto
                          AANF BANF lineto stroke
                          xchart6 2 eq {%xchart6=2 %add text
                          j 2 le {AANWLf tabj po1 get add
                                  BANWLf tabj po2 get add moveto} %relative achromatic
                                 {AANF tabj po1 get add
                                  BANF tabj po2 get add moveto} ifelse
                          TIK tabj n11 get show
                          tabj n12 get (l) eq {(l) iy4}
                                              {tabj n12 get ishow} ifelse
                          TIK tabj n21 get show
                          tabj n22 get (l) eq {(l) iy4}
                                              {tabj n22 get ishow} ifelse
                                       } if %xchart6=2
                          } if %JN=1
        } for %j=0,12

newpath
0 0 0 setrgbcolor
xchart5 1 ge {%xchart5=1
              AANWLf BANWLf %achromatic
              40 0 360 arc stroke
              newpath
             } if %xchart5=1
xchart5 2 eq {%xchart5=2
              0 0 0 setrgbcolor
              AANWLf 000 add BANWLf 300 sub moveto %achromatic
              TBS TELi xchartx get show %text illuminant
             } if %xchart5=2

xchart3 0 eq {%Munsell
              AANWCf 550 add BANWCf 250 add moveto TBV (1) show
              AANWCf 350 add BANWCf 100 add moveto TBV (2) show
              AANWCf 200 add BANWCf 050 add moveto TBV (5) show
             } if %Munsell

xtrans5 neg ytrans5 neg translate %for text and grafic
 %ENDE: 2

             } if %xchartl=5

%***********************************************************
xchartl 6 eq {%xchartl=6 %(a5,b5)

/xtrans6a 0500 def
/xtrans6  1300 def
/ytrans6  3200 def
xtrans6a ytrans6 translate %for text and grafic
 
0 400 moveto  4000  0 rlineto  stroke
0 400 moveto  0 -3600 rlineto  stroke
 
%! 100 S-Einheiten = 2000 Skalen-Einheiten
TBS
 
   0 350 moveto  0 100 rlineto  stroke
 800 350 moveto  0 100 rlineto  stroke
1600 350 moveto  0 100 rlineto  stroke
2400 350 moveto  0 100 rlineto  stroke
3200 350 moveto  0 100 rlineto  stroke
4000 350 moveto  0 100 rlineto  stroke
 
-150  500 moveto (-0,8) show
 650  500 moveto (0,0) show
1450  500 moveto (0,8) show
2250  500 moveto (1,6) show
%3050  500 moveto (2,4) show
%3850  500 moveto (3,2) show
 
%! 100 S-Einheiten = 2000 Skalen-Einheiten
 
 -50     0 moveto  100 0 rlineto  stroke
 -50  -800 moveto  100 0 rlineto  stroke
 -50 -1600 moveto  100 0 rlineto  stroke
 -50 -2400 moveto  100 0 rlineto  stroke
 -50 -3200 moveto  100 0 rlineto  stroke
 
-450  -100 moveto (  0,0) show
-450  -900 moveto (-0,8) show
%-450 -1700 moveto (-1,6) show
%-450 -2500 moveto (-2,4) show

posax posay moveto
proc_xaxis_xchartl_coor
posbx posby moveto
90 rotate
proc_yaxis_xchartl_coor
-90 rotate

xchart6 2 eq {%xchart6=2
              4150 -200 moveto
              TBS (Parame\255) show
              4150 -400 moveto
              TBS (ter:) show TBIS ( Y) show TV
             } if %xchart6=2
 
xtrans6a neg ytrans6 neg translate %for text and grafic
 
 %1000 02 01 16 01-.03****************************************
 %ANF  PROZSPEP.FOR: MULYA= 1000 BEO=02 ab-Farbtafel IXY0: 1500 3200

xtrans6 ytrans6 translate %for text and grafic

/fakt 1000 def

5 1 60 {/i exch def %i=5,60
        AANi i get fakt mul
        BANi i get fakt mul
        i 05 eq {moveto} if
        i 06 ge 
        i 59 le and {lineto} if
        i 60 eq {lineto closepath stroke} if
       } for %i=5,60

/xytshift 320 array def %min 4x65
/xytshift
[
0  000  000 (380) %00
0  000  000 (385) %01
0  000  000 (390) %02
0  000  000 (395) %03
0 -375 -250 (400) %04
0  000  000 (405) %05
0  000  000 (410) %06
0  000  000 (415) %07
0  000  000 (420) %08
0 -500 -100 (425) %09

0  000  000 (430) %10
0  000  000 (435) %11
0  000  000 (440) %12
0  000  000 (445) %13
0 -350 -030 (450) %14
0  000  000 (455) %15
0  000  000 (460) %16
0  000  000 (465) %17
1 -300 -100 (470) %18
1  050  100 (475) %19

1 -300 -100 (480) %20
0  000  000 (485) %21
1 -300 -100 (490) %22
0  000  000 (495) %23
1 -300 -100 (500) %24
0  000  000 (505) %25
0  000  000 (510) %26
0  000  000 (515) %27
0  000  000 (520) %28
1 -200  060 (525) %29

0  000  000 (530) %30
0  000  000 (535) %31
0  000  000 (540) %32
0  000  000 (545) %33
0  000  000 (550) %34
0  000  000 (555) %35
0  000  000 (560) %36
0  000  000 (565) %37
0  000  000 (570) %38
1  000  060 (575) %39

0  000  000 (580) %40
0  000  000 (585) %41
0  000  000 (590) %42
0  000  000 (595) %43
1 -150  060 (600) %44
0  000  000 (605) %45
0  000  000 (610) %46
0  000  000 (615) %47
0  000  000 (620) %48
1 -150  060 (625) %49

0  000  000 (630) %50
0  000  000 (635) %51
0  000  000 (640) %52
0  000  000 (645) %53
0  000  000 (650) %54
0  000  000 (655) %55
0  000  000 (660) %56
0  000  000 (665) %57
0  000  000 (670) %58
0  000  000 (675) %59

0  000  000 (680) %60
0  000  000 (685) %61
0  000  000 (690) %62
0  000  000 (695) %63
1  100 -150 (700) %64
] def

0 1 64 {/i exch def %i=0,64
        /i40 i 4 mul def
        xytshift i40 get 1 eq {%xytshift=1
        0 0 0 0 setcmykcolor
        AANi i get fakt mul
        BANi i get fakt mul
        30 0 360 arc fill %400,425,...,700
        0 0 0 1 setcmykcolor
        AANi i get fakt mul
        BANi i get fakt mul
        30 0 360 arc stroke %400,425,...,700
                              } if %xytshift=1
       } for %i=0,64

TBIV
0 1 59 {/i exch def %i=0,59
       /i40 i 4 mul def
       /i41 i40 1 add def
       /i42 i40 2 add def
       /i43 i40 3 add def
       xytshift i40 get 1 eq {%xytshift=1
       AANi i get fakt mul xytshift i41 get add
       BANi i get fakt mul xytshift i42 get add
       moveto xytshift i43 get show
                             } if %xytshift=1
       } for %i=0,59

%STOPX
newpath /xytshiftZ 320 array def %min 4x65
/xytshiftZ
[
1 -100  060 (700)    %0 normal
0  070  -50 (495c,E) %1
1  070  -50 (500c,E) %2
0  070  -50 (505c,E) %3
1  070  -50 (510c,E) %4
0  050 -100 (515c,E) %5
0  050 -100 (520c,E) %6
1  070  -50 (525c,E) %7
0  050 -100 (530c,E) %8
0  050 -100 (535c,E) %9
0  050 -100 (540c,E) %10
0  050 -100 (545c,E) %11
1  070  -50 (550c,E) %12
0  050 -100 (555c,E) %13
0  050 -100 (560c,E) %14 S
1  070  -50 (565c,E) %15
0 -100 -150 (400)    %16 see normal
] def

0 1 16 {/i exch def %i=0,16
        /i40 i 4 mul def
        xytshiftZ i40 get 1 eq {%xytshiftZ=1
        0 0 0 0 setcmykcolor
        AANZi i get fakt mul
        BANZi i get fakt mul
        30 0 360 arc fill %400,425,...,700
        0 0 0 1 setcmykcolor
        AANZi i get fakt mul
        BANZi i get fakt mul
        30 0 360 arc stroke %400,425,...,700
                              } if %xytshiftZ=1
       } for %i=0,16
       
TBIV
0 1 16 {/i exch def %i=0,16
       /i40 i 4 mul def
       /i41 i40 1 add def
       /i42 i40 2 add def
       /i43 i40 3 add def
       xytshiftZ i40 get 1 eq {%xytshiftZ=1
       AANZi i get fakt mul xytshiftZ i41 get add
       BANZi i get fakt mul xytshiftZ i42 get add
       moveto xytshiftZ i43 get show
                              } if %xytshiftZ=1
       } for %i=0,16

/AANWLf AANWL fakt mul def
/BANWLf BANWL fakt mul def
/AANWCf AANWC fakt mul def
/BANWCf BANWC fakt mul def

/tabj 240 array def %20x12
/tabj
%00 01  02  03  04  05   06    07   08  09  10   12 
%JN lam la0 color        shix  shiy Na1 in1 Na2  in2 
[01 400 380 0.5 0.0 0.5  0000 -2000 (T) (S) ()   ()
 01 450 380 1.0 0.0 1.0 -0600 -2000 (S) (m) ()   ()
 01 475 380 0.0 0.0 1.0 -1100 -2000 (B) (e) ()   ()
 01 495 380 0.0 0.0 0.0 -0800 -0100 (M) (l) (=S) (l)
 01 505 380 0.0 0.0 0.0 -0750  0000 (V) (l) (=S) (l)
 01 520 380 0.0 1.0 0.0 -0500  0150 (G) (e) ()   ()
 00 520 380 0.0 0.0 0.0 -0800 -0050 (Y) (l) (=B) (l)
 01 540 380 0.0 0.0 0.0 -0100  0100 (M) (m) ()   ()
 01 570 380 0.0 0.0 0.0 -0200  0100 (L) (m) ()   ()
 01 575 380 1.0 1.0 0.0 -0100  0250 (Y) (e) ()   ()
 01 700 380 1.0 0.0 0.0 -0450 -0300 (R) (e) ()   ()
 01 700 380 1.0 0.0 0.0 -0850 -0100 (P) (L) ()   ()
 01 505 490 0.0 1.0 0.0 -0600 -0220 (D) (M) ()   ()
] def

0 1 12 {/j exch def %j=0,12
        /j0 j 12 mul def
        /l01 j0 01 add def
        /l02 j0 02 add def
        /co1 j0 03 add def
        /co2 j0 04 add def
        /co3 j0 05 add def
        /po1 j0 06 add def
        /po2 j0 07 add def
        /n11 j0 08 add def
        /n12 j0 09 add def
        /n21 j0 10 add def
        /n22 j0 11 add def
        tabj j0 get 1 eq {%JN=1
                          /i tabj l01 get tabj l02 get sub 5 idiv def
                          /AANF AANi i get fakt mul def
                          /BANF BANi i get fakt mul def
                          j 12 eq {/AANF AANZi i get fakt mul def
                                   /BANF BANZi i get fakt mul def
                                  } if               
                          tabj co1 get tabj co2 get tabj co3 get
                          setrgbcolor
                          AANWLf BANWLf moveto
                          AANF BANF lineto stroke
                          xchart6 2 eq {%xchart6=2 %add text
                          j 2 le {AANWLf tabj po1 get add
                                  BANWLf tabj po2 get add moveto} %relative achromatic
                                 {AANF tabj po1 get add
                                  BANF tabj po2 get add moveto} ifelse
                          TIK tabj n11 get show
                          tabj n12 get (l) eq {(l) iy4}
                                              {tabj n12 get ishow} ifelse
                          TIK tabj n21 get show
                          tabj n22 get (l) eq {(l) iy4}
                                              {tabj n22 get ishow} ifelse
                                       } if %xchart6=2
                          } if %JN=1
        } for %j=0,12

newpath
0 0 0 setrgbcolor
xchart5 1 ge {%xchart5=1
              AANWLf BANWLf %achromatic
              40 0 360 arc stroke
              newpath
             } if %xchart5=1
xchart5 2 eq {%xchart5=2
              0 0 0 setrgbcolor
              AANWLf 000 add BANWLf 300 sub moveto %achromatic
              TBS TELi xchartx get show %text illuminant
             } if %xchart5=2

xchart3 0 eq {%Munsell
              AANWCf 550 add BANWCf 250 add moveto TBV (1) show
              AANWCf 350 add BANWCf 100 add moveto TBV (2) show
              AANWCf 200 add BANWCf 050 add moveto TBV (5) show
             } if %Munsell

xtrans6 neg ytrans6 neg translate %for text and grafic
 %ENDE: 2

             } if %xchartl=6

%***********************************************************
xchartl 7 eq {%xchartl=7 %(a6,b6)

/xtrans7a 0500 def
/xtrans7  1300 def
/ytrans7  3200 def
xtrans7a ytrans7 translate %for text and grafic
 
0 400 moveto  4000  0 rlineto  stroke
0 400 moveto  0 -3600 rlineto  stroke
 
%! 100 S-Einheiten = 2000 Skalen-Einheiten
TBS
 
   0 350 moveto  0 100 rlineto  stroke
 800 350 moveto  0 100 rlineto  stroke
1600 350 moveto  0 100 rlineto  stroke
2400 350 moveto  0 100 rlineto  stroke
3200 350 moveto  0 100 rlineto  stroke
4000 350 moveto  0 100 rlineto  stroke
 
-150  500 moveto (-0,8) show
 650  500 moveto (0,0) show
1450  500 moveto (0,8) show
2250  500 moveto (1,6) show
%3050  500 moveto (2,4) show
%3850  500 moveto (3,2) show
 
%! 100 S-Einheiten = 2000 Skalen-Einheiten
 
 -50     0 moveto  100 0 rlineto  stroke
 -50  -800 moveto  100 0 rlineto  stroke
 -50 -1600 moveto  100 0 rlineto  stroke
 -50 -2400 moveto  100 0 rlineto  stroke
 -50 -3200 moveto  100 0 rlineto  stroke
 
-450  -100 moveto (  0,0) show
-450  -900 moveto (-0,8) show
%-450 -1700 moveto (-1,6) show
%-450 -2500 moveto (-2,4) show

posax posay moveto
proc_xaxis_xchartl_coor
posbx posby moveto
90 rotate
proc_yaxis_xchartl_coor
-90 rotate

xchart6 2 eq {%xchart6=2
              4150 300 moveto
              TBS (Parame\255) show
              4150 100 moveto
              TBS (ter:) show TBIS ( Y) show TV
             } if %xchart6=2
 
xtrans7a neg ytrans7 neg translate %for text and grafic
 
 %1000 02 01 16 01-.03****************************************
 %ANF  PROZSPEP.FOR: MULYA= 1000 BEO=02 ab-Farbtafel IXY0: 1500 3200

xtrans7 ytrans7 translate %for text and grafic

/fakt 1000 def

5 1 60 {/i exch def %i=5,60
        AANi i get fakt mul
        BANi i get fakt mul
        i 05 eq {moveto} if
        i 06 ge 
        i 59 le and {lineto} if
        i 60 eq {lineto closepath stroke} if
       } for %i=5,60

/xytshift 320 array def %min 4x65
/xytshift
[
0  000  000 (380) %00
0  000  000 (385) %01
0  000  000 (390) %02
0  000  000 (395) %03
0 -375 -250 (400) %04
0  000  000 (405) %05
0  000  000 (410) %06
0  000  000 (415) %07
0  000  000 (420) %08
0 -500 -100 (425) %09

0  000  000 (430) %10
0  000  000 (435) %11
0  000  000 (440) %12
0  000  000 (445) %13
0 -350 -030 (450) %14
0  000  000 (455) %15
0  000  000 (460) %16
0  000  000 (465) %17
1 -300 -100 (470) %18
1  050  050 (475) %19

1 -300 -100 (480) %20
0  000  000 (485) %21
1 -300 -100 (490) %22
0  000  000 (495) %23
1 -300 -100 (500) %24
0  000  000 (505) %25
0  000  000 (510) %26
0  000  000 (515) %27
0  000  000 (520) %28
1 -200  060 (525) %29

0  000  000 (530) %30
0  000  000 (535) %31
0  000  000 (540) %32
0  000  000 (545) %33
0  000  000 (550) %34
0  000  000 (555) %35
0  000  000 (560) %36
0  000  000 (565) %37
0  000  000 (570) %38
1  000  060 (575) %39

0  000  000 (580) %40
0  000  000 (585) %41
0  000  000 (590) %42
0  000  000 (595) %43
1 -150  060 (600) %44
0  000  000 (605) %45
0  000  000 (610) %46
0  000  000 (615) %47
0  000  000 (620) %48
1 -150  060 (625) %49

0  000  000 (630) %50
0  000  000 (635) %51
0  000  000 (640) %52
0  000  000 (645) %53
0  000  000 (650) %54
0  000  000 (655) %55
0  000  000 (660) %56
0  000  000 (665) %57
0  000  000 (670) %58
0  000  000 (675) %59

0  000  000 (680) %60
0  000  000 (685) %61
0  000  000 (690) %62
0  000  000 (695) %63
1  100 -150 (700) %64
] def

0 1 64 {/i exch def %i=0,64
        /i40 i 4 mul def
        xytshift i40 get 1 eq {%xytshift=1
        0 0 0 0 setcmykcolor
        AANi i get fakt mul
        BANi i get fakt mul
        30 0 360 arc fill %400,425,...,700
        0 0 0 1 setcmykcolor
        AANi i get fakt mul
        BANi i get fakt mul
        30 0 360 arc stroke %400,425,...,700
                              } if %xytshift=1
       } for %i=0,64

newpath
TBIV
0 1 59 {/i exch def %i=0,59
       /i40 i 4 mul def
       /i41 i40 1 add def
       /i42 i40 2 add def
       /i43 i40 3 add def
       xytshift i40 get 1 eq {%xytshift=1
       AANi i get fakt mul xytshift i41 get add
       BANi i get fakt mul xytshift i42 get add
       moveto xytshift i43 get show
                             } if %xytshift=1
       } for %i=0,59
newpath
newpath /xytshiftZ 320 array def %min 4x65
/xytshiftZ
[
1 -100  060 (700)    %0 normal
1  070  -50 (495c,E) %1
1  070  -50 (500c,E) %2
0  070  -50 (505c,E) %3
1  070  -50 (510c,E) %4
0  050 -100 (515c,E) %5
0  050 -100 (520c,E) %6
1  070  -50 (525c,E) %7
0  050 -100 (530c,E) %8
0  050 -100 (535c,E) %9
0  050 -100 (540c,E) %10
0  050 -100 (545c,E) %11
1  070  -50 (550c,E) %12
0  050 -100 (555c,E) %13
0  050 -100 (560c,E) %14 S
1  070  -50 (565c,E) %15
0 -100 -150 (400)    %16 see normal
] def

0 1 16 {/i exch def %i=0,16
        /i40 i 4 mul def
        xytshiftZ i40 get 1 eq {%xytshiftZ=1
        0 0 0 0 setcmykcolor
        AANZi i get fakt mul
        BANZi i get fakt mul
        30 0 360 arc fill %400,425,...,700
        0 0 0 1 setcmykcolor
        AANZi i get fakt mul
        BANZi i get fakt mul
        30 0 360 arc stroke %400,425,...,700
                              } if %xytshiftZ=1
       } for %i=0,16

newpath       
TBIV
0 1 16 {/i exch def %i=0,16
       /i40 i 4 mul def
       /i41 i40 1 add def
       /i42 i40 2 add def
       /i43 i40 3 add def
       xytshiftZ i40 get 1 eq {%xytshiftZ=1
       AANZi i get fakt mul xytshiftZ i41 get add
       BANZi i get fakt mul xytshiftZ i42 get add
       moveto xytshiftZ i43 get show
                              } if %xytshiftZ=1
       } for %i=0,16

newpath
/AANWLf AANWL fakt mul def
/BANWLf BANWL fakt mul def
/AANWCf AANWC fakt mul def
/BANWCf BANWC fakt mul def

/tabj 240 array def %20x12
/tabj
%00 01  02  03  04  05   06    07   08  09  10   12 
%JN lam la0 color        shix  shiy Na1 in1 Na2  in2 
[01 400 380 0.5 0.0 0.5  1800 -2000 (T) (S) ()   ()
 01 450 380 1.0 0.0 1.0  1100 -2000 (S) (m) ()   ()
 01 475 380 0.0 0.0 1.0 -0100 -2000 (B) (e) ()   ()
 01 495 380 0.0 0.0 0.0 -0700 -0150 (M) (l) (=S) (l)
 01 505 380 0.0 0.0 0.0 -0750  0000 (V) (l) (=S) (l)
 01 520 380 0.0 1.0 0.0 -0500  0150 (G) (e) ()   ()
 00 520 380 0.0 0.0 0.0 -0800 -0050 (Y) (l) (=B) (l)
 01 540 380 0.0 0.0 0.0 -0100  0100 (M) (m) ()   ()
 01 570 380 0.0 0.0 0.0 -0200  0100 (L) (m) ()   ()
 01 575 380 1.0 1.0 0.0 -0100  0250 (Y) (e) ()   ()
 01 700 380 1.0 0.0 0.0 -0450 -0300 (R) (e) ()   ()
 01 700 380 1.0 0.0 0.0 -0900 -0100 (P) (L) ()   ()
 01 505 490 0.0 1.0 0.0 -0600 -0220 (D) (M) ()   ()
] def

0 1 12 {/j exch def %j=0,12
        /j0 j 12 mul def
        /l01 j0 01 add def
        /l02 j0 02 add def
        /co1 j0 03 add def
        /co2 j0 04 add def
        /co3 j0 05 add def
        /po1 j0 06 add def
        /po2 j0 07 add def
        /n11 j0 08 add def
        /n12 j0 09 add def
        /n21 j0 10 add def
        /n22 j0 11 add def
        tabj j0 get 1 eq {%JN=1
                          /i tabj l01 get tabj l02 get sub 5 idiv def
                          /AANF AANi i get fakt mul def
                          /BANF BANi i get fakt mul def
                          j 12 eq {/AANF AANZi i get fakt mul def
                                   /BANF BANZi i get fakt mul def
                                  } if               
                          tabj co1 get tabj co2 get tabj co3 get
                          setrgbcolor
                          AANWLf BANWLf moveto
                          AANF BANF lineto stroke
                          xchart6 2 eq {%xchart6=2 %add text
                          j 2 le {AANWLf tabj po1 get add
                                  BANWLf tabj po2 get add moveto} %relative achromatic
                                 {AANF tabj po1 get add
                                  BANF tabj po2 get add moveto} ifelse
                          TIK tabj n11 get show
                          tabj n12 get (l) eq {(l) iy4}
                                              {tabj n12 get ishow} ifelse
                          TIK tabj n21 get show
                          tabj n22 get (l) eq {(l) iy4}
                                              {tabj n22 get ishow} ifelse
                                       } if %xchart6=2
                          } if %JN=1
        } for %j=0,12

newpath
0 0 0 setrgbcolor
xchart5 1 ge {%xchart5=1
              AANWLf BANWLf %achromatic
              40 0 360 arc stroke
              newpath
             } if %xchart5=1
xchart5 2 eq {%xchart5=2
              0 0 0 setrgbcolor
              AANWLf 000 add BANWLf 300 sub moveto %achromatic
              TBS TELi xchartx get show %text illuminant
             } if %xchart5=2

xchart3 0 eq {%Munsell
              AANWCf 550 add BANWCf 250 add moveto TBV (1) show
              AANWCf 350 add BANWCf 100 add moveto TBV (2) show
              AANWCf 200 add BANWCf 050 add moveto TBV (5) show
             } if %Munsell

xtrans7 neg ytrans7 neg translate %for text and grafic

 %ENDE: 2

             } if %xchartl=7

} bind def %END proc_chromaticity_lines

/proc_diagram_xchartl_txt
{%BEG proc_diagram_xchartl_txt

xchartl 0 eq {%xchartl=0,#0
(Normfarbtafel) showde
(chromaticity) showea
TBS ( \050) show TBIS (x) show
xcolor 1 eq {(10) ib6} if
TBS (, ) show TBIS (y) show
xcolor 1 eq {(10) ib6} if
TBS (\051) show
             }%xchartl=0
             {%xchartl#0, 3 cases xchart10: abx, ABx, AB*x

xchart10 0 eq {%%xchart10=0, abx
(Farbarttafel) showde
(chromaticity) showea
TBS ( \050) show TBIS (a) show xchartl 1 sub cvicvs ib6
xcolor 1 eq {(,10) ib6} if
TBS (, ) show TBIS (b) show xchartl 1 sub cvicvs ib6
xcolor 1 eq {(,10) ib6} if
TBS (\051) show
             } if %%xchart10=0, abx

xchart10 1 eq {%%xchart10=1, ABx
(Buntwert) showde
(chromatic value) showea
TBS ( \050) show TBIS (A) show xchartl 1 sub cvicvs ib6
xcolor 1 eq {(,10) ib6} if
TBS (, ) show TBIS (B) show xchartl 1 sub cvicvs ib6
xcolor 1 eq {(,10) ib6} if
TBS (\051) show
             } if %%xchart10=1, abx

xchart10 2 eq {%xchart10=2, AB*x
(Buntheit) showde
(chroma) showea
TBS ( \050) show TBIS (A*) show xchartl 1 sub cvicvs ib6
xcolor 1 eq {(,10) ib6} if
TBS (, ) show TBIS (B*) show xchartl 1 sub cvicvs ib6
xcolor 1 eq {(,10) ib6} if
TBS (\051) show
             } if %%xchart10=2, AB*x
            
             } ifelse %xchart#0

} bind def %END proc_diagram_xchartl_txt

/proc_tab1N
{%BEG proc_tab1N

/idyT 250 def
/iyT 1800 def
-3400 iyT moveto
TBIS (X) show (w) ib6 TBS (=) show XK cvsshow2x (, ) show
TBIS (Y) show (w) ib6 TBS (=) show YK cvsshow2x (, ) show
TBIS (Z) show (w) ib6 TBS (=) show ZK cvsshow2x

-3400 iyT idyT 1 mul sub moveto
TBIS (x) show (w) ib6 TBS (=) show XANK cvsshow4x ( ) show
TBIS (y) show (w) ib6 TBS (=) show YANK cvsshow4x

-3400 iyT idyT 2 mul sub moveto
TBIS (A) show xchartl 1 sub cvicvs ib6
TBS (=\050) show
TBIS (a) show xchartl 1 sub cvicvs ib6
TBS (-[) show
TBIS (a) show xchartl 1 sub cvicvs ib6 (,n) ib6
TBS (+) show
TBIS (a) show xchartl 1 sub cvicvs ib6 (,Y) ib6
TBS (+) show
TBIS (a) show xchartl 1 sub cvicvs ib6 (,A) ib6
TBS (]\051 ) show
TBIS (Y) show

-3400 iyT idyT 3 mul sub moveto
TBIS (B) show xchartl 1 sub cvicvs ib6
TBS (=\050) show
TBIS (b) show xchartl 1 sub cvicvs ib6
TBS (-[) show
TBIS (b) show xchartl 1 sub cvicvs ib6 (,n) ib6
TBS (+) show
TBIS (b) show xchartl 1 sub cvicvs ib6 (,Y) ib6
TBS (+) show
TBIS (b) show xchartl 1 sub cvicvs ib6 (,A) ib6
TBS (]\051 ) show
TBIS (Y) show

%4 mul to 7 mul in main program

-3400 iyT idyT 8 mul sub moveto
TBIS (n) show
TBS ( = ) show
TELi xchartx get show

-3400 iyT idyT 9 mul sub moveto
TBIS (a) show xchartl 1 sub cvicvs ib6 (,Y) ib6
TBS (=) show
TBIS (a) show (2Y) ib6 TBS (\050) show
TBIS (Y) show TBS (/) show TBIS (Y) show (18) ib6
TBS (-1\051) show

-3400 iyT idyT 10 mul sub moveto
TBIS (b) show xchartl 1 sub cvicvs ib6 (,Y) ib6
TBS (=) show
TBIS (b) show (2Y) ib6 TBS (\050) show
TBIS (Y) show TBS (/) show TBIS (Y) show (18) ib6
TBS (-1\051) show

-3400 iyT idyT 11 mul sub moveto
TBIS (a) show (2Y) ib6
TBS (=) show xxt cvsshow3x TBS (, ) show
TBIS (b) show (2Y) ib6
TBS (=) show yyt cvsshow3x

-3400 iyT idyT 12 mul sub moveto
TBIS (a) show xchartl 1 sub cvicvs ib6 (,A) ib6
TBS (=) show xat cvsshow3x TBS (, ) show
TBIS (b) show xchartl 1 sub cvicvs ib6 (,A) ib6
TBS (=) show yat cvsshow3x

} bind def %END proc_tab1N

%********************************************************
/proc_tab2N
{%BEG proc_tab2N

/idyT 250 def
/iyT 1800 def
-3400 iyT moveto
TBIS (X) show (w) ib6 TBS (=) show XK cvsshow2x (, ) show
TBIS (Y) show (w) ib6 TBS (=) show YK cvsshow2x (, ) show
TBIS (Z) show (w) ib6 TBS (=) show ZK cvsshow2x

-3400 iyT idyT 1 mul sub moveto
TBIS (x) show (w) ib6 TBS (=) show XANK cvsshow4x ( ) show
TBIS (y) show (w) ib6 TBS (=) show YANK cvsshow4x

-3400 iyT idyT 2 mul sub moveto
TBIS (A) show xchart10 2 eq {(*) show} if xchartl 1 sub cvicvs ib6
TBS (=\050) show
TBIS (a) show xchartl 1 sub cvicvs ib6
TBS (-[) show
TBIS (a) show xchartl 1 sub cvicvs ib6 (,n) ib6
TBS (+) show
TBIS (a) show xchartl 1 sub cvicvs ib6 (,Y) ib6
TBS (+) show
TBIS (a) show xchartl 1 sub cvicvs ib6 (,A) ib6
TBS (]\051) show
TBIS (Y) show (18) ib6 TBS (\050) show
TBIS (Y/Y) show (18) ib6 TBS (\051) show (1/3) eshow

-3400 iyT idyT 3 mul sub moveto
TBIS (B) show xchart10 2 eq {(*) show} if xchartl 1 sub cvicvs ib6
TBS (=\050) show
TBIS (b) show xchartl 1 sub cvicvs ib6
TBS (-[) show
TBIS (b) show xchartl 1 sub cvicvs ib6 (,n) ib6
TBS (+) show
TBIS (b) show xchartl 1 sub cvicvs ib6 (,Y) ib6
TBS (+) show
TBIS (b) show xchartl 1 sub cvicvs ib6 (,A) ib6
TBS (]\051) show
TBIS (Y) show (18) ib6 TBS (\050) show
TBIS (Y/Y) show (18) ib6 TBS (\051) show (1/3) eshow

%4 mul to 7 mul in main program

-3400 iyT idyT 8 mul sub moveto
TBIS (n) show
TBS ( = ) show
TELi xchartx get show

-3400 iyT idyT 9 mul sub moveto
TBIS (a) show xchartl 1 sub cvicvs ib6 (,Y) ib6
TBS (=) show
TBIS (a) show (2Y) ib6 TBS (\050) show
TBIS (Y) show TBS (/) show TBIS (Y) show (18) ib6
TBS (-1\051) show

-3400 iyT idyT 10 mul sub moveto
TBIS (b) show xchartl 1 sub cvicvs ib6 (,Y) ib6
TBS (=) show
TBIS (b) show (2Y) ib6 TBS (\050) show
TBIS (Y) show TBS (/) show TBIS (Y) show (18) ib6
TBS (-1\051) show

-3400 iyT idyT 11 mul sub moveto
TBIS (a) show (2Y) ib6
TBS (=) show xxt cvsshow3x TBS (, ) show
TBIS (b) show (2Y) ib6
TBS (=) show yyt cvsshow3x

-3400 iyT idyT 12 mul sub moveto
TBIS (a) show xchartl 1 sub cvicvs ib6 (,A) ib6
TBS (=) show xat cvsshow3x TBS (, ) show
TBIS (b) show xchartl 1 sub cvicvs ib6 (,A) ib6
TBS (=) show yat cvsshow3x

} bind def %END proc_tab2N

%**********************************************************
/tab_Ocolors 64 array def %8*8
/tab_Ocolors %BEG tab_Ocolors
[%i rgb         Col Ind
 %0 01  02  03  04    05    06  07
 00 0.0 1.0 1.0 -0100 -0250 (C) (O)
 06 0.0 1.0 0.0  0100 -0050 (G) (O)
 09 0.8 1.0 0.0 -0100  0100 (Y) (x)
 13 1.0 1.0 0.0 -0100  0100 (Y) (O)

 20 1.0 0.0 0.0 -0100  0100 (R) (O)
 26 1.0 0.0 1.0 -0350 -0100 (M) (O)
 29 0.2 0.0 1.0 -0100 -0250 (V) (n)
 33 0.0 0.0 1.0 -0100 -0250 (B) (O)
] def %END tab_Ocolors

%**********************************************************
/tab_Scolors 80 array def %10*8
/tab_Scolors %BEG tab_Ocolors
[%i rgb         Col Ind
 %0 01  02  03  04    05    06  07
 19 0.0 1.0 1.0 -0300 -0250 (C) (O) %(495-400)/5=19
 24 0.0 1.0 0.0 -0400 -0050 (G) (O) %(520-400)/5=24
 29 0.8 1.0 0.0 -0100  0100 (Y) (x) %(545-400)/5=29
 34 1.0 1.0 0.0 -0100  0100 (Y) (O) %(570-400)/5=34

 60 1.0 0.0 0.0 -0100  0100 (R) (O) %(700-400)/5=60
 65 1.0 0.0 1.0 -0350 -0100 (M) (O) %520c=65?
 70 0.2 0.0 1.0 -0100 -0250 (V) (n) %545c=70?
 14 0.0 0.0 1.0 -0400 -0250 (B) (O) %(470-400)/5=14
 40 1.0 0.0 0.0  0100 -0000 (R) (n) %(600-400)/5=40
 08 1.0 0.0 1.0 -0200 -0250 (S) (O) %(440-400)/5=8
] def %END tab_Ocolors

%**********************************************************
/proc_tab_Ocolors 
{%BEG proc_tab_Ocolors
%tab_Ocolors 64 array def %8*8 defined before

0 1 7 {/i exch def %i=0,7
       /i0 i 8 mul def
       /i1 i0 1 add def
       /i2 i0 2 add def
       /i3 i0 3 add def
       /i4 i0 4 add def
       /i5 i0 5 add def
       /i6 i0 6 add def
       /i7 i0 7 add def
       
       /k tab_Ocolors i0 get def
       tab_Ocolors i1 get
       tab_Ocolors i2 get
       tab_Ocolors i3 get setrgbcolor
       AnYi k get BnYi k get 50 0 360 arc fill
       0 0 0 setrgbcolor
       AnYi k get BnYi k get 50 0 360 arc stroke
       newpath
       AnYi k get tab_Ocolors i4 get add
       BnYi k get tab_Ocolors i5 get add moveto
       
       xchart7 1 eq {%xchart7=1 Name
       TBIS tab_Ocolors i6 get show 
        tab_Ocolors i7 get ib6 TBS
                    } if %xchart7=1 Name

       xchart7 2 eq {%xchart7=2 YOi
       TBIS YOi k get cvishow
                    } if %xchart7=2 Yoi
       newpath
      } for %i=0,7
} bind def %END proc_tab_Ocolors

%********************************************************
/proc_tab_Scolors 
{%BEG proc_tab_Scolors
%tab_Scolors 64 array def %8*8 defined before

0 1 9 {/i exch def %i=0,7
       /i0 i 8 mul def
       /i1 i0 1 add def
       /i2 i0 2 add def
       /i3 i0 3 add def
       /i4 i0 4 add def
       /i5 i0 5 add def
       /i6 i0 6 add def
       /i7 i0 7 add def
       
       /k tab_Scolors i0 get def
       tab_Scolors i1 get
       tab_Scolors i2 get
       tab_Scolors i3 get setrgbcolor
       AnYi k get BnYi k get 50 0 360 arc fill
       0 0 0 setrgbcolor
       AnYi k get BnYi k get 50 0 360 arc stroke
       newpath

       xchartl 0 eq {1 0 0 setrgbcolor} if %only for (x,y)
       AnYi k get tab_Scolors i4 get add
       BnYi k get tab_Scolors i5 get add moveto
       
       xchart7 3 eq {%xchart7=3 Wavelength
       TBIV tab_Scolors i0 get 5 mul 400 add cvishow
       } if %xchart7=3 Wavelength
       
       xchart7 4 eq {%xchart7=4 Name
       TBIV tab_Scolors i6 get show 
        tab_Scolors i7 get ib6 TBS
                    } if %xchart7=4 Name

       xchart7 5 eq {%xchart7=5 YSi
       TBIV YSi k get cvishow
                    } if %xchart7=5 YSi
       0 setgray
       newpath
      } for %i=0,9
} bind def %END proc_tab_Scolors

%********************************************************
%%EndProlog
gsave

%lanindL2.EPS START  20000505
/lanind 0 def
/lantex [(G) (E) (S) (F) (I) (J) (M)] def
/showde {0 lanind eq {show} {pop} ifelse} bind def
/showen {1 lanind eq {show} {pop} ifelse} bind def
/showes {2 lanind eq {show} {pop} ifelse} bind def
/showfr {3 lanind eq {show} {pop} ifelse} bind def
/showit {4 lanind eq {show} {pop} ifelse} bind def
/showjp {5 lanind eq {show} {pop} ifelse} bind def
/showea {1 lanind le {show} {pop} ifelse} bind def
 
/lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def
                    /lanindd laninddf def}
               {/lanind1 1 def /lanind2 1 def} ifelse
/colormf where {pop /colorm1 colormf def /colorm2 colormf def
                    /colormd colormdf def}
               {/colorm1 0 def} ifelse
/deintpf where {pop /deintp1 deintpf def /deintp2 deintpf def
                    /deintpd deintpdf def}
               {/deintp1 0 def} ifelse
/xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def
                    /xcolord xcolordf def}
               {/xcolor1 0 def} ifelse
/xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def
                    /xchartd xchartdf def
                    /xchartm xchart2f xchart1f sub 1 add def}
               {/xchart1 0 def /xchartm 1 def} ifelse
/xchart3f where {pop /xchart3 xchart3f def}
                {/xchart3 1 def} ifelse
/xchart4f where {pop /xchart4 xchart4f def}
                {/xchart4 0 def} ifelse
/xchart5f where {pop /xchart5 xchart5f def} %new
                {/xchart5 2 def} ifelse
/pchartf where {pop /pchart1 pchartf def /pchart2 pchartf def
                    /pchartd pchartdf def}
               {/pchart1 3 def} ifelse
/colsepf where {pop /colsep1 colsepf def /colsep2 colsepf def
                    /colsepd colsepdf def}
               {/colsep1 0 def} ifelse
/pmetamf where {pop /pmetam1 pmetamf def /pmetam2 pmetamf def
                    /pmetamd pmetamdf def}
               {/pmetam1 0 def} ifelse

%either defaul values for xchart=0 or values for xchart=1
/lanind lanind1 def %
/colorm colorm1 def %
/deintp deintp1 def %
/xcolor xcolor1 def %
/xchart xchart1 def %
/pchart pchart1 def %
/colsep colsep1 def %
/pmetam pmetam1 def %

colorm 0 eq deintp 0 eq and {/Txx (d) def} if %colorm=0, deintp=0
colorm 0 eq deintp 1 eq and {/Txx (e) def} if %colorm=0, deintp=1
colorm 1 eq deintp 0 eq and {/Txx (dd) def} if %colorm=1, deintp=0
colorm 1 eq deintp 1 eq and {/Txx (de) def} if %colorm=1, deintp=1
xchart 0 eq {/Txx (-) def} if %always independent of intended output

gsave
%LANINDL2 END

%STOP1

5 /Times-ISOL1 FS
/cvishow {cvi 6 string cvs show} def
%75 85 moveto
%lanind cvishow (-) show
%colorm cvishow
%deintp cvishow
%xcolor cvishow
%xchart cvishow
%pchart cvishow
%colsep cvishow (-L) show pmetam cvishow

gsave
%XCHA01.PS END

5 /Times-ISOL1 FS
%175 85 moveto (DE391-7A) show
%xchart 0 eq {(R) show}
%            {deintp colorm 2 mul add cvishow} ifelse

72 90 translate

0.01 MM dup scale
30 setlinewidth

%xchart3 0 def %with Munsell colours
%xchart3 1 def %with Ostwald colours
%xchart3 2 def %with Spectral colours
%xchart3 3 def %without any colour
/xchart3 1 def %diagram 0:Munsell, 1:Ostwald, 2:Spectral, 3: without any colour

%xchart5 0 def %without marc illuminant and text
%xchart5 1 def %with marc illuminant
%xchart5 2 def %with marc illuminant and text
/xchart5 2 def %0:-, 1:illuminant, 2:illuminant and text

%xchart6 0 def %without chromaticity_lines
%xchart6 1 def %with chromaticity_lines
%xchart6 2 def %with chromaticity_lines and names
/xchart6 3 def %0:-, 1:chromaticity_lines 2:chromaticity_lines & names

%xchart7 0 def %Ostwald colours without Name or Y
%xchart7 1 def %Ostwald colours with Name
%xchart7 2 def %Ostwald colours with CIE Y
%xchart7 3 def %Spectral colours with wavelength
%xchart7 4 def %Spectral colours with Name
%xchart7 5 def %Spectral colours with CIE Y
/xchart7 2 def %0:-, 1:O Name, 2:O CIEY, 3:S lamda, 4: S Name. 5: S CIEY  

%xchartl with          0    1    2    3    4    5    6    7
%xchart8 0 def %0:Pxx (P60, P55, P50, P45, P40, P35, P30, P25) colours
%xchart8 1 def %1:Dxx (D65, D50, P40, A00, E00, C00, P00, Q00) colours
/xchart8 0 def %0:Pxx, 1:Dxx colours

%xchart9 0 def %for Y10-7R.EPS -> Table XYZ, not used here
%xchart9 1 def %for Y10-7R.EPS -> Table CAB, not used here
%xchart9 2 def %for Y10-7R.EPS -> Table (a,b), not used here
/xchart9 0 def %Table 0:(XYZ), 1:(CAB), 2(ab)

%xchart10 0 def %for Y10M00ZEX6.PS -> chromaticity coordinates (ai,bi)
%xchart10 1 def %for Y10M00ZEX6.PS -> chromatic values (Ai,Bi)
%xchart10 2 def %for Y10M00ZEX6.PS -> chroma (A*i,B*i)
/xchart10 1 def %diagram 0:(ai,bi), 1:(Ai,Bi), 2:(A*i,B*i)

/posax 2700 def /posay  0550 def
/posbx -350 def /posby -3150 def

/FL 0.00001 def
/Y18 18 def %grey background
%/n0e 1.000 def %1.0000 for (ai,bi, not used) and (Ai,Bi); 0.3333 for (A*i,B*i)
/n1e 1.0000 def %allways
%/n1e 0.3333 def %very special (a', b')

xchart10 1 le {/n0e 1.0000 def}
              {/n0e 0.3333 def} ifelse
gsave

/xchartx xchart def
6 1 6 {/xchartx exch def %xchartx=0,7 %8 illuminants
gsave

20 setlinewidth
%0 0 11550 17100 0.0 0.0 0.0 0.0 colrecfi %area white grey

%0 0 11550 17100 0.0 0.0 0.0 1.0 colrecst %Rahmen Schwarz

%allways
proc_XYZ_colours
proc_DEF_colours

%icomp=0: normal colours, icomp=1: complementary colours
/icomp 1 def

xchart3 0 eq {%BEG proc_Munsell_colours
proc_Munsell_colours
             } if %END proc_Munsell_colours

xchart3 1 eq {%BEG proc_Ostwald_colours
proc_Ostwald_colours
             } if %END proc_Ostwald_colours
             
xchart3 2 eq {%BEG proc_Spectral_colours
proc_Spectral_colours
             } if %END proc_Spectral_colours

/xchartl 05 def
00 1 07 {/xchartl exch def %xchartl=0,7
gsave

%  xchartl   0 eq {  100 13000 translate} if
%  xchartl   1 eq { 6100 13000 translate} if
%  xchartl   2 eq {  100 08750 translate} if
%  xchartl   3 eq { 6100 08750 translate} if

%  xchartl   4 eq {  100  4500 translate} if
%  xchartl   5 eq { 6100  4500 translate} if
%  xchartl   6 eq {  100  0250 translate} if
%  xchartl   7 eq { 6100  0250 translate} if

150 /Times-ISOL1 FS
0 setgray
300 -150 moveto
xchartl 7 le {(DE391-) show}
             {(DE391-) show} ifelse
xchartl 0 ge xchartl   7 le and {xchartl 1 add cvishow} if
xchartl 8 ge xchartl  15 le and {xchartl 7 sub cvishow} if
(A) show %A
(_) show xchart 1 add cvishow

/xwidth 5400 def
/ywidth 4000 def

0.0 0.0 0.0 0.3 setcmykcolor

0 0  moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto
closepath fill

0 setlinewidth
0 0 moveto xwidth 0 rlineto 0 ywidth rlineto
           xwidth neg 0 rlineto closepath clip

20 setlinewidth
0 0 xwidth ywidth 0.0 0.0 0.0 1.0 colrecst %frame black

/xtexti 96 array def
/ytexti 96 array def

%BEG INC Y11_XCHART10_0/1/2.PS
%********************************************************************
%BEG 'CL10'Y11_XCHART1A_1.PS FROM 'CL66'Y10-7R_66.EPS

xchart10 1 eq {%xchart10=1 long loop 1700 lines!

%/xxt -0.021 def /yyt -0.024 def
%/xat  0.031 def /yat  0.029 def
/xxt  0.000 def /yyt  0.000 def
/xat  0.000 def /yat  0.000 def

/proc_Yexp {%BEG proc_Yexp
xchart10 0 eq {%chromaticity
/Yexp 1 def
              } if %chromaticity

xchart10 1 eq {%chromatic value
               xchart3 0 eq {%Munsell colours
                             /Yexp YMi ikV40 get def
                            } if %Munsell colours
               xchart3 1 eq {%Ostwald colours
                             /Yexp YOi i     get def
                            } if %Ostwald colours
               xchart3 2 eq {%Spectral colours
               %STOP50
                             /Yexp YSi i     get def
                            } if %Spectral colours
              } if %chromatic value

xchart10 2 eq {%chroma
               xchart3 0 eq {%Munsell colours
                             /Yexp Y18 YMi ikV40 get Y18 div n0e exp mul def
                            } if %Munsell colours
               xchart3 1 eq {%Ostwald colours
                             /Yexp Y18 YOi i     get Y18 div n0e exp mul def
                            } if %Ostwald colours
               xchart3 2 eq {%Spectral colours
                             /Yexp Y18 YSi i     get Y18 div n0e exp mul def
                            } if %Spectral colours
              } if %chroma

} bind def %END proc_Yexp

0 0 0 1 setcmykcolor
/xchart12 xchartl       12 mul def

xchart3 0 eq {%xchart3=0 %Munsell_colours
/xtexti [
%T00 T10  T20   T30   T40  T41   T50  T51   T60  T61  T70  T71
%0   1    2     3     4    5     6    7     8    9    10   11
1800 1800 1800  2800  2800 4000  2800 4000  2800 4000 2800 4000 %0
0100 0100 0100  0100  0100 1300  0100 1300  0100 1300 0100 1300 %1
0100 0100 0100  0100  0100 1300  0100 1300  0100 1300 0100 1300 %2
0100 0100 0100  0100  0100 1300  0100 1300  0100 1300 0100 1300 %3
0100 0100 0100  0100  0100 1300  0100 1300  0100 1300 0100 1300 %4
0100 0100 0100  0100  0100 1300  0100 1300  0100 1300 0100 1300 %5
0100 0100 0100  0100  0100 1300  0100 1300  0100 1300 0100 1300 %6
0100 0100 0100  0100  0100 1300  0100 1300  0100 1300 0100 1300 %7
] def

/ytexti [
3800 3580 3360  3140  2920 2920  2700 2700  2480 2480 2260 2260 %0
0500 0280 0060  1600  1380 1380  1160 1160  0940 0940 0720 0720 %1
0500 0280 0060  1600  1380 1380  1160 1160  0940 0940 0720 0720 %2
0500 0280 0060  1600  1380 1380  1160 1160  0940 0940 0720 0720 %3
0500 0280 0060  1600  1380 1380  1160 1160  0940 0940 0720 0720 %4
0500 0280 0060  1600  1380 1380  1160 1160  0940 0940 0720 0720 %5
0500 0280 0060  1600  1380 1380  1160 1160  0940 0940 0720 0720 %6
0500 0280 0060  1600  1380 1380  1160 1160  0940 0940 0720 0720 %7
] def

} if %xchart3=0 %Munsell_colours

xchart3 1 eq {%xchart3=1 %Ostwald_colours
/xtexti [
%T00 T10  T20   T30   T40  T41   T50  T51   T60  T61  T70  T71
%0   1    2     3     4    5     6    7     8    9    10   11
1800 1800 1800  2800  2800 4000  2800 4000  2800 4000 2800 4000 %0
0100 0100 0100  0100  0100 1300  0100 1300  0100 1300 0100 1300 %1
0100 0100 0100  0100  0100 1300  0100 1300  0100 1300 0100 1300 %2
0100 0100 0100  0100  0100 1300  0100 1300  0100 1300 0100 1300 %3
0100 0100 0100  0100  0100 1300  0100 1300  0100 1300 0100 1300 %4
0100 0100 0100  0100  0100 1300  0100 1300  0100 1300 0100 1300 %5
0100 0100 0100  0100  0100 1300  0100 1300  0100 1300 0100 1300 %6
0100 0100 0100  0100  0100 1300  0100 1300  0100 1300 0100 1300 %7
] def

/ytexti [
3800 3580 3360  3140  2920 2920  2700 2700  2480 2480 2260 2260 %0
0500 0280 0060  1600  1380 1380  1160 1160  0940 0940 0720 0720 %1
0500 0280 0060  1600  1380 1380  1160 1160  0940 0940 0720 0720 %2
0500 0280 0060  1600  1380 1380  1160 1160  0940 0940 0720 0720 %3
0500 0280 0060  1600  1380 1380  1160 1160  0940 0940 0720 0720 %4
0500 0280 0060  1600  1380 1380  1160 1160  0940 0940 0720 0720 %5
0500 0280 0060  1600  1380 1380  1160 1160  0940 0940 0720 0720 %6
0500 0280 0060  1600  1380 1380  1160 1160  0940 0940 0720 0720 %7
] def

} if %xchart3=1 %Ostwald_colours

xchart3 2 eq {%xchart3=2 %Spectral_colours
/xtexti [
%T00 T10  T20   T30   T40  T41   T50  T51   T60  T61  T70  T71
%0   1    2     3     4    5     6    7     8    9    10   11
1800 1800 1800  2800  2800 4000  2800 4000  2800 4000 2800 4000 %0
0100 0100 0100  0100  0100 1300  0100 1300  0100 1300 0100 1300 %1
0100 0100 0100  0100  0100 1300  0100 1300  0100 1300 0100 1300 %2
0100 0100 0100  0100  0100 1300  0100 1300  0100 1300 0100 1300 %3
0100 0100 0100  0100  0100 1300  0100 1300  0100 1300 0100 1300 %4
0100 0100 0100  0100  0100 1300  0100 1300  0100 1300 0100 1300 %5
0100 0100 0100  0100  0100 1300  0100 1300  0100 1300 0100 1300 %6
0100 0100 0100  0100  0100 1300  0100 1300  0100 1300 0100 1300 %7
] def

/ytexti [
3800 3580 3360  3140  2920 2920  2700 2700  2480 2480 2260 2260 %0
0500 0280 0060  1600  1380 1380  1160 1160  0940 0940 0720 0720 %1
0500 0280 0060  1600  1380 1380  1160 1160  0940 0940 0720 0720 %2
0500 0280 0060  1600  1380 1380  1160 1160  0940 0940 0720 0720 %3
0500 0280 0060  1600  1380 1380  1160 1160  0940 0940 0720 0720 %4
0500 0280 0060  1600  1380 1380  1160 1160  0940 0940 0720 0720 %5
0500 0280 0060  1600  1380 1380  1160 1160  0940 0940 0720 0720 %6
0500 0280 0060  1600  1380 1380  1160 1160  0940 0940 0720 0720 %7
] def

%STOP13
} if %xchart3=2 %Spectral_colours

xchart3 1 eq 
xchartl 0 eq and {%xchart3=1 only for Ostwald colours and (x,y)

xtexti xchart12 3 add get ytexti xchart12 3 add get moveto
TBS
(Name und Spektralbereich) showde                               %0DE391-7 00581
(Name and spectral range) showen                                %1DE391-7 00581
(Nombre y gama espectral) showes                                %2DE391-7 00581
(Nom et la gamma spectrale) showfr                              %3DE391-7 00581
(Nome e la gamma spettrale) showit                              %4DE391-7 00581
(Name and spectral range) showjp                                %5DE391-7 00581

xtexti xchart12 4 add get ytexti xchart12 4 add get moveto
TBIS FARBEO  0 get show
TBV  0 -40 rmoveto FARBEO  1 get show 0 40 rmoveto
TBIS FARBEO  2 get show

xtexti xchart12 5 add get ytexti xchart12 5 add get moveto
TBIS FARBEO  3 get show
TBV  0 -40 rmoveto FARBEO  4 get show 0 40 rmoveto
TBIS FARBEO  5 get show

xtexti xchart12 6 add get ytexti xchart12 6 add get moveto
TBIS FARBEO  6 get show
TBV  0 -40 rmoveto FARBEO  7 get show 0 40 rmoveto
TBIS FARBEO  8 get show

xtexti xchart12 7 add get ytexti xchart12 7 add get moveto
TBIS FARBEO  9 get show
TBV  0 -40 rmoveto FARBEO  10 get show 0 40 rmoveto
TBIS FARBEO  11 get show

xtexti xchart12 8 add get ytexti xchart12 8 add get moveto
TBIS FARBEO  12 get show
TBV  0 -40 rmoveto FARBEO  13 get show 0 40 rmoveto
TBIS FARBEO  14 get show

xtexti xchart12 9 add get ytexti xchart12 9 add get moveto
TBIS FARBEO  15 get show
TBV  0 -40 rmoveto FARBEO  16 get show 0 40 rmoveto
TBIS FARBEO  17 get show
                  } if %xchart3=1 only for Ostwald colours
                  
TBS
0 0 0 1 setcmykcolor
xchart3 0 eq {%xchart3=0 %Munsell_colours

xtexti xchart12 0 add get ytexti xchart12 0 add get moveto
TBIS (Munsell) show TBS
(-System) showde                                                %0DE391-7 02581
( System) showea                                                %1DE391-7 02581

TBIS (, Y) show (w) ib6
xcolor 1 eq {(,10) ib6} if
TBS K 0 eq {(=100, ) show}{(=88,6, ) show} ifelse
TELi xchartx get show

xtexti xchart12 1 add get ytexti xchart12 1 add get moveto
(C=2, V=1, 2, 5, 8 & 9, ) show                                  %0DE391-7 03581

TELi xchartx get show

} if %xchart3=0 %Munsell_colours

xchart3 1 eq {%xchart3=1 %Optimal Colours

xtexti xchart12 0 add get ytexti xchart12 0 add get moveto
TBIS (Ostwald) showde TBS ( Farben ) showde                  %0DE391-7 02581
TBIS (Ostwald) showen TBS ( colours ) showen                 %1DE391-7 02581
TBS (Colores) showes TBIS ( Ostwald ) showes                 %2DE391-7 02581
TBS (Couleurs) showfr TBIS ( Ostwald ) showfr                %3DE391-7 02581
TBS (Colori) showit TBIS ( Ostwald ) showit                  %4DE391-7 02581
TBIS (Ostwald) showjp TBS ( colours ) showjp                 %5DE391-7 02581
TBIS (O) show 
TBS icomp 1 eq {0 -60 rmoveto (c) show 0 60 rmoveto} if
TBIS (, Y) show 0 -60 rmoveto (W) show 0 60 rmoveto
TBS K 0 eq {(=100) show}{(=88,6) show} ifelse

} if %xchart3=1 %Optimal_colours

xchart3 2 eq {%xchart3=2 %Spectral Colours

xtexti xchart12 0 add get ytexti xchart12 0 add get moveto
TBS (Spektral) showde TBS (\255Farben ) showde               %0DE391-7 02581
TBS (Spectral) showen TBS ( colours ) showen                 %1DE391-7 02581
TBS (Colores) showes TBS ( spectral ) showes                 %2DE391-7 02581
TBS (Couleurs) showfr TBS ( spectrals ) showfr               %3DE391-7 02581
TBS (Colori) showit TBS ( spectral ) showit                  %4DE391-7 02581
TBS (Spectral) showjp TBS ( colours ) showjp                 %5DE391-7 02581
TBIS (S) show
TBS icomp 1 eq {0 -60 rmoveto (c) show 0 60 rmoveto} if
TBIS (, Y) show 0 -60 rmoveto (W) show 0 60 rmoveto
TBS K 0 eq {(=100) show}{(=88,6) show} ifelse

} if %xchart3=2 %Spectral colours

xchart3 1 ge {%xchart3>=1
xtexti xchart12 1 add get ytexti xchart12 1 add get moveto
(max (m) Buntwert, ) showde                                     %0DE391-7 03581
(max (m) chromatic value, ) showen                              %1DE391-7 03581
(chromatic m\341x (m),  ) showes                                %2DE391-7 03581
(max (m) chromatic valeur,  ) showfr                            %3DE391-7 03581
(max (m) chromatic value,  ) showit                             %4DE391-7 03581
(max (m) chromatic value,  ) showjp                             %5DE391-7 03581

TELi xchartx get show

} if %xchart3>=1 %Optimal and spectral colours

%BEG For All Colours last line
xtexti xchart12 2 add get ytexti xchart12 2 add get moveto

proc_diagram_xchartl_txt

%END For All Colours last line

%***********************************************************
/imM 199 def %maximum Munsell Colours
/imO 039 def %maximum Ostwald Colours

%*****************************************
0 setgray

xchartl 0 eq {%xchartl=0 %(x,y)

%only for xchartl=0
proc_chromaticity
proc_chromaticity_lines

/fakt 4000 def

/xtrans0 600 def
/ytrans0 400 def
xtrans0 ytrans0 translate %for scala and graphic

xchart3 0 eq {%xchart3=0 %BEG Munsell_colours C=2, V=1,2,5,8,9
0 1 4 {/kV exch def %kV=0,4 for Value 1,2,5,8,9
       /kV40 kV 40 mul def
0 1 39 {/i exch def %i=0,39
        AnYi i
        XANMi i kV40 add get fakt mul put         %x
        BnYi i
        YANMi i kV40 add get fakt mul put         %y
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 38 le and {lineto} if
        i 39 eq {lineto closepath stroke} if
       } for %i=0,39
} for %kV=0,4

xchart5 1 ge {%xchart5>=1 %XANW,YANW
newpath
XANWL fakt mul YANWL fakt mul 40 0 360 arc stroke
xchart5 2 eq {%xchart5=2 %+TELi
              XANWL fakt mul 200 sub 150 add
              YANWL fakt mul 500 sub moveto
              TBS TELi xchartx get show
             } if %xchart5=2  %+TELi
xchart5 3 eq {%xchart5=3 %+V=1..9
              1250 550 add   1316 250 add moveto (1) show
              1250 350 add   1316 100 add moveto (2) show
              1250 200 add   1316 050 add moveto (5) show
             } if %xchart5=3  %+V=1..9
             } if %xchart5>=1 %XANW,YANW
} if %xchart3=0  %END Munsell_colours C=2, V=1,2,5,8,9

xchart3 1 eq {%xchart3=1 %BEG Ostwald_Colours
0 0 0 setrgbcolor
0 1 39 {/i exch def %i=0,39
        AnYi i
        XANOi i get fakt mul put            %x
        BnYi i
        YANOi i get fakt mul put            %y
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 38 le and {lineto} if
        i 39 eq {lineto stroke} if
       } for %i=0,39
proc_tab_Ocolors
         } if %xchart3=1 %END Ostwald_Colours
         
xchart3 2 eq {%xchart3=2 %BEG Spectral_Colours
%/fakt 4000 def
0 0 0 setrgbcolor
0 1 77 {/i exch def %i=0,77
        AnYi i
        XANSi i get fakt mul put            %x
        BnYi i
        YANSi i get fakt mul put            %y
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 76 le and {lineto} if
        i 77 eq {lineto stroke} if
       } for %i=0,77
proc_tab_Scolors
         } if %xchart3=2 %END Spectral_Colours

xtrans0 neg ytrans0 neg translate %for scala and graphi

} if %xchartl=0

%************************
%Special coordinate system for (Ax,Bx) diagrams***************
%*****************
xchartl 1 ge {%xchartl>=1

/xtrans1 3500 def
/ytrans1 2000 def
xtrans1 ytrans1 translate %for scala and graphic

%axis and scales
0 0 0 1 setcmyk_olvcolor
-2250 0 moveto 3950  0 rlineto stroke
0 -1880  moveto 0 3600  rlineto stroke
1700 100 sub 50 moveto 100 -50 rlineto
                      -100 -50 rlineto closepath fill
0 50 sub 1800 100 sub moveto 50  100 rlineto
                             50 -100 rlineto closepath fill

/xt10x 5 array def
/yt10x 5 array def

/xt10x [(-40) ( ) ( ) ( ) (  40)] def
/yt10x [(-40) ( ) ( ) ( ) (40)] def

/fakt 40 def %default
xchart3 0 eq {/xt10x [(-10) ( ) ( ) ( ) (  10)] def
              /yt10x [(-10) ( ) ( ) ( ) (10)  ] def} if %xchart3=0 %Munsell

0 0 0 1 setcmyk_olvcolor
0 1 4 {/i exch def %i=0,4 x-axis
        -1600   i 800   mul add  -75 moveto 0 150 rlineto stroke
        -1800   i 800   mul add -250 moveto
        TBS xt10x i get show
        i 4 eq {%i=4
                -1600 i 800 mul add 0 moveto
                -100 150 rmoveto
                TBIM (A) show xchart10 2 eq {(*) show} if
                              TBS xchartl 1 sub cvicvs ib6
               } if %i=4
       } for %i=0,4

0 1 4 {/i exch def %i=0,4 y-axis
       -75 -1600 i 800 mul    add moveto 150 0 rlineto stroke
       100 -1600 i 800 mul    add 100 sub moveto
       TBS yt10x i get show
       i 4 eq {%i=4
               -100 -1600 i 800 mul add moveto
               -250 150 rmoveto
                TBIM (B) show xchart10 2 eq {(*) show} if
                              TBS xchartl 1 sub cvicvs ib6
             } if %i=4
       } for %i=0,4

xtrans1 neg ytrans1 neg translate %for scala and graphic

} if %xchartl>=1

%**********************************************************
xchartl 1 eq {%xchartl=1 %(A0,B0) (a=x/y, b=-0.4*z/y)

/fakt 40 def %default
xchart3 0 eq {/fakt 160 def} if %xchart3=0 %Munsell_Colours

/a2 1.00 def
/b2 -0.4 def

/xtrans1 3500 def
/ytrans1 2000 def
xtrans1 ytrans1 translate %for scala and graphic

proc_tab1N

-3400 iyT idyT 4 mul sub moveto
TBIS (a) show xchartl 1 sub cvicvs ib6
TBS ( = ) show
TBIS (a) show (20) ib6 
TBS ( [) show
TBIS (x/y) show
TBS (]) show

-3400 iyT idyT 5 mul sub moveto
TBIS (b) show xchartl 1 sub cvicvs ib6
TBS ( = ) show
TBIS (b) show (20) ib6 
TBS ( [) show
TBIS (z/y) show
TBS (]) show

-3400 iyT idyT 6 mul sub moveto
TBIS (a) show (20) ib6 
TBS ( = 1,  ) show
TBIS (b) show (20) ib6 
TBS ( = -0,4) show

xchart3 0 eq {%BEG Munsell_colours C=2, V=1,2,5,8,9
0 1 4 {/kV exch def %kV=0,4 for Value 1,2,5,8,9
       /kV40 kV 40 mul def
0 1 39 {/i exch def %i=0,39
        /ikV40 i kV40 add def
        proc_Yexp
        AnYi i
        XANMi ikV40 get YANMi ikV40 get FL add div n1e exp
        XANWL           YANWL           FL add div n1e exp sub
        xxt YMi ikV40 get Y18 div 1 sub mul sub xat sub
        Yexp mul a2 mul fakt mul put          %A0
        BnYi i
        ZANMi ikV40 get YANMi ikV40 get FL add div n1e exp 
        ZANWL           YANWL           FL add div n1e exp sub
        yyt YMi ikV40 get Y18 div 1 sub mul sub yat sub
        Yexp mul b2 mul fakt mul put          %B0
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 38 le and {lineto} if
        i 39 eq {lineto closepath stroke} if
       } for %i=0,39
} for %kV=0,4

xchart5 1 ge {%xchart5>=1 %XANW,YANW
              newpath
              0
              0
              40 0 360 arc fill
xchart5 2 eq {%xchart5=2 %+TELi
              0 100 sub 350 add
              0 250 sub 150 sub moveto
              TBS TELi xchartx get show
             } if %xchart5=2  %+TELi
             } if %xchart5>=1 %XANW,YANW
} if %xchart3=0  %END Munsell_colours C=2, V=1,2,5,8,9

xchart3 1 eq {%xchart3=1 %BEG Ostwald_Colours
0 1 39 {/i exch def %i=0,39
        proc_Yexp
        AnYi i
        XANOi i get YANOi i get FL add div n1e exp
        XANWL       YANWL       FL add div n1e exp sub
        xxt YOi i get Y18 div 1 sub mul sub xat sub
        Yexp mul a2 mul fakt mul put         %A0
        BnYi i
        ZANOi i get YANOi i get FL add div n1e exp
        ZANWL       YANWL       FL add div n1e exp sub
        yyt YOi i get Y18 div 1 sub mul sub yat sub
        Yexp mul b2 mul fakt mul put         %B0
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 38 le and {lineto} if
        i 39 eq {lineto closepath stroke} if
       } for %i=0,39
proc_tab_Ocolors
         } if %xchart3=1 %END Ostwald_Colours

xchart3 2 eq {%xchart3=2 %BEG Spectral_Colours
/fakt 400 def
0 1 77 {/i exch def %i=0,39
        proc_Yexp
        AnYi i
        XANSi i get YANSi i get FL add div n1e exp
        XANWL       YANWL       FL add div n1e exp sub
        xxt YSi i get Y18 div 1 sub mul sub xat sub
        Yexp mul a2 mul fakt mul put         %A0
        BnYi i
        ZANSi i get YANSi i get FL add div n1e exp
        ZANWL       YANWL       FL add div n1e exp sub
        yyt YSi i get Y18 div 1 sub mul sub yat sub
        Yexp mul b2 mul fakt mul put         %B0
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 76 le and {lineto} if
        i 77 eq {lineto closepath stroke} if
       } for %i=0,77
proc_tab_Scolors
         } if %xchart3=2 %END Spectral_Colours

xtrans1 neg ytrans1 neg translate %for scala and graphic

} if %xchartl=1 %(A0,B0)

%*****************************************************************
xchartl 2 eq {%xchartl=2 %(A1,B1) (a1=[x-XANT]/y, b1=z/y)

/fakt 40 def %default
xchart3 0 eq {/fakt 160 def} if %xchart3=0 %Munsell_Colours
             
/a2 1.00 def
/b2 -0.4 def

/xtrans2 3500 def
/ytrans2 2000 def
xtrans2 ytrans2 translate %for scala and graphic

proc_tab1N

-3400 iyT idyT 4 mul sub moveto
TBIS (a) show xchartl 1 sub cvicvs ib6
TBS ( = ) show
TBIS (a) show (20) ib6 
TBS ( [) show
TBIS (\050x-) show TBS XANT cvsshow3x TBIS (\051/y) show
TBS (]) show

-3400 iyT idyT 5 mul sub moveto
TBIS (b) show xchartl 1 sub cvicvs ib6
TBS ( = ) show
TBIS (b) show (20) ib6 
TBS ( [) show
TBIS (z/y) show
TBS (]) show

-3400 iyT idyT 6 mul sub moveto
TBIS (a) show (20) ib6 
TBS ( = 1,  ) show
TBIS (b) show (20) ib6 
TBS ( = -0,4) show

-3400 iyT idyT 7 mul sub moveto
TBIS (m) show (T1) ib6 TBS (=) show 1.0 cvsshow3x (, ) show
TBIS (b) show (T1) ib6 TBS (=) show XANT cvsshow3x

xchart3 0 eq {%BEG Munsell_colours C=2, V=1,2,5,8,9
0 1 4 {/kV exch def %kV=0,4 for Value 1,2,5,8,9
       /kV40 kV 40 mul def
0 1 39 {/i exch def %i=0,39
        /ikV40 i kV40 add def
        proc_Yexp
        AnYi i
        XANMi ikV40 get XANT sub YANMi ikV40 get FL add div n1e exp
        XANWL           XANT sub YANWL           FL add div n1e exp sub
        xxt YMi ikV40 get Y18 div 1 sub mul sub xat sub
        Yexp mul a2 mul fakt mul put                 %A1
        BnYi i
        ZANMi ikV40 get YANMi ikV40 get FL add div n1e exp 
        ZANWL           YANWL           FL add div n1e exp sub
        yyt YMi ikV40 get Y18 div 1 sub mul sub yat sub
        Yexp mul b2 mul fakt mul put                 %B1
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 38 le and {lineto} if
        i 39 eq {lineto closepath stroke} if
       } for %i=0,39
} for %kV=0,4

xchart5 1 ge {%xchart5>=1 %XANW,YANW
              newpath
              0
              0
              40 0 360 arc fill
xchart5 2 eq {%xchart5=2 %+TELi
              0 100 sub 350 add
              0 250 sub 150 sub moveto
              TBS TELi xchartx get show
             } if %xchart5=2  %+TELi
             } if %xchart5>=1 %XANW,YANW
} if %xchart3=0  %END Munsell_colours C=2, V=1,2,5,8,9

xchart3 1 eq {%xchart3=1 %BEG Ostwald_Colours

0 1 39 {/i exch def %i=0,39
        proc_Yexp
        AnYi i
        XANOi i get XANT sub YANOi i get FL add div n1e exp
        XANWL       XANT sub YANWL       FL add div n1e exp sub
        xxt YOi i get Y18 div 1 sub mul sub xat sub
        Yexp mul a2 mul fakt mul put                %A1
        BnYi i
        ZANOi i get YANOi i get FL add div n1e exp
        ZANWL       YANWL       FL add div n1e exp sub
        yyt YOi i get Y18 div 1 sub mul sub yat sub
        Yexp mul b2 mul fakt mul put                %B1
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 38 le and {lineto} if
        i 39 eq {lineto closepath stroke} if
       } for %i=0,39
proc_tab_Ocolors
         } if %xchart3=1 %END Ostwald_Colours
         
xchart3 2 eq {%xchart3=2 %BEG Spectral_Colours
/fakt 400 def
0 1 77 {/i exch def %i=0,39
        proc_Yexp
        AnYi i
        XANSi i get XANT sub YANSi i get FL add div n1e exp
        XANWL       XANT sub YANWL       FL add div n1e exp sub
        xxt YSi i get Y18 div 1 sub mul sub xat sub
        Yexp mul a2 mul fakt mul put         %A1
        BnYi i
        ZANSi i get YANSi i get FL add div n1e exp
        ZANWL       YANWL       FL add div n1e exp sub
        yyt YSi i get Y18 div 1 sub mul sub yat sub
        Yexp mul b2 mul fakt mul put         %B1
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 76 le and {lineto} if
        i 77 eq {lineto closepath stroke} if
       } for %i=0,77
proc_tab_Scolors
         } if %xchart3=2 %END Spectral_Colours

xtrans2 neg ytrans2 neg translate %for scala and graphic

} if %xchartl=2 %(A1,B1)

%************************
xchartl 3 eq {%xchartl=1 %(A2,B2) (a2=x/y, b2=mP1*x+bP1)

/fakt 40 def %default
xchart3 0 eq {/fakt 160 def} if %xchart3=0 %Munsell_Colours

/a2 1.00 def
/b2 -0.4 def

/xtrans3 3500 def
/ytrans3 2000 def
xtrans3 ytrans3 translate %for scala and graphic

proc_tab1N

-3400 iyT idyT 4 mul sub moveto
TBIS (a) show xchartl 1 sub cvicvs ib6
TBS ( = ) show
TBIS (a) show (20) ib6 
TBS ( [) show
TBIS (\050x-) show TBS XANT cvsshow3x TBIS (\051/y) show
TBS (]) show

-3400 iyT idyT 5 mul sub moveto
TBIS (b) show xchartl 1 sub cvicvs ib6
%TBS (=) show TBIS (m) show (P1) ib6 TBIS (x) show
%TBS (+) show TBIS (b) show (P1) ib6
TBS (=) show
TBIS (b) show (20) ib6
TBS ( [\050) show TBIS (m) show (P1) ib6 TBIS (x) show
TBS (+) show    TBIS (b) show (P1) ib6
TBS (\051) show TBIS (/y) show TBS (]) show

-3400 iyT idyT 6 mul sub moveto
TBIS (a) show (20) ib6 
TBS ( = 1,  ) show
TBIS (b) show (20) ib6 
TBS ( = -0,4) show

-3400 iyT idyT 7 mul sub moveto
TBIS (m) show (P1) ib6 TBS (=) show mP1 cvsshow3x (, ) show
TBIS (b) show (P1) ib6 TBS (=) show bP1 cvsshow3x

xchart3 0 eq {%BEG Munsell_colours C=2, V=1,2,5,8,9
0 1 4 {/kV exch def %kV=0,4 for Value 1,2,5,8,9
       /kV40 kV 40 mul def
0 1 39 {/i exch def %i=0,39
        /ikV40 i kV40 add def
        proc_Yexp
        AnYi i
        XANMi ikV40 get                 YANMi ikV40 get FL add div n1e exp
        XANWL                           YANWL           FL add div n1e exp sub
        xxt YMi ikV40 get Y18 div 1 sub mul sub xat sub
        Yexp mul a2 mul fakt mul put                         %A2
        BnYi i
        XANMi ikV40 get mP1 mul bP1 add YANMi ikV40 get FL add div n1e exp
        XANWL           mP1 mul bP1 add YANWL           FL add div n1e exp sub
        yyt YMi ikV40 get Y18 div 1 sub mul sub yat sub
        Yexp mul b2 mul fakt mul put                         %B2
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 38 le and {lineto} if
        i 39 eq {lineto closepath stroke} if
       } for %i=0,39
} for %kV=0,4

xchart5 1 ge {%xchart5>=1 %XANW,YANW
              newpath
              0
              0
              40 0 360 arc fill
xchart5 2 eq {%xchart5=2 %+TELi
              0 100 sub 350 add
              0 250 sub 150 sub moveto
              TBS TELi xchartx get show
             } if %xchart5=2  %+TELi
             } if %xchart5>=1 %XANW,YANW
} if %xchart3=0  %END Munsell_colours C=2, V=1,2,5,8,9

xchart3 1 eq {%xchart3=1 %BEG Ostwald_Colours

0 1 39 {/i exch def %i=0,39
        proc_Yexp
        AnYi i
        XANOi i get          YANOi i get FL add div n1e exp
        XANWL                YANWL       FL add div n1e exp sub
        xxt YOi i get Y18 div 1 sub mul sub xat sub
        Yexp mul a2 mul fakt mul put                     %A2
        BnYi i
        XANOi i get mP1 mul bP1 add YANOi i get FL add div n1e exp
        XANWL       mP1 mul bP1 add YANWL       FL add div n1e exp sub
        yyt YOi i get Y18 div 1 sub mul sub yat sub
        Yexp mul b2 mul fakt mul put                     %B2
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 38 le and {lineto} if
        i 39 eq {lineto closepath stroke} if
       } for %i=0,39
proc_tab_Ocolors
         } if %xchart3=1 %END Ostwald_Colours
         
xchart3 2 eq {%xchart3=2 %BEG Spectral_Colours
/fakt 400 def
0 1 77 {/i exch def %i=0,39
        proc_Yexp
        AnYi i
        XANSi i get          YANSi i get FL add div n1e exp
        XANWL                YANWL       FL add div n1e exp sub
        xxt YSi i get Y18 div 1 sub mul sub xat sub
        Yexp mul a2 mul fakt mul put         %A1
        BnYi i
        XANSi i get mP1 mul bP1 add YANSi i get FL add div n1e exp
        XANWL       mP1 mul bP1 add YANWL       FL add div n1e exp sub
        yyt YSi i get Y18 div 1 sub mul sub yat sub
        Yexp mul b2 mul fakt mul put         %B1
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 76 le and {lineto} if
        i 77 eq {lineto closepath stroke} if
       } for %i=0,77
proc_tab_Scolors
         } if %xchart3=2 %END Spectral_Colours

xtrans3 neg ytrans3 neg translate %for scala and graphic

} if %xchartl=3 %(A2,B2)

%************************
xchartl 4 eq {%xchartl=04 %(A3,B3) (a3=[x-XANT]/y, b3=mD1*x+bD1)

/fakt 40 def %default
xchart3 0 eq {/fakt 160 def} if %xchart3=0 %Munsell_Colours

/a2 1.00 def
/b2 -0.4 def

/xtrans4 3500 def
/ytrans4 2000 def
xtrans4 ytrans4 translate %for scala and graphic

proc_tab1N

-3400 iyT idyT 4 mul sub moveto
TBIS (a) show xchartl 1 sub cvicvs ib6
TBS ( = ) show
TBIS (a) show (20) ib6 
TBS ( [) show
TBIS (\050x-) show TBS XANT cvsshow3x TBIS (\051/y) show
TBS (]) show

-3400 iyT idyT 5 mul sub moveto
TBIS (b) show xchartl 1 sub cvicvs ib6
%TBS (=) show TBIS (m) show (D1) ib6 TBIS (x) show
%TBS (+) show TBIS (b) show (D1) ib6
TBS (=) show
TBIS (b) show (20) ib6
TBS ( [\050) show TBIS (m) show (D1) ib6 TBIS (x) show
TBS (+) show    TBIS (b) show (D1) ib6
TBS (\051) show TBIS (/y) show TBS (]) show

-3400 iyT idyT 6 mul sub moveto
TBIS (a) show (20) ib6 
TBS ( = 1,  ) show
TBIS (b) show (20) ib6 
TBS ( = -0,4) show

-3400 iyT idyT 7 mul sub moveto
TBIS (m) show (D1) ib6 TBS (=) show mD1 cvsshow3x (, ) show
TBIS (b) show (D1) ib6 TBS (=) show bD1 cvsshow3x

xchart3 0 eq {%BEG Munsell_colours C=2, V=1,2,5,8,9
0 1 4 {/kV exch def %kV=0,4 for Value 1,2,5,8,9
       /kV40 kV 40 mul def
0 1 39 {/i exch def %i=0,39
        /ikV40 i kV40 add def
        proc_Yexp
        AnYi i
        XANMi ikV40 get XANT sub        YANMi ikV40 get FL add div n1e exp
        XANWL           XANT sub        YANWL           FL add div n1e exp sub
        xxt YMi ikV40 get Y18 div 1 sub mul sub xat sub
        Yexp mul a2 mul fakt mul put                         %A3
        BnYi i
        XANMi ikV40 get mD1 mul bD1 add YANMi ikV40 get FL add div n1e exp
        XANWL           mD1 mul bD1 add YANWL           FL add div n1e exp sub
        yyt YMi ikV40 get Y18 div 1 sub mul sub yat sub
        Yexp mul b2 mul fakt mul put                         %B3
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 38 le and {lineto} if
        i 39 eq {lineto closepath stroke} if
       } for %i=0,39
} for %kV=0,4

xchart5 1 ge {%xchart5>=1 %XANW,YANW
              newpath
              0
              0
              40 0 360 arc fill
xchart5 2 eq {%xchart5=2 %+TELi
              0 100 sub 350 add
              0 250 sub 150 sub moveto
              TBS TELi xchartx get show
             } if %xchart5=2  %+TELi
             } if %xchart5>=1 %XANW,YANW
} if %xchart3=0  %END Munsell_colours C=2, V=1,2,5,8,9

xchart3 1 eq {%xchart3=1 %BEG Ostwald_Colours

0 1 39 {/i exch def %i=0,39
        proc_Yexp
        AnYi i
        XANOi i get XANT sub YANOi i get FL add div n1e exp
        XANWL       XANT sub YANWL       FL add div n1e exp sub
        xxt YOi i get Y18 div 1 sub mul sub xat sub
        Yexp mul a2 mul fakt mul put                     %A3
        BnYi i
        XANOi i get mD1 mul bD1 add YANOi i get FL add div n1e exp
        XANWL       mD1 mul bD1 add YANWL       FL add div n1e exp sub
        yyt YOi i get Y18 div 1 sub mul sub yat sub
        Yexp mul b2 mul fakt mul put                     %B3
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 38 le and {lineto} if
        i 39 eq {lineto closepath stroke} if
       } for %i=0,39
proc_tab_Ocolors
         } if %xchart3=1 %END Ostwald_Colours
         
xchart3 2 eq {%xchart3=2 %BEG Spectral_Colours
/fakt 400 def
0 1 77 {/i exch def %i=0,39
        proc_Yexp
        AnYi i
        XANSi i get XANT sub YANSi i get FL add div n1e exp
        XANWL       XANT sub YANWL       FL add div n1e exp sub
        xxt YSi i get Y18 div 1 sub mul sub xat sub
        Yexp mul a2 mul fakt mul put         %A1
        BnYi i
        XANSi i get mD1 mul bD1 add YANSi i get FL add div n1e exp
        XANWL       mD1 mul bD1 add YANWL       FL add div n1e exp sub
        yyt YSi i get Y18 div 1 sub mul sub yat sub
        Yexp mul b2 mul fakt mul put         %B1
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 76 le and {lineto} if
        i 77 eq {lineto closepath stroke} if
       } for %i=0,77
proc_tab_Scolors
         } if %xchart3=2 %END Spectral_Colours

xtrans4 neg ytrans4 neg translate %for scala and graphic

} if %xchartl=4 %(A3,B3)

%************************
xchartl 5 eq {%xchartl=5 %(A4,B4) (a4=(x-XANT)/y, b4=mP1*x+bP1)

/fakt 40 def %default
xchart3 0 eq {/fakt 160 def} if %xchart3=0 %Munsell_Colours

/a2 1.00 def
/b2 -0.4 def

/xtrans5 3500 def
/ytrans5 2000 def
xtrans5 ytrans5 translate %for scala and graphic

proc_tab1N

-3400 iyT idyT 4 mul sub moveto
TBIS (a) show xchartl 1 sub cvicvs ib6
TBS ( = ) show
TBIS (a) show (20) ib6 
TBS ( [) show
TBIS (\050x-) show TBS XANT cvsshow3x TBIS (\051/y) show
TBS (]) show

-3400 iyT idyT 5 mul sub moveto
TBIS (b) show xchartl 1 sub cvicvs ib6
%TBS (=) show TBIS (m) show (P1) ib6 TBIS (x) show
%TBS (+) show TBIS (b) show (P1) ib6
TBS (=) show
TBIS (b) show (20) ib6
TBS ( [\050) show TBIS (m) show (P1) ib6 TBIS (x) show
TBS (+) show    TBIS (b) show (P1) ib6
TBS (\051) show TBIS (/y) show TBS (]) show

-3400 iyT idyT 6 mul sub moveto
TBIS (a) show (20) ib6 
TBS ( = 1,  ) show
TBIS (b) show (20) ib6 
TBS ( = -0,4) show

-3400 iyT idyT 7 mul sub moveto
TBIS (m) show (P1) ib6 TBS (=) show mP1 cvsshow3x (, ) show
TBIS (b) show (P1) ib6 TBS (=) show bP1 cvsshow3x

xchart3 0 eq {%BEG Munsell_colours C=2, V=1,2,5,8,9
0 1 4 {/kV exch def %kV=0,4 for Value 1,2,5,8,9
       /kV40 kV 40 mul def
0 1 39 {/i exch def %i=0,39
        /ikV40 i kV40 add def
        proc_Yexp
        AnYi i
        XANMi ikV40 get XANT sub        YANMi ikV40 get FL add div n1e exp
        XANWL           XANT sub        YANWL           FL add div n1e exp sub
        xxt YMi ikV40 get Y18 div 1 sub mul sub xat sub
        Yexp mul a2 mul fakt mul put                         %A4
        BnYi i
        XANMi ikV40 get mP1 mul bP1 add YANMi ikV40 get FL add div n1e exp
        XANWL           mP1 mul bP1 add YANWL           FL add div n1e exp sub
        yyt YMi ikV40 get Y18 div 1 sub mul sub yat sub
        Yexp mul b2 mul fakt mul put                         %B4
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 38 le and {lineto} if
        i 39 eq {lineto closepath stroke} if
       } for %i=0,39
} for %kV=0,4

xchart5 1 ge {%xchart5>=1 %XANW,YANW
              newpath
              0
              0
              40 0 360 arc fill
xchart5 2 eq {%xchart5=2 %+TELi
              0 100 sub 350 add
              0 250 sub 150 sub moveto
              TBS TELi xchartx get show
             } if %xchart5=2  %+TELi
             } if %xchart5>=1 %XANW,YANW
} if %xchart3=0  %END Munsell_colours C=2, V=1,2,5,8,9

xchart3 1 eq {%xchart3=1 %BEG Ostwald_Colours

0 1 39 {/i exch def %i=0,39
        proc_Yexp
        AnYi i
        XANOi i get XANT sub YANOi i get FL add div n1e exp
        XANWL       XANT sub YANWL       FL add div n1e exp sub
        xxt YOi i get Y18 div 1 sub mul sub xat sub
        Yexp mul a2 mul fakt mul put                     %A4
        BnYi i
        XANOi i get mP1 mul bP1 add YANOi i get FL add div n1e exp
        XANWL       mP1 mul bP1 add YANWL       FL add div n1e exp sub
        yyt YOi i get Y18 div 1 sub mul sub yat sub
        Yexp mul b2 mul fakt mul put                     %B4
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 38 le and {lineto} if
        i 39 eq {lineto closepath stroke} if
       } for %i=0,39
proc_tab_Ocolors
         } if %xchart3=1 %END Ostwald_Colours
         
xchart3 2 eq {%xchart3=2 %BEG Spectral_Colours
/fakt 400 def
0 1 77 {/i exch def %i=0,39
        proc_Yexp
        AnYi i
        XANSi i get XANT sub YANSi i get FL add div n1e exp
        XANWL       XANT sub YANWL       FL add div n1e exp sub
        xxt YSi i get Y18 div 1 sub mul sub xat sub
        Yexp mul a2 mul fakt mul put         %A1
        BnYi i
        XANSi i get mP1 mul bP1 add YANSi i get FL add div n1e exp
        XANWL       mP1 mul bP1 add YANWL       FL add div n1e exp sub
        yyt YSi i get Y18 div 1 sub mul sub yat sub
        Yexp mul b2 mul fakt mul put         %B1
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 76 le and {lineto} if
        i 77 eq {lineto closepath stroke} if
       } for %i=0,77
proc_tab_Scolors
         } if %xchart3=2 %END Spectral_Colours

xtrans5 neg ytrans5 neg translate %for scala and graphic

} if %xchartl=5 %(A4,B4)

%************************
xchartl 6 eq {%xchartl=6 %(A5,B5) (a5=[x-XANT]/y, b5=mD1*x+bD1)

/fakt 40 def %default
xchart3 0 eq {/fakt 160 def} if %xchart3=0 %Munsell_Colours

/a2 1.00 def
/b2 -0.4 def

/A51  8.6120 def
/A52 -7.1966 def
/A53 -0.2689 def
/B51  1.9907 def
/B52  3.8617 def
/B53 -2.4046 def
%a=(a51*x+a52*y+a53)/y
%b=(b51*x+b52*y+b53)/y
/a2x 0.1 def
/b2x 0.1 def

/xtrans6 3500 def
/ytrans6 2000 def
xtrans6 ytrans6 translate %for scala and graphic

proc_tab1N

-3400 iyT idyT 4 mul sub moveto
TBIS (a) show xchartl 1 sub cvicvs ib6
TBS (=) show
TBIS (a) show (2x) ib6
TBS ([\050+) show A51 cvsshow2x TBIS (x) show
TBS A52 cvsshow2x TBIS (y) show
TBS A53 cvsshow2x (\051/) show TBIS (y) show
TBS (]) show

-3400 iyT idyT 5 mul sub moveto
TBIS (b) show xchartl 1 sub cvicvs ib6
TBS (=) show
TBIS (b) show (2x) ib6
TBS ([\050+) show B51 cvsshow2x TBIS (x) show
TBS (+) show B52 cvsshow2x TBIS (y) show
TBS B53 cvsshow2x (\051/) show TBIS (y) show
TBS (]) show

-3400 iyT idyT 6 mul sub moveto
TBIS (a) show (2x) ib6
TBS ( = ) show a2x cvsshow2x (, ) show
TBIS (b) show (2x) ib6
TBS ( = ) show b2x cvsshow2x

-3400 iyT idyT 7 mul sub moveto
SS (l) show (B,G,Y,R) ib6 TBS (=475,503,574,494c,E nm) show

xchart3 0 eq {%BEG Munsell_colours C=2, V=1,2,5,8,9
0 1 4 {/kV exch def %kV=0,4 for Value 1,2,5,8,9
       /kV40 kV 40 mul def
0 1 39 {/i exch def %i=0,39
        /ikV40 i kV40 add def
        proc_Yexp
        AnYi i
        XANMi ikV40 get A51 mul YANMi ikV40 get A52 mul add A53 add
        YANMi ikV40 get FL add div n1e exp
        XANWL           A51 mul YANWL           A52 mul add A53 add
        YANWL           FL add div n1e exp sub
        xxt YMi ikV40 get Y18 div 1 sub mul sub xat sub        
        Yexp mul a2x mul fakt mul put                         %A5
        BnYi i
        XANMi ikV40 get B51 mul YANMi ikV40 get B52 mul add B53 add
        YANMi ikV40 get FL add div n1e exp
        XANWL           B51 mul YANWL           B52 mul add B53 add
        YANWL           FL add div n1e exp sub
        yyt YMi ikV40 get Y18 div 1 sub mul sub yat sub
        Yexp mul b2x mul fakt mul put                         %B5
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 38 le and {lineto} if
        i 39 eq {lineto closepath stroke} if
       } for %i=0,39
} for %kV=0,4

xchart5 1 ge {%xchart5>=1 %XANW,YANW
              newpath
              0
              0
              40 0 360 arc fill
xchart5 2 eq {%xchart5=2 %+TELi
              0 100 sub 350 add
              0 250 sub 150 sub moveto
              TBS TELi xchartx get show
             } if %xchart5=2  %+TELi
             } if %xchart5>=1 %XANW,YANW
} if %xchart3=0  %END Munsell_colours C=2, V=1,2,5,8,9

xchart3 1 eq {%xchart3=1 %BEG Ostwald_Colours

0 1 39 {/i exch def %i=0,39
        proc_Yexp
        AnYi i
        XANOi i get A51 mul YANOi i get A52 mul add A53 add
        YANOi i get FL add div n1e exp
        XANWL       A51 mul YANWL       A52 mul add A53 add
        YANWL       FL add div n1e exp sub
        xxt YOi i get Y18 div 1 sub mul sub xat sub
        Yexp mul a2x mul fakt mul put                         %A5
        BnYi i
        XANOi i get B51 mul YANOi i get B52 mul add B53 add
        YANOi i get FL add div n1e exp
        XANWL       B51 mul YANWL       B52 mul add B53 add
        YANWL       FL add div n1e exp sub
        yyt YOi i get Y18 div 1 sub mul sub yat sub
        Yexp mul b2x mul fakt mul put                         %B5
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 38 le and {lineto} if
        i 39 eq {lineto closepath stroke} if
       } for %i=0,39
proc_tab_Ocolors
         } if %xchart3=1 %END Ostwald_Colours
         
xchart3 2 eq {%xchart3=2 %BEG Spectral_Colours
/fakt 400 def
0 1 77 {/i exch def %i=0,39
        proc_Yexp
        AnYi i
        XANSi i get A51 mul YANSi i get A52 mul add A53 add
        YANSi i get FL add div n1e exp
        XANWL       A51 mul YANWL       A52 mul add A53 add
        YANWL       FL add div n1e exp sub
        xxt YSi i get Y18 div 1 sub mul sub xat sub
        Yexp mul a2x mul fakt mul put                         %A5
        BnYi i
        XANSi i get B51 mul YANSi i get B52 mul add B53 add
        YANSi i get FL add div n1e exp
        XANWL       B51 mul YANWL       B52 mul add B53 add
        YANWL       FL add div n1e exp sub
        yyt YSi i get Y18 div 1 sub mul sub yat sub
        Yexp mul b2x mul fakt mul put                         %B5
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 76 le and {lineto} if
        i 77 eq {lineto closepath stroke} if
       } for %i=0,77
proc_tab_Scolors
         } if %xchart3=2 %END Spectral_Colours

xtrans6 neg ytrans6 neg translate %for scala and graphic

} if %xchartl=6 %(A5,B5)

%************************
xchartl 7 eq {%xchartl=7 %(A6,B6) (a6=x/y, b6=mD1*x+bD1)

/fakt 40 def %default
xchart3 0 eq {/fakt 160 def} if %xchart3=0 %Munsell_Colours

/a2 1.00 def
/b2 -0.4 def

/xtrans7 3500 def
/ytrans7 2000 def
xtrans7 ytrans7 translate %for scala and graphic

proc_tab1N

-3400 iyT idyT 4 mul sub moveto
TBIS (a) show xchartl 1 sub cvicvs ib6
TBS ( = ) show
TBIS (a) show (20) ib6 
TBS ( [) show
TBIS (x/y) show
TBS (]) show

-3400 iyT idyT 5 mul sub moveto
TBIS (b) show xchartl 1 sub cvicvs ib6
%TBS (=) show TBIS (m) show (D1) ib6 TBIS (x) show
%TBS (+) show TBIS (b) show (D1) ib6
TBS (=) show
TBIS (b) show (20) ib6
TBS ( [\050) show TBIS (m) show (D1) ib6 TBIS (x) show
TBS (+) show    TBIS (b) show (D1) ib6
TBS (\051) show TBIS (/y) show TBS (]) show

-3400 iyT idyT 6 mul sub moveto
TBIS (a) show (20) ib6
TBS ( = 1,  ) show
TBIS (b) show (20) ib6
TBS ( = -0,4) show

-3400 iyT idyT 7 mul sub moveto
TBIS (m) show (D1) ib6 TBS (=) show mD1 cvsshow3x (, ) show
TBIS (b) show (D1) ib6 TBS (=) show bD1 cvsshow3x

xchart3 0 eq {%BEG Munsell_colours C=2, V=1,2,5,8,9
0 1 4 {/kV exch def %kV=0,4 for Value 1,2,5,8,9
       /kV40 kV 40 mul def
0 1 39 {/i exch def %i=0,39
        /ikV40 i kV40 add def
        proc_Yexp
        AnYi i
        XANMi ikV40 get                 YANMi ikV40 get FL add div n1e exp
        XANWL                           YANWL           FL add div n1e exp sub
        xxt YMi ikV40 get Y18 div 1 sub mul sub xat sub
        Yexp mul a2 mul fakt mul put                      %A6
        BnYi i 
        XANMi ikV40 get mD1 mul bD1 add YANMi ikV40 get FL add div n1e exp
        XANWL           mD1 mul bD1 add YANWL           FL add div n1e exp sub
        yyt YMi ikV40 get Y18 div 1 sub mul sub yat sub
        Yexp mul b2 mul fakt mul put                      %B6
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 38 le and {lineto} if
        i 39 eq {lineto closepath stroke} if
       } for %i=0,39
} for %kV=0,4

xchart5 1 ge {%xchart5>=1 %XANW,YANW
              newpath
              0
              0
              40 0 360 arc fill
xchart5 2 eq {%xchart5=2 %+TELi
              0 100 sub 350 add
              0 250 sub 150 sub moveto
              TBS TELi xchartx get show
             } if %xchart5=2  %+TELi
             } if %xchart5>=1 %XANW,YANW
} if %xchart3=0  %END Munsell_colours C=2, V=1,2,5,8,9

xchart3 1 eq {%xchart3=1 %BEG Ostwald_Colours

0 1 39 {/i exch def %i=0,39
        proc_Yexp
        AnYi i
        XANOi i get          YANOi i get FL add div n1e exp
        XANWL                YANWL       FL add div n1e exp sub
        xxt YOi i get Y18 div 1 sub mul sub xat sub
        Yexp mul a2 mul fakt mul put                    %A6
        BnYi i
        XANOi i get mD1 mul bD1 add YANOi i get FL add div n1e exp
        XANWL       mD1 mul bD1 add YANWL       FL add div n1e exp sub
        yyt YOi i get Y18 div 1 sub mul sub yat sub
        Yexp mul b2 mul fakt mul put                    %B6
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 38 le and {lineto} if
        i 39 eq {lineto closepath stroke} if
       } for %i=0,39
proc_tab_Ocolors
         } if %xchart3=1 %END Ostwald_Colours
         
xchart3 2 eq {%xchart3=2 %BEG Spectral_Colours
/fakt 400 def
0 1 77 {/i exch def %i=0,39
        proc_Yexp
        AnYi i
        XANSi i get          YANSi i get FL add div n1e exp
        XANWL                YANWL       FL add div n1e exp sub
        xxt YSi i get Y18 div 1 sub mul sub xat sub
        Yexp mul a2 mul fakt mul put         %A1
        BnYi i
        XANSi i get mD1 mul bD1 add YANSi i get FL add div n1e exp
        XANWL       mD1 mul bD1 add YANWL       FL add div n1e exp sub
        yyt YSi i get Y18 div 1 sub mul sub yat sub
        Yexp mul b2 mul fakt mul put         %B1
        AnYi i get BnYi i get
        i 0 eq {moveto} if
        i 1 ge i 76 le and {lineto} if
        i 77 eq {lineto closepath stroke} if
       } for %i=0,77
proc_tab_Scolors
         } if %xchart3=2 %END Spectral_Colours

xtrans7 neg ytrans7 neg translate %for scala and graphic

} if %xchartl=7

} if %xchart10=1 long loop 1700 lines!

%END 'CL10'Y11_XCHART1A_1.PS
%***************************************************************

%line 5106
%END INC Y11_XCHART10_0/1/2.PS

%************************
%special space for 'xm03'PROZ0.COM 2x before/after xchartl
%  xchartl   0 eq {  100 neg 13000 neg translate} if
%  xchartl   1 eq { 6100 neg 13000 neg translate} if
%  xchartl   2 eq {  100 neg 08750 neg translate} if
%  xchartl   3 eq { 6100 neg 08750 neg translate} if

%  xchartl   4 eq {  100 neg  4500 neg translate} if
%  xchartl   5 eq { 6100 neg  4500 neg translate} if
%  xchartl   6 eq {  100 neg  0250 neg translate} if
%  xchartl   7 eq { 6100 neg  0250 neg translate} if

%} for %xchart3=0,1 %0=Munsell, 1=Ostwald

showpage %XA
grestore
} for %xchartl=0,7 %8 chromaticity diagrams

%showpage %7R&7N
grestore

} for %xchartx=0,7 %8 illuminants

%%Trailer