Lesson 11, Part 4: Creating Macro Variables Using PROC SQL¶

DICTIONARY.TABLES¶

See more about DICTIONARY.TABLES here in SAS Documentation

  • is a read-only object and contains information about known tables (i.e., SAS datasets).
  • contains information about datasets ... allocated with the LIBNAME. The Table also includes LIBNAMEs typically allocated during initialization (SASUSER, SASHELP, and maps).

SESUG Paper AT-279-2019 by Frank C. DiIorio

Create a macro variable with a list of SAS dataset names from DICTIONARY.TABLES where LIBNAME = "SASHELP" using PROC SQL¶
In [3]:
ods html close;
options nosource nonumber nodate nonotes nosource;
proc sql noprint;
    select memname
        INTO :dslist separated by ' '
        FROM DICTIONARY.TABLES
        where libname = "SASHELP";
    %let ds = &sqlobs;
quit;

%put Number of SAS datasets = &ds;
%put ;
%put &=dslist;
%put;
                                                           The SAS System

Number of SAS datasets = 226
 
DSLIST=AACOMP AARFM ADSMSG AFMSG AIR APPLIANC ASSCMGR BASEBALL BEI BIRTHWGT BMIMEN BMT BURROWS BUY BWEIGHT CARS CITIDAY CITIMON 
CITIQTR CITIWK CITIYR CLASS CLASSFIT CLNMSG CNTAINER COLUMN COMET COMPANY COUNTSERIES CP951 CSFDEFS CTHEME DEMOGRAPHICS DESKACT 
DESKFD DESKOBJ DFTDICT DMCAS DMGMSG DMINE DMTOOLS DMWBTOOL DPLOG DYNATTR EIS EISILCO EISMBRP EISMKCN EISMKIL EISMKMX EISMKNA 
EISMKUS EISMSG EISOBJ1 EISOBJ2 EISOBJ3 EISOBJ4 EISOBJ5 EISOBJ6 EISOBJ7 EISOBJ8 EISRG EISTOOLS ELECTRIC EMSASCOD EMTOOL ENSO ETSMSG 
FAILURE FEEDDET FEEDER FISH FLAGS FONTDATA FSAUTH FSHEAD FTABLE GAS GCDIRECT GCSTATE GCTYPE GEOEXM GEOEXP GEOEXS GISIMP GNGMSG 
GNGSMP1 GNGSMP2 GNP GRIDDED HEART HKSCS01 HOLIDAY HTHEME HTMUTIL HUMID IMAGERW IMGMSG IRIS JAC JUNKMAIL KOC LAKE LEUTEST LEUTRAIN 
LIBRARY LOC LSWMSG LTHEME MACRS10 MACRS15 MACRS20 MACRS3 MACRS5 MACRS7 MANAGE MARGARIN MDASSOC MDBMSG MDV METAIMDB METAMSG MILEAGES 
MLEIS MLVIEW MON1001 MON111 MONIKER MRRGSTRY NVST1 NVST2 NVST3 NVST4 NVST5 OBJECTS OMAASSC OMAVERB ORSALES PLFIPS PRDSAL2 PRDSAL3 
PRDSALE PRICEDATA PROJ4DEF QTR1001 QTR111 QUAKES RENT RETAIL REVHUB2 ROCKPIT SASAPPL SASMBC SASMBI SASMSG SHELL SHOES SLKWXL SMEMSG 
SNACKS SPRINGS SR3 STEEL STOCKS SVRTDIST SYR1001 TABLE TGRMAPC TGRMAPS THICK TIMEDATA TOURISM USECON US_DATA VALLOPT VBPLAYRS 
VCATALG VCFORMAT VCHKCON VCNCOLU VCNTABU VCOLUMN VDATAIT VDCTNRY VDEST VENGINE VERBMGR VEXTFL VFILTER VFORMAT VFUNC VGOPT VIDMSG 
VINDEX VINFOMP VLIBNAM VLOCALE VMACRO VMEMBER VOPTION VOTE1980 VPRMXML VPROMPT VREFCON VREMEMB VSACCES VSCATLG VSLIB VSTABLE 
VSTABVW VSTYLE VSVIEW VTABCON VTABLE VTITLE VVIEW VXATTR WEBMSG WORKERS YR1001 YR111 ZHC ZIPCODE ZIPMIL ZTC _CMPIDX_
 
                                                           The SAS System

