Ignore:
Timestamp:
Jan 30, 2018 2:12:54 PM (4 years ago)
Author:
suehring
Message:

Nesting for chemical species implemented; Bugfix passive scalar boundary condition after anterpolation; Timeseries output of surface temperature; Enable initialization of 3D topography (was commented out so far)

File:
1 edited

Legend:

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

    r2772 r2773  
    2525! -----------------
    2626! $Id$
     27! - Enable initialization with 3D topography.
     28! - Move check for correct initialization in nesting mode to check_parameters.
     29!
     30! 2772 2018-01-29 13:10:35Z suehring
    2731! Initialization of simulation independent on land-surface model.
    2832!
     
    16991703!--             If available, also read 3D building information. If both are
    17001704!--             available, use 3D information.
    1701 !                 IF ( check_existence( var_names, 'buildings_3D' ) )  THEN
    1702 !                    buildings_f%from_file = .TRUE.
    1703 !                    CALL get_attribute( id_topo, char_lod, buildings_f%lod,     &
    1704 !                                        .FALSE., 'buildings_3D' )     
    1705 !
    1706 !                    CALL get_attribute( id_topo, char_fill,                     &
    1707 !                                        buildings_f%fill2,                      &
    1708 !                                        .FALSE., 'buildings_3D' )
    1709 !
    1710 !                    CALL get_dimension_length( id_topo, buildings_f%nz, 'z' )
    1711 !
    1712 !                    IF ( buildings_f%lod == 2 )  THEN
    1713 !                       ALLOCATE( buildings_f%var_3d(nzb:buildings_f%nz,         &
    1714 !                                                    nys:nyn,nxl:nxr) )
    1715 !                       buildings_f%var_3d = 0
    1716 ! !
    1717 ! !--                   Read data PE-wise. Read yz-slices.
    1718 !                       DO  i = nxl, nxr
    1719 !                          DO  j = nys, nyn
    1720 !                             CALL get_variable( id_topo, 'buildings_3D',        &
    1721 !                                                i, j,                           &
    1722 !                                                buildings_f%var_3d(:,j,i) )
    1723 !                          ENDDO
    1724 !                       ENDDO
    1725 !                    ELSE
    1726 !                       message_string = 'NetCDF attribute lod ' //              &
    1727 !                                        '(level of detail) is not set properly.'
    1728 !                       CALL message( 'netcdf_data_input_mod', 'PA0999',         &
    1729 !                                      1, 2, 0, 6, 0 )
    1730 !                    ENDIF
    1731 !                 ENDIF
     1705                IF ( check_existence( var_names, 'buildings_3D' ) )  THEN
     1706                   buildings_f%from_file = .TRUE.
     1707                   CALL get_attribute( id_topo, char_lod, buildings_f%lod,     &
     1708                                       .FALSE., 'buildings_3D' )     
     1709
     1710                   CALL get_attribute( id_topo, char_fill,                     &
     1711                                       buildings_f%fill2,                      &
     1712                                       .FALSE., 'buildings_3D' )
     1713
     1714                   CALL get_dimension_length( id_topo, buildings_f%nz, 'z' )
     1715
     1716                   IF ( buildings_f%lod == 2 )  THEN
     1717                      ALLOCATE( buildings_f%var_3d(nzb:buildings_f%nz,         &
     1718                                                   nys:nyn,nxl:nxr) )
     1719                      buildings_f%var_3d = 0
     1720!
     1721!--                   Read data PE-wise. Read yz-slices.
     1722                      DO  i = nxl, nxr
     1723                         DO  j = nys, nyn
     1724                            CALL get_variable( id_topo, 'buildings_3D',        &
     1725                                               i, j,                           &
     1726                                               buildings_f%var_3d(:,j,i) )
     1727                         ENDDO
     1728                      ENDDO
     1729                   ELSE
     1730                      message_string = 'NetCDF attribute lod ' //              &
     1731                                       '(level of detail) is not set properly.'
     1732                      CALL message( 'netcdf_data_input_mod', 'PA0999',         &
     1733                                     1, 2, 0, 6, 0 )
     1734                   ENDIF
     1735                ENDIF
    17321736!
    17331737!--             Read building IDs and its FillValue attribute. Further required
     
    26912695           ONLY:  initializing_actions, forcing, message_string
    26922696
    2693        USE pmc_interface,                                                      &
    2694            ONLY:  nested_run
    2695 
    26962697       IMPLICIT NONE
    2697 
    2698        LOGICAL      ::  check_nest !< flag indicating if a check passed
    26992698
    27002699!
     
    27142713                           TRIM( coupling_char )
    27152714          CALL message( 'netcdf_data_input_mod', 'PA0430', 1, 2, 0, 6, 0 )
    2716        ENDIF
    2717 !
    2718 !--    In case of nested run assure that all domains are initialized the same
    2719 !--    way, i.e. if at least at one domain is initialized with soil and
    2720 !--    atmospheric data provided by COSMO, all domains must be initialized the
    2721 !--    same way, to assure that soil and atmospheric quantities are
    2722 !--    consistent.
    2723        IF ( nested_run )  THEN
    2724           check_nest = .TRUE.
    2725 #if defined( __parallel )
    2726           CALL MPI_ALLREDUCE( TRIM( initializing_actions ) == 'inifor',        &
    2727                               check_nest, 1, MPI_LOGICAL,                      &
    2728                               MPI_LAND, MPI_COMM_WORLD, ierr )
    2729 
    2730           IF ( TRIM( initializing_actions ) == 'inifor'  .AND.                 &
    2731                .NOT.  check_nest )  THEN
    2732              message_string = 'In case of nesting, if at least in one ' //     &
    2733                               'domain initializing_actions = inifor, '  //     &
    2734                               'all domains need to be initialized that way.'
    2735              CALL message( 'netcdf_data_input_mod', 'PA0430', 3, 2, 0, 6, 0 )
    2736           ENDIF
    2737 #endif
    27382715       ENDIF
    27392716
Note: See TracChangeset for help on using the changeset viewer.