Ignore:
Timestamp:
Aug 13, 2020 9:57:07 AM (4 years ago)
Author:
suehring
Message:

Virtual measurement output: change content of attribute data_content, minor changes in long-name attributes and global attributes to be in agreement with (UC)2 data standard; driver creation config files: remove dummy input strings and change default values (to be in agreement with (UC)2 data standard); palm_csd_netcdf_interface: correct wrong false_easting attribute in crs variable

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/virtual_measurement_mod.f90

    r4536 r4641  
    2020! Current revisions:
    2121! -----------------
    22 ! 
    23 ! 
     22!
     23!
    2424! Former revisions:
    2525! -----------------
    2626! $Id$
     27! - To be in agreement with (UC)2 data standard do not list the measured variables in attribute
     28!   data_content but simply set 'airmeteo'
     29! - Bugfix in setting long_name attribute for variable t_va and for global attribute creation_time
     30!
     31! 4536 2020-05-17 17:24:13Z raasch
    2732! bugfix: preprocessor directive adjusted
    2833!
     
    542547          output_variable%units         = 'degree_C'
    543548
    544        CASE ( 'tva' )
     549       CASE ( 't_va' )
    545550          output_variable%long_name     = 'virtual acoustic temperature'
    546551          output_variable%units         = 'K'
     
    769774          output_variable%standard_name = 'mole_fraction_of_nitrogen_dioxide_in_air'
    770775          output_variable%units         = 'ppm' !'mol mol-1'
     776
     777       CASE ( 'ncaa' )
     778          output_variable%long_name     = 'number concentration of ambient aerosol particles in air'
     779          output_variable%standard_name = 'number_concentration_of_ambient_aerosol_particles_in_air'
     780          output_variable%units         = 'm-3' !'mol mol-1'
    771781
    772782       CASE ( 'tro3'  )
     
    984994          vmea(l)%var_atts(ll)%name = TRIM( measured_variables(ll) )
    985995
    986           vmea(l)%data_content = TRIM( vmea(l)%data_content ) // " " //                            &
    987                                  TRIM( vmea(l)%var_atts(ll)%name )
     996!           vmea(l)%data_content = TRIM( vmea(l)%data_content ) // " " //                            &
     997!                                  TRIM( vmea(l)%var_atts(ll)%name )
    988998       ENDDO
    989999!
     
    13971407                                   value = input_file_atts%author )
    13981408       return_value = dom_def_att( vmea(l)%nc_filename, attribute_name = 'contact_person',         &
    1399                                    value = input_file_atts%contact_person )
     1409                                   value = input_file_atts%author )
    14001410       return_value = dom_def_att( vmea(l)%nc_filename, attribute_name = 'iop',                    &
    14011411                                   value = input_file_atts%campaign )
     
    14241434                                   value = input_file_atts%creation_time )
    14251435       return_value = dom_def_att( vmea(l)%nc_filename, attribute_name = 'version', value = 1 ) !input_file_atts%version
    1426        return_value = dom_def_att( vmea(l)%nc_filename, attribute_name = 'creation_time',          &
    1427                                    value = TRIM( vmea(l)%site ) )
    14281436       return_value = dom_def_att( vmea(l)%nc_filename, attribute_name = 'Conventions',            &
    14291437                                   value = input_file_atts%conventions )
     
    19321940    INTEGER(iwp)       ::  t_ind         !< time index
    19331941
     1942    REAL(wp), DIMENSION(:), ALLOCATABLE           ::  dum_lat                   !< transformed geographical coordinate (latitude)
     1943    REAL(wp), DIMENSION(:), ALLOCATABLE           ::  dum_lon                   !< transformed geographical coordinate (longitude)
    19341944    REAL(wp), DIMENSION(:), ALLOCATABLE           ::  oro_rel                   !< relative altitude of model surface
    19351945    REAL(wp), DIMENSION(:), POINTER               ::  output_values_1d_pointer  !< pointer for 1d output array
     
    19771987                                        bounds_start = (/vmea(l)%start_coord_a/),                  &
    19781988                                        bounds_end   = (/vmea(l)%end_coord_a  /) )
     1989!
     1990!--       Output of longitude and latitude coordinate. Before output, convert it.
     1991          ALLOCATE( dum_lat(1:vmea(l)%ns) )
     1992          ALLOCATE( dum_lon(1:vmea(l)%ns) )
     1993
     1994          DO  n = 1, vmea(l)%ns
     1995             CALL convert_utm_to_geographic( crs_list,                                             &
     1996                                             init_model%origin_x                                   &
     1997                                           + REAL( vmea(l)%i(n) + 0.5_wp, KIND = wp ) * dx         &
     1998                                           * COS( init_model%rotation_angle * pi / 180.0_wp )      &
     1999                                           + REAL( vmea(l)%j(n) + 0.5_wp, KIND = wp ) * dy         &
     2000                                           * SIN( init_model%rotation_angle * pi / 180.0_wp ),     &
     2001                                             init_model%origin_y                                   &
     2002                                           - REAL( vmea(l)%i(n) + 0.5_wp, KIND = wp ) * dx         &
     2003                                           * SIN( init_model%rotation_angle * pi / 180.0_wp )      &
     2004                                           + REAL( vmea(l)%j(n) + 0.5_wp, KIND = wp ) * dy         &
     2005                                           * COS( init_model%rotation_angle * pi / 180.0_wp ),     &
     2006                                             dum_lon(n), dum_lat(n) )
     2007          ENDDO
     2008
     2009          output_values_1d_target = dum_lat
     2010          output_values_1d_pointer => output_values_1d_target
     2011          return_value = dom_write_var( vmea(l)%nc_filename, 'lat',                                &
     2012                                        values_realwp_1d = output_values_1d_pointer,               &
     2013                                        bounds_start = (/vmea(l)%start_coord_a/),                  &
     2014                                        bounds_end   = (/vmea(l)%end_coord_a  /) )
     2015
     2016          output_values_1d_target = dum_lon
     2017          output_values_1d_pointer => output_values_1d_target
     2018          return_value = dom_write_var( vmea(l)%nc_filename, 'lon',                                &
     2019                                        values_realwp_1d = output_values_1d_pointer,               &
     2020                                        bounds_start = (/vmea(l)%start_coord_a/),                  &
     2021                                        bounds_end   = (/vmea(l)%end_coord_a  /) )
     2022          DEALLOCATE( dum_lat )
     2023          DEALLOCATE( dum_lon )
    19792024!
    19802025!--       Output of relative height coordinate.
     
    20462091!--          Output of Northing coordinate. Before output, recalculate NUTM.
    20472092             output_values_1d_target = init_model%origin_y                                         &
    2048                - REAL( vmea(l)%i(1:vmea(l)%ns_soil) + 0.5_wp, KIND = wp ) * dx                     &
     2093               - REAL( vmea(l)%i_soil(1:vmea(l)%ns_soil) + 0.5_wp, KIND = wp ) * dx                &
    20492094               * SIN( init_model%rotation_angle * pi / 180.0_wp )                                  &
    2050                + REAL( vmea(l)%j(1:vmea(l)%ns_soil) + 0.5_wp, KIND = wp ) * dy                     &
     2095               + REAL( vmea(l)%j_soil(1:vmea(l)%ns_soil) + 0.5_wp, KIND = wp ) * dy                &
    20512096               * COS( init_model%rotation_angle * pi / 180.0_wp )
    20522097
     
    20562101                                           bounds_start = (/vmea(l)%start_coord_s/),               &
    20572102                                           bounds_end   = (/vmea(l)%end_coord_s  /) )
     2103!
     2104!--          Output of longitude and latitude coordinate. Before output, convert it.
     2105             ALLOCATE( dum_lat(1:vmea(l)%ns_soil) )
     2106             ALLOCATE( dum_lon(1:vmea(l)%ns_soil) )
     2107
     2108             DO  n = 1, vmea(l)%ns_soil
     2109                CALL convert_utm_to_geographic( crs_list,                                          &
     2110                                                init_model%origin_x                                &
     2111                                              + REAL( vmea(l)%i_soil(n) + 0.5_wp, KIND = wp ) * dx &
     2112                                              * COS( init_model%rotation_angle * pi / 180.0_wp )   &
     2113                                              + REAL( vmea(l)%j_soil(n) + 0.5_wp, KIND = wp ) * dy &
     2114                                              * SIN( init_model%rotation_angle * pi / 180.0_wp ),  &
     2115                                                init_model%origin_y                                &
     2116                                              - REAL( vmea(l)%i_soil(n) + 0.5_wp, KIND = wp ) * dx &
     2117                                              * SIN( init_model%rotation_angle * pi / 180.0_wp )   &
     2118                                              + REAL( vmea(l)%j_soil(n) + 0.5_wp, KIND = wp ) * dy &
     2119                                              * COS( init_model%rotation_angle * pi / 180.0_wp ),  &
     2120                                                dum_lon(n), dum_lat(n) )
     2121             ENDDO
     2122
     2123             output_values_1d_target = dum_lat
     2124             output_values_1d_pointer => output_values_1d_target
     2125             return_value = dom_write_var( vmea(l)%nc_filename, 'lat_soil',                        &
     2126                                           values_realwp_1d = output_values_1d_pointer,            &
     2127                                           bounds_start = (/vmea(l)%start_coord_s/),               &
     2128                                           bounds_end   = (/vmea(l)%end_coord_s  /) )
     2129
     2130             output_values_1d_target = dum_lon
     2131             output_values_1d_pointer => output_values_1d_target
     2132             return_value = dom_write_var( vmea(l)%nc_filename, 'lon_soil',                        &
     2133                                           values_realwp_1d = output_values_1d_pointer,            &
     2134                                           bounds_start = (/vmea(l)%start_coord_s/),               &
     2135                                           bounds_end   = (/vmea(l)%end_coord_s  /) )
     2136             DEALLOCATE( dum_lat )
     2137             DEALLOCATE( dum_lon )
    20582138!
    20592139!--          Output of relative height coordinate.
     
    28562936!
    28572937!--           More will follow ...
    2858 
     2938              CASE ( 'ncaa' )
    28592939!
    28602940!--           No match found - just set a fill value
Note: See TracChangeset for help on using the changeset viewer.