1 / 7

Dyrektywa EQUIVALENCE

Dyrektywa EQUIVALENCE. EQUIVALENCE ( lista_1 ), ( lista_2 ),…, ( lista_n ) REAL A, B, C EQUIVALENCE (B, C, A)

jenski
Download Presentation

Dyrektywa EQUIVALENCE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Dyrektywa EQUIVALENCE EQUIVALENCE (lista_1), (lista_2),…, (lista_n) REAL A, B, C EQUIVALENCE (B, C, A) Dyrektywa EQUIVALENCE powoduje utworzenie aliasu lub aliasów zmiennej, która jest wymieniona na liście jako pierwsza pod inną nazwą. Żaden z tych aliasów nie może być elementem obszaru wspólnego. W przypadku tablicy podaje się pierwszy z aliasowanych elementów oraz pierwszy element aliasu, co umożliwia wygodne żonglowanie kształtem tablicy lub przyporządkowanie tej samej tablicy wielu aliasów. W podanym przykładzie tworzymy aliasy zmiennej B o nazwach C i A. Operacja na którejkolwiek z tych zmiennych będzie skutkowała zmianą dwóch pozostałych. Tylko zmienna B może być elementem obszaru wspólnego.

  2. Przykład bardziej zaawansowany: COMMON /VECCOM/ X(12) DIMENSION Y(3), P(3), Q(3) EQUIVALENCE (X(4),Y(1)), (X(7),P(1)), (X(10),Q(1)) Aliasy dwuwymiarowe tablic jednowymiarowych: DOUBLE PRECISION A1(9),B1(9),MATA(3,3),MATB(3,3) EQUIVALENCE (A1(1),MATA(1,1)),(B1(1),MATB(1,1)) Przykład zastosowaniu dyrektywy EQUIVALENCE przy inicjalizacji elementów tablic.

  3. Dyrektywa INCLUDE Dyrektywa INCLUDE służy do wstawienia do w dane miejsce programu pliku o zaspecyfikowanej nazwie. Jest ona bardzo wygodna, jeżeli program składa się z wielu segmentów, które zawierają wspólne deklaracje i dużo obszarów wspólnych. Składnia: INCLUDE “nazwa_pliku” lub INCLUDE ‘nazwa_pliku’ Przykład: Plik cluster.f oraz pliki włączane parcom.dat i sizeclust.dat Domyślnie pliki włączane muszą być w katalogu, w którym kompilujemy o ile nazwa nie zawiera ścieżki dostępu. Można to zmienić dodając opcję –Iścieżka_dostępu do linii poleceń kompilacji.

  4. Procedura GETARG i funkcja IARGC CALL GETARG(nr_argumentu_linii_poleceń,argument) gdzie nr_argumentu_linii_poleceń jest numerem kolejnego argumentu linii polecenia a argument jest zmienną tekstową, w której będzie zapamiętany dany argument linii polecenia. Liczba argumentów linii polecenia jest dana przez funkcję IARGC() Procedura GETENV CALL GETENV(klucz,wartość) gdzie klucz jest nazwą a wartość wartością danej zmiennej środowiskowej.

  5. Przykład (GETARG oraz IARGC): program prog character*8 argument(10) liczba_argumentow=iargc() do i=1,liczba_argumentow call getarg(i,argument(i)) enddo print *,"liczba argumentow",liczba_argumentow do i=1,liczba_argumentow print *,"argument ",i,” “,argument(i) enddo stop end

  6. Przykład (GETENV): program progenv character*16 shell call getenv("SHELL",shell) print *,"Uzywam powloki ",shell stop end

  7. Procedura FDATE CHARACTER*24 data_i_czas CALL FDATE(data_i_czas) Gdzie data_i_czas jest zmienną tekstową zawierającą datę i czas w formacie: dzień miesiąc godzina:minuty:sekundy rok np. Fri Dec 7 13:45:03 2007 Procedura SYSTEM CALL SYSTEM(wielkość_tekstowa) Gdzie wielkość_tekstowa jest łańcuchen tekstowym stanowiącym polecenie systemu operacyjnego. Wywołanie procedury SYSTEM spowoduje wykonanie tego polecenia jako oddzielnego procesu.

More Related