Changeset 174 for palm


Ignore:
Timestamp:
Jun 3, 2008 10:47:42 AM (16 years ago)
Author:
letzel
Message:
  • NCL scripts in trunk/SCRIPTS/NCL updated
Location:
palm/trunk/SCRIPTS/NCL
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SCRIPTS/NCL/.ncl_preferences

    r162 r174  
    7373___ze________________[1;2;...]__________________________________default = zdim____________[CS]
    7474zdim
     75___prof3d____________[0] or [1]_________________________________default = 0_______________[PR]
     760
    7577___end of file ".ncl_preferences"_____________________________________________________________
  • palm/trunk/SCRIPTS/NCL/cross_sections.ncl

    r162 r174  
    1111   ; ***************************************************
    1212
    13    if (isfilepresent("~/.ncl_preferences")) then
    14       parameter = asciiread("~/.ncl_preferences",75,"string")
     13   if (isfilepresent(".ncl_preferences")) then
     14      parameter = asciiread(".ncl_preferences",77,"string")
    1515      delete(parameter@_FillValue)
    1616   else
    1717      print(" ")
    18       print("Please copy '.ncl_preferences' into your $home dircetory")
     18      print("'.ncl_preferences' is not existent")
    1919      print(" ")
    2020      exit
  • palm/trunk/SCRIPTS/NCL/profiles.ncl

    r162 r174  
    99   ; ***************************************************
    1010
    11    if (isfilepresent("~/.ncl_preferences")) then
    12       parameter = asciiread("~/.ncl_preferences",75,"string")
     11   if (isfilepresent(".ncl_preferences")) then
     12      parameter = asciiread(".ncl_preferences",77,"string")
    1313      delete(parameter@_FillValue)
    1414   else
    1515      print(" ")
    16       print("Please copy '.ncl_preferences' into your $home dircetory")
     16      print("'.ncl_preferences' is not existent")
    1717      print(" ")
    1818      exit
     
    117117      end if
    118118   end if
     119
     120   if (.not. isvar("prof3d"))then
     121      prof3d = 0
     122      if (stringtointeger(parameter(75)) .NE. 0) then
     123         prof3d = stringtointeger(parameter(75))
     124         if (stringtointeger(parameter(75)) .NE. 1) then
     125            print(" ")
     126            print("Please set 'prof3d' to 0 or 1")
     127            print(" ")
     128            exit
     129         end if   
     130      end if
     131   end if
    119132 
    120133   ; ***************************************************
     
    123136
    124137   f=addfile( file_in,"r")
    125    
     138
    126139   vNam = getfilevarnames(f)
    127140   print(" ")
     
    129142   print(" ")
    130143   dim = dimsizes(vNam)
     144 
    131145   if (dim .EQ. 0) then
    132146      print(" ")
     
    135149   end if
    136150
     151   if (prof3d .EQ. 0) then
     152
    137153   do varn = dim-1,0,1
    138154      if ( isStrSubset( vNam(varn), "time") .OR. isStrSubset( vNam(varn), "NORM")) then
     
    140156         continue
    141157      end if
    142       if (vNam(varn) .EQ. "u")
    143          z_u = f->zu
     158      if (vNam(varn) .EQ. "u" .OR. isStrSubset(vNam(varn), "u_"))
     159         z_u = f->$vNam(varn+1)$
    144160         break
    145161      else
    146          if (vNam(varn) .EQ. "v")then
    147             z_u = f->zv
     162         if (vNam(varn) .EQ. "v" .OR. isStrSubset(vNam(varn), "v_"))then
     163 
     164            z_u = f->$vNam(varn+1)$
    148165            break
    149166         else
    150             if(vNam(varn) .EQ. "pt")then
    151                z_u = f->zpt
     167            if(vNam(varn) .EQ. "pt" .OR. isStrSubset(vNam(varn), "pt_"))then
     168               z_u = f->$vNam(varn+1)$
    152169               break
    153170            else
    154                if(vNam(varn) .EQ. "vpt")then
    155                   z_u = f->zvpt
     171               if(vNam(varn) .EQ. "vpt" .OR. isStrSubset(vNam(varn), "vpt_"))then
     172                  z_u = f->$vNam(varn+1)$
    156173                  break
    157174               else
    158                   if(vNam(varn) .EQ. "lpt")then
    159                      z_u = f->zlpt
     175                  if(vNam(varn) .EQ. "lpt" .OR. isStrSubset(vNam(varn), "lpt_"))then
     176                     z_u = f->$vNam(varn+1)$
    160177                     break
    161178                  else   
    162                      if(vNam(varn) .EQ. "q")then
    163                         z_u = f->zq
     179                     if(vNam(varn) .EQ. "q" .OR. isStrSubset(vNam(varn), "q_") )then
     180                        z_u = f->$vNam(varn+1)$
    164181                        break
    165182                     else
    166                         if(vNam(varn) .EQ. "qv")then
    167                            z_u = f->zqv
     183                        if(vNam(varn) .EQ. "qv" .OR. isStrSubset(vNam(varn), "qv_"))then
     184                           z_u = f->$vNam(varn+1)$
    168185                           break
    169186                        else
    170                            if(vNam(varn) .EQ. "ql")then
    171                               z_u = f->zql
     187                           if(vNam(varn) .EQ. "ql" .OR. isStrSubset(vNam(varn), "ql_"))then
     188                              z_u = f->$vNam(varn+1)$
    172189                              break
    173190                           else
    174                               if(vNam(varn) .EQ. "rho")then
    175                                  z_u = f->zrho
     191                              if(vNam(varn) .EQ. "rho" .OR. isStrSubset(vNam(varn), "rho_"))then
     192                                 z_u = f->$vNam(varn+1)$
    176193                                 break
    177194                              else
    178                                  if(vNam(varn) .EQ. "s")then
    179                                     z_u = f->zs
     195                                 if(vNam(varn) .EQ. "s" .OR. isStrSubset(vNam(varn), "s_") )then
     196                                    z_u = f->$vNam(varn+1)$
    180197                                    break
    181198                                 else
    182                                     if(vNam(varn) .EQ. "sa")then
    183                                        z_u = f->zsa
     199                                    if(vNam(varn) .EQ. "sa" .OR. isStrSubset(vNam(varn), "sa_"))then
     200                                       z_u = f->$vNam(varn+1)$
    184201                                       break
    185202                                    else
    186                                        if(vNam(varn) .EQ. "e")then
    187                                           z_u = f->ze
     203                                       if(vNam(varn) .EQ. "e" .OR. isStrSubset(vNam(varn), "e_"))then
     204                                          z_u = f->$vNam(varn+1)$
    188205                                          break
    189206                                       else
    190                                           if(vNam(varn) .EQ. "es")then
    191                                              z_u = f->zes
     207                                          if(vNam(varn) .EQ. "es" .OR. isStrSubset(vNam(varn), "es_"))then
     208                                             z_u = f->$vNam(varn+1)$
    192209                                             break
    193210                                          else
    194                                              if(vNam(varn) .EQ. "km")then
    195                                                 z_u = f->zkm
     211                                             if(vNam(varn) .EQ. "km" .OR. isStrSubset(vNam(varn), "km_"))then
     212                                                z_u = f->$vNam(varn+1)$
    196213                                                break
    197214                                             else
    198                                                 if(vNam(varn) .EQ. "kh")then
    199                                                    z_u = f->zkh
     215                                                if(vNam(varn) .EQ. "kh" .OR. isStrSubset(vNam(varn), "kh_"))then
     216                                                   z_u = f->$vNam(varn+1)$
    200217                                                   break
    201218                                                else
    202                                                    if(vNam(varn) .EQ. "l")then
    203                                                       z_u = f->zl
     219                                                   if(vNam(varn) .EQ. "l" .OR. isStrSubset(vNam(varn), "l_"))then
     220                                                      z_u = f->$vNam(varn+1)$
    204221                                                      break
    205222                                                   else
    206                                                       if(vNam(varn) .EQ. "us2")then
    207                                                          z_u = f->zus2
     223                                                      if(vNam(varn) .EQ. "us2" .OR. isStrSubset(vNam(varn), "us2_"))then
     224                                                         z_u = f->$vNam(varn+1)$
    208225                                                         break
    209226                                                      else
    210                                                          if(vNam(varn) .EQ. "vs2")then
    211                                                             z_u = f->zvs2
     227                                                         if(vNam(varn) .EQ. "vs2" .OR. isStrSubset(vNam(varn), "vs2_") )then
     228                                                            z_u = f->$vNam(varn+1)$
    212229                                                            break
    213230                                                         else
    214                                                             if(vNam(varn) .EQ. "pts2")then
    215                                                                z_u = f->zpts2
     231                                                            if(vNam(varn) .EQ. "pts2" .OR. isStrSubset(vNam(varn), "pts2_"))then
     232                                                               z_u = f->$vNam(varn+1)$
    216233                                                               break
    217234                                                            else
    218                                                                if(vNam(varn) .EQ. "wsususodz")then
    219                                                                   z_u = f->zwsususodz
     235                                                               if(vNam(varn) .EQ. "wsususodz" .OR. isStrSubset(vNam(varn), "wsususodz_"))then
     236                                                                  z_u = f->$vNam(varn+1)$
    220237                                                                  break
    221238                                                               else
    222                                                                   if(vNam(varn) .EQ. "wspsodz")then
    223                                                                      z_u = f->zwspsodz
     239                                                                  if(vNam(varn) .EQ. "wspsodz" .OR. isStrSubset(vNam(varn), "wspsodz_"))then
     240                                                                     z_u = f->$vNam(varn+1)$
    224241                                                                     break
    225242                                                                  else
    226                                                                      if(vNam(varn) .EQ. "wpeodz")then
    227                                                                         z_u = f->zwpeodz
     243                                                                     if(vNam(varn) .EQ. "wpeodz" .OR. isStrSubset(vNam(varn), "wpeodz_"))then
     244                                                                        z_u = f->$vNam(varn+1)$
    228245                                                                        break                                                                       
    229246                                                                     end if
     
    257274         continue
    258275      end if
    259       if (vNam(varn) .EQ. "w")
    260          z_w = f->zw
     276      if (vNam(varn) .EQ. "w" .OR. isStrSubset(vNam(varn), "w_"))
     277         z_w = f->$vNam(varn+1)$
    261278         break
    262279      else
    263          if (vNam(varn) .EQ. "wpup")then
    264             z_w = f->zwpup
     280         if (vNam(varn) .EQ. "wpup" .OR. isStrSubset(vNam(varn), "wpup_"))then
     281            z_w = f->$vNam(varn+1)$
    265282            break
    266283         else
    267             if(vNam(varn) .EQ. "wsus")then
    268                z_w = f->zwsus
     284            if(vNam(varn) .EQ. "wsus" .OR. isStrSubset(vNam(varn), "wsus_"))then
     285               z_w = f->$vNam(varn+1)$
    269286               break
    270287            else
    271                if(vNam(varn) .EQ. "wu")then
    272                   z_w = f->zwu
     288               if(vNam(varn) .EQ. "wu" .OR. isStrSubset(vNam(varn), "wu_"))then
     289                  z_w = f->$vNam(varn+1)$
    273290                  break
    274291               else
    275                   if(vNam(varn) .EQ. "wpvp")then
    276                      z_w = f->zwpvp
     292                  if(vNam(varn) .EQ. "wpvp" .OR. isStrSubset(vNam(varn), "wpvp_"))then
     293                     z_w = f->$vNam(varn+1)$
    277294                     break
    278295                  else   
    279                      if(vNam(varn) .EQ. "wsvs")then
    280                         z_w = f->zwsvs
     296                     if(vNam(varn) .EQ. "wsvs" .OR. isStrSubset(vNam(varn), "wsvs_"))then
     297                        z_w = f->$vNam(varn+1)$
    281298                        break
    282299                     else
    283                         if(vNam(varn) .EQ. "wv")then
    284                            z_w = f->zwv
     300                        if(vNam(varn) .EQ. "wv" .OR. isStrSubset(vNam(varn), "wv_"))then
     301                           z_w = f->$vNam(varn+1)$
    285302                           break
    286303                        else
    287                            if(vNam(varn) .EQ. "wptpp")then
    288                               z_w = f->zwptpp
     304                           if(vNam(varn) .EQ. "wptpp" .OR. isStrSubset(vNam(varn), "wptpp_"))then
     305                              z_w = f->$vNam(varn+1)$
    289306                              break
    290307                           else
    291                               if(vNam(varn) .EQ. "wspts")then
    292                                  z_w = f->zwspts
     308                              if(vNam(varn) .EQ. "wspts" .OR. isStrSubset(vNam(varn), "wspts_"))then
     309                                 z_w = f->$vNam(varn+1)$
    293310                                 break
    294311                              else
    295                                  if(vNam(varn) .EQ. "wpt")then
    296                                     z_w = f->zwpt
     312                                 if(vNam(varn) .EQ. "wpt" .OR. isStrSubset(vNam(varn), "wpz_"))then
     313                                    z_w = f->$vNam(varn+1)$
    297314                                    break
    298315                                 else
    299                                     if(vNam(varn) .EQ. "wsptsBC")then
    300                                        z_w = f->zwsptsBC
     316                                    if(vNam(varn) .EQ. "wsptsBC" .OR. isStrSubset(vNam(varn), "wsptsBC_"))then
     317                                       z_w = f->$vNam(varn+1)$
    301318                                       break
    302319                                    else
    303                                        if(vNam(varn) .EQ. "wptBC")then
    304                                           z_w = f->zwptBC
     320                                       if(vNam(varn) .EQ. "wptBC" .OR. isStrSubset(vNam(varn), "wptBC_"))then
     321                                          z_w = f->$vNam(varn+1)$
    305322                                          break
    306323                                       else
    307                                           if(vNam(varn) .EQ. "wpvptp")then
    308                                              z_w = f->zwpvptp
     324                                          if(vNam(varn) .EQ. "wpvptp" .OR. isStrSubset(vNam(varn), "wpvptp_"))then
     325                                             z_w = f->$vNam(varn+1)$
    309326                                             break
    310327                                          else
    311                                              if(vNam(varn) .EQ. "wsvpts")then
    312                                                 z_w = f->zwsvpts
     328                                             if(vNam(varn) .EQ. "wsvpts" .OR. isStrSubset(vNam(varn), "wsvpts_"))then
     329                                                z_w = f->$vNam(varn+1)$
    313330                                                break
    314331                                             else
    315                                                 if(vNam(varn) .EQ. "wvpt")then
    316                                                    z_w = f->zwvpt
     332                                                if(vNam(varn) .EQ. "wvpt" .OR. isStrSubset(vNam(varn), "wvpt_"))then
     333                                                   z_w = f->$vNam(varn+1)$
    317334                                                   break
    318335                                                else
    319                                                    if(vNam(varn) .EQ. "wpqp")then
    320                                                       z_w = f->zwpqp
     336                                                   if(vNam(varn) .EQ. "wpqp" .OR. isStrSubset(vNam(varn), "wpqp_"))then
     337                                                      z_w = f->$vNam(varn+1)$
    321338                                                      break
    322339                                                   else
    323                                                       if(vNam(varn) .EQ. "wsqs")then
    324                                                          z_w = f->zwsqs
     340                                                      if(vNam(varn) .EQ. "wsqs" .OR. isStrSubset(vNam(varn), "wsqs_"))then
     341                                                         z_w = f->$vNam(varn+1)$
    325342                                                         break
    326343                                                      else
    327                                                          if(vNam(varn) .EQ. "wq")then
    328                                                             z_w = f->zwq
     344                                                         if(vNam(varn) .EQ. "wq" .OR. isStrSubset(vNam(varn), "wq_"))then
     345                                                            z_w = f->$vNam(varn+1)$
    329346                                                            break
    330347                                                         else
    331                                                             if(vNam(varn) .EQ. "wpqvp")then
    332                                                                z_w = f->zwpqvp
     348                                                            if(vNam(varn) .EQ. "wpqvp" .OR. isStrSubset(vNam(varn), "wpqvp_"))then
     349                                                               z_w = f->$vNam(varn+1)$
    333350                                                               break
    334351                                                            else
    335                                                                if(vNam(varn) .EQ. "wsqvs")then
    336                                                                   z_w = f->zwsqvs
     352                                                               if(vNam(varn) .EQ. "wsqvs" .OR. isStrSubset(vNam(varn), "wsqvs_"))then
     353                                                                  z_w = f->$vNam(varn+1)$
    337354                                                                  break
    338355                                                               else
    339                                                                   if(vNam(varn) .EQ. "wqv")then
    340                                                                      z_w = f->zwqv
     356                                                                  if(vNam(varn) .EQ. "wqv" .OR. isStrSubset(vNam(varn), "wqv_"))then
     357                                                                     z_w = f->$vNam(varn+1)$
    341358                                                                     break
    342359                                                                  else
    343                                                                      if(vNam(varn) .EQ. "wpsp")then
    344                                                                         z_w = f->zwpsp
     360                                                                     if(vNam(varn) .EQ. "wpsp" .OR. isStrSubset(vNam(varn), "wpsp_"))then
     361                                                                        z_w = f->$vNam(varn+1)$
    345362                                                                        break
    346363                                                                     else
    347                                                                         if(vNam(varn) .EQ. "wsss")then
    348                                                                            z_w = f->zwsss
     364                                                                        if(vNam(varn) .EQ. "wsss" .OR. isStrSubset(vNam(varn), "wsss_"))then
     365                                                                           z_w = f->$vNam(varn+1)$
    349366                                                                           break
    350367                                                                        else
    351                                                                            if(vNam(varn) .EQ. "ws")then
    352                                                                               z_w = f->zws
     368                                                                           if(vNam(varn) .EQ. "ws" .OR. isStrSubset(vNam(varn), "ws_"))then
     369                                                                              z_w = f->$vNam(varn+1)$
    353370                                                                              break
    354371                                                                           else
    355                                                                               if(vNam(varn) .EQ. "wpsap")then
    356                                                                                  z_w = f->zwpsap
     372                                                                              if(vNam(varn) .EQ. "wpsap" .OR. isStrSubset(vNam(varn), "wpsap_"))then
     373                                                                                 z_w = f->$vNam(varn+1)$
    357374                                                                                 break
    358375                                                                              else
    359                                                                                  if(vNam(varn) .EQ. "wssas")then
    360                                                                                     z_w = f->zwssas
     376                                                                                 if(vNam(varn) .EQ. "wssas" .OR. isStrSubset(vNam(varn), "wssas_") )then
     377                                                                                    z_w = f->$vNam(varn+1)$
    361378                                                                                    break
    362379                                                                                 else
    363                                                                                     if(vNam(varn) .EQ. "wsa")then
    364                                                                                        z_w = f->zwsa
     380                                                                                    if(vNam(varn) .EQ. "wsa" .OR. isStrSubset(vNam(varn), "wsa_"))then
     381                                                                                       z_w = f->$vNam(varn+1)$
    365382                                                                                       break
    366383                                                                                    else
    367                                                                                        if(vNam(varn) .EQ. "wses")then
    368                                                                                           z_w = f->zwses
     384                                                                                       if(vNam(varn) .EQ. "wses" .OR. isStrSubset(vNam(varn), "wses_"))then
     385                                                                                          z_w = f->$vNam(varn+1)$
    369386                                                                                          break
    370387                                                                                       else
    371                                                                                           if(vNam(varn) .EQ. "ws2")then
    372                                                                                              z_w = f->zws2
     388                                                                                          if(vNam(varn) .EQ. "ws2" .OR. isStrSubset(vNam(varn), "ws2_"))then
     389                                                                                             z_w = f->$vNam(varn+1)$
    373390                                                                                             break
    374391                                                                                          else
    375                                                                                              if(vNam(varn) .EQ. "ws3")then
    376                                                                                                 z_w = f->zws3
     392                                                                                             if(vNam(varn) .EQ. "ws3" .OR. isStrSubset(vNam(varn), "ws3_"))then
     393                                                                                                z_w = f->$vNam(varn+1)$
    377394                                                                                                break
    378395                                                                                             else
    379                                                                                                 if(vNam(varn) .EQ. "Sw")then
    380                                                                                                    z_w = f->zSw
     396                                                                                                if(vNam(varn) .EQ. "Sw" .OR. isStrSubset(vNam(varn), "Sw_"))then
     397                                                                                                   z_w = f->$vNam(varn+1)$
    381398                                                                                                   break
    382399                                                                                                else
    383                                                                                                    if(vNam(varn) .EQ. "ws2pts")then
    384                                                                                                       z_w = f->zws2pts
     400                                                                                                   if(vNam(varn) .EQ. "ws2pts".OR. isStrSubset(vNam(varn), "ws2pts_") )then
     401                                                                                                      z_w = f->$vNam(varn+1)$
    385402                                                                                                      break
    386403                                                                                                   else
    387                                                                                                       if(vNam(varn) .EQ. "wspts2")then
    388                                                                                                          z_w = f->zwspts2
     404                                                                                                      if(vNam(varn) .EQ. "wspts2" .OR. isStrSubset(vNam(varn), "wspts2_"))then
     405                                                                                                         z_w = f->$vNam(varn+1)$
    389406                                                                                                         break                                           
    390407                                                                                                      end if
     
    463480      end if
    464481   end if
     482
     483   else
     484
     485      do varn = dim-1,0,1
     486         if (vNam(varn) .EQ. "zu_3d")
     487            z_u = f->zu_3d 
     488            dimz  = dimsizes(z_u)         
     489         else
     490            if (vNam(varn) .EQ. "zw_3d")
     491               z_w = f->zw_3d
     492               dimz  = dimsizes(z_w)
     493            end if
     494         end if
     495      end do
     496
     497   end if
     498   
    465499   t_all = f->time
    466500   nt    = dimsizes(t_all)
    467501   delta_t=t_all(nt-1)/nt
    468  
     502
    469503   ; ****************************************************       
    470504   ; start of time step and different types of mistakes that could be done
     
    472506
    473507   if ( .not. isvar("start_time_step") ) then           
    474       start_time_step=t_all(1)/3600
     508      start_time_step=t_all(0)/3600
    475509      if (parameter(13) .NE. "t(0)") then
    476510         if (stringtodouble(parameter(13)) .GT. t_all(nt-1)/3600)
     
    482516            exit
    483517         end if
    484          if (stringtofloat(parameter(13)) .LE. t_all(0)/3600)
     518         if (stringtofloat(parameter(13)) .LT. t_all(0)/3600)
    485519            print(" ")
    486             print("'start_time_step' = "+ parameter(13) +"h is equal or lower than first time step = " + t_all(0)+"s = "+t_all(0)/3600+"h")
    487             print(" ")
    488             print("Please start profiles at least with second time step = "+t_all(1)+"s = "+t_all(1)/3600+"h")
    489             print(" ")
     520            print("'start_time_step' = "+ parameter(13) +"h is lower than first time step = " + t_all(0)+"s = "+t_all(0)/3600+"h")           
    490521            exit
    491522         end if
     
    501532         exit
    502533      end if
    503       if (start_time_step .LE. t_all(0)/3600)
     534      if (start_time_step .LT. t_all(0)/3600)
    504535         print(" ")
    505          print("'start_time_step' = "+ start_time_step +"h is equal or lower than first time step = " + t_all(0)+"s = "+t_all(0)/3600+"h")
    506          print(" ")
    507          print("Please start profiles at least with second time step = "+t_all(1)+"s = "+t_all(1)/3600+"h")
    508          print(" ")
     536         print("'start_time_step' = "+ start_time_step +"h is lower than first time step = " + t_all(0)+"s = "+t_all(0)/3600+"h")
     537       
    509538         exit
    510539      end if
    511540   end if
    512541   start_time_step = start_time_step*3600
    513    if (start_time_step .GT. t_all(0) .AND. start_time_step .LT. t_all(1)+delta_t/2)then
    514       st=1
    515    end if
    516    do i=2,nt-1     
     542   ;if (start_time_step .GE. t_all(0) .AND. start_time_step .LT. t_all(1)+delta_t/2)then
     543   ;   st=0
     544   ;end if
     545   do i=0,nt-1     
    517546      if (start_time_step .GE. t_all(i)-delta_t/2 .AND. start_time_step .LT. t_all(i)+delta_t/2)then
    518547         st=i
     
    520549      end if
    521550   end do
    522  
     551   
    523552   ; ****************************************************
    524553   ; end of time step and different types of mistakes that could be done
     
    538567         if (stringtodouble(parameter(15)) .LT. start_time_step/3600)
    539568            print(" ")
    540             print("'end_time_step' = "+ parameter(15) +"h is lower than 'start_time_step' = "+parameter(13)+"h")
     569            print("'end_time_step' = "+ parameter(15) +"h is lower than 'start_time_step' = "+start_time_step/3600+"h")
    541570            print(" ")
    542571            print("Please select another 'start_time_step' or 'end_time_step'")
     
    565594   end if
    566595   end_time_step = end_time_step*3600
    567    if (end_time_step .GT. t_all(0) .AND. end_time_step .LT. t_all(1)+delta_t/2)then
    568       et=1
    569    end if
    570    do i=2,nt-1     
     596   ;if (end_time_step .GE. t_all(0) .AND. end_time_step .LT. t_all(1)+delta_t/2)then
     597   ;   et=1
     598   ;end if
     599   do i=0,nt-1     
    571600      if (end_time_step .GE. t_all(i)-delta_t/2 .AND. end_time_step .LT. t_all(i)+delta_t/2)then
    572601         et=i
     
    769798   t      = 0.0
    770799   unit   = new(dim,string)
     800   z_v    = new((/dim,dimz/),double)
    771801
    772802   if (over .EQ. 1) then
     
    920950   n_o=0
    921951   count_var=0
     952
    922953   do varn = 0,dim-1
    923        
    924       temp = f->$vNam(varn)$
     954
     955      check = True
    925956     
    926       if ( isStrSubset( vNam(varn), "time") .OR. isStrSubset( vNam(varn), "NORM")) then
    927          check = False
     957      if (prof3d .EQ. 0) then
     958         if ( isStrSubset( vNam(varn), "time") .OR. isStrSubset( vNam(varn), "NORM")) then
     959            check = False
     960         end if
    928961      else
    929          if (.not. isvar("var")) then
    930             check = True
    931             if (parameter(21) .NE. "variables") then
    932                var=parameter(21)
    933                check = isStrSubset( var,","+vNam(varn)+"," )
    934             end if
    935          else         
     962         if ( isStrSubset( vNam(varn), "time") .OR. isStrSubset( vNam(varn), "zusi") .OR. isStrSubset( vNam(varn), "zwwi") .OR. isStrSubset( vNam(varn), "x") .OR. isStrSubset( vNam(varn), "xu") .OR. isStrSubset( vNam(varn), "y") .OR. isStrSubset( vNam(varn), "yv") .OR. isStrSubset( vNam(varn), "zu_3d") .OR. isStrSubset( vNam(varn), "zw_3d")) then
     963            check = False
     964         end if
     965      end if
     966
     967      if (.not. isvar("var")) then
     968         if (parameter(21) .NE. "variables") then
     969            var=parameter(21)
    936970            check = isStrSubset( var,","+vNam(varn)+"," )
    937971         end if
     972      else         
     973         check = isStrSubset( var,","+vNam(varn)+"," )
    938974      end if
    939975
    940976      if (combine .EQ. 1) then         
    941977         com=isStrSubset(c_var,","+vNam(varn)+"," )     
    942          if (com)                       
    943             data(varn,:,:) = temp(start_time_step:end_time_step,0:dimz-1)
     978         if (com)     
     979            if (prof3d .EQ. 0) then
     980               temp = f->$vNam(varn)$
     981               data(varn,:,:) = temp(start_time_step:end_time_step,0:dimz-1)
     982            else
     983               do i=0,dimz-1
     984                  do j=start_time_step,end_time_step
     985                     temp= f->$vNam(varn)$(j,i,:,:)
     986                     data(varn,j-start_time_step,i) = dim_avg_Wrap(dim_avg_Wrap(temp(:,:)))
     987                  end do
     988               end do
     989               print(" ")
     990               print("Variable for combine '"+vNam(varn)+"' is read")
     991               print(" ")
     992            end if                 
    944993            unit(varn) = temp@units
    945994            if (n_o .GT. number_comb-1) then
     
    9561005
    9571006      if(check) then
     1007
    9581008         count_var=count_var+1
    959      
    960          z = f->$vNam(varn+1)$
    961  
    962          unit(varn) = temp@units
    963          data(varn,:,:) = temp(start_time_step:end_time_step,0:dimz-1)
    964  
     1009
     1010         if (prof3d .EQ. 0) then
     1011            temp = f->$vNam(varn)$
     1012         else
     1013            do i=0,dimz-1
     1014               do j=start_time_step,end_time_step
     1015                  temp = f->$vNam(varn)$(j,i,:,:)
     1016                  data(varn,j-start_time_step,i) = dim_avg_Wrap(dim_avg_Wrap(temp(:,:)))
     1017               end do
     1018            end do
     1019            print(" ")
     1020            print("Variable '"+vNam(varn)+"' is read")
     1021            print(" ")
     1022            unit(varn) = temp@units
     1023            a=getvaratts(temp)
     1024            b=dimsizes(a)
     1025         end if
     1026   
     1027         if (prof3d .EQ. 0) then
     1028            z = f->$vNam(varn+1)$
     1029            unit(varn) = temp@units
     1030            data(varn,:,:) = temp(start_time_step:end_time_step,0:dimz-1)
     1031         else
     1032            do i=0,b-1           
     1033               if (isStrSubset( a(i),"zu_3d" ))
     1034                  z_v(varn,:) = z_u
     1035                  z = z_v(varn,:)
     1036               else
     1037                  if (isStrSubset( a(i),"zw_3d" ))
     1038                     z_v(varn,:) = z_w
     1039                     z = z_v(varn,:)
     1040                  end if                   
     1041               end if
     1042            end do           
     1043         end if
    9651044         if (over .EQ. 0) then 
    9661045            res@gsnLeftString      = vNam(varn)
     
    23562435         if (over .EQ. 0) then
    23572436            n=n+1 
    2358          end if     
    2359          varn=varn+1
    2360       end if     
    2361       delete(temp)
     2437         end if 
     2438         if (prof3d .EQ. 0)then   
     2439            varn=varn+1
     2440         end if
     2441         delete(temp)
     2442      end if         
    23622443   end do
    23632444
     
    24242505   
    24252506      do varn = 0,dim-1   
     2507         
     2508         check = True
    24262509     
    2427          if ( isStrSubset( vNam(varn), "time") .OR. isStrSubset( vNam(varn), "NORM")) then
    2428             check = False
     2510         if (prof3d .EQ. 0) then
     2511            if ( isStrSubset( vNam(varn), "time") .OR. isStrSubset( vNam(varn), "NORM")) then
     2512               check = False
     2513            end if
    24292514         else
    2430             if (.not. isvar("var")) then
    2431                check = True
    2432                if (parameter(21) .NE. "variables") then
    2433                   var=parameter(21)
    2434                   check = isStrSubset( var,","+vNam(varn)+"," )
    2435                end if
    2436             else         
     2515            if ( isStrSubset( vNam(varn), "time") .OR. isStrSubset( vNam(varn), "zusi") .OR. isStrSubset( vNam(varn), "zwwi") .OR. isStrSubset( vNam(varn), "x") .OR. isStrSubset( vNam(varn), "xu") .OR. isStrSubset( vNam(varn), "y") .OR. isStrSubset( vNam(varn), "yv") .OR. isStrSubset( vNam(varn), "zu_3d") .OR. isStrSubset( vNam(varn), "zw_3d")) then
     2516               check = False
     2517            end if
     2518         end if
     2519
     2520         if (.not. isvar("var")) then
     2521            if (parameter(21) .NE. "variables") then
     2522               var=parameter(21)
    24372523               check = isStrSubset( var,","+vNam(varn)+"," )
    24382524            end if
    2439          end if 
     2525         else         
     2526            check = isStrSubset( var,","+vNam(varn)+"," )
     2527         end if     
    24402528
    24412529         if (check)
    2442            
    2443             z = f->$vNam(varn+1)$
    2444            
     2530
     2531            if (prof3d .EQ. 1) then
     2532
     2533            end if
     2534         
     2535            if (prof3d .EQ. 0) then
     2536               z = f->$vNam(varn+1)$
     2537            else
     2538               z = z_v(varn,:)
     2539            end if
     2540
    24452541            res@gsnLeftString      = vNam(varn)
    24462542            res@gsnRightString     = unit(varn)
     
    25152611                  u=1
    25162612               else
    2517                   varn=varn+1
     2613                  if (prof3d .EQ. 0)then
     2614                     varn=varn+1
     2615                  end if
    25182616                  continue
    25192617               end if       
     
    25652663                  pt=1
    25662664               else
    2567                   varn=varn+1
     2665                  if (prof3d .EQ. 0)then
     2666                     varn=varn+1
     2667                  end if
    25682668                  continue       
    25692669               end if
     
    26142714                  q=1
    26152715               else
    2616                   varn=varn+1
     2716                  if (prof3d .EQ. 0)then
     2717                     varn=varn+1
     2718                  end if
    26172719                  continue   
    26182720               end if
     
    26642766                  e=1
    26652767               else
    2666                   varn=varn+1
     2768                  if (prof3d .EQ. 0)then
     2769                     varn=varn+1
     2770                  end if
    26672771                  continue   
    26682772               end if
     
    27132817                  km=1
    27142818               else
    2715                   varn=varn+1
     2819                  if (prof3d .EQ. 0)then
     2820                     varn=varn+1
     2821                  end if
    27162822                  continue   
    27172823               end if
     
    27632869                  wpup=1
    27642870               else
    2765                   varn=varn+1
     2871                  if (prof3d .EQ. 0)then
     2872                     varn=varn+1
     2873                  end if
    27662874                  continue   
    27672875               end if
     
    28122920                  wpup=0
    28132921               else
    2814                   varn=varn+1
     2922                  if (prof3d .EQ. 0)then
     2923                     varn=varn+1
     2924                  end if
    28152925                  continue   
    28162926               end if
     
    28612971                  wpptp=1
    28622972               else
    2863                   varn=varn+1
     2973                  if (prof3d .EQ. 0)then
     2974                     varn=varn+1
     2975                  end if
    28642976                  continue   
    28652977               end if
     
    29103022                  wsptsBC=1
    29113023               else
    2912                   varn=varn+1
     3024                  if (prof3d .EQ. 0)then
     3025                     varn=varn+1
     3026                  end if
    29133027                  continue   
    29143028               end if 
     
    29593073                  wpvptp=1
    29603074               else
    2961                   varn=varn+1
     3075                  if (prof3d .EQ. 0)then
     3076                     varn=varn+1
     3077                  end if
    29623078                  continue   
    29633079               end if
     
    30083124                  wpqp=1
    30093125               else
    3010                   varn=varn+1
     3126                  if (prof3d .EQ. 0)then
     3127                     varn=varn+1
     3128                  end if
    30113129                  continue   
    30123130               end if
     
    30573175                  wpqvp=1
    30583176               else
    3059                   varn=varn+1
     3177                  if (prof3d .EQ. 0)then
     3178                     varn=varn+1
     3179                  end if
    30603180                  continue   
    30613181               end if
     
    31063226                  wpsp=1
    31073227               else
    3108                   varn=varn+1
     3228                  if (prof3d .EQ. 0)then
     3229                     varn=varn+1
     3230                  end if
    31093231                  continue   
    31103232               end if
     
    31553277                  wpsap=1
    31563278               else
    3157                   varn=varn+1
     3279                  if (prof3d .EQ. 0)then
     3280                     varn=varn+1
     3281                  end if
    31583282                  continue   
    31593283               end if
     
    32053329                  us2=1
    32063330               else
    3207                   varn=varn+1
     3331                  if (prof3d .EQ. 0)then
     3332                     varn=varn+1
     3333                  end if
    32083334                  continue   
    32093335               end if
     
    32553381                  wsususodz=1
    32563382               else
    3257                   varn=varn+1
     3383                  if (prof3d .EQ. 0)then
     3384                     varn=varn+1
     3385                  end if
    32583386                  continue   
    32593387               end if
    32603388            end if     
    3261             n=n+1   
    3262             varn=varn+1
     3389            n=n+1
     3390            if (prof3d .EQ. 0)then
     3391               varn=varn+1
     3392            end if   
    32633393         end if
    32643394      end do
     
    32663396
    32673397   if (combine .EQ. 1) then
     3398      co=0     
     3399      n_o=0
     3400      do varn = 0,dim-1
     3401 
     3402         check = True
     3403     
     3404         if (prof3d .EQ. 0) then
     3405            if ( isStrSubset( vNam(varn), "time") .OR. isStrSubset( vNam(varn), "NORM")) then
     3406               check = False
     3407            end if
     3408         else
     3409            if ( isStrSubset( vNam(varn), "time") .OR. isStrSubset( vNam(varn), "zusi") .OR. isStrSubset( vNam(varn), "zwwi") .OR. isStrSubset( vNam(varn), "x") .OR. isStrSubset( vNam(varn), "xu") .OR. isStrSubset( vNam(varn), "y") .OR. isStrSubset( vNam(varn), "yv") .OR. isStrSubset( vNam(varn), "zu_3d") .OR. isStrSubset( vNam(varn), "zw_3d")) then
     3410               check = False
     3411            end if
     3412         end if
     3413
     3414         if (.not. isvar("var")) then
     3415            if (parameter(21) .NE. "variables") then
     3416               var=parameter(21)
     3417               check = isStrSubset( var,","+vNam(varn)+"," )
     3418            end if
     3419         else         
     3420            check = isStrSubset( var,","+vNam(varn)+"," )
     3421         end if     
     3422
     3423         if (check)
     3424
     3425            if (prof3d .EQ. 0) then
     3426               z = f->$vNam(varn+1)$
     3427            else
     3428               z = z_v(varn,:) 
     3429            end if
    32683430     
    3269       check=True     
    3270       n_o=0
    3271       do varn = 0,dim-1
    3272  
    3273          if ( isStrSubset( vNam(varn), "NORM") .or. isStrSubset( vNam(varn), "time") )
    3274             check = False
    3275          else
    3276             if (.not. isvar("var")) then
    3277                check = True
    3278                if (parameter(21) .NE. "variables") then
    3279                   var=parameter(21)
    3280                   check = isStrSubset( var,","+vNam(varn)+"," )
    3281                end if
    3282             else         
    3283                check = isStrSubset( var,","+vNam(varn)+"," )
    3284             end if
    3285          end if
    3286      
    3287          if(check) then
    3288 
    3289             z = f->$vNam(varn+1)$
    32903431            com=isStrSubset( c_var,","+vNam(varn)+"," )
    3291      
     3432        
    32923433            if (com)
    3293                              
     3434               co = co+1           
    32943435               if (n_o .EQ. 1) then
    32953436                  res@xyDashPattern  = 1
     
    33263467               plot_o(n_o)=gsn_csm_xy(wks,data(varn,:,:),z,res)
    33273468               n_o=n_o+1
    3328             end if         
    3329             varn=varn+1   
     3469            end if
     3470            if (prof3d .EQ. 0)then
     3471               varn=varn+1
     3472            end if           
    33303473         end if
    33313474      end do
    33323475   
    33333476      if(number_comb .EQ. 2)then
    3334          overlay(plot_o(0),plot_o(1))
     3477         if (co .EQ. 2)then
     3478            overlay(plot_o(0),plot_o(1))
     3479         else
     3480            print("'c_var' is not conform with existing variables on the input file")
     3481         end if
    33353482      end if
    33363483      if(number_comb .EQ. 3)then
    3337          overlay(plot_o(0),plot_o(1))
    3338          overlay(plot_o(0),plot_o(2))
     3484         if (co .EQ. 3)then
     3485            overlay(plot_o(0),plot_o(1))
     3486            overlay(plot_o(0),plot_o(2))
     3487         else
     3488            print("'c_var' is not conform with existing variables on the input file")
     3489         end if
    33393490      end if
    33403491
  • palm/trunk/SCRIPTS/NCL/timeseries.ncl

    r162 r174  
    1010   ; ***************************************************
    1111   
    12    if (isfilepresent("~/.ncl_preferences")) then
    13       parameter = asciiread("~/.ncl_preferences",75,"string")
     12   if (isfilepresent(".ncl_preferences")) then
     13      parameter = asciiread(".ncl_preferences",77,"string")
    1414      delete(parameter@_FillValue)
    1515   else
    1616      print(" ")
    17       print("Please copy '.ncl_preferences' into your $home dircetory")
     17      print("'.ncl_preferences' is not existent")
    1818      print(" ")
    1919      exit
Note: See TracChangeset for help on using the changeset viewer.