NCL Home > Documentation > Functions > String manipulation


Create a string that uses single quotes (sq) to enclose command line assignment (CLA) statements for later use by NCL's system procedure.

Available in version 6.4.0 and later.


	function cla_sq (
		strLeft  [1] : string,  
		strRight [1] : string   

	return_val [1] :  a string with single quaotes at the beginning and end



A string that is the left-hand-side (lhs) of an assignment statement.


A string that is the right-hand-side (rhs) of an assignment statement. This string could include strings with double quotes or other unix/linux sensitive characters.

Return value

A scalar of type string.


Executing external NCL scripts from within an NCL script requires that a classic unix/linux command line be passed to the operating system via NCL's system procedure. Sometimes these assignment contain characters that the unix command line interpreter would intercept. This behavior can be avoided by enclosing the character segment within single quotes (').

With NCL 6.5.0, the user should explore use of the keyword_values function to facilitate the input of variables.

See Also

keyword_values, str_get_sq, str_get_dq, str_get_tab, str_get_nl, system


Example 1: From within an NCL script, execute the following:

        ncl year=2015 'f=""' 'p=(/850,500,200/)' 'var=(/"T","Q"/)' foo.ncl

This can be tedious to create because each segment containing a (, ), /, " contains a character which has some 'meaning' to the unix/linux command line interpreter. To escape this behavior the affected components must be bracketed by single quotes. Note: The equal sign (=) is not a *nix sensitive character.

  asgn1 = cla_sq(  "f", "")             ; asgn1= 'f=""'
  asgn2 = cla_sq(  "p", "(/850,500,200/)")     ; asgn2= 'p=(/850,500,200/)'
  asgn3 = cla_sq("var", "(/"T","Q"/)")         ; asgn3= 'var=(/"T","Q"/)'

  cmd   = "ncl year=2015 "+asgn1+" "+asgn2+" "+asgn3+" foo.ncl"
  print("cmd: " + cmd)

The output from the print command is:

  Variable: cmd
  Type: string
  Total Size: 8 bytes
              1 values
  Number of Dimensions: 1
  Dimensions and sizes:	[1]
  (0)	ncl year=2015 '' 'p=(/850,500,200/)' 'var=(/"T","Q"/)' foo.ncl

Example 2: From within an NCL script, execute the following:

%>  ncl year=2012 'plvl=(/850,200/)' 'diri="/Data/NCEP/"' 'fili=""' 'var=(/"uwnd"/)' foo.ncl

                                                                ; The following is not required
  asgn0 = cla_sq("year", 2012)               ; asgn0: 'year=2015'   
  asgn1 = cla_sq("fili","") ; asgn1: 'fili=""'
  asgn2 = cla_sq("diri","/Data/NCEP/")       ; asgn2: 'diri="/Data/NCEP/"'
  asgn3 = cla_sq("plvl","(/850,500,200/)")   ; asgn3: 'plvl=(/850,500,200/)'
  asgn4 = cla_sq("var" ,"(/"T","Q"/)")       ; asgn4: 'var=(/"T","Q"/)'

  cmd   = "ncl "+asgn0+" "+asgn1+" "+asgn2+" "+asgn3+" "+asgn4+" foo.ncl"

The output from the print command is:

   ncl 'year=2012' 'diri=/Data/NCEP/' '' 'plvl=(/850,500,200/)' foo.ncl