      program oblicz_pH
c
c Program oblicza pH roztworu otrzymanego przez zmieszanie objetosci Va 
c roztworu mocnego kwasu o stezeniu Ca z objetoscia Vb roztworu mocnej zasady
c o stezeniu Cb
c
c Czytanie danych (zwroc uwage na znak "$" w formacie, ktory powoduje, ze
c kursor po wykonaniu instrukcji pisania nie przechodzi do nowej linii).
c
      write (*,'(a,$)') "Podaj objetosc kwasu "
      read (*,*) Va
      write (*,'(a,$)') "Podaj stezenie kwasu "
      read (*,*) Ca
      write (*,'(a,$)') "Podaj objetosc zasady "
      read (*,*) Vb
      write (*,'(a,$)') "Podaj stezenie zasady "
      read (*,*) Cb
c
c Obliczamy ilosc moli kwasu (ANa) i zasady (ANb)
c
      ANa = Va*Ca
      ANb = Vb*Cb
c
c Obliczamy pH. Jezeli ANa = ANb to pH = 7 (zobojetnienie). Jezeli ANa < ANb
c to pH = 14+log(stezenia pozostalej zasady). Jezeli ANa > ANb to 
c pH = -log(stezenia pozostalego kwasu). Dla zaspecyfikowania tych warunkow
c oraz wyegzekwowania odpowiednich instrukcji uzywamy zlozonej instrukcji 
c warunkowej.
c
      if (ANa.lt.ANb) then
c
c Stezenie zasady jest wieksze. Obliczamy stezenie nadmiarowej zasady.
c
        COH = (ANb - ANa)/(Va+Vb)
c
c Obliczamy pH
c
        pH = 14.0 + alog10(COH)
      else if (ANa.eq.ANb) then
c
c Calkowite zobojetnienie. pH = 7.   
c
        pH = 7.0
      else
c
c Nadmiar kwasu. Obliczamy stezenie nadmiarowego kwasu.
c
        CH = (ANa - ANb)/(Va+Vb)
c
c Obliczamy pH.
c
        pH = -alog10(CH)
      endif
c
c Drukujemy wyniki.
c
      write (*,'("pH roztworu wynosi",f6.2)') pH
      stop
      end
