Ignore:
Timestamp:
Feb 14, 2020 10:04:39 AM (4 years ago)
Author:
gronemeier
Message:

write fill_value attribute in virtual-measurements module; enable character-array output in data-output module

File:
1 edited

Legend:

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

    r4232 r4408  
    2525! -----------------
    2626! $Id$
     27! Enable character-array output
     28!
     29! 4232 2019-09-20 09:34:22Z knoop
    2730! Bugfix: INCLUDE "mpif.h" must be placed after IMPLICIT NONE statement
    2831!
     
    502505               file_id, variable_id, bounds_start, value_counts, bounds_origin,        &
    503506               is_global,                                                              &
     507               values_char_0d,   values_char_1d,   values_char_2d,   values_char_3d,   &
    504508               values_int8_0d,   values_int8_1d,   values_int8_2d,   values_int8_3d,   &
    505509               values_int16_0d,  values_int16_1d,  values_int16_2d,  values_int16_3d,  &
     
    512516
    513517    CHARACTER(LEN=*), PARAMETER ::  routine_name = 'netcdf4_write_variable'  !< name of this routine
     518
     519    CHARACTER(LEN=1), POINTER,             INTENT(IN), OPTIONAL                   ::  values_char_0d  !< output variable
     520    CHARACTER(LEN=1), POINTER, CONTIGUOUS, INTENT(IN), OPTIONAL, DIMENSION(:)     ::  values_char_1d  !< output variable
     521    CHARACTER(LEN=1), POINTER, CONTIGUOUS, INTENT(IN), OPTIONAL, DIMENSION(:,:)   ::  values_char_2d  !< output variable
     522    CHARACTER(LEN=1), POINTER, CONTIGUOUS, INTENT(IN), OPTIONAL, DIMENSION(:,:,:) ::  values_char_3d  !< output variable
    514523
    515524    INTEGER              ::  d             !< loop index
     
    578587
    579588       ndims = SIZE( bounds_start )
     589
     590!
     591!--    character output
     592       IF ( PRESENT( values_char_0d ) )  THEN
     593          nc_stat = NF90_PUT_VAR( file_id, variable_id, (/ values_char_0d /), &
     594                                  start = bounds_start - bounds_origin + 1,   &
     595                                  count = value_counts )
     596       ELSEIF ( PRESENT( values_char_1d ) )  THEN
     597          nc_stat = NF90_PUT_VAR( file_id, variable_id, values_char_1d,     &
     598                                  start = bounds_start - bounds_origin + 1, &
     599                                  count = value_counts )
     600       ELSEIF ( PRESENT( values_char_2d ) )  THEN
     601          nc_stat = NF90_PUT_VAR( file_id, variable_id, values_char_2d,     &
     602                                  start = bounds_start - bounds_origin + 1, &
     603                                  count = value_counts )
     604       ELSEIF ( PRESENT( values_char_3d ) )  THEN
     605          nc_stat = NF90_PUT_VAR( file_id, variable_id, values_char_3d,     &
     606                                  start = bounds_start - bounds_origin + 1, &
     607                                  count = value_counts )
    580608!
    581609!--    8bit integer output
    582        IF ( PRESENT( values_int8_0d ) )  THEN
     610       ELSEIF ( PRESENT( values_int8_0d ) )  THEN
    583611          nc_stat = NF90_PUT_VAR( file_id, variable_id, (/ values_int8_0d /), &
    584612                                  start = bounds_start - bounds_origin + 1,   &
Note: See TracChangeset for help on using the changeset viewer.