Changeset 324 for palm/trunk/SCRIPTS/NCL


Ignore:
Timestamp:
May 19, 2009 2:25:12 PM (16 years ago)
Author:
weinreis
Message:

modified spectra.ncl and profiles.ncl

Location:
palm/trunk/SCRIPTS/NCL
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SCRIPTS/NCL/profiles.ncl

    r267 r324  
    324324            files(0)=file_in(nof)+".nc"
    325325            do i=1,end_f(nof)
    326             if (isfilepresent(file_in(nof)+"."+i+".nc"))then   
    327                files(i)=file_in(nof)+"."+i+".nc"
    328             else
    329                print(" ")
    330                print("Input file: '"+file_in(nof)+"."+i+".nc' does not exist")
    331                print(" ")
    332                exit 
    333             end if         
    334          end do         
     326               if (isfilepresent(file_in(nof)+"."+i+".nc"))then   
     327                  files(i)=file_in(nof)+"."+i+".nc"
     328               else
     329                  print(" ")
     330                  print("Input file: '"+file_in(nof)+"."+i+".nc' does not exist")
     331                  print(" ")
     332                  exit 
     333               end if       
     334            end do         
    335335         else
    336336            print(" ")
     
    805805   end if
    806806   
    807    delta_t=t_all(nt-1)/nt
     807   if (nt .EQ. 1)then
     808      delta_t=t_all(nt-1)/nt
     809   else
     810      delta_t=(t_all(nt-1)-t_all(0))/(nt-1)
     811   end if
    808812
    809813   ; ****************************************************       
     
    872876   do i=0,nt-1     
    873877      if (end_time_step .GE. (t_all(i)-delta_t/2)/3600 .AND. end_time_step .LT. (t_all(i)+delta_t/2)/3600)then
     878         print((t_all(i)-delta_t/2)/3600)
     879         print((t_all(i)+delta_t/2)/3600)
    874880         et=i
    875881         break
     
    883889      print(" ")
    884890      exit
    885    end if
     891   end if   
    886892
    887893   delete(start_time_step)
     
    889895   delete(end_time_step)
    890896   end_time_step=round(et,3)
     897   
     898   print(start_time_step)
     899   print(end_time_step)
    891900
    892901   print(" ")
     
    14591468               exit
    14601469            end if
     1470            if (abs(min(data(varn,:,:))) .GT. 10)then
     1471               min_value = abs(0.01*min(data(varn,:,:)))
     1472               max_value = abs(0.01*max(data(varn,:,:)))
     1473            else
     1474               if (abs(min(data(varn,:,:))) .LT. 0.01 .AND. abs(max(data(varn,:,:))) .GT. 0.01)then
     1475                  min_value = abs(0.1*max(data(varn,:,:)))
     1476                  max_value = abs(0.1*max(data(varn,:,:)))
     1477               else
     1478                  if (abs(max(data(varn,:,:))) .LT. 0.01 .AND. abs(min(data(varn,:,:))) .GT. 0.01)then
     1479                     min_value = abs(0.1*min(data(varn,:,:)))
     1480                     max_value = abs(0.1*min(data(varn,:,:)))
     1481                  else
     1482                     min_value = abs(0.1*min(data(varn,:,:)))
     1483                     max_value = abs(0.1*max(data(varn,:,:)))
     1484                  end if
     1485               end if
     1486            end if
     1487            if (min(data(varn,:,:)) .EQ. 0 .AND. max(data(varn,:,:)) .EQ. 0)then
     1488               min_value = 0.1
     1489               max_value = 0.1
     1490            end if
    14611491            mini(n_o)=min(data(varn,:,:))
    14621492            maxi(n_o)=max(data(varn,:,:))
     
    15201550               z = f_att->$vNam(varn+1)$
    15211551               unit(varn) = temp_att@units
    1522                data(varn,:,:) = temp(start_time_step:end_time_step,:) 
     1552               data(varn,:,:) = temp(start_time_step:end_time_step,:)
    15231553            end if
    15241554         else
     
    15501580            z=z/norm_z
    15511581         end if
     1582         
     1583         if (abs(min(data(varn,:,:))) .GT. 10)then
     1584            min_value = abs(0.01*min(data(varn,:,:)))
     1585            max_value = abs(0.01*max(data(varn,:,:)))
     1586         else
     1587            if (abs(min(data(varn,:,:))) .LT. 0.01 .AND. abs(max(data(varn,:,:))) .GT. 0.01)then
     1588               min_value = abs(0.1*max(data(varn,:,:)))
     1589               max_value = abs(0.1*max(data(varn,:,:)))
     1590            else
     1591               if (abs(max(data(varn,:,:))) .LT. 0.01 .AND. abs(min(data(varn,:,:))) .GT. 0.01)then
     1592                  min_value = abs(0.1*min(data(varn,:,:)))
     1593                  max_value = abs(0.1*min(data(varn,:,:)))
     1594               else
     1595                  min_value = abs(0.1*min(data(varn,:,:)))
     1596                  max_value = abs(0.1*max(data(varn,:,:)))
     1597               end if
     1598            end if
     1599         end if
     1600         if (min(data(varn,:,:)) .EQ. 0 .AND. max(data(varn,:,:)) .EQ. 0)then
     1601            min_value = 0.1
     1602            max_value = 0.1
     1603         end if
    15521604   
    15531605         if (over .EQ. 0) then 
     
    15581610            res@trYMaxF            = max_z
    15591611            if (xs .EQ. -1) then
    1560                res@trXMinF            = min(data(varn,:,:))
     1612               res@trXMinF            = min(data(varn,:,:))-min_value
    15611613            else
    15621614               res@trXMinF            = xs
    15631615            end if
    15641616            if (xe .EQ. -1) then
    1565                res@trXMaxF            = max(data(varn,:,:))
     1617               res@trXMaxF            = max(data(varn,:,:))+max_value
    15661618            else
    15671619               res@trXMaxF            = xe 
     
    15711623
    15721624            if (vNam(varn) .EQ. "u") then
    1573                miniu=min(data(varn,:,:))
    1574                maxiu=max(data(varn,:,:))
     1625               miniu=min(data(varn,:,:))-min_value
     1626               maxiu=max(data(varn,:,:))+max_value
    15751627               if (over .EQ. 1) then
    15761628                  res@xyDashPattern  = 0
     
    15801632                  res@tiXAxisString      = "["+unit(varn)+"]"
    15811633                  res@gsnRightString     = " "                 
    1582                   if (xs .EQ. -1) then
     1634                  if (xs .EQ. -1) then  
    15831635                     res@trXMinF            = miniu
    15841636                  else
     
    15941646            end if
    15951647            if (vNam(varn) .EQ. "v") then
    1596                miniv=min(data(varn,:,:))
    1597                maxiv=max(data(varn,:,:))
     1648               miniv=min(data(varn,:,:))-min_value
     1649               maxiv=max(data(varn,:,:))+max_value
    15981650               if (over .EQ. 1) then
    15991651                  res@xyMonoDashPattern = True
     
    16041656                  res@tiXAxisString      = "["+unit(varn)+"]"
    16051657                  res@gsnRightString     = " "                 
    1606                   if (xs .EQ. -1) then 
     1658                  if (xs .EQ. -1) then
    16071659                     res@trXMinF            = miniv
    16081660                  else
     
    16101662                  end if
    16111663                  if (xe .EQ. -1) then
    1612                      res@trXMaxF            = maxiv 
     1664                     res@trXMaxF            = maxiv
    16131665                  else
    16141666                     res@trXMaxF            = xe 
     
    16181670            end if
    16191671            if (vNam(varn) .EQ. "w") then
    1620                miniw=min(data(varn,:,:))
    1621                maxiw=max(data(varn,:,:))
     1672               miniw=min(data(varn,:,:))-min_value
     1673               maxiw=max(data(varn,:,:))+max_value
    16221674               if (over .EQ. 1) then
    16231675                  res@xyDashPattern = 2
     
    16331685                  end if
    16341686                  if (xe .EQ. -1) then
    1635                      res@trXMaxF            = maxiw 
     1687                     res@trXMaxF            = maxiw
    16361688                  else
    16371689                     res@trXMaxF            = xe 
     
    16421694
    16431695            if (vNam(varn) .EQ. "pt") then
    1644                minipt=min(data(varn,:,:))
    1645                maxipt=max(data(varn,:,:))
     1696               minipt=min(data(varn,:,:))-min_value
     1697               maxipt=max(data(varn,:,:))+max_value
    16461698               if (over .EQ. 1) then
    16471699                  res@xyDashPattern  = 0
     
    16561708                     res@trXMinF            = xs
    16571709                  end if
    1658                   if (xe .EQ. -1) then        
     1710                  if (xe .EQ. -1) then       
    16591711                     res@trXMaxF            = maxipt
    16601712                  else
     
    16651717            end if
    16661718            if (vNam(varn) .EQ. "vpt") then
    1667                minivpt=min(data(varn,:,:))
    1668                maxivpt=max(data(varn,:,:))
     1719               minivpt=min(data(varn,:,:))-min_value
     1720               maxivpt=max(data(varn,:,:))+max_value
    16691721               if (over .EQ. 1) then
    16701722                  res@xyDashPattern  = 1
     
    16751727                  res@gsnRightString     = " "
    16761728                  if (xs .EQ. -1) then
    1677                      res@trXMinF            = minivpt
    1678                   else
    1679                      res@trXMinF            = xs
    1680                   end if
    1681                   if (xe .EQ. -1) then        
     1729                     res@trXMinF            = minivpt 
     1730                  else
     1731                     res@trXMinF            = xs
     1732                  end if
     1733                  if (xe .EQ. -1) then       
    16821734                     res@trXMaxF            = maxivpt
    16831735                  else
     
    16881740            end if
    16891741            if (vNam(varn) .EQ. "lpt") then
    1690                minilpt=min(data(varn,:,:))
    1691                maxilpt=max(data(varn,:,:))
     1742               minilpt=min(data(varn,:,:))-min_value
     1743               maxilpt=max(data(varn,:,:))+max_value
    16921744               if (over .EQ. 1) then
    16931745                  res@xyDashPattern  = 2
     
    17031755                  end if
    17041756                  if (xe .EQ. -1) then       
    1705                      res@trXMaxF            = maxilpt 
     1757                     res@trXMaxF            = maxilpt
    17061758                  else
    17071759                     res@trXMaxF            = xe 
     
    17121764
    17131765            if (vNam(varn) .EQ. "q") then
    1714                miniq=min(data(varn,:,:))
    1715                maxiq=max(data(varn,:,:))
     1766               miniq=min(data(varn,:,:))-min_value
     1767               maxiq=max(data(varn,:,:))+max_value
    17161768               if (over .EQ. 1) then
    17171769                  res@xyDashPattern  = 0
     
    17271779                  end if
    17281780                  if (xe .EQ. -1) then       
    1729                      res@trXMaxF            = maxilq 
     1781                     res@trXMaxF            = maxilq
    17301782                  else
    17311783                     res@trXMaxF            = xe 
     
    17351787            end if
    17361788            if (vNam(varn) .EQ. "qv") then
    1737                miniqv=min(data(varn,:,:))
    1738                maxiqv=max(data(varn,:,:))
     1789               miniqv=min(data(varn,:,:))-min_value
     1790               maxiqv=max(data(varn,:,:))+max_value
    17391791               if (over .EQ. 1) then
    17401792                  res@xyDashPattern  = 1
     
    17491801                     res@trXMinF            = xs
    17501802                  end if
    1751                   if (xe .EQ. -1) then       
     1803                  if (xe .EQ. -1) then         
    17521804                     res@trXMaxF            = maxilqv
    17531805                  else
     
    17581810            end if
    17591811            if (vNam(varn) .EQ. "ql") then
    1760                miniql=min(data(varn,:,:))
    1761                maxiql=max(data(varn,:,:))
     1812               miniql=min(data(varn,:,:))-min_value
     1813               maxiql=max(data(varn,:,:))+max_value
    17621814               if (over .EQ. 1) then
    17631815                  res@xyDashPattern  = 2
     
    17721824                     res@trXMinF            = xs
    17731825                  end if
    1774                   if (xe .EQ. -1) then        
     1826                  if (xe .EQ. -1) then       
    17751827                     res@trXMaxF            = maxiql
    17761828                  else
     
    17821834
    17831835            if (vNam(varn) .EQ. "e") then
    1784                minie=min(data(varn,:,:))
    1785                maxie=max(data(varn,:,:))
     1836               minie=min(data(varn,:,:))-min_value
     1837               maxie=max(data(varn,:,:))+max_value
    17861838               if (over .EQ. 1) then
    17871839                  res@xyDashPattern  = 0
     
    17961848                     res@trXMinF            = xs
    17971849                  end if
    1798                   if (xe .EQ. -1) then        
     1850                  if (xe .EQ. -1) then       
    17991851                     res@trXMaxF            = maxie
    18001852                  else
     
    18051857            end if
    18061858            if (vNam(varn) .EQ. "es") then
    1807                minies=min(data(varn,:,:))
    1808                maxies=max(data(varn,:,:))
     1859               minies=min(data(varn,:,:))-min_value
     1860               maxies=max(data(varn,:,:))+max_value
    18091861               if (over .EQ. 1) then
    18101862                  res@xyDashPattern  = 1
     
    18141866                  res@tiXAxisString      = "["+unit(varn)+"]"
    18151867                  res@gsnRightString     = " "
    1816                   if (xs .EQ. -1) then 
     1868                  if (xs .EQ. -1) then
    18171869                     res@trXMinF            = minies
    18181870                  else
     
    18201872                  end if
    18211873                  if (xe .EQ. -1) then       
    1822                      res@trXMaxF            = maxies 
     1874                     res@trXMaxF            = maxies
    18231875                  else
    18241876                     res@trXMaxF            = xe 
     
    18291881
    18301882            if (vNam(varn) .EQ. "km") then
    1831                minikm=min(data(varn,:,:))
    1832                maxikm=max(data(varn,:,:))
     1883               minikm=min(data(varn,:,:))-min_value
     1884               maxikm=max(data(varn,:,:))+max_value
    18331885               if (over .EQ. 1) then
    18341886                  res@xyDashPattern  = 0
     
    18381890                  res@tiXAxisString      = "["+unit(varn)+"]"
    18391891                  res@gsnRightString     = " "
    1840                   if (xs .EQ. -1) then 
     1892                  if (xs .EQ. -1) then
    18411893                     res@trXMinF            = minikm
    18421894                  else
    18431895                     res@trXMinF            = xs
    18441896                  end if
    1845                   if (xe .EQ. -1) then       
     1897                  if (xe .EQ. -1) then     
    18461898                     res@trXMaxF            = maxikm
    18471899                  else
     
    18521904            end if
    18531905            if (vNam(varn) .EQ. "kh") then
    1854                minikh=min(data(varn,:,:))
    1855                maxikh=max(data(varn,:,:))
     1906               minikh=min(data(varn,:,:))-min_value
     1907               maxikh=max(data(varn,:,:))+max_value
    18561908               if (over .EQ. 1) then
    18571909                  res@xyDashPattern  = 1
     
    18661918                     res@trXMinF            = xs
    18671919                  end if
    1868                   if (xe .EQ. -1) then        
     1920                  if (xe .EQ. -1) then     
    18691921                     res@trXMaxF            = maxikh
    18701922                  else
     
    18761928
    18771929            if (vNam(varn) .EQ. "wpup") then
    1878                miniwpup=min(data(varn,:,:))
    1879                maxiwpup=max(data(varn,:,:))
     1930               miniwpup=min(data(varn,:,:))-min_value
     1931               maxiwpup=max(data(varn,:,:))+max_value
    18801932               if (over .EQ. 1) then
    18811933                  res@xyDashPattern  = 0
     
    18901942                     res@trXMinF            = xs
    18911943                  end if
    1892                   if (xe .EQ. -1) then       
     1944                  if (xe .EQ. -1) then
    18931945                     res@trXMaxF            = maxiwpup
    18941946                  else
     
    18991951            end if
    19001952            if (vNam(varn) .EQ. "wsus") then
    1901                miniwsus=min(data(varn,:,:))
    1902                maxiwsus=max(data(varn,:,:))
     1953               miniwsus=min(data(varn,:,:))-min_value
     1954               maxiwsus=max(data(varn,:,:))+max_value
    19031955               if (over .EQ. 1) then
    19041956                  res@xyDashPattern  = 1
     
    19131965                     res@trXMinF            = xs
    19141966                  end if
    1915                   if (xe .EQ. -1) then       
     1967                  if (xe .EQ. -1) then     
    19161968                     res@trXMaxF            = maxiwsus
    19171969                  else
     
    19221974            end if
    19231975            if (vNam(varn) .EQ. "wu") then
    1924                miniwu=min(data(varn,:,:))
    1925                maxiwu=max(data(varn,:,:))
     1976               miniwu=min(data(varn,:,:))-min_value
     1977               maxiwu=max(data(varn,:,:))+max_value
    19261978               if (over .EQ. 1) then
    19271979                  res@xyDashPattern  = 2
     
    19311983                  res@tiXAxisString      = "["+unit(varn)+"]"
    19321984                  res@gsnRightString     = " "
    1933                   if (xs .EQ. -1) then 
     1985                  if (xs .EQ. -1) then
    19341986                     res@trXMinF            = miniwu
    19351987                  else
    19361988                     res@trXMinF            = xs
    19371989                  end if
    1938                   if (xe .EQ. -1) then        
     1990                  if (xe .EQ. -1) then
    19391991                     res@trXMaxF            = maxiwu
    19401992                  else
     
    19461998
    19471999            if (vNam(varn) .EQ. "wpvp") then
    1948                miniwpvp=min(data(varn,:,:))
    1949                maxiwpvp=max(data(varn,:,:))
     2000               miniwpvp=min(data(varn,:,:))-min_value
     2001               maxiwpvp=max(data(varn,:,:))+max_value
    19502002               if (over .EQ. 1) then
    19512003                  res@xyDashPattern  = 0
     
    19602012                     res@trXMinF            = xs
    19612013                  end if
    1962                   if (xe .EQ. -1) then        
     2014                  if (xe .EQ. -1) then     
    19632015                     res@trXMaxF            = maxiwpvp
    19642016                  else
     
    19692021            end if
    19702022            if (vNam(varn) .EQ. "wsvs") then
    1971                miniwsvs=min(data(varn,:,:))
    1972                maxiwsvs=max(data(varn,:,:))
     2023               miniwsvs=min(data(varn,:,:))-min_value
     2024               maxiwsvs=max(data(varn,:,:))+max_value
    19732025               if (over .EQ. 1) then
    19742026                  res@xyDashPattern  = 1
     
    19782030                  res@tiXAxisString      = "["+unit(varn)+"]"
    19792031                  res@gsnRightString     = " "
    1980                   if (xs .EQ. -1) then 
     2032                  if (xs .EQ. -1) then
    19812033                     res@trXMinF            = miniwsvs
    19822034                  else
    19832035                     res@trXMinF            = xs
    19842036                  end if
    1985                   if (xe .EQ. -1) then       
     2037                  if (xe .EQ. -1) then     
    19862038                     res@trXMaxF            = maxiwsvs
    19872039                  else
     
    19922044            end if
    19932045            if (vNam(varn) .EQ. "wv") then
    1994                miniwv=min(data(varn,:,:))
    1995                maxiwv=max(data(varn,:,:))
     2046               miniwv=min(data(varn,:,:))-min_value
     2047               maxiwv=max(data(varn,:,:))+max_value
    19962048               if (over .EQ. 1) then
    19972049                  res@xyDashPattern  = 2
     
    20162068
    20172069            if (vNam(varn) .EQ. "wpptp") then
    2018                miniwpptp=min(data(varn,:,:))
    2019                maxiwpptp=max(data(varn,:,:))
     2070               miniwpptp=min(data(varn,:,:))-min_value
     2071               maxiwpptp=max(data(varn,:,:))+max_value
    20202072               if (over .EQ. 1) then
    20212073                  res@xyDashPattern  = 0
     
    20392091            end if
    20402092            if (vNam(varn) .EQ. "wspts") then
    2041                miniwspts=min(data(varn,:,:))
    2042                maxiwspts=max(data(varn,:,:))
     2093               miniwspts=min(data(varn,:,:))-min_value
     2094               maxiwspts=max(data(varn,:,:))+max_value
    20432095               if (over .EQ. 1) then
    20442096                  res@xyDashPattern  = 1
     
    20622114            end if
    20632115            if (vNam(varn) .EQ. "wpt") then
    2064                miniwpt=min(data(varn,:,:))
    2065                maxiwpt=max(data(varn,:,:))
     2116               miniwpt=min(data(varn,:,:))-min_value
     2117               maxiwpt=max(data(varn,:,:))+max_value
    20662118               if (over .EQ. 1) then
    20672119                  res@xyDashPattern  = 2
     
    20862138
    20872139            if (vNam(varn) .EQ. "wsptsBC") then
    2088                miniwsptsBC=min(data(varn,:,:))
    2089                maxiwsptsBC=max(data(varn,:,:))
     2140               miniwsptsBC=min(data(varn,:,:))-min_value
     2141               maxiwsptsBC=max(data(varn,:,:))+max_value
    20902142               if (over .EQ. 1) then
    20912143                  res@xyDashPattern  = 0
     
    21092161            end if             
    21102162            if (vNam(varn) .EQ. "wptBC") then
    2111                miniwptBC=min(data(varn,:,:))
    2112                maxiwptBC=max(data(varn,:,:))
     2163               miniwptBC=min(data(varn,:,:))-min_value
     2164               maxiwptBC=max(data(varn,:,:))+max_value
    21132165               if (over .EQ. 1) then
    21142166                  res@xyDashPattern  = 1
     
    21332185
    21342186            if (vNam(varn) .EQ. "wpvptp") then
    2135                miniwpvptp=min(data(varn,:,:))
    2136                maxiwpvptp=max(data(varn,:,:))
     2187               miniwpvptp=min(data(varn,:,:))-min_value
     2188               maxiwpvptp=max(data(varn,:,:))+max_value
    21372189               if (over .EQ. 1) then
    21382190                  res@xyDashPattern  = 0
     
    21562208            end if
    21572209            if (vNam(varn) .EQ. "wsvpts") then
    2158                miniwsvpts=min(data(varn,:,:))
    2159                maxiwsvpts=max(data(varn,:,:))
     2210               miniwsvpts=min(data(varn,:,:))-min_value
     2211               maxiwsvpts=max(data(varn,:,:))+max_value
    21602212               if (over .EQ. 1) then
    21612213                  res@xyDashPattern  = 1
     
    21792231            end if
    21802232            if (vNam(varn) .EQ. "wvpt") then
    2181                miniwvpt=min(data(varn,:,:))
    2182                maxiwvpt=max(data(varn,:,:))
     2233               miniwvpt=min(data(varn,:,:))-min_value
     2234               maxiwvpt=max(data(varn,:,:))+max_value
    21832235               if (over .EQ. 1) then
    21842236                  res@xyDashPattern  = 2
     
    22032255
    22042256            if (vNam(varn) .EQ. "wpqp") then
    2205                miniwpqp=min(data(varn,:,:))
    2206                maxiwpqp=max(data(varn,:,:))
     2257               miniwpqp=min(data(varn,:,:))-min_value
     2258               maxiwpqp=max(data(varn,:,:))+max_value
    22072259               if (over .EQ. 1) then
    22082260                  res@xyDashPattern  = 0
     
    22262278            end if
    22272279            if (vNam(varn) .EQ. "wsqs") then
    2228                miniwsqs=min(data(varn,:,:))
    2229                maxiwsqs=max(data(varn,:,:))
     2280               miniwsqs=min(data(varn,:,:))-min_value
     2281               maxiwsqs=max(data(varn,:,:))+max_value
    22302282               if (over .EQ. 1) then
    22312283                  res@xyDashPattern  = 1
     
    22492301            end if
    22502302            if (vNam(varn) .EQ. "wq") then
    2251                miniwq=min(data(varn,:,:))
    2252                maxiwq=max(data(varn,:,:))
     2303               miniwq=min(data(varn,:,:))-min_value
     2304               maxiwq=max(data(varn,:,:))+max_value
    22532305               if (over .EQ. 1) then
    22542306                  res@xyDashPattern  = 2
     
    22732325
    22742326            if (vNam(varn) .EQ. "wpqvp") then
    2275                miniwpqvp=min(data(varn,:,:))
    2276                maxiwpqvp=max(data(varn,:,:))
     2327               miniwpqvp=min(data(varn,:,:))-min_value
     2328               maxiwpqvp=max(data(varn,:,:))+max_value
    22772329               if (over .EQ. 1) then
    22782330                  res@xyDashPattern  = 0
     
    22962348            end if
    22972349            if (vNam(varn) .EQ. "wsqvs") then
    2298                miniwsqvs=min(data(varn,:,:))
    2299                maxiwsqvs=max(data(varn,:,:))
     2350               miniwsqvs=min(data(varn,:,:))-min_value
     2351               maxiwsqvs=max(data(varn,:,:))+max_value
    23002352               if (over .EQ. 1) then
    23012353                  res@xyDashPattern  = 1
     
    23192371            end if
    23202372            if (vNam(varn) .EQ. "wqv") then
    2321                miniwqv=min(data(varn,:,:))
    2322                maxiwqv=max(data(varn,:,:))
     2373               miniwqv=min(data(varn,:,:))-min_value
     2374               maxiwqv=max(data(varn,:,:))+max_value
    23232375               if (over .EQ. 1) then
    23242376                  res@xyDashPattern  = 2
     
    23432395
    23442396            if (vNam(varn) .EQ. "wpsp") then
    2345                miniwpsp=min(data(varn,:,:))
    2346                maxiwpsp=max(data(varn,:,:))
     2397               miniwpsp=min(data(varn,:,:))-min_value
     2398               maxiwpsp=max(data(varn,:,:))+max_value
    23472399               if (over .EQ. 1) then
    23482400                  res@xyDashPattern  = 0
     
    23662418            end if
    23672419            if (vNam(varn) .EQ. "wsss") then
    2368                miniwsss=min(data(varn,:,:))
    2369                maxiwsss=max(data(varn,:,:))
     2420               miniwsss=min(data(varn,:,:))-min_value
     2421               maxiwsss=max(data(varn,:,:))+max_value
    23702422               if (over .EQ. 1) then
    23712423                  res@xyDashPattern  = 1
     
    23892441            end if
    23902442            if (vNam(varn) .EQ. "ws") then
    2391                miniws=min(data(varn,:,:))
    2392                maxiws=max(data(varn,:,:))
     2443               miniws=min(data(varn,:,:))-min_value
     2444               maxiws=max(data(varn,:,:))+max_value
    23932445               if (over .EQ. 1) then
    23942446                  res@xyDashPattern  = 2
     
    24132465
    24142466            if (vNam(varn) .EQ. "wpsap") then
    2415                miniwpsap=min(data(varn,:,:))
    2416                maxiwpsap=max(data(varn,:,:))
     2467               miniwpsap=min(data(varn,:,:))-min_value
     2468               maxiwpsap=max(data(varn,:,:))+max_value
    24172469               if (over .EQ. 1) then
    24182470                  res@xyDashPattern  = 0
     
    24362488            end if
    24372489            if (vNam(varn) .EQ. "wssas") then
    2438                miniwssas=min(data(varn,:,:))
    2439                maxiwssas=max(data(varn,:,:))
     2490               miniwssas=min(data(varn,:,:))-min_value
     2491               maxiwssas=max(data(varn,:,:))+max_value
    24402492               if (over .EQ. 1) then
    24412493                  res@xyDashPattern  = 1
     
    24592511            end if
    24602512            if (vNam(varn) .EQ. "wsa") then
    2461                miniwsa=min(data(varn,:,:))
    2462                maxiwsa=max(data(varn,:,:))
     2513               miniwsa=min(data(varn,:,:))-min_value
     2514               maxiwsa=max(data(varn,:,:))+max_value
    24632515               if (over .EQ. 1) then
    24642516                  res@xyDashPattern  = 2
     
    24832535
    24842536            if (vNam(varn) .EQ. "us2") then
    2485                minius2=min(data(varn,:,:))
    2486                maxius2=max(data(varn,:,:))
     2537               minius2=min(data(varn,:,:))-min_value
     2538               maxius2=max(data(varn,:,:))+max_value
    24872539               if (over .EQ. 1) then
    24882540                  res@xyDashPattern  = 0
     
    25062558            end if
    25072559            if (vNam(varn) .EQ. "vs2") then
    2508                minivs2=min(data(varn,:,:))
    2509                maxivs2=max(data(varn,:,:))
     2560               minivs2=min(data(varn,:,:))-min_value
     2561               maxivs2=max(data(varn,:,:))+max_value
    25102562               if (over .EQ. 1) then
    25112563                  res@xyDashPattern  = 1
     
    25292581            end if
    25302582            if (vNam(varn) .EQ. "ws2") then
    2531                miniws2=min(data(varn,:,:))
    2532                maxiws2=max(data(varn,:,:))
     2583               miniws2=min(data(varn,:,:))-min_value
     2584               maxiws2=max(data(varn,:,:))+max_value
    25332585               if (over .EQ. 1) then
    25342586                  res@xyDashPattern  = 2
     
    25532605
    25542606            if (vNam(varn) .EQ. "wsususodz") then
    2555                miniwsususodz=min(data(varn,:,:))
    2556                maxiwsususodz=max(data(varn,:,:))
     2607               miniwsususodz=min(data(varn,:,:))-min_value
     2608               maxiwsususodz=max(data(varn,:,:))+max_value
    25572609               if (over .EQ. 1) then
    25582610                  res@xyDashPattern  = 0
     
    25762628            end if
    25772629            if (vNam(varn) .EQ. "wspsodz") then
    2578                miniwspsodz=min(data(varn,:,:))
    2579                maxiwspsodz=max(data(varn,:,:))
     2630               miniwspsodz=min(data(varn,:,:))-min_value
     2631               maxiwspsodz=max(data(varn,:,:))+max_value
    25802632               if (over .EQ. 1) then
    25812633                  res@xyDashPattern  = 1
     
    25992651            end if
    26002652            if (vNam(varn) .EQ. "wpeodz") then
    2601                miniwpeodz=min(data(varn,:,:))
    2602                maxiwpeodz=max(data(varn,:,:))
     2653               miniwpeodz=min(data(varn,:,:))-min_value
     2654               maxiwpeodz=max(data(varn,:,:))+max_value
    26032655               if (over .EQ. 1) then
    26042656                  res@xyDashPattern  = 2
     
    26222674            end if
    26232675         if (no_files .GT. 1) then
     2676            print("nof="+nof+" und n="+n)
    26242677            multi_plot(nof,n)=plot(n)
    26252678            max_nof(nof,n)=max(data(varn,:,:))
     
    26352688         end if
    26362689         delete(temp)
     2690         delete(temp_att)
    26372691      end if         
    26382692   end do
     
    26802734         res@gsnLeftString  = name(0,pl)
    26812735         res@gsnRightString = unit_(0,pl)
    2682    
     2736         
     2737         data_0(:,:) = min(min_nof(:,pl))
    26832738         plot0 = gsn_csm_xy(wks,data_0(:,:),z_(pl,:),res)
    26842739
     
    26912746         lgres@lgLabelFont        = "helvetica"   
    26922747         lgres@lgLabelFontHeightF = font_size_legend           
    2693          lgres@vpWidthF           = max(string_len)*0.012           
    2694          lgres@vpHeightF          = 0.04*no_files         
     2748         lgres@vpWidthF           = max(string_len)*0.015           
     2749         lgres@vpHeightF          = 0.03*no_files         
    26952750         lgres@lgDashIndexes      = multi_dash(no_files-1:0)
    26962751         lbid = gsn_create_legend(wks,no_files,multi_legend(no_files-1:0),lgres)       
    26972752
    26982753         amres = True
    2699          amres@amParallelPosF   = max(string_len)*0.01+0.78                 
     2754         amres@amParallelPosF   = max(string_len)*0.012+0.78               
    27002755         amres@amOrthogonalPosF = -0.0315*no_files+0.431         
    27012756         annoid1 = gsn_add_annotation(plot0,lbid,amres)
     
    28192874
    28202875            z=z/norm_z
     2876           
     2877            if (abs(min(data(varn,:,:))) .GT. 10)then
     2878               min_value = abs(0.01*min(data(varn,:,:)))
     2879               max_value = abs(0.01*max(data(varn,:,:)))
     2880            else
     2881               if (abs(min(data(varn,:,:))) .LT. 0.01 .AND. abs(max(data(varn,:,:))) .GT. 0.01)then
     2882                  min_value = abs(0.1*max(data(varn,:,:)))
     2883                  max_value = abs(0.1*max(data(varn,:,:)))
     2884               else
     2885                  if (abs(max(data(varn,:,:))) .LT. 0.01 .AND. abs(min(data(varn,:,:))) .GT. 0.01)then
     2886                     min_value = abs(0.1*min(data(varn,:,:)))
     2887                     max_value = abs(0.1*min(data(varn,:,:)))
     2888                  else
     2889                     min_value = abs(0.1*min(data(varn,:,:)))
     2890                     max_value = abs(0.1*max(data(varn,:,:)))
     2891                  end if
     2892               end if
     2893            end if
     2894            if (min(data(varn,:,:)) .EQ. 0 .AND. max(data(varn,:,:)) .EQ. 0)then
     2895               min_value = 0.1
     2896               max_value = 0.1
     2897            end if
    28212898
    28222899            res@gsnLeftString      = vNam(varn)
     
    28282905
    28292906            if (xs .EQ. -1) then
    2830                res@trXMinF = min(data(varn,:,:))
     2907               res@trXMinF = min(data(varn,:,:))-min_value
    28312908            else
    28322909               res@trXMinF = xs
    28332910            end if
    28342911            if (xe .EQ. -1) then
    2835                res@trXMaxF = max(data(varn,:,:))
     2912               res@trXMaxF = max(data(varn,:,:))+max_value
    28362913            else
    28372914               res@trXMaxF = xe 
  • palm/trunk/SCRIPTS/NCL/spectra.ncl

    r250 r324  
    402402         color = ispan(2,237,step)
    403403      end if
     404   else
     405      color = 2
    404406   end if
    405407   if ( dash .eq. 0 ) then
Note: See TracChangeset for help on using the changeset viewer.