Scheduled Downtime
On Tuesday 24 October 2023 @ 5pm MT the forums will be in read only mode in preparation for the downtime. On Wednesday 25 October 2023 @ 5am MT, this website will be down for maintenance and expected to return online later in the morning.
Normal Operations
The forums are back online with normal operations. If you notice any issues or errors related to the forums, please reach out to help@ucar.edu

Impulse Emission - how to define an instantaneous emission in ext_frc_specifier

AshaJain

Asha Jain
New Member
Hello,

I am interested in modeling discrete events that generate instantaneous emissions at altitude. I want to create impulse emissions which occur at a single instance, rather than over time. For context, I need to combine this emission with other emissions that use the 'cyclical' parameter.

I don't understand how to create an impulse emission. From what I understand, it seems that WACCM/CESM interpolates emissions between dates. I understand this interpolation will create a linearly increasing emission for each time step between those two dates such that by the time the model reaches the second date, the model reaches the second emission value. So, if my emission file describes two impulse emissions, the model will actually create a linear line between the two emission values and cause a continuous emission between those two dates.

Is there a way to prevent interpolation between two dates? I am also concerned about how to make an instantaneous emission, since all the netcdf emission files I have seen use units of atoms/cm^3/s. Is there a way to define an emission occurring at a single time step?

Thank you for the help!

Best,

Asha Jain
 

AshaJain

Asha Jain
New Member
Clarification - I am interested in creating a step-wise emission that last for a single time step in the model (which is set to 30 mins in my model). I believe if I start the emission slightly before a time step (for example at t=29min), then at t=30mins, the model will produce a step emission. But I do not understand how to turn off this emission at t=60 min. If I were to give another emission time slightly after a tilmestep (ie at 61 mins) with the emission value of 0, I don't understand if the model will catch this zero at t=60min or at t=90mins.
 

mmills

CSEG and Liaisons
Staff member
Hello,

I am interested in modeling discrete events that generate instantaneous emissions at altitude. I want to create impulse emissions which occur at a single instance, rather than over time. For context, I need to combine this emission with other emissions that use the 'cyclical' parameter.

I don't understand how to create an impulse emission. From what I understand, it seems that WACCM/CESM interpolates emissions between dates. I understand this interpolation will create a linearly increasing emission for each time step between those two dates such that by the time the model reaches the second date, the model reaches the second emission value. So, if my emission file describes two impulse emissions, the model will actually create a linear line between the two emission values and cause a continuous emission between those two dates.

Is there a way to prevent interpolation between two dates? I am also concerned about how to make an instantaneous emission, since all the netcdf emission files I have seen use units of atoms/cm^3/s. Is there a way to define an emission occurring at a single time step?

Thank you for the help!

Best,

Asha Jain
You might want to look at some of the volcanic emissions scripts that I have here:

p/codescripts/code - Revision 1716: /trunk/ncl/emission

The simplest of these is probably createSingleEruptionExtFrc.ncl

For each volcanic eruption, there are 4 values of the variables date and datesec, as shown in this section of the script:

date = (/ 10000115, EruptionStartYYYYMMDD, EruptionStartYYYYMMDD, EruptionEndYYYYMMDD, EruptionEndYYYYMMDD, 21001215 /)
date!0="time"
date@long_name = "date"
date@units = "YYYYMMDD"
date@standard_name = "date"

datesec = (/ 1, 3600*EruptionStartHour-1, 3600*EruptionStartHour, 3600*EruptionEndHour-1, 3600*EruptionEndHour, 3600*24-1 /)
datesec!0="time"
datesec@long_name = "datesec" ;
datesec@units = "seconds since midnight" ;
datesec@standard_name = "datesec" ;

These arrays actually have 6 values, since we also include an "initial" time far before the first date in the model run, and an "end" tim far after the end of the model run.

The values of the emissions will be zero for the first two and last two of these 6 times. The second time is one second prior to the timestep at which you want the emission to start.

The third and fourth times will have the emissions that you want for this impulse. The fourth time is one second prior to the timestep when you want emissions turned off again.
 

mmills

CSEG and Liaisons
Staff member
I have put the template file used by these scripts here:

ftp://nitrogen.acom.ucar.edu/user/mmills/inputdata/grids
 
Top