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

Adjustments according new topography and surface-modelling concept implemented

File:
1 edited

Legend:

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

    r2101 r2232  
    2020! Current revisions:
    2121! ------------------
    22 !
     22! Adjustments to new topography concept
    2323!
    2424! Former revisions:
     
    332332
    333333       USE indices,                                                            &
    334            ONLY:  nxl, nxr, nys, nyn, nzb, nzb_u_inner, nzt
     334           ONLY:  nxl, nxr, nys, nyn, nzb, nzt, wall_flags_0
    335335
    336336       USE kinds
     
    372372                DO  j = nys, nyn
    373373
    374                    DO  k = nzb_u_inner(j,i)+1, nzt
     374                   DO  k = nzb+1, nzt
    375375
    376376                      tmp_tend = - ( hom(k,1,1,0) - ( unudge(k,nt) * dtp +     &
    377377                                     unudge(k,nt+1) * dtm ) ) / tmp_tnudge(k)
    378378
    379                       tend(k,j,i) = tend(k,j,i) + tmp_tend
     379                      tend(k,j,i) = tend(k,j,i) + tmp_tend *                   &
     380                                        MERGE( 1.0_wp, 0.0_wp,                 &
     381                                               BTEST( wall_flags_0(k,j,i), 1 ) )
    380382
    381383                      sums_ls_l(k,6) = sums_ls_l(k,6) + tmp_tend *             &
     
    393395                DO  j = nys, nyn
    394396
    395                    DO  k = nzb_u_inner(j,i)+1, nzt
     397                   DO  k = nzb+1, nzt
    396398
    397399                      tmp_tend = - ( hom(k,1,2,0) - ( vnudge(k,nt) * dtp +     &
    398400                                     vnudge(k,nt+1) * dtm ) ) / tmp_tnudge(k)
    399401
    400                       tend(k,j,i) = tend(k,j,i) + tmp_tend
     402                      tend(k,j,i) = tend(k,j,i) + tmp_tend *                   &
     403                                        MERGE( 1.0_wp, 0.0_wp,                 &
     404                                               BTEST( wall_flags_0(k,j,i), 2 ) )
    401405
    402406                      sums_ls_l(k,7) = sums_ls_l(k,7) + tmp_tend *             &
     
    414418                DO  j = nys, nyn
    415419
    416                    DO  k = nzb_u_inner(j,i)+1, nzt
     420                   DO  k = nzb+1, nzt
    417421
    418422                      tmp_tend = - ( hom(k,1,4,0) - ( ptnudge(k,nt) * dtp +    &
    419423                                     ptnudge(k,nt+1) * dtm ) ) / tmp_tnudge(k)
    420424
    421                       tend(k,j,i) = tend(k,j,i) + tmp_tend
     425                      tend(k,j,i) = tend(k,j,i) + tmp_tend *                   &
     426                                        MERGE( 1.0_wp, 0.0_wp,                 &
     427                                               BTEST( wall_flags_0(k,j,i), 0 ) )
    422428
    423429                      sums_ls_l(k,4) = sums_ls_l(k,4) + tmp_tend *             &
     
    435441                DO  j = nys, nyn
    436442
    437                    DO  k = nzb_u_inner(j,i)+1, nzt
     443                   DO  k = nzb+1, nzt
    438444
    439445                      tmp_tend = - ( hom(k,1,41,0) - ( qnudge(k,nt) * dtp +    &
    440446                                     qnudge(k,nt+1) * dtm ) ) / tmp_tnudge(k)
    441447
    442                       tend(k,j,i) = tend(k,j,i) + tmp_tend
     448                      tend(k,j,i) = tend(k,j,i) + tmp_tend *                   &
     449                                        MERGE( 1.0_wp, 0.0_wp,                 &
     450                                               BTEST( wall_flags_0(k,j,i), 0 ) )
    443451
    444452                      sums_ls_l(k,5) = sums_ls_l(k,5) + tmp_tend *             &
     
    476484
    477485       USE indices,                                                            &
    478            ONLY:  nxl, nxr, nys, nyn, nzb, nzb_u_inner, nzt
     486           ONLY:  nxl, nxr, nys, nyn, nzb, nzt, wall_flags_0
    479487
    480488       USE kinds
     
    514522          CASE ( 'u' )
    515523
    516              DO  k = nzb_u_inner(j,i)+1, nzt
     524             DO  k = nzb+1, nzt
    517525
    518526                tmp_tend = - ( hom(k,1,1,0) - ( unudge(k,nt) * dtp +           &
    519527                               unudge(k,nt+1) * dtm ) ) / tmp_tnudge(k)
    520528
    521                 tend(k,j,i) = tend(k,j,i) + tmp_tend
     529                tend(k,j,i) = tend(k,j,i) + tmp_tend *                         &
     530                                        MERGE( 1.0_wp, 0.0_wp,                 &
     531                                               BTEST( wall_flags_0(k,j,i), 1 ) )
    522532
    523533                sums_ls_l(k,6) = sums_ls_l(k,6) + tmp_tend                     &
     
    529539          CASE ( 'v' )
    530540
    531              DO  k = nzb_u_inner(j,i)+1, nzt
     541             DO  k = nzb+1, nzt
    532542
    533543                tmp_tend = - ( hom(k,1,2,0) - ( vnudge(k,nt) * dtp +           &
    534544                               vnudge(k,nt+1) * dtm ) ) / tmp_tnudge(k)
    535545
    536                 tend(k,j,i) = tend(k,j,i) + tmp_tend
     546                tend(k,j,i) = tend(k,j,i) + tmp_tend *                         &
     547                                        MERGE( 1.0_wp, 0.0_wp,                 &
     548                                               BTEST( wall_flags_0(k,j,i), 2 ) )
    537549
    538550                sums_ls_l(k,7) = sums_ls_l(k,7) + tmp_tend                     &
     
    544556          CASE ( 'pt' )
    545557
    546              DO  k = nzb_u_inner(j,i)+1, nzt
     558             DO  k = nzb+1, nzt
    547559
    548560                tmp_tend = - ( hom(k,1,4,0) - ( ptnudge(k,nt) * dtp +          &
    549561                               ptnudge(k,nt+1) * dtm ) ) / tmp_tnudge(k)
    550562
    551                 tend(k,j,i) = tend(k,j,i) + tmp_tend
     563                tend(k,j,i) = tend(k,j,i) + tmp_tend *                         &
     564                                        MERGE( 1.0_wp, 0.0_wp,                 &
     565                                               BTEST( wall_flags_0(k,j,i), 0 ) )
    552566
    553567                sums_ls_l(k,4) = sums_ls_l(k,4) + tmp_tend                     &
     
    560574          CASE ( 'q' )
    561575
    562              DO  k = nzb_u_inner(j,i)+1, nzt
     576             DO  k = nzb+1, nzt
    563577
    564578                tmp_tend = - ( hom(k,1,41,0) - ( qnudge(k,nt) * dtp +          &
    565579                               qnudge(k,nt+1) * dtm ) ) / tmp_tnudge(k)
    566580
    567                 tend(k,j,i) = tend(k,j,i) + tmp_tend
     581                tend(k,j,i) = tend(k,j,i) + tmp_tend *                         &
     582                                        MERGE( 1.0_wp, 0.0_wp,                 &
     583                                               BTEST( wall_flags_0(k,j,i), 0 ) )
    568584
    569585                sums_ls_l(k,5) = sums_ls_l(k,5) + tmp_tend                     &
Note: See TracChangeset for help on using the changeset viewer.