concoutput_netcdf Subroutine

public subroutine concoutput_netcdf(itime, outnum, gridtotalunc, wetgridtotalunc, drygridtotalunc)

Uses


                                                                        *
 Output of the concentration grid and the concentrations.               *
                                                                        *
 Author: A. Stohl                                                       *
                                                                        *
 24 May 1995                                                            *
                                                                        *
 13 April 1999, Major update: if output size is smaller, dump output in *
                sparse matrix format; additional output of uncertainty  *
                                                                        *
 05 April 2000, Major update: output of age classes; output for backward*
                runs is time spent in grid cell times total mass of     *
                species.                                                *
                                                                        *
 17 February 2002, Appropriate dimensions for backward and forward runs *
                   are now specified in module par_mod                  *
                                                                        *
 June 2006, write grid in sparse matrix with a single write command     *
            in order to save disk space                                 *
                                                                        *
 2008 new sparse matrix format                                          *
                                                                        *
 February 2010, Dominik Brunner, Empa                                   *
                Adapted for COSMO                                       *
                Remark: calculation of density could be improved.       *
                Currently, it is calculated for the lower left corner   *
                of each output grid cell rather than for its center.    *
                Furthermore, the average density could be calculated    *
                from the difference in pressure at the top and bottom   *
                of each cell rather than by interpolation.              *
                                                                        *
 April 2013, Dominik Brunner, Empa                                      *
                Adapted for netcdf output                               *
                                                                        *
 2022, Lucie Bakels:                                                    *
       - OpenMP parallelisation                                         *
       - Receptor output to NetCDF instead of binary format             *
                                                                        *
 January, 2024, Rona Thompson                                           *
       - removed output of receptors (new module)                       *
       - introduced option for LCM output                               *
                                                                        *

                                                                        *

Variables: * outnum number of samples * ncells number of cells with non-zero concentrations * sparse .true. if in sparse matrix format, else .false. * tot_mu 1 for forward, initial mass mixing ration for backw. runs * *




Compute air density: brd134: we now take into account whether we are in the mother or in a nested domain (before only from mother domain) Determine center altitude of output layer, and interpolate density data to that altitude

Note: llcmoutput = true: grid is mass_spec/mass_air
for iout 1,3, or 5 multiply by rho for iout 2 multiply by 1 llcmoutput = false: grid is mass_spec/V for iout 1,3, or 5 multiply by 1 for iout 2 multiply by 1/rho



Determine the standard deviation of the mean concentration or mixing ratio (uncertainty of the output) and the dry and wet deposition



Generate output: may be in concentration (ng/m3) or in mixing ratio (ppt) or both Output the position and the values alternated multiplied by 1 or -1, first line is number of values, number of positions For backward simulations, the unit is seconds, stored in grid_time



$OMP BARRIER $OMP SINGLE




Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: itime
real, intent(in) :: outnum
real, intent(out) :: gridtotalunc
real(kind=dep_prec), intent(out) :: wetgridtotalunc
real(kind=dep_prec), intent(out) :: drygridtotalunc