• sous programmes FORTRAN
    
    
    

    sous programmes FORTRAN

    List of FORTRAN subroutines and functions Liste des sous-programmes et fonctions FORTRAN AFIX AMAX AMEAN AMIN A4R4A BCONW2 BILIN CORCOR CORIOL COUPE DATEC DATMGP DEFVEC DGAUSS D1 D1INTR D1INT1 D1INT2 FCONW FDM FD1 GDADCN GDADGD GDMPGD GDSQRT GETMSQ GRAPH GRAPHM GRGG GRLL GRPS IDATMG IDXES IGAXG IIPAK INCDAT INTRP INT1D1 IPAKER IPSORT IUNPAK JDATEC LIRCHCK LLFXY MSCALE MWERMS NPSPIN ORDLEG PCONW2 PERMUT POLAGR ROSSR3 R4AA4 R4ASTRG SCINT SCINT1 SCINT2 SCONW SETINTX SGLO SGLOGG SLL SORT SPAUV SPD SPLAT SPS SQADSQ STDCKP STDEOF STDIPK STDIUP STDOPT STRGR4A S1SCOR UVINT VALIDE VCONW VGLO VGLOGG VLL VPOLAGR VPS WINDV XGAIG XXPAK83 XXPAK XYFLL

    A-B

    AFIX

    SUBROUTINE AFIX (R,CON,NA) REAL R(NA) OBJECT(AFIX) - SETS ARRAY R(NA) TO CONSTANT CON ARGUMENTS OUT - R - RESULTS IN - CON - CONSTANT - NA - LENGTH OF ARRAY R

    AMAX

    FUNCTION AMAX(A,NI,NJ,N) REAL A(NI,NJ) OBJECT(AMAX) - FINDS MAXIMUM VALUE OF A(NI,NJ) OMITTING N BORDER ROWS ARGUMENTS IN - A - ARRAY WHERE MAXIMUM VALUE IS TO BE FOUND - NI - X-DIMENSION - NJ - Y-DIMENSION - N - NUMBER OF BORDER ROWS TO BE OMITTED

    AMEAN

    FUNCTION AMEAN (A,NI,NJ,N) REAL A(NI,NJ) OBJECT(AMEAN) - CALCULATES MEAN OF A(NI,NJ) OMITTING N BORDER ROWS ARGUMENTS IN - A - ARRAY WHERE THE MEAN IS CALCULATED FROM - NI - X-DIMENSION - NJ - Y-DIMENSION - N - NUMBER OF BORDER ROWS TO BE OMITTED

    AMIN

    FUNCTION AMIN (A,NI,NJ,N) REAL A(NI,NJ) OBJECT(AMIN) - FINDS MINIMUM VALUE OF A(NI,NJ) OMITTING N BORDER ROWS ARGUMENTS IN - A - ARRAY WHERE THE MINIMUM VALUE IS TO BE FOUND - NI - X-DIMENSION - NJ - Y-DIMENSION - N - NUMBER OF BORDER ROWS TO BE OMITTED

    A4R4A

    SUBROUTINE A4R4A(R4A,A4,N) IMPNONE INTEGER R4A(*), A4(*), N INTEGER NBMOT,NI,ASC,I OBJET(A4R4A) TRANSFORMER N CARACTERES CONTENUS DANS DES MOT A4 (4 CAR ALIGNES A GAUCHE) EN N CARACTERES CONTENUS DANS DES MOT R4A (4 CAR DE 8 BATS ALIGNES DANS LA PARTIE DROITE DU MOT) ARGUMENTS IN A4 TABLEAU D'ENTIERS CONTENANT LES CAR. DE TYPE A4 OUT R4A TABLEAU D'ENTIERS CONTENANT LES CAR. DE TYPE R4A IN N NOMBRE DE CARACTERES A TRANSFORMER

    BCONW2

    SUBROUTINE BCONW2(Z,CINT,SCALE,LI,LJ,FIP,FJP,IW,JW,LL,MM,MTYPE) REAL Z(LI,LJ) OBJECT(BCONW2) - MAPS LL BY MM WINDOW FROM POINT (IW,JW) IN GRID Z(LI,LJ) WITH NORTH POLE AT (FIP,FJP) USING A CUBIC INTERPOLATION THE CONTINENTAL OUTLINE IS INTERPOLATED FROM A 1/20M SCALE GRID OF SIZE (51,55) WITH NORTH POLE AT (26,28). ARGUMENTS IN - Z - ARRAY TO BE CONTOURED

    BILIN

    FUNCTION BILIN(Z,NI,NJ,X,Y,OK) REAL Z(NI,NJ) OBJET(BILIN) - CALCULE LA VALEUR AUX POINTS X, Y (INDICES FRACTIONNAIRES) DANS UN CHAMP Z DE DIMENSION NI*NJ. L'INTERPOLATION EST FAITE DE FACON BI-LINEAIRE. ARGUMENTS - Z - CHAMP A PARTIR DUQUEL ON CALCULE LA COUPE (NI,NJ) - NI - X-DIMENSION DU CHAMP Z - NJ - Y-DIMENSION DU CHAMP Z - X - COORDONNEE X DU POINT A CALCULER - Y - COORDONNEE Y DU POINT A CALCULER - OK - CLE LOGIQUE, TRUE = LES COORDONNEES SONT DANS LES LIMITES DU CHAMP Z FALSE = LES COORDONNEES NE SONT PAS DANS LES LIMITES DU CHAMP Z

    C-D

    CORCOF

    SUBROUTINE CORCOF(CC,FI,FF,FV,W,NI,NJ,IW1,IW2,NW1,NW2) REAL FI(NI,NJ),FF(NI,NJ),FV(NI,NJ),W(NI,NJ),R(5) OBJECT(CORCOF) _ GIVEN AN INITIAL FIELD, A FORECAST AND A VERIFYING FIELD, FINDS THE CORRELATION COEFFICIENT. ARGUMENTS OUT - CC - CORRELATION COEFFICIENT IN - FI - INITIAL FIELD - FF - FORECAST FIELD - FV - VERIFYING FIELD - W - WEIGHT FIELD - NI - X-DIMENSION - NJ - Y-DIMENSION - IW1 - BOTTOM LEFT CORNER OF X-COORDINATE OF WINDOW - IW2 - BOTTOM LEFT CORNER OF Y-COORDINATE OF WINDOW - NW1 - UPPER RIGHT CORNER OF X-COORDINATE OF WINDOW - NW2 - UPPER RIGHT CORNER OF Y-COORDINATE OF WINDOW

    CORIOL

    SUBROUTINE CORIOL (FF,D60,PI,PJ,NI,NJ) REAL FF(NI,NJ) OBJECT(CORIOL) - COMPUTES THE CORIOLIS PARAMETER AT ALL POINTS OF A GRID OF INIFORM MESH-LENGTH. THE GRID IS ASSUMED TO BE SUPERIMPOSED ON A POLAR STEREOGRAPHIC PROJECTION OF THE EARTH TRUE AT LATITUDE 60 DEGREES. ARGUMENTS OUT - FF - ARRAY CONTAINING THE CORIOLIS PARAMETER IN - D60 - GRID-LENGTH AT 60 DEG. LAT. IN METRES - PI - X-COORDINATE OF POLE RELATIVE TO BOTTOM LEFT-HAND CORNER OF GRID - PJ - Y-COORDINATE OF POLE RELATIVE TO BOTTOM LEFT-HAND CORNER OF GRID - NI - X-DIMENSION - NJ - Y-DIMENSION

    COUPE

    SUBROUTINE COUPE(R,NP,Z,NI,NJ,X1,Y1,X2,Y2,OK) REAL R(NP), Z(NI,NJ) OBJET(COUPE) - CALCULE UNE COUPE DE NP POINTS DANS LE CHAMP Z - A PARTIR DES INDICES X1, Y1 AUX POINTS X2, Y2. X1, Y1, X2 ET Y2 SONT DES INDICES FRACTIONNAIRES ARGUMENTS - R - CHAMP QUI CONTIENT LES RESULTATS DE LA COUPE (NP) - NP - NOMBRE DE POINTS DANS LA COUPE - Z - CHAMP A PARTIR DUQUEL ON CALCULE LA COUPE (NI,NJ) - NI - X-DIMENSION DU CHAMP Z - NJ - Y-DIMENSION DU CHAMP Z - X1 - COORDONNEE X DU COIN GAUCHE DE LA COUPE - Y1 - COORDONNEE Y DU COIN GAUCHE DE LA COUPE - X2 - COORDONNEE X DU COIN DROIT DE LA COUPE - Y2 - COORDONNEE Y DU COIN DROIT DE LA COUPE - OK - CLE LOGIQUE, TRUE = LES COORDONNEES SONT DANS LES LIMITES DU CHAMP Z FALSE = LES COORDONNEES NE SONT PAS DANS LES LIMITES DU CHAMP Z

    DATEC

    SUBROUTINE DATEC(JD,I,J,K) OBJECT(DATEC) - DATEC CONVERTS A JULIAN DAY TO THREE INTEGERS, YEAR(I), MONTH(J) AND DAY(K). ARGUMENTS IN - JD - JULIAN DAY, A UNIQUE INTEGER WHICH MAPS ONE-TO-ONE ONTO TRIPLES OF INTEGERS REPRESENTING YEAR, MONTH, DAY OF MONTH. OUT - I - YEAR - J - MONTH - K - DAY OF THE MONTH

    DATMGP

    SUBROUTINE DATMGP (IDATE) OBJECT(DATMGP) - CREATES A CANADIAN METEOROLOGICAL CENTRE DATE TIME GROUP IN THE OPERATIONAL CMC FORMAT USING THE CMC DATE TIME STAMP ARGUMENTS IN/OUT - IDATE - 14 WORDS INTEGER ARRAY. ON INPUT, WORD 14 IS SET TO THE DATE TIME STAMP. ON OUTPUT ALL 14 WORDS OF IDATE ARE SET TO THE DATE TIME GROUP WHICH CORRESPONDS TO THAT DATE TIME STAMP.

    DEFVEC

    SUBROUTINE DEFVEC (A,L,DELTAA,A1) OBJECT(DEFVEC) - THIS ROUTINE IS USED TO DEFINE A VECTOR OF COORDINATES WITH CONSTANT SPACING. - THIS ROUTINE IS PART OF THE SPLINE INTERPOLATION PACKAGE. SEE THE WRITE-UPS ON INTRP AND INT1D1 FOR INFORMATION ABOUT USING THE PACKAGE. ARGUMENTS - A - VECTOR OF COORDINATES. - L - LENGTH OF VECTOR A. - DELTAA - SPACING CONSTANT. - A1 - 1ST VALUE OF VECTOR OF COORDINATES.

    DGAUSS

    SUBROUTINE DGAUSS (N,ROOTS,KASE) REAL ROOTS(*) OBJECT(DGAUSS) - CALCULATES THE ZEROES OF THE ORDINARY LEGENDRE POLYNOMIAL OF ORDER N, I.E. DEFINE GAUSSIAN GRID ARGUMENTS IN - N - ORDER OF THE POLYNOMIALS OUT - ROOTS - ARRAY CONTAINING THE ZEROES OF THE ORDINARY LEGENDRE POLYNOMIALS IN - KASE - =0, GLOBAL =1, NORTH =2, SOUTH

    D1

    FUNCTION D1 (Y,H,N) OBJECT(D1) - D1 RETURNS A ONE-SIDED ESTIMATE OF THE DERIVATIVE AT THE FIRST POINT, 4-TH ORDER ACCURATE. - DN RETURNS A ONE-SIDED ESTIMATE OF THE DERIVATIVE AT THE LAST POINT, 4-TH ORDER ACCURATE. - THIS ROUTINE IS PART OF THE SPLINE INTERPOLATION PACKAGE. SEE THE WRITE-UPS ON INTRP AND INT1D1 FOR INFORMATION ABOUT USING THE PACKAGE. ARGUMENTS - Y - CONTAINS N POINTS EQUALLY SPACED. - H - SEPARATION. - N - LENGTH OF VECTOR Y.

    D1INTR

    SUBROUTINE D1INTR(FI,IFI,JFI,F,IF,JF,FX,FY,FXY,XI,YI, X,Y,HX,HY) OBJECT(D1INTR) - THIS ROUTINE IS PART OF THE SPLINE INTERPOLATION PACKAGE. SEE THE WRITE-UPS ON INTRP AND INT1D1 FOR INFORMATION ABOUT USING THE PACKAGE. THIS VERSION EVALUATES THE SPLINE AT A LIST OF (X,Y) PAIRS HELD IN THE ARRAYS (XI(I,J),YI(I,J),I=1,IFI,J=1,JFI). ARGUMENTS OUT - FI - INTERPOLATED FIELD. IN - IFI - X-DIMENSION OF FIELD FI. - JFI - Y-DIMENSION OF FIELD FI. - F - ORIGINAL FIELD. - IF - X-DIMENSION OF FIELD F. - JF - Y-DIMENSION OF FIELD F. - FX - ARRAY OF SIZE (IF,JF) THAT CONTAINS COMPUTED PARTIAL DERIVATIVE OF FIELD F WITH RESPECT TO X. - FY - PARTIAL DERIVATIVE WITH RESPECT TO Y. - FXY - PARTIAL SECOND DERIVATIVE WITH RESPECT TO X AND Y. - XI - X LOCATION OF THE VALUES OF THE INTERPOLATED FIELD FI. - YI - Y LOCATION OF THE VALUES OF THE INTERPOLATED FIELD FI. - X - X LOCATION OF THE VALUES OF THE ORIGINAL FIELD F. - Y - Y LOCATION OF THE VALUES OF THE ORIGINAL FIELD F. - HX - GRID-LENGTHS DEFINED BY HX(I)=X(I+1)-X(I),I=1,IF-1 - HY - GRID-LENGTHS DEFINED BY HY(I)=Y(I+1)-Y(I),I=1,JF-1

    D1INT1

    SUBROUTINE D1INT1(FI,F,XI,X,FX,H,M,MI) OBJECT(D1INT1) - THIS ROUTINE IS PART OF THE SPLINE INTERPOLATION PACKAGE. SEE THE WRITE-UPS ON INTRP AND INT1D1 FOR INFORMATION ABOUT HOW TO USE THE PACKAGE. ARGUMENTS OUT - FI - VECTOR OF INTERPOLATED VALUES. IN - F - VECTOR OF VALUES OF THE FUNCTION. - XI - LOCATION OF THE VALUES OF THE INTERPOLATED VECTOR. - X - LOCATION OF THE VALUES OF INPUT VECTOR F. - FX - VECTOR CONTAINING THE SPLINE DERIVATIVES OF THE FUNCTION AT THE ORIGINAL POINT (X). - H - VECTOR WHICH MUST BE INITIALIZED WITH THE CO-ORDINATE DIFFERENCES, I.E. H(I)=X(I+1)-X(I) FOR I=1 TO (M-1). (THE M TH ELEMENT OF H IS NOT USED.) - M - LENGTH OF VECTORS F, X AND H. - MI - LENGTH OF VECTORS FI AND XI.

    D1INT2

    SUBROUTINE D1INT2 (FI,IFI,JFI,F,IF,JF,FX,FY,FXY,XI,YI,X,Y,HX,HY, ZA,ZB,ZC,ZD) OBJECT(D1INT2) - THIS ROUTINE IS PART OF THE SPLINE INTERPOLATION PACKAGE. SEE THE WRITE-UPS ON INTRP AND INT1D1 FOR INFORMATION ABOUT USING THE PACKAGE. ARGUMENTS OUT - FI - INTERPOLATED FIELD. IN - IFI - X-DIMENSION OF FIELD FI. - JFI - Y-DIMENSION OF FIELD FI. - F - ORIGINAL FIELD. - IF - X-DIMENSION OF FIELD F. - JF - Y-DIMENSION OF FILED F. - FX - ARRAY OF SIZE (IF,JF) THAT CONTAINS COMPUTED PARTIAL DERIVATIVE OF FIELD F WITH RESPECT TO X. - FY - PARTIAL DERIVATIVE WITH RESPECT TO Y. - FXY - PARTIAL SECOND DERIVATIVE WITH RESPECT TO X AND Y. - XI - X LOCATION OF THE VALUES OF THE INTERPOLATED FIELD FI. - YI - Y LOCATION OF THE VALUES OF THE INTERPOLATED FIELD FI. - X - X LOCATION OF THE VALUES OF THE ORIGINAL FIELD F. - Y - Y LOCATION OF THE VALUES OF THE ORIGINAL FIELD F. - HX - GRID-LENGTHS DEFINED BY HX(I)=X(I+1)-X(I),I=1,IF-1 - HY - GRID-LENGTHS DEFINED BY HY(I)=Y(I+1)-Y(I),I=1,JF-1 - ZA - WORKING VECTOR OF LENGTH (JFI). - ZB - WORKING VECTOR OF LENGTH (JFI). - ZC - WORKING VECTOR OF LENGTH (JFI). - ZD - WORKING VECTOR OF LENGTH (JFI).

    E-G

    FCONW

    SUBROUTINE FCONW (Z ,CINT,SCALE,LI,LJ,IW,JW,LL,MM,MTYPE) REAL Z(LI,1) OBJECT(FCONW) - MAPS LL BY MM WINDOW FROM POINT (IW,JW) IN Z(LI,LJ) USING A CUBIC INTERPOLATION. ARGUMENTS IN - Z - ARRAY TO BE CONTOURED - CINT - CONTOUR INTERVAL, FROM 0. IF CINT .GT. 0., FROM (CINT/2) IF CINT .LT.0. CINT=0, CAUSES ERROR EXIT - SCALE - SCALE FACTOR USED TO MULTIPLY Z BEFORE CONTOURING. - LI - X-DIMENSION - LJ - Y-DIMENSION, IF LJ NEGATIVE, RIGHT AND TOP GRID POINTS OMITTED FOR STAR GRIDS. MINIMUM VALUES ARE (4,4) - IW - X-COORDINATE OF BOTTOM LEFT CORNER OF WINDOW IN ARRAY Z - JW - Y-COORDINATE OF BOTTOM LEFT CORNER OF WINDOW IN ARRAY Z - LL - WIDTH OF WINDOW - MM - HEIGHT OF WINDOW. MINIMUM VALUES ARE (3,3). NO WINDOW EXTENDS OUTSIDE THE RIGHT OR TOP SIDES OF THE GRID REGARDLESS OF HOW LARGE LL OR MM ARE SET - MTYPE - MAP SCALE CONTROL (ABSOLUTE VALUE USED) SIGN (+) CONTOURS 6 LINES/INCH SIGN (-) CONTOURS 8 LINES/INCH - MTYPE = MAPSCL+MESH - MAPSCL = 20 FOR GRID POINTS 3/4" APART - MAPSCL = 30 FOR GRID POINTS 1/2" APART - IF THE GRID IS 381KM POLAR STEREOGRAPHIC THESE VALUES RESULT IN 1/20M AND 1/30M SCALE MAPS - MESH SHRINKS THE MAP SCALE (FROM 1 TO 10 EXCEPT 7) 1=FULL, 2=HALF SIZE, 3=1/3 SIZE, ETC...

    FDM

    SUBROUTINE FDM(GDM,F,H,M) REAL F(*),H(*) OBJECT(FDM) - THIS ROUTINE RETURNS AN ESTIMATE OF THE DERIVATIVE AT THE LAST POINT, 4-TH ORDER ACCURATE. - THIS ROUTINE IS PART OF THE SPLINE INTERPOLATION PACKAGE. SEE THE WRITE-UPS ON INTRP AND INT1D1 FOR INFORMATION ABOUT USING THE PACKAGE. - GDM - RESULT. - F - VECTOR OF VALUES OF THE FUNCTION. - H - VECTOR OF COORDINATE DIFFERENCES. - M - DIMENSION OF F AND H.

    FD1

    SUBROUTINE FD1(GD1,F,H) REAL F(*),H(*) OBJECT(FD1) - THIS ROUTINE RETURNS ONE-SIDED ESTIMATE OF THE DERIVATIVE AT THE FIRST POINT, 4TH ORDER ACCURATE. - THIS ROUTINE IS PART OF THE SPLINE INTERPOLATION PACKAGE. SEE THE WRITE-UPS ON INTRP AND INT1D1 FOR INFORMATION ABOUT USING THE PACKAGE. ARGUMENTS - GD1 - RESULT. - F - VECTOR OF VALUES OF THE FUNCTION. - H - VECTOR OF COORDINATE DIFFERENCES.

    GDADCN

    SUBROUTINE GDADCN (R,A,CON,NI,NJ,NB) REAL R(NI,NJ), A(NI,NJ) OBJECT(GDADCN) - ADDS A CONSTANT TO EVERY ELEMENT OF A 2-DIMENSIONAL ARRAY OMITTING NB BORDER ROWS OR ENTRY (GDMPCN) MULTIPLY AN ARRAY BY A CONSTANT. ARGUMENTS OUT - R - ARRAY CONTAINING RESULT IN - A - ARRAY TO BE OPERATED ON - CON - CONSTANT - NI - X-DIMENSION - NJ - Y-DIMENSION - NB - 4-DIGIT DECIMAL NUMBER WHICH ALLOWS AT MOST NINE ROWS ON ANY SIDE OF THE GRID TO BE SKIPPED. - NB = D1*10E3 + D2*10E2 +.D3*10 + D4 - D1 = COLUMNS ARE SKIPPED FROM LEFT - D2 = ROWS ARE SKIPPED FROM BOTTOM -.D3 = COLUMNS ARE SKIPPED FROM RIGHT - D4 = ROWS ARE SKIPPED FROM TOP - E.G. NB=0000 INCLUDE ALL BORDERS (WRITTEN AS 0) NB=1111 OMIT ONE ROW ALL AROUND THE GRID NB=2241 INDICATES THAT THE 2 COLUMNS ON THE LEFT OF A, 2 ROWS AT THE BOTTOM, 4 COLUMNS AT THE RIGHT AND 1 ROW AT THE TOP ARE NOT OPERATED ON AND THE CORRESPONDING ROWS AND COLUMNS OF R ARE LEFT UNDEFINED BY THE ROUTINE.

    GDADGD

    SUBROUTINE GDADGD (R,A,B,CONA,CONB,NI,NJ,NB) REAL R(NI,NJ), A(NI,NJ), B(NI,NJ) OBJECT(GDADGD) - SEPARATELY SCALES TWO 2-DIMENSIONAL ARRAYS AND SUMS THE SCALED ARRAYS OMITTING NB BORDER ROWS R(I,J) = CONA*A(I,J) + CONB*B(I,J) ARGUMENTS OUT - R - ARRAY CONTAINING RESULT IN - A - FIRST ARRAY TO BE OPERATED ON - B - SECOND ARRAY TO BE OPERATED ON - CONA - SCALE FACTOR FOR A - CONB - SCALE FACTOR FOR B - NI - X-DIMENSION - NJ - Y-DIMENSION - NB - 4-DIGIT DECIMAL NUMBER WHICH ALLOWS AT MOST NINE ROWS ON ANY SIDE OF THE GRID TO BE SKIPPED. - NB = D1*10E3 + D2*10E2 +.D3*10 + D4 - D1 = COLUMNS ARE SKIPPED FROM LEFT - D2 = ROWS ARE SKIPPED FROM BOTTOM -.D3 = COLUMNS ARE SKIPPED FROM RIGHT - D4 = ROWS ARE SKIPPED FROM TOP - E.G. NB=0000 INCLUDE ALL BORDERS (WRITTEN AS 0) NB=1111 OMIT ONE ROW ALL AROUND THE GRID NB=2241 INDICATES THAT THE 2 COLUMNS ON THE LEFT OF A, 2 ROWS AT THE BOTTOM, 4 COLUMNS AT THE RIGHT AND 1 ROW AT THE TOP ARE NOT OPERATED ON AND THE CORRESPONDING ROWS AND COLUMNS OF R ARE LEFT UNDEFINED BY THE ROUTINE.

    GDMPGD

    SUBROUTINE GDMPGD (R,A,B,CON,NI,NJ,NB) REAL R(NI,NJ), A(NI,NJ), B(NI,NJ) OBJECT(GDMDGD) - MULTIPLIES, ELEMENT-WISE, ONE 2-DIMENSIONAL ARRAY BY ANOTHER AND SCALES THE RESULTANT ARRAY BY A CONSTANT OMITTING NB BORDER ROWS OR IF ENTRY (GDDVGD) IS CALLED IT DIVIDES AN ARRAY BY ANOTHER AND SCALES THE RESULT BY A CONSTANT, ALSO OMITTING NB BORDER ROWS. R(I,J) = CON * A(I,J) * B(I,J) ARGUMENTS OUT - R - ARRAY CONTAINING RESULT IN - A - FIRST ARRAY TO BE OPERATED ON - B - SECOND ARRAY TO BE OPERATED ON - CON - SCALING FACTOR - NI - X-DIMENSION - NJ - Y-DIMENSION - NB - 4-DIGIT DECIMAL NUMBER WHICH ALLOWS AT MOST NINE ROWS ON ANY SIDE OF THE GRID TO BE SKIPPED. - NB = D1*10E3 + D2*10E2 +.D3*10 + D4 - D1 = COLUMNS ARE SKIPPED FROM LEFT - D2 = ROWS ARE SKIPPED FROM BOTTOM -.D3 = COLUMNS ARE SKIPPED FROM RIGHT - D4 = ROWS ARE SKIPPED FROM TOP - E.G. NB=0000 INCLUDE ALL BORDERS (WRITTEN AS 0) NB=1111 OMIT ONE ROW ALL AROUND THE GRID NB=2241 INDICATES THAT THE 2 COLUMNS ON THE LEFT OF A, 2 ROWS AT THE BOTTOM, 4 COLUMNS AT THE RIGHT AND 1 ROW AT THE TOP ARE NOT OPERATED ON AND THE CORRESPONDING ROWS AND COLUMNS OF R ARE LEFT UNDEFINED BY THE ROUTINE.

    GDSQRT

    SUBROUTINE GDSQRT (R,A,CON,NI,NJ,NB) REAL R(NI,NJ), A(NI,NJ) OBJECT(GDSQRT) - COMPUTES, ELEMENT-WISE, THE SQUARE ROOT OF A 2-DIMENSIONAL ARRAY AND SCALES THE RESULT BY A CONSTANT. ARGUMENTS OUT - R - ARRAY CONTAINING RESULT IN - A - ARRAY TO BE OPERATED ON - CON - SCALING FACTOR - NI - X-DIMENSION - NJ - Y-DIMENSION - NB - 4-DIGIT DECIMAL NUMBER WHICH ALLOWS AT MOST NINE ROWS ON ANY SIDE OF THE GRID TO BE SKIPPED. - NB = D1*10E3 + D2*10E2 +.D3*10 + D4 - D1 = COLUMNS ARE SKIPPED FROM LEFT - D2 = ROWS ARE SKIPPED FROM BOTTOM -.D3 = COLUMNS ARE SKIPPED FROM RIGHT - D4 = ROWS ARE SKIPPED FROM TOP - E.G. NB=0000 INCLUDE ALL BORDERS (WRITTEN AS 0) NB=1111 OMIT ONE ROW ALL AROUND THE GRID NB=2241 INDICATES THAT THE 2 COLUMNS ON THE LEFT OF A, 2 ROWS AT THE BOTTOM, 4 COLUMNS AT THE RIGHT AND 1 ROW AT THE TOP ARE NOT OPERATED ON AND THE CORRESPONDING ROWS AND COLUMNS OF R ARE LEFT UNDEFINED BY THE ROUTINE.

    GRAPH

    SUBROUTINE GRAPH (Y,X,IP,LI,TITLE) OBJECT(GRAPH) - PRODUCES A ONE-PRINTER PAGE PLOT OF A ONE-DIMENSIONAL VECTOR. GRAPH PLOTS POINTS (X(J), Y(J)) FOR J=1 TO LI, WHERE Y(J) IS THE FUNCTION VALUE AT X(J). ARGUMENTS - Y - VECTOR OF FUNCTION-VALUES TO BE PLOTTED - X - VECTOR OF X-VALUES TO BE PLOTTED - IP - WORKING STORAGE VECTOR - LI - LENGTH OF VECTORS Y,X,IP - TITLE - TITLE OF PLOT (UP TO 50 CHARACTERS)

    GRAPHM

    SUBROUTINE GRAPHM(Y,X,IP,LI,TITLE,NC,LECHEL,XMI,XMA) OBJECT(GRAPHM) - PRODUCES A ONE-PRINTER PAGE PLOT OF NC ONE-DIMENSIONAL VECTORS. GRAPHM PLOTS POINTS (X(J), Y(J)) FOR J=1 TO LI, WHERE Y(J) IS THE FUNCTION VALUE AT X(J). ARGUMENTS - Y - VECTOR OF VALUES. (LI) - X - ARRAY OF FUNCTION VALUES. (LI,NC) - IP - WORKING STORAGE VECTOR - LI - LENGTH OF VECTORS Y,X,IP - TITLE - TITLE OF PLOT (UP TO 50 CHARACTERS) - NC - NUMBER OF CURVES. (UP TO 15) - LECHEL - INTEGER VARIABLE. IF ZERO, USE AUTO SCALING. IF NON-ZERO, USE XMI, XMA FOR SCALING. - XMI - LOWER VALUE OF X RANGE (USED ONLY IF LECHEL .NE.0) - XMA - UPPER VALUE OF X RANGE (USED ONLY IF LECHEL .NE.0)

    GRGG

    SUBROUTINE GRGG(XLAT,XLON,NI,NJ,ROOTS,MODE) REAL XLAT(NI,NJ), XLON(NI,NJ) REAL ROOTS(NJ) OBJET(GRGG) - CALCULE LA LATITUDE ET LA LONGITUDE DE CHACUN DES POINTS D'UNE GRILLE GAUSSIENNE. ARGUMENTS OUT - XLAT - CHAMP DE LATITUDES (NI,NJ). (NIVEAU 1 OU 2) OUT - XLON - CHAMP DE LONGITUDES (NI,NJ). (NIVEAU 1 OU 2) IN - NI - NOMBRE DE POINTS PAR CERCLE DE LATITUDE. IN - NJ - NOMBRE DE CERCLES DE LONGITUDE. IN - ROOTS - TABLE SERVANT A CALCULER LES RACINES DES POLYNOMES DE LEGENDRE SERVANT A DEFINIR LA LATITUDE DES NOEUDS DE LA GRILLE GAUSSIENNE. IN - MODE - SORTE DE GRILLE UTILISEE = 0, GLOBALE = 1, NORD = 2, SUD

    GRLL

    SUBROUTINE GRLL(XLAT,XLON,NI,NJ,XLA0,XLO0,DLA0,DLO0) REAL XLAT(NI,NJ), XLON(NI,NJ) OBJET(GRLL) - CALCULE LA LATITUDE ET LA LONGITUDE DE CHACUN DES POINT D'UNE GRILLE LAT.-LON. ARGUMENTS OUT - XLAT - CHAMP DE LATITUDES (NI,NJ). (NIVEAU 1 OU 2) OUT - XLON - CHAMP DE LONGITUDES (NI,NJ). (NIVEAU 1 OU 2) IN - NI - NOMBRE DE POINTS PAR CERCLE DE LATITUDE. IN - NJ - NOMBRE DE CERCLES DE LATITUDE. IN - XLA0 - LATITUDE DU COIN INFERIEUR GAUCHE (DEGRES). IN - XLO0 - LONGITUDE DU COIN INFERIEUR GAUCHE (DEGRES). IN - DLA0 - ESPACEMENT EN LATITUDE (DEGRES). IN - DLO0 - ESPACEMENT EN LONGITUDE (DEGRES).

    GRPS

    SUBROUTINE GRPS(XLAT,XLON,NI,NJ,PI,PJ,D60,DGRW,HEM) REAL XLAT(NI,NJ), XLON(NI,NJ) OBJET(GRPS) - CALCULE LA LATITUDE ET LA LONGITUDE DE CHACUN DES POINTS D'UNE GRILLE POLAIRE STEREOGRAPHIQUE. ARGUMENTS OUT - XLAT - CHAMP DE LATITUDES (NI,NJ). (NIVEAU 1 OU 2) OUT - XLON - CHAMP DE LONGITUDES (NI,NJ). (NIVEAU 1 OU 2) IN - NI - PREMIERE DIMENSION DES CHAMPS XLAT,XLON. IN - NJ - DEUXIEME DIMENSION DES CHAMPS XLAT,XLON. IN - PI - COORDONNEE X DU POLE (REEL). IN - PJ - COORDONNEE Y DU POLE (REEL). IN - D60 - DISTANCE EN METRES ENTRE LES POINTS DE LA GRILLE A 60 DEGRES DE LATITUDE. IN - DGRW - ANGLE ENTRE L'AXE X ET LE MERIDIEN DE GREENWICH. IN - HEM - CODE D'HEMISPHERE (1=NORD, 2=SUD).

    H-K

    IDATMG

    FUNCTION IDATMG(IDATE) OBJECT(IDATMG) - CONSTRUCTS A CANADIAN METEOROLOGICAL CENTRE DATE-TIME STAMP USING THE OPERATIONAL CMC DATE-TIME GROUP (WORDS 1-6) AND RETURNING THE STAMP IN WORD 14 AS WELL AS IN THE FUNCTION VALUE. ARGUMENTS - IDATE - ARRAY OF 14 WORDS WHICH HAS IN WORDS 1-6 THE INFORMATION NEEDED TO RECONSTRUCT THE STAMP WHICH IS THEN PUT IN WORD 14 AS WELL AS IN THE FUNCTION VALUE

    CIGAXG

    SUBROUTINE CIGAXG(IGTYP,XG1,XG2,XG3,XG4,IG1,IG2,IG3,IG4) CHARACTER *(*) IGTYP OBJET(CIGAXG) - PASSE DES PARAMETRES (ENTIERS) DESCRIPTEURS DE GRILLE AUX PARAMETRES REELS. ARGUMENTS IN - IGTYP - TYPE DE GRILLE (VOIR OUVRIR) OUT - XG1 - ** DESCRIPTEUR DE GRILLE (REEL) ** OUT - XG2 - IGTYP = 'N', PI, PJ, D60, DGRW OUT - XG3 - IGTYP = 'L', LAT0, LON0, DLAT, DLON, OUT - XG4 - IGTYP = 'A', 'B', 'G', XG1 = 0. GLOBAL, = 1. NORD = 2. SUD IN - IG1 - DESCRIPTEUR DE GRILLE (ENTIER) IN - IG2 - DESCRIPTEUR DE GRILLE (ENTIER) IN - IG3 - DESCRIPTEUR DE GRILLE (ENTIER) IN - IG4 - DESCRIPTEUR DE GRILLE (ENTIER)

    IIPAK

    SUBROUTINE IIPAK(IFLD,IPK,NI,NJ,NPAK,NB,KIND) INTEGER NI,NJ,IFLD(*),IPK(*),NPAK,NB,KIND OBJET(IIPAK) - COMPACTER OU DECOMPACTER DES NOMBRES ENTIERS POSITIFS. ARGUMENTS IN/OUT - IFLD - INTEGER ARRAY, UNPACKED (NI,NJ) IN/OUT - IPK - THE SAME ARRAY PACKED IN - NI - X-DIMENSION IN - NJ - Y-DIMENSION IN - NPAK - NPAK > 0, DENSITE DE COMPACTION NPAK = 0 OU 1, PAS DE COMPACTION NPAK < 0, NOMBRE DE BITS A GARDER PAR NOMBRE IN - NB - DEVRAIT ETRE 0 IN - KIND - 1 = PACK 2 = UNPACK 3 = PACK (POSITIF ET NEGATIF) 4 = UNPACK (POSITIF ET NEGATIF) N.B. IIPAK works correctly IN-PLACE

    INCDAT

    SUBROUTINE INCDAT (IDATE1,IDATE2,NHOURS) OBJECT(INCDAT) - CONSTRUCTS A CANADIAN METEOROLOGICAL CENTRE DATE-TIME STAMP IDATE1 WHICH IS NHOURS DIFFERENT FROM IDATE2. IDATE2 MUST BE A VALID DATE-TIME STAMP AND NHOURS CAN BE ANY INTEGER VALUE. - ENTRY (DIFDAT) COMPUTES THE NUMBER OF HOURS DIFFERENCE BETWEEN IDATE1 AND IDATE2 AND SETS NHOURS TO THIS VALUE. IDATE1 AND IDATE2 MUST BE VALID CMC DATE-TIME STAMPS. - IDATE1 - CMC DATE-TIME STAMP (TEN DIGITS INTEGER IN THE FOLLOWING FORM: W MM DD YY ZZ R) - IDATE2 - CMC DATE-TIME STAMP (TEN DIGITS INTEGER IN THE FOLLOWING FORM: W MM DD YY ZZ R) - NHOURS - NUMBER OF HOURS

    INTRP

    SUBROUTINE INTRP (FI,IFI,JFI,F,IF,JF,XI,YI,X,Y,FX,FY,FXY, HX,HY,KL,P,S,C,A,D,WORK) OBJECT(INTRP) - INTERPOLATE IN 2-DIMENSIONS FROM AN ARBITRARY RECTANGULAR GRID TO ANOTHER ARBITRARY RECTANGULAR GRID. OBJECT(INTRPR) - INTERPOLATE FROM AN ARBITRARY RECTANGULAR GRID TO A LIST OF POINTS AS (X,Y) COORDINATE PAIRS. ARGUMENTS OUT - FI - INTERPOLATED FIELD. IN - IFI - X-DIMENSION OF FIELD FI. - JFI - Y-DIMENSION OF FIELD FI. - F - ORIGINAL FIELD. - IF - X-DIMENSION OF FIELD F. - JF - Y-DIMENSION OF FILED F. - XI - X LOCATION OF THE VALUES OF THE INTERPOLATED FIELD FI. - YI - Y LOCATION OF THE VALUES OF THE INTERPOLATED FIELD FI. - X - X LOCATION OF THE VALUES OF THE ORIGINAL FIELD F. - Y - Y LOCATION OF THE VALUES OF THE ORIGINAL FIELD F. OUT - FX - ARRAY OF SIZE (IF,JF) THAT CONTAINS COMPUTED PARTIAL DERIVATIVE OF FIELD F WITH RESPECT TO X. OUT - FY - PARTIAL DERIVATIVE WITH RESPECT TO Y. OUT - FXY - PARTIAL SECOND DERIVATIVE WITH RESPECT TO X AND Y. IN - HX - GRID-LENGTHS DEFINED BY HX(I)=X(I+1)-X(I),I=1,IF-1 - HY - GRID-LENGTHS DEFINED BY HY(I)=Y(I+1)-Y(I),I=1,JF-1 - KL - CAN BE 0 OR 1, THE CHOICE DETERMINES THE ORDER IN WHICH F(XY) THE PARTIAL SECOND DERIVATIVE WITH RESPECT TO X AND Y IS CALCULATED. THE CHOICE IS IMMATERIAL. - P - WORKING STORAGE VECTORS OF LENGTH L=MAX0(IF,JF). - S - WORKING STORAGE VECTORS OF LENGTH L=MAX0(IF,JF). - C - WORKING STORAGE VECTORS OF LENGTH L=MAX0(IF,JF). - A - WORKING STORAGE VECTORS OF LENGTH L=MAX0(IF,JF). - D - WORKING STORAGE VECTORS OF LENGTH L=MAX0(IF,JF). - WORK - WORK AREA OF DIMENSION (JFI,4) USED BY INTRP ONLY.

    INT1D1

    SUBROUTINE INT1D1(FI,F,XI,X,FX,H,M,MI,CMU1,C1,CLMDAM,CM,A,C,D) OBJECT(INT1D1) - INTERPOLATE BETWEEN A NUMBER OF ARBITRARILY SPACED DATA POINTS USING CUBIC SPLINES. ARGUMENTS OUT - FI - VECTOR OF INTERPOLATED VALUES. IN - F - VECTOR OF VALUES OF THE FUNCTION. - XI - LOCATION OF THE VALUES OF THE INTERPOLATED VECTOR. - X - LOCATION OF THE VALUES OF INPUT VECTOR F. OUT - FX - VECTOR CONTAINING THE SPLINE DERIVATIVES OF THE FUNCTION AT THE ORIGINAL POINTS (X). IN - H - VECTOR WHICH MUST BE INITIALIZED WITH THE CO-ORDINATE DIFFERENCES, I.E. H(I)=X(I+1)-X(I) FOR I=1 TO (M-1). (THE M TH ELEMENT OF H IS NOT USED.) - M - LENGTH OF VECTORS F, FX, X, H, A, D AND C. - MI - LENGTH OF VECTORS FI AND XI. - CMU1 - CMU1,C1,CLMDAM,CM ARE CONSTANTS WHICH ARE USED TO - C1 SPECIFY THE END CONDITIONS FOR THE SPLINE. ONE - CLMDAM SUITABLE CHOICE IS TO SPECIFY THE END POINT SLOPES, - CM WHICH IS DONE BY SETTING CMU1=CLMDAM=0.0, AND PUTTING THE DESIRED SLOPES IN C1 AND CM. SUBROUTINES FD1 AND FDM, AND FUNCTIONS D1 AND DN ARE AVAILABLE TO CALCULATE END POINT SLOPES. FD1 AND FDM USE THE ANALYTICALLY DIFFERENTIATED FORM OF THE CUBIC LAGRANGE INTERPOLATING POLYNOMIAL, AND MAY BE USED - (CM) FOR GENERALLY SPACED POINTS. THEY ARE USED AS... CALL FD1 (GD1,F,H) CALL FDM (GDM,F,H,M) THE DERIVATIVES ARE RETURNED IN GD1 OR GDM. (F,H,M AS BEFORE). THE FUNCTIONS D1 AND DN, (DN IS AN ENTRY POINT IN D1), ARE SPECIALIZED TO UNIFORM SPACING, AND ARE USED AS ... GD1 = D1(F,H,M) GDM = DN(F,H,M) WHERE H IS NOW THE CONSTANT VALUE OF X(I+1) - X(I). (F,M AS BEFORE.) - A - WORKING VECTOR OF LENGTH M. - C - WORKING VECTOR OF LENGTH M. - D - WORKING VECTOR OF LENGTH M.

    IPSORT

    SUBROUTINE IPSORT(IP,A,N) OBJECT(IPSORT) - CREATES A POINTER OR INDEX VECTOR TO ADDRESS A REAL ARRAY IN NON-DECREASING ORDER ARGUMENTS OUT - IP - VECTOR CONTAINING POINTERS TO ADDRESS THE REAL ARRAY A IN NON-DECREASING ORDER IN - A - REAL ARRAY FOR WHICH INDEX VECTOR WILL BE CALCULATED - N - NUMBER OF ELEMENTS IN IP AND A

    JDATEC

    SUBROUTINE JDATEC(JD,I,J,K) OBJECT(JDATEC) - COMPUTES THE JULIAN CALENDAR DAY, GIVEN A YEAR, A MONTH AND A DAY. ARGUMENTS - JD - JULIAN DAY, A UNIQUE INTEGER WHICH MAPS ONE-TO-ONE ONTO TRIPLES OF INTEGERS REPRESENTING YEAR, MONTH, DAY OF THE MONTH. - I - YEAR - J - MONTH - K - DAY OF THE MONTH.

    L-P

    LLFXY

    SUBROUTINE LLFXY(DLAT,DLON,X,Y,D60,DGRW,NHEM) OBJECT(LLFXY) - COMPUTES LATITUDE AND LONGITUDE OF A POINT IN A POLAR STEREOGRAPHIC GRID FROM CO-ORDINATES IN THE GRID MEASURED FROM THE POLE. ARGUMENTS OUT - DLAT - LATITUDE IN DEGREES (-90 TO +90, POSITIVE N). - DLON - LONGITUDE IN DEGREES (-180 TO +180, POSITIVE E). IN - X - X-CO-ORDINATE OF THE POINT AS MEASURED WITH POLE AS ORIGIN - Y - Y-CO-ORDINATE OF THE POINT AS MEASURED WITH POLE AS ORIGIN - D60 - GRID LENGTH (IN METRES) OF THE POLAR STEREOGRAPHIC GRID AT 60 DEGREES - DGRW - ORIENTATION OF GREENWICH MERIDIAN WITH RESPECT TO THE GRID (IN DEGREES) - NHEM - 1 FOR NORTHERN HEMISPHERE 2 FOR SOUTHERN HEMISPHERE

    MSCALE

    SUBROUTINE MSCALE (R,D60,PI,PJ,NI,NJ) REAL R(NI,NJ) OBJECT(MSCALE) - COMPUTES THE MAP-SCALE FACTOR AT ALL POINTS OF A GRID OF UNIFORM MESH-LENGTH. THE GRID IS ASSUMED TO BE SUPERIMPOSED ON A POLAR STEREOGRAPHIC PROJECTION OF THE EARTH TRUE AT LATITUDE 60 DEGREES. ARGUMENTS - R - ARRAY WHERE THE RESULTS ARE STORED - D60 - GRID-LENGTH AT LATITUDE 60 DEGREES (IN METRES) - PI - X-CO-ORDINATE OF POLE RELATIVE TO BOTTOM LEFT CORNER OF GRID - PJ - Y-CO-ORDINATE OF POLE RELATIVE TO BOTTOM LEFT CORNER OF GRID - NI - X-DIMENSION - NJ - Y-DIMENSION

    MWERMS

    SUBROUTINE MWERMS(BIAS,STD,F,V,W,NI,NJ,IW1,IW2,NW1,NW2) REAL F(NI,NJ), V(NI,NJ), W(NI,NJ) OBJECT(MWERMS) - GIVEN A FORECAST, A VERIFICATION, A WEIGHT FIELD AND THE CO-ORDINATES OF THE WINDOW, COMPUTES THE MEAN WEIGHTED ERROR AND THE WEIGHTED R.M.S. DEVIATION FROM THE MEAN. ARGUMENTS OUT - BIAS - MEAN WEIGHTED ERROR - STD - R.M.S. DEVIATION FROM THE MEAN IN - F - FORECAST FIELD - V - VERIFYING FIELD - W - WEIGHT FIELD (SET TO 1'S IF WEIGHTING IS NOT DESIRED) - NI - X-DIMENSION - NJ - Y-DIMENSION - IW1 - BOTTOM LEFT CORNER OF X-COORDINATE OF WINDOW - IW2 - BOTTOM LEFT CORNER OF Y-COORDINATE OF WINDOW - NW1 - UPPER RIGHT CORNER OF X-COORDINATE OF WINDOW - NW2 - UPPER RIGHT CORNER OF Y-COORDINATE OF WINDOW

    ORDLEG

    SUBROUTINE ORDLEG(SX,COA,IR) OBJECT(ORDLEG) - THIS ROUTINE IS A SUBSET OF BELOUSOVS ALGORITHM USED TO CALCULATE ORDINARY LEGENDRE POLYNOMIALS. ARGUMENTS OUT - SX - LEGENDRE POLYNOMIAL EVALUATED AT COA IN - COA - COSINE OF COLATITUDE IN - IR - WAVE NUMBER

    PCONW2

    SUBROUTINE PCONW2 (ZZ,CINT,SCALE,LI,LJ,IP,JP,IW,JW,LL,MM,MTYPE) REAL ZZ(LI,LJ) OBJECT(PCONW2) - MAPS LL BY MM WINDOW FROM POINT (IW,JW) IN GRID ZZ(LI,LJ) WITH NORTH POLE AT (IP,JP) USING A CUBIC INTERPOLATION THE CONTINENTAL OUTLINE IS INTERPOLATED FROM A 1/20M SCALE GRID OF SIZE (51,55) WITH NORTH POLE AT (26,28). ARGUMENTS SEE BCONW2, EXCEPT IP,JP REAL IN BCONW2

    PERMUT

    SUBROUTINE PERMUT(Z,NI,NJ) REAL Z(NI,NJ) OBJET(PERMUT) - ROTATION D'UNE MATRICE AUTOUR DE LA LIGNE DU MILIEU. CETTE ROUTINE EST UTILISEE POUR RE=ARRANGER LES DONNEES DANS UN CHAMP. EX: POUR CONTOURER, ON A DES DONNEES DANS L'ORDRE SUIVANT, DU SUD AU NORD ALORS QUE POUR L'INTERPOLATION ELLES DOIVENT ETRE ETALEES DU NORD AU SUD. ARGUMENTS IN/OUT - Z - CHAMP QUI SUBIT LA ROTATION IN - NI - PREMIERE DIMENSION DE Z IN - NJ - DEUXIEME DIMENSION DE Z

    POLAGR

    FUNCTION POLAGR(ZZ,F,Z,NPLUS1) REAL Z(NPLUS1), F(NPLUS1) OBJET(POLAGR) - TROUVE LA VALEUR AU POINT ZZ DE L'INTERPOLATION DE LAGRANGE DE DEGRE N, (NPLUS1 = N+1), QUI PREND LES VALEURS DE F AUX POINTS DE Z. ARGUMENTS - ZZ - POINT POUR LEQUEL ON CHERCHE F(ZZ) - F - VALEURS DE LA FONCTION - Z - LISTE DE COORDONNEES - NPLUS1 - DEGRE MAXIMUM DES POLYNOMES DE LAGRANGE + 1

    R-U

    ROSSR3

    SUBROUTINE ROSSR3(P,A,DELTA,C,D,M) OBJECT(ROSSR3) - SOLVE A TRI-DIAGONAL SYSTEM OF LINEAR EQUATIONS. ARGUMENTS - P - SOLUTION VECTOR. - A - VECTOR OF SUB-DIAGONAL ELEMENTS. - DELTA - WORK VECTOR. - C - VECTOR OF SUPER-DIAGONAL ELEMENTS. - D - RIGHT-HAND SIDE VECTOR. - M - NUMBER OF EQUATIONS TO BE SOLVED.

    R4AA4

    SUBROUTINE R4AA4(R4A,A4,N) IMPNONE INTEGER R4A(*), A4(*), N INTEGER NBMOT,BLANK,NI,DPC,I OBJET(R4AA4) TRANSFORMER N CARACTERES CONTENUS DANS DES MOT R4A (4 CAR DE 8 BITS ALIGNES DANS LA PARTIE DROITE DU MOT) EN N CARACTERES CONTENUS DANS DES MOT DE TYPE A4 (4 CAR ALIGNES A GAUCHE DANS LE MOT) ARGUMENTS OUT A4 TABLEAU D'ENTIERS CONTENANT LES CAR. DE TYPE A4 IN R4A TABLEAU D'ENTIERS CONTENANT LES CAR. DE TYPE R4A IN N NOMBRE DE CARACTERES A TRANSFORMER

    R4ASTRG

    SUBROUTINE R4ASTRG(STRG,R4A,POSDEB,POSFIN) IMPNONE CHARACTER * (*) STRG INTEGER R4A(0:*) INTEGER POSDEB,POSFIN,POS,LNG,MAXCAR,MOT,CARPOS,SHFCNT,C,I,MSK OBJET(R4ASTRG) TRANSFORMER N CARACTERES CONTENUS DANS DES MOT R4A (4 CAR. DE 8 BITS ALIGNES DANS LA PARTIE DROITE DU MOT) EN N CARACTERES CONTENUS DANS UNE CHAINE DE "CHARACTER". ARGUMENTS IN R4A TABLEAU D'ENTIERS CONTENANT LES CARACTERES DE TYPE R4A OUT STRG TABLEAU DE CARACTERES TRANSFORMES IN POSDEB POSITION DU PREMIER CARACTERE DANS R4A IN POSFIN POSITION DU DERNIER CARACTERE DANS R4A

    SCINT

    SUBROUTINE SCINT(ZO,LI,LJ,XLAT,XLON,ZI,NI,NJ,IGTYP, IG1,IG2,IG3,IG4,SYM) INTEGER NI,NJ,LI,LJ REAL ZO(LI,LJ),ZI(NI,NJ),XLAT(LI,LJ),XLON(LI,LJ) INTEGER IGTYP,GI1,IG2,IG3,IG4 LOGICAL SYM OBJET(SCINT) - INTERPOLATION D'UNE GRILLE A UNE AUTRE HORIZONTALEMENT VERIFIER LA SORTE DE GRILLE, RENVERSER LE CHAMP AU BESOIN. ARGUMENTS OUT - ZO - CHAMP DE SORTIE LI X LJ IN - LI - NOMBRE DE POINTS EST- OUEST IN - LJ - NOMBRE DE POINTS NORD - SUD IN - XLAT - LATITUDES SUR LA GRILLE DE SORTIE (LI,LJ) IN - XLON - LONGITUDES SUR LA GRILLE DE SORTIE (LI,LJ) IN - ZI - CHAMP D'ENTREE (NI,NJ) IN - NI - NOMBRE DE POINTS DANS DIRECTION EST - OUEST IN - NJ - NOMBRE DE POINTS DANS DIRECTION NORD - SUD IN - IGTYP - TYPE DE GRILLE(ZI) (HOLLERITH, 1 CAR) IN - IG1 - DESCRIPTEUR DE GRILLE (GRILLE D'ENTREE) IN - IG2 - '' '' '' '' IN - IG3 - '' '' '' '' IN - IG4 - '' '' '' '' IN - SYM - INDICATEUR DE SYMETRIE (VRAI SI VARIABLE EST SYMETRIQUE)

    SCINT1

    SUBROUTINE SCINT1(ZI,NI,NJ,IGTYP,IG1,IG2,IG3,IG4,SYM) INTEGER NI,NJ REAL ZI(NI,NJ) INTEGER IGTYP,GI1,IG2,IG3,IG4 LOGICAL SYM OBJET(SCINT1) - INTERPOLATION D'UNE GRILLE A UNE AUTRE HORIZONTALEMENT VERIFIER LA SORTE DE GRILLE, RENVERSER LE CHAMP AU BESOIN. ARGUMENTS IN - ZI - CHAMP D'ENTREE (NI,NJ) IN - NI - NOMBRE DE POINTS DANS DIRECTION EST - OUEST IN - NJ - NOMBRE DE POINTS DANS DIRECTION NORD - SUD IN - IGTYP - TYPE DE GRILLE(ZI) (HOLLERITH, 1 CAR) IN - IG1 - DESCRIPTEUR DE GRILLE (GRILLE D'ENTREE) IN - IG2 - '' '' '' '' IN - IG3 - '' '' '' '' IN - IG4 - '' '' '' '' IN - SYM - INDICATEUR DE SYMETRIE (VRAI SI VARIABLE EST SYMETRIQUE)

    SCINT2

    FUNCTION SCINT2(XLAT,XLON,ZI,NI,NJ) REAL ZI(NI,NJ),XLAT,XLON OBJET(SCINT2) - INTERPOLATION D'UNE GRILLE A UNE AUTRE HORIZONTALEMENT ARGUMENTS IN - XLAT - LATITUDE SUR LA GRILLE DE SORTIE IN - XLON - LONGITUDE SUR LA GRILLE DE SORTIE IN - ZI - CHAMP D'ENTREE (NI,NJ) IN - NI - NOMBRE DE POINTS DANS DIRECTION EST - OUEST IN - NJ - NOMBRE DE POINTS DANS DIRECTION NORD - SUD

    SCONW

    SUBROUTINE SCONW (ZZ,CINT,SCALE,LI,LJ,IW,JW,LL,MM,MTYPE) REAL ZZ(51,55) OBJECT(SCONW) - MAPS LL BY MM WINDOW FROM POINT (IW,JW) IN GRID ZZ(LI,LJ) USING A CUBIC INTERPOLATION THE CONTINENTAL OUTLINE IS INTERPOLATED FROM A 1/20M SCALE GRID OF SIZE (51,55) WITH NORTH POLE AT (26,28). ARGUMENTS SEE BCONW2

    SETINTX

    SUBROUTINE SETINTX(ORDRE) INTEGER ORDRE OBJET(SETINTX) PERMET DE FORCER LES SOUS-PROGRAMMES D'INTERPOLATION HORIZONTALE A UTILISER UNE INTERPOLATION D'ORDRE ZER0 (PLUS PROCHE VOISIN) OU D'ORDRE 1 (INTERPOLATION BILINEAIRE) PLUTOT QU'UNE INTERPOLATION D'ORDRE TROIS (BICUBIQUE). LES SOUS PROGRAMMES AFFECTES SONT --SGLO/SANH/SSNH-- --SGLOGG/SANHGG/SSNHGG-- --SLL-- --SPS-- ARGUMENTS E ORDRE ORDRE DE L'INTERPOLATION 0,1, OU 3

    SGLO

    FUNCTION SGLO (LAMBDA,PHI,F,LI,LJ) REAL F(LI,LJ) OBJECT(SGLO) - RETURNS THE INTERPOLATED VALUE FROM THE FIELD F, AT THE POINT WITH CO-LATITUDE PHI, LONGITUDE LAMBDA. RANGES PHI 0 TO PI, 0 AT NORTH POLE, LAMBDA, EITHER 0 TO 2 PI OR -PI TO +PI, 0 IS GREENWICH, +VE TOWARDS THE EAST. ARGUMENTS OUT - SGLO - INTERPOLATED VALUE IN - LAMBDA - LONGITUDE - PHI - CO-LATITUDE (90. - LAT) - F - A UNIFORM LON-LAT. GRID (STAGGERED) - LI - POINTS PER CIRCLE. MUST BE EVEN. THE FIRST CIRCLE IS DISPLACED FROM THE NORTH POLE BY OFFSET = 90.0 / LJ DEG. - LJ - NUMBER OF LATITUDE CIRCLES

    SGLOGG

    FUNCTION SGLOGG(G,LI,LJ,ROOTS,LAMBDA,PHI) REAL G(LI,LJ) OBJET(SGLOGG) - TROUVER LA VALEUR D'UNE FONCTION EN UN POINT QUELCONQUE D'UNE GRILLE GAUSSIENNE ARGUMENTS OUT - SGLOGG - VALEUR INTERPOLEE AU POINT DEMANDE IN - G - CHAMP SOURCE IN - LI - PREMIERE DIMENSION DE G IN - LJ - DEUXIEME DIMENSION DE G IN - ROOTS - TABLE SERVANT A CALCULER LES RACINES DES POLYNOMES DE LEGENDRE SEVANT A DEFINIR LA GRILLE GAUSSIENNE. SI ROOTS CONTIENT DEJA CES RACINES (I.E. SI ROOTS(1) EST POSITIF ET INFERIEUR A 1.0) LES VALEURS DE ROOTS SERONT UTILISEES DIRECTEMENT. IN - LAMBDA - LONGITUDE DU POINT DESIRE IN - PHI - COLATITUDE (90.0-LATITUDE) DU POINT DESIRE

    SLL

    FUNCTION SLL(LAMBDA,PHI,F,LI,LJ,XLA0,XLO0,DLAT,DLON) REAL F(LI,LJ), T(4) OBJET(SLL) - EXTRAIRE LA VALEUR DE LA FONCTION F AU POINT DE COORDONNEES LAMBDA(LONGITUDE) ET PHI(COLATITUDE) DANS UNE GRILLE LAT-LON. ARGUMENTS OUT - SLL - VALEUR DE LA FONCTION AU POINT DEMANDE IN - LAMBDA - LONGITUDE DU POINT (REEL) IN - PHI - COLATITUDE(LATITUDE-90.0) DU POINT (REEL) IN - F - CHAMP SOURCE (LI,LJ) IN - LI - PREMIERE DIMENSION DE LA GRILLE FF (PS) IN - LJ - DEUXIEME DIMENSION DE LA GRILLE FF (PS) IN - XLA0 - LATITUDE DU COIN INFERIEUR GAUCHE (DEGRES). IN - XLO0 - LONGITUDE DU COIN INFERIEUR GAUCHE (DEGRES). IN - DLAT - ESPACEMENT EN LATITUDE (DEGRES). IN - DLON - ESPACEMENT EN LONGITUDE (DEGRES).

    SORT

    SUBROUTINE SORT (A,N) REAL A (N) OBJECT(SORT) - RE-ARRANGES THE ELEMENTS OF A REAL ARRAY INTO NON-DECREASING ORDER. ARGUMENTS IN/OUT - A - REAL ARRAY TO BE SORTED IN - N - NUMBER OF ELEMENTS IN A

    SPAUV

    SUBROUTINE SPAUV(SPD,PSI,LI,LJ,ITYP,XG1,XG2,XG3,XG4) REAL SPD(LI,LJ), PSI(LI,LJ) OBJET(SPAUV) - PASSE DE VITESSE (SPEED) ET PSI (DIRECTION) AUX VRAIES COMPOSANTES U ET V SELON LE TYPE DE GRILLE. ARGUMENTS IN/OUT - SPD - A L'ENTREE CONTIENT LA VITESSE DU VENT ET A LA SORTIE LA COMPOSANTE U. IN/OUT - PSI - A L'ENTREE CONTIENT LA DIRECTION DU VENT ET A LA SORTIE LA COMPOSANTE V. IN - LI - PREMIERE DIMENSION DES CHAMPS SPD ET PSI IN - LJ - DEUXIEME DIMENSION DES CHAMPS SPD ET PSI IN - ITYP - TYPE DE GRILLE (HOLLERITH 1 CAR) IN - XG1 - ** DESCRIPTEUR DE GRILLE (REEL), IN - XG2 - ITYP = 1HN, PI, PJ, D60, DGRW IN - XG3 - ITYP = 1HL, LAT0, LON0, DLAT, DLON, IN - XG4 - ITYP = 1HA, 1HB, IHG, XG1 = 0. GLOBAL, = 1. NORD = 2. SUD **

    SPD

    SUBROUTINE SPD (P,S,M,H,CMU1,C1,CLMDAM,CM,A,C,D) OBJECT(SPD) - THIS ROUTINE IS USED TO COMPUTE SPLINE DERIVATIVES. - THIS ROUTINE IS PART OF THE SPLINE INTERPOLATION PACKAGE. SEE THE WRITE-UPS ON INTRP AND INT1D1 FOR INFORMATION ABOUT USING THE PACKAGE. ARGUMENTS - P - SOLUTION VECTOR. - S - VECTOR OF VALUES OF THE FUNCTION. - M - LENGTH OF VECTORS P, S, A, C, D AND H. - H - VECTOR WHICH MUST BE INITIALIZED WITH THE COORDINATE DIFFERENCES. - CMU1 - CONSTANT USED TO SPECIFY THE END CONDITIONS FOR THE SPLINE. - C1 - CONSTANT USED TO SPECIFY THE END CONDITIONS FOR THE SPLINE. - CLMDAM - CONSTANT USED TO SPECIFY THE END CONDITIONS FOR THE SPLINE. - CM - CONSTANT USED TO SPECIFY THE END CONDITIONS FOR THE SPLINE. - A - WORKING VECTOR OF LENGTH M. - C - WORKING VECTOR OF LENGTH M. - D - WORKING VECTOR OF LENGTH M.

    SPLAT

    SUBROUTINE SPLAT(A,LI,NC,II,INCR,GMIN,GMAX) REAL A(LI,NC) OBJECT(SPLAT) - DRAWS UP TO FIFTEEN CURVES ON THE SAME GRAPH, THE Y-AXIS EXTENDS HORIZONTALLY ACROSS THE PAGE AND THE X-AXIS EXTENDS DOWN THE PAGE FOR AS MANY PAGES AS REQUIRED ARGUMENTS - A - ARRAY TO BE PLOTTED - LI - X-DIMENSION - NC - NUMBER OF CURVES TO BE DRAWN (MAXIMUM 15) - II - NUMBER OF ELEMENTS IN THE X-DIRECTION TO BE DRAWN FROM EACH ROW OF A, MUST BE LESS OR EQUAL TO LI - INCR - X-AXIS INCREMENT, ABSOLUTE VALUE IS USED. - INCR=1 DRAWS EVERY POINT - INCR=2 DRAWS EVERY SECOND POINT ETC... - IF INCR>0, THE VALUES OF CURVE NC ARE WRITTEN ALONG THE X-AXIS - IF INCR<0, these values are omitted. - gmin - minimum value on y-axis - gmax - maximum value on y-axis - values of the curve falling outside these limits are simply omitted, if gmin=GMAX, the subroutine selects the smallest and largest of all the values to be plotted as the graph limits.

    sps

    function sps(lambda,phi,f,li,lj,pi,pj,d60,dgrw,hem) real f(li,lj), t(4) objet(sps) - extraire la valeur de la fonction f au point de coordonnees lambda(longitude) et phi(colatitude) dans une grille polaire stereographique. arguments out - sps - valeur de la fonction au point demande in - lambda - longitude du point (reel) in - phi - colatitude(latitude-90.0) du point (reel) in - f - champ source (li,lj) in - li - premiere dimension de la grille f (ps) in - lj - deuxieme dimension de la grille f (ps) in - pi - coordonnee x du pole (reel) in - pj - coordonnee y du pole (reel) in - d60 - distance en metres entre les points de la grille a 60 degres de latitude in - dgrw - angle entre l'axe x et le meridien de grenwich in - hem - code d'hemisphere (1=NORD , 2=SUD)

    sqadsq

    subroutine sqadsq (r,a,b,cona,conb,ni,nj,nb) real r(ni,nj), a(ni,nj), b(ni,nj) object(sqadsq) - computes the squares, element wise, of two 2-dimensional arrays, scales each result and sums the scaled arrays. r(i,j)=CONA*(A(I,J)**2) + conb*(b(i,j)**2) arguments out - r - array containing result in - a - first array to be operated on - b - second array to be operated on - cona - scaling factor for array a - conb - scaling factor for array b - ni - x-dimension in - nj - y-dimension - nb - 4-digit decimal number which allows at most nine rows on any side of the grid to be skipped. - nb=D1*10E3 + d2*10e2 +.d3*10 + d4 - d1=COLUMNS are skipped from left - d2=ROWS are skipped from bottom -.d3=COLUMNS are skipped from right - d4=ROWS are skipped from top - e.g. nb=0000 include all borders (written as 0) nb=1111 omit one row all around the grid nb=2241 indicates that the 2 columns on the left of a, 2 rows at the bottom, 4 columns at the right and 1 row at the top are not operated on and the corresponding rows and columns of r are left undefined by the routine.

    strgr4a

    subroutine strgr4a(strg,r4a,posdeb,posfin) character * (*) strg integer r4a(0:*) integer posdeb,posfin,pos,lng,maxcar,mot,carpos,shfcnt,c,i,msk objet(strgr4a) transformer une chaine de caracteres en mot de type r4a (4 car. de 8 bits alignes dans la partie droite du mot). arguments in strg chaine de caracteres a transformer out r4a tableau d'entiers qui contiendra les car r4a in posdeb position du premier caractere dans r4a in posfin position du dernier caractere dans r4a

    s1scor

    subroutine s1scor(s1,f,v,ni,nj,iw1,iw2,nw1,nw2,igl) real f(ni,nj), v(ni,nj) object(s1scor) - given a forecast, a verifying field and the co-ordinates of the window, computes the s1 (gradient) score. arguments out - s1 - s1 score in - f - forecast field - v - verifying field - ni - x-dimension - nj - y-dimension - iw1 - bottom left corner of x-coordinate of window - iw2 - bottom left corner of y-coordinate of window - nw1 - upper right corner of x-coordinate of window - nw2 - upper right corner of y-coordinate of window - igl - grid point interval for verification (set to 1 or 2)

    uvint

    subroutine uvint(spdo,psio,li,lj,xlat,xlon,ui,vi,ni,nj,igtyp, ig1,ig2,ig3,ig4,sws) real spdo(li,lj),psio(li,lj),xlat(li,lj),xlon(li,lj) real ui(ni,nj),vi(ni,nj) objet(uvint) - interpolation d'une grille a une autre horizontalement verifier la sorte de grille renverser le champ arguments out - spdo - champ de sortie li x lj (vitesse du vent) out - psio - champ de sortie li x lj (direction du vent) in - li - nombre de points est - ouest (sortie) in - lj - nombre de points nord - sud (sortie) in - xlat - latitudes sur la grille de sortie (li,lj) in - xlon - longitudes sur la grille de sortie (li,lj) in - ui - champ d'entree (ni,nj) (composante u du vent) in - vi - champ d'entree (ni,nj) (composante v du vent) in - ni - nombre de points dans direction est - ouest in - nj - nombre de points dans direction nord - sud in - igtyp - type de grille(ui,vi) (hollerith 1 car) in - ig1 - descripteur de grille (grille d'entree) in - ig2 - '' '' '' '' in - ig3 - '' '' '' '' in - ig4 - '' '' '' '' in - sws - sws=.TRUE., spdo et psio - .false. spdo seulement

    v-z

    valide

    logical function valide(nom, ichk, min, max) objet(valide) - verifier si ichk> MIN OU =< MAX - MESSAGE SI ICHK N'EST PAS DANS LES LIMITES ARGUMENTS IN - NOM - NOM DE LA VARIABLE EMPLOYE PAR LA ROUTINE IN - ICHK - VALEUR DE LA VARIABLE POUR VERIFICATION IN - MIN - VALEUR MINIMUM DE ICHK IN - MAX - VALEUR MAXIMUM DE ICHK

    VCONW

    SUBROUTINE VCONW(F,CINT,SCALE,X,Y,LI,LJ,XST,XND,YST,YND,SIZE,NSK) REAL F(LI,LJ), X(LI), Y(LJ) OBJECT(VCONW) VCONW WILL CONTOUR A WINDOW OF A VARIABLE MESH GRID ON THE LINE PRINTER (6 LINES PER INCH). CUBIC INTERPOLATION WILL BE USED. ARGUMENTS INP- F(LI,LJ) FIELD TO BE CONTOURED CINT CONTOUR INTERVAL (0. MEANS INTERNAL CHOICE) CINT <0. means first contour at -.5*abs(cint) scale scaling factor (0. means auto scaling) x(li) array of x coordinates of the f field (i direction) y(lj) array of y coordinates of the f field (j direction) li i dimension of f and x lj j dimension of f and y xst coordinate of left edge of window xnt coordinate of right edge of window yst coordinate of bottom edge of window ynd coordinate of top edge of window size size of contour map in the x direction (inches e.g. 10.7) nsk print grid point values every nsk points

    vglo

    subroutine vglo(speed , psi , clamda, phi , u, v, li, lj ) real u(li,lj), v(li,lj) object(vglo) - return 2 scalars quantities using u-v vector field - on lat lon compute speed and psi with a cubic - interpolation on east to west and north to south arguments out - speed - wind speed, same units as u,v out - psi - angle between the wind and greenwich on p.s. grid in - clamda - longitude of pt / to pi or -pi to +pi east=+ in - phi - colatitude of u or v (0=N.P. 180=S.P.) in - u,v - are uniform long lat grids in - li - points per circle, must be even first circle displace from pole by offset (90.0/deg) in - lj - latitude circles

    vglogg

    subroutine vglogg(speed , psi ,clamda, phi ,u,v,li,lj ,roots) real u(li,lj), v(li,lj) object(vglogg) - return 2 scalars quantities using u-v vector field - on lat lon compute speed and psi with a cubic - interpolation on east to west and north to south arguments out - speed - wind speed, same units as u,v out - psi - angle between the wind and greenwich on p.s. grid in - clamda - longitude of pt / to pi or -pi to +pi east=+ in - phi - colatitude of u or v (0=N.P. 180=S.P.) in - u,v - are uniform long lat grids in - li - points per circle, must be even first circle displace from pole by offset (90.0/deg) in - lj - latitude circles in - roots - table servant a calculer les racines des polynomes de legendre servant a definir la latitude des noeuds de la grille gaussienne. si roots contient deja ces racines (i.e. si roots(1) est positif et inferieur a 1.0) les valeurs de roots seront utilises directement.

    vll

    subroutine vll(s,psi,lambda,phi,u,v,li,lj,xla0,xlo0,dlat,dlon) real u(li,lj), v(li,lj) object(vll) interpolation de vecteurs a partir d'une grille ll arguments out - s - vitesse du vent au point demande out - psi - direction du vent in - lambda - longitude du point (reel) in - phi - colatitude(latitude-90.0) du point (reel) in - u,v - composantes u et v du vent (li,lj) in - li - premiere dimension des champs u et v (ps) in - lj - deuxieme dimension des champs u et v (ps) in - xla0 - latitude du coin inferieur gauche (degres). in - xlo0 - longitude du coin inferieur gauche (degres). in - dlat - espacement en latitude (degres). in - dlon - espacement en longitude (degres).

    vpolagr

    subroutine vpolagr(ff,zz,f,z,na,nplus1) real ff(na), f(na,nplus1), z(nplus1) objet(vpolagr) - etant donne f(*,j)=FONCTION de z(j), on veut evaluer ff(*) qui est egale a la valeur de la fonction a z=ZZ arguments out - ff - champ de sortie (na) - zz - coordonnee a laquelle on veut interpoler - f - champ source (na,nplus1) - z - coordonnee verticale (nplus1) - na - dimension horizontale de ff, f - nplus1 - degre maximum des polynomes de lagrange + 1

    vps

    subroutine vps(s,psi,lambda,phi,u,v,li,lj,pi,pj,d60,dgrw,hem) real u(li,lj), v(li,lj) object(vps) interpolation de vecteurs a partir d'une grille ps arguments out - s - vitesse du vent au point demande out - psi - direction du vent in - lambda - longitude du point (reel) in - phi - colatitude(latitude-90.0) du point (reel) in - u,v - composantes u et v du vent (li,lj) in - li - premiere dimension des champs u et v (ps) in - lj - deuxieme dimension des champs u et v (ps) in - pi - coordonnee x du pole (reel) in - pj - coordonnee y du pole (reel) in - d60 - distance en metres entre les points de la grille a 60 degres de latitude in - dgrw - angle entre l'axe x et le meridien de grenwich in - hem - code d'hemisphere (1=NORD , 2=SUD)

    windv

    subroutine windv(rms,fu,fv,vu,vv,w,ni,nj,iw1,iw2,nw1,nw2) real fu(ni,nj),fv(ni,nj),vu(ni,nj),vv(ni,nj),w(ni,nj) object(windv) - given a forecast, a verification, a weight field and the co-ordinates of the window, computes the weighted r.m.s. error. arguments out - rms - weighted r.m.s. error of vectors in - fu - x-component of forecasted wind - fv - y-component of forecasted wind - vu - x-component of verifying wind - vv - y-component of verifying wind - w - weight field (set to 1's if weighting not desired) - ni - x-dimension - nj - y-dimension - iw1 - bottom left corner of x-coordinate of window - iw2 - bottom left corner of y-coordinate of window - nw1 - upper right corner of x-coordinate of window - nw2 - upper right corner of y-coordinate of window

    cxgaig

    subroutine cxgaig(igtyp,ig1,ig2,ig3,ig4,xg1,xg2,xg3,xg4) character *1 igtyp objet(cxgaig) - passe des parametres (reels) descripteurs de grille aux parametres entiers. arguments in - igtyp - type de grille out - ig1 - descripteur de grille (entier) out - ig2 - descripteur de grille (entier) out - ig3 - descripteur de grille (entier) out - ig4 - descripteur de grille (entier) in - xg1 - ** descripteur de grille (reel), in - xg2 - igtyp=N , pi, pj, d60, dgrw in - xg3 - igtyp=L , lat0, lon0, dlat, dlon, in - xg4 - igtyp=A , 'b', 'g', xg1=0, global=1, nord=2, sud **

    xxpak

    subroutine xxpak(ifld,ipk,ni,nj,npak,nb,kind) integer ifld(*),ipk(*),ni,nj,npak,nb,kind objet(xxpak) - compacter ou decompacter des nombres reels. (version rapide) arguments in/ - ifld - floating point array, unpacked (ni,nj) in/ - ipk - the same array packed in - ni - x-dimension in - nj - y-dimension in - npak - npak> 0, DENSITE DE COMPACTION NPAK = 0 OU 1, PAS DE COMPACTION NPAK < 0, NOMBRE DE BITS A GARDER PAR NOMBRE IN - NB - MUST BE 0 (LEFT FOR COMPATIBILITY) IN - KIND - 1 = PACK 2 = UNPACK

    sous-routine

    SUBROUTINE XYFLL(X,Y,DLAT,DLON,D60,DGRW,NHEM) OBJECT(XYFLL) - COMPUTES THE GRID CO-ORDINATES MEASURED FROM THE POLE OF A POINT, GIVEN THE LATITUDE AND LONGITUDE IN DEGREES. ARGUMENTS OUT - X - X-CO-ORDINATE OF THE POINT AS MEASURED WITH POLE AS ORIGIN - Y - Y-CO-ORDINATE OF THE POINT AS MEASURED WITH POLE AS ORIGIN IN - DLAT - LATITUDE IN DEGREES (-90 TO +90, POSITIVE N) - DLON - LONGITUDE IN DEGREES (-180 TO +180, POSITIVE E) ARGUMENTS - D60 - GRID LENGTH (IN METRES) OF THE POLAR STEREOGRAPHIC GRID AT 60 DEGREES - DGRW - ORIENTATION OF GREENWICH MERIDIAN WITH RESPECT TO THE GRID (IN DEGREES) - NHEM - 1 FOR NORTHERN HEMISPHERE 2 FOR SOUTHERN HEMISPHERE