E3969440A681A2408885998500000005
Create a macro variable containing a horizontal list of countries from a SASHELP SAS dataset¶
In [4]:
ods html close;
options nosource nonumber nodate nonotes nosource;
proc sql noprint;
    select distinct trim(name)
        INTO :clist separated by ','
        FROM SASHELP.demographics;        
quit;

%put Number of countries for all world regions combined = &sqlobs;
%put ;
%put &=clist;
%put;
                                                           The SAS System

Number of countries for all world regions combined = 197
 
CLIST=AFGHANISTAN,ALBANIA,ALGERIA,ANDORRA,ANGOLA,ANTIGUA/BARBUDA,ARGENTINA,ARMENIA,ASHMORE/CARTIER,AUSTRALIA,AUSTRIA,AZERBAIJAN,BAHA
MAS,BAHRAIN,BANGLADESH,BARBADOS,BELARUS,BELGIUM,BELIZE,BENIN,BHUTAN,BOLIVIA,BOSNIA/HERZEGOVINA,BOTSWANA,BRAZIL,BRUNEI,BULGARIA,BURKI
NA FASO,BURUNDI,CAMBODIA,CAMEROON,CANADA,CAPE VERDE,CENTRAL AFRICAN REP.,CHAD,CHILE,CHINA,COLOMBIA,COMOROS,CONGO,COOK ISLANDS,CORAL 
SEA ISLANDS,COSTA RICA,CROATIA,CUBA,CYPRUS,CZECH REPUBLIC,DENMARK,DJIBOUTI,DOMINICA,DOMINICAN REPUBLIC,EAST TIMOR,ECUADOR,EGYPT,EL 
SALVADOR,EQUATORIAL 
GUINEA,ERITREA,ESTONIA,ETHIOPIA,FIJI,FINLAND,FRANCE,GABON,GAMBIA,GEORGIA,GERMANY,GHANA,GREECE,GRENADA,GUATEMALA,GUERNSEY,GUINEA,GUIN
EA-BISSAU,GUYANA,HAITI,HONDURAS,HUNGARY,ICELAND,INDIA,INDONESIA,IRAN,IRAQ,IRELAND,ISRAEL,ITALY,IVORY 
COAST,JAMAICA,JAPAN,JERSEY,JORDAN,KAZAKHSTAN,KENYA,KIRIBATI,KOREA, NORTH,KOREA, 
SOUTH,KUWAIT,KYRGYZSTAN,LAOS,LATVIA,LEBANON,LESOTHO,LIBERIA,LIBYA,LITHUANIA,LUXEMBOURG,MACEDONIA,MADAGASCAR,MALAWI,MALAYSIA,MALDIVES
,MALI,MALTA,MAN,MARSHALL 
ISLANDS,MAURITANIA,MAURITIUS,MEXICO,MICRONESIA,MOLDOVA,MONACO,MONGOLIA,MOROCCO,MOZAMBIQUE,MYANMAR,NAMIBIA,NAURU,NEPAL,NETHERLANDS,NE
W ZEALAND,NICARAGUA,NIGER,NIGERIA,NIUE,NORWAY,OMAN,PAKISTAN,PALAU,PANAMA,PAPUA NEW 
GUINEA,PARAGUAY,PERU,PHILIPPINES,POLAND,PORTUGAL,QATAR,ROMANIA,RUSSIA,RWANDA,SAINT KITTS/NEVIS,SAINT VINCENT/GRENADINES,SAMOA,SAN 
MARINO,SAO TOME/PRINCIPE,SAUDI ARABIA,SENEGAL,SERBIA,SEYCHELLES,SIERRA LEONE,SINGAPORE,SLOVAKIA,SLOVENIA,SOLOMON 
ISLANDS,SOMALIA,SOUTH AFRICA,SPAIN,SRI LANKA,ST. 
LUCIA,SUDAN,SURINAME,SWAZILAND,SWEDEN,SWITZERLAND,SYRIA,TAJIKISTAN,TANZANIA,THAILAND,TOGO,TONGA,TRINIDAD AND 
TOBAGO,TUNISIA,TURKEY,TURKMENISTAN,TUVALU,UGANDA,UKRAINE,UNITED ARAB EMIRATES,UNITED KINGDOM,UNITED 
STATES,URUGUAY,UZBEKISTAN,VANUATU,VENEZUELA,VIETNAM,YEMEN,ZAIRE,ZAMBIA,ZIMBABWE
 
                                                           The SAS System

