Changeset 4791


Ignore:
Timestamp:
Nov 23, 2020 11:44:26 AM (3 years ago)
Author:
suehring
Message:

Add possibility to initialize surface flux of passive scalar via static driver

File:
1 edited

Legend:

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

    r4783 r4791  
    2424! -----------------
    2525! $Id$
     26! Add possibility to initialize surface flux of passive scalar via static driver
     27!
     28! 4783 2020-11-13 13:58:45Z raasch
    2629! bugfix for reading restart data with MPI-I/O (does not work with blockwise I/O)
    2730!
     
    16041607       ENDIF
    16051608!
    1606 !--    Input surface sensible heat flux.
    1607        IF ( check_existence( vars_pids, 'qsws' ) )  THEN
    1608 !
    1609 !--       Read _FillValue attribute
    1610           CALL get_attribute( pids_id, char_fill, tmp_2d%fill,                 &
    1611                               .FALSE., 'qsws' )
    1612 !
    1613 !--       Read variable
    1614           CALL get_variable( pids_id, 'qsws', tmp_2d%var,                      &
    1615                              nxl, nxr, nys, nyn )
    1616 !
    1617 !--       Initialize latent heat flux. Note, qsws will be only initialized at default-type surfaces.
    1618 !--       At natural or urban qsws is implicitly initialized by the respective parameter lists.
    1619 !--       Initialize horizontal surface elements.
    1620           CALL init_single_surface_properties( surf_def_h(0)%qsws, tmp_2d%var, surf_def_h(0)%ns,   &
    1621                                                tmp_2d%fill, surf_def_h(0)%i, surf_def_h(0)%j )
    1622 !
    1623 !--       Initialize latent heat flux also at vertical surface elements.
    1624 !--       Note, the actual 2D input arrays are only defined on the subdomain. Therefore, pass the
    1625 !--       index arrays with their respective offset values.
    1626           DO  l = 0, 3
    1627              CALL init_single_surface_properties( surf_def_v(l)%qsws, tmp_2d%var, surf_def_v(l)%ns,&
    1628                                                   tmp_2d%fill, surf_def_v(l)%i+surf_def_v(l)%ioff, &
    1629                                                   surf_def_v(l)%j+surf_def_v(l)%joff )
    1630           ENDDO
    1631 
     1609!--    Input surface latent heat flux.
     1610       IF ( humidity )  THEN
     1611          IF ( check_existence( vars_pids, 'qsws' ) )  THEN
     1612!
     1613!--          Read _FillValue attribute
     1614             CALL get_attribute( pids_id, char_fill, tmp_2d%fill, .FALSE., 'qsws' )
     1615!
     1616!--          Read variable
     1617             CALL get_variable( pids_id, 'qsws', tmp_2d%var, nxl, nxr, nys, nyn )
     1618!
     1619!--          Initialize latent heat flux. Note, qsws will be only initialized at default-type surfaces.
     1620!--          At natural or urban qsws is implicitly initialized by the respective parameter lists.
     1621!--          Initialize horizontal surface elements.
     1622             CALL init_single_surface_properties( surf_def_h(0)%qsws, tmp_2d%var, surf_def_h(0)%ns,&
     1623                                                  tmp_2d%fill, surf_def_h(0)%i, surf_def_h(0)%j )
     1624!
     1625!--          Initialize latent heat flux also at vertical surface elements.
     1626!--          Note, the actual 2D input arrays are only defined on the subdomain. Therefore, pass the
     1627!--          index arrays with their respective offset values.
     1628             DO  l = 0, 3
     1629                CALL init_single_surface_properties( surf_def_v(l)%qsws, tmp_2d%var,               &
     1630                                                     surf_def_v(l)%ns, tmp_2d%fill,                &
     1631                                                     surf_def_v(l)%i+surf_def_v(l)%ioff,           &
     1632                                                     surf_def_v(l)%j+surf_def_v(l)%joff )
     1633             ENDDO
     1634
     1635          ENDIF
     1636       ENDIF
     1637!
     1638!--    Input passive scalar flux.
     1639       IF ( passive_scalar )  THEN
     1640          IF ( check_existence( vars_pids, 'ssws' ) )  THEN
     1641!
     1642!--          Read _FillValue attribute
     1643             CALL get_attribute( pids_id, char_fill, tmp_2d%fill, .FALSE., 'ssws' )
     1644!
     1645!--          Read variable
     1646             CALL get_variable( pids_id, 'ssws', tmp_2d%var, nxl, nxr, nys, nyn )
     1647!
     1648!--          Initialize passive scalar flux. Initialize horizontal surface elements.
     1649             CALL init_single_surface_properties( surf_def_h(0)%ssws, tmp_2d%var, surf_def_h(0)%ns,&
     1650                                                  tmp_2d%fill, surf_def_h(0)%i, surf_def_h(0)%j )
     1651
     1652             DO  l = 0, 3
     1653                CALL init_single_surface_properties( surf_def_v(l)%ssws, tmp_2d%var,               &
     1654                                                     surf_def_v(l)%ns, tmp_2d%fill,                &
     1655                                                     surf_def_v(l)%i+surf_def_v(l)%ioff,           &
     1656                                                     surf_def_v(l)%j+surf_def_v(l)%joff )
     1657             ENDDO
     1658
     1659          ENDIF
    16321660       ENDIF
    16331661!
Note: See TracChangeset for help on using the changeset viewer.