├── .gitignore ├── .gitmodules ├── Exercise ├── MolDyn │ ├── code │ │ ├── linearmom.f90 │ │ ├── potential.f90 │ │ ├── verlet.f90 │ │ ├── verlet1.f90 │ │ └── verlet2.f90 │ └── orig │ │ ├── Makefile │ │ ├── md-orig.f90 │ │ └── md.inp └── Solution │ ├── circle_area.f90 │ ├── factorial.f90 │ ├── factorial1.f90 │ ├── factorial2.f90 │ ├── fibonacci.f90 │ ├── fibonacci.mod │ ├── fibonacci_rec.f90 │ ├── gcdlcm.f90 │ └── quad_roots.f90 ├── Fortran.pdf ├── Fortran.tex ├── Fortran1.pdf ├── Fortran1.tex ├── Fortran2.pdf ├── Fortran2.tex ├── Intro2Fortran.pdf ├── Intro2Fortran.tex ├── LICENSE ├── Makefile ├── README.md ├── _config.yml ├── beamerouterthemehawk.sty ├── demo ├── Makefile ├── helloworld.f90 ├── kindfns.f90 ├── nested.f90 ├── saxpy.f ├── saxpy.f90 ├── simple.f90 ├── sum.f90 ├── sumf.f90 └── temp.f90 ├── graphics ├── array1.jpg ├── array1.odg ├── array2-3-1.jpg ├── array2-3-1.odg ├── array2-3.eps ├── array2-3.jpg ├── array2-3.odg ├── array2.eps ├── array2.jpg ├── array3.eps ├── array3.jpg ├── array4.eps ├── array4.jpg ├── array4.odg ├── array5.eps ├── array5.jpg ├── array5.odg ├── array6.eps ├── array6.jpg ├── array6.odg ├── matmul.png └── pi.jpg ├── matmul.png ├── mypreamble.tex └── pi.jpg /.gitignore: -------------------------------------------------------------------------------- 1 | ## Core latex/pdflatex auxiliary files: 2 | *.aux 3 | *.lof 4 | *.log 5 | *.lot 6 | *.fls 7 | *.out 8 | *.toc 9 | 10 | ## Intermediate documents: 11 | *.dvi 12 | *-converted-to.* 13 | # these rules might exclude image files for figures etc. 14 | # *.ps 15 | # *.eps 16 | # *.pdf 17 | 18 | ## Bibliography auxiliary files (bibtex/biblatex/biber): 19 | *.bbl 20 | *.bcf 21 | *.blg 22 | *-blx.aux 23 | *-blx.bib 24 | *.brf 25 | *.run.xml 26 | 27 | ## Build tool auxiliary files: 28 | *.fdb_latexmk 29 | *.synctex 30 | *.synctex.gz 31 | *.synctex.gz(busy) 32 | *.pdfsync 33 | 34 | ## Auxiliary and intermediate files from other packages: 35 | 36 | # algorithms 37 | *.alg 38 | *.loa 39 | 40 | # achemso 41 | acs-*.bib 42 | 43 | # amsthm 44 | *.thm 45 | 46 | # beamer 47 | *.nav 48 | *.snm 49 | *.vrb 50 | 51 | #(e)ledmac/(e)ledpar 52 | *.end 53 | *.[1-9] 54 | *.[1-9][0-9] 55 | *.[1-9][0-9][0-9] 56 | *.[1-9]R 57 | *.[1-9][0-9]R 58 | *.[1-9][0-9][0-9]R 59 | *.eledsec[1-9] 60 | *.eledsec[1-9]R 61 | *.eledsec[1-9][0-9] 62 | *.eledsec[1-9][0-9]R 63 | *.eledsec[1-9][0-9][0-9] 64 | *.eledsec[1-9][0-9][0-9]R 65 | 66 | # glossaries 67 | *.acn 68 | *.acr 69 | *.glg 70 | *.glo 71 | *.gls 72 | 73 | # gnuplottex 74 | *-gnuplottex-* 75 | 76 | # hyperref 77 | *.brf 78 | 79 | # knitr 80 | *-concordance.tex 81 | *.tikz 82 | *-tikzDictionary 83 | 84 | # listings 85 | *.lol 86 | 87 | # makeidx 88 | *.idx 89 | *.ilg 90 | *.ind 91 | *.ist 92 | 93 | # minitoc 94 | *.maf 95 | *.mtc 96 | *.mtc0 97 | 98 | # minted 99 | _minted* 100 | *.pyg 101 | 102 | # morewrites 103 | *.mw 104 | 105 | # nomencl 106 | *.nlo 107 | 108 | # sagetex 109 | *.sagetex.sage 110 | *.sagetex.py 111 | *.sagetex.scmd 112 | 113 | # sympy 114 | *.sout 115 | *.sympy 116 | sympy-plots-for-*.tex/ 117 | 118 | # todonotes 119 | *.tdo 120 | 121 | # xindy 122 | *.xdy 123 | 124 | # WinEdt 125 | *.bak 126 | *.sav 127 | 128 | # emacs buffer files 129 | *~ 130 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "MD"] 2 | path = MD 3 | url = ../moleculardynamics 4 | -------------------------------------------------------------------------------- /Exercise/MolDyn/code/linearmom.f90: -------------------------------------------------------------------------------- 1 | subroutine linearmom(vel) 2 | use precision 3 | use param, only : natom 4 | implicit none 5 | real(dp), dimension(:,:), intent(inout) :: vel 6 | integer(ip) :: i 7 | real(dp) :: vcm(3) 8 | 9 | ! First get center of mass velocity 10 | vcm = 0d0 11 | do i = 1, 3 12 | vcm(i) = sum(vel(:,i)) 13 | end do 14 | vcm = vcm / real(natom,dp) 15 | 16 | ! Now remove center of mass velocity from all atoms 17 | do i = 1, natom 18 | vel(i,:) = vel(i,:) - vcm(:) 19 | end do 20 | 21 | end subroutine linearmom 22 | 23 | -------------------------------------------------------------------------------- /Exercise/MolDyn/code/potential.f90: -------------------------------------------------------------------------------- 1 | module potential 2 | use precision 3 | implicit none 4 | real(dp) :: r2, r6, d2, d 5 | real(dp), parameter :: de = 0.176d0, a = 1.4d0, re = 1d0 6 | real(dp) :: exparre 7 | 8 | contains 9 | subroutine lennard_jones(r,f,p) 10 | ! Lennard Jones Potential 11 | ! V = 4 * epsilon * [ (sigma/r)**12 - (sigma/r)**6 ] 12 | ! = 4 * epsilon * (sigma/r)**6 * [ (sigma/r)**2 - 1 ] 13 | ! = 4 * r**(-6) * [ r**(-2) - 1 ] for epsilon=sigma=1 14 | ! F_i = 48 * epsilon * (sigma/r)**6 * (1/r**2) * [ ( sigma/r)** 6 - 0.5 ] * i where i = x,y,z 15 | ! = 48 * r**(-8) * [ r**(-6) - 0.5 ] * i for epsilon=sigma=1 implicit none 16 | implicit none 17 | real(dp), dimension(:), intent(in) :: r 18 | real(dp), dimension(:), intent(out) :: f 19 | real(dp), intent(out) :: p 20 | 21 | r2 = 1.d0 / dot_product(r,r) 22 | r6 = r2 ** 3 23 | 24 | f = dvdr_lj(r2, r6) * r 25 | p = pot_lj(r2, r6) 26 | end subroutine lennard_jones 27 | 28 | subroutine morse(r,f,p) 29 | ! Morse Potential 30 | ! V = D * [ 1 - exp(-a*(r - re)) ]^2 31 | ! F_i = 2*D * [ 1 - exp(-a*(r - re)) ] * a exp(-a*(r-re)) * i / r 32 | implicit none 33 | real(dp), dimension(:), intent(in) :: r 34 | real(dp), dimension(:), intent(out) :: f 35 | real(dp), intent(out) :: p 36 | 37 | d2 = dot_product(r,r) 38 | d = sqrt(d2) 39 | exparre = exp( -a * (d - re )) 40 | 41 | f = dvdr_mp(exparre) * r 42 | p = pot_mp(exparre) 43 | end subroutine morse 44 | 45 | function pot_lj(r2, r6) 46 | implicit none 47 | real(dp), intent(in) :: r2, r6 48 | real(dp) :: pot_lj 49 | pot_lj = 4d0 * r6 * ( r6 - 1.d0 ) 50 | end function pot_lj 51 | function pot_mp(exparre) 52 | implicit none 53 | real(dp), intent(in) :: exparre 54 | real(dp) :: pot_mp 55 | pot_mp = de * ( 1d0 - exparre )**2 56 | end function pot_mp 57 | 58 | function dvdr_lj(r2,r6) 59 | implicit none 60 | real(dp), intent(in) :: r2, r6 61 | real(dp) :: dvdr_lj 62 | dvdr_lj = 48d0 * r2 * r6 * ( r6 - 0.5d0 ) 63 | end function dvdr_lj 64 | function dvdr_mp(exparre) 65 | implicit none 66 | real(dp), intent(in) :: exparre 67 | real(dp) :: dvdr_mp 68 | dvdr_mp = 2d0 * de * a * (1d0 - exparre) * exparre 69 | end function dvdr_mp 70 | end module potential 71 | 72 | -------------------------------------------------------------------------------- /Exercise/MolDyn/code/verlet.f90: -------------------------------------------------------------------------------- 1 | subroutine verlet(coord, coord_t0, vel, vel_t0, acc, acc_t0, force, pener) 2 | use precision 3 | use potential 4 | use param, only : natom, mass, dt, boxl, pot 5 | implicit none 6 | real(dp), dimension(:,:), intent(in) :: coord_t0, vel_t0, acc_t0 7 | real(dp), dimension(:,:), intent(out) :: coord, vel, acc, force 8 | real(dp), intent(out) :: pener 9 | integer(ip) :: i, j, k 10 | real(dp) :: epot 11 | real(dp) :: r(3), f(3) 12 | 13 | ! Set coordinates, velocity, acceleration and force at next time step to zero 14 | coord = 0d0 ; vel = 0d0 ; acc = 0d0 ; force = 0d0 15 | pener = 0d0 16 | 17 | ! Get new atom positions from Velocity Verlet Algorithm 18 | coord = coord_t0 + vel_t0 * dt + 0.5d0 * acc_t0 * dt ** 2 19 | do i = 1, natom 20 | ! Apply PBC to coordinates 21 | where ( coord(i,:) > boxl(:) ) 22 | coord(i,:) = coord(i,:) - boxl(:) 23 | elsewhere ( coord(i,:) < 0d0 ) 24 | coord(i,:) = coord(i,:) + boxl(:) 25 | end where 26 | end do 27 | 28 | ! Get force at new atom positions 29 | do i = 1, natom - 1 30 | do j = i + 1, natom 31 | r(:) = coord(i,:) - coord(j,:) 32 | ! minimum image criterion 33 | r = r - nint( r / boxl ) * boxl 34 | select case(pot) 35 | case('mp') 36 | call morse( r, f, epot ) 37 | case default 38 | call lennard_jones( r, f, epot ) 39 | end select 40 | pener = pener + epot 41 | force(i,:) = force(i,:) + f(:) 42 | force(j,:) = force(j,:) - f(:) 43 | end do 44 | end do 45 | 46 | ! Calculate Acceleration and Velocity at current time step 47 | acc = force / mass 48 | vel = vel_t0 + 0.5d0 * ( acc + acc_t0 ) * dt 49 | 50 | end subroutine verlet 51 | 52 | -------------------------------------------------------------------------------- /Exercise/MolDyn/code/verlet1.f90: -------------------------------------------------------------------------------- 1 | subroutine verlet(coord, coord_t0, vel, vel_t0, acc, acc_t0, force, pener) 2 | use precision 3 | use param, only : natom, mass, dt, boxl, pot 4 | implicit none 5 | real(dp), dimension(:,:), intent(in) :: coord_t0, vel_t0, acc_t0 6 | real(dp), dimension(:,:), intent(out) :: coord, vel, acc, force 7 | real(dp), intent(out) :: pener 8 | integer(ip) :: i 9 | 10 | interface 11 | subroutine get_pot_force(coord, force, pener) 12 | use precision 13 | implicit none 14 | real(dp), dimension(:,:), intent(in) :: coord 15 | real(dp), dimension(:,:), intent(out) :: force 16 | real(dp), intent(out) :: pener 17 | end subroutine get_pot_force 18 | end interface 19 | 20 | ! Set coordinates, velocity, acceleration and force at next time step to zero 21 | coord = 0d0 ; vel = 0d0 ; acc = 0d0 22 | 23 | ! Get new atom positions from Velocity Verlet Algorithm 24 | coord = coord_t0 + vel_t0 * dt + 0.5d0 * acc_t0 * dt ** 2 25 | do i = 1, natom 26 | ! Apply PBC to coordinates 27 | where ( coord(i,:) > boxl(:) ) 28 | coord(i,:) = coord(i,:) - boxl(:) 29 | elsewhere ( coord(i,:) < 0d0 ) 30 | coord(i,:) = coord(i,:) + boxl(:) 31 | end where 32 | end do 33 | 34 | ! Get Potential and force at new atom positions 35 | call get_pot_force(coord, force, pener) 36 | 37 | ! Calculate Acceleration and Velocity at current time step 38 | acc = force / mass 39 | vel = vel_t0 + 0.5d0 * ( acc + acc_t0 ) * dt 40 | 41 | end subroutine verlet 42 | 43 | subroutine get_pot_force(coord, force, pener) 44 | use precision 45 | use potential 46 | use param, only : natom, boxl 47 | implicit none 48 | real(dp), dimension(:,:), intent(in) :: coord 49 | real(dp), dimension(:,:), intent(out) :: force 50 | real(dp), intent(out) :: pener 51 | integer(ip) :: i, j 52 | real(dp) :: epot 53 | real(dp) :: r(3), f(3) 54 | 55 | pener = 0d0 56 | force = 0d0 57 | do i = 1, natom - 1 58 | do j = i + 1, natom 59 | r(:) = coord(i,:) - coord(j,:) 60 | ! minimum image criterion 61 | r = r - nint( r / boxl ) * boxl 62 | select case(pot) 63 | case('mp') 64 | call morse( r, f, epot ) 65 | case default 66 | call lennard_jones( r, f, epot ) 67 | end select 68 | pener = pener + epot 69 | force(i,:) = force(i,:) + f(:) 70 | force(j,:) = force(j,:) - f(:) 71 | end do 72 | end do 73 | 74 | end subroutine get_pot_force 75 | -------------------------------------------------------------------------------- /Exercise/MolDyn/code/verlet2.f90: -------------------------------------------------------------------------------- 1 | subroutine verlet(coord, coord_t0, vel, vel_t0, acc, acc_t0, force, pener) 2 | use precision 3 | use param, only : natom, mass, dt, boxl, pot 4 | implicit none 5 | real(dp), dimension(:,:), intent(in) :: coord_t0, vel_t0, acc_t0 6 | real(dp), dimension(:,:), intent(out) :: coord, vel, acc, force 7 | real(dp), intent(out) :: pener 8 | integer(ip) :: i 9 | 10 | ! Set coordinates, velocity, acceleration and force at next time step to zero 11 | coord = 0d0 ; vel = 0d0 ; acc = 0d0 12 | 13 | ! Get new atom positions from Velocity Verlet Algorithm 14 | coord = coord_t0 + vel_t0 * dt + 0.5d0 * acc_t0 * dt ** 2 15 | do i = 1, natom 16 | ! Apply PBC to coordinates 17 | where ( coord(i,:) > boxl(:) ) 18 | coord(i,:) = coord(i,:) - boxl(:) 19 | elsewhere ( coord(i,:) < 0d0 ) 20 | coord(i,:) = coord(i,:) + boxl(:) 21 | end where 22 | end do 23 | 24 | ! Get Potential and force at new atom positions 25 | call get_pot_force(coord, force, pener) 26 | 27 | ! Calculate Acceleration and Velocity at current time step 28 | acc = force / mass 29 | vel = vel_t0 + 0.5d0 * ( acc + acc_t0 ) * dt 30 | 31 | contains 32 | subroutine get_pot_force(coord, force, pener) 33 | use potential 34 | implicit none 35 | real(dp), dimension(:,:), intent(in) :: coord 36 | real(dp), dimension(:,:), intent(out) :: force 37 | real(dp), intent(out) :: pener 38 | integer(ip) :: i, j 39 | real(dp) :: epot 40 | real(dp) :: r(3), f(3) 41 | 42 | pener = 0d0 43 | force = 0d0 44 | do i = 1, natom - 1 45 | do j = i + 1, natom 46 | r(:) = coord(i,:) - coord(j,:) 47 | ! minimum image criterion 48 | r = r - nint( r / boxl ) * boxl 49 | select case(pot) 50 | case('mp') 51 | call morse( r, f, epot ) 52 | case default 53 | call lennard_jones( r, f, epot ) 54 | end select 55 | pener = pener + epot 56 | force(i,:) = force(i,:) + f(:) 57 | force(j,:) = force(j,:) - f(:) 58 | end do 59 | end do 60 | 61 | end subroutine get_pot_force 62 | 63 | end subroutine verlet 64 | 65 | -------------------------------------------------------------------------------- /Exercise/MolDyn/orig/Makefile: -------------------------------------------------------------------------------- 1 | ifeq ($(COMP),intel) 2 | FC=ifort 3 | FFLAGS= 4 | else ifeq ($(COMP),pgi) 5 | FC=pgif90 6 | FFLAGS= 7 | else ifeq ($(COMP),ibm) 8 | FC=xlf90 9 | FFLAGS= 10 | else 11 | FC=gfortran-mp-11 12 | FFLAGS=-g -pg 13 | endif 14 | 15 | OBJS = md-orig.o 16 | 17 | all : serial 18 | 19 | serial : $(OBJS) 20 | $(FC) $(FFLAGS) -o md $(OBJS) 21 | 22 | runmd : md 23 | ./md 24 | 25 | %.o :%.f90 26 | $(FC) $(FFLAGS) -c $< 27 | -------------------------------------------------------------------------------- /Exercise/MolDyn/orig/md-orig.f90: -------------------------------------------------------------------------------- 1 | program md 2 | 3 | ! Molecular Dynamics code for equilibration of Liquid Argon 4 | ! Author: Alex Pacheco 5 | ! Date : Jan 30, 2014 6 | 7 | ! This program simulates the equilibration of Liquid Argon 8 | ! starting from a FCC crystal structure using Lennard-Jones 9 | ! potential and velocity verlet algorithm 10 | 11 | ! This program should be the starting point to learn Modern 12 | ! Fortran. 13 | ! This program is hard coded for 4000 atoms equilibrated at 14 | ! 10K with a time step of 0.001 time units and 1000 time steps 15 | ! Lets assume that time units is femtoseconds, so total simulation 16 | ! time is 1 femtosecond 17 | 18 | ! Your objective for 19 | ! Modern Fortran Training: 20 | ! Modify this code using the Fortran Concepts learned 21 | ! 1. split code into smaller subunits, modules and/or subroutines 22 | ! 2. generalize, so that the following parameters can be read from a input file 23 | ! a. number of atoms or number of unit cells (you can't do both) 24 | ! b. equilibration temperature 25 | ! c. time step 26 | ! d. number of time steps i.e. how long in fs do you want the simulation to run 27 | ! e. read input parameters using namelists 28 | ! You will need to make use allocatable arrays. If you do not know why, review 29 | ! training slides or ask 30 | ! 3. Can you use Modern Fortran Concepts such as derived types? If yes, program it 31 | ! 4. If you use derived types, can you overload operators? If yes, program it 32 | ! OpenMP/OpenACC Training 33 | ! Lets assume that you have completed upto step 2 from Modern Fortran objective 34 | ! Parallelize the code for OpenMP/OpenACC (can also be done from step 3 or 4) 35 | ! 36 | ! There is no time limit for completing this exercise. This exercise is for measuring 37 | ! what have you got from the training. 38 | ! Solutions are present in the separate directories for comparison. 39 | ! Hints are provided whereever needed 40 | 41 | ! As an additional exercise, use other potentials such as Morse potential and 42 | ! read from input file which potential you want to use. 43 | ! All Lennard-Jones Potential parameters are set to 1. 44 | 45 | ! Disclaimer: 46 | ! This is code can be used as an introduction to molecular dynamics. There are lot more 47 | ! concepts in MD that are not covered here. 48 | 49 | ! Parameters: 50 | ! npartdim : number of unit cells, uniform in all directions. change to nonuniform if you desire 51 | ! natom : number of atoms 52 | ! nstep : nummber of simulation time steps 53 | ! tempK : equilibration temperature 54 | ! dt : simulation time steps 55 | ! boxl : length of simulation box in all directions 56 | ! alat : lattice constant for fcc crystal 57 | ! kb : boltzmann constant, set to 1 for simplicity 58 | ! mass : mass of Ar atom, set to 1 for simplicity 59 | ! epsilon, sigma : LJ parameters, set to 1 for simplicity 60 | ! rcell : FCC unit cell 61 | ! coord, coord_t0 : nuclear positions for each step, current and initial 62 | ! vel, vel_t0 : nuclear velocities for each step 63 | ! acc, acc_t0 : nuclear acceleration for each step 64 | ! force, pener : force and potential energy at current step 65 | ! avtemp : average temperature at current time step 66 | ! scale : scaling factor to set current temperature to desired temperature 67 | ! gasdev : Returns a normally distributed deviate with zero mean and unit variance from Numerical recipes 68 | 69 | implicit none 70 | ! Use either kind function or selected_real_kind 71 | integer,parameter :: npartdim = 10 72 | integer,parameter :: natom = 4.d0 * npartdim ** 3 73 | integer,parameter :: nstep = 1000 74 | real*8, parameter :: tempK = 10, dt = 1d-3 75 | integer :: istep 76 | real*8 :: boxl(3), alat 77 | integer :: n, i, j, k, l 78 | 79 | ! Can you use derived types for coord, vel, acc and force 80 | real*8 :: coord_t0(natom,3), coord(natom,3) 81 | real*8 :: vel_t0(natom,3), vel(natom,3) 82 | real*8 :: acc_t0(natom,3), acc(natom,3) 83 | real*8 :: force(natom,3), pener, mass 84 | 85 | real*8 :: vcm(3), r(3), rr, r2, r6, f 86 | real*8 :: avtemp, ke, kb, epsilon, sigma, rcell(3,4), scale 87 | real*8 :: gasdev 88 | 89 | alat = 2d0 ** (2d0/3d0) 90 | ! Hint: Array operations 91 | do i = 1, 3 92 | boxl(i) = npartdim * alat 93 | end do 94 | kb = 1.d0 95 | mass = 1.d0 96 | epsilon = 1.d0 97 | sigma = 1.d0 98 | 99 | ! Create FCC unit cell 100 | ! Hint: Simplify unit cell creation, maybe in variable declaration 101 | rcell(1,1) = 0d0 102 | rcell(2,1) = 0d0 103 | rcell(3,1) = 0d0 104 | rcell(1,2) = 0.5d0 * alat 105 | rcell(2,2) = 0.5d0 * alat 106 | rcell(3,2) = 0d0 107 | rcell(1,3) = 0d0 108 | rcell(2,3) = 0.5d0 * alat 109 | rcell(3,3) = 0.5d0 * alat 110 | rcell(1,4) = 0.5d0 * alat 111 | rcell(2,4) = 0d0 112 | rcell(3,4) = 0.5d0 * alat 113 | 114 | ! Set initial coordinates, velocity and acceleration to zero 115 | ! Hint: Use Array operations 116 | do i = 1, natom 117 | do j = 1, 3 118 | coord_t0(i,j) = 0d0 119 | vel_t0(i,j) = 0d0 120 | acc_t0(i,j) = 0d0 121 | end do 122 | end do 123 | 124 | !================================================= 125 | ! Initialize coordinates and random velocities 126 | !================================================= 127 | 128 | ! Put initialization in a seperate subroutine 129 | ! call initialize(coord_t0, vel_t0, ...) 130 | ! Create a FCC crystal structure 131 | n = 1 132 | do i = 1, npartdim 133 | do j = 1, npartdim 134 | do k = 1, npartdim 135 | do l = 1, 4 136 | coord_t0(n,1) = alat * dble(i - 1) + rcell(1,l) 137 | coord_t0(n,2) = alat * dble(j - 1) + rcell(2,l) 138 | coord_t0(n,3) = alat * dble(k - 1) + rcell(3,l) 139 | n = n + 1 140 | end do 141 | end do 142 | end do 143 | end do 144 | 145 | open(unit=1,file='atom.xyz',status='unknown') 146 | write(1,'(i8)') natom 147 | write(1,*) 148 | do i = 1, natom 149 | write(1,'(a2,2x,3f12.6)') 'Ar', coord_t0(i,1), coord_t0(i,2), coord_t0(i,3) 150 | end do 151 | close(1) 152 | 153 | ! Assign initial random velocities 154 | do i = 1, natom 155 | do j = 1, 3 156 | vel_t0(i,j) = gasdev() 157 | end do 158 | end do 159 | 160 | ! Set Linear Momentum to zero 161 | ! Hint: This is needed again below so put in a subroutine 162 | ! call linearmom(vel_t0, ...) 163 | ! First get center of mass velocity 164 | vcm = 0d0 165 | do i = 1, natom 166 | do j = 1, 3 167 | vcm(j) = vcm(j) + vel_t0(i,j)/natom 168 | end do 169 | end do 170 | ! Now remove center of mass velocity from all atoms 171 | do i = 1, natom 172 | do j = 1, 3 173 | vel_t0(i,j) = vel_t0(i,j) - vcm(j) 174 | end do 175 | end do 176 | 177 | ! scale velocity to desired tempearture 178 | ! call get_temp( vel_t0, ... ) will be needed again 179 | ke = 0d0 180 | do i = 1, natom 181 | do j = 1, 3 182 | ! Hint: Use dot_product function to calculate vel**2 183 | ! If using derived types, overload dot_product function 184 | ke = ke + mass * vel_t0(i,j)**2 185 | end do 186 | end do 187 | avtemp = mass * ke / ( 3d0 * kb * ( natom - 1)) 188 | 189 | print '(a,2x,1pe15.8)', 'Initial Average Temperature: ', avtemp 190 | 191 | ! scale initial velocity to desired temperature 192 | scale = sqrt( tempK / avtemp ) 193 | ke = 0d0 194 | do i = 1, natom 195 | do j = 1, 3 196 | vel_t0(i,j) = vel_t0(i,j) * scale 197 | ! See Hint above on dot_product and function overloading 198 | ke = ke + mass * vel_t0(i,j)**2 199 | end do 200 | end do 201 | avtemp = mass * ke / ( 3d0 * kb * ( natom - 1)) 202 | print '(a,2x,1pe15.8)', 'Initial Scaled Average Temperature: ', avtemp 203 | 204 | 205 | !================================================= 206 | ! MD Simulation 207 | !================================================= 208 | 209 | do istep = 1, nstep 210 | 211 | ! Set coordinates, velocity, acceleration and force at next time step to zero 212 | ! Hint: Use Array properties 213 | do i = 1, natom 214 | do j = 1, 3 215 | coord(i,j) = 0d0 216 | vel(i,j) = 0d0 217 | acc(i,j) = 0d0 218 | force(i,j) = 0d0 219 | end do 220 | end do 221 | pener = 0d0 222 | 223 | ! Get new atom positions from Velocity Verlet Algorithm 224 | ! Hint: create a subroutine to do velocity verlet 225 | ! Hint: OpenMP/OpenACC 226 | do i = 1, natom 227 | do j = 1, 3 228 | coord(i,j) = coord_t0(i,j) + vel_t0(i,j) * dt + 0.5d0 * acc_t0(i,j) * dt ** 2 229 | ! Apply PBC to coordinates 230 | if ( coord(i,j) > boxl(j) ) then 231 | coord(i,j) = coord(i,j) - boxl(j) 232 | else if ( coord(i,j) < 0d0 ) then 233 | coord(i,j) = coord(i,j) + boxl(j) 234 | endif 235 | end do 236 | end do 237 | 238 | ! Get force at new atom positions 239 | ! Using Lennard Jones Potential 240 | ! Hint: you might want to also seperate the potential and force calculation into a separate subroutine 241 | ! this will be useful if you want to use other potentials 242 | 243 | do i = 1, natom - 1 244 | do j = i + 1, natom 245 | do k = 1, 3 246 | r(k) = coord(i,k) - coord(j,k) 247 | ! minimum image criterion 248 | ! interaction of an atom with another atom or its image within the unit cell 249 | r(k) = r(k) - nint( r(k) / boxl(k) ) * boxl(k) 250 | end do 251 | ! Hint: Use dot_product 252 | rr = r(1) ** 2 + r(2) ** 2 + r(3) ** 2 253 | r2 = 1.d0 / rr 254 | r6 = r2 ** 3 255 | ! Lennard Jones Potential 256 | ! V = 4 * epsilon * [ (sigma/r)**12 - (sigma/r)**6 ] 257 | ! = 4 * epsilon * (sigma/r)**6 * [ (sigma/r)**2 - 1 ] 258 | ! = 4 * r**(-6) * [ r**(-2) - 1 ] for epsilon=sigma=1 259 | ! F_i = 48 * epsilon * (sigma/r)**6 * (1/r**2) * [ ( sigma/r)** 6 - 0.5 ] * i where i = x,y,z 260 | ! = 48 * r**(-8) * [ r**(-6) - 0.5 ] * i for epsilon=sigma=1 261 | pener = pener + 4d0 * r6 * ( r6 - 1.d0 ) 262 | f = 48d0 * r2 * r6 * ( r6 - 0.5d0 ) 263 | do k = 1, 3 264 | ! use array function to obtain r(k)*f 265 | force(i,k) = force(i,k) + r(k) * f 266 | force(j,k) = force(j,k) - r(k) * f 267 | end do 268 | end do 269 | end do 270 | 271 | ! Calculate Acceleration and Velocity at current time step 272 | do i = 1, natom 273 | do j = 1, 3 274 | acc(i,j) = force(i,j) / mass 275 | vel(i,j) = vel_t0(i,j) + 0.5d0 * (acc(i,j) + acc_t0(i,j)) * dt 276 | end do 277 | end do 278 | 279 | ! Set Linear Momentum to zero 280 | ! First get center of mass velocity 281 | ! See Hint above on Linear Momentum 282 | vcm = 0d0 283 | do i = 1, natom 284 | do j = 1, 3 285 | vcm(j) = vcm(j) + vel(i,j)/natom 286 | end do 287 | end do 288 | ! Now remove center of mass velocity from all atoms 289 | do i = 1, natom 290 | do j = 1, 3 291 | vel(i,j) = vel(i,j) - vcm(j) 292 | end do 293 | end do 294 | 295 | ! compute average temperature 296 | ! See Hint above on calculating average temperature 297 | ke = 0d0 298 | do i = 1, natom 299 | do j = 1, 3 300 | ke = ke + vel(i,j) ** 2 301 | end do 302 | end do 303 | avtemp = mass * ke / ( 3d0 * kb * ( natom - 1)) 304 | 305 | print '(a,2x,i8,2x,1pe15.8,1x,1pe15.8)', 'Average Temperature: ' , istep, avtemp, pener 306 | 307 | scale = sqrt ( tempk/ avtemp ) 308 | ! Reset for next time step 309 | ! Hint: Use Array properties 310 | do i = 1, natom 311 | do j = 1, 3 312 | acc_t0(i,j) = acc(i,j) 313 | coord_t0(i,j) = coord(i,j) 314 | ! scale velocity to desired temperature 315 | vel_t0(i,j) = vel(i,j) * scale 316 | end do 317 | end do 318 | 319 | ! Write current coordinates to xyz file for visualization 320 | open(unit=1,file='atom.xyz',position='append') 321 | write(1,'(i8)') natom 322 | write(1,*) 323 | do i = 1, natom 324 | write(1,'(a2,2x,3f12.6)') 'Ar', coord_t0(i,1), coord_t0(i,2), coord_t0(i,3) 325 | end do 326 | close(1) 327 | end do 328 | 329 | end program md 330 | 331 | double precision function gasdev() 332 | implicit none 333 | real*8 :: v1, v2, fac, rsq 334 | real*8, save :: gset 335 | logical, save :: available = .false. 336 | 337 | if (available) then 338 | gasdev = gset 339 | available = .false. 340 | else 341 | do 342 | call random_number(v1) 343 | call random_number(v2) 344 | v1 = 2.d0 * v1 - 1.d0 345 | v2 = 2.d0 * v2 - 1.d0 346 | rsq = v1**2 + v2**2 347 | if ( rsq > 0.d0 .and. rsq < 1.d0 ) exit 348 | end do 349 | fac = sqrt(-2.d0 * log(rsq) / rsq) 350 | gasdev = v1 * fac 351 | gset = v2 * fac 352 | available = .true. 353 | end if 354 | end function gasdev 355 | 356 | 357 | -------------------------------------------------------------------------------- /Exercise/MolDyn/orig/md.inp: -------------------------------------------------------------------------------- 1 | &moldyn 2 | npartdim = 10 3 | tempK = 10d0 4 | nstep = 1000 5 | dt = 1d-3 6 | / 7 | -------------------------------------------------------------------------------- /Exercise/Solution/circle_area.f90: -------------------------------------------------------------------------------- 1 | program circ_area 2 | 3 | implicit none 4 | integer, parameter :: dp = selected_real_kind(15) 5 | real(dp) :: radius, area, circum 6 | real(dp), parameter :: pi = atan(1.d0) * 4.d0 7 | 8 | print *, 'Enter the radius of the circle' 9 | read *, radius 10 | 11 | area = pi * radius ** 2 12 | circum = 2.d0 * pi * radius 13 | 14 | print *, "Area of Circle with radius", radius , " is ", area 15 | print *, "It's circumference is ", circum./a 16 | 17 | end program circ_area 18 | -------------------------------------------------------------------------------- /Exercise/Solution/factorial.f90: -------------------------------------------------------------------------------- 1 | program fact 2 | 3 | implicit none 4 | integer :: i 5 | print *, 'enter integer whose factorial you want to calculate' 6 | read *, i 7 | 8 | print '(i5,a,i20)', i, '! = ', factorial(i) 9 | 10 | contains 11 | recursive function factorial(i) result(i_fact) 12 | integer, intent(in) :: i 13 | integer :: i_fact 14 | 15 | if ( i > 0 ) then 16 | i_fact = i * factorial(i - 1) 17 | else 18 | i_fact = 1 19 | end if 20 | end function factorial 21 | 22 | end program fact 23 | -------------------------------------------------------------------------------- /Exercise/Solution/factorial1.f90: -------------------------------------------------------------------------------- 1 | program factorial1 2 | 3 | implicit none 4 | integer, parameter :: dp = selected_int_kind(15) 5 | integer(dp) :: i,n,factorial 6 | 7 | print *, 'Enter an integer < 15 ' 8 | read *, n 9 | 10 | factorial = n 11 | do i = n-1,1,-1 12 | factorial = factorial * i 13 | end do 14 | write(*,'(i4,a,i15)') n,'!=',factorial 15 | 16 | end program factorial1 17 | 18 | -------------------------------------------------------------------------------- /Exercise/Solution/factorial2.f90: -------------------------------------------------------------------------------- 1 | program factorial2 2 | 3 | implicit none 4 | integer, parameter :: & 5 | dp = selected_int_kind(15) 6 | integer(dp) :: i,n,start,factorial 7 | 8 | print *, 'Enter an integer < 15 ' 9 | read *, n 10 | 11 | if ( (n/2)*2 == n ) then 12 | start = 2 ! n is even 13 | else 14 | start = 1 ! n is odd 15 | endif 16 | factorial = 1_dp 17 | do i = start,n,2 18 | factorial = factorial * i 19 | end do 20 | write(*,'(i4,a,i15)') n,'!!=',factorial 21 | 22 | end program factorial2 23 | 24 | -------------------------------------------------------------------------------- /Exercise/Solution/fibonacci.f90: -------------------------------------------------------------------------------- 1 | program fibonacci 2 | 3 | implicit none 4 | integer, parameter :: dp = selected_real_kind(15) 5 | integer :: i, n, fib0, fib1, fib 6 | 7 | print *, "Enter the Fibonacci number" 8 | read *, n 9 | 10 | fib0 = 0 11 | fib1 = 1 12 | 13 | print *, "n, f(n)" 14 | ! 0 + 1 + 2 + ... + n 15 | 16 | 17 | do i = 2, n 18 | fib = fib1 + fib0 19 | print *, i, fib 20 | fib0 = fib1 21 | fib1 = fib 22 | end do 23 | 24 | end program fibonacci 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Exercise/Solution/fibonacci.mod: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/Exercise/Solution/fibonacci.mod -------------------------------------------------------------------------------- /Exercise/Solution/fibonacci_rec.f90: -------------------------------------------------------------------------------- 1 | module fibonacci 2 | 3 | contains 4 | recursive function fibr(i) result(fib) 5 | implicit none 6 | integer, intent(in) :: i 7 | integer :: fib 8 | 9 | select case(i) 10 | case(0) 11 | fib = 0 12 | case(1) 13 | fib = 1 14 | case default 15 | fib = fibr(i-1) + fibr(i-2) 16 | end select 17 | end function fibr 18 | 19 | 20 | end module fibonacci 21 | 22 | program fibrecur 23 | 24 | use fibonacci 25 | 26 | implicit none 27 | integer, parameter :: dp = selected_real_kind(15) 28 | integer :: i, n 29 | 30 | 31 | print *, "Enter the Fibonacci number" 32 | read *, n 33 | 34 | print *, "n, f(n)" 35 | 36 | do i = 0, n 37 | print *, i, fibr(i) 38 | end do 39 | 40 | end program fibrecur 41 | -------------------------------------------------------------------------------- /Exercise/Solution/gcdlcm.f90: -------------------------------------------------------------------------------- 1 | program gcd_lcm 2 | 3 | implicit none 4 | integer :: a, b 5 | integer :: gcd, lcm, u, v, t 6 | 7 | print *, "Program to calculate GCD and LCM of two integers" 8 | print *, "Enter two integers" 9 | read *, a, b 10 | 11 | u = a ; v = b 12 | 13 | do !while ( v/= 0 ) 14 | t = v 15 | v = mod(u,v) 16 | u = t 17 | if ( v == 0 ) exit 18 | end do 19 | 20 | gcd = abs(u) 21 | lcm = a*b/gcd 22 | 23 | print *, "GCD of ", a, " and ", b, " is ", gcd 24 | print *, "LCM of ", a, " and ", b, " is ", lcm 25 | 26 | end program gcd_lcm 27 | -------------------------------------------------------------------------------- /Exercise/Solution/quad_roots.f90: -------------------------------------------------------------------------------- 1 | program roots_of_quad_eqn 2 | 3 | implicit none 4 | 5 | real(kind=8) :: a,b,c 6 | real(kind=8) :: roots(2),d 7 | 8 | print *, '============================================' 9 | print *, ' Program to solve a quadratic equation' 10 | print *, ' ax^2 + bx + c = 0 ' 11 | print *, ' If d = b^2 - 4ac >= 0 ' 12 | print *, ' then solutions are: ' 13 | print *, ' (-b +/- sqrt(d) )/2a ' 14 | print *, '============================================' 15 | 16 | ! read in coefficients a, b, and c 17 | write(*,*) 'Enter coefficients a,b and c' 18 | read(*,*) a,b,c 19 | write(*,*) 20 | write(*,*) ' Quadratic equation to solve is: ' 21 | write(*,fmt='(a,f6.3,a,f6.3,a,f6.3,a)') ' ',a,'x^2 + ',b,'x + ',c,' = 0' 22 | write(*,*) 23 | 24 | outer: if ( a == 0d0 ) then 25 | middle: if ( b == 0.d0 ) then 26 | inner: if ( c == 0.d0 ) then 27 | write(*,*) 'Input equation is 0 = 0' 28 | else 29 | write(*,*) 'Equation is unsolvable' 30 | write(*,fmt='(a,f5.3,a)') ' ',c,' = 0' 31 | end if inner 32 | else 33 | write(*,*) 'Input equation is a Linear equation with ' 34 | write(*,fmt='(a,f6.3)') ' Solution: ', -c/b 35 | end if middle 36 | else 37 | d = b*b - 4d0*a*c 38 | dis0: if ( d > 0d0 ) then 39 | d = sqrt(d) 40 | roots(1) = -( b + d)/(2d0*a) 41 | roots(2) = -( b - d)/(2d0*a) 42 | write(*,fmt='(a,2f12.6)') 'Solution: ', roots(1),roots(2) 43 | else if ( d == 0.d0 ) then 44 | write(*,fmt='(a,f12.6)') 'Both solutions are equal: ', -b/(2d0*a) 45 | else 46 | write(*,*) 'Solution is not real' 47 | d = sqrt(abs(d)) 48 | roots(1) = d/(2d0*a) 49 | roots(2) = -d/(2d0*a) 50 | write(*,fmt='(a,ss,f6.3,sp,f6.3,a2,a,ss,f6.3,sp,f6.3,a2)') & 51 | ' (',-b/(2d0*a),sign(roots(1),roots(1)),'i)',' and (',-b/(2d0*a),sign(roots(2),roots(2)),'i)' 52 | end if dis0 53 | end if outer 54 | 55 | end program roots_of_quad_eqn 56 | -------------------------------------------------------------------------------- /Fortran.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/Fortran.pdf -------------------------------------------------------------------------------- /Fortran1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/Fortran1.pdf -------------------------------------------------------------------------------- /Fortran2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/Fortran2.pdf -------------------------------------------------------------------------------- /Intro2Fortran.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/Intro2Fortran.pdf -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Attribution-NonCommercial-ShareAlike 4.0 International 2 | 3 | ======================================================================= 4 | 5 | Creative Commons Corporation ("Creative Commons") is not a law firm and 6 | does not provide legal services or legal advice. Distribution of 7 | Creative Commons public licenses does not create a lawyer-client or 8 | other relationship. Creative Commons makes its licenses and related 9 | information available on an "as-is" basis. Creative Commons gives no 10 | warranties regarding its licenses, any material licensed under their 11 | terms and conditions, or any related information. Creative Commons 12 | disclaims all liability for damages resulting from their use to the 13 | fullest extent possible. 14 | 15 | Using Creative Commons Public Licenses 16 | 17 | Creative Commons public licenses provide a standard set of terms and 18 | conditions that creators and other rights holders may use to share 19 | original works of authorship and other material subject to copyright 20 | and certain other rights specified in the public license below. The 21 | following considerations are for informational purposes only, are not 22 | exhaustive, and do not form part of our licenses. 23 | 24 | Considerations for licensors: Our public licenses are 25 | intended for use by those authorized to give the public 26 | permission to use material in ways otherwise restricted by 27 | copyright and certain other rights. Our licenses are 28 | irrevocable. Licensors should read and understand the terms 29 | and conditions of the license they choose before applying it. 30 | Licensors should also secure all rights necessary before 31 | applying our licenses so that the public can reuse the 32 | material as expected. Licensors should clearly mark any 33 | material not subject to the license. This includes other CC- 34 | licensed material, or material used under an exception or 35 | limitation to copyright. More considerations for licensors: 36 | wiki.creativecommons.org/Considerations_for_licensors 37 | 38 | Considerations for the public: By using one of our public 39 | licenses, a licensor grants the public permission to use the 40 | licensed material under specified terms and conditions. If 41 | the licensor's permission is not necessary for any reason--for 42 | example, because of any applicable exception or limitation to 43 | copyright--then that use is not regulated by the license. Our 44 | licenses grant only permissions under copyright and certain 45 | other rights that a licensor has authority to grant. Use of 46 | the licensed material may still be restricted for other 47 | reasons, including because others have copyright or other 48 | rights in the material. A licensor may make special requests, 49 | such as asking that all changes be marked or described. 50 | Although not required by our licenses, you are encouraged to 51 | respect those requests where reasonable. More considerations 52 | for the public: 53 | wiki.creativecommons.org/Considerations_for_licensees 54 | 55 | ======================================================================= 56 | 57 | Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International 58 | Public License 59 | 60 | By exercising the Licensed Rights (defined below), You accept and agree 61 | to be bound by the terms and conditions of this Creative Commons 62 | Attribution-NonCommercial-ShareAlike 4.0 International Public License 63 | ("Public License"). To the extent this Public License may be 64 | interpreted as a contract, You are granted the Licensed Rights in 65 | consideration of Your acceptance of these terms and conditions, and the 66 | Licensor grants You such rights in consideration of benefits the 67 | Licensor receives from making the Licensed Material available under 68 | these terms and conditions. 69 | 70 | 71 | Section 1 -- Definitions. 72 | 73 | a. Adapted Material means material subject to Copyright and Similar 74 | Rights that is derived from or based upon the Licensed Material 75 | and in which the Licensed Material is translated, altered, 76 | arranged, transformed, or otherwise modified in a manner requiring 77 | permission under the Copyright and Similar Rights held by the 78 | Licensor. For purposes of this Public License, where the Licensed 79 | Material is a musical work, performance, or sound recording, 80 | Adapted Material is always produced where the Licensed Material is 81 | synched in timed relation with a moving image. 82 | 83 | b. Adapter's License means the license You apply to Your Copyright 84 | and Similar Rights in Your contributions to Adapted Material in 85 | accordance with the terms and conditions of this Public License. 86 | 87 | c. BY-NC-SA Compatible License means a license listed at 88 | creativecommons.org/compatiblelicenses, approved by Creative 89 | Commons as essentially the equivalent of this Public License. 90 | 91 | d. Copyright and Similar Rights means copyright and/or similar rights 92 | closely related to copyright including, without limitation, 93 | performance, broadcast, sound recording, and Sui Generis Database 94 | Rights, without regard to how the rights are labeled or 95 | categorized. For purposes of this Public License, the rights 96 | specified in Section 2(b)(1)-(2) are not Copyright and Similar 97 | Rights. 98 | 99 | e. Effective Technological Measures means those measures that, in the 100 | absence of proper authority, may not be circumvented under laws 101 | fulfilling obligations under Article 11 of the WIPO Copyright 102 | Treaty adopted on December 20, 1996, and/or similar international 103 | agreements. 104 | 105 | f. Exceptions and Limitations means fair use, fair dealing, and/or 106 | any other exception or limitation to Copyright and Similar Rights 107 | that applies to Your use of the Licensed Material. 108 | 109 | g. License Elements means the license attributes listed in the name 110 | of a Creative Commons Public License. The License Elements of this 111 | Public License are Attribution, NonCommercial, and ShareAlike. 112 | 113 | h. Licensed Material means the artistic or literary work, database, 114 | or other material to which the Licensor applied this Public 115 | License. 116 | 117 | i. Licensed Rights means the rights granted to You subject to the 118 | terms and conditions of this Public License, which are limited to 119 | all Copyright and Similar Rights that apply to Your use of the 120 | Licensed Material and that the Licensor has authority to license. 121 | 122 | j. Licensor means the individual(s) or entity(ies) granting rights 123 | under this Public License. 124 | 125 | k. NonCommercial means not primarily intended for or directed towards 126 | commercial advantage or monetary compensation. For purposes of 127 | this Public License, the exchange of the Licensed Material for 128 | other material subject to Copyright and Similar Rights by digital 129 | file-sharing or similar means is NonCommercial provided there is 130 | no payment of monetary compensation in connection with the 131 | exchange. 132 | 133 | l. Share means to provide material to the public by any means or 134 | process that requires permission under the Licensed Rights, such 135 | as reproduction, public display, public performance, distribution, 136 | dissemination, communication, or importation, and to make material 137 | available to the public including in ways that members of the 138 | public may access the material from a place and at a time 139 | individually chosen by them. 140 | 141 | m. Sui Generis Database Rights means rights other than copyright 142 | resulting from Directive 96/9/EC of the European Parliament and of 143 | the Council of 11 March 1996 on the legal protection of databases, 144 | as amended and/or succeeded, as well as other essentially 145 | equivalent rights anywhere in the world. 146 | 147 | n. You means the individual or entity exercising the Licensed Rights 148 | under this Public License. Your has a corresponding meaning. 149 | 150 | 151 | Section 2 -- Scope. 152 | 153 | a. License grant. 154 | 155 | 1. Subject to the terms and conditions of this Public License, 156 | the Licensor hereby grants You a worldwide, royalty-free, 157 | non-sublicensable, non-exclusive, irrevocable license to 158 | exercise the Licensed Rights in the Licensed Material to: 159 | 160 | a. reproduce and Share the Licensed Material, in whole or 161 | in part, for NonCommercial purposes only; and 162 | 163 | b. produce, reproduce, and Share Adapted Material for 164 | NonCommercial purposes only. 165 | 166 | 2. Exceptions and Limitations. For the avoidance of doubt, where 167 | Exceptions and Limitations apply to Your use, this Public 168 | License does not apply, and You do not need to comply with 169 | its terms and conditions. 170 | 171 | 3. Term. The term of this Public License is specified in Section 172 | 6(a). 173 | 174 | 4. Media and formats; technical modifications allowed. The 175 | Licensor authorizes You to exercise the Licensed Rights in 176 | all media and formats whether now known or hereafter created, 177 | and to make technical modifications necessary to do so. The 178 | Licensor waives and/or agrees not to assert any right or 179 | authority to forbid You from making technical modifications 180 | necessary to exercise the Licensed Rights, including 181 | technical modifications necessary to circumvent Effective 182 | Technological Measures. For purposes of this Public License, 183 | simply making modifications authorized by this Section 2(a) 184 | (4) never produces Adapted Material. 185 | 186 | 5. Downstream recipients. 187 | 188 | a. Offer from the Licensor -- Licensed Material. Every 189 | recipient of the Licensed Material automatically 190 | receives an offer from the Licensor to exercise the 191 | Licensed Rights under the terms and conditions of this 192 | Public License. 193 | 194 | b. Additional offer from the Licensor -- Adapted Material. 195 | Every recipient of Adapted Material from You 196 | automatically receives an offer from the Licensor to 197 | exercise the Licensed Rights in the Adapted Material 198 | under the conditions of the Adapter's License You apply. 199 | 200 | c. No downstream restrictions. You may not offer or impose 201 | any additional or different terms or conditions on, or 202 | apply any Effective Technological Measures to, the 203 | Licensed Material if doing so restricts exercise of the 204 | Licensed Rights by any recipient of the Licensed 205 | Material. 206 | 207 | 6. No endorsement. Nothing in this Public License constitutes or 208 | may be construed as permission to assert or imply that You 209 | are, or that Your use of the Licensed Material is, connected 210 | with, or sponsored, endorsed, or granted official status by, 211 | the Licensor or others designated to receive attribution as 212 | provided in Section 3(a)(1)(A)(i). 213 | 214 | b. Other rights. 215 | 216 | 1. Moral rights, such as the right of integrity, are not 217 | licensed under this Public License, nor are publicity, 218 | privacy, and/or other similar personality rights; however, to 219 | the extent possible, the Licensor waives and/or agrees not to 220 | assert any such rights held by the Licensor to the limited 221 | extent necessary to allow You to exercise the Licensed 222 | Rights, but not otherwise. 223 | 224 | 2. Patent and trademark rights are not licensed under this 225 | Public License. 226 | 227 | 3. To the extent possible, the Licensor waives any right to 228 | collect royalties from You for the exercise of the Licensed 229 | Rights, whether directly or through a collecting society 230 | under any voluntary or waivable statutory or compulsory 231 | licensing scheme. In all other cases the Licensor expressly 232 | reserves any right to collect such royalties, including when 233 | the Licensed Material is used other than for NonCommercial 234 | purposes. 235 | 236 | 237 | Section 3 -- License Conditions. 238 | 239 | Your exercise of the Licensed Rights is expressly made subject to the 240 | following conditions. 241 | 242 | a. Attribution. 243 | 244 | 1. If You Share the Licensed Material (including in modified 245 | form), You must: 246 | 247 | a. retain the following if it is supplied by the Licensor 248 | with the Licensed Material: 249 | 250 | i. identification of the creator(s) of the Licensed 251 | Material and any others designated to receive 252 | attribution, in any reasonable manner requested by 253 | the Licensor (including by pseudonym if 254 | designated); 255 | 256 | ii. a copyright notice; 257 | 258 | iii. a notice that refers to this Public License; 259 | 260 | iv. a notice that refers to the disclaimer of 261 | warranties; 262 | 263 | v. a URI or hyperlink to the Licensed Material to the 264 | extent reasonably practicable; 265 | 266 | b. indicate if You modified the Licensed Material and 267 | retain an indication of any previous modifications; and 268 | 269 | c. indicate the Licensed Material is licensed under this 270 | Public License, and include the text of, or the URI or 271 | hyperlink to, this Public License. 272 | 273 | 2. You may satisfy the conditions in Section 3(a)(1) in any 274 | reasonable manner based on the medium, means, and context in 275 | which You Share the Licensed Material. For example, it may be 276 | reasonable to satisfy the conditions by providing a URI or 277 | hyperlink to a resource that includes the required 278 | information. 279 | 3. If requested by the Licensor, You must remove any of the 280 | information required by Section 3(a)(1)(A) to the extent 281 | reasonably practicable. 282 | 283 | b. ShareAlike. 284 | 285 | In addition to the conditions in Section 3(a), if You Share 286 | Adapted Material You produce, the following conditions also apply. 287 | 288 | 1. The Adapter's License You apply must be a Creative Commons 289 | license with the same License Elements, this version or 290 | later, or a BY-NC-SA Compatible License. 291 | 292 | 2. You must include the text of, or the URI or hyperlink to, the 293 | Adapter's License You apply. You may satisfy this condition 294 | in any reasonable manner based on the medium, means, and 295 | context in which You Share Adapted Material. 296 | 297 | 3. You may not offer or impose any additional or different terms 298 | or conditions on, or apply any Effective Technological 299 | Measures to, Adapted Material that restrict exercise of the 300 | rights granted under the Adapter's License You apply. 301 | 302 | 303 | Section 4 -- Sui Generis Database Rights. 304 | 305 | Where the Licensed Rights include Sui Generis Database Rights that 306 | apply to Your use of the Licensed Material: 307 | 308 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right 309 | to extract, reuse, reproduce, and Share all or a substantial 310 | portion of the contents of the database for NonCommercial purposes 311 | only; 312 | 313 | b. if You include all or a substantial portion of the database 314 | contents in a database in which You have Sui Generis Database 315 | Rights, then the database in which You have Sui Generis Database 316 | Rights (but not its individual contents) is Adapted Material, 317 | including for purposes of Section 3(b); and 318 | 319 | c. You must comply with the conditions in Section 3(a) if You Share 320 | all or a substantial portion of the contents of the database. 321 | 322 | For the avoidance of doubt, this Section 4 supplements and does not 323 | replace Your obligations under this Public License where the Licensed 324 | Rights include other Copyright and Similar Rights. 325 | 326 | 327 | Section 5 -- Disclaimer of Warranties and Limitation of Liability. 328 | 329 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE 330 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS 331 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF 332 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, 333 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, 334 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR 335 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, 336 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT 337 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT 338 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. 339 | 340 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE 341 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, 342 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, 343 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, 344 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR 345 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN 346 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR 347 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR 348 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. 349 | 350 | c. The disclaimer of warranties and limitation of liability provided 351 | above shall be interpreted in a manner that, to the extent 352 | possible, most closely approximates an absolute disclaimer and 353 | waiver of all liability. 354 | 355 | 356 | Section 6 -- Term and Termination. 357 | 358 | a. This Public License applies for the term of the Copyright and 359 | Similar Rights licensed here. However, if You fail to comply with 360 | this Public License, then Your rights under this Public License 361 | terminate automatically. 362 | 363 | b. Where Your right to use the Licensed Material has terminated under 364 | Section 6(a), it reinstates: 365 | 366 | 1. automatically as of the date the violation is cured, provided 367 | it is cured within 30 days of Your discovery of the 368 | violation; or 369 | 370 | 2. upon express reinstatement by the Licensor. 371 | 372 | For the avoidance of doubt, this Section 6(b) does not affect any 373 | right the Licensor may have to seek remedies for Your violations 374 | of this Public License. 375 | 376 | c. For the avoidance of doubt, the Licensor may also offer the 377 | Licensed Material under separate terms or conditions or stop 378 | distributing the Licensed Material at any time; however, doing so 379 | will not terminate this Public License. 380 | 381 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public 382 | License. 383 | 384 | 385 | Section 7 -- Other Terms and Conditions. 386 | 387 | a. The Licensor shall not be bound by any additional or different 388 | terms or conditions communicated by You unless expressly agreed. 389 | 390 | b. Any arrangements, understandings, or agreements regarding the 391 | Licensed Material not stated herein are separate from and 392 | independent of the terms and conditions of this Public License. 393 | 394 | 395 | Section 8 -- Interpretation. 396 | 397 | a. For the avoidance of doubt, this Public License does not, and 398 | shall not be interpreted to, reduce, limit, restrict, or impose 399 | conditions on any use of the Licensed Material that could lawfully 400 | be made without permission under this Public License. 401 | 402 | b. To the extent possible, if any provision of this Public License is 403 | deemed unenforceable, it shall be automatically reformed to the 404 | minimum extent necessary to make it enforceable. If the provision 405 | cannot be reformed, it shall be severed from this Public License 406 | without affecting the enforceability of the remaining terms and 407 | conditions. 408 | 409 | c. No term or condition of this Public License will be waived and no 410 | failure to comply consented to unless expressly agreed to by the 411 | Licensor. 412 | 413 | d. Nothing in this Public License constitutes or may be interpreted 414 | as a limitation upon, or waiver of, any privileges and immunities 415 | that apply to the Licensor or You, including from the legal 416 | processes of any jurisdiction or authority. 417 | 418 | ======================================================================= 419 | 420 | Creative Commons is not a party to its public 421 | licenses. Notwithstanding, Creative Commons may elect to apply one of 422 | its public licenses to material it publishes and in those instances 423 | will be considered the “Licensor.” The text of the Creative Commons 424 | public licenses is dedicated to the public domain under the CC0 Public 425 | Domain Dedication. Except for the limited purpose of indicating that 426 | material is shared under a Creative Commons public license or as 427 | otherwise permitted by the Creative Commons policies published at 428 | creativecommons.org/policies, Creative Commons does not authorize the 429 | use of the trademark "Creative Commons" or any other trademark or logo 430 | of Creative Commons without its prior written consent including, 431 | without limitation, in connection with any unauthorized modifications 432 | to any of its public licenses or any other arrangements, 433 | understandings, or agreements concerning use of licensed material. For 434 | the avoidance of doubt, this paragraph does not form part of the 435 | public licenses. 436 | 437 | Creative Commons may be contacted at creativecommons.org. 438 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | TEX = pdflatex 2 | 3 | .DEFAULT = all 4 | .PHONY = all view 5 | 6 | all : $(FILE).pdf 7 | 8 | view : $(FILE).pdf 9 | open $(FILE).pdf 10 | 11 | $(FILE).pdf : $(FILE).tex 12 | $(TEX) $(FILE).tex 13 | $(TEX) $(FILE).tex 14 | clean: 15 | rm -f $(FILE).aux $(FILE).log $(FILE).nav $(FILE).out 16 | rm -f $(FILE).pdf $(FILE).snm $(FILE).toc $(FILE).vrb 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Modern Fortran 2 | Repository for storing my presentation, TeX and PDF files for HPC 3 | Training on Fortran. 4 | 5 | This tutorial describes programming in Fortran 90/95 for beginners 6 | ( [TeX](Fortran1.tex) | [PDF](Fortran2.pdf) ) and 7 | intermediate ( [TeX](Fortran2.tex) | 8 | [PDF](Fortran2.pdf) ) users. 9 | 10 | * LONI Workshop at LSU on Feb. 14, 2012 11 | * HPC Training Series at LSU on Feb. 19, and Mar. 12, 2014 12 | * HPC Programming Workshop at Lehigh University on June 1-2, 2015, and June 28-30, 2021 13 | 14 | # Contributer 15 | Alex Pacheco 16 | Manager, Research Computing, Lehigh University (Sep. 2014 - Present) 17 | HPC User Services Consultant, LSU & LONI (Aug. 2010 - Sep. 2014) 18 | 19 | ------------------------------------------------------------------------------ 20 | 21 | 22 | Shield: [![CC BY-NC-SA 4.0][cc-by-nc-sa-shield]][cc-by-nc-sa] 23 | 24 | This work is licensed under a 25 | [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License][cc-by-nc-sa]. 26 | 27 | [![CC BY-NC-SA 4.0][cc-by-nc-sa-image]][cc-by-nc-sa] 28 | 29 | [cc-by-nc-sa]: http://creativecommons.org/licenses/by-nc-sa/4.0/ 30 | [cc-by-nc-sa-image]: https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png 31 | [cc-by-nc-sa-shield]: https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg 32 | 33 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-minimal -------------------------------------------------------------------------------- /beamerouterthemehawk.sty: -------------------------------------------------------------------------------- 1 | % Style file for LSU outer theme 2 | % Modified by Alex Pacheco, High Performance Computing, Louisiana State University. 3 | % wget http://www.cct.lsu.edu/~apacheco/tutorials/TeX/beamerouterthemetigers.sty 4 | % Required by beamerthemeLSU.sty 5 | % wget http://www.cct.lsu.edu/~apacheco/tutorials/TeX/beamerthemeLSU.sty 6 | % Dated: Oct 18 2011 7 | % Email for comments or modifications. 8 | % This theme places two logos at the bottom: 9 | % Main logo at the right (for University Logo) and a sublogo at the left (for Institute Logo) 10 | % Also places the short institute and frame numbers between the two logos. 11 | % Below is the original copyright and license information: 12 | % -------------------------------------------------------------------------------------------- 13 | % Copyright 2007 by Till Tantau 14 | % 15 | % This file may be distributed and/or modified 16 | % 17 | % 1. under the LaTeX Project Public License and/or 18 | % 2. under the GNU Public License. 19 | % 20 | % See the file doc/licenses/LICENSE for more details. 21 | % -------------------------------------------------------------------------------------------- 22 | 23 | \ProvidesPackageRCS $Header: /usr/local/texlive/2010/texmf-dist/tex/latex/beamer/themes/outer/beamerouterthemetigers.sty,v d02a7cf4d8ae 2010/06/17 09:11:41 rivanvx $ 24 | 25 | 26 | \mode 27 | 28 | 29 | % Mini frames 30 | 31 | % Navigation symbols 32 | 33 | \defbeamertemplate*{navigation symbols}{lehigh} 34 | {% 35 | \hbox{% 36 | \hbox{\insertslidenavigationsymbol} 37 | \hbox{\insertframenavigationsymbol} 38 | \hbox{\insertsubsectionnavigationsymbol} 39 | \hbox{\insertsectionnavigationsymbol} 40 | \hbox{\insertdocnavigationsymbol} 41 | \hbox{\insertbackfindforwardnavigationsymbol}% 42 | }% 43 | } 44 | 45 | % No navigation symbols in handout or trans mode: 46 | \only{\setbeamertemplate{navigation symbols}{}} 47 | 48 | 49 | 50 | % Section and subsections in head/foot 51 | 52 | \defbeamertemplate*{section in head/foot}{lehigh} 53 | {\insertsectionhead} 54 | 55 | \defbeamertemplate*{section in head/foot shaded}{lehigh}[1][50] 56 | {\color{fg!#1!bg}\usebeamertemplate{section in head/foot}} 57 | 58 | \defbeamertemplate*{subsection in head/foot}{tigers} 59 | {\insertsubsectionhead} 60 | 61 | \defbeamertemplate*{subsection in head/foot shaded}{tigers}[1][50] 62 | {\color{fg!#1!bg}\usebeamertemplate{subsection in head/foot}} 63 | 64 | \defbeamertemplate*{subsubsection in head/foot}{tigers} 65 | {\insertsubsubsectionhead} 66 | 67 | \defbeamertemplate*{subsubsection in head/foot shaded}{tigers}[1][50] 68 | {\color{fg!#1!bg}\usebeamertemplate{subsubsection in head/foot}} 69 | 70 | 71 | % Logo at top right 72 | \def\trlogo{\setbeamertemplate{trlogo}} 73 | \def\inserttrlogo{\usebeamertemplate*{trlogo}} 74 | 75 | 76 | \mode 77 | 78 | -------------------------------------------------------------------------------- /demo/Makefile: -------------------------------------------------------------------------------- 1 | all : fact1 fact2 factorial hello kindfns nested root simple temp 2 | 3 | fact1 : 4 | gfortran -o fact1 factorial1.f90 5 | fact2 : 6 | gfortran -o fact2 factorial2.f90 7 | factorial : 8 | gfortran -o factorial factorial.f90 9 | hello : 10 | gfortran -o hello helloworld.f90 11 | kindfns : 12 | gfortran -o kindfns kindfns.f90 13 | nested : 14 | gfortran -o nested nested.f90 15 | root : 16 | gfortran -o root.x quad_roots.f90 17 | simple : 18 | gfortran -o simple simple.f90 19 | temp : 20 | gfortran -o temp temp.f90 21 | clean : 22 | rm -rf fact1 fact2 factorial hello kindfns nested root.x simple temp 23 | -------------------------------------------------------------------------------- /demo/helloworld.f90: -------------------------------------------------------------------------------- 1 | program hello 2 | print *, 'Hello World!' 3 | end program hello 4 | -------------------------------------------------------------------------------- /demo/kindfns.f90: -------------------------------------------------------------------------------- 1 | program kind_function 2 | 3 | implicit none 4 | integer,parameter :: dp = selected_real_kind(15) 5 | integer,parameter :: ip = selected_int_kind(15) 6 | integer(kind=4) :: i 7 | integer(kind=8) :: j 8 | integer(ip) :: k 9 | real(kind=4) :: a 10 | real(kind=8) :: b 11 | real(dp) :: c 12 | 13 | print '(a,i2,a,i4)', 'Kind of i = ',kind(i), ' with range =', range(i) 14 | print '(a,i2,a,i4)', 'Kind of j = ',kind(j), ' with range =', range(j) 15 | print '(a,i2,a,i4)', 'Kind of k = ',kind(k), ' with range =', range(k) 16 | print '(a,i2,a,i2,a,i4)', 'Kind of real a = ',kind(a),& 17 | ' with precision = ', precision(a),& 18 | ' and range =', range(a) 19 | print '(a,i2,a,i2,a,i4)', 'Kind of real b = ',kind(b),& 20 | ' with precision = ', precision(b),& 21 | ' and range =', range(b) 22 | print '(a,i2,a,i2,a,i4)', 'Kind of real c = ',kind(c),& 23 | ' with precision = ', precision(c),& 24 | ' and range =', range(c) 25 | print *, huge(i),kind(i) 26 | print *, huge(j),kind(j) 27 | print *, huge(k),kind(k) 28 | 29 | end program kind_function 30 | -------------------------------------------------------------------------------- /demo/nested.f90: -------------------------------------------------------------------------------- 1 | program nested_doloop 2 | 3 | implicit none 4 | integer,parameter :: dp = selected_real_kind(15) 5 | integer :: i,j 6 | real(dp) :: x,y,z,pi 7 | 8 | pi = 4d0*atan(1.d0) 9 | 10 | outer: do i = 0,180,45 11 | inner: do j = 0,180,45 12 | x = real(i)*pi/180d0 13 | y = real(j)*pi/180d0 14 | if ( j == 90 ) cycle inner 15 | z = sin(x) / cos(y) 16 | print '(2i6,3f12.6)', i,j,x,y,z 17 | end do inner 18 | end do outer 19 | end program nested_doloop 20 | -------------------------------------------------------------------------------- /demo/saxpy.f: -------------------------------------------------------------------------------- 1 | C234567890123456789012345678901234567890123456789012345678901234567890 2 | program test 3 | integer n 4 | parameter(n=100) 5 | real alpha, x(n), y(n) 6 | 7 | alpha = 2.0 8 | do 10 i = 1,n 9 | x(i) = 1.0 10 | y(i) = 2.0 11 | 10 continue 12 | 13 | call saxpy(n,alpha,x,y) 14 | 15 | return 16 | end 17 | 18 | subroutine saxpy(n, alpha, x, y) 19 | integer n 20 | real alpha, x(*), y(*) 21 | c 22 | c Saxpy: Compute y := alpha*x + y, 23 | c where x and y are vectors of length n (at least). 24 | c 25 | do 20 i = 1, n 26 | y(i) = alpha*x(i) + y(i) 27 | 20 continue 28 | 29 | return 30 | end 31 | 32 | -------------------------------------------------------------------------------- /demo/saxpy.f90: -------------------------------------------------------------------------------- 1 | program test 2 | 3 | implicit none 4 | integer, parameter :: n = 100 5 | real :: alpha, x(n), y(n) 6 | 7 | alpha = 2.0 8 | x = 1.0 9 | y = 2.0 10 | 11 | call saxpy(n,alpha,x,y) 12 | 13 | end program test 14 | 15 | subroutine saxpy(n, alpha, x, y) 16 | implicit none 17 | integer :: n 18 | real :: alpha, x(*), y(*) 19 | ! 20 | ! Saxpy: Compute y := alpha*x + y, 21 | ! where x and y are vectors of length n (at least). 22 | ! 23 | y(1:n) = alpha*x(1:n) + y(1:n) 24 | 25 | end subroutine saxpy 26 | 27 | -------------------------------------------------------------------------------- /demo/simple.f90: -------------------------------------------------------------------------------- 1 | program temp 2 | 3 | implicit none 4 | real :: tempC, tempF 5 | 6 | ! Convert 10C to fahrenheit 7 | 8 | tempF = 9 / 5 * 10 + 32 9 | 10 | ! Convert 40F to celsius 11 | 12 | tempC = 5 / 9 * (40 - 32 ) 13 | 14 | print *, '10C = ', tempF, 'F' 15 | print *, '40F = ', tempC, 'C' 16 | 17 | end program temp 18 | 19 | -------------------------------------------------------------------------------- /demo/sum.f90: -------------------------------------------------------------------------------- 1 | subroutine calc(a,b,c) 2 | 3 | implicit none 4 | real :: a, b, c 5 | 6 | c = a + b 7 | return 8 | 9 | end subroutine calc 10 | -------------------------------------------------------------------------------- /demo/sumf.f90: -------------------------------------------------------------------------------- 1 | function calc(a,b) 2 | 3 | implicit none 4 | real :: a, b, calc 5 | 6 | calc = a + b 7 | 8 | end function calc 9 | -------------------------------------------------------------------------------- /demo/temp.f90: -------------------------------------------------------------------------------- 1 | program temp 2 | 3 | implicit none 4 | real :: tempC, tempF 5 | 6 | ! Convert 10C to fahrenhiet 7 | 8 | tempF = 9. / 5. * 10 + 32 9 | 10 | ! Convert 40F to celsius 11 | 12 | tempC = 5. / 9. * (40 - 32 ) 13 | 14 | print *, '10C = ', tempF, 'F' 15 | print *, '40F = ', tempC, 'C' 16 | 17 | end program temp 18 | 19 | -------------------------------------------------------------------------------- /graphics/array1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/graphics/array1.jpg -------------------------------------------------------------------------------- /graphics/array1.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/graphics/array1.odg -------------------------------------------------------------------------------- /graphics/array2-3-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/graphics/array2-3-1.jpg -------------------------------------------------------------------------------- /graphics/array2-3-1.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/graphics/array2-3-1.odg -------------------------------------------------------------------------------- /graphics/array2-3.eps: -------------------------------------------------------------------------------- 1 | %!PS-Adobe-3.0 EPSF-3.0 2 | %%BoundingBox: 0 0 612 792 3 | %%Pages: 0 4 | %%Creator: LibreOffice 3.4 5 | %%Title: none 6 | %%CreationDate: none 7 | %%LanguageLevel: 2 8 | %%EndComments 9 | %%BeginProlog 10 | %%BeginResource: procset SDRes-Prolog 1.0 0 11 | /b4_inc_state save def 12 | /dict_count countdictstack def 13 | /op_count count 1 sub def 14 | userdict begin 15 | 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit[] 0 setdash newpath 16 | /languagelevel where {pop languagelevel 1 ne {false setstrokeadjust false setoverprint} if} if 17 | /bdef {bind def} bind def 18 | /c {setrgbcolor} bdef 19 | /l {neg lineto} bdef 20 | /rl {neg rlineto} bdef 21 | /lc {setlinecap} bdef 22 | /lj {setlinejoin} bdef 23 | /lw {setlinewidth} bdef 24 | /ml {setmiterlimit} bdef 25 | /ld {setdash} bdef 26 | /m {neg moveto} bdef 27 | /ct {6 2 roll neg 6 2 roll neg 6 2 roll neg curveto} bdef 28 | /r {rotate} bdef 29 | /t {neg translate} bdef 30 | /s {scale} bdef 31 | /sw {show} bdef 32 | /gs {gsave} bdef 33 | /gr {grestore} bdef 34 | /f {findfont dup length dict begin 35 | {1 index /FID ne {def} {pop pop} ifelse} forall /Encoding ISOLatin1Encoding def 36 | currentdict end /NFont exch definefont pop /NFont findfont} bdef 37 | /p {closepath} bdef 38 | /sf {scalefont setfont} bdef 39 | /ef {eofill}bdef 40 | /pc {closepath stroke}bdef 41 | /ps {stroke}bdef 42 | /pum {matrix currentmatrix}bdef 43 | /pom {setmatrix}bdef 44 | /bs {/aString exch def /nXOfs exch def /nWidth exch def currentpoint nXOfs 0 rmoveto pum nWidth aString stringwidth pop div 1 scale aString show pom moveto} bdef 45 | %%EndResource 46 | %%EndProlog 47 | %%BeginSetup 48 | %%EndSetup 49 | %%Page: 1 1 50 | %%BeginPageSetup 51 | %%EndPageSetup 52 | pum 53 | 0.02834 0.02834 s 54 | 0 -27940 t 55 | /tm matrix currentmatrix def 56 | gs 57 | tm setmatrix 58 | -1102 -1077 t 59 | 1 1 s 60 | 1102 1077 m 22691 1077 l 22691 29016 l 1102 29016 l 1102 1077 l eoclip newpath 61 | gs 62 | 0 0 m 21589 0 l 21589 27939 l 0 27939 l 0 0 l eoclip newpath 63 | 64 | pum 65 | 4202 5329 t 66 | 0.125 0.113 0.109 c 138 7 m 102 7 75 -3 56 -22 ct 38 -41 29 -67 29 -101 ct 29 -125 34 -145 43 -160 ct 67 | 52 -175 63 -187 78 -196 ct 93 -205 109 -211 128 -214 ct 147 -217 166 -219 185 -219 ct 68 | 266 -219 l 266 -239 l 266 -254 265 -267 262 -277 ct 258 -288 254 -297 247 -303 ct 69 | 241 -310 233 -314 223 -317 ct 213 -320 202 -322 189 -322 ct 177 -322 167 -321 157 -320 ct 70 | 148 -318 140 -315 133 -310 ct 126 -306 120 -300 116 -293 ct 112 -285 109 -276 108 -265 ct 71 | 45 -270 l 47 -284 52 -298 58 -309 ct 64 -321 73 -332 84 -340 ct 96 -349 110 -356 127 -361 ct 72 | 145 -365 166 -368 190 -368 ct 235 -368 270 -357 293 -337 ct 316 -316 327 -286 327 -246 ct 73 | 327 -91 l 327 -73 329 -60 334 -51 ct 339 -42 348 -37 361 -37 ct 364 -37 367 -37 371 -38 ct 74 | 374 -38 377 -38 380 -39 ct 380 -2 l 373 0 365 1 358 2 ct 350 3 342 3 334 3 ct 75 | 323 3 313 2 305 -1 ct 297 -4 290 -9 285 -15 ct 280 -21 276 -28 273 -37 ct 271 -46 269 -57 268 -69 ct 76 | 266 -69 l 260 -57 253 -47 245 -37 ct 237 -28 228 -20 218 -14 ct 208 -7 196 -2 183 2 ct 77 | 170 5 155 7 138 7 ct p 78 | 152 -38 m 171 -38 188 -42 202 -49 ct 217 -55 229 -64 238 -75 ct 247 -86 255 -98 259 -111 ct 79 | 264 -124 266 -136 266 -148 ct 266 -177 l 200 -177 l 186 -177 172 -176 158 -174 ct 80 | 145 -172 134 -169 124 -163 ct 114 -157 106 -149 100 -139 ct 94 -129 91 -116 91 -100 ct 81 | 91 -80 96 -65 107 -54 ct 117 -43 132 -38 152 -38 ct p ef 82 | 429 -177 m 429 -208 432 -238 436 -266 ct 441 -294 448 -321 458 -347 ct 468 -373 481 -399 497 -423 ct 83 | 512 -448 531 -472 553 -495 ct 611 -495 l 590 -472 572 -448 557 -423 ct 541 -398 529 -373 519 -347 ct 84 | 509 -321 502 -294 497 -265 ct 492 -237 490 -207 490 -177 ct 490 -146 492 -116 497 -88 ct 85 | 502 -59 509 -32 519 -6 ct 529 20 541 46 557 70 ct 572 95 590 119 611 142 ct 553 142 l 86 | 531 119 512 95 497 70 ct 481 46 468 20 458 -6 ct 448 -32 441 -59 436 -87 ct 432 -115 429 -145 429 -176 ct 87 | 429 -177 l p ef 88 | 672 0 m 672 -51 l 792 -51 l 792 -413 l 686 -337 l 686 -394 l 797 -471 l 89 | 852 -471 l 852 -51 l 967 -51 l 967 0 l 672 0 l p ef 90 | 1192 -176 m 1192 -145 1190 -115 1185 -87 ct 1181 -59 1173 -32 1163 -6 ct 1153 20 1140 46 1125 70 ct 91 | 1109 95 1091 119 1069 142 ct 1011 142 l 1032 119 1050 95 1065 70 ct 1081 46 1093 20 1103 -6 ct 92 | 1113 -32 1120 -59 1125 -88 ct 1130 -116 1132 -146 1132 -177 ct 1132 -207 1130 -237 1125 -265 ct 93 | 1120 -294 1113 -321 1103 -347 ct 1093 -373 1081 -398 1065 -423 ct 1050 -448 1032 -472 1011 -495 ct 94 | 1069 -495 l 1091 -472 1109 -448 1125 -423 ct 1140 -399 1153 -373 1163 -347 ct 95 | 1173 -321 1181 -294 1185 -266 ct 1190 -238 1192 -208 1192 -177 ct 1192 -176 l 96 | p ef 97 | pom 98 | 99 | pum 100 | 7635 5329 t 101 | 62 0 m 62 -73 l 128 -73 l 128 0 l 62 0 l p ef 102 | 258 0 m 258 -73 l 324 -73 l 324 0 l 258 0 l p ef 103 | 454 0 m 454 -73 l 520 -73 l 520 0 l 454 0 l p ef 104 | pom 105 | 106 | pum 107 | 10742 5329 t 108 | 62 0 m 62 -73 l 128 -73 l 128 0 l 62 0 l p ef 109 | 258 0 m 258 -73 l 324 -73 l 324 0 l 258 0 l p ef 110 | 454 0 m 454 -73 l 520 -73 l 520 0 l 454 0 l p ef 111 | pom 112 | 113 | pum 114 | 13849 5329 t 115 | 62 0 m 62 -73 l 128 -73 l 128 0 l 62 0 l p ef 116 | 258 0 m 258 -73 l 324 -73 l 324 0 l 258 0 l p ef 117 | 454 0 m 454 -73 l 520 -73 l 520 0 l 454 0 l p ef 118 | pom 119 | 120 | pum 121 | 16438 5329 t 122 | 138 7 m 102 7 75 -3 56 -22 ct 38 -41 29 -67 29 -101 ct 29 -125 34 -145 43 -160 ct 123 | 52 -175 63 -187 78 -196 ct 93 -205 109 -211 128 -214 ct 147 -217 166 -219 185 -219 ct 124 | 266 -219 l 266 -239 l 266 -254 265 -267 262 -277 ct 258 -288 254 -297 247 -303 ct 125 | 241 -310 233 -314 223 -317 ct 213 -320 202 -322 189 -322 ct 177 -322 167 -321 157 -320 ct 126 | 148 -318 140 -315 133 -310 ct 126 -306 120 -300 116 -293 ct 112 -285 109 -276 108 -265 ct 127 | 45 -270 l 47 -284 52 -298 58 -309 ct 64 -321 73 -332 84 -340 ct 96 -349 110 -356 127 -361 ct 128 | 145 -365 166 -368 190 -368 ct 235 -368 270 -357 293 -337 ct 316 -316 327 -286 327 -246 ct 129 | 327 -91 l 327 -73 329 -60 334 -51 ct 339 -42 348 -37 361 -37 ct 364 -37 367 -37 371 -38 ct 130 | 374 -38 377 -38 380 -39 ct 380 -2 l 373 0 365 1 358 2 ct 350 3 342 3 334 3 ct 131 | 323 3 313 2 305 -1 ct 297 -4 290 -9 285 -15 ct 280 -21 276 -28 273 -37 ct 271 -46 269 -57 268 -69 ct 132 | 266 -69 l 260 -57 253 -47 245 -37 ct 237 -28 228 -20 218 -14 ct 208 -7 196 -2 183 2 ct 133 | 170 5 155 7 138 7 ct p 134 | 152 -38 m 171 -38 188 -42 202 -49 ct 217 -55 229 -64 238 -75 ct 247 -86 255 -98 259 -111 ct 135 | 264 -124 266 -136 266 -148 ct 266 -177 l 200 -177 l 186 -177 172 -176 158 -174 ct 136 | 145 -172 134 -169 124 -163 ct 114 -157 106 -149 100 -139 ct 94 -129 91 -116 91 -100 ct 137 | 91 -80 96 -65 107 -54 ct 117 -43 132 -38 152 -38 ct p ef 138 | 429 -177 m 429 -208 432 -238 436 -266 ct 441 -294 448 -321 458 -347 ct 468 -373 481 -399 497 -423 ct 139 | 512 -448 531 -472 553 -495 ct 611 -495 l 590 -472 572 -448 557 -423 ct 541 -398 529 -373 519 -347 ct 140 | 509 -321 502 -294 497 -265 ct 492 -237 490 -207 490 -177 ct 490 -146 492 -116 497 -88 ct 141 | 502 -59 509 -32 519 -6 ct 529 20 541 46 557 70 ct 572 95 590 119 611 142 ct 553 142 l 142 | 531 119 512 95 497 70 ct 481 46 468 20 458 -6 ct 448 -32 441 -59 436 -87 ct 432 -115 429 -145 429 -176 ct 143 | 429 -177 l p ef 144 | 672 0 m 672 -51 l 792 -51 l 792 -413 l 686 -337 l 686 -394 l 797 -471 l 145 | 852 -471 l 852 -51 l 967 -51 l 967 0 l 672 0 l p ef 146 | 1359 -153 m 1359 -129 1355 -108 1348 -88 ct 1341 -69 1330 -52 1316 -38 ct 1302 -23 1285 -12 1264 -5 ct 147 | 1243 3 1219 7 1192 7 ct 1167 7 1145 4 1127 -2 ct 1109 -7 1093 -15 1080 -26 ct 1068 -36 1058 -48 1050 -61 ct 148 | 1043 -75 1038 -89 1034 -105 ct 1095 -112 l 1098 -103 1101 -94 1106 -86 ct 1110 -78 1116 -70 1124 -64 ct 149 | 1131 -57 1141 -52 1152 -48 ct 1163 -44 1177 -42 1193 -42 ct 1209 -42 1223 -44 1235 -49 ct 150 | 1248 -54 1259 -61 1268 -70 ct 1277 -80 1284 -91 1289 -105 ct 1294 -118 1296 -134 1296 -152 ct 151 | 1296 -166 1294 -179 1289 -192 ct 1285 -204 1278 -214 1269 -223 ct 1261 -232 1250 -239 1237 -244 ct 152 | 1225 -248 1210 -251 1194 -251 ct 1184 -251 1175 -250 1167 -248 ct 1158 -246 1150 -244 1143 -241 ct 153 | 1136 -238 1129 -234 1123 -230 ct 1118 -226 1112 -222 1107 -217 ct 1048 -217 l 154 | 1064 -470 l 1331 -470 l 1331 -419 l 1119 -419 l 1110 -270 l 1120 -278 1134 -285 1150 -291 ct 155 | 1166 -297 1185 -300 1207 -300 ct 1230 -300 1251 -296 1270 -289 ct 1289 -282 1304 -272 1318 -259 ct 156 | 1331 -246 1341 -231 1348 -212 ct 1355 -194 1359 -175 1359 -153 ct p ef 157 | 1580 -176 m 1580 -145 1578 -115 1573 -87 ct 1569 -59 1561 -32 1551 -6 ct 1541 20 1528 46 1513 70 ct 158 | 1497 95 1479 119 1457 142 ct 1399 142 l 1420 119 1438 95 1453 70 ct 1469 46 1481 20 1491 -6 ct 159 | 1501 -32 1508 -59 1513 -88 ct 1518 -116 1520 -146 1520 -177 ct 1520 -207 1518 -237 1513 -265 ct 160 | 1508 -294 1501 -321 1491 -347 ct 1481 -373 1469 -398 1453 -423 ct 1438 -448 1420 -472 1399 -495 ct 161 | 1457 -495 l 1479 -472 1497 -448 1513 -423 ct 1528 -399 1541 -373 1551 -347 ct 162 | 1561 -321 1569 -294 1573 -266 ct 1578 -238 1580 -208 1580 -177 ct 1580 -176 l 163 | p ef 164 | pom 165 | 0.003 0.003 0.003 c 3268 5616 m 3263 5621 l 3263 4563 l 3268 4569 l 3274 4574 l 166 | 3274 5610 l 3268 5616 l p ef 167 | 6375 5616 m 6381 5621 l 3263 5621 l 3268 5616 l 3274 5610 l 6370 5610 l 168 | 6375 5616 l p ef 169 | 6375 4569 m 6370 4574 l 3274 4574 l 3268 4569 l 3263 4563 l 6381 4563 l 170 | 6375 4569 l p ef 171 | 6375 5616 m 6370 5610 l 6370 4574 l 6375 4569 l 6381 4574 l 6381 5610 l 172 | 6375 5616 l p ef 173 | 9482 5616 m 9487 5621 l 6370 5621 l 6375 5616 l 6381 5610 l 9476 5610 l 174 | 9482 5616 l p ef 175 | 9482 4569 m 9476 4574 l 6381 4574 l 6375 4569 l 6370 4563 l 9487 4563 l 176 | 9482 4569 l p ef 177 | 9482 5616 m 9476 5610 l 9476 4574 l 9482 4569 l 9487 4574 l 9487 5610 l 178 | 9482 5616 l p ef 179 | 12589 5616 m 12594 5621 l 9476 5621 l 9482 5616 l 9487 5610 l 12583 5610 l 180 | 12589 5616 l p ef 181 | 12589 4569 m 12583 4574 l 9487 4574 l 9482 4569 l 9476 4563 l 12594 4563 l 182 | 12589 4569 l p ef 183 | 12589 5616 m 12583 5610 l 12583 4574 l 12589 4569 l 12594 4574 l 12594 5610 l 184 | 12589 5616 l p ef 185 | 15696 5616 m 15701 5621 l 12583 5621 l 12589 5616 l 12594 5610 l 15690 5610 l 186 | 15696 5616 l p ef 187 | 15696 4569 m 15690 4574 l 12594 4574 l 12589 4569 l 12583 4563 l 15701 4563 l 188 | 15696 4569 l p ef 189 | 15696 5616 m 15690 5610 l 15690 4574 l 15696 4569 l 15701 4574 l 15701 5610 l 190 | 15696 5616 l p ef 191 | 18807 5616 m 18812 5621 l 15690 5621 l 15696 5616 l 15701 5610 l 18801 5610 l 192 | 18807 5616 l p ef 193 | 18807 5616 m 18801 5610 l 18801 4574 l 18807 4569 l 18812 4563 l 18812 5621 l 194 | 18807 5616 l p ef 195 | 18807 4569 m 18801 4574 l 15701 4574 l 15696 4569 l 15690 4563 l 18812 4563 l 196 | 18807 4569 l p ef 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 6912 10729 m 6917 10734 l 6917 10934 l 6906 10934 l 6906 10723 l 6912 10729 l 213 | p 214 | 6906 11150 m 6917 11150 l 6917 11365 l 6906 11365 l 6906 11150 l p 215 | 6906 11580 m 6917 11580 l 6917 11796 l 6906 11796 l 6906 11580 l p 216 | 6906 12011 m 6917 12011 l 6917 12227 l 6906 12227 l 6906 12011 l p 217 | 6906 12442 m 6917 12442 l 6917 12658 l 6906 12658 l 6906 12442 l p 218 | 6912 12999 m 6906 13004 l 6906 12873 l 6917 12873 l 6917 12994 l 6912 12999 l 219 | p ef 220 | 6912 10729 m 6906 10723 l 7122 10723 l 7122 10734 l 6917 10734 l 6912 10729 l 221 | p 222 | 7343 10734 m 7343 10723 l 7563 10723 l 7563 10734 l 7343 10734 l p 223 | 7784 10734 m 7784 10723 l 8004 10723 l 8004 10734 l 7784 10734 l p 224 | 8224 10734 m 8224 10723 l 8445 10723 l 8445 10734 l 8224 10734 l p 225 | 8665 10734 m 8665 10723 l 8886 10723 l 8886 10734 l 8665 10734 l p 226 | 9106 10734 m 9106 10723 l 9327 10723 l 9327 10734 l 9106 10734 l p 227 | 9547 10734 m 9547 10723 l 9767 10723 l 9767 10734 l 9547 10734 l p 228 | 9988 10734 m 9988 10723 l 10208 10723 l 10208 10734 l 9988 10734 l 229 | p ef 230 | 10322 10729 m 10327 10734 l 10327 10934 l 10316 10934 l 10316 10734 l 231 | 10322 10729 l p 232 | 10316 11150 m 10327 11150 l 10327 11365 l 10316 11365 l 10316 11150 l 233 | p 234 | 10316 11580 m 10327 11580 l 10327 11796 l 10316 11796 l 10316 11580 l 235 | p 236 | 10316 12011 m 10327 12011 l 10327 12227 l 10316 12227 l 10316 12011 l 237 | p 238 | 10316 12442 m 10327 12442 l 10327 12658 l 10316 12658 l 10316 12442 l 239 | p 240 | 10322 12999 m 10316 12994 l 10316 12873 l 10327 12873 l 10327 12994 l 241 | 10322 12999 l p ef 242 | 10322 10729 m 10316 10723 l 10532 10723 l 10532 10734 l 10327 10734 l 243 | 10322 10729 l p 244 | 10753 10734 m 10753 10723 l 10973 10723 l 10973 10734 l 10753 10734 l 245 | p 246 | 11193 10734 m 11193 10723 l 11414 10723 l 11414 10734 l 11193 10734 l 247 | p 248 | 11634 10734 m 11634 10723 l 11855 10723 l 11855 10734 l 11634 10734 l 249 | p 250 | 12075 10734 m 12075 10723 l 12296 10723 l 12296 10734 l 12075 10734 l 251 | p 252 | 12516 10734 m 12516 10723 l 12736 10723 l 12736 10734 l 12516 10734 l 253 | p 254 | 12957 10734 m 12957 10723 l 13177 10723 l 13177 10734 l 12957 10734 l 255 | p 256 | 13398 10734 m 13398 10723 l 13618 10723 l 13618 10734 l 13398 10734 l 257 | p ef 258 | 13732 10729 m 13737 10734 l 13737 10934 l 13726 10934 l 13726 10734 l 259 | 13732 10729 l p 260 | 13726 11150 m 13737 11150 l 13737 11365 l 13726 11365 l 13726 11150 l 261 | p 262 | 13726 11580 m 13737 11580 l 13737 11796 l 13726 11796 l 13726 11580 l 263 | p 264 | 13726 12011 m 13737 12011 l 13737 12227 l 13726 12227 l 13726 12011 l 265 | p 266 | 13726 12442 m 13737 12442 l 13737 12658 l 13726 12658 l 13726 12442 l 267 | p 268 | 13732 12999 m 13726 12994 l 13726 12873 l 13737 12873 l 13737 12994 l 269 | 13732 12999 l p ef 270 | 17139 10729 m 17145 10723 l 17145 10934 l 17134 10934 l 17134 10734 l 271 | 17139 10729 l p 272 | 17134 11150 m 17145 11150 l 17145 11365 l 17134 11365 l 17134 11150 l 273 | p 274 | 17134 11580 m 17145 11580 l 17145 11796 l 17134 11796 l 17134 11580 l 275 | p 276 | 17134 12011 m 17145 12011 l 17145 12227 l 17134 12227 l 17134 12011 l 277 | p 278 | 17134 12442 m 17145 12442 l 17145 12658 l 17134 12658 l 17134 12442 l 279 | p 280 | 17139 12999 m 17134 12994 l 17134 12873 l 17145 12873 l 17145 13004 l 281 | 17139 12999 l p ef 282 | 13732 10729 m 13726 10723 l 13942 10723 l 13942 10734 l 13737 10734 l 283 | 13732 10729 l p 284 | 14162 10734 m 14162 10723 l 14383 10723 l 14383 10734 l 14162 10734 l 285 | p 286 | 14603 10734 m 14603 10723 l 14824 10723 l 14824 10734 l 14603 10734 l 287 | p 288 | 15044 10734 m 15044 10723 l 15265 10723 l 15265 10734 l 15044 10734 l 289 | p 290 | 15485 10734 m 15485 10723 l 15705 10723 l 15705 10734 l 15485 10734 l 291 | p 292 | 15926 10734 m 15926 10723 l 16146 10723 l 16146 10734 l 15926 10734 l 293 | p 294 | 16367 10734 m 16367 10723 l 16587 10723 l 16587 10734 l 16367 10734 l 295 | p 296 | 16808 10734 m 16808 10723 l 17028 10723 l 17028 10734 l 16808 10734 l 297 | p ef 298 | 6912 12999 m 6917 13004 l 6917 13205 l 6906 13205 l 6906 12994 l 6912 12999 l 299 | p 300 | 6906 13420 m 6917 13420 l 6917 13636 l 6906 13636 l 6906 13420 l p 301 | 6906 13851 m 6917 13851 l 6917 14066 l 6906 14066 l 6906 13851 l p 302 | 6906 14282 m 6917 14282 l 6917 14497 l 6906 14497 l 6906 14282 l p 303 | 6906 14713 m 6917 14713 l 6917 14928 l 6906 14928 l 6906 14713 l p 304 | 6912 15270 m 6906 15275 l 6906 15144 l 6917 15144 l 6917 15264 l 6912 15270 l 305 | p ef 306 | 6912 12999 m 6917 12994 l 7122 12994 l 7122 13004 l 6917 13004 l 6912 12999 l 307 | p 308 | 7343 13004 m 7343 12994 l 7563 12994 l 7563 13004 l 7343 13004 l p 309 | 7784 13004 m 7784 12994 l 8004 12994 l 8004 13004 l 7784 13004 l p 310 | 8224 13004 m 8224 12994 l 8445 12994 l 8445 13004 l 8224 13004 l p 311 | 8665 13004 m 8665 12994 l 8886 12994 l 8886 13004 l 8665 13004 l p 312 | 9106 13004 m 9106 12994 l 9327 12994 l 9327 13004 l 9106 13004 l p 313 | 9547 13004 m 9547 12994 l 9767 12994 l 9767 13004 l 9547 13004 l p 314 | 9988 13004 m 9988 12994 l 10208 12994 l 10208 13004 l 9988 13004 l 315 | p ef 316 | 10322 12999 m 10327 13004 l 10327 13205 l 10316 13205 l 10316 13004 l 317 | 10322 12999 l p 318 | 10316 13420 m 10327 13420 l 10327 13636 l 10316 13636 l 10316 13420 l 319 | p 320 | 10316 13851 m 10327 13851 l 10327 14066 l 10316 14066 l 10316 13851 l 321 | p 322 | 10316 14282 m 10327 14282 l 10327 14497 l 10316 14497 l 10316 14282 l 323 | p 324 | 10316 14713 m 10327 14713 l 10327 14928 l 10316 14928 l 10316 14713 l 325 | p 326 | 10322 15270 m 10316 15264 l 10316 15144 l 10327 15144 l 10327 15264 l 327 | 10322 15270 l p ef 328 | 10322 12999 m 10327 12994 l 10532 12994 l 10532 13004 l 10327 13004 l 329 | 10322 12999 l p 330 | 10753 13004 m 10753 12994 l 10973 12994 l 10973 13004 l 10753 13004 l 331 | p 332 | 11193 13004 m 11193 12994 l 11414 12994 l 11414 13004 l 11193 13004 l 333 | p 334 | 11634 13004 m 11634 12994 l 11855 12994 l 11855 13004 l 11634 13004 l 335 | p 336 | 12075 13004 m 12075 12994 l 12296 12994 l 12296 13004 l 12075 13004 l 337 | p 338 | 12516 13004 m 12516 12994 l 12736 12994 l 12736 13004 l 12516 13004 l 339 | p 340 | 12957 13004 m 12957 12994 l 13177 12994 l 13177 13004 l 12957 13004 l 341 | p 342 | 13398 13004 m 13398 12994 l 13618 12994 l 13618 13004 l 13398 13004 l 343 | p ef 344 | 13732 12999 m 13737 13004 l 13737 13205 l 13726 13205 l 13726 13004 l 345 | 13732 12999 l p 346 | 13726 13420 m 13737 13420 l 13737 13636 l 13726 13636 l 13726 13420 l 347 | p 348 | 13726 13851 m 13737 13851 l 13737 14066 l 13726 14066 l 13726 13851 l 349 | p 350 | 13726 14282 m 13737 14282 l 13737 14497 l 13726 14497 l 13726 14282 l 351 | p 352 | 13726 14713 m 13737 14713 l 13737 14928 l 13726 14928 l 13726 14713 l 353 | p 354 | 13732 15270 m 13726 15264 l 13726 15144 l 13737 15144 l 13737 15264 l 355 | 13732 15270 l p ef 356 | 17139 12999 m 17145 12994 l 17145 13205 l 17134 13205 l 17134 13004 l 357 | 17139 12999 l p 358 | 17134 13420 m 17145 13420 l 17145 13636 l 17134 13636 l 17134 13420 l 359 | p 360 | 17134 13851 m 17145 13851 l 17145 14066 l 17134 14066 l 17134 13851 l 361 | p 362 | 17134 14282 m 17145 14282 l 17145 14497 l 17134 14497 l 17134 14282 l 363 | p 364 | 17134 14713 m 17145 14713 l 17145 14928 l 17134 14928 l 17134 14713 l 365 | p 366 | 17139 15270 m 17134 15264 l 17134 15144 l 17145 15144 l 17145 15275 l 367 | 17139 15270 l p ef 368 | 13732 12999 m 13737 12994 l 13942 12994 l 13942 13004 l 13737 13004 l 369 | 13732 12999 l p 370 | 14162 13004 m 14162 12994 l 14383 12994 l 14383 13004 l 14162 13004 l 371 | p 372 | 14603 13004 m 14603 12994 l 14824 12994 l 14824 13004 l 14603 13004 l 373 | p 374 | 15044 13004 m 15044 12994 l 15265 12994 l 15265 13004 l 15044 13004 l 375 | p 376 | 15485 13004 m 15485 12994 l 15705 12994 l 15705 13004 l 15485 13004 l 377 | p 378 | 15926 13004 m 15926 12994 l 16146 12994 l 16146 13004 l 15926 13004 l 379 | p 380 | 16367 13004 m 16367 12994 l 16587 12994 l 16587 13004 l 16367 13004 l 381 | p 382 | 16808 13004 m 16808 12994 l 17028 12994 l 17028 13004 l 16808 13004 l 383 | p ef 384 | 6912 15270 m 6917 15275 l 6917 15475 l 6906 15475 l 6906 15264 l 6912 15270 l 385 | p 386 | 6906 15691 m 6917 15691 l 6917 15906 l 6906 15906 l 6906 15691 l p 387 | 6906 16122 m 6917 16122 l 6917 16337 l 6906 16337 l 6906 16122 l p 388 | 6906 16552 m 6917 16552 l 6917 16768 l 6906 16768 l 6906 16552 l p 389 | 6906 16983 m 6917 16983 l 6917 17199 l 6906 17199 l 6906 16983 l p 390 | 6912 17540 m 6906 17545 l 6906 17414 l 6917 17414 l 6917 17535 l 6912 17540 l 391 | p ef 392 | 6912 15270 m 6917 15264 l 7122 15264 l 7122 15275 l 6917 15275 l 6912 15270 l 393 | p 394 | 7343 15275 m 7343 15264 l 7563 15264 l 7563 15275 l 7343 15275 l p 395 | 7784 15275 m 7784 15264 l 8004 15264 l 8004 15275 l 7784 15275 l p 396 | 8224 15275 m 8224 15264 l 8445 15264 l 8445 15275 l 8224 15275 l p 397 | 8665 15275 m 8665 15264 l 8886 15264 l 8886 15275 l 8665 15275 l p 398 | 9106 15275 m 9106 15264 l 9327 15264 l 9327 15275 l 9106 15275 l p 399 | 9547 15275 m 9547 15264 l 9767 15264 l 9767 15275 l 9547 15275 l p 400 | 9988 15275 m 9988 15264 l 10208 15264 l 10208 15275 l 9988 15275 l 401 | p ef 402 | 10322 15270 m 10327 15275 l 10327 15475 l 10316 15475 l 10316 15275 l 403 | 10322 15270 l p 404 | 10316 15691 m 10327 15691 l 10327 15906 l 10316 15906 l 10316 15691 l 405 | p 406 | 10316 16122 m 10327 16122 l 10327 16337 l 10316 16337 l 10316 16122 l 407 | p 408 | 10316 16552 m 10327 16552 l 10327 16768 l 10316 16768 l 10316 16552 l 409 | p 410 | 10316 16983 m 10327 16983 l 10327 17199 l 10316 17199 l 10316 16983 l 411 | p 412 | 10322 17540 m 10316 17535 l 10316 17414 l 10327 17414 l 10327 17535 l 413 | 10322 17540 l p ef 414 | 10322 15270 m 10327 15264 l 10532 15264 l 10532 15275 l 10327 15275 l 415 | 10322 15270 l p 416 | 10753 15275 m 10753 15264 l 10973 15264 l 10973 15275 l 10753 15275 l 417 | p 418 | 11193 15275 m 11193 15264 l 11414 15264 l 11414 15275 l 11193 15275 l 419 | p 420 | 11634 15275 m 11634 15264 l 11855 15264 l 11855 15275 l 11634 15275 l 421 | p 422 | 12075 15275 m 12075 15264 l 12296 15264 l 12296 15275 l 12075 15275 l 423 | p 424 | 12516 15275 m 12516 15264 l 12736 15264 l 12736 15275 l 12516 15275 l 425 | p 426 | 12957 15275 m 12957 15264 l 13177 15264 l 13177 15275 l 12957 15275 l 427 | p 428 | 13398 15275 m 13398 15264 l 13618 15264 l 13618 15275 l 13398 15275 l 429 | p ef 430 | 13732 15270 m 13737 15275 l 13737 15475 l 13726 15475 l 13726 15275 l 431 | 13732 15270 l p 432 | 13726 15691 m 13737 15691 l 13737 15906 l 13726 15906 l 13726 15691 l 433 | p 434 | 13726 16122 m 13737 16122 l 13737 16337 l 13726 16337 l 13726 16122 l 435 | p 436 | 13726 16552 m 13737 16552 l 13737 16768 l 13726 16768 l 13726 16552 l 437 | p 438 | 13726 16983 m 13737 16983 l 13737 17199 l 13726 17199 l 13726 16983 l 439 | p 440 | 13732 17540 m 13726 17535 l 13726 17414 l 13737 17414 l 13737 17535 l 441 | 13732 17540 l p ef 442 | 17139 15270 m 17145 15264 l 17145 15475 l 17134 15475 l 17134 15275 l 443 | 17139 15270 l p 444 | 17134 15691 m 17145 15691 l 17145 15906 l 17134 15906 l 17134 15691 l 445 | p 446 | 17134 16122 m 17145 16122 l 17145 16337 l 17134 16337 l 17134 16122 l 447 | p 448 | 17134 16552 m 17145 16552 l 17145 16768 l 17134 16768 l 17134 16552 l 449 | p 450 | 17134 16983 m 17145 16983 l 17145 17199 l 17134 17199 l 17134 16983 l 451 | p 452 | 17139 17540 m 17134 17535 l 17134 17414 l 17145 17414 l 17145 17545 l 453 | 17139 17540 l p ef 454 | 13732 15270 m 13737 15264 l 13942 15264 l 13942 15275 l 13737 15275 l 455 | 13732 15270 l p 456 | 14162 15275 m 14162 15264 l 14383 15264 l 14383 15275 l 14162 15275 l 457 | p 458 | 14603 15275 m 14603 15264 l 14824 15264 l 14824 15275 l 14603 15275 l 459 | p 460 | 15044 15275 m 15044 15264 l 15265 15264 l 15265 15275 l 15044 15275 l 461 | p 462 | 15485 15275 m 15485 15264 l 15705 15264 l 15705 15275 l 15485 15275 l 463 | p 464 | 15926 15275 m 15926 15264 l 16146 15264 l 16146 15275 l 15926 15275 l 465 | p 466 | 16367 15275 m 16367 15264 l 16587 15264 l 16587 15275 l 16367 15275 l 467 | p 468 | 16808 15275 m 16808 15264 l 17028 15264 l 17028 15275 l 16808 15275 l 469 | p ef 470 | 6912 17540 m 6917 17545 l 6917 17746 l 6906 17746 l 6906 17535 l 6912 17540 l 471 | p 472 | 6906 17961 m 6917 17961 l 6917 18177 l 6906 18177 l 6906 17961 l p 473 | 6906 18392 m 6917 18392 l 6917 18607 l 6906 18607 l 6906 18392 l p 474 | 6906 18823 m 6917 18823 l 6917 19038 l 6906 19038 l 6906 18823 l p 475 | 6906 19254 m 6917 19254 l 6917 19469 l 6906 19469 l 6906 19254 l p 476 | 6912 19811 m 6906 19816 l 6906 19685 l 6917 19685 l 6917 19805 l 6912 19811 l 477 | p ef 478 | 6912 17540 m 6917 17535 l 7122 17535 l 7122 17545 l 6917 17545 l 6912 17540 l 479 | p 480 | 7343 17545 m 7343 17535 l 7563 17535 l 7563 17545 l 7343 17545 l p 481 | 7784 17545 m 7784 17535 l 8004 17535 l 8004 17545 l 7784 17545 l p 482 | 8224 17545 m 8224 17535 l 8445 17535 l 8445 17545 l 8224 17545 l p 483 | 8665 17545 m 8665 17535 l 8886 17535 l 8886 17545 l 8665 17545 l p 484 | 9106 17545 m 9106 17535 l 9327 17535 l 9327 17545 l 9106 17545 l p 485 | 9547 17545 m 9547 17535 l 9767 17535 l 9767 17545 l 9547 17545 l p 486 | 9988 17545 m 9988 17535 l 10208 17535 l 10208 17545 l 9988 17545 l 487 | p ef 488 | 10322 17540 m 10327 17545 l 10327 17746 l 10316 17746 l 10316 17545 l 489 | 10322 17540 l p 490 | 10316 17961 m 10327 17961 l 10327 18177 l 10316 18177 l 10316 17961 l 491 | p 492 | 10316 18392 m 10327 18392 l 10327 18607 l 10316 18607 l 10316 18392 l 493 | p 494 | 10316 18823 m 10327 18823 l 10327 19038 l 10316 19038 l 10316 18823 l 495 | p 496 | 10316 19254 m 10327 19254 l 10327 19469 l 10316 19469 l 10316 19254 l 497 | p 498 | 10322 19811 m 10316 19805 l 10316 19685 l 10327 19685 l 10327 19805 l 499 | 10322 19811 l p ef 500 | 10322 17540 m 10327 17535 l 10532 17535 l 10532 17545 l 10327 17545 l 501 | 10322 17540 l p 502 | 10753 17545 m 10753 17535 l 10973 17535 l 10973 17545 l 10753 17545 l 503 | p 504 | 11193 17545 m 11193 17535 l 11414 17535 l 11414 17545 l 11193 17545 l 505 | p 506 | 11634 17545 m 11634 17535 l 11855 17535 l 11855 17545 l 11634 17545 l 507 | p 508 | 12075 17545 m 12075 17535 l 12296 17535 l 12296 17545 l 12075 17545 l 509 | p 510 | 12516 17545 m 12516 17535 l 12736 17535 l 12736 17545 l 12516 17545 l 511 | p 512 | 12957 17545 m 12957 17535 l 13177 17535 l 13177 17545 l 12957 17545 l 513 | p 514 | 13398 17545 m 13398 17535 l 13618 17535 l 13618 17545 l 13398 17545 l 515 | p ef 516 | 13732 17540 m 13737 17545 l 13737 17746 l 13726 17746 l 13726 17545 l 517 | 13732 17540 l p 518 | 13726 17961 m 13737 17961 l 13737 18177 l 13726 18177 l 13726 17961 l 519 | p 520 | 13726 18392 m 13737 18392 l 13737 18607 l 13726 18607 l 13726 18392 l 521 | p 522 | 13726 18823 m 13737 18823 l 13737 19038 l 13726 19038 l 13726 18823 l 523 | p 524 | 13726 19254 m 13737 19254 l 13737 19469 l 13726 19469 l 13726 19254 l 525 | p 526 | 13732 19811 m 13726 19805 l 13726 19685 l 13737 19685 l 13737 19805 l 527 | 13732 19811 l p ef 528 | 17139 17540 m 17145 17535 l 17145 17746 l 17134 17746 l 17134 17545 l 529 | 17139 17540 l p 530 | 17134 17961 m 17145 17961 l 17145 18177 l 17134 18177 l 17134 17961 l 531 | p 532 | 17134 18392 m 17145 18392 l 17145 18607 l 17134 18607 l 17134 18392 l 533 | p 534 | 17134 18823 m 17145 18823 l 17145 19038 l 17134 19038 l 17134 18823 l 535 | p 536 | 17134 19254 m 17145 19254 l 17145 19469 l 17134 19469 l 17134 19254 l 537 | p 538 | 17139 19811 m 17134 19805 l 17134 19685 l 17145 19685 l 17145 19816 l 539 | 17139 19811 l p ef 540 | 13732 17540 m 13737 17535 l 13942 17535 l 13942 17545 l 13737 17545 l 541 | 13732 17540 l p 542 | 14162 17545 m 14162 17535 l 14383 17535 l 14383 17545 l 14162 17545 l 543 | p 544 | 14603 17545 m 14603 17535 l 14824 17535 l 14824 17545 l 14603 17545 l 545 | p 546 | 15044 17545 m 15044 17535 l 15265 17535 l 15265 17545 l 15044 17545 l 547 | p 548 | 15485 17545 m 15485 17535 l 15705 17535 l 15705 17545 l 15485 17545 l 549 | p 550 | 15926 17545 m 15926 17535 l 16146 17535 l 16146 17545 l 15926 17545 l 551 | p 552 | 16367 17545 m 16367 17535 l 16587 17535 l 16587 17545 l 16367 17545 l 553 | p 554 | 16808 17545 m 16808 17535 l 17028 17535 l 17028 17545 l 16808 17545 l 555 | p ef 556 | 6912 19811 m 6917 19816 l 6917 20016 l 6906 20016 l 6906 19805 l 6912 19811 l 557 | p 558 | 6906 20232 m 6917 20232 l 6917 20447 l 6906 20447 l 6906 20232 l p 559 | 6906 20663 m 6917 20663 l 6917 20878 l 6906 20878 l 6906 20663 l p 560 | 6906 21093 m 6917 21093 l 6917 21309 l 6906 21309 l 6906 21093 l p 561 | 6906 21524 m 6917 21524 l 6917 21740 l 6906 21740 l 6906 21524 l p 562 | 6912 22090 m 6906 22095 l 6906 21955 l 6917 21955 l 6917 22084 l 6912 22090 l 563 | p ef 564 | 6912 22090 m 6917 22084 l 7122 22084 l 7122 22095 l 6906 22095 l 6912 22090 l 565 | p 566 | 7343 22095 m 7343 22084 l 7563 22084 l 7563 22095 l 7343 22095 l p 567 | 7784 22095 m 7784 22084 l 8004 22084 l 8004 22095 l 7784 22095 l p 568 | 8224 22095 m 8224 22084 l 8445 22084 l 8445 22095 l 8224 22095 l p 569 | 8665 22095 m 8665 22084 l 8886 22084 l 8886 22095 l 8665 22095 l p 570 | 9106 22095 m 9106 22084 l 9327 22084 l 9327 22095 l 9106 22095 l p 571 | 9547 22095 m 9547 22084 l 9767 22084 l 9767 22095 l 9547 22095 l p 572 | 9988 22095 m 9988 22084 l 10208 22084 l 10208 22095 l 9988 22095 l 573 | p ef 574 | 6912 19811 m 6917 19805 l 7122 19805 l 7122 19816 l 6917 19816 l 6912 19811 l 575 | p 576 | 7343 19816 m 7343 19805 l 7563 19805 l 7563 19816 l 7343 19816 l p 577 | 7784 19816 m 7784 19805 l 8004 19805 l 8004 19816 l 7784 19816 l p 578 | 8224 19816 m 8224 19805 l 8445 19805 l 8445 19816 l 8224 19816 l p 579 | 8665 19816 m 8665 19805 l 8886 19805 l 8886 19816 l 8665 19816 l p 580 | 9106 19816 m 9106 19805 l 9327 19805 l 9327 19816 l 9106 19816 l p 581 | 9547 19816 m 9547 19805 l 9767 19805 l 9767 19816 l 9547 19816 l p 582 | 9988 19816 m 9988 19805 l 10208 19805 l 10208 19816 l 9988 19816 l 583 | p ef 584 | 10322 19811 m 10327 19816 l 10327 20016 l 10316 20016 l 10316 19816 l 585 | 10322 19811 l p 586 | 10316 20232 m 10327 20232 l 10327 20447 l 10316 20447 l 10316 20232 l 587 | p 588 | 10316 20663 m 10327 20663 l 10327 20878 l 10316 20878 l 10316 20663 l 589 | p 590 | 10316 21093 m 10327 21093 l 10327 21309 l 10316 21309 l 10316 21093 l 591 | p 592 | 10316 21524 m 10327 21524 l 10327 21740 l 10316 21740 l 10316 21524 l 593 | p 594 | 10322 22090 m 10316 22084 l 10316 21955 l 10327 21955 l 10327 22084 l 595 | 10322 22090 l p ef 596 | 10322 22090 m 10327 22084 l 10532 22084 l 10532 22095 l 10316 22095 l 597 | 10322 22090 l p 598 | 10753 22095 m 10753 22084 l 10973 22084 l 10973 22095 l 10753 22095 l 599 | p 600 | 11193 22095 m 11193 22084 l 11414 22084 l 11414 22095 l 11193 22095 l 601 | p 602 | 11634 22095 m 11634 22084 l 11855 22084 l 11855 22095 l 11634 22095 l 603 | p 604 | 12075 22095 m 12075 22084 l 12296 22084 l 12296 22095 l 12075 22095 l 605 | p 606 | 12516 22095 m 12516 22084 l 12736 22084 l 12736 22095 l 12516 22095 l 607 | p 608 | 12957 22095 m 12957 22084 l 13177 22084 l 13177 22095 l 12957 22095 l 609 | p 610 | 13398 22095 m 13398 22084 l 13618 22084 l 13618 22095 l 13398 22095 l 611 | p ef 612 | 10322 19811 m 10327 19805 l 10532 19805 l 10532 19816 l 10327 19816 l 613 | 10322 19811 l p 614 | 10753 19816 m 10753 19805 l 10973 19805 l 10973 19816 l 10753 19816 l 615 | p 616 | 11193 19816 m 11193 19805 l 11414 19805 l 11414 19816 l 11193 19816 l 617 | p 618 | 11634 19816 m 11634 19805 l 11855 19805 l 11855 19816 l 11634 19816 l 619 | p 620 | 12075 19816 m 12075 19805 l 12296 19805 l 12296 19816 l 12075 19816 l 621 | p 622 | 12516 19816 m 12516 19805 l 12736 19805 l 12736 19816 l 12516 19816 l 623 | p 624 | 12957 19816 m 12957 19805 l 13177 19805 l 13177 19816 l 12957 19816 l 625 | p 626 | 13398 19816 m 13398 19805 l 13618 19805 l 13618 19816 l 13398 19816 l 627 | p ef 628 | 13732 19811 m 13737 19816 l 13737 20016 l 13726 20016 l 13726 19816 l 629 | 13732 19811 l p 630 | 13726 20232 m 13737 20232 l 13737 20447 l 13726 20447 l 13726 20232 l 631 | p 632 | 13726 20663 m 13737 20663 l 13737 20878 l 13726 20878 l 13726 20663 l 633 | p 634 | 13726 21093 m 13737 21093 l 13737 21309 l 13726 21309 l 13726 21093 l 635 | p 636 | 13726 21524 m 13737 21524 l 13737 21740 l 13726 21740 l 13726 21524 l 637 | p 638 | 13732 22090 m 13726 22084 l 13726 21955 l 13737 21955 l 13737 22084 l 639 | 13732 22090 l p ef 640 | 13732 22090 m 13737 22084 l 13942 22084 l 13942 22095 l 13726 22095 l 641 | 13732 22090 l p 642 | 14162 22095 m 14162 22084 l 14383 22084 l 14383 22095 l 14162 22095 l 643 | p 644 | 14603 22095 m 14603 22084 l 14824 22084 l 14824 22095 l 14603 22095 l 645 | p 646 | 15044 22095 m 15044 22084 l 15265 22084 l 15265 22095 l 15044 22095 l 647 | p 648 | 15485 22095 m 15485 22084 l 15705 22084 l 15705 22095 l 15485 22095 l 649 | p 650 | 15926 22095 m 15926 22084 l 16146 22084 l 16146 22095 l 15926 22095 l 651 | p 652 | 16367 22095 m 16367 22084 l 16587 22084 l 16587 22095 l 16367 22095 l 653 | p 654 | 16808 22095 m 16808 22084 l 17028 22084 l 17028 22095 l 16808 22095 l 655 | p ef 656 | 17139 19811 m 17145 19805 l 17145 20016 l 17134 20016 l 17134 19816 l 657 | 17139 19811 l p 658 | 17134 20232 m 17145 20232 l 17145 20447 l 17134 20447 l 17134 20232 l 659 | p 660 | 17134 20663 m 17145 20663 l 17145 20878 l 17134 20878 l 17134 20663 l 661 | p 662 | 17134 21093 m 17145 21093 l 17145 21309 l 17134 21309 l 17134 21093 l 663 | p 664 | 17134 21524 m 17145 21524 l 17145 21740 l 17134 21740 l 17134 21524 l 665 | p 666 | 17139 22090 m 17134 22084 l 17134 21955 l 17145 21955 l 17145 22095 l 667 | 17139 22090 l p ef 668 | 13732 19811 m 13737 19805 l 13942 19805 l 13942 19816 l 13737 19816 l 669 | 13732 19811 l p 670 | 14162 19816 m 14162 19805 l 14383 19805 l 14383 19816 l 14162 19816 l 671 | p 672 | 14603 19816 m 14603 19805 l 14824 19805 l 14824 19816 l 14603 19816 l 673 | p 674 | 15044 19816 m 15044 19805 l 15265 19805 l 15265 19816 l 15044 19816 l 675 | p 676 | 15485 19816 m 15485 19805 l 15705 19805 l 15705 19816 l 15485 19816 l 677 | p 678 | 15926 19816 m 15926 19805 l 16146 19805 l 16146 19816 l 15926 19816 l 679 | p 680 | 16367 19816 m 16367 19805 l 16587 19805 l 16587 19816 l 16367 19816 l 681 | p 682 | 16808 19816 m 16808 19805 l 17028 19805 l 17028 19816 l 16808 19816 l 683 | p ef 684 | 0.812 0.906 0.898 c 3761 14208 m 2081 14208 l 2081 11061 l 5441 11061 l 685 | 5441 14208 l 3761 14208 l p ef 686 | 0 lw 1 lj 0.503 0.503 0.503 c 3761 14208 m 2081 14208 l 2081 11061 l 687 | 5441 11061 l 5441 14208 l 3761 14208 l pc 688 | pum 689 | 2694 12107 t 690 | 0.125 0.113 0.109 c 420 -133 m 420 -109 415 -89 406 -72 ct 397 -55 384 -41 368 -31 ct 691 | 353 -20 334 -12 313 -7 ct 292 -2 270 0 247 0 ct 56 0 l 56 -470 l 227 -470 l 692 | 253 -470 276 -468 297 -464 ct 317 -459 335 -452 349 -443 ct 363 -434 374 -422 382 -408 ct 693 | 389 -393 393 -376 393 -356 ct 393 -343 391 -331 387 -319 ct 384 -308 378 -297 371 -288 ct 694 | 363 -278 354 -270 343 -264 ct 331 -257 318 -252 303 -248 ct 322 -246 339 -242 354 -235 ct 695 | 368 -229 380 -221 390 -211 ct 400 -201 407 -189 412 -176 ct 418 -162 420 -148 420 -133 ct 696 | p 697 | 329 -349 m 329 -374 320 -392 303 -403 ct 285 -414 260 -419 227 -419 ct 120 -419 l 698 | 120 -271 l 227 -271 l 246 -271 262 -273 275 -276 ct 287 -280 298 -285 306 -292 ct 699 | 314 -299 320 -307 323 -316 ct 327 -326 329 -337 329 -349 ct p 700 | 356 -138 m 356 -153 353 -165 348 -176 ct 342 -186 334 -195 324 -202 ct 314 -208 301 -213 287 -216 ct 701 | 273 -219 257 -221 239 -221 ct 120 -221 l 120 -51 l 244 -51 l 260 -51 275 -52 289 -55 ct 702 | 302 -58 314 -62 324 -69 ct 334 -76 342 -85 347 -96 ct 353 -107 356 -121 356 -138 ct 703 | p ef 704 | 508 -177 m 508 -208 511 -238 515 -266 ct 520 -294 527 -321 537 -347 ct 547 -373 560 -399 576 -423 ct 705 | 591 -448 610 -472 632 -495 ct 690 -495 l 669 -472 651 -448 636 -423 ct 620 -398 608 -373 598 -347 ct 706 | 588 -321 581 -294 576 -265 ct 571 -237 569 -207 569 -177 ct 569 -146 571 -116 576 -88 ct 707 | 581 -59 588 -32 598 -6 ct 608 20 620 46 636 70 ct 651 95 669 119 690 142 ct 632 142 l 708 | 610 119 591 95 576 70 ct 560 46 547 20 537 -6 ct 527 -32 520 -59 515 -87 ct 511 -115 508 -145 508 -176 ct 709 | 508 -177 l p ef 710 | 730 -155 m 730 -208 l 897 -208 l 897 -155 l 730 -155 l p ef 711 | 1227 -107 m 1227 -1 l 1170 -1 l 1170 -107 l 949 -107 l 949 -154 l 712 | 1164 -471 l 1227 -471 l 1227 -154 l 1293 -154 l 1293 -107 l 1227 -107 l 713 | p 714 | 1170 -403 m 1170 -402 1169 -400 1167 -397 ct 1165 -393 1163 -390 1161 -386 ct 715 | 1159 -382 1157 -378 1154 -374 ct 1152 -370 1150 -366 1148 -363 ct 1028 -186 l 716 | 1026 -184 1025 -182 1023 -179 ct 1021 -176 1018 -173 1016 -170 ct 1014 -167 1012 -164 1009 -161 ct 717 | 1007 -158 1005 -156 1004 -154 ct 1170 -154 l 1170 -403 l p ef 718 | 1449 -73 m 1449 -17 l 1449 -5 1448 6 1447 15 ct 1446 25 1444 34 1442 42 ct 719 | 1440 51 1437 58 1434 66 ct 1431 73 1427 80 1423 88 ct 1381 88 l 1391 73 1399 58 1405 44 ct 720 | 1410 29 1413 14 1413 0 ct 1383 0 l 1383 -73 l 1449 -73 l p ef 721 | 1870 -235 m 1870 -190 1865 -152 1857 -121 ct 1848 -90 1837 -65 1822 -46 ct 722 | 1807 -27 1790 -14 1769 -5 ct 1749 3 1728 7 1705 7 ct 1682 7 1661 3 1641 -5 ct 1621 -14 1604 -27 1590 -46 ct 723 | 1575 -65 1564 -90 1555 -121 ct 1547 -152 1543 -190 1543 -235 ct 1543 -282 1547 -322 1555 -353 ct 724 | 1564 -384 1575 -408 1590 -427 ct 1605 -445 1622 -458 1642 -466 ct 1662 -473 1684 -477 1707 -477 ct 725 | 1730 -477 1751 -473 1771 -466 ct 1790 -458 1808 -445 1822 -427 ct 1837 -408 1849 -384 1857 -353 ct 726 | 1865 -322 1870 -282 1870 -235 ct p 727 | 1809 -235 m 1809 -272 1806 -303 1802 -328 ct 1797 -353 1791 -373 1782 -388 ct 728 | 1774 -403 1763 -413 1750 -419 ct 1738 -425 1723 -428 1707 -428 ct 1690 -428 1676 -425 1663 -419 ct 729 | 1650 -413 1639 -402 1630 -387 ct 1621 -373 1615 -353 1610 -328 ct 1606 -303 1604 -272 1604 -235 ct 730 | 1604 -199 1606 -169 1610 -144 ct 1615 -119 1622 -99 1630 -84 ct 1639 -69 1650 -58 1663 -52 ct 731 | 1675 -45 1690 -42 1706 -42 ct 1722 -42 1736 -45 1749 -52 ct 1761 -58 1772 -69 1781 -84 ct 732 | 1790 -99 1797 -119 1801 -144 ct 1806 -169 1809 -199 1809 -235 ct p ef 733 | 2088 -176 m 2088 -145 2086 -115 2081 -87 ct 2077 -59 2069 -32 2059 -6 ct 2049 20 2036 46 2021 70 ct 734 | 2005 95 1987 119 1965 142 ct 1907 142 l 1928 119 1946 95 1961 70 ct 1977 46 1989 20 1999 -6 ct 735 | 2009 -32 2016 -59 2021 -88 ct 2026 -116 2028 -146 2028 -177 ct 2028 -207 2026 -237 2021 -265 ct 736 | 2016 -294 2009 -321 1999 -347 ct 1989 -373 1977 -398 1961 -423 ct 1946 -448 1928 -472 1907 -495 ct 737 | 1965 -495 l 1987 -472 2005 -448 2021 -423 ct 2036 -399 2049 -373 2059 -347 ct 738 | 2069 -321 2077 -294 2081 -266 ct 2086 -238 2088 -208 2088 -177 ct 2088 -176 l 739 | p ef 740 | pom 741 | pum 742 | 2792 12872 t 743 | 265 -425 m 238 -425 214 -421 194 -412 ct 173 -403 156 -390 142 -374 ct 128 -357 117 -337 110 -314 ct 744 | 103 -291 100 -265 100 -237 ct 100 -209 103 -183 111 -159 ct 119 -136 130 -116 144 -99 ct 745 | 158 -82 176 -69 197 -59 ct 218 -50 241 -45 267 -45 ct 285 -45 302 -48 317 -53 ct 746 | 332 -57 346 -64 358 -73 ct 370 -81 381 -92 390 -104 ct 400 -116 408 -129 416 -143 ct 747 | 468 -117 l 459 -100 449 -83 437 -68 ct 424 -53 409 -40 393 -29 ct 376 -18 357 -9 335 -3 ct 748 | 314 4 290 7 264 7 ct 226 7 193 1 164 -11 ct 136 -23 112 -40 92 -62 ct 73 -84 59 -109 49 -139 ct 749 | 40 -169 35 -202 35 -237 ct 35 -274 40 -307 50 -337 ct 60 -366 75 -391 94 -412 ct 750 | 114 -433 138 -449 166 -460 ct 195 -471 227 -477 264 -477 ct 314 -477 356 -467 389 -448 ct 751 | 423 -428 448 -399 464 -361 ct 403 -341 l 399 -352 393 -362 385 -372 ct 378 -383 368 -392 357 -399 ct 752 | 345 -407 332 -413 317 -418 ct 302 -423 284 -425 265 -425 ct p ef 753 | 546 -177 m 546 -208 549 -238 553 -266 ct 558 -294 565 -321 575 -347 ct 585 -373 598 -399 614 -423 ct 754 | 629 -448 648 -472 670 -495 ct 728 -495 l 707 -472 689 -448 674 -423 ct 658 -398 646 -373 636 -347 ct 755 | 626 -321 619 -294 614 -265 ct 609 -237 607 -207 607 -177 ct 607 -146 609 -116 614 -88 ct 756 | 619 -59 626 -32 636 -6 ct 646 20 658 46 674 70 ct 689 95 707 119 728 142 ct 670 142 l 757 | 648 119 629 95 614 70 ct 598 46 585 20 575 -6 ct 565 -32 558 -59 553 -87 ct 549 -115 546 -145 546 -176 ct 758 | 546 -177 l p ef 759 | 789 0 m 789 -51 l 909 -51 l 909 -413 l 803 -337 l 803 -394 l 914 -471 l 760 | 969 -471 l 969 -51 l 1084 -51 l 1084 0 l 789 0 l p ef 761 | 1253 -73 m 1253 -17 l 1253 -5 1252 6 1251 15 ct 1250 25 1248 34 1246 42 ct 762 | 1244 51 1241 58 1238 66 ct 1235 73 1231 80 1227 88 ct 1185 88 l 1195 73 1203 58 1209 44 ct 763 | 1214 29 1217 14 1217 0 ct 1187 0 l 1187 -73 l 1253 -73 l p ef 764 | 1372 0 m 1372 -51 l 1492 -51 l 1492 -413 l 1386 -337 l 1386 -394 l 765 | 1497 -471 l 1552 -471 l 1552 -51 l 1667 -51 l 1667 0 l 1372 0 l p ef 766 | 1892 -176 m 1892 -145 1890 -115 1885 -87 ct 1881 -59 1873 -32 1863 -6 ct 1853 20 1840 46 1825 70 ct 767 | 1809 95 1791 119 1769 142 ct 1711 142 l 1732 119 1750 95 1765 70 ct 1781 46 1793 20 1803 -6 ct 768 | 1813 -32 1820 -59 1825 -88 ct 1830 -116 1832 -146 1832 -177 ct 1832 -207 1830 -237 1825 -265 ct 769 | 1820 -294 1813 -321 1803 -347 ct 1793 -373 1781 -398 1765 -423 ct 1750 -448 1732 -472 1711 -495 ct 770 | 1769 -495 l 1791 -472 1809 -448 1825 -423 ct 1840 -399 1853 -373 1863 -347 ct 771 | 1873 -321 1881 -294 1885 -266 ct 1890 -238 1892 -208 1892 -177 ct 1892 -176 l 772 | p ef 773 | pom 774 | pum 775 | 2792 13638 t 776 | 461 -240 m 461 -201 455 -166 444 -136 ct 432 -106 416 -81 395 -61 ct 375 -41 350 -26 322 -16 ct 777 | 295 -5 264 0 232 0 ct 56 0 l 56 -470 l 212 -470 l 248 -470 282 -466 312 -457 ct 778 | 343 -448 369 -434 391 -415 ct 413 -396 430 -372 443 -343 ct 455 -314 461 -280 461 -240 ct 779 | p 780 | 397 -240 m 397 -272 393 -299 383 -321 ct 374 -344 361 -363 345 -377 ct 329 -391 309 -402 286 -409 ct 781 | 263 -416 238 -419 210 -419 ct 120 -419 l 120 -51 l 225 -51 l 249 -51 272 -55 293 -63 ct 782 | 314 -71 333 -83 348 -99 ct 363 -115 375 -134 384 -158 ct 393 -181 397 -209 397 -240 ct 783 | p ef 784 | 546 -177 m 546 -208 549 -238 553 -266 ct 558 -294 565 -321 575 -347 ct 585 -373 598 -399 614 -423 ct 785 | 629 -448 648 -472 670 -495 ct 728 -495 l 707 -472 689 -448 674 -423 ct 658 -398 646 -373 636 -347 ct 786 | 626 -321 619 -294 614 -265 ct 609 -237 607 -207 607 -177 ct 607 -146 609 -116 614 -88 ct 787 | 619 -59 626 -32 636 -6 ct 646 20 658 46 674 70 ct 689 95 707 119 728 142 ct 670 142 l 788 | 648 119 629 95 614 70 ct 598 46 585 20 575 -6 ct 565 -32 558 -59 553 -87 ct 549 -115 546 -145 546 -176 ct 789 | 546 -177 l p ef 790 | 1031 -107 m 1031 -1 l 974 -1 l 974 -107 l 753 -107 l 753 -154 l 968 -471 l 791 | 1031 -471 l 1031 -154 l 1097 -154 l 1097 -107 l 1031 -107 l p 792 | 974 -403 m 974 -402 973 -400 971 -397 ct 969 -393 967 -390 965 -386 ct 963 -382 961 -378 958 -374 ct 793 | 956 -370 954 -366 952 -363 ct 832 -186 l 830 -184 829 -182 827 -179 ct 825 -176 822 -173 820 -170 ct 794 | 818 -167 816 -164 813 -161 ct 811 -158 809 -156 808 -154 ct 974 -154 l 974 -403 l 795 | p ef 796 | 1253 -73 m 1253 -17 l 1253 -5 1252 6 1251 15 ct 1250 25 1248 34 1246 42 ct 797 | 1244 51 1241 58 1238 66 ct 1235 73 1231 80 1227 88 ct 1185 88 l 1195 73 1203 58 1209 44 ct 798 | 1214 29 1217 14 1217 0 ct 1187 0 l 1187 -73 l 1253 -73 l p ef 799 | 1354 0 m 1354 -42 l 1366 -68 1380 -91 1396 -111 ct 1412 -131 1430 -149 1448 -165 ct 800 | 1466 -182 1483 -197 1501 -210 ct 1519 -224 1535 -238 1549 -252 ct 1563 -266 1575 -280 1584 -295 ct 801 | 1592 -310 1597 -327 1597 -347 ct 1597 -360 1595 -372 1591 -382 ct 1587 -392 1581 -400 1573 -407 ct 802 | 1566 -414 1557 -419 1546 -423 ct 1536 -426 1524 -428 1511 -428 ct 1499 -428 1488 -426 1477 -423 ct 803 | 1467 -420 1457 -415 1449 -408 ct 1441 -401 1434 -393 1429 -383 ct 1423 -373 1420 -362 1419 -349 ct 804 | 1357 -354 l 1359 -371 1364 -387 1371 -402 ct 1378 -417 1389 -430 1401 -441 ct 805 | 1414 -452 1430 -461 1448 -468 ct 1466 -474 1487 -477 1511 -477 ct 1534 -477 1555 -475 1573 -469 ct 806 | 1592 -464 1607 -455 1620 -444 ct 1632 -433 1642 -420 1649 -404 ct 1655 -388 1659 -369 1659 -349 ct 807 | 1659 -333 1656 -318 1650 -303 ct 1644 -289 1637 -276 1627 -263 ct 1618 -250 1607 -237 1595 -225 ct 808 | 1582 -213 1569 -202 1555 -190 ct 1542 -179 1528 -167 1514 -156 ct 1501 -145 1488 -134 1475 -122 ct 809 | 1463 -111 1452 -99 1443 -88 ct 1433 -76 1426 -64 1421 -51 ct 1666 -51 l 1666 0 l 810 | 1354 0 l p ef 811 | 1892 -176 m 1892 -145 1890 -115 1885 -87 ct 1881 -59 1873 -32 1863 -6 ct 1853 20 1840 46 1825 70 ct 812 | 1809 95 1791 119 1769 142 ct 1711 142 l 1732 119 1750 95 1765 70 ct 1781 46 1793 20 1803 -6 ct 813 | 1813 -32 1820 -59 1825 -88 ct 1830 -116 1832 -146 1832 -177 ct 1832 -207 1830 -237 1825 -265 ct 814 | 1820 -294 1813 -321 1803 -347 ct 1793 -373 1781 -398 1765 -423 ct 1750 -448 1732 -472 1711 -495 ct 815 | 1769 -495 l 1791 -472 1809 -448 1825 -423 ct 1840 -399 1853 -373 1863 -347 ct 816 | 1873 -321 1881 -294 1885 -266 ct 1890 -238 1892 -208 1892 -177 ct 1892 -176 l 817 | p ef 818 | pom 819 | 820 | 0.812 0.906 0.898 c 20137 14208 m 18457 14208 l 18457 11061 l 21817 11061 l 821 | 21817 14208 l 20137 14208 l p ef 822 | 0.503 0.503 0.503 c 20137 14208 m 18457 14208 l 18457 11061 l 21817 11061 l 823 | 21817 14208 l 20137 14208 l pc 824 | pum 825 | 19070 12107 t 826 | 0.125 0.113 0.109 c 420 -133 m 420 -109 415 -89 406 -72 ct 397 -55 384 -41 368 -31 ct 827 | 353 -20 334 -12 313 -7 ct 292 -2 270 0 247 0 ct 56 0 l 56 -470 l 227 -470 l 828 | 253 -470 276 -468 297 -464 ct 317 -459 335 -452 349 -443 ct 363 -434 374 -422 382 -408 ct 829 | 389 -393 393 -376 393 -356 ct 393 -343 391 -331 387 -319 ct 384 -308 378 -297 371 -288 ct 830 | 363 -278 354 -270 343 -264 ct 331 -257 318 -252 303 -248 ct 322 -246 339 -242 354 -235 ct 831 | 368 -229 380 -221 390 -211 ct 400 -201 407 -189 412 -176 ct 418 -162 420 -148 420 -133 ct 832 | p 833 | 329 -349 m 329 -374 320 -392 303 -403 ct 285 -414 260 -419 227 -419 ct 120 -419 l 834 | 120 -271 l 227 -271 l 246 -271 262 -273 275 -276 ct 287 -280 298 -285 306 -292 ct 835 | 314 -299 320 -307 323 -316 ct 327 -326 329 -337 329 -349 ct p 836 | 356 -138 m 356 -153 353 -165 348 -176 ct 342 -186 334 -195 324 -202 ct 314 -208 301 -213 287 -216 ct 837 | 273 -219 257 -221 239 -221 ct 120 -221 l 120 -51 l 244 -51 l 260 -51 275 -52 289 -55 ct 838 | 302 -58 314 -62 324 -69 ct 334 -76 342 -85 347 -96 ct 353 -107 356 -121 356 -138 ct 839 | p ef 840 | 508 -177 m 508 -208 511 -238 515 -266 ct 520 -294 527 -321 537 -347 ct 547 -373 560 -399 576 -423 ct 841 | 591 -448 610 -472 632 -495 ct 690 -495 l 669 -472 651 -448 636 -423 ct 620 -398 608 -373 598 -347 ct 842 | 588 -321 581 -294 576 -265 ct 571 -237 569 -207 569 -177 ct 569 -146 571 -116 576 -88 ct 843 | 581 -59 588 -32 598 -6 ct 608 20 620 46 636 70 ct 651 95 669 119 690 142 ct 632 142 l 844 | 610 119 591 95 576 70 ct 560 46 547 20 537 -6 ct 527 -32 520 -59 515 -87 ct 511 -115 508 -145 508 -176 ct 845 | 508 -177 l p ef 846 | 730 -155 m 730 -208 l 897 -208 l 897 -155 l 730 -155 l p ef 847 | 1227 -107 m 1227 -1 l 1170 -1 l 1170 -107 l 949 -107 l 949 -154 l 848 | 1164 -471 l 1227 -471 l 1227 -154 l 1293 -154 l 1293 -107 l 1227 -107 l 849 | p 850 | 1170 -403 m 1170 -402 1169 -400 1167 -397 ct 1165 -393 1163 -390 1161 -386 ct 851 | 1159 -382 1157 -378 1154 -374 ct 1152 -370 1150 -366 1148 -363 ct 1028 -186 l 852 | 1026 -184 1025 -182 1023 -179 ct 1021 -176 1018 -173 1016 -170 ct 1014 -167 1012 -164 1009 -161 ct 853 | 1007 -158 1005 -156 1004 -154 ct 1170 -154 l 1170 -403 l p ef 854 | 1449 -73 m 1449 -17 l 1449 -5 1448 6 1447 15 ct 1446 25 1444 34 1442 42 ct 855 | 1440 51 1437 58 1434 66 ct 1431 73 1427 80 1423 88 ct 1381 88 l 1391 73 1399 58 1405 44 ct 856 | 1410 29 1413 14 1413 0 ct 1383 0 l 1383 -73 l 1449 -73 l p ef 857 | 1550 0 m 1550 -42 l 1562 -68 1576 -91 1592 -111 ct 1608 -131 1626 -149 1644 -165 ct 858 | 1662 -182 1679 -197 1697 -210 ct 1715 -224 1731 -238 1745 -252 ct 1759 -266 1771 -280 1780 -295 ct 859 | 1788 -310 1793 -327 1793 -347 ct 1793 -360 1791 -372 1787 -382 ct 1783 -392 1777 -400 1769 -407 ct 860 | 1762 -414 1753 -419 1742 -423 ct 1732 -426 1720 -428 1707 -428 ct 1695 -428 1684 -426 1673 -423 ct 861 | 1663 -420 1653 -415 1645 -408 ct 1637 -401 1630 -393 1625 -383 ct 1619 -373 1616 -362 1615 -349 ct 862 | 1553 -354 l 1555 -371 1560 -387 1567 -402 ct 1574 -417 1585 -430 1597 -441 ct 863 | 1610 -452 1626 -461 1644 -468 ct 1662 -474 1683 -477 1707 -477 ct 1730 -477 1751 -475 1769 -469 ct 864 | 1788 -464 1803 -455 1816 -444 ct 1828 -433 1838 -420 1845 -404 ct 1851 -388 1855 -369 1855 -349 ct 865 | 1855 -333 1852 -318 1846 -303 ct 1840 -289 1833 -276 1823 -263 ct 1814 -250 1803 -237 1791 -225 ct 866 | 1778 -213 1765 -202 1751 -190 ct 1738 -179 1724 -167 1710 -156 ct 1697 -145 1684 -134 1671 -122 ct 867 | 1659 -111 1648 -99 1639 -88 ct 1629 -76 1622 -64 1617 -51 ct 1862 -51 l 1862 0 l 868 | 1550 0 l p ef 869 | 2088 -176 m 2088 -145 2086 -115 2081 -87 ct 2077 -59 2069 -32 2059 -6 ct 2049 20 2036 46 2021 70 ct 870 | 2005 95 1987 119 1965 142 ct 1907 142 l 1928 119 1946 95 1961 70 ct 1977 46 1989 20 1999 -6 ct 871 | 2009 -32 2016 -59 2021 -88 ct 2026 -116 2028 -146 2028 -177 ct 2028 -207 2026 -237 2021 -265 ct 872 | 2016 -294 2009 -321 1999 -347 ct 1989 -373 1977 -398 1961 -423 ct 1946 -448 1928 -472 1907 -495 ct 873 | 1965 -495 l 1987 -472 2005 -448 2021 -423 ct 2036 -399 2049 -373 2059 -347 ct 874 | 2069 -321 2077 -294 2081 -266 ct 2086 -238 2088 -208 2088 -177 ct 2088 -176 l 875 | p ef 876 | pom 877 | pum 878 | 19168 12872 t 879 | 265 -425 m 238 -425 214 -421 194 -412 ct 173 -403 156 -390 142 -374 ct 128 -357 117 -337 110 -314 ct 880 | 103 -291 100 -265 100 -237 ct 100 -209 103 -183 111 -159 ct 119 -136 130 -116 144 -99 ct 881 | 158 -82 176 -69 197 -59 ct 218 -50 241 -45 267 -45 ct 285 -45 302 -48 317 -53 ct 882 | 332 -57 346 -64 358 -73 ct 370 -81 381 -92 390 -104 ct 400 -116 408 -129 416 -143 ct 883 | 468 -117 l 459 -100 449 -83 437 -68 ct 424 -53 409 -40 393 -29 ct 376 -18 357 -9 335 -3 ct 884 | 314 4 290 7 264 7 ct 226 7 193 1 164 -11 ct 136 -23 112 -40 92 -62 ct 73 -84 59 -109 49 -139 ct 885 | 40 -169 35 -202 35 -237 ct 35 -274 40 -307 50 -337 ct 60 -366 75 -391 94 -412 ct 886 | 114 -433 138 -449 166 -460 ct 195 -471 227 -477 264 -477 ct 314 -477 356 -467 389 -448 ct 887 | 423 -428 448 -399 464 -361 ct 403 -341 l 399 -352 393 -362 385 -372 ct 378 -383 368 -392 357 -399 ct 888 | 345 -407 332 -413 317 -418 ct 302 -423 284 -425 265 -425 ct p ef 889 | 546 -177 m 546 -208 549 -238 553 -266 ct 558 -294 565 -321 575 -347 ct 585 -373 598 -399 614 -423 ct 890 | 629 -448 648 -472 670 -495 ct 728 -495 l 707 -472 689 -448 674 -423 ct 658 -398 646 -373 636 -347 ct 891 | 626 -321 619 -294 614 -265 ct 609 -237 607 -207 607 -177 ct 607 -146 609 -116 614 -88 ct 892 | 619 -59 626 -32 636 -6 ct 646 20 658 46 674 70 ct 689 95 707 119 728 142 ct 670 142 l 893 | 648 119 629 95 614 70 ct 598 46 585 20 575 -6 ct 565 -32 558 -59 553 -87 ct 549 -115 546 -145 546 -176 ct 894 | 546 -177 l p ef 895 | 789 0 m 789 -51 l 909 -51 l 909 -413 l 803 -337 l 803 -394 l 914 -471 l 896 | 969 -471 l 969 -51 l 1084 -51 l 1084 0 l 789 0 l p ef 897 | 1253 -73 m 1253 -17 l 1253 -5 1252 6 1251 15 ct 1250 25 1248 34 1246 42 ct 898 | 1244 51 1241 58 1238 66 ct 1235 73 1231 80 1227 88 ct 1185 88 l 1195 73 1203 58 1209 44 ct 899 | 1214 29 1217 14 1217 0 ct 1187 0 l 1187 -73 l 1253 -73 l p ef 900 | 1670 -130 m 1670 -108 1667 -89 1660 -72 ct 1653 -55 1643 -41 1629 -29 ct 1616 -17 1599 -8 1579 -2 ct 901 | 1559 4 1536 7 1511 7 ct 1482 7 1457 3 1437 -4 ct 1417 -11 1401 -21 1388 -33 ct 902 | 1375 -44 1365 -58 1359 -73 ct 1352 -89 1348 -104 1346 -121 ct 1408 -126 l 1410 -114 1413 -102 1418 -92 ct 903 | 1423 -82 1429 -73 1438 -66 ct 1446 -58 1456 -53 1468 -49 ct 1480 -45 1494 -43 1511 -43 ct 904 | 1541 -43 1565 -50 1582 -65 ct 1599 -80 1608 -102 1608 -132 ct 1608 -149 1604 -163 1596 -173 ct 905 | 1589 -184 1579 -192 1568 -198 ct 1556 -204 1544 -208 1530 -210 ct 1517 -212 1504 -213 1493 -213 ct 906 | 1459 -213 l 1459 -265 l 1492 -265 l 1503 -265 1515 -266 1527 -269 ct 1539 -271 1551 -275 1561 -281 ct 907 | 1571 -287 1579 -296 1586 -306 ct 1592 -317 1596 -330 1596 -346 ct 1596 -371 1588 -391 1573 -406 ct 908 | 1559 -420 1537 -428 1507 -428 ct 1481 -428 1459 -421 1443 -407 ct 1427 -394 1417 -375 1415 -350 ct 909 | 1354 -355 l 1357 -375 1362 -393 1371 -409 ct 1380 -424 1391 -437 1405 -447 ct 910 | 1419 -457 1434 -464 1452 -469 ct 1470 -475 1488 -477 1508 -477 ct 1534 -477 1557 -474 1576 -467 ct 911 | 1595 -461 1610 -452 1622 -440 ct 1634 -429 1643 -416 1649 -401 ct 1654 -386 1657 -370 1657 -353 ct 912 | 1657 -339 1655 -326 1652 -314 ct 1648 -302 1642 -291 1634 -281 ct 1626 -272 1616 -264 1603 -257 ct 913 | 1591 -250 1576 -245 1559 -241 ct 1559 -240 l 1578 -238 1594 -233 1608 -227 ct 914 | 1622 -220 1634 -212 1643 -202 ct 1652 -193 1659 -181 1664 -169 ct 1668 -156 1670 -143 1670 -130 ct 915 | p ef 916 | 1892 -176 m 1892 -145 1890 -115 1885 -87 ct 1881 -59 1873 -32 1863 -6 ct 1853 20 1840 46 1825 70 ct 917 | 1809 95 1791 119 1769 142 ct 1711 142 l 1732 119 1750 95 1765 70 ct 1781 46 1793 20 1803 -6 ct 918 | 1813 -32 1820 -59 1825 -88 ct 1830 -116 1832 -146 1832 -177 ct 1832 -207 1830 -237 1825 -265 ct 919 | 1820 -294 1813 -321 1803 -347 ct 1793 -373 1781 -398 1765 -423 ct 1750 -448 1732 -472 1711 -495 ct 920 | 1769 -495 l 1791 -472 1809 -448 1825 -423 ct 1840 -399 1853 -373 1863 -347 ct 921 | 1873 -321 1881 -294 1885 -266 ct 1890 -238 1892 -208 1892 -177 ct 1892 -176 l 922 | p ef 923 | pom 924 | pum 925 | 19168 13638 t 926 | 461 -240 m 461 -201 455 -166 444 -136 ct 432 -106 416 -81 395 -61 ct 375 -41 350 -26 322 -16 ct 927 | 295 -5 264 0 232 0 ct 56 0 l 56 -470 l 212 -470 l 248 -470 282 -466 312 -457 ct 928 | 343 -448 369 -434 391 -415 ct 413 -396 430 -372 443 -343 ct 455 -314 461 -280 461 -240 ct 929 | p 930 | 397 -240 m 397 -272 393 -299 383 -321 ct 374 -344 361 -363 345 -377 ct 329 -391 309 -402 286 -409 ct 931 | 263 -416 238 -419 210 -419 ct 120 -419 l 120 -51 l 225 -51 l 249 -51 272 -55 293 -63 ct 932 | 314 -71 333 -83 348 -99 ct 363 -115 375 -134 384 -158 ct 393 -181 397 -209 397 -240 ct 933 | p ef 934 | 546 -177 m 546 -208 549 -238 553 -266 ct 558 -294 565 -321 575 -347 ct 585 -373 598 -399 614 -423 ct 935 | 629 -448 648 -472 670 -495 ct 728 -495 l 707 -472 689 -448 674 -423 ct 658 -398 646 -373 636 -347 ct 936 | 626 -321 619 -294 614 -265 ct 609 -237 607 -207 607 -177 ct 607 -146 609 -116 614 -88 ct 937 | 619 -59 626 -32 636 -6 ct 646 20 658 46 674 70 ct 689 95 707 119 728 142 ct 670 142 l 938 | 648 119 629 95 614 70 ct 598 46 585 20 575 -6 ct 565 -32 558 -59 553 -87 ct 549 -115 546 -145 546 -176 ct 939 | 546 -177 l p ef 940 | 1031 -107 m 1031 -1 l 974 -1 l 974 -107 l 753 -107 l 753 -154 l 968 -471 l 941 | 1031 -471 l 1031 -154 l 1097 -154 l 1097 -107 l 1031 -107 l p 942 | 974 -403 m 974 -402 973 -400 971 -397 ct 969 -393 967 -390 965 -386 ct 963 -382 961 -378 958 -374 ct 943 | 956 -370 954 -366 952 -363 ct 832 -186 l 830 -184 829 -182 827 -179 ct 825 -176 822 -173 820 -170 ct 944 | 818 -167 816 -164 813 -161 ct 811 -158 809 -156 808 -154 ct 974 -154 l 974 -403 l 945 | p ef 946 | 1253 -73 m 1253 -17 l 1253 -5 1252 6 1251 15 ct 1250 25 1248 34 1246 42 ct 947 | 1244 51 1241 58 1238 66 ct 1235 73 1231 80 1227 88 ct 1185 88 l 1195 73 1203 58 1209 44 ct 948 | 1214 29 1217 14 1217 0 ct 1187 0 l 1187 -73 l 1253 -73 l p ef 949 | 1614 -107 m 1614 -1 l 1557 -1 l 1557 -107 l 1336 -107 l 1336 -154 l 950 | 1551 -471 l 1614 -471 l 1614 -154 l 1680 -154 l 1680 -107 l 1614 -107 l 951 | p 952 | 1557 -403 m 1557 -402 1556 -400 1554 -397 ct 1552 -393 1550 -390 1548 -386 ct 953 | 1546 -382 1544 -378 1541 -374 ct 1539 -370 1537 -366 1535 -363 ct 1415 -186 l 954 | 1413 -184 1412 -182 1410 -179 ct 1408 -176 1405 -173 1403 -170 ct 1401 -167 1399 -164 1396 -161 ct 955 | 1394 -158 1392 -156 1391 -154 ct 1557 -154 l 1557 -403 l p ef 956 | 1892 -176 m 1892 -145 1890 -115 1885 -87 ct 1881 -59 1873 -32 1863 -6 ct 1853 20 1840 46 1825 70 ct 957 | 1809 95 1791 119 1769 142 ct 1711 142 l 1732 119 1750 95 1765 70 ct 1781 46 1793 20 1803 -6 ct 958 | 1813 -32 1820 -59 1825 -88 ct 1830 -116 1832 -146 1832 -177 ct 1832 -207 1830 -237 1825 -265 ct 959 | 1820 -294 1813 -321 1803 -347 ct 1793 -373 1781 -398 1765 -423 ct 1750 -448 1732 -472 1711 -495 ct 960 | 1769 -495 l 1791 -472 1809 -448 1825 -423 ct 1840 -399 1853 -373 1863 -347 ct 961 | 1873 -321 1881 -294 1885 -266 ct 1890 -238 1892 -208 1892 -177 ct 1892 -176 l 962 | p ef 963 | pom 964 | 965 | 0.812 0.906 0.898 c 6987 11588 m 6450 11588 6008 11939 6008 12351 ct 6008 12569 5787 12738 5503 12738 ct 966 | 5441 12738 5441 12738 5441 12738 ct 5441 13113 5441 13113 5441 13113 ct 5503 13113 5503 13113 5503 13113 ct 967 | 6056 13113 6497 12775 6497 12351 ct 6497 12145 6718 11976 6987 11976 ct 7065 11976 7065 11976 7065 11976 ct 968 | 7065 12218 7065 12218 7065 12218 ct 7681 11782 7681 11782 7681 11782 ct 7065 11335 7065 11335 7065 11335 ct 969 | 7065 11588 7065 11588 7065 11588 ct 6987 11588 l 6987 11588 l p 970 | 5441 11335 m 5441 11335 l p 971 | 7681 13114 m 7681 13114 l p ef 972 | 0.503 0.503 0.503 c 6987 11588 m 6450 11588 6008 11939 6008 12351 ct 6008 12569 5787 12738 5503 12738 ct 973 | 5441 12738 5441 12738 5441 12738 ct 5441 13113 5441 13113 5441 13113 ct 5503 13113 5503 13113 5503 13113 ct 974 | 6056 13113 6497 12775 6497 12351 ct 6497 12145 6718 11976 6987 11976 ct 7065 11976 7065 11976 7065 11976 ct 975 | 7065 12218 7065 12218 7065 12218 ct 7681 11782 7681 11782 7681 11782 ct 7065 11335 7065 11335 7065 11335 ct 976 | 7065 11588 7065 11588 7065 11588 ct 6987 11588 l 6987 11588 l pc 977 | 5441 11335 m 5441 11335 l pc 978 | 7681 13114 m 7681 13114 l pc 979 | 980 | 0.812 0.906 0.898 c 6965 20401 m 6428 20401 5986 20752 5986 21163 ct 5986 21382 5765 21551 5481 21551 ct 981 | 5418 21551 5418 21551 5418 21551 ct 5418 21926 5418 21926 5418 21926 ct 5481 21926 5481 21926 5481 21926 ct 982 | 6033 21926 6475 21588 6475 21163 ct 6475 20958 6696 20789 6965 20789 ct 7043 20789 7043 20789 7043 20789 ct 983 | 7043 21031 7043 21031 7043 21031 ct 7659 20595 7659 20595 7659 20595 ct 7043 20148 7043 20148 7043 20148 ct 984 | 7043 20401 7043 20401 7043 20401 ct 6965 20401 l 6965 20401 l p 985 | 5418 20148 m 5418 20148 l p 986 | 7659 21927 m 7659 21927 l p ef 987 | 0.503 0.503 0.503 c 6965 20401 m 6428 20401 5986 20752 5986 21163 ct 5986 21382 5765 21551 5481 21551 ct 988 | 5418 21551 5418 21551 5418 21551 ct 5418 21926 5418 21926 5418 21926 ct 5481 21926 5481 21926 5481 21926 ct 989 | 6033 21926 6475 21588 6475 21163 ct 6475 20958 6696 20789 6965 20789 ct 7043 20789 7043 20789 7043 20789 ct 990 | 7043 21031 7043 21031 7043 21031 ct 7659 20595 7659 20595 7659 20595 ct 7043 20148 7043 20148 7043 20148 ct 991 | 7043 20401 7043 20401 7043 20401 ct 6965 20401 l 6965 20401 l pc 992 | 5418 20148 m 5418 20148 l pc 993 | 7659 21927 m 7659 21927 l pc 994 | 995 | 0.812 0.906 0.898 c 16876 20616 m 17446 20616 17915 20967 17915 21379 ct 996 | 17915 21598 18150 21767 18452 21767 ct 18518 21767 18518 21767 18518 21767 ct 997 | 18518 22141 18518 22141 18518 22141 ct 18452 22141 18452 22141 18452 22141 ct 998 | 17864 22141 17395 21803 17395 21379 ct 17395 21173 17160 21004 16876 21004 ct 999 | 16792 21004 16792 21004 16792 21004 ct 16792 21246 16792 21246 16792 21246 ct 1000 | 16137 20810 16137 20810 16137 20810 ct 16792 20363 16792 20363 16792 20363 ct 1001 | 16792 20616 16792 20616 16792 20616 ct 16876 20616 l 16876 20616 l p 1002 | 18518 20363 m 18518 20363 l p 1003 | 16137 22143 m 16137 22143 l p ef 1004 | 0.503 0.503 0.503 c 16876 20616 m 17446 20616 17915 20967 17915 21379 ct 1005 | 17915 21598 18150 21767 18452 21767 ct 18518 21767 18518 21767 18518 21767 ct 1006 | 18518 22141 18518 22141 18518 22141 ct 18452 22141 18452 22141 18452 22141 ct 1007 | 17864 22141 17395 21803 17395 21379 ct 17395 21173 17160 21004 16876 21004 ct 1008 | 16792 21004 16792 21004 16792 21004 ct 16792 21246 16792 21246 16792 21246 ct 1009 | 16137 20810 16137 20810 16137 20810 ct 16792 20363 16792 20363 16792 20363 ct 1010 | 16792 20616 16792 20616 16792 20616 ct 16876 20616 l 16876 20616 l pc 1011 | 18518 20363 m 18518 20363 l pc 1012 | 16137 22143 m 16137 22143 l pc 1013 | 1014 | 0.812 0.906 0.898 c 16813 11725 m 17383 11725 17852 12076 17852 12487 ct 1015 | 17852 12706 18087 12875 18389 12875 ct 18455 12875 18455 12875 18455 12875 ct 1016 | 18455 13250 18455 13250 18455 13250 ct 18389 13250 18389 13250 18389 13250 ct 1017 | 17802 13250 17332 12912 17332 12487 ct 17332 12282 17097 12113 16813 12113 ct 1018 | 16729 12113 16729 12113 16729 12113 ct 16729 12355 16729 12355 16729 12355 ct 1019 | 16075 11919 16075 11919 16075 11919 ct 16729 11472 16729 11472 16729 11472 ct 1020 | 16729 11725 16729 11725 16729 11725 ct 16813 11725 l 16813 11725 l p 1021 | 18455 11472 m 18455 11472 l p 1022 | 16075 13251 m 16075 13251 l p ef 1023 | 0.503 0.503 0.503 c 16813 11725 m 17383 11725 17852 12076 17852 12487 ct 1024 | 17852 12706 18087 12875 18389 12875 ct 18455 12875 18455 12875 18455 12875 ct 1025 | 18455 13250 18455 13250 18455 13250 ct 18389 13250 18389 13250 18389 13250 ct 1026 | 17802 13250 17332 12912 17332 12487 ct 17332 12282 17097 12113 16813 12113 ct 1027 | 16729 12113 16729 12113 16729 12113 ct 16729 12355 16729 12355 16729 12355 ct 1028 | 16075 11919 16075 11919 16075 11919 ct 16729 11472 16729 11472 16729 11472 ct 1029 | 16729 11725 16729 11725 16729 11725 ct 16813 11725 l 16813 11725 l pc 1030 | 18455 11472 m 18455 11472 l pc 1031 | 16075 13251 m 16075 13251 l pc 1032 | 1033 | 0.812 0.906 0.898 c 3761 22825 m 2081 22825 l 2081 19679 l 5441 19679 l 1034 | 5441 22825 l 3761 22825 l p ef 1035 | 0.503 0.503 0.503 c 3761 22825 m 2081 22825 l 2081 19679 l 5441 19679 l 1036 | 5441 22825 l 3761 22825 l pc 1037 | pum 1038 | 2694 20725 t 1039 | 0.125 0.113 0.109 c 420 -133 m 420 -109 415 -89 406 -72 ct 397 -55 384 -41 368 -31 ct 1040 | 353 -20 334 -12 313 -7 ct 292 -2 270 0 247 0 ct 56 0 l 56 -470 l 227 -470 l 1041 | 253 -470 276 -468 297 -464 ct 317 -459 335 -452 349 -443 ct 363 -434 374 -422 382 -408 ct 1042 | 389 -393 393 -376 393 -356 ct 393 -343 391 -331 387 -319 ct 384 -308 378 -297 371 -288 ct 1043 | 363 -278 354 -270 343 -264 ct 331 -257 318 -252 303 -248 ct 322 -246 339 -242 354 -235 ct 1044 | 368 -229 380 -221 390 -211 ct 400 -201 407 -189 412 -176 ct 418 -162 420 -148 420 -133 ct 1045 | p 1046 | 329 -349 m 329 -374 320 -392 303 -403 ct 285 -414 260 -419 227 -419 ct 120 -419 l 1047 | 120 -271 l 227 -271 l 246 -271 262 -273 275 -276 ct 287 -280 298 -285 306 -292 ct 1048 | 314 -299 320 -307 323 -316 ct 327 -326 329 -337 329 -349 ct p 1049 | 356 -138 m 356 -153 353 -165 348 -176 ct 342 -186 334 -195 324 -202 ct 314 -208 301 -213 287 -216 ct 1050 | 273 -219 257 -221 239 -221 ct 120 -221 l 120 -51 l 244 -51 l 260 -51 275 -52 289 -55 ct 1051 | 302 -58 314 -62 324 -69 ct 334 -76 342 -85 347 -96 ct 353 -107 356 -121 356 -138 ct 1052 | p ef 1053 | 508 -177 m 508 -208 511 -238 515 -266 ct 520 -294 527 -321 537 -347 ct 547 -373 560 -399 576 -423 ct 1054 | 591 -448 610 -472 632 -495 ct 690 -495 l 669 -472 651 -448 636 -423 ct 620 -398 608 -373 598 -347 ct 1055 | 588 -321 581 -294 576 -265 ct 571 -237 569 -207 569 -177 ct 569 -146 571 -116 576 -88 ct 1056 | 581 -59 588 -32 598 -6 ct 608 20 620 46 636 70 ct 651 95 669 119 690 142 ct 632 142 l 1057 | 610 119 591 95 576 70 ct 560 46 547 20 537 -6 ct 527 -32 520 -59 515 -87 ct 511 -115 508 -145 508 -176 ct 1058 | 508 -177 l p ef 1059 | 730 -155 m 730 -208 l 897 -208 l 897 -155 l 730 -155 l p ef 1060 | 1227 -107 m 1227 -1 l 1170 -1 l 1170 -107 l 949 -107 l 949 -154 l 1061 | 1164 -471 l 1227 -471 l 1227 -154 l 1293 -154 l 1293 -107 l 1227 -107 l 1062 | p 1063 | 1170 -403 m 1170 -402 1169 -400 1167 -397 ct 1165 -393 1163 -390 1161 -386 ct 1064 | 1159 -382 1157 -378 1154 -374 ct 1152 -370 1150 -366 1148 -363 ct 1028 -186 l 1065 | 1026 -184 1025 -182 1023 -179 ct 1021 -176 1018 -173 1016 -170 ct 1014 -167 1012 -164 1009 -161 ct 1066 | 1007 -158 1005 -156 1004 -154 ct 1170 -154 l 1170 -403 l p ef 1067 | 1449 -73 m 1449 -17 l 1449 -5 1448 6 1447 15 ct 1446 25 1444 34 1442 42 ct 1068 | 1440 51 1437 58 1434 66 ct 1431 73 1427 80 1423 88 ct 1381 88 l 1391 73 1399 58 1405 44 ct 1069 | 1410 29 1413 14 1413 0 ct 1383 0 l 1383 -73 l 1449 -73 l p ef 1070 | 1870 -235 m 1870 -190 1865 -152 1857 -121 ct 1848 -90 1837 -65 1822 -46 ct 1071 | 1807 -27 1790 -14 1769 -5 ct 1749 3 1728 7 1705 7 ct 1682 7 1661 3 1641 -5 ct 1621 -14 1604 -27 1590 -46 ct 1072 | 1575 -65 1564 -90 1555 -121 ct 1547 -152 1543 -190 1543 -235 ct 1543 -282 1547 -322 1555 -353 ct 1073 | 1564 -384 1575 -408 1590 -427 ct 1605 -445 1622 -458 1642 -466 ct 1662 -473 1684 -477 1707 -477 ct 1074 | 1730 -477 1751 -473 1771 -466 ct 1790 -458 1808 -445 1822 -427 ct 1837 -408 1849 -384 1857 -353 ct 1075 | 1865 -322 1870 -282 1870 -235 ct p 1076 | 1809 -235 m 1809 -272 1806 -303 1802 -328 ct 1797 -353 1791 -373 1782 -388 ct 1077 | 1774 -403 1763 -413 1750 -419 ct 1738 -425 1723 -428 1707 -428 ct 1690 -428 1676 -425 1663 -419 ct 1078 | 1650 -413 1639 -402 1630 -387 ct 1621 -373 1615 -353 1610 -328 ct 1606 -303 1604 -272 1604 -235 ct 1079 | 1604 -199 1606 -169 1610 -144 ct 1615 -119 1622 -99 1630 -84 ct 1639 -69 1650 -58 1663 -52 ct 1080 | 1675 -45 1690 -42 1706 -42 ct 1722 -42 1736 -45 1749 -52 ct 1761 -58 1772 -69 1781 -84 ct 1081 | 1790 -99 1797 -119 1801 -144 ct 1806 -169 1809 -199 1809 -235 ct p ef 1082 | 2088 -176 m 2088 -145 2086 -115 2081 -87 ct 2077 -59 2069 -32 2059 -6 ct 2049 20 2036 46 2021 70 ct 1083 | 2005 95 1987 119 1965 142 ct 1907 142 l 1928 119 1946 95 1961 70 ct 1977 46 1989 20 1999 -6 ct 1084 | 2009 -32 2016 -59 2021 -88 ct 2026 -116 2028 -146 2028 -177 ct 2028 -207 2026 -237 2021 -265 ct 1085 | 2016 -294 2009 -321 1999 -347 ct 1989 -373 1977 -398 1961 -423 ct 1946 -448 1928 -472 1907 -495 ct 1086 | 1965 -495 l 1987 -472 2005 -448 2021 -423 ct 2036 -399 2049 -373 2059 -347 ct 1087 | 2069 -321 2077 -294 2081 -266 ct 2086 -238 2088 -208 2088 -177 ct 2088 -176 l 1088 | p ef 1089 | pom 1090 | pum 1091 | 2792 21490 t 1092 | 265 -425 m 238 -425 214 -421 194 -412 ct 173 -403 156 -390 142 -374 ct 128 -357 117 -337 110 -314 ct 1093 | 103 -291 100 -265 100 -237 ct 100 -209 103 -183 111 -159 ct 119 -136 130 -116 144 -99 ct 1094 | 158 -82 176 -69 197 -59 ct 218 -50 241 -45 267 -45 ct 285 -45 302 -48 317 -53 ct 1095 | 332 -57 346 -64 358 -73 ct 370 -81 381 -92 390 -104 ct 400 -116 408 -129 416 -143 ct 1096 | 468 -117 l 459 -100 449 -83 437 -68 ct 424 -53 409 -40 393 -29 ct 376 -18 357 -9 335 -3 ct 1097 | 314 4 290 7 264 7 ct 226 7 193 1 164 -11 ct 136 -23 112 -40 92 -62 ct 73 -84 59 -109 49 -139 ct 1098 | 40 -169 35 -202 35 -237 ct 35 -274 40 -307 50 -337 ct 60 -366 75 -391 94 -412 ct 1099 | 114 -433 138 -449 166 -460 ct 195 -471 227 -477 264 -477 ct 314 -477 356 -467 389 -448 ct 1100 | 423 -428 448 -399 464 -361 ct 403 -341 l 399 -352 393 -362 385 -372 ct 378 -383 368 -392 357 -399 ct 1101 | 345 -407 332 -413 317 -418 ct 302 -423 284 -425 265 -425 ct p ef 1102 | 546 -177 m 546 -208 549 -238 553 -266 ct 558 -294 565 -321 575 -347 ct 585 -373 598 -399 614 -423 ct 1103 | 629 -448 648 -472 670 -495 ct 728 -495 l 707 -472 689 -448 674 -423 ct 658 -398 646 -373 636 -347 ct 1104 | 626 -321 619 -294 614 -265 ct 609 -237 607 -207 607 -177 ct 607 -146 609 -116 614 -88 ct 1105 | 619 -59 626 -32 636 -6 ct 646 20 658 46 674 70 ct 689 95 707 119 728 142 ct 670 142 l 1106 | 648 119 629 95 614 70 ct 598 46 585 20 575 -6 ct 565 -32 558 -59 553 -87 ct 549 -115 546 -145 546 -176 ct 1107 | 546 -177 l p ef 1108 | 789 0 m 789 -51 l 909 -51 l 909 -413 l 803 -337 l 803 -394 l 914 -471 l 1109 | 969 -471 l 969 -51 l 1084 -51 l 1084 0 l 789 0 l p ef 1110 | 1253 -73 m 1253 -17 l 1253 -5 1252 6 1251 15 ct 1250 25 1248 34 1246 42 ct 1111 | 1244 51 1241 58 1238 66 ct 1235 73 1231 80 1227 88 ct 1185 88 l 1195 73 1203 58 1209 44 ct 1112 | 1214 29 1217 14 1217 0 ct 1187 0 l 1187 -73 l 1253 -73 l p ef 1113 | 1372 0 m 1372 -51 l 1492 -51 l 1492 -413 l 1386 -337 l 1386 -394 l 1114 | 1497 -471 l 1552 -471 l 1552 -51 l 1667 -51 l 1667 0 l 1372 0 l p ef 1115 | 1892 -176 m 1892 -145 1890 -115 1885 -87 ct 1881 -59 1873 -32 1863 -6 ct 1853 20 1840 46 1825 70 ct 1116 | 1809 95 1791 119 1769 142 ct 1711 142 l 1732 119 1750 95 1765 70 ct 1781 46 1793 20 1803 -6 ct 1117 | 1813 -32 1820 -59 1825 -88 ct 1830 -116 1832 -146 1832 -177 ct 1832 -207 1830 -237 1825 -265 ct 1118 | 1820 -294 1813 -321 1803 -347 ct 1793 -373 1781 -398 1765 -423 ct 1750 -448 1732 -472 1711 -495 ct 1119 | 1769 -495 l 1791 -472 1809 -448 1825 -423 ct 1840 -399 1853 -373 1863 -347 ct 1120 | 1873 -321 1881 -294 1885 -266 ct 1890 -238 1892 -208 1892 -177 ct 1892 -176 l 1121 | p ef 1122 | pom 1123 | pum 1124 | 2792 22256 t 1125 | 461 -240 m 461 -201 455 -166 444 -136 ct 432 -106 416 -81 395 -61 ct 375 -41 350 -26 322 -16 ct 1126 | 295 -5 264 0 232 0 ct 56 0 l 56 -470 l 212 -470 l 248 -470 282 -466 312 -457 ct 1127 | 343 -448 369 -434 391 -415 ct 413 -396 430 -372 443 -343 ct 455 -314 461 -280 461 -240 ct 1128 | p 1129 | 397 -240 m 397 -272 393 -299 383 -321 ct 374 -344 361 -363 345 -377 ct 329 -391 309 -402 286 -409 ct 1130 | 263 -416 238 -419 210 -419 ct 120 -419 l 120 -51 l 225 -51 l 249 -51 272 -55 293 -63 ct 1131 | 314 -71 333 -83 348 -99 ct 363 -115 375 -134 384 -158 ct 393 -181 397 -209 397 -240 ct 1132 | p ef 1133 | 546 -177 m 546 -208 549 -238 553 -266 ct 558 -294 565 -321 575 -347 ct 585 -373 598 -399 614 -423 ct 1134 | 629 -448 648 -472 670 -495 ct 728 -495 l 707 -472 689 -448 674 -423 ct 658 -398 646 -373 636 -347 ct 1135 | 626 -321 619 -294 614 -265 ct 609 -237 607 -207 607 -177 ct 607 -146 609 -116 614 -88 ct 1136 | 619 -59 626 -32 636 -6 ct 646 20 658 46 674 70 ct 689 95 707 119 728 142 ct 670 142 l 1137 | 648 119 629 95 614 70 ct 598 46 585 20 575 -6 ct 565 -32 558 -59 553 -87 ct 549 -115 546 -145 546 -176 ct 1138 | 546 -177 l p ef 1139 | 1031 -107 m 1031 -1 l 974 -1 l 974 -107 l 753 -107 l 753 -154 l 968 -471 l 1140 | 1031 -471 l 1031 -154 l 1097 -154 l 1097 -107 l 1031 -107 l p 1141 | 974 -403 m 974 -402 973 -400 971 -397 ct 969 -393 967 -390 965 -386 ct 963 -382 961 -378 958 -374 ct 1142 | 956 -370 954 -366 952 -363 ct 832 -186 l 830 -184 829 -182 827 -179 ct 825 -176 822 -173 820 -170 ct 1143 | 818 -167 816 -164 813 -161 ct 811 -158 809 -156 808 -154 ct 974 -154 l 974 -403 l 1144 | p ef 1145 | 1253 -73 m 1253 -17 l 1253 -5 1252 6 1251 15 ct 1250 25 1248 34 1246 42 ct 1146 | 1244 51 1241 58 1238 66 ct 1235 73 1231 80 1227 88 ct 1185 88 l 1195 73 1203 58 1209 44 ct 1147 | 1214 29 1217 14 1217 0 ct 1187 0 l 1187 -73 l 1253 -73 l p ef 1148 | 1354 0 m 1354 -42 l 1366 -68 1380 -91 1396 -111 ct 1412 -131 1430 -149 1448 -165 ct 1149 | 1466 -182 1483 -197 1501 -210 ct 1519 -224 1535 -238 1549 -252 ct 1563 -266 1575 -280 1584 -295 ct 1150 | 1592 -310 1597 -327 1597 -347 ct 1597 -360 1595 -372 1591 -382 ct 1587 -392 1581 -400 1573 -407 ct 1151 | 1566 -414 1557 -419 1546 -423 ct 1536 -426 1524 -428 1511 -428 ct 1499 -428 1488 -426 1477 -423 ct 1152 | 1467 -420 1457 -415 1449 -408 ct 1441 -401 1434 -393 1429 -383 ct 1423 -373 1420 -362 1419 -349 ct 1153 | 1357 -354 l 1359 -371 1364 -387 1371 -402 ct 1378 -417 1389 -430 1401 -441 ct 1154 | 1414 -452 1430 -461 1448 -468 ct 1466 -474 1487 -477 1511 -477 ct 1534 -477 1555 -475 1573 -469 ct 1155 | 1592 -464 1607 -455 1620 -444 ct 1632 -433 1642 -420 1649 -404 ct 1655 -388 1659 -369 1659 -349 ct 1156 | 1659 -333 1656 -318 1650 -303 ct 1644 -289 1637 -276 1627 -263 ct 1618 -250 1607 -237 1595 -225 ct 1157 | 1582 -213 1569 -202 1555 -190 ct 1542 -179 1528 -167 1514 -156 ct 1501 -145 1488 -134 1475 -122 ct 1158 | 1463 -111 1452 -99 1443 -88 ct 1433 -76 1426 -64 1421 -51 ct 1666 -51 l 1666 0 l 1159 | 1354 0 l p ef 1160 | 1892 -176 m 1892 -145 1890 -115 1885 -87 ct 1881 -59 1873 -32 1863 -6 ct 1853 20 1840 46 1825 70 ct 1161 | 1809 95 1791 119 1769 142 ct 1711 142 l 1732 119 1750 95 1765 70 ct 1781 46 1793 20 1803 -6 ct 1162 | 1813 -32 1820 -59 1825 -88 ct 1830 -116 1832 -146 1832 -177 ct 1832 -207 1830 -237 1825 -265 ct 1163 | 1820 -294 1813 -321 1803 -347 ct 1793 -373 1781 -398 1765 -423 ct 1750 -448 1732 -472 1711 -495 ct 1164 | 1769 -495 l 1791 -472 1809 -448 1825 -423 ct 1840 -399 1853 -373 1863 -347 ct 1165 | 1873 -321 1881 -294 1885 -266 ct 1890 -238 1892 -208 1892 -177 ct 1892 -176 l 1166 | p ef 1167 | pom 1168 | 1169 | 0.812 0.906 0.898 c 20137 22825 m 18457 22825 l 18457 19679 l 21817 19679 l 1170 | 21817 22825 l 20137 22825 l p ef 1171 | 0.503 0.503 0.503 c 20137 22825 m 18457 22825 l 18457 19679 l 21817 19679 l 1172 | 21817 22825 l 20137 22825 l pc 1173 | pum 1174 | 19070 20725 t 1175 | 0.125 0.113 0.109 c 420 -133 m 420 -109 415 -89 406 -72 ct 397 -55 384 -41 368 -31 ct 1176 | 353 -20 334 -12 313 -7 ct 292 -2 270 0 247 0 ct 56 0 l 56 -470 l 227 -470 l 1177 | 253 -470 276 -468 297 -464 ct 317 -459 335 -452 349 -443 ct 363 -434 374 -422 382 -408 ct 1178 | 389 -393 393 -376 393 -356 ct 393 -343 391 -331 387 -319 ct 384 -308 378 -297 371 -288 ct 1179 | 363 -278 354 -270 343 -264 ct 331 -257 318 -252 303 -248 ct 322 -246 339 -242 354 -235 ct 1180 | 368 -229 380 -221 390 -211 ct 400 -201 407 -189 412 -176 ct 418 -162 420 -148 420 -133 ct 1181 | p 1182 | 329 -349 m 329 -374 320 -392 303 -403 ct 285 -414 260 -419 227 -419 ct 120 -419 l 1183 | 120 -271 l 227 -271 l 246 -271 262 -273 275 -276 ct 287 -280 298 -285 306 -292 ct 1184 | 314 -299 320 -307 323 -316 ct 327 -326 329 -337 329 -349 ct p 1185 | 356 -138 m 356 -153 353 -165 348 -176 ct 342 -186 334 -195 324 -202 ct 314 -208 301 -213 287 -216 ct 1186 | 273 -219 257 -221 239 -221 ct 120 -221 l 120 -51 l 244 -51 l 260 -51 275 -52 289 -55 ct 1187 | 302 -58 314 -62 324 -69 ct 334 -76 342 -85 347 -96 ct 353 -107 356 -121 356 -138 ct 1188 | p ef 1189 | 508 -177 m 508 -208 511 -238 515 -266 ct 520 -294 527 -321 537 -347 ct 547 -373 560 -399 576 -423 ct 1190 | 591 -448 610 -472 632 -495 ct 690 -495 l 669 -472 651 -448 636 -423 ct 620 -398 608 -373 598 -347 ct 1191 | 588 -321 581 -294 576 -265 ct 571 -237 569 -207 569 -177 ct 569 -146 571 -116 576 -88 ct 1192 | 581 -59 588 -32 598 -6 ct 608 20 620 46 636 70 ct 651 95 669 119 690 142 ct 632 142 l 1193 | 610 119 591 95 576 70 ct 560 46 547 20 537 -6 ct 527 -32 520 -59 515 -87 ct 511 -115 508 -145 508 -176 ct 1194 | 508 -177 l p ef 1195 | 730 -155 m 730 -208 l 897 -208 l 897 -155 l 730 -155 l p ef 1196 | 1227 -107 m 1227 -1 l 1170 -1 l 1170 -107 l 949 -107 l 949 -154 l 1197 | 1164 -471 l 1227 -471 l 1227 -154 l 1293 -154 l 1293 -107 l 1227 -107 l 1198 | p 1199 | 1170 -403 m 1170 -402 1169 -400 1167 -397 ct 1165 -393 1163 -390 1161 -386 ct 1200 | 1159 -382 1157 -378 1154 -374 ct 1152 -370 1150 -366 1148 -363 ct 1028 -186 l 1201 | 1026 -184 1025 -182 1023 -179 ct 1021 -176 1018 -173 1016 -170 ct 1014 -167 1012 -164 1009 -161 ct 1202 | 1007 -158 1005 -156 1004 -154 ct 1170 -154 l 1170 -403 l p ef 1203 | 1449 -73 m 1449 -17 l 1449 -5 1448 6 1447 15 ct 1446 25 1444 34 1442 42 ct 1204 | 1440 51 1437 58 1434 66 ct 1431 73 1427 80 1423 88 ct 1381 88 l 1391 73 1399 58 1405 44 ct 1205 | 1410 29 1413 14 1413 0 ct 1383 0 l 1383 -73 l 1449 -73 l p ef 1206 | 1550 0 m 1550 -42 l 1562 -68 1576 -91 1592 -111 ct 1608 -131 1626 -149 1644 -165 ct 1207 | 1662 -182 1679 -197 1697 -210 ct 1715 -224 1731 -238 1745 -252 ct 1759 -266 1771 -280 1780 -295 ct 1208 | 1788 -310 1793 -327 1793 -347 ct 1793 -360 1791 -372 1787 -382 ct 1783 -392 1777 -400 1769 -407 ct 1209 | 1762 -414 1753 -419 1742 -423 ct 1732 -426 1720 -428 1707 -428 ct 1695 -428 1684 -426 1673 -423 ct 1210 | 1663 -420 1653 -415 1645 -408 ct 1637 -401 1630 -393 1625 -383 ct 1619 -373 1616 -362 1615 -349 ct 1211 | 1553 -354 l 1555 -371 1560 -387 1567 -402 ct 1574 -417 1585 -430 1597 -441 ct 1212 | 1610 -452 1626 -461 1644 -468 ct 1662 -474 1683 -477 1707 -477 ct 1730 -477 1751 -475 1769 -469 ct 1213 | 1788 -464 1803 -455 1816 -444 ct 1828 -433 1838 -420 1845 -404 ct 1851 -388 1855 -369 1855 -349 ct 1214 | 1855 -333 1852 -318 1846 -303 ct 1840 -289 1833 -276 1823 -263 ct 1814 -250 1803 -237 1791 -225 ct 1215 | 1778 -213 1765 -202 1751 -190 ct 1738 -179 1724 -167 1710 -156 ct 1697 -145 1684 -134 1671 -122 ct 1216 | 1659 -111 1648 -99 1639 -88 ct 1629 -76 1622 -64 1617 -51 ct 1862 -51 l 1862 0 l 1217 | 1550 0 l p ef 1218 | 2088 -176 m 2088 -145 2086 -115 2081 -87 ct 2077 -59 2069 -32 2059 -6 ct 2049 20 2036 46 2021 70 ct 1219 | 2005 95 1987 119 1965 142 ct 1907 142 l 1928 119 1946 95 1961 70 ct 1977 46 1989 20 1999 -6 ct 1220 | 2009 -32 2016 -59 2021 -88 ct 2026 -116 2028 -146 2028 -177 ct 2028 -207 2026 -237 2021 -265 ct 1221 | 2016 -294 2009 -321 1999 -347 ct 1989 -373 1977 -398 1961 -423 ct 1946 -448 1928 -472 1907 -495 ct 1222 | 1965 -495 l 1987 -472 2005 -448 2021 -423 ct 2036 -399 2049 -373 2059 -347 ct 1223 | 2069 -321 2077 -294 2081 -266 ct 2086 -238 2088 -208 2088 -177 ct 2088 -176 l 1224 | p ef 1225 | pom 1226 | pum 1227 | 19168 21490 t 1228 | 265 -425 m 238 -425 214 -421 194 -412 ct 173 -403 156 -390 142 -374 ct 128 -357 117 -337 110 -314 ct 1229 | 103 -291 100 -265 100 -237 ct 100 -209 103 -183 111 -159 ct 119 -136 130 -116 144 -99 ct 1230 | 158 -82 176 -69 197 -59 ct 218 -50 241 -45 267 -45 ct 285 -45 302 -48 317 -53 ct 1231 | 332 -57 346 -64 358 -73 ct 370 -81 381 -92 390 -104 ct 400 -116 408 -129 416 -143 ct 1232 | 468 -117 l 459 -100 449 -83 437 -68 ct 424 -53 409 -40 393 -29 ct 376 -18 357 -9 335 -3 ct 1233 | 314 4 290 7 264 7 ct 226 7 193 1 164 -11 ct 136 -23 112 -40 92 -62 ct 73 -84 59 -109 49 -139 ct 1234 | 40 -169 35 -202 35 -237 ct 35 -274 40 -307 50 -337 ct 60 -366 75 -391 94 -412 ct 1235 | 114 -433 138 -449 166 -460 ct 195 -471 227 -477 264 -477 ct 314 -477 356 -467 389 -448 ct 1236 | 423 -428 448 -399 464 -361 ct 403 -341 l 399 -352 393 -362 385 -372 ct 378 -383 368 -392 357 -399 ct 1237 | 345 -407 332 -413 317 -418 ct 302 -423 284 -425 265 -425 ct p ef 1238 | 546 -177 m 546 -208 549 -238 553 -266 ct 558 -294 565 -321 575 -347 ct 585 -373 598 -399 614 -423 ct 1239 | 629 -448 648 -472 670 -495 ct 728 -495 l 707 -472 689 -448 674 -423 ct 658 -398 646 -373 636 -347 ct 1240 | 626 -321 619 -294 614 -265 ct 609 -237 607 -207 607 -177 ct 607 -146 609 -116 614 -88 ct 1241 | 619 -59 626 -32 636 -6 ct 646 20 658 46 674 70 ct 689 95 707 119 728 142 ct 670 142 l 1242 | 648 119 629 95 614 70 ct 598 46 585 20 575 -6 ct 565 -32 558 -59 553 -87 ct 549 -115 546 -145 546 -176 ct 1243 | 546 -177 l p ef 1244 | 789 0 m 789 -51 l 909 -51 l 909 -413 l 803 -337 l 803 -394 l 914 -471 l 1245 | 969 -471 l 969 -51 l 1084 -51 l 1084 0 l 789 0 l p ef 1246 | 1253 -73 m 1253 -17 l 1253 -5 1252 6 1251 15 ct 1250 25 1248 34 1246 42 ct 1247 | 1244 51 1241 58 1238 66 ct 1235 73 1231 80 1227 88 ct 1185 88 l 1195 73 1203 58 1209 44 ct 1248 | 1214 29 1217 14 1217 0 ct 1187 0 l 1187 -73 l 1253 -73 l p ef 1249 | 1670 -130 m 1670 -108 1667 -89 1660 -72 ct 1653 -55 1643 -41 1629 -29 ct 1616 -17 1599 -8 1579 -2 ct 1250 | 1559 4 1536 7 1511 7 ct 1482 7 1457 3 1437 -4 ct 1417 -11 1401 -21 1388 -33 ct 1251 | 1375 -44 1365 -58 1359 -73 ct 1352 -89 1348 -104 1346 -121 ct 1408 -126 l 1410 -114 1413 -102 1418 -92 ct 1252 | 1423 -82 1429 -73 1438 -66 ct 1446 -58 1456 -53 1468 -49 ct 1480 -45 1494 -43 1511 -43 ct 1253 | 1541 -43 1565 -50 1582 -65 ct 1599 -80 1608 -102 1608 -132 ct 1608 -149 1604 -163 1596 -173 ct 1254 | 1589 -184 1579 -192 1568 -198 ct 1556 -204 1544 -208 1530 -210 ct 1517 -212 1504 -213 1493 -213 ct 1255 | 1459 -213 l 1459 -265 l 1492 -265 l 1503 -265 1515 -266 1527 -269 ct 1539 -271 1551 -275 1561 -281 ct 1256 | 1571 -287 1579 -296 1586 -306 ct 1592 -317 1596 -330 1596 -346 ct 1596 -371 1588 -391 1573 -406 ct 1257 | 1559 -420 1537 -428 1507 -428 ct 1481 -428 1459 -421 1443 -407 ct 1427 -394 1417 -375 1415 -350 ct 1258 | 1354 -355 l 1357 -375 1362 -393 1371 -409 ct 1380 -424 1391 -437 1405 -447 ct 1259 | 1419 -457 1434 -464 1452 -469 ct 1470 -475 1488 -477 1508 -477 ct 1534 -477 1557 -474 1576 -467 ct 1260 | 1595 -461 1610 -452 1622 -440 ct 1634 -429 1643 -416 1649 -401 ct 1654 -386 1657 -370 1657 -353 ct 1261 | 1657 -339 1655 -326 1652 -314 ct 1648 -302 1642 -291 1634 -281 ct 1626 -272 1616 -264 1603 -257 ct 1262 | 1591 -250 1576 -245 1559 -241 ct 1559 -240 l 1578 -238 1594 -233 1608 -227 ct 1263 | 1622 -220 1634 -212 1643 -202 ct 1652 -193 1659 -181 1664 -169 ct 1668 -156 1670 -143 1670 -130 ct 1264 | p ef 1265 | 1892 -176 m 1892 -145 1890 -115 1885 -87 ct 1881 -59 1873 -32 1863 -6 ct 1853 20 1840 46 1825 70 ct 1266 | 1809 95 1791 119 1769 142 ct 1711 142 l 1732 119 1750 95 1765 70 ct 1781 46 1793 20 1803 -6 ct 1267 | 1813 -32 1820 -59 1825 -88 ct 1830 -116 1832 -146 1832 -177 ct 1832 -207 1830 -237 1825 -265 ct 1268 | 1820 -294 1813 -321 1803 -347 ct 1793 -373 1781 -398 1765 -423 ct 1750 -448 1732 -472 1711 -495 ct 1269 | 1769 -495 l 1791 -472 1809 -448 1825 -423 ct 1840 -399 1853 -373 1863 -347 ct 1270 | 1873 -321 1881 -294 1885 -266 ct 1890 -238 1892 -208 1892 -177 ct 1892 -176 l 1271 | p ef 1272 | pom 1273 | pum 1274 | 19168 22256 t 1275 | 461 -240 m 461 -201 455 -166 444 -136 ct 432 -106 416 -81 395 -61 ct 375 -41 350 -26 322 -16 ct 1276 | 295 -5 264 0 232 0 ct 56 0 l 56 -470 l 212 -470 l 248 -470 282 -466 312 -457 ct 1277 | 343 -448 369 -434 391 -415 ct 413 -396 430 -372 443 -343 ct 455 -314 461 -280 461 -240 ct 1278 | p 1279 | 397 -240 m 397 -272 393 -299 383 -321 ct 374 -344 361 -363 345 -377 ct 329 -391 309 -402 286 -409 ct 1280 | 263 -416 238 -419 210 -419 ct 120 -419 l 120 -51 l 225 -51 l 249 -51 272 -55 293 -63 ct 1281 | 314 -71 333 -83 348 -99 ct 363 -115 375 -134 384 -158 ct 393 -181 397 -209 397 -240 ct 1282 | p ef 1283 | 546 -177 m 546 -208 549 -238 553 -266 ct 558 -294 565 -321 575 -347 ct 585 -373 598 -399 614 -423 ct 1284 | 629 -448 648 -472 670 -495 ct 728 -495 l 707 -472 689 -448 674 -423 ct 658 -398 646 -373 636 -347 ct 1285 | 626 -321 619 -294 614 -265 ct 609 -237 607 -207 607 -177 ct 607 -146 609 -116 614 -88 ct 1286 | 619 -59 626 -32 636 -6 ct 646 20 658 46 674 70 ct 689 95 707 119 728 142 ct 670 142 l 1287 | 648 119 629 95 614 70 ct 598 46 585 20 575 -6 ct 565 -32 558 -59 553 -87 ct 549 -115 546 -145 546 -176 ct 1288 | 546 -177 l p ef 1289 | 1031 -107 m 1031 -1 l 974 -1 l 974 -107 l 753 -107 l 753 -154 l 968 -471 l 1290 | 1031 -471 l 1031 -154 l 1097 -154 l 1097 -107 l 1031 -107 l p 1291 | 974 -403 m 974 -402 973 -400 971 -397 ct 969 -393 967 -390 965 -386 ct 963 -382 961 -378 958 -374 ct 1292 | 956 -370 954 -366 952 -363 ct 832 -186 l 830 -184 829 -182 827 -179 ct 825 -176 822 -173 820 -170 ct 1293 | 818 -167 816 -164 813 -161 ct 811 -158 809 -156 808 -154 ct 974 -154 l 974 -403 l 1294 | p ef 1295 | 1253 -73 m 1253 -17 l 1253 -5 1252 6 1251 15 ct 1250 25 1248 34 1246 42 ct 1296 | 1244 51 1241 58 1238 66 ct 1235 73 1231 80 1227 88 ct 1185 88 l 1195 73 1203 58 1209 44 ct 1297 | 1214 29 1217 14 1217 0 ct 1187 0 l 1187 -73 l 1253 -73 l p ef 1298 | 1614 -107 m 1614 -1 l 1557 -1 l 1557 -107 l 1336 -107 l 1336 -154 l 1299 | 1551 -471 l 1614 -471 l 1614 -154 l 1680 -154 l 1680 -107 l 1614 -107 l 1300 | p 1301 | 1557 -403 m 1557 -402 1556 -400 1554 -397 ct 1552 -393 1550 -390 1548 -386 ct 1302 | 1546 -382 1544 -378 1541 -374 ct 1539 -370 1537 -366 1535 -363 ct 1415 -186 l 1303 | 1413 -184 1412 -182 1410 -179 ct 1408 -176 1405 -173 1403 -170 ct 1401 -167 1399 -164 1396 -161 ct 1304 | 1394 -158 1392 -156 1391 -154 ct 1557 -154 l 1557 -403 l p ef 1305 | 1892 -176 m 1892 -145 1890 -115 1885 -87 ct 1881 -59 1873 -32 1863 -6 ct 1853 20 1840 46 1825 70 ct 1306 | 1809 95 1791 119 1769 142 ct 1711 142 l 1732 119 1750 95 1765 70 ct 1781 46 1793 20 1803 -6 ct 1307 | 1813 -32 1820 -59 1825 -88 ct 1830 -116 1832 -146 1832 -177 ct 1832 -207 1830 -237 1825 -265 ct 1308 | 1820 -294 1813 -321 1803 -347 ct 1793 -373 1781 -398 1765 -423 ct 1750 -448 1732 -472 1711 -495 ct 1309 | 1769 -495 l 1791 -472 1809 -448 1825 -423 ct 1840 -399 1853 -373 1863 -347 ct 1310 | 1873 -321 1881 -294 1885 -266 ct 1890 -238 1892 -208 1892 -177 ct 1892 -176 l 1311 | p ef 1312 | pom 1313 | 1314 | gr 1315 | gs 1316 | 0 0 m 21589 0 l 21589 27939 l 0 27939 l 0 0 l eoclip newpath 1317 | gr 1318 | gr 1319 | 0 27940 t 1320 | pom 1321 | count op_count sub {pop} repeat countdictstack dict_count sub {end} repeat b4_inc_state restore 1322 | %%PageTrailer 1323 | %%Trailer 1324 | %%EOF 1325 | -------------------------------------------------------------------------------- /graphics/array2-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/graphics/array2-3.jpg -------------------------------------------------------------------------------- /graphics/array2-3.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/graphics/array2-3.odg -------------------------------------------------------------------------------- /graphics/array2.eps: -------------------------------------------------------------------------------- 1 | %!PS-Adobe-3.0 EPSF-3.0 2 | %%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner 3 | %%Title: array2.eps 4 | %%CreationDate: Mon Feb 6 11:48:53 2012 5 | %%DocumentData: Clean7Bit 6 | %%LanguageLevel: 2 7 | %%Pages: 1 8 | %%BoundingBox: 14 14 484 79 9 | %%EndComments 10 | %%BeginProlog 11 | % Use own dictionary to avoid conflicts 12 | 10 dict begin 13 | %%EndProlog 14 | %%Page: 1 1 15 | % Translate for offset 16 | 14.173228346456694 14.173228346456694 translate 17 | % Translate to begin of first scanline 18 | 0 64.079999999999998 translate 19 | 469.43999999999994 -64.079999999999998 scale 20 | % Image geometry 21 | 652 89 8 22 | % Transformation matrix 23 | [ 652 0 0 89 0 0 ] 24 | % Strings to hold RGB-samples per scanline 25 | /rstr 652 string def 26 | /gstr 652 string def 27 | /bstr 652 string def 28 | {currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop} 29 | {currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop} 30 | {currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop} 31 | true 3 32 | %%BeginData: 14630 ASCII Bytes 33 | colorimage 34 | JcC<$JcC<$JcGECJ,~> 35 | JcC<$JcC<$JcGECJ,~> 36 | JcC<$JcC<$JcGECJ,~> 37 | JcC<$JcC<$JcGECJ,~> 38 | JcC<$JcC<$JcGECJ,~> 39 | JcC<$JcC<$JcGECJ,~> 40 | JcC<$JcC<$JcGECJ,~> 41 | JcC<$JcC<$JcGECJ,~> 42 | JcC<$JcC<$JcGECJ,~> 43 | JcC<$JcC<$JcGECJ,~> 44 | JcC<$JcC<$JcGECJ,~> 45 | JcC<$JcC<$JcGECJ,~> 46 | JcC<$JcC<$JcGECJ,~> 47 | JcC<$JcC<$JcGECJ,~> 48 | JcC<$JcC<$JcGECJ,~> 49 | JcC<$JcC<$JcGECJ,~> 50 | JcC<$JcC<$JcGECJ,~> 51 | JcC<$JcC<$JcGECJ,~> 52 | JcC<$JcC<$JcGECJ,~> 53 | JcC<$JcC<$JcGECJ,~> 54 | JcC<$JcC<$JcGECJ,~> 55 | JcC<$JcC<$JcGECJ,~> 56 | JcC<$JcC<$JcGECJ,~> 57 | JcC<$JcC<$JcGECJ,~> 58 | JcC<$JcC<$JcGECJ,~> 59 | JcC<$JcC<$JcGECJ,~> 60 | JcC<$JcC<$JcGECJ,~> 61 | JcC<$JcC<$JcGECJ,~> 62 | JcC<$JcC<$JcGECJ,~> 63 | JcC<$JcC<$JcGECJ,~> 64 | JcC<$JcC<$JcGECJ,~> 65 | JcC<$JcC<$JcGECJ,~> 66 | JcC<$JcC<$JcGECJ,~> 67 | JcC<$JcC<$JcGECJ,~> 68 | JcC<$JcC<$JcGECJ,~> 69 | JcC<$JcC<$JcGECJ,~> 70 | JcC<$JcC<$JcGECJ,~> 71 | JcC<$JcC<$JcGECJ,~> 72 | JcC<$JcC<$JcGECJ,~> 73 | JcC<$JcC<$JcGECJ,~> 74 | JcC<$JcC<$JcGECJ,~> 75 | JcC<$JcC<$JcGECJ,~> 76 | JcC<$JcC<$JcGECJ,~> 77 | JcC<$JcC<$JcGECJ,~> 78 | JcC<$JcC<$JcGECJ,~> 79 | JcC<$JcC<$JcGECJ,~> 80 | JcC<$JcC<$JcGECJ,~> 81 | JcC<$JcC<$JcGECJ,~> 82 | JcC<$JcC<$JcGECJ,~> 83 | JcC<$JcC<$JcGECJ,~> 84 | JcC<$JcC<$JcGECJ,~> 85 | JcC<$JcC<$JcGECJ,~> 86 | JcC<$JcC<$JcGECJ,~> 87 | JcC<$JcC<$JcGECJ,~> 88 | JcC<$JcC<$JcGECJ,~> 89 | JcC<$JcC<$JcGECJ,~> 90 | JcC<$JcC<$JcGECJ,~> 91 | JcC<$JcC<$JcGECJ,~> 92 | JcC<$JcC<$JcGECJ,~> 93 | JcC<$JcC<$JcGECJ,~> 94 | nG`K*Lj&i/Lj&i$Lj&l=Ar(X2`!D;FOXJ,~> 95 | nG`K*Lj&i/Lj&i$Lj&l=Ar(X2`!D;FOXJ,~> 96 | nG`K*Lj&i/Lj&i$Lj&l=Ar(X2`!D;FOXJ,~> 97 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 98 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 99 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 100 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 101 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 102 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 103 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 104 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 105 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 106 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 107 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 108 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 109 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 110 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 111 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 112 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 113 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 114 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 115 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 116 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 117 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 118 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 119 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 120 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 121 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 122 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 123 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 124 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 125 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 126 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 127 | nG`K4aSu?f+$K/crr_75+,JPK!-a8!!-a8!!PI6rr^_&+,JtW"6(pTQf%fDGJ!2@J,~> 128 | nG`K4aSu?d*'I6rr^\#*/ 129 | nG`K4aSu?d)`mK[rr_41)huuE!-a8!!-a8!!PI6rr^\")i!DQ"5taLQ/DTBGJ!2@J,~> 130 | nG`K4ao;I!+!8u/rr\T?+'\XB"193mVV(nKGDQ8!GDQ8"]6B)2!(>67"7]&,9`+hmnS0-f`;9K6 131 | M"`"jrr],?+1:&,!I)0As*t~> 132 | nG`K4ao;Ht*$!E(rr\Q<**N1="10$fV:beJGDQ8!GDQ8"]6B)2!(>67"7So&9)JVkn7Wd]_tsB5 133 | LA)\err]);*44Z(!I)0As*t~> 134 | nG`K4ao;Ht)]R6&rr\N:)d*";"1&pcUtG\IGDQ8!GDQ8"]6B)2!(>67"7Sl$8c/Mjn7N[Z_tsB5 135 | LA)Ydrr]&9)meK&!I)0As*t~> 136 | nG`K4b5VR^+!6jIrrM+`rZ;,EqYpYR+"lR+rr@8!rr@8!rrK`UM#RHCdJj<)+"lRNrrKM[rZ;-Y 137 | qYpP1pE0A6"*kt@n_sKKGJ!2@J,~> 138 | nG`K4b5VR]*#t:BrrM(]rYto@qYpYP*%^(%rr@8!rr@8!rrK`UM#RHCdJj<'*%^(HrrKJXrYtpU 139 | qYpP/pDj/3"*Y_9nDXBJGJ!2@J,~> 140 | nG`K4b5VR])]P(?rrM(\rYki>qYpYP)_9n#rr@8!rr@8!rrK`UM#RHCdJj<')_9nFrrKGVrYkjT 141 | qYpP.pDa)2"*Y\7nDXBJGJ!2@J,~> 142 | nG`K4b5VN++'\[C#.6'*/fu0>q>ULZ+'[Fu!-a8!!-a8!!PI8rr^1]+/]#:#P!Tl+&!au 143 | `;9K8>9?Q7`;T] 144 | nG`K4b5VN)**N4>#.,p$/0#X4q>ULX**Ltp!-a8!!-a8!!PI8rr^.Y*2WW6#OmHf*(h1j 145 | _tsB7=WC'0_u9T;n15Q'iVrq&]BfKI~> 146 | nG`K4b5VN()d*%<#.#g!.iTF0q>ULW)d(en!-a8!!-a8!!PI8rr^.X)l3H4#OmHe)bCtf 147 | _tsB7=;sj-_u9T;n1,H%iVrq&]BfKI~> 148 | nG`K4bPq[A+!8H!s8O/DC@NAf>P\:$VB6nugA_.sM#RI!M#RLfGDQ8!7+2):>9?$+rs+?%+.'nf 149 | +2n$U!a?aNo`##[+!9M%rrI>Uli2J~> 150 | nG`K4bPq[@*#ulos8O&AB^cu]=o&("V&UJmgA_.sM#RI!M#RLfGDQ8!7+2):=WBO$rs+8u*1"J^ 151 | *5hXQ!a-LGo`##Z*$!qsrrI>Uli2J~> 152 | nG`K4bPq[?)]Q]ms8O#@BCHiZ=S_t!U`18jgA_.sM#RI!M#RLfGDQ8!7+2):=;s=!rs+8t)jS;[ 153 | )oMOP!a$CDo`##Y)]RbqrrI>Uli2J~> 154 | nG`K4gA_EJLg)JR>?e!$rrP>*>PnF)/slV<+!4_^rrP>*C>/[fGDQ8!GDQ8"]6B)2!(>fG#K1m] 155 | +"gcCiqr`X`#g(ur;R"X9[j$[+!8GtrrQCHH1_+=nLbo/ir9%']BfKI~> 156 | nG`K4gA_EIL06&I=]qTtrrP8%=o84'/=->9*#r,VrrP8%B\NIdGDQ8!GDQ8"]6B)2!(>fG#K(aX 157 | *%Y6:iVWWW_]0Ymr;R"V9%*aW*#ulmrrQ=CGP(n;n15Q'ir9%']BfKI~> 158 | nG`K4gA_EIL0,rF=BMBqrrP5#=Sr+&/!^/7)]MoSrrP5#BA3@cGDQ8!GDQ8"]6B)2!(>fG#K(aW 159 | )_5$7iVWWW_]'Pjr;R"V8^dXV)]Q]krrQ:AGP(n;n1,H%ir9%']BfKI~> 160 | nG`K4g]%<'0)?Xj>Oh[l"4J>6VYgAne,KCI*roO?rr\T0+7\+c!-a8!!-a8!!PIHrrAql 161 | *rr29rrRuu0)PYRe+*J<`#g)>qYpUL+,KOg!dPk?ir9%']BfKI~> 162 | nG`K4g]%<&/G^=e=n)Ci"4A//V>L8mdf0:H)us.:rr\Q,*:V__!-a8!!-a8!!PIHrrAnk 163 | )uui5rrRop/GoGPdd[;:_]0Z6qYpUJ*/=(b!d>V8ir9%']BfKI~> 164 | nG`K4g]%<&/,C1c=Rc:h"4A,-V#1/ldf0:H)ZX"8rr\N*)t;V^!-a8!!-a8!!PIHrrAkj 165 | )ZZ]3rrRoo/,T>Odd[;:_]'Q4qYpUI)i!ta!d>S6ir9%']BfKI~> 166 | nG`K4g]%US+!6j>s3l68+,Kmq".()Onb<(`*roO?rr^^l+/[fm!-a8!!-a8!!PIIrsR9t 167 | +&'WQn[1M%+6*8!!^.W?p\t?6+!8Gts8O/EM#["``7+M]"193m[H%8fGJ!2@J,~> 168 | nG`K4g]%UQ*#t:6s3c*2*/=Fl"-soHnFut_)us.:rr^[h*2VEi!-a8!!-a8!!PIIrsR6p 169 | *(n-Kn?b7s*9$kr!]qB8p\t?5*#ulms8O&BLB$b\_p\>["10$f[,_/eGJ!2@J,~> 170 | nG`K4g]%UP)]P(3s3c*1)i"=k"-jfEnFut_)ZX"8rr^[g)l26g!-a8!!-a8!!PIIrsR6o 171 | )bIsIn?Y.p)r^bq!]h95p\t?5)]Q]ks8O#ALB$b\_p\>["1&pcZfD&dGJ!2@J,~> 172 | nG`K4h#@K*+!6=:rrP>*9`=tm>9?Q4s8O/@>PJ.!/g#Anrr@8!rr@8!rrK`UM#RHCj8T4;+!8u1 173 | rr^1]+.*!,"6(CEQhUL^`#g)>qZ$R;!GYj;*s"N\q>^I:!/T\8!I)0As*t~> 174 | nG`K4h#@K)*#s_2rrP8%9)\bk=WC'-s8O&==nhpt/0&lgrr@8!rr@8!rrK`UM#RHCj8T49*$!E* 175 | rr^.Y*1$U("5t4>QM:C]_]0Z6qZ$R8!GGX7*!&-Uq>^I7!/BP6!I)0As*t~> 176 | nG`K4h#@K))]OP0rrP5#8cAYj=;sj*s8O#<=SMgs.iW]err@8!rr@8!rrK`UM#RHCj8T49)]R6( 177 | rr^.X)jUF&"5t1O5)Z`!Sq>^I6!/BP6!I)0As*t~> 178 | nG`K4g]%?7`8^^p!dPk0rVum>!.";IHrrLTequ?[< 179 | !/UXS"2l9'`:s96`#g)>qZ$I8!F%2U*rpT_rrPk9>N>_aGJ!2@J,~> 180 | nG`K4g]%?6_r:On!d>V(rVum;!-e/:ru;#Ap\t:t**M%r!-a8!!-a8!!PIHrrLQcqu?[9 181 | !/CLQ"2c)u_tX05_]0Z6qZ$I5!EguQ)ut3ZrrPe4=l]M_GJ!2@J,~> 182 | nG`K4g]%?6_r:On!d>S&rVum:!-e/:ru1r?p\t:s)d(kp!-a8!!-a8!!PIHrrLQcqu?[8 183 | !/CLQ"2c&s_tX05_]'Q4qZ$I4!E^lO)ZY*YrrPb2=QBD^GJ!2@J,~> 184 | nG`K4e,KK*+!:I]ruV5spAb.7!*f3t!dPk?g]%7tM#RI!M#RLfGDQ8!7,%\@*rq,rrr\'!+6*%p 185 | "2l9'`;BQ;`#g'RVZ-Su`(V6pVYgAp>9@)0rrI>Uli2J~> 186 | nG`K4e,KK(*$"qWru;#npAb.4!*T'r!d>V8g]%7tM#RI!M#RLfGDQ8!7,%\@)ut`mrr[uq*9$Yl 187 | "2c)u_u'H:_]0XIV>gJt_b(mgV>L8o=WCT)rrI>Uli2J~> 188 | nG`K4e,KK()]SbUru1rmpAb.3!*K!q!d>S6g]%7tM#RI!M#RLfGDQ8!7,%\@)ZYWlrr[up)r^Pk 189 | "2c&s_u'H:_]'OFV#LAs_atddV#1/n=;tB&rrI>Uli2J~> 190 | nG`K4gA_2N>PTB?rr_7&+,KXjruV5Fp\t;N+!98;!-a8!!-a8!!PIHrrV2*4o-6#M#RDU 191 | L`[`4rr^1]+2n'V"7a=JnbiChnLbnHqu6_%+&(_p!I)0As*t~> 192 | nG`K4gA_2M=ns':rr_4"*/=1eru;#Ap\t;L*$!`5!-a8!!-a8!!PIHrrV/'48KosLAq2S 193 | L)_3,rr^.Y*5h[R"7X4GnGN:gn15P@qu6_#*(o8k!I)0As*t~> 194 | nG`K4gA_2L=SWp8rr_4!)i"(dru1r?p\t;L)]RQ3!-a8!!-a8!!PIHrrV/'3r0cqLAq2S 195 | L)V**rr^.X)oMRQ"7X4GnGN:gn1,G=qu6_")bK)i!I)0As*t~> 196 | nG`K4g]%7XrZ;,6r`]Fe+!:L^"2l9'M"^lK*roO>rrRuu+5?eqGDQ8!GDQ8"]6B)2!(>lI"OetF 197 | +"mLrruV5srr3%U+!:4V"2l9'`: 198 | nG`K4g]%7VrYto1r`K:a*$"tX"2c)uLA(ZI)us.9rrRop*8CJnGDQ8!GDQ8"]6B)2!(>lI"O\h@ 199 | *%_%kru;#nrr3%S*$"\P"2c)u_t!a/G8qUlr;QhQ*$"#=!I)0As*t~> 200 | nG`K4g]%7UrYki/r`B4_)]SeV"2c&sLA(ZI)ZX"7rrRoo)r(AmGDQ8!GDQ8"]6B)2!(>lI"O\e> 201 | )_:khru1rmrr3%S)]SMN"2c&s_t!a/G8hLjr;QhQ)]Ri;!I)0As*t~> 202 | nG`K4h#@MD+!5durVlqT+!:L^"4J>6M"^lK*roO>rrRuu+5?eqGDQ8!GDQ8"]6B)2!(>lI"$I_J 203 | Qi-m`*rq,rrrRuu+85^:`#g)>nc&]I+!8H!rrQpW0&us4GJ!2@J,~> 204 | nG`K4h#@MC*#s1lrVlqR*$"tX"4A//LA(ZI)us.9rrRop*8CJnGDQ8!GDQ8"]6B)2!(>lI"$7JB 205 | QMgd_)ut`mrrRop*;9C7_]0Z6nc&]G*#ulorrQjR/E?a2GJ!2@J,~> 206 | nG`K4h#@MB)]O"jrVlqR)]SeV"4A,-LA(ZI)ZX"7rrRoo)r(AmGDQ8!GDQ8"]6B)2!(>lI"$.A? 207 | Q2L[^)ZYWlrrRoo)ts:6_]'Q4nc&]G)]Q]mrrQgP/*$X1GJ!2@J,~> 208 | nG`K4h#@F[+$KN$!a?`grVum>!/U@KruV5Fp\t;N+!98;!-a8!!-a8!!PIJrr^^l+,Kjp 209 | "6(CEM#RDVL`[`/p\t?6+!8Gkrr\'!+4L/f!a?aNj8T.(]BfKI~> 210 | nG`K4h#@FY*'=&t!a-K_rVum;!/C4Iru;#Ap\t;L*$!`5!-a8!!-a8!!PIJrr^[h*/=Ck 211 | "5t4>LAq2TL)_3&p\t?5*#uldrr[uq*7Fcb!a-LGj8T.(]BfKI~> 212 | nG`K4h#@FX)`mlr!a$B\rVum:!/C4Iru1r?p\t;L)]RQ3!-a8!!-a8!!PIJrr^[g)i":j 213 | "5t1 214 | nG`K4h#@F.+'\[C"7[uc+8u6>*rq,js8O/@>PJ.!>9?Pnrr@8!rr@8!rrK`UM#RHCjSo>#+!8H! 215 | rr],?+,Kpr"193m`:s96`#g)>qu6bb>?gXprrPk90)PYM>9@)0rrI>Uli2J~> 216 | nG`K4h#@F,**N4>"7Ri]*<#p;)ut`es8O&==nhpt=WC&grr@8!rr@8!rrK`UM#RHCjSo>"*#ulo 217 | rr]);*/=Im"10$f_tX05_]0Z6qu6ba=]t7krrPe4/GoGK=WCT)rrI>Uli2J~> 218 | nG`K4h#@F+)d*%<"7Rf[)u]g:)ZYWds8O#<=SMgs=;sidrr@8!rr@8!rrK`UM#RHCjSo>")]Q]m 219 | rr]&9)i"@l"1&pc_tX05_]'Q4qu6b`=BP(irrPb2/,T>J=;tB&rrI>Uli2J~> 220 | nG`K4h#@FL+&)V4!."PcrVlpm+'\I=ruV5Fp\t:X+)9R1!-c`g"6.8;nbrIhe&93&s8U";e'@sn 221 | GL$3jn\iB*rVluZ`5M3ErrUZf`6SA`]6DR#s24odrVlui`5L[6rr_9!`:;.Q!(>oJ"2l9'Qi6pe 222 | nLbn*H2dgGdiT[/p\t?6+!8Gurr],?+,Kjp"/[.^H2IXA*rq,WrrI>Uli2J~> 223 | nG`K4h#@FJ*(p//!-eD^rVlpk**N"8ru;#Ap\t:V*,++,!-c`g"6%/8nGW@gd_j!#s8Tt:da%jm 224 | GL$3jnAE0&rVluY_o)!BrrUWd_p88_]6DR#s2+ibrVluh_o(I3rr_5t_sktO!(>oJ"2c)uQMpgd 225 | n15P!GQ.UEdMs7'p\t?5*#ulnrr]);*/=Ck"/QtWGPhF?)ut`RrrI>Uli2J~> 226 | nG`K4h#@FI)bKu-!-eD]rVlpj)d)h6ru1r?p\t:U)e[q*!-c`g"6%/8nGW@gd_j!#s8Tt:da%jm 227 | GL$3jnAE0&rVluY_o)!BrrUWd_p88_]6DR#s2+ibrVluh_o(I3rr_5t_sktO!(>oJ"2c&sQ2U^c 228 | n1,FsGQ.UEdMj.$p\t?5)]Q]lrr]&9)i":j"/HkTGPhF?)ZYWQrrI>Uli2J~> 229 | nG`K4h#@e.+!6==s28+`C*+P9rr3%U+!:C[!6"hlruV5(rJ1I5rVlui+!6UL`[_WrVlq'+!8f.!PQ+R(`#g(WrVltU+!8GH 231 | rr>IIrsUM%0#[e[VCkPH+$K/nrrOepM#75NL]_oE+*mjA&#TC,nOt#HH,S1MGon+\ir&fYdiT[/ 232 | j8T.(]BfKI~> 233 | nG`K4h#@e,*#s_5s2.tZBH/#0rr3%S*$"kU!5nbiru;##rIt=2rVluh*#s^frr@8grr[uq*5haT 234 | !a-K_r;Zd:!*RVI!-c`g"2c)uLAh,SL)_2NrVlq%*$!9(!PIIrsUFu/AqMWV(>5A*'*-_C:&#K=+n4FZ?GJhkHG8qSRiV`]XdMs7' 236 | j8T.(]BfKI~> 237 | nG`K4h#@e,)]OP3s2.qXB,_f-rr3%S)]S\S!5nbiru1r!rIt=2rVluh)]OOdrr@8grr[up)oMXS 238 | !a$B\r;Zd9!*IPH!-c`g"2c&sLAh,SL)V)LrVlq$)]R*&!PIIrsUCs/&VDVUao#=)`mKfrrO\iLAV#LL')W=)gD:9&#B7*n4=Q 241 | nG`K4h#@E70)H^kVW.Ors8N2/+!7ogrr@lK*rs7Xrr],?+4K!E!-c`g",J$@`;T];>9=sbs8O/@ 242 | >L*6KGL$3j`#g(WrVltU+!8H"rrQCH+3sle]6DR#ruV5FrVlu<+!6=;rr\'!+2lJ)!(>lI!/ULo 243 | !^5"grZ;;Js8QgU4o>9Q*roOErrLS3qB#_je,0.IQQI=>j8T.(]BfKI~> 244 | nG`K4h#@E6/GgCfV;_@ms8N2.*#u?`rr@fI*!!nTrr]);*7EUA!-c`g",7d8_u9T:=WAFZs8O&= 245 | =jI$IGL$3j_]0YNrVltS*#ulprrQ=C*7"Qb]6DR#ru;#ArVlu;*#s_3rr[uq*5g)%!(>lI!/C@j 246 | !^"hbrYu)Es8QaP48]'O)us.@rrLP0qA]Medej%HQ5gn6j8T.(]BfKI~> 247 | nG`K4h#@E6/,L7dUuD7ks8N2-)]Q-]rr@fI)Z[eSrr]&9)q*L@!-c`g",7a6_u9T:=;r4Ws8O#< 248 | =O-pHGL$3j_]'PLrVltS)]Q]nrrQ:A)p\Ha]6DR#ru1r?rVlu;)]OP1rr[up)oKu$!(>lI!/C@i 249 | !]nbarYl#Cs8Q^N3rAsN)ZX">rrLP/qATGcdej%HPoC\3j8T.(]BfKI~> 250 | nG`K4g]%T>GqL14H,Ta_[JjD0rrOepH2R[BVY43oe,B:J>9?#^rr@8grr]-&>LWQN!f1&br;Ze$ 251 | !/Sr#!-c`g"4LIYVZ$MsVH[9RrVlqT>?fDQ!PUdp$%RrVlts>?fS%rr>IHrt;_D 252 | +!4^Cnc/-8>?cp`s/$k[`;KZ/>6'KXrs8.]>9=q>>F4mVrrP>*C?#6oGJ!2@J,~> 253 | nG`K4g]%T=G:X_+GJjI\[/O5-rrO_kGPqI@V=n$ldf'1I=WBNWrr@8grr]*#=jm9K!esi\r;Ze" 254 | !/Af!!-c`g"4C=TV>^DrV--sLrVlqR=]s&M!PIHrt;\A 255 | *#r+9nGi!4=]pLZs.p\T_u0Q.=TF3Trs8+[=WAD4=dJRRrrP8%B]B$mGJ!2@J,~> 256 | nG`K4g]%T=G:OV(GJjI\Zi4)+rrO\iGPqI@V"Rmjdf'1I=;sIHrt;Y? 258 | )]Mn6nGi!4=BL=Xs.gSQ_u0Q.=9+*Srs8+Z=;r20=I&CPrrP5#BB&plGJ!2@J,~> 259 | nG`K4bPq[#+!:%?rr_7&+/[cl!-a8!!-a8!!PI8rrOepH/8K&`#g)/ir9%']BfKI~> 260 | nG`K4bPq[!*$"J8rr_4"*2VBh!-a8!!-a8!!PI8rrO_kGMW9$_]0Z'ir9%']BfKI~> 261 | nG`K4bPq[!)]S;6rr_4!)l23f!-a8!!-a8!!PI8rrO\iGMW9$_]'Q$ir9%']BfKI~> 262 | nG`K4bPq\7/g#o:rrQpW4k]i8GDQ8!GDQ8"]6B)2!(>98".()Oe)(*+>9@).rrI>Uli2J~> 263 | nG`K4bPq\6/0'E3rrQjR45'W6GDQ8!GDQ8"]6B)2!(>98"-soHdbb!*=WCT'rrI>Uli2J~> 264 | nG`K4bPq\6.iX61rrQgP3naN5GDQ8!GDQ8"]6B)2!(>98"-jfEdbb!*=;tB$rrI>Uli2J~> 265 | nG`K4b5VR1+!8u#rr]YN+19f%!-a8!!-a8!!PI7rrPk99],jPQQI 266 | nG`K4b5VR0*$!Dqrr]VJ*44E!!-a8!!-a8!!PI7rrPe49&KXNQ5gm^iVrq&]BfKI~> 267 | nG`K4b5VR/)]R5orr]SH)me5t!-a8!!-a8!!PI7rrPb28`0OMPoC[[iVrq&]BfKI~> 268 | nG`K4ao;HI+$K/arr_75+*lN=!-a8!!-a8!!PI7rr^^l+,JnU"4JkELuA:6GJ!2@J,~> 269 | nG`K4ao;HG*'I7rr^[h*/`(4GJ!2@J,~> 270 | nG`K4ao;HF)`mKYrr_41)gBs7!-a8!!-a8!!PI7rr^[g)i!>O"4A\=L>`(4GJ!2@J,~> 271 | nG`K4ao;J54WeG/rrYq:9_$d8!-a8!!-a8!!PI6rr],?+1://"7]&,>MoG]GJ!2@J,~> 272 | nG`K4ao;J43uhr(rrYk59(:L5!-a8!!-a8!!PI6rr]);*44c+"7So&=l95[GJ!2@J,~> 273 | nG`K4ao;J43ZD`%rrYh38atC4!-a8!!-a8!!PI6rr]&9)meT)"7Sl$=Ps,ZGJ!2@J,~> 274 | nG`K4aSuA%`5M3;rr_f0`:;IZ!-a8!!-a8!!PI5rrUZfe)UH1n\iB9hu<_$]BfKI~> 275 | nG`K4aSuA$_o)!8rr_c._sl:X!-a8!!-a8!!PI5rrUWddc:?0nAE05hu<_$]BfKI~> 276 | nG`K4aSuA$_o)!8rr_c._sl:X!-a8!!-a8!!PI5rrUWddc:?0nAE05hu<_$]BfKI~> 277 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 278 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 279 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 280 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 281 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 282 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 283 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 284 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 285 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 286 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 287 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 288 | nG`K4M#RI!M#RI!M#RLfGDQ8!7#:jDGJ!2@J,~> 289 | nG`JbLj&hjLj&hfLj&l-7#6$e2i)YY8\= 290 | nG`JbLj&hjLj&hfLj&l-7#6$e2i)YY8\= 291 | nG`JbLj&hjLj&hfLj&l-7#6$e2i)YY8\= 292 | nG`KlLq 293 | nG`KlLq 294 | nG`KlLq 295 | JcC<$JcC<$JcGECJ,~> 296 | JcC<$JcC<$JcGECJ,~> 297 | JcC<$JcC<$JcGECJ,~> 298 | JcC<$JcC<$JcGECJ,~> 299 | JcC<$JcC<$JcGECJ,~> 300 | JcC<$JcC<$JcGECJ,~> 301 | JcC<$JcC<$JcGECJ,~> 302 | JcC<$JcC<$JcGECJ,~> 303 | JcC<$JcC<$JcGECJ,~> 304 | JcC<$JcC<$JcGECJ,~> 305 | JcC<$JcC<$JcGECJ,~> 306 | JcC<$JcC<$JcGECJ,~> 307 | JcC<$JcC<$JcGECJ,~> 308 | JcC<$JcC<$JcGECJ,~> 309 | JcC<$JcC<$JcGECJ,~> 310 | JcC<$JcC<$JcGECJ,~> 311 | JcC<$JcC<$JcGECJ,~> 312 | JcC<$JcC<$JcGECJ,~> 313 | JcC<$JcC<$JcGECJ,~> 314 | JcC<$JcC<$JcGECJ,~> 315 | JcC<$JcC<$JcGECJ,~> 316 | JcC<$JcC<$JcGECJ,~> 317 | JcC<$JcC<$JcGECJ,~> 318 | JcC<$JcC<$JcGECJ,~> 319 | JcC<$JcC<$JcGECJ,~> 320 | JcC<$JcC<$JcGECJ,~> 321 | JcC<$JcC<$JcGECJ,~> 322 | JcC<$JcC<$JcGECJ,~> 323 | JcC<$JcC<$JcGECJ,~> 324 | JcC<$JcC<$JcGECJ,~> 325 | JcC<$JcC<$JcGECJ,~> 326 | JcC<$JcC<$JcGECJ,~> 327 | JcC<$JcC<$JcGECJ,~> 328 | JcC<$JcC<$JcGECJ,~> 329 | JcC<$JcC<$JcGECJ,~> 330 | JcC<$JcC<$JcGECJ,~> 331 | JcC<$JcC<$JcGECJ,~> 332 | JcC<$JcC<$JcGECJ,~> 333 | JcC<$JcC<$JcGECJ,~> 334 | JcC<$JcC<$JcGECJ,~> 335 | JcC<$JcC<$JcGECJ,~> 336 | JcC<$JcC<$JcGECJ,~> 337 | JcC<$JcC<$JcGECJ,~> 338 | JcC<$JcC<$JcGECJ,~> 339 | JcC<$JcC<$JcGECJ,~> 340 | JcC<$JcC<$JcGECJ,~> 341 | JcC<$JcC<$JcGECJ,~> 342 | JcC<$JcC<$JcGECJ,~> 343 | JcC<$JcC<$JcGECJ,~> 344 | JcC<$JcC<$JcGECJ,~> 345 | JcC<$JcC<$JcGECJ,~> 346 | JcC<$JcC<$JcGECJ,~> 347 | JcC<$JcC<$JcGECJ,~> 348 | JcC<$JcC<$JcGECJ,~> 349 | JcC<$JcC<$JcGECJ,~> 350 | JcC<$JcC<$JcGECJ,~> 351 | JcC<$JcC<$JcGECJ,~> 352 | JcC<$JcC<$JcGECJ,~> 353 | JcC<$JcC<$JcGECJ,~> 354 | JcC<$JcC<$JcGECJ,~> 355 | JcC<$JcC<$JcGECJ,~> 356 | JcC<$JcC<$JcGECJ,~> 357 | JcC<$JcC<$JcGECJ,~> 358 | JcC<$JcC<$JcGECJ,~> 359 | JcC<$JcC<$JcGECJ,~> 360 | JcC<$JcC<$JcGECJ,~> 361 | JcC<$JcC<$JcGECJ,~> 362 | JcC<$JcC<$JcGECJ,~> 363 | JcC<$JcC<$JcGECJ,~> 364 | JcC<$JcC<$JcGECJ,~> 365 | JcC<$JcC<$JcGECJ,~> 366 | JcC<$JcC<$JcGECJ,~> 367 | JcC<$JcC<$JcGECJ,~> 368 | JcC<$JcC<$JcGECJ,~> 369 | JcC<$JcC<$JcGECJ,~> 370 | JcC<$JcC<$JcGECJ,~> 371 | JcC<$JcC<$JcGECJ,~> 372 | JcC<$JcC<$JcGECJ,~> 373 | %%EndData 374 | showpage 375 | %%Trailer 376 | end 377 | %%EOF 378 | -------------------------------------------------------------------------------- /graphics/array2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/graphics/array2.jpg -------------------------------------------------------------------------------- /graphics/array3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/graphics/array3.jpg -------------------------------------------------------------------------------- /graphics/array4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/graphics/array4.jpg -------------------------------------------------------------------------------- /graphics/array4.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/graphics/array4.odg -------------------------------------------------------------------------------- /graphics/array5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/graphics/array5.jpg -------------------------------------------------------------------------------- /graphics/array5.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/graphics/array5.odg -------------------------------------------------------------------------------- /graphics/array6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/graphics/array6.jpg -------------------------------------------------------------------------------- /graphics/array6.odg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/graphics/array6.odg -------------------------------------------------------------------------------- /graphics/matmul.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/graphics/matmul.png -------------------------------------------------------------------------------- /graphics/pi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/graphics/pi.jpg -------------------------------------------------------------------------------- /matmul.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/matmul.png -------------------------------------------------------------------------------- /mypreamble.tex: -------------------------------------------------------------------------------- 1 | 2 | %\setbeamersize{text margin left=10pt,text margin right=10pt} 3 | \usetheme{lehigh} 4 | 5 | 6 | \usefonttheme{professionalfonts} 7 | \usefonttheme{serif} 8 | 9 | 10 | \pgfdeclarelayer{background} 11 | \pgfdeclarelayer{foreground} 12 | \pgfsetlayers{background,main,foreground} 13 | %\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps,pgfshade} 14 | %\usepackage{amsmath,amssymb,amsfonts,subfigure,pifont} 15 | \usepackage{multirow,multicol} 16 | %\usepackage{tabularx} 17 | %\usepackage{booktabs} 18 | \usepackage{colortbl} 19 | \usepackage{algorithm,algpseudocode} 20 | %\usepackage{etex} 21 | \usepackage{fancyvrb,listings} 22 | 23 | \definecolor{dkgreen}{rgb}{0,0.6,0} 24 | \definecolor{gray}{rgb}{0.5,0.5,0.5} 25 | \definecolor{mauve}{rgb}{0.58,0,0.82} 26 | \lstset{% 27 | language=bash, % the language of the code 28 | %basicstyle=\footnotesize, % the size of the fonts that are used for the code 29 | basicstyle=\fontsize{4.5}{5.5}\selectfont\ttfamily, 30 | showspaces=false, % show spaces adding particular underscores 31 | showstringspaces=false, % underline spaces within strings 32 | showtabs=false, % show tabs within strings adding particular underscores 33 | %frame=single, % adds a frame around the code 34 | %rulecolor=\color{black}, % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here)) 35 | tabsize=2, % sets default tabsize to 2 spaces 36 | %captionpos=b, % sets the caption-position to bottom 37 | breaklines=true, % sets automatic line breaking 38 | breakatwhitespace=false, % sets if automatic breaks should only happen at whitespace 39 | %title=\lstname, % show the filename of files included with \lstinputlisting; 40 | % also try caption instead of title 41 | keywordstyle=\color{blue}, % keyword style 42 | commentstyle=\color{dkgreen}, % comment style 43 | stringstyle=\color{mauve}, % string literal style 44 | escapeinside={\%*}{*)}, % if you want to add LaTeX within your code 45 | morekeywords={*,\dots,elif}, % if you want to add more keywords to the set 46 | deletekeywords={\dots}, % if you want to delete keywords from the given language 47 | %morecomment=[l]{//} 48 | } 49 | \lstset{% 50 | language=csh, % the language of the code 51 | %basicstyle=\footnotesize, % the size of the fonts that are used for the code 52 | basicstyle=\fontsize{4.5}{5.5}\selectfont\ttfamily, 53 | showspaces=false, % show spaces adding particular underscores 54 | showstringspaces=false, % underline spaces within strings 55 | showtabs=false, % show tabs within strings adding particular underscores 56 | %frame=single, % adds a frame around the code 57 | %rulecolor=\color{black}, % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here)) 58 | tabsize=2, % sets default tabsize to 2 spaces 59 | captionpos=b, % sets the caption-position to bottom 60 | breaklines=true, % sets automatic line breaking 61 | breakatwhitespace=false, % sets if automatic breaks should only happen at whitespace 62 | %title=\lstname, % show the filename of files included with \lstinputlisting; 63 | % also try caption instead of title 64 | keywordstyle=\color{blue}, % keyword style 65 | commentstyle=\color{dkgreen}, % comment style 66 | stringstyle=\color{mauve}, % string literal style 67 | escapeinside={\%*}{*)}, % if you want to add LaTeX within your code 68 | morekeywords={*,\dots,elif}, % if you want to add more keywords to the set 69 | deletekeywords={\dots}, % if you want to delete keywords from the given language 70 | %morecomment=[l]{//} 71 | } 72 | \lstdefinestyle{LINUX} 73 | { 74 | % backgroundcolor=\color{black}, 75 | % basicstyle=\tiny\ttfamily, 76 | % keywordsstyle=\color{blue}, 77 | % morekeywords={Tutorials,BASH,scripts}, 78 | % literate={>}{{\textcolor{blue}{>}}}1 79 | % {/}{{\textcolor{blue}{/}}}1 80 | % {./}{{\textcolor{black}{./ }}}1 81 | % {~}{{\textcolor{blue}{\textasciitilde}}}1, 82 | } 83 | 84 | \lstdefinestyle{customc}{ 85 | belowcaptionskip=1\baselineskip, 86 | breaklines=true, 87 | xleftmargin=\parindent, 88 | language=C, 89 | showstringspaces=false, 90 | basicstyle=\scriptsize\ttfamily, 91 | keywordstyle=\bfseries\color{green!40!black}, 92 | commentstyle=\upshape\color{red!90!white}, 93 | identifierstyle=\color{blue}, 94 | stringstyle=\color{orange}, 95 | } 96 | \lstdefinelanguage{OmpFortran}[]{Fortran}{ 97 | rulesepcolor=\color{black}, 98 | % 99 | extendedchars=true, 100 | % 101 | morecomment=[l] [\bfseries\color{red!90!white}]{!\$omp}, 102 | morecomment=[l] [\bfseries\color{red!90!white}]{c\$omp}, 103 | morecomment=[l] [\bfseries\color{red!90!white}]{*\$omp}, 104 | morecomment=[l] [\bfseries\color{red!90!white}]{!\$acc}, 105 | morecomment=[l] [\bfseries\color{red!90!white}]{c\$acc}, 106 | morecomment=[l] [\bfseries\color{red!90!white}]{*\$acc}, 107 | }[comments] 108 | 109 | \lstdefinelanguage{OmpC}[]{OmpFortran}{ 110 | rulesepcolor=\color{black}, 111 | % 112 | extendedchars=true, 113 | % 114 | morecomment=[l] [\bfseries\color{red!90!white}]{\#pragma\ omp}, 115 | morecomment=[l] [\bfseries\color{red!90!white}]{\#pragma\ acc}, 116 | }[comments] 117 | 118 | \lstset{escapechar=@,style=customc} 119 | \lstset{literate=% 120 | *{0}{{{\color{blue}0}}}1 121 | {1}{{{\color{blue}1}}}1 122 | {2}{{{\color{blue}2}}}1 123 | {3}{{{\color{blue}3}}}1 124 | {4}{{{\color{blue}4}}}1 125 | {5}{{{\color{blue}5}}}1 126 | {6}{{{\color{blue}6}}}1 127 | {7}{{{\color{blue}7}}}1 128 | {8}{{{\color{blue}8}}}1 129 | {9}{{{\color{blue}9}}}1 130 | } 131 | 132 | \algrenewcommand\algorithmicfunction{\textbf{program}} 133 | \algblockdefx[Program]{Program}{EndProgram}[1]{\textbf{program} \textsc{#1}}[1]{\textbf{end program} \textsc{#1}} 134 | 135 | \algloopdefx[doloop]{Do}[1]{\textbf{do} #1} 136 | \algcblockdefx[doloop]{If}{Do}{EndDo} 137 | [1]{\textbf{do} #1}{\textbf{end do}} 138 | 139 | 140 | 141 | 142 | \usepackage{tikz} 143 | \usetikzlibrary{shapes,arrows,matrix} 144 | \usetikzlibrary{calc} 145 | \pgfdeclarelayer{background} 146 | \pgfdeclarelayer{foreground} 147 | \pgfsetlayers{background,main,foreground} 148 | %\usepackage[latin1]{inputenc} 149 | \usepackage[english]{babel} 150 | \usepackage{hyperref} 151 | \usepackage[normalem]{ulem} 152 | % \usepackage{movie15} 153 | 154 | 155 | \usepackage{times} 156 | \usepackage[T1]{fontenc} 157 | \usepackage{graphicx} 158 | 159 | 160 | \definecolor{DarkGreen}{rgb}{0.0,0.3,0.0} 161 | \definecolor{Blue}{rgb}{0.0,0.0,0.8} 162 | \definecolor{dodgerblue}{rgb}{0.1,0.1,1.0} 163 | \definecolor{indigo}{rgb}{0.41,0.1,0.0} 164 | \definecolor{seagreen}{rgb}{0.1,1.0,0.1} 165 | \DeclareSymbolFont{extraup}{U}{zavm}{m}{n} 166 | %\DeclareMathSymbol{\vardiamond}{\mathalpha}{extraup}{87} 167 | \newcommand{\cmark}{\ding{51}} 168 | \newcommand{\xmark}{\ding{55}} 169 | \newcommand{\smark}{\ding{77}} 170 | \newcommand*\vardiamond{\textcolor{lubrown}{% 171 | \ensuremath{\blacklozenge}}} 172 | \newcommand*\up{\textcolor{green}{% 173 | \ensuremath{\blacktriangle}}} 174 | \newcommand*\down{\textcolor{red}{% 175 | \ensuremath{\blacktriangledown}}} 176 | \newcommand*\const{\textcolor{darkgray}% 177 | {\textbf{--}}} 178 | \newcommand*\enter{\tikz[baseline=-0.5ex] \draw[<-] (0,0) -| (0.5,0.1);} 179 | \newcommand{\bftt}[1]{\textbf{\texttt{#1}}} 180 | \newcommand{\lstfortran}[1]{\lstinline[language={[90]Fortran},basicstyle=\footnotesize\ttfamily]|#1|} 181 | \newcommand{\Verblue}[1]{\Verb[formatcom=\color{blue},commandchars=\\\{\}]!#1!} 182 | \newcommand{\Verbindigo}[1]{\Verb[formatcom=\color{indigo},commandchars=\\\{\}]!#1!} 183 | 184 | \setbeamercolor{uppercol}{fg=white,bg=red!30!black}% 185 | \setbeamercolor{lowercol}{fg=black,bg=red!15!white}% 186 | \setbeamercolor{uppercol1}{fg=white,bg=blue!30!black}% 187 | \setbeamercolor{lowercol1}{fg=black,bg=blue!15!white}%% 188 | \setbeamercolor{uppercol2}{fg=white,bg=green!30!black}% 189 | \setbeamercolor{lowercol2}{fg=black,bg=green!15!white}% 190 | \newenvironment{colorblock}[4] 191 | { 192 | \setbeamercolor{upperblock}{fg=#1,bg=#2} 193 | \setbeamercolor{lowerblock}{fg=#3,bg=#4} 194 | \begin{beamerboxesrounded}[upper=upperblock,lower=lowerblock,shadow=false]} 195 | {\end{beamerboxesrounded}} 196 | \newenvironment{ablock}[0] 197 | { 198 | \begin{beamerboxesrounded}[upper=uppercol,lower=lowercol,shadow=false]} 199 | {\end{beamerboxesrounded}} 200 | \newenvironment{bblock}[0] 201 | { 202 | \begin{beamerboxesrounded}[upper=uppercol1,lower=lowercol1,shadow=false]} 203 | {\end{beamerboxesrounded}} 204 | \newenvironment{eblock}[0] 205 | { 206 | \begin{beamerboxesrounded}[upper=uppercol2,lower=lowercol2,shadow=false]} 207 | {\end{beamerboxesrounded}} 208 | 209 | % LOGOS 210 | \pgfdeclareimage[height=0.55cm]{lucolor-logo}{LehighU_official-logo_Color.png} 211 | \rplogo{\pgfuseimage{lucolor-logo}} 212 | \pgfdeclareimage[height=0.55cm]{luwhite-logo}{LehighU_official-logo_White.png} 213 | \tplogo{\pgfuseimage{luwhite-logo}} 214 | % footer logo 215 | %\pgfdeclareimage[width=0.3\paperwidth]{university-logo}{lulogo} 216 | %\tllogo{\pgfuseimage{university-logo}} 217 | 218 | %titlepage logo 219 | %\titlegraphic{\includegraphics[scale=0.5]{lu}} 220 | 221 | \beamertemplateballitem 222 | 223 | 224 | -------------------------------------------------------------------------------- /pi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexpacheco/fortran/ec7db1a58b0a585177651e104126b83376784c4a/pi.jpg --------------------------------------------------------------------------------