E3969440A681A2408885998500000006
Create a macro variable containing a horizontal list of countries under the region AFR¶
In [6]:
options nosource nonumber nodate nonotes nosource;
ods html close;
proc sql noprint;
    select distinct trim(name)
        INTO :AFR_clist separated by ','
        FROM SASHELP.demographics
        where region="AFR";
quit;

%put Number of countries for AFR_clist = &sqlobs;
%put ;
%put &=AFR_clist;
%put;
%put NOTE: End of region AFR processing;
%put ;
                                                           The SAS System

Number of countries for AFR_clist = 46
AFR_CLIST=ALGERIA,ANGOLA,BENIN,BOTSWANA,BURKINA FASO,BURUNDI,CAMEROON,CAPE VERDE,CENTRAL AFRICAN REP.,CHAD,COMOROS,CONGO,EQUATORIAL 
GUINEA,ERITREA,ETHIOPIA,GABON,GAMBIA,GHANA,GUINEA,GUINEA-BISSAU,IVORY 
COAST,KENYA,LESOTHO,LIBERIA,MADAGASCAR,MALAWI,MALI,MAURITANIA,MAURITIUS,MOZAMBIQUE,NAMIBIA,NIGER,NIGERIA,RWANDA,SAO 
TOME/PRINCIPE,SENEGAL,SEYCHELLES,SIERRA LEONE,SOUTH AFRICA,SWAZILAND,TANZANIA,TOGO,UGANDA,ZAIRE,ZAMBIA,ZIMBABWE
 
                                                           The SAS System

E3969440A681A2408885998500000008
Macro approach 1 (macro with a positional parameter)¶

Create six macro variables, each containing a horizontal list of countries under each of the six regions.

In [3]:
ods html close;
options nosource nonumber nodate nonotes;
%macro runit(rname);
proc sql noprint;
    select distinct trim(name)
        INTO :&rname._clist separated by ','
        FROM SASHELP.demographics
        where region="&rname";
quit;
%put NOTE: Processing region &rname using a macro with positional parameter;
%put &rname._clist = %superq(&rname._clist);
%put Number of countries for &rname._clist = &sqlobs;
%put NOTE: End of region &rname processing;
%put;
%mend runit;
%runit(AFR)
%runit(AMR)
%runit(EMR)
%runit(SEAR)
%runit(WPR)
%runit(EUR)
                                                           The SAS System

AFR_clist = ALGERIA,ANGOLA,BENIN,BOTSWANA,BURKINA FASO,BURUNDI,CAMEROON,CAPE VERDE,CENTRAL AFRICAN 
REP.,CHAD,COMOROS,CONGO,EQUATORIAL GUINEA,ERITREA,ETHIOPIA,GABON,GAMBIA,GHANA,GUINEA,GUINEA-BISSAU,IVORY 
COAST,KENYA,LESOTHO,LIBERIA,MADAGASCAR,MALAWI,MALI,MAURITANIA,MAURITIUS,MOZAMBIQUE,NAMIBIA,NIGER,NIGERIA,RWANDA,SAO 
TOME/PRINCIPE,SENEGAL,SEYCHELLES,SIERRA LEONE,SOUTH AFRICA,SWAZILAND,TANZANIA,TOGO,UGANDA,ZAIRE,ZAMBIA,ZIMBABWE
Number of countries for AFR_clist = 46

