*This SAS code creates metropolitan areas for the 1990 PUMS using PUMAs
*These customized metropolitan areas are matched as closely as possible to    
*a set of 1980 metropolitan areas to allow comparisons of metropolitan  areas 
*over time.  The code was written by Michael Reibel and supported by an NSF grant 
*(SBER-9310647) awarded to Mark Ellis and Richard Wright.  Please consult the 
*technical documentation available at this website in Appendix One and
*Appendix Two for more details                     

newmsa=.;                                                                       
if state=36 and (puma=24 or 41 le puma le 54) then newmsa=5600;                 
     else if state=34 and (04 le puma le 44) then newmsa=5600;                  
     else if state=09 and (11 le puma le 17) then newmsa=5600;                  
else if state=6 and (42 le puma le 48 or 52 le puma le 72)                      
     then newmsa=4480;                                                          
else if state=17 and (30 le puma le 35 or 37 le puma le 38)                     
     then newmsa=1600;                                                          
     else if state=18 and (8 le puma le 10 or puma=12)                          
          then newmsa=1600;                                                     
     else if state=55 and (puma=20) then newmsa=1600;                           
else if state=11 then newmsa=8840;                                              
     else if state=24 and (puma=7 or puma=9 or 12 le puma le 13)                
          then newmsa=8840;                                                     
     else if state=51 and (8 le puma le 11) then newmsa=8840;                   
else if state=24 and (2 le puma le 3 or puma=6 or 10 le puma le 11              
     or puma=15) then newmsa=0720;                                              
else if state=06 and (puma=9 or 13 le puma le 22 or puma=34                     
     or puma=36) then newmsa=7360;                                              
else if state=42 and 26 le puma le 30 then newmsa=6160;                         
     else if state=34 and 45 le puma le 56 then newmsa=6160;                    
     else if state=10 and puma=03 then newmsa=6160;                             
else if state=25 and 14 le puma le 38 then newmsa=1120;                         
     else if state=33 and puma=6 then newmsa=1120;                              
else if state=26 and 30 le puma le 44 then newmsa=2160;                         
else if state=48 and 19 le puma le 29 then newmsa=1920;                         
else if state=48 and (puma=56 or 62 le puma le 69) then newmsa=3360;                         
else if state=12 and 32 le puma le 39 then newmsa=5000;                         
else if state=53 and (puma=10 or puma=13 or 17 le puma le 18)                   
     then newmsa=7600;                                                          
else if state=13 and 15 le puma le 21 then newmsa=0520;                         
else if state=39 and 37 le puma le 47 then newmsa=1680;                         
     else if state=39 and (puma=8 or puma=9) then newmsa=1680;                  
else if state=27 and (puma=9 or 11 le puma le 24) then newmsa=5120;             
else if state=6 and puma=33 then newmsa=7320;                                   
else if state=29 and 11 le puma le 14 then newmsa=7040;                         
     else if state=17 and 18 le puma le 21 then newmsa=7040;                    
else if state=42 and 13 le puma le 14 then newmsa=6280;                         
     else if state=42 and (puma=33 or puma=38 or puma=39) 
     then newmsa=6280;                
else if state=4 and puma=1 then newmsa=6200;                                    
else if state=12 and 42 le puma le 45 then newmsa=8280;                         
else if state=8 and (1 le puma le 7) then newmsa=2080;                          
else if state=41 and (puma=10 or 12 le puma le 15) then newmsa=6440;            
     else if state=53 and puma=19 then newmsa=6440;                             
else if state=39 and (puma=30 or puma=33 or 53 le puma le 54)                   
     then newmsa=1640;                                                          
     else if state=21 and 13 le puma le 14 then newmsa=1640;                    
else if state=55 and 21 le puma le 24 then newmsa=5080;                         
else if state=29 and 8 le puma le 10 then newmsa=3760;                          
     else if state=20 and 9 le puma le 11 then newmsa=3760;                     
else if state=6 and (10 le puma le 12 or puma=29 or puma=28)                    
     then newmsa=6920;                                                          
else if state=51 and (25 le puma le 31                                          
     or puma=33) then newmsa=5720;                                              
