Changeset 4641 for palm/trunk


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

Location:
palm/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SCRIPTS/.csd.config.default

    r4481 r4641  
    2020# Current revisions:
    2121# -----------------
    22 # 
    23 # 
     22#
     23#
    2424# Former revisions:
    2525# -----------------
    2626# $Id$
     27# Change default values for some global attributes to be compatible with
     28# (UC)2 data standard
     29#
     30# 4481 2020-03-31 18:55:54Z maronga
    2731# Updated configuration
    2832#
     
    4246acronym = LUHimuk
    4347comment = created with palm_csd
    44 data_content = text
    45 dependencies = text
    46 keywords = text
    47 source = text
    48 campaign = text
    49 location = Berlin
     48data_content =
     49dependencies =
     50keywords =
     51source =
     52campaign =
     53location = B
    5054site = Berlin Mitte
    51 institution = Institute of Meteorology and Climatology, Leibniz University Hannover
     55institution = Leibniz University Hannover, Institute of Meterology and Climatology
    5256palm_version = 6.0
    5357rotation_angle = 0.0
    54 references = text
     58references =
    5559
    5660
  • palm/trunk/SCRIPTS/.cvd.config.default

    r4400 r4641  
    2121# Current revisions:
    2222# -----------------
    23 # 
    24 # 
     23#
     24#
    2525# Former revisions:
    2626# -----------------
    2727# $Id$
     28# Change default values for some global attributes to be compatible with
     29# (UC)2 data standard
     30#
     31# 4400 2020-02-10 20:32:41Z suehring
    2832# Initial revision
    2933#
     
    4751contact_person = Suehring, Matthias, suehring@muk.uni-hannover.de
    4852acronym = LUHimuk
    49 comment = created with palm_cvd
     53comment =
    5054data_content = measurement coordinates
    51 dependencies = none
     55dependencies =
    5256keywords = virtual measurement setup file
    53 source = none
     57source =
    5458campaign = winter iop 1
    55 location = Berlin
     59location = B
    5660site = Ernst Reuter Platz
    57 institution = Institute of Meteorology and Climatology, Leibniz University Hannover
     61institution = Leibniz UniversitÀt Hannover, Institute of Meterology and Climatology # for (UC)2 conform in/output please follow guidelines in table A3
    5862palm_version = 6.0
    59 references = none
     63references =
    6064
    6165# Section for observational input data. If non observational input data is available
  • palm/trunk/SCRIPTS/palm_csd_files/palm_csd_netcdf_interface.py

    r4481 r4641  
    2020# Current revisions:
    2121# -----------------
    22 # 
    23 # 
     22#
     23#
    2424# Former revisions:
    2525# -----------------
    2626# $Id: palm_csd_netcdf_interface.py 3668 2019-01-14 12:49:24Z maronga $
     27# Correct wrong false_easting attribute in crs variable
     28#
     29# 3668 2019-01-14 12:49:24Z maronga
    2730# Some improvements and new routines
    2831#
     
    334337   temp.scale_factor_at_central_meridian = 0.9996
    335338   temp.latitude_of_projection_origin = 0.0
    336    temp.false_easting = 50000.0
     339   temp.false_easting = 500000.0
    337340   temp.false_northing = 0.0
    338341   temp.units = "m"
  • palm/trunk/SOURCE/netcdf_data_input_mod.f90

    r4507 r4641  
    2020! Current revisions:
    2121! -----------------
    22 ! 
    23 ! 
     22!
     23!
    2424! Former revisions:
    2525! -----------------
    2626! $Id$
     27! To follow (UC)2 standard, change default of attribute data_content
     28!
     29! 4507 2020-04-22 18:21:45Z gronemeier
    2730! - bugfix: check terrain height for fill values directly after reading
    2831! - changes:
     
    520523!-- attribute.
    521524    TYPE global_atts_type
    522        CHARACTER(LEN=200) ::  acronym = ' '                      !< acronym of institution
    523        CHARACTER(LEN=7)   ::  acronym_char = 'acronym'           !< name of attribute
    524        CHARACTER(LEN=200) ::  author  = ' '                      !< first name, last name, email adress
    525        CHARACTER(LEN=6)   ::  author_char = 'author'             !< name of attribute
    526        CHARACTER(LEN=200) ::  campaign = 'PALM-4U'               !< name of campaign
    527        CHARACTER(LEN=8)   ::  campaign_char = 'campaign'         !< name of attribute
    528        CHARACTER(LEN=200) ::  comment = ' '                      !< comment to data
    529        CHARACTER(LEN=7)   ::  comment_char = 'comment'           !< name of attribute
    530        CHARACTER(LEN=200) ::  contact_person = ' '               !< first name, last name, email adress
     525       CHARACTER(LEN=200) ::  acronym = ' '                           !< acronym of institution
     526       CHARACTER(LEN=7)   ::  acronym_char = 'acronym'                !< name of attribute
     527       CHARACTER(LEN=200) ::  author  = ' '                           !< first name, last name, email adress
     528       CHARACTER(LEN=6)   ::  author_char = 'author'                  !< name of attribute
     529       CHARACTER(LEN=200) ::  campaign = 'PALM-4U'                    !< name of campaign
     530       CHARACTER(LEN=8)   ::  campaign_char = 'campaign'              !< name of attribute
     531       CHARACTER(LEN=200) ::  comment = ' '                           !< comment to data
     532       CHARACTER(LEN=7)   ::  comment_char = 'comment'                !< name of attribute
     533       CHARACTER(LEN=200) ::  contact_person = ' '                    !< first name, last name, email adress
    531534       CHARACTER(LEN=14)  ::  contact_person_char = 'contact_person'  !< name of attribute
    532        CHARACTER(LEN=200) ::  conventions = 'CF-1.7'             !< netCDF convention
    533        CHARACTER(LEN=11)  ::  conventions_char = 'Conventions'   !< name of attribute
    534        CHARACTER(LEN=23 ) ::  creation_time = ' '                !< creation time of data set
    535        CHARACTER(LEN=13)  ::  creation_time_char = 'creation_time'  !< name of attribute
    536        CHARACTER(LEN=200) ::  data_content = ' '                 !< content of data set
    537        CHARACTER(LEN=12)  ::  data_content_char = 'data_content' !< name of attribute
    538        CHARACTER(LEN=200) ::  dependencies = ' '                 !< dependencies of data set
    539        CHARACTER(LEN=12)  ::  dependencies_char = 'dependencies' !< name of attribute
    540        CHARACTER(LEN=200) ::  history = ' '                      !< information about data processing
    541        CHARACTER(LEN=7)   ::  history_char = 'history'           !< name of attribute
    542        CHARACTER(LEN=200) ::  institution = ' '                  !< name of responsible institution
    543        CHARACTER(LEN=11)  ::  institution_char = 'institution'   !< name of attribute
    544        CHARACTER(LEN=200) ::  keywords = ' '                     !< keywords of data set
    545        CHARACTER(LEN=8)   ::  keywords_char = 'keywords'         !< name of attribute
    546        CHARACTER(LEN=200) ::  licence = ' '                      !< licence of data set
    547        CHARACTER(LEN=7)   ::  licence_char = 'licence'           !< name of attribute
    548        CHARACTER(LEN=200) ::  location = ' '                     !< place which refers to data set
    549        CHARACTER(LEN=8)   ::  location_char = 'location'         !< name of attribute
    550        CHARACTER(LEN=10)  ::  origin_lat_char = 'origin_lat'     !< name of attribute
    551        CHARACTER(LEN=10)  ::  origin_lon_char = 'origin_lon'     !< name of attribute
    552        CHARACTER(LEN=23 ) ::  origin_time = '2000-01-01 00:00:00 +00'  !< reference time
    553        CHARACTER(LEN=11)  ::  origin_time_char = 'origin_time'   !< name of attribute
    554        CHARACTER(LEN=8)   ::  origin_x_char = 'origin_x'         !< name of attribute
    555        CHARACTER(LEN=8)   ::  origin_y_char = 'origin_y'         !< name of attribute
    556        CHARACTER(LEN=8)   ::  origin_z_char = 'origin_z'         !< name of attribute
    557        CHARACTER(LEN=12)  ::  palm_version_char = 'palm_version' !< name of attribute
    558        CHARACTER(LEN=200) ::  references = ' '                   !< literature referring to data set
    559        CHARACTER(LEN=10)  ::  references_char = 'references'     !< name of attribute
     535       CHARACTER(LEN=200) ::  conventions = 'CF-1.7'                  !< netCDF convention
     536       CHARACTER(LEN=11)  ::  conventions_char = 'Conventions'        !< name of attribute
     537       CHARACTER(LEN=23 ) ::  creation_time = ' '                     !< creation time of data set
     538       CHARACTER(LEN=13)  ::  creation_time_char = 'creation_time'    !< name of attribute
     539       CHARACTER(LEN=200) ::  data_content = 'airmeteo'               !< content of data set
     540       CHARACTER(LEN=12)  ::  data_content_char = 'data_content'      !< name of attribute
     541       CHARACTER(LEN=200) ::  dependencies = ' '                      !< dependencies of data set
     542       CHARACTER(LEN=12)  ::  dependencies_char = 'dependencies'      !< name of attribute
     543       CHARACTER(LEN=200) ::  history = ' '                           !< information about data processing
     544       CHARACTER(LEN=7)   ::  history_char = 'history'                !< name of attribute
     545       CHARACTER(LEN=200) ::  institution = ' '                       !< name of responsible institution
     546       CHARACTER(LEN=11)  ::  institution_char = 'institution'        !< name of attribute
     547       CHARACTER(LEN=200) ::  keywords = ' '                          !< keywords of data set
     548       CHARACTER(LEN=8)   ::  keywords_char = 'keywords'              !< name of attribute
     549       CHARACTER(LEN=200) ::  licence = ' '                           !< licence of data set
     550       CHARACTER(LEN=7)   ::  licence_char = 'licence'                !< name of attribute
     551       CHARACTER(LEN=200) ::  location = ' '                          !< place which refers to data set
     552       CHARACTER(LEN=8)   ::  location_char = 'location'              !< name of attribute
     553       CHARACTER(LEN=10)  ::  origin_lat_char = 'origin_lat'          !< name of attribute
     554       CHARACTER(LEN=10)  ::  origin_lon_char = 'origin_lon'          !< name of attribute
     555       CHARACTER(LEN=23 ) ::  origin_time = '2000-01-01 00:00:00 +00' !< reference time
     556       CHARACTER(LEN=11)  ::  origin_time_char = 'origin_time'        !< name of attribute
     557       CHARACTER(LEN=8)   ::  origin_x_char = 'origin_x'              !< name of attribute
     558       CHARACTER(LEN=8)   ::  origin_y_char = 'origin_y'              !< name of attribute
     559       CHARACTER(LEN=8)   ::  origin_z_char = 'origin_z'              !< name of attribute
     560       CHARACTER(LEN=12)  ::  palm_version_char = 'palm_version'      !< name of attribute
     561       CHARACTER(LEN=200) ::  references = ' '                        !< literature referring to data set
     562       CHARACTER(LEN=10)  ::  references_char = 'references'          !< name of attribute
    560563       CHARACTER(LEN=14)  ::  rotation_angle_char = 'rotation_angle'  !< name of attribute
    561        CHARACTER(LEN=200) ::  site = ' '                         !< name of model domain
    562        CHARACTER(LEN=4)   ::  site_char = 'site'                 !< name of attribute
    563        CHARACTER(LEN=200) ::  source = ' '                       !< source of data set
    564        CHARACTER(LEN=6)   ::  source_char = 'source'             !< name of attribute
    565        CHARACTER(LEN=200) ::  title = ' '                        !< title of data set
    566        CHARACTER(LEN=5)   ::  title_char = 'title'               !< name of attribute
    567        CHARACTER(LEN=7)   ::  version_char = 'version'           !< name of attribute
     564       CHARACTER(LEN=200) ::  site = ' '                              !< name of model domain
     565       CHARACTER(LEN=4)   ::  site_char = 'site'                      !< name of attribute
     566       CHARACTER(LEN=200) ::  source = ' '                            !< source of data set
     567       CHARACTER(LEN=6)   ::  source_char = 'source'                  !< name of attribute
     568       CHARACTER(LEN=200) ::  title = ' '                             !< title of data set
     569       CHARACTER(LEN=5)   ::  title_char = 'title'                    !< name of attribute
     570       CHARACTER(LEN=7)   ::  version_char = 'version'                !< name of attribute
    568571
    569572       INTEGER(iwp) ::  version              !< version of data set
  • 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.