AMR_clist = ANTIGUA/BARBUDA,ARGENTINA,BAHAMAS,BARBADOS,BELIZE,BOLIVIA,BRAZIL,CANADA,CHILE,COLOMBIA,COSTA 
RICA,CUBA,DOMINICA,DOMINICAN REPUBLIC,ECUADOR,EL 
SALVADOR,GRENADA,GUATEMALA,GUYANA,HAITI,HONDURAS,JAMAICA,MEXICO,NICARAGUA,PANAMA,PARAGUAY,PERU,SAINT KITTS/NEVIS,SAINT 
VINCENT/GRENADINES,ST. LUCIA,SURINAME,TRINIDAD AND TOBAGO,UNITED STATES,URUGUAY,VENEZUELA
Number of countries for AMR_clist = 35

EMR_clist = AFGHANISTAN,BAHRAIN,DJIBOUTI,EGYPT,IRAN,IRAQ,JORDAN,KUWAIT,LEBANON,LIBYA,MOROCCO,OMAN,PAKISTAN,QATAR,SAUDI 
ARABIA,SOMALIA,SUDAN,SYRIA,TUNISIA,UNITED ARAB EMIRATES,YEMEN
Number of countries for EMR_clist = 21

SEAR_clist = BANGLADESH,BHUTAN,EAST TIMOR,INDIA,INDONESIA,KOREA, NORTH,MALDIVES,MYANMAR,NEPAL,SRI LANKA,THAILAND
Number of countries for SEAR_clist = 11

WPR_clist = ASHMORE/CARTIER,AUSTRALIA,BRUNEI,CAMBODIA,CHINA,COOK ISLANDS,CORAL SEA ISLANDS,FIJI,JAPAN,KIRIBATI,KOREA, 
SOUTH,LAOS,MALAYSIA,MARSHALL ISLANDS,MICRONESIA,MONGOLIA,NAURU,NEW ZEALAND,NIUE,PALAU,PAPUA NEW 
GUINEA,PHILIPPINES,SAMOA,SINGAPORE,SOLOMON ISLANDS,TONGA,TUVALU,VANUATU,VIETNAM
Number of countries for WPR_clist = 29

EUR_clist = ALBANIA,ANDORRA,ARMENIA,AUSTRIA,AZERBAIJAN,BELARUS,BELGIUM,BOSNIA/HERZEGOVINA,BULGARIA,CROATIA,CYPRUS,CZECH 
REPUBLIC,DENMARK,ESTONIA,FINLAND,FRANCE,GEORGIA,GERMANY,GREECE,GUERNSEY,HUNGARY,ICELAND,IRELAND,ISRAEL,ITALY,JERSEY,KAZAKHSTAN,KYRGY
ZSTAN,LATVIA,LITHUANIA,LUXEMBOURG,MACEDONIA,MALTA,MAN,MOLDOVA,MONACO,NETHERLANDS,NORWAY,POLAND,PORTUGAL,ROMANIA,RUSSIA,SAN 
MARINO,SERBIA,SLOVAKIA,SLOVENIA,SPAIN,SWEDEN,SWITZERLAND,TAJIKISTAN,TURKEY,TURKMENISTAN,UKRAINE,UNITED KINGDOM,UZBEKISTAN
Number of countries for EUR_clist = 55

                                                           The SAS System

E3969440A681A2408885998500000005
Macro approach 2¶
  • The macro dynamically creates a macro variable named AFR_clist, AMR_clist, etc.
  • %superq is used to safely display macro variable values without triggering issues with commas or special characters.
  • %put prints debug info (macro variable content, SQL observation count) to the SAS log.
In [5]:
options nosource nonumber nodate nonotes;
%macro process_region(rname);
    proc sql noprint;
        select distinct trim(name)
            into :&rname._clist separated by ","
            from SASHELP.demographics
            where region="&rname";
    quit;
    %put NOTE: Processing region &rname using a macro Loop;
    %put NOTE: SQL Observation count = &sqlobs;
    %put &rname._clist = %superq(&rname._clist);
    %put NOTE: End of region &rname processing;
    %put;
