70 likes | 268 Views
Dyrektywa EQUIVALENCE. EQUIVALENCE ( lista_1 ), ( lista_2 ),…, ( lista_n ) REAL A, B, C EQUIVALENCE (B, C, A)
E N D
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.
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.
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.
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.
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
Przykład (GETENV): program progenv character*16 shell call getenv("SHELL",shell) print *,"Uzywam powloki ",shell stop end
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.