else if state=18 and (puma=01 or 33 le puma le 35) then newmsa=3480;            
else if state=39 and (puma=17 or puma=23 or puma=28 or                          
     puma=51) then newmsa=1840;                                                 
else if state=48 and 44 le puma le 46 then newmsa=7240;                         
else if state=22 and (puma=17 or 19 le puma le 23) then newmsa=5560;            
else if state=12 and 16 le puma le 23 then newmsa=5960;                         
else if state=36 and (puma=23 or 25 le puma le 30) then newmsa=1280;            
else if state=37 and (8 le puma le 9 or 11 le puma le 12)                       
     then newmsa=1520;                                                          
   else if state=45 and puma=5 then newmsa=1520;                                
else if state=09 and (2 le puma le 9) then newmsa=3280;                         
else if state=44 and (1 le puma le 4 or 6 le puma le 8)                         
     then newmsa=6480;                                                          
     else if state=25 and 39 le puma le 43 then newmsa=6480;                    
else if state=49 and 2 le puma le 4 then newmsa=7160;                           
else if state=36 and 19 le puma le 21 then newmsa=6840;                         
else if state=37 and (13 le puma le 16 or 20 le puma le 22)                     
     then newmsa=3120;                                                          
else if state=47 and 19 le puma le 20 then newmsa=4920;                         
else if state=47 and (puma=5 or 23 le puma le 25) then newmsa=5360;             
else if state=40 and (puma=5 or 9 le puma le 11) then newmsa=5880;                          
else if state=21 and 19 le puma le 21 then newmsa=4520;                         
     else if state=18 and puma=3 then newmsa=4520;                              
else if state=39 and (puma=22 or puma=26 or puma=52)                            
     then newmsa=2000;                                                          
else if state=26 and 13 le puma le 15 then newmsa=3000;                         
else if state=12 and (puma=2 or puma=10) then newmsa=3600;                      
else if state=32 and puma=2 then newmsa=4120;                                   
else if state=12 and puma=29 then newmsa=8960;                                  
else if state=37 and 23 le puma le 25 then newmsa=6640;                         
else if state=51 and (18 le puma le 21 or puma=24) then newmsa=6760;            
else if state=48 and 49 le puma le 52 then newmsa=0640;                         
else if state=36 and 8 le puma le 12 then newmsa=0160;                          
else if state=15 and puma=3 then newmsa=3320;                                   
else if state=1 and (puma=2 or 17 le puma le 18) then newmsa=1000;              
else if state=45 and puma le 3 then newmsa=3160;                                
else if state=6 and 40 le puma le 41 then newmsa=2840;                          
else if state=36 and (puma=4 or 14 le puma le 17) then newmsa=8160;             
else if state=40 and 6 le puma le 7 then newmsa=8560;                           
else if state=4 and puma=2 then newmsa=8520;                                    
else if state=31 and 9 le puma le 10 then newmsa=5920;                          
else if state=42 and 6 le puma le 7 then newmsa=7560;                           
else if state=39 and (puma=2 or puma=36) then newmsa=8400;                      
else if state=48 and puma=37 then newmsa=2320;                                  
else if state=39 and 48 le puma le 49 then newmsa=9320;                         
else if state=35 and 2 le puma le 3 then newmsa=0200;                                   
else if state=42 and 20 le puma le 21 then newmsa=0240;                         
else if state=47 and (puma=4 or 6 le puma le 9) then newmsa=3840;                           
else if state=42 and (puma=22 or 36 le puma le 37) then newmsa=3240;            
else if state=25 and (2 le puma le 7) then newmsa=8000;                         
else if state=6 and 49 le puma le 50 then newmsa=0680;                          
else if state=22 and 13 le puma le 15 then newmsa=0760;                         
else if state=45 and 11 le puma le 12 then newmsa=1440;                         
else if state=5 and 15 le puma le 16 then newmsa=4400;                          
else if state=12 and puma=31 then newmsa=7510;                                  
else if state=20 and puma=5 then newmsa=9040;                                   
else if state=6 and puma=23 then newmsa=8120;                                   
else if state=1 and 7 le puma le 8 then newmsa=5160;                            
else if state=45 and 16 le puma le 17 then newmsa=1760;                         
else if state=18 and 17 le puma le 18 then newmsa=2760;                         
else if state=47 and 1 le puma le 3 then newmsa=3660;                       
else if state=26 and 17 le puma le 19 then newmsa=4040;                         
else if state=26 and puma=25 then newmsa=3720;                                  
else if state=42 and puma=35 then newmsa=4000;                                  
else if state=47 and 12 le puma le 13 then newmsa=1560;                         
     else if state=13 and puma=3 then newmsa=1560;                              