%mend process_region;
%macro run_all;
    %let regions = AFR AMR EMR SEAR WPR EUR;
    %do i = 1 %to %sysfunc(countw(&regions));
        %let region = %scan(&regions, &i);
        %process_region(&region)
    %end;
%mend run_all;
%run_all
                                                           The SAS System

AFR_clist = ALGERIA,ANGOLA,BENIN,BOTSWANA,BURKINA FASO,BURUNDI,CAMEROON,CAPE VERDE,CENTRAL AFRICAN 
REP.,CHAD,COMOROS,CONGO,EQUATORIAL GUINEA,ERITREA,ETHIOPIA,GABON,GAMBIA,GHANA,GUINEA,GUINEA-BISSAU,IVORY 
COAST,KENYA,LESOTHO,LIBERIA,MADAGASCAR,MALAWI,MALI,MAURITANIA,MAURITIUS,MOZAMBIQUE,NAMIBIA,NIGER,NIGERIA,RWANDA,SAO 
TOME/PRINCIPE,SENEGAL,SEYCHELLES,SIERRA LEONE,SOUTH AFRICA,SWAZILAND,TANZANIA,TOGO,UGANDA,ZAIRE,ZAMBIA,ZIMBABWE

AMR_clist = ANTIGUA/BARBUDA,ARGENTINA,BAHAMAS,BARBADOS,BELIZE,BOLIVIA,BRAZIL,CANADA,CHILE,COLOMBIA,COSTA 
RICA,CUBA,DOMINICA,DOMINICAN REPUBLIC,ECUADOR,EL 
SALVADOR,GRENADA,GUATEMALA,GUYANA,HAITI,HONDURAS,JAMAICA,MEXICO,NICARAGUA,PANAMA,PARAGUAY,PERU,SAINT KITTS/NEVIS,SAINT 
VINCENT/GRENADINES,ST. LUCIA,SURINAME,TRINIDAD AND TOBAGO,UNITED STATES,URUGUAY,VENEZUELA

EMR_clist = AFGHANISTAN,BAHRAIN,DJIBOUTI,EGYPT,IRAN,IRAQ,JORDAN,KUWAIT,LEBANON,LIBYA,MOROCCO,OMAN,PAKISTAN,QATAR,SAUDI 
ARABIA,SOMALIA,SUDAN,SYRIA,TUNISIA,UNITED ARAB EMIRATES,YEMEN

SEAR_clist = BANGLADESH,BHUTAN,EAST TIMOR,INDIA,INDONESIA,KOREA, NORTH,MALDIVES,MYANMAR,NEPAL,SRI LANKA,THAILAND

WPR_clist = ASHMORE/CARTIER,AUSTRALIA,BRUNEI,CAMBODIA,CHINA,COOK ISLANDS,CORAL SEA ISLANDS,FIJI,JAPAN,KIRIBATI,KOREA, 
SOUTH,LAOS,MALAYSIA,MARSHALL ISLANDS,MICRONESIA,MONGOLIA,NAURU,NEW ZEALAND,NIUE,PALAU,PAPUA NEW 
GUINEA,PHILIPPINES,SAMOA,SINGAPORE,SOLOMON ISLANDS,TONGA,TUVALU,VANUATU,VIETNAM

