Fortran: Japi

Aus Wikibooks
Wechseln zu: Navigation, Suche
<< zur Fortran-Startseite
< f03gl pilib >




Allgemeines[Bearbeiten]

Auch für den Bereich des Graphical-User-Interface-Building sind Fortran-Bibliotheken verfügbar. Einerseits gibt es kommerziell-proprietäre Bibliotheken wie Interacter, Winteracter oder GinoMenu, die allerdings eindeutig auf rein professionellen Einsatz abzielen und deren Preise auch dementsprechend hoch liegen.

Hier soll darum anhand eines einfachen Beispiels auf eine mögliche Open-Source-Alternative zu diesen kommerziellen Bibliotheken hingewiesen werden, nämlich japi. japi steht unter der GNU Lesser General Public License und ist ein Java AWT-Wrapper. japi ist für verschiedene Programmiersprachen erhältlich, so auch für FORTRAN 77. Mit kleineren Adaptierungen kann diese Bibliothek aber auch mit Fortran 90/95 verwendet werden. Mit japi ist derzeit nur ein Teil der AWT-Möglichkeiten abrufbar. Der Einsatz von japi setzt zwingend eine aktuelle Java-Installation (JRE oder JDK) auf dem Computer voraus.

japi-Installation[Bearbeiten]

  1. Download der Dateien "japi.f" und "libjapi.zip" von der japi-Homepage.
  2. Entpacken der "libjapi.zip" (die Linux-Version enthält z.B. nur die "libjapi.a"-Bibliotheksdatei).
  3. Verschieben der Bibliotheksdatei in ein geeignetes Verzeichnis, z.B. unter Linux in "/usr/lib" oder "/usr/local/lib".

Beispiel[Bearbeiten]

Fortran 90/95-Code (free source form)
program jbsp
  include "japi.f95"
 
  integer               :: frame, obj
  integer, dimension(5) :: button
       
  if( .not. j_start()) then
    write(*,*) "JAPI-Problem"   
    call end ()
  end if
 
  frame = j_frame("JAPI-Beispiel")
 
  call j_setborderlayout(frame)
         
  button(1) = j_button(frame, "Button 1")
  button(2) = j_button(frame, "Button 2")
  button(3) = j_button(frame, "Button 3")
  button(4) = j_button(frame, "Button 4")
  button(5) = j_button(frame, "Button 5")
                        
  call j_setborderpos(button(1), J_LEFT)
  call j_setborderpos(button(2), J_RIGHT)
  call j_setborderpos(button(3), J_TOP)
  call j_setborderpos(button(4), J_BOTTOM)
 
  call j_show(frame)
                
  do
    obj=j_nextaction()
 
    if(obj == frame) call end ()
    if(obj == button(1)) write (*,*) "Button 1 gedrückt"
    if(obj == button(2)) write (*,*) "Button 2 gedrückt"
    if(obj == button(3)) write (*,*) "Button 3 gedrückt"
    if(obj == button(4)) write (*,*) "Button 4 gedrückt"
    if(obj == button(5)) write (*,*) "Button 5 gedrückt"        
  end do
               
  call end ()
end program jbsp
    
 
subroutine end
  call j_quit()
  stop
end subroutine end


Die Include-Datei "japi.f95" ist eine adaptierte "japi.f"-Datei. "japi.f" ist als Teil der japi-Bibliothek im FORTRAN 77-Format auf der unten genannten japi-Webseite zu finden. Für eine Minimalanpassung müssen nur die C-Kommentarzeichen aus FORTRAN 77 gegen die !-Kommentarzeichen von Fortran 95 ausgewechselt werden.


Kompilieren, Linken:

gfortran -o jbsp jbsp.f95 -ljapi


JapiBsp.png


Reference Manuals, sowie Programming Manuals zu japi sind auf der nachfolgend angeführten Homepage in verschiedenen Dateiformaten abrufbar.

Weblinks[Bearbeiten]


<< zur Fortran-Startseite
< f03gl pilib >