Ignore:
Timestamp:
Sep 9, 2020 8:27:58 PM (4 years ago)
Author:
pavelkrc
Message:

Radiative transfer model RTM version 4.1

File:
1 edited

Legend:

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

    r4429 r4671  
    2020! Current revisions:
    2121! ------------------
    22 ! 
    23 ! 
     22!
     23!
    2424! Former revisions:
    2525! -----------------
    2626! $Id$
     27! Implementation of downward facing USM and LSM surfaces
     28!
     29! 4429 2020-02-27 15:24:30Z raasch
    2730! bugfix: preprocessor directives rearranged for serial mode
    2831!
     
    168171!--       Send heat flux at bottom surface to the ocean. First, transfer from
    169172!--       1D surface type to 2D grid.
    170           CALL transfer_1D_to_2D_equal( surf_def_h(0)%shf, surf_lsm_h%shf,     &
    171                                         surf_usm_h%shf )
     173          CALL transfer_1D_to_2D_equal( surf_def_h(0)%shf, surf_lsm_h(0)%shf,     &
     174                                        surf_usm_h(0)%shf )
    172175          CALL MPI_SEND( surface_flux(nysg,nxlg), ngp_xy, MPI_REAL, target_id, &
    173176                         12, comm_inter, ierr )
     
    175178!--       Send humidity flux at bottom surface to the ocean. First, transfer
    176179!--       from 1D surface type to 2D grid.
    177           CALL transfer_1D_to_2D_equal( surf_def_h(0)%qsws, surf_lsm_h%qsws,   &
    178                                         surf_usm_h%qsws )
     180          CALL transfer_1D_to_2D_equal( surf_def_h(0)%qsws, surf_lsm_h(0)%qsws,   &
     181                                        surf_usm_h(0)%qsws )
    179182          IF ( humidity )  THEN
    180183             CALL MPI_SEND( surface_flux(nysg,nxlg), ngp_xy, MPI_REAL,         &
     
    188191!--       Send the momentum flux (u) at bottom surface to the ocean. First,
    189192!--       transfer from 1D surface type to 2D grid.
    190           CALL transfer_1D_to_2D_equal( surf_def_h(0)%usws, surf_lsm_h%usws,   &
    191                                         surf_usm_h%usws )
     193          CALL transfer_1D_to_2D_equal( surf_def_h(0)%usws, surf_lsm_h(0)%usws,   &
     194                                        surf_usm_h(0)%usws )
    192195          CALL MPI_SEND( surface_flux(nysg,nxlg), ngp_xy, MPI_REAL, target_id, &
    193196                         15, comm_inter, ierr )
     
    195198!--       Send the momentum flux (v) at bottom surface to the ocean. First,
    196199!--       transfer from 1D surface type to 2D grid.
    197           CALL transfer_1D_to_2D_equal( surf_def_h(0)%vsws, surf_lsm_h%vsws,   &
    198                                         surf_usm_h%vsws )
     200          CALL transfer_1D_to_2D_equal( surf_def_h(0)%vsws, surf_lsm_h(0)%vsws,   &
     201                                        surf_usm_h(0)%vsws )
    199202          CALL MPI_SEND( surface_flux(nysg,nxlg), ngp_xy, MPI_REAL, target_id, &
    200203                         16, comm_inter, ierr )
     
    218221!
    219222!--       Transfer from 1D surface type to 2D grid.
    220           CALL transfer_1D_to_2D_unequal( surf_def_h(0)%shf, surf_lsm_h%shf,   &
    221                                           surf_usm_h%shf )
     223          CALL transfer_1D_to_2D_unequal( surf_def_h(0)%shf, surf_lsm_h(0)%shf,   &
     224                                          surf_usm_h(0)%shf )
    222225
    223226          CALL MPI_REDUCE( total_2d, total_2d_a, ngp_a, MPI_REAL, MPI_SUM, 0,  &
     
    232235!--          Transfer from 1D surface type to 2D grid.
    233236             CALL transfer_1D_to_2D_unequal( surf_def_h(0)%qsws,              &
    234                                              surf_lsm_h%qsws,                 &
    235                                              surf_usm_h%qsws )
     237                                             surf_lsm_h(0)%qsws,                 &
     238                                             surf_usm_h(0)%qsws )
    236239
    237240             CALL MPI_REDUCE( total_2d, total_2d_a, ngp_a, MPI_REAL, MPI_SUM, &
     
    255258!
    256259!--       Transfer from 1D surface type to 2D grid.
    257           CALL transfer_1D_to_2D_unequal( surf_def_h(0)%usws, surf_lsm_h%usws, &
    258                                           surf_usm_h%usws )
     260          CALL transfer_1D_to_2D_unequal( surf_def_h(0)%usws, surf_lsm_h(0)%usws, &
     261                                          surf_usm_h(0)%usws )
    259262          CALL MPI_REDUCE( total_2d, total_2d_a, ngp_a, MPI_REAL, MPI_SUM, 0, &
    260263                           comm2d, ierr )
     
    266269!
    267270!--       Transfer from 1D surface type to 2D grid.
    268           CALL transfer_1D_to_2D_unequal( surf_def_h(0)%usws, surf_lsm_h%usws, &
    269                                           surf_usm_h%usws )
     271          CALL transfer_1D_to_2D_unequal( surf_def_h(0)%usws, surf_lsm_h(0)%usws, &
     272                                          surf_usm_h(0)%usws )
    270273          CALL MPI_REDUCE( total_2d, total_2d_a, ngp_a, MPI_REAL, MPI_SUM, 0, &
    271274                           comm2d, ierr )
     
    473476
    474477            REAL(wp), DIMENSION(1:surf_def_h(0)%ns) ::  def_1d !< 1D surface flux, default surfaces
    475             REAL(wp), DIMENSION(1:surf_lsm_h%ns)    ::  lsm_1d !< 1D surface flux, natural surfaces
    476             REAL(wp), DIMENSION(1:surf_usm_h%ns)    ::  usm_1d !< 1D surface flux, urban surfaces
     478            REAL(wp), DIMENSION(1:surf_lsm_h(0)%ns) ::  lsm_1d !< 1D surface flux, natural surfaces
     479            REAL(wp), DIMENSION(1:surf_usm_h(0)%ns) ::  usm_1d !< 1D surface flux, urban surfaces
    477480!
    478481!--         Transfer surface flux at default surfaces to 2D grid
     
    486489            IF ( land_surface )  THEN
    487490               DO  m = 1, SIZE(lsm_1d)
    488                   i = surf_lsm_h%i(m)
    489                   j = surf_lsm_h%j(m)
     491                  i = surf_lsm_h(0)%i(m)
     492                  j = surf_lsm_h(0)%j(m)
    490493                  surface_flux(j,i) = lsm_1d(m)
    491494               ENDDO
     
    495498            IF ( urban_surface )  THEN
    496499               DO  m = 1, SIZE(usm_1d)
    497                   i = surf_usm_h%i(m)
    498                   j = surf_usm_h%j(m)
     500                  i = surf_usm_h(0)%i(m)
     501                  j = surf_usm_h(0)%j(m)
    499502                  surface_flux(j,i) = usm_1d(m)
    500503               ENDDO
     
    541544
    542545            REAL(wp), DIMENSION(1:surf_def_h(0)%ns) ::  def_1d !< 1D surface flux, default surfaces
    543             REAL(wp), DIMENSION(1:surf_lsm_h%ns)    ::  lsm_1d !< 1D surface flux, natural surfaces
    544             REAL(wp), DIMENSION(1:surf_usm_h%ns)    ::  usm_1d !< 1D surface flux, urban surfaces
     546            REAL(wp), DIMENSION(1:surf_lsm_h(0)%ns)    ::  lsm_1d !< 1D surface flux, natural surfaces
     547            REAL(wp), DIMENSION(1:surf_usm_h(0)%ns)    ::  usm_1d !< 1D surface flux, urban surfaces
    545548!
    546549!--         Transfer surface flux at default surfaces to 2D grid. Transfer no
     
    559562            IF ( land_surface )  THEN
    560563               DO  m = 1, SIZE(lsm_1d)
    561                   i = surf_lsm_h%i(m)
    562                   j = surf_lsm_h%j(m)
     564                  i = surf_lsm_h(0)%i(m)
     565                  j = surf_lsm_h(0)%j(m)
    563566
    564567                  IF ( i >= nxl  .AND.  i <= nxr  .AND.                        &
     
    572575            IF ( urban_surface )  THEN
    573576               DO  m = 1, SIZE(usm_1d)
    574                   i = surf_usm_h%i(m)
    575                   j = surf_usm_h%j(m)
     577                  i = surf_usm_h(0)%i(m)
     578                  j = surf_usm_h(0)%j(m)
    576579
    577580                  IF ( i >= nxl  .AND.  i <= nxr  .AND.                        &
Note: See TracChangeset for help on using the changeset viewer.