EUR_clist = ALBANIA,ANDORRA,ARMENIA,AUSTRIA,AZERBAIJAN,BELARUS,BELGIUM,BOSNIA/HERZEGOVINA,BULGARIA,CROATIA,CYPRUS,CZECH 
REPUBLIC,DENMARK,ESTONIA,FINLAND,FRANCE,GEORGIA,GERMANY,GREECE,GUERNSEY,HUNGARY,ICELAND,IRELAND,ISRAEL,ITALY,JERSEY,KAZAKHSTAN,KYRGY
ZSTAN,LATVIA,LITHUANIA,LUXEMBOURG,MACEDONIA,MALTA,MAN,MOLDOVA,MONACO,NETHERLANDS,NORWAY,POLAND,PORTUGAL,ROMANIA,RUSSIA,SAN 
MARINO,SERBIA,SLOVAKIA,SLOVENIA,SPAIN,SWEDEN,SWITZERLAND,TAJIKISTAN,TURKEY,TURKMENISTAN,UKRAINE,UNITED KINGDOM,UZBEKISTAN

                                                           The SAS System

E3969440A681A2408885998500000007
Macro to define dynamic macro variable creation and logging¶
In [7]:
options nosource nonumber nodate nonotes;
%macro new_process_region(rname);
    proc sql noprint;
        select distinct trim(name)
            into :&rname._clist separated by ","
            from SASHELP.demographics
            where region="&rname";
    quit;
    %put NOTE: Processing region &rname using a macro Loop;
    %put NOTE: SQL Observation count = &sqlobs;
    %put &rname._clist = %superq(&rname._clist);
    %put NOTE: End of region &rname processing;
    %put;
%mend new_process_region;
%new_process_region(AFR);
                                                           The SAS System

AFR_clist = ALGERIA,ANGOLA,BENIN,BOTSWANA,BURKINA FASO,BURUNDI,CAMEROON,CAPE VERDE,CENTRAL AFRICAN 
REP.,CHAD,COMOROS,CONGO,EQUATORIAL GUINEA,ERITREA,ETHIOPIA,GABON,GAMBIA,GHANA,GUINEA,GUINEA-BISSAU,IVORY 
COAST,KENYA,LESOTHO,LIBERIA,MADAGASCAR,MALAWI,MALI,MAURITANIA,MAURITIUS,MOZAMBIQUE,NAMIBIA,NIGER,NIGERIA,RWANDA,SAO 
TOME/PRINCIPE,SENEGAL,SEYCHELLES,SIERRA LEONE,SOUTH AFRICA,SWAZILAND,TANZANIA,TOGO,UGANDA,ZAIRE,ZAMBIA,ZIMBABWE

                                                           The SAS System

E3969440A681A2408885998500000009
In [26]:

                                                           The SAS System

AFR_clist = ALGERIA,ANGOLA,BENIN,BOTSWANA,BURKINA FASO,BURUNDI,CAMEROON,CAPE VERDE,CENTRAL AFRICAN 
REP.,CHAD,COMOROS,CONGO,EQUATORIAL GUINEA,ERITREA,ETHIOPIA,GABON,GAMBIA,GHANA,GUINEA,GUINEA-BISSAU,IVORY 
COAST,KENYA,LESOTHO,LIBERIA,MADAGASCAR,MALAWI,MALI,MAURITANIA,MAURITIUS,MOZAMBIQUE,NAMIBIA,NIGER,NIGERIA,RWANDA,SAO 
TOME/PRINCIPE,SENEGAL,SEYCHELLES,SIERRA LEONE,SOUTH AFRICA,SWAZILAND,TANZANIA,TOGO,UGANDA,ZAIRE,ZAMBIA,ZIMBABWE
                                                           The SAS System

E3969440A681A2408885998500000028
Macro approach 3 (macro call with CALL EXECUTE)¶
  • CALL EXECUTE queues macro calls to execute after the DATA step completes.

  • %nrstr ensures that the macro call is not resolved immediately; it will execute later with region substituted.

  • Each iteration generates a call like:

%new_process_region(AFR); %new_process_region(AMR); ...

In [13]:
options nosource nonumber nodate nonotes;
data _null_;
    length region $4;
    array regions[6] $4 ('AFR' 'AMR' 'EMR' 'SEAR' 'WPR' 'EUR');
    
    do i = 1 to dim(regions);
        region = regions[i];
        call execute('%nrstr(%new_process_region(' || region || '));');
    end;
run;
                                                           The SAS System

AFR_clist = ALGERIA,ANGOLA,BENIN,BOTSWANA,BURKINA FASO,BURUNDI,CAMEROON,CAPE VERDE,CENTRAL AFRICAN 
REP.,CHAD,COMOROS,CONGO,EQUATORIAL GUINEA,ERITREA,ETHIOPIA,GABON,GAMBIA,GHANA,GUINEA,GUINEA-BISSAU,IVORY 
COAST,KENYA,LESOTHO,LIBERIA,MADAGASCAR,MALAWI,MALI,MAURITANIA,MAURITIUS,MOZAMBIQUE,NAMIBIA,NIGER,NIGERIA,RWANDA,SAO 
TOME/PRINCIPE,SENEGAL,SEYCHELLES,SIERRA LEONE,SOUTH AFRICA,SWAZILAND,TANZANIA,TOGO,UGANDA,ZAIRE,ZAMBIA,ZIMBABWE
AMR_clist = ANTIGUA/BARBUDA,ARGENTINA,BAHAMAS,BARBADOS,BELIZE,BOLIVIA,BRAZIL,CANADA,CHILE,COLOMBIA,COSTA 
RICA,CUBA,DOMINICA,DOMINICAN REPUBLIC,ECUADOR,EL 
SALVADOR,GRENADA,GUATEMALA,GUYANA,HAITI,HONDURAS,JAMAICA,MEXICO,NICARAGUA,PANAMA,PARAGUAY,PERU,SAINT KITTS/NEVIS,SAINT 
VINCENT/GRENADINES,ST. LUCIA,SURINAME,TRINIDAD AND TOBAGO,UNITED STATES,URUGUAY,VENEZUELA
EMR_clist = AFGHANISTAN,BAHRAIN,DJIBOUTI,EGYPT,IRAN,IRAQ,JORDAN,KUWAIT,LEBANON,LIBYA,MOROCCO,OMAN,PAKISTAN,QATAR,SAUDI 
ARABIA,SOMALIA,SUDAN,SYRIA,TUNISIA,UNITED ARAB EMIRATES,YEMEN
SEAR_clist = BANGLADESH,BHUTAN,EAST TIMOR,INDIA,INDONESIA,KOREA, NORTH,MALDIVES,MYANMAR,NEPAL,SRI LANKA,THAILAND
WPR_clist = ASHMORE/CARTIER,AUSTRALIA,BRUNEI,CAMBODIA,CHINA,COOK ISLANDS,CORAL SEA ISLANDS,FIJI,JAPAN,KIRIBATI,KOREA, 
SOUTH,LAOS,MALAYSIA,MARSHALL ISLANDS,MICRONESIA,MONGOLIA,NAURU,NEW ZEALAND,NIUE,PALAU,PAPUA NEW 
GUINEA,PHILIPPINES,SAMOA,SINGAPORE,SOLOMON ISLANDS,TONGA,TUVALU,VANUATU,VIETNAM
EUR_clist = ALBANIA,ANDORRA,ARMENIA,AUSTRIA,AZERBAIJAN,BELARUS,BELGIUM,BOSNIA/HERZEGOVINA,BULGARIA,CROATIA,CYPRUS,CZECH 
REPUBLIC,DENMARK,ESTONIA,FINLAND,FRANCE,GEORGIA,GERMANY,GREECE,GUERNSEY,HUNGARY,ICELAND,IRELAND,ISRAEL,ITALY,JERSEY,KAZAKHSTAN,KYRGY
ZSTAN,LATVIA,LITHUANIA,LUXEMBOURG,MACEDONIA,MALTA,MAN,MOLDOVA,MONACO,NETHERLANDS,NORWAY,POLAND,PORTUGAL,ROMANIA,RUSSIA,SAN 
MARINO,SERBIA,SLOVAKIA,SLOVENIA,SPAIN,SWEDEN,SWITZERLAND,TAJIKISTAN,TURKEY,TURKMENISTAN,UKRAINE,UNITED KINGDOM,UZBEKISTAN
                                                           The SAS System

E3969440A681A2408885998500000015