The operational GFS currently parameterizes ozone production and destruction based on monthly mean coefficients (global_o3prdlos.f77
) provided by Naval Research Laboratory through CHEM2D chemistry model ([61]).
More...
Argument Table
local_name | standard_name | long_name | units | rank | type | kind | intent | optional |
ix | horizontal_dimension | horizontal dimension | count | 0 | integer | | in | F |
im | horizontal_loop_extent | horizontal loop extent | count | 0 | integer | | in | F |
levs | vertical_dimension | number of vertical layers | count | 0 | integer | | in | F |
ko3 | vertical_dimension_of_ozone_forcing_data | number of vertical layers in ozone forcing data | count | 0 | integer | | in | F |
dt | time_step_for_physics | physics time step | s | 0 | real | kind_phys | in | F |
oz | ozone_concentration_updated_by_physics | ozone concentration updated by physics | kg kg-1 | 2 | real | kind_phys | inout | F |
tin | air_temperature_updated_by_physics | updated air temperature | K | 2 | real | kind_phys | in | F |
po3 | natural_log_of_ozone_forcing_data_pressure_levels | natural log of ozone forcing data pressure levels | log(Pa) | 1 | real | kind_phys | in | F |
prsl | air_pressure | mid-layer pressure | Pa | 2 | real | kind_phys | in | F |
prdout | ozone_forcing | ozone forcing data | various | 3 | real | kind_phys | in | F |
pl_coeff | number_of_coefficients_in_ozone_forcing_data | number of coefficients in ozone forcing data | index | 0 | integer | | in | F |
delp | air_pressure_difference_between_midlayers | difference between mid-layer pressures | Pa | 2 | real | kind_phys | in | F |
ldiag3d | flag_diagnostics_3D | flag for calculating 3-D diagnostic fields | flag | 0 | logical | | in | F |
ozp | change_in_ozone_concentration | change in ozone concentration | kg kg-1 | 3 | real | kind_phys | inout | F |
me | mpi_rank | rank of the current MPI task | index | 0 | integer | | in | F |
errmsg | error_message | error message for error handling in CCPP | none | 0 | character | len=* | out | F |
errflg | error_flag | error flag for error handling in CCPP | flag | 0 | integer | | out | F |
GFS Ozone Physics Scheme General Algorithm
|
subroutine | ozphys::ozphys_run ( ix, im, levs, ko3, dt, oz, tin, po3, prsl, prdout, pl_coeff, delp, ldiag3d, ozp, me, errmsg, errflg) |
|
subroutine ozphys::ozphys_run |
( |
integer, intent(in) |
ix, |
|
|
integer, intent(in) |
im, |
|
|
integer, intent(in) |
levs, |
|
|
integer, intent(in) |
ko3, |
|
|
real(kind=kind_phys), intent(in) |
dt, |
|
|
real(kind=kind_phys), dimension(ix,levs), intent(inout) |
oz, |
|
|
real(kind=kind_phys), dimension(ix,levs), intent(in) |
tin, |
|
|
real(kind=kind_phys), dimension(ko3), intent(in) |
po3, |
|
|
real(kind=kind_phys), dimension(ix,levs), intent(in) |
prsl, |
|
|
real(kind=kind_phys), dimension(ix,ko3,pl_coeff), intent(in) |
prdout, |
|
|
integer, intent(in) |
pl_coeff, |
|
|
real(kind=kind_phys), dimension(ix,levs), intent(in) |
delp, |
|
|
logical, intent(in) |
ldiag3d, |
|
|
real(kind=kind_phys), dimension(ix,levs,pl_coeff), intent(inout) |
ozp, |
|
|
integer, intent(in) |
me, |
|
|
character(len=*), intent(out) |
errmsg, |
|
|
integer, intent(out) |
errflg |
|
) |
| |
- Calculate vertical integrated column ozone values.
- Apply vertically linear interpolation to the ozone coefficients.
- Calculate the 4 terms of prognostic ozone change during time dt:
- ozp(:,:,1) - Ozone production at model layers
- ozp(:,:,2) - Ozone tendency at model layers
- ozp(:,:,3) - Ozone production from temperature term at model layers
- ozp(:,:,4) - Ozone production from column ozone term at model layers