else if state=13 and (puma=5 or puma=22) then newmsa=0600;                      
     else if state=45 and puma=18 then newmsa=0600;                             
else if state=12 and 12 le puma le 14 then newmsa=4900;                         
else if state=12 and puma=9 then newmsa=2020;                                   
else if state=12 and puma=46 then newmsa=3980;                                  
else if state=21 and (puma=16 or puma=18) then newmsa=4280;                     
else if state=8 and 10 le puma le 11 then newmsa=1720;                          
else if state=26 and 8 le puma le 9 then newmsa=6960;                           
else if state=19 and 7 le puma le 8 then newmsa=2120;                           
else if state=28 and 9 le puma le 10 then newmsa=3560;                          
else if state=48 and puma=41 then newmsa=4880;                                  
else if state=39 and puma=50 then newmsa=1320;                                  
else if state=06 and 24 le puma le 25 then newmsa=5170;                         
else if state=55 and 16 le puma le 17 then newmsa=4720;                         
else if state=22 and 1 le puma le 2 then newmsa=7680;                                   
else if state=6 and puma=32 then newmsa=7480;                                   
else if state=53 and 5 le puma le 6 then newmsa=7840;                           
                                                                                
format metro90 $12.;                                                            
                                                                                
metro90=.;                                                                      
                                                                                
