[ncl-talk] string argument to user defined function

Tabish Ansari tabishumaransari at gmail.com
Thu Feb 20 07:24:20 MST 2020


Hi

I need to repeat a dimension averaging and sum operation over several
variables inside netcdf file that I'm reading through addfiles function. I
have written a user defined function for the same and want to call it with
the names of different variables present in the file. However, NCL isn't
accepting string arguments to be used directly as variable names to read
off the file.

Here's my script














































*;THIS SCRIPT COMPUTES TOTAL EMISSION FLUX PER SPECIES FOR EACH MODEL
DOMAINbegin;DOMAIN 1a1_00z_Oct =
addfile("/data3/tabish/vert-MEIC-emis/APEC-wrfchemi/wrfchemi_00z_d01_total_Oct_8lev_0.5BTHso2_so4_allnormal.nc
<http://wrfchemi_00z_d01_total_Oct_8lev_0.5BTHso2_so4_allnormal.nc>","r")a1_12z_Oct
=
addfile("/data3/tabish/vert-MEIC-emis/APEC-wrfchemi/wrfchemi_12z_d01_total_Oct_8lev_0.5BTHso2_so4_allnormal.nc
<http://wrfchemi_12z_d01_total_Oct_8lev_0.5BTHso2_so4_allnormal.nc>","r")a1_00z_Nov
=
addfile("/data3/tabish/vert-MEIC-emis/APEC-wrfchemi/wrfchemi_00z_d01_total_Nov_8lev_0.5BTHso2_so4_allnormal.nc
<http://wrfchemi_00z_d01_total_Nov_8lev_0.5BTHso2_so4_allnormal.nc>","r")a1_12z_Nov
=
addfile("/data3/tabish/vert-MEIC-emis/APEC-wrfchemi/wrfchemi_12z_d01_total_Nov_8lev_0.5BTHso2_so4_allnormal.nc
<http://wrfchemi_12z_d01_total_Nov_8lev_0.5BTHso2_so4_allnormal.nc>","r");DOMAIN
2a2_00z_Oct =
addfile("/data3/tabish/vert-MEIC-emis/APEC-wrfchemi/wrfchemi_00z_d02_total_Oct_8lev_0.5BTHso2_so4_allnormal.nc
<http://wrfchemi_00z_d02_total_Oct_8lev_0.5BTHso2_so4_allnormal.nc>","r")a2_12z_Oct
=
addfile("/data3/tabish/vert-MEIC-emis/APEC-wrfchemi/wrfchemi_12z_d02_total_Oct_8lev_0.5BTHso2_so4_allnormal.nc
<http://wrfchemi_12z_d02_total_Oct_8lev_0.5BTHso2_so4_allnormal.nc>","r")a2_00z_Nov
=
addfile("/data3/tabish/vert-MEIC-emis/APEC-wrfchemi/wrfchemi_00z_d02_total_Nov_8lev_0.5BTHso2_so4_allnormal.nc
<http://wrfchemi_00z_d02_total_Nov_8lev_0.5BTHso2_so4_allnormal.nc>","r")a2_12z_Nov
=
addfile("/data3/tabish/vert-MEIC-emis/APEC-wrfchemi/wrfchemi_12z_d02_total_Nov_8lev_0.5BTHso2_so4_allnormal.nc
<http://wrfchemi_12z_d02_total_Nov_8lev_0.5BTHso2_so4_allnormal.nc>","r");DOMAIN
3a3_00z_Oct =
addfile("/data3/tabish/vert-MEIC-emis/APEC-wrfchemi/wrfchemi_00z_d03_total_Oct_8lev_0.5BTHso2_so4_allnormal.nc
<http://wrfchemi_00z_d03_total_Oct_8lev_0.5BTHso2_so4_allnormal.nc>","r")a3_12z_Oct
=
addfile("/data3/tabish/vert-MEIC-emis/APEC-wrfchemi/wrfchemi_12z_d03_total_Oct_8lev_0.5BTHso2_so4_allnormal.nc
<http://wrfchemi_12z_d03_total_Oct_8lev_0.5BTHso2_so4_allnormal.nc>","r")a3_00z_Nov
=
addfile("/data3/tabish/vert-MEIC-emis/APEC-wrfchemi/wrfchemi_00z_d03_total_Nov_8lev_0.5BTHso2_so4_allnormal.nc
<http://wrfchemi_00z_d03_total_Nov_8lev_0.5BTHso2_so4_allnormal.nc>","r")a3_12z_Nov
=
addfile("/data3/tabish/vert-MEIC-emis/APEC-wrfchemi/wrfchemi_12z_d03_total_Nov_8lev_0.5BTHso2_so4_allnormal.nc
<http://wrfchemi_12z_d03_total_Nov_8lev_0.5BTHso2_so4_allnormal.nc>","r");FUNCTION
TO SUM ACROSS 8 VERT LEVELS THEN AVERAGE OVER
LAT,LONG,TIMEundef("avgsum")function avgsum(var:string)begin var_a1_00z_Oct
= a1_00z_Oct ->var var_a1_00z_Oct_vsum =
dim_sum_n_Wrap(var_a1_00z_Oct,1) var_a1_00z_Oct_vsum_snavg =
dim_avg_n_Wrap(var_a1_00z_Oct_vsum,1) var_a1_00z_Oct_vsum_snweavg =
dim_avg_n_Wrap(var_a1_00z_Oct_vsum_snavg,1) var_a1_00z_Oct_vsum_snwetavg =
dim_avg_n_Wrap(var_a1_00z_Oct_vsum_snweavg,0) var_a1_12z_Oct = a1_12z_Oct
->var var_a1_12z_Oct_vsum =
dim_sum_n_Wrap(var_a1_12z_Oct,1) var_a1_12z_Oct_vsum_snavg =
dim_avg_n_Wrap(var_a1_12z_Oct_vsum,1) var_a1_12z_Oct_vsum_snweavg =
dim_avg_n_Wrap(var_a1_12z_Oct_vsum_snavg,1) var_a1_12z_Oct_vsum_snwetavg =
dim_avg_n_Wrap(var_a1_12z_Oct_vsum_snweavg,0) result =
(var_a1_00z_Oct_vsum_snwetavg +
var_a1_12z_Oct_vsum_snwetavg)/2.0 return(result)endprint(avgsum("E_CO"))end*

I am getting this error:
fatal:["Execute.c":6397]:variable (var) is not in file (a1_00z_Oct)
fatal:["Execute.c":8640]:Execute: Error occurred at or near line 27 in file
emistotals.ncl

fatal:["Execute.c":8640]:Execute: Error occurred at or near line 44 in file
emistotals.ncl

Tabish
~


*Tabish U Ansari*

*Postdoctoral Researcher *

*Centre for Climate and Air Pollution Studies (C-CAPS)*
*School of Physics, NUI-Galway**, Ireland*
*ResearchGate: https://www.researchgate.net/profile/Tabish_Ansari
<https://www.researchgate.net/profile/Tabish_Ansari>*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20200220/11b12b7b/attachment.html>


More information about the ncl-talk mailing list