Ignore:
Timestamp:
May 30, 2017 5:47:52 PM (4 years ago)
Author:
suehring
Message:

Adjustments according new topography and surface-modelling concept implemented

File:
1 edited

Legend:

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

    r2119 r2232  
    2020! Current revisions:
    2121! ------------------
    22 !
     22! Adjustments to new topography concept
    2323!
    2424! Former revisions:
     
    131131       USE indices,                                                            &
    132132           ONLY:  nxl, nxlg, nxlu, nxr, nxrg, nyn, nyng, nys, nysg, nzb,       &
    133                   nzb_s_inner, nzt
     133                  nzt, wall_flags_0
    134134
    135135       USE kinds
     
    157157          DO  i = nxl, nxr
    158158             DO  j = nys, nyn
    159                 DO  k = nzb_s_inner(j,i)+1, nzt-1
    160                    tend(k,j,i) = tend(k,j,i) + atmos_ocean_sign * g * 0.5_wp * &
    161                           (                                                    &
     159                DO  k = nzb+1, nzt-1
     160                   tend(k,j,i) = tend(k,j,i) + atmos_ocean_sign * g * 0.5_wp *  &
     161                          (                                                     &
    162162                             ( var(k,j,i)   - ref_state(k) )   / ref_state(k) + &
    163163                             ( var(k+1,j,i) - ref_state(k+1) ) / ref_state(k+1) &
    164                           )
     164                          ) * MERGE( 1.0_wp, 0.0_wp,                            &
     165                                     BTEST( wall_flags_0(k,j,i), 0 ) )
    165166                ENDDO
    166167             ENDDO
     
    178179             DO  i = nxlu, nxr
    179180                DO  j = nys, nyn
    180                    DO  k = nzb_s_inner(j,i)+1, nzt-1
    181                       tend(k,j,i) = tend(k,j,i) + g * sin_alpha_surface *      &
     181                   DO  k = nzb+1, nzt-1
     182                      tend(k,j,i) = tend(k,j,i) + g * sin_alpha_surface *         &
    182183                           0.5_wp * ( ( pt(k,j,i-1)         + pt(k,j,i)         ) &
    183184                                    - ( pt_slope_ref(k,i-1) + pt_slope_ref(k,i) ) &
    184                                     ) / pt_surface
     185                                    ) / pt_surface                                &
     186                                      * MERGE( 1.0_wp, 0.0_wp,                    &
     187                                               BTEST( wall_flags_0(k,j,i), 0 ) )
    185188                   ENDDO
    186189                ENDDO
     
    191194             DO  i = nxl, nxr
    192195                DO  j = nys, nyn
    193                    DO  k = nzb_s_inner(j,i)+1, nzt-1
    194                       tend(k,j,i) = tend(k,j,i) + g * cos_alpha_surface *      &
     196                   DO  k = nzb+1, nzt-1
     197                      tend(k,j,i) = tend(k,j,i) + g * cos_alpha_surface *         &
    195198                           0.5_wp * ( ( pt(k,j,i)         + pt(k+1,j,i)         ) &
    196199                                    - ( pt_slope_ref(k,i) + pt_slope_ref(k+1,i) ) &
    197                                     ) / pt_surface
     200                                    ) / pt_surface                                &
     201                                      * MERGE( 1.0_wp, 0.0_wp,                    &
     202                                               BTEST( wall_flags_0(k,j,i), 0 ) )
    198203                   ENDDO
    199204                ENDDO
     
    231236
    232237       USE indices,                                                            &
    233            ONLY:  nxlg, nxrg, nyng, nysg, nzb, nzb_s_inner, nzt
     238           ONLY:  nxlg, nxrg, nyng, nysg, nzb, nzt, wall_flags_0
    234239
    235240       USE kinds
     
    256261!
    257262!--       Normal case: horizontal surface
    258           DO  k = nzb_s_inner(j,i)+1, nzt-1
     263          DO  k = nzb+1, nzt-1
    259264              tend(k,j,i) = tend(k,j,i) + atmos_ocean_sign * g * 0.5_wp * (    &
    260265                        ( var(k,j,i)   - ref_state(k)   ) / ref_state(k)   +   &
    261266                        ( var(k+1,j,i) - ref_state(k+1) ) / ref_state(k+1)     &
    262                                                                           )
     267                                                                          )    &
     268                                      * MERGE( 1.0_wp, 0.0_wp,                 &
     269                                               BTEST( wall_flags_0(k,j,i), 0 ) )
    263270          ENDDO
    264271
     
    272279          IF ( wind_component == 1 )  THEN
    273280
    274              DO  k = nzb_s_inner(j,i)+1, nzt-1
    275                 tend(k,j,i) = tend(k,j,i) + g * sin_alpha_surface *            &
     281             DO  k = nzb+1, nzt-1
     282                tend(k,j,i) = tend(k,j,i) + g * sin_alpha_surface *               &
    276283                           0.5_wp * ( ( pt(k,j,i-1)         + pt(k,j,i)         ) &
    277284                                    - ( pt_slope_ref(k,i-1) + pt_slope_ref(k,i) ) &
    278                                     ) / pt_surface
     285                                    ) / pt_surface                                &
     286                                      * MERGE( 1.0_wp, 0.0_wp,                    &
     287                                               BTEST( wall_flags_0(k,j,i), 0 ) )
    279288             ENDDO
    280289
    281290          ELSEIF ( wind_component == 3 )  THEN
    282291
    283              DO  k = nzb_s_inner(j,i)+1, nzt-1
    284                 tend(k,j,i) = tend(k,j,i) + g * cos_alpha_surface *            &
     292             DO  k = nzb+1, nzt-1
     293                tend(k,j,i) = tend(k,j,i) + g * cos_alpha_surface *               &
    285294                           0.5_wp * ( ( pt(k,j,i)         + pt(k+1,j,i)         ) &
    286295                                    - ( pt_slope_ref(k,i) + pt_slope_ref(k+1,i) ) &
    287                                     ) / pt_surface
     296                                    ) / pt_surface                                &
     297                                      * MERGE( 1.0_wp, 0.0_wp,                    &
     298                                               BTEST( wall_flags_0(k,j,i), 0 ) )
    288299             ENDDO
    289300
Note: See TracChangeset for help on using the changeset viewer.