if newmsa=5600 then metro90='new york';                                         
   else if newmsa=4480 then metro90='los angeles';                              
   else if newmsa=1600 then metro90='chicago';                                  
   else if newmsa=8840 then metro90='wash., d.c.';                              
   else if newmsa=0720 then metro90='baltimore';                                
   else if newmsa=7360 then metro90='san fran/oak';                             
   else if newmsa=6160 then metro90='philadelphia';                             
   else if newmsa=1120 then metro90='boston';                                   
   else if newmsa=2160 then metro90='detroit';                                  
   else if newmsa=1920 then metro90='dallas';                                   
   else if newmsa=3360 then metro90='houston';                                  
   else if newmsa=5000 then metro90='miami';                                    
   else if newmsa=7600 then metro90='seattle';                                  
   else if newmsa=0520 then metro90='atlanta';                                  
   else if newmsa=1680 then metro90='cleveland';                                
   else if newmsa=5120 then metro90='minn/st.paul';                             
   else if newmsa=7320 then metro90='san diego';                                
   else if newmsa=7040 then metro90='st. louis';                                
   else if newmsa=6280 then metro90='pittsburgh';                               
   else if newmsa=6200 then metro90='phoenix';                                  
   else if newmsa=8280 then metro90='tampa/stpete';                             
   else if newmsa=2080 then metro90='denver';                                   
   else if newmsa=6440 then metro90='portland';                                 
   else if newmsa=1640 then metro90='cinncinnati';                              
   else if newmsa=5080 then metro90='milwaukee';                                
   else if newmsa=3760 then metro90='kansas city';                              
   else if newmsa=6920 then metro90='sacramento';                               
   else if newmsa=5720 then metro90='norfolk va';                               
   else if newmsa=3480 then metro90='indianapolis';                             
   else if newmsa=1840 then metro90='columbus';                                 
   else if newmsa=7240 then metro90='san antonio';                              
   else if newmsa=5560 then metro90='new orleans';                              
   else if newmsa=5960 then metro90='orlando';                                  
   else if newmsa=1280 then metro90='buffalo';                                  
   else if newmsa=1520 then metro90='charlotte nc';                             
   else if newmsa=3280 then metro90='hartford';                                 
   else if newmsa=6480 then metro90='providence';                               
   else if newmsa=7160 then metro90='salt lake';                                
   else if newmsa=6840 then metro90='rochester';                                
   else if newmsa=3120 then metro90='greensboro';                               
   else if newmsa=4920 then metro90='memphis';                                  
   else if newmsa=5360 then metro90='nashville';                                
   else if newmsa=5880 then metro90='okla. city' ;                              
   else if newmsa=4520 then metro90='louisville';                               
   else if newmsa=2000 then metro90='dayton';                                   
   else if newmsa=3000 then metro90='grand rapids';                             
   else if newmsa=3600 then metro90='jacksonville';                             
   else if newmsa=4120 then metro90='las vegas';                                
   else if newmsa=8960 then metro90='west palm';                                
   else if newmsa=6640 then metro90='raleigh/drhm';                             
   else if newmsa=6760 then metro90='richmond';                                 
   else if newmsa=0640 then metro90='austin';                                   
   else if newmsa=0160 then metro90='albany';                                   
   else if newmsa=3320 then metro90='honolulu';                                 
   else if newmsa=1000 then metro90='birmingham';                               
   else if newmsa=3160 then metro90='greenville';                               
   else if newmsa=2840 then metro90='fresno';                                   
   else if newmsa=8160 then metro90='syracuse';                                 
   else if newmsa=8560 then metro90='tulsa';                                    
   else if newmsa=8520 then metro90='tucson';                                   
   else if newmsa=5920 then metro90='omaha';                                    
   else if newmsa=7560 then metro90='scranton pa';                              
   else if newmsa=8400 then metro90='toledo';                                   
   else if newmsa=2320 then metro90='el paso';                                  
   else if newmsa=9320 then metro90='youngstown';                               
   else if newmsa=0200 then metro90='albuquerque';                              
   else if newmsa=0240 then metro90='allentown';                                
   else if newmsa=3840 then metro90='knoxville';                                
   else if newmsa=3240 then metro90='harrisburg';                               
   else if newmsa=8000 then metro90='springfield';                              
   else if newmsa=0680 then metro90='bakersfield';                              
   else if newmsa=0760 then metro90='baton rouge';                              
   else if newmsa=1440 then metro90='charlestn sc';                             
   else if newmsa=4400 then metro90='little rock';                              
   else if newmsa=7510 then metro90='sarasota';                                 
   else if newmsa=9040 then metro90='wichita';                                  
   else if newmsa=8120 then metro90='stockton ca';                              
   else if newmsa=5160 then metro90='mobile';                                   
   else if newmsa=1760 then metro90='columbia';                                 
   else if newmsa=2760 then metro90='fort wayne';                               
   else if newmsa=3660 then metro90='johnson city';                             
   else if newmsa=4040 then metro90='lansing';                                  
   else if newmsa=3720 then metro90='kalamazoo';                                
   else if newmsa=4000 then metro90='lancaster pa';                             
   else if newmsa=1560 then metro90='chattanooga';                              
   else if newmsa=0600 then metro90='augusta';                                  
   else if newmsa=4900 then metro90='melbourne fl';                             
   else if newmsa=2020 then metro90='daytona bch';                              
   else if newmsa=3980 then metro90='lakeland fl';                              
   else if newmsa=4280 then metro90='lexington ky';                             
   else if newmsa=1720 then metro90='colo.springs';                             
   else if newmsa=6960 then metro90='saginaw';                                  
   else if newmsa=2120 then metro90='des moines';                               
   else if newmsa=3560 then metro90='jackson miss';                             
   else if newmsa=4880 then metro90='mcallen tx';                               
   else if newmsa=1320 then metro90='canton oh';                                
   else if newmsa=5170 then metro90='modesto';                                  
   else if newmsa=4720 then metro90='madison wi';                               
   else if newmsa=7680 then metro90='shreveport';                               
   else if newmsa=7480 then metro90='santa barbra';                             
   else if newmsa=7840 then metro90='spokane';