Ignore:
Timestamp:
Oct 26, 2016 11:15:40 AM (5 years ago)
Author:
knoop
Message:

Anelastic approximation implemented

File:
1 edited

Legend:

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

    r2001 r2037  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! Anelastic approximation implemented
    2323!
    2424! Former revisions:
     
    116116
    117117       USE arrays_3d,                                                          &
    118            ONLY:  ddzu, ddzw, km, tend, u, usws, uswst, v, w
     118           ONLY:  ddzu, ddzw, km, tend, u, usws, uswst, v, w,                  &
     119                  drho_air, rho_air_zw
    119120       
    120121       USE control_parameters,                                                 &
     
    217218                      & + ( kmzp * ( ( u(k+1,j,i) - u(k,j,i)   ) * ddzu(k+1)   &
    218219                      &            + ( w(k,j,i)   - w(k,j,i-1) ) * ddx         &
    219                       &            )                                           &
     220                      &            ) * rho_air_zw(k)                           &
    220221                      &   - kmzm * ( ( u(k,j,i)   - u(k-1,j,i)   ) * ddzu(k)   &
    221222                      &            + ( w(k-1,j,i) - w(k-1,j,i-1) ) * ddx       &
    222                       &            )                                           &
    223                       &   ) * ddzw(k)
     223                      &            ) * rho_air_zw(k-1)                         &
     224                      &   ) * ddzw(k) * drho_air(k)
    224225             ENDDO
    225226
     
    242243
    243244                tend(k,j,i) = tend(k,j,i)                                      &
    244                       & + ( kmzp * ( w(k,j,i)   - w(k,j,i-1)   ) * ddx         &
    245                       &   ) * ddzw(k)                                          &
    246                       & + ( kmzp * ( u(k+1,j,i) - u(k,j,i)     ) * ddzu(k+1)   &
    247                       &   + usws(j,i)                                          &
    248                       &   ) * ddzw(k)
     245                      & + ( kmzp * ( ( u(k+1,j,i) - u(k,j,i)   ) * ddzu(k+1)   &
     246                      &            + ( w(k,j,i)   - w(k,j,i-1) ) * ddx         &
     247                      &            ) * rho_air_zw(k)                           &
     248                      &   - ( -usws(j,i) )                                     &
     249                      &   ) * ddzw(k) * drho_air(k)
    249250             ENDIF
    250251
     
    260261
    261262                tend(k,j,i) = tend(k,j,i)                                      &
    262                       & - ( kmzm * ( w(k-1,j,i) - w(k-1,j,i-1) ) * ddx         &
    263                       &   ) * ddzw(k)                                          &
    264                       & + ( -uswst(j,i)                                        &
    265                       &   - kmzm * ( u(k,j,i)   - u(k-1,j,i)   ) * ddzu(k)     &
    266                       &   ) * ddzw(k)
     263                      & + ( ( -uswst(j,i) )                                    &
     264                      &   - kmzm * ( ( u(k,j,i)   - u(k-1,j,i)   ) * ddzu(k)   &
     265                      &            + ( w(k-1,j,i) - w(k-1,j,i-1) ) * ddx       &
     266                      &            ) * rho_air_zw(k-1)                         &
     267                      &   ) * ddzw(k) * drho_air(k)
    267268             ENDIF
    268269
     
    281282
    282283       USE arrays_3d,                                                          &
    283            ONLY:  ddzu, ddzw, km, tend, u, usws, uswst, v, w
     284           ONLY:  ddzu, ddzw, km, tend, u, usws, uswst, v, w,                  &
     285                  drho_air, rho_air_zw
    284286       
    285287       USE control_parameters,                                                 &
     
    390392                         & + ( kmzp * ( ( u(k+1,j,i) - u(k,j,i)   ) * ddzu(k+1)&
    391393                         &            + ( w(k,j,i)   - w(k,j,i-1) ) * ddx      &
    392                          &            )                                        &
     394                         &            ) * rho_air_zw(k)                        &
    393395                         &   - kmzm * ( ( u(k,j,i)   - u(k-1,j,i)   ) * ddzu(k)&
    394396                         &            + ( w(k-1,j,i) - w(k-1,j,i-1) ) * ddx    &
    395                          &            )                                        &
    396                          &   ) * ddzw(k)
     397                         &            ) * rho_air_zw(k-1)                      &
     398                         &   ) * ddzw(k) * drho_air(k)
    397399                ENDIF
    398400             ENDDO
     
    423425
    424426                tend(k,j,i) = tend(k,j,i)                                      &
    425                       & + ( kmzp * ( w(k,j,i)   - w(k,j,i-1)   ) * ddx         &
    426                       &   ) * ddzw(k)                                          &
    427                       & + ( kmzp * ( u(k+1,j,i) - u(k,j,i)     ) * ddzu(k+1)   &
    428                       &   + usws(j,i)                                          &
    429                       &   ) * ddzw(k)
     427                      & + ( kmzp * ( ( u(k+1,j,i) - u(k,j,i)   ) * ddzu(k+1)   &
     428                      &            + ( w(k,j,i)   - w(k,j,i-1) ) * ddx         &
     429                      &            ) * rho_air_zw(k)                           &
     430                      &   - ( -usws(j,i) )                                     &
     431                      &   ) * ddzw(k) * drho_air(k)
    430432             ENDDO
    431433          ENDDO
     
    449451
    450452                tend(k,j,i) = tend(k,j,i)                                      &
    451                       & - ( kmzm * ( w(k-1,j,i) - w(k-1,j,i-1) ) * ddx         &
    452                       &   ) * ddzw(k)                                          &
    453                       & + ( -uswst(j,i)                                        &
    454                       &   - kmzm * ( u(k,j,i)   - u(k-1,j,i)   ) * ddzu(k)     &
    455                       &   ) * ddzw(k)
     453                      & + ( ( -uswst(j,i) )                                    &
     454                      &   - kmzm * ( ( u(k,j,i)   - u(k-1,j,i)   ) * ddzu(k)   &
     455                      &            + ( w(k-1,j,i) - w(k-1,j,i-1) ) * ddx       &
     456                      &            ) * rho_air_zw(k-1)                         &
     457                      &   ) * ddzw(k) * drho_air(k)
    456458             ENDDO
    457459          ENDDO
     
    471473
    472474       USE arrays_3d,                                                          &
    473            ONLY:  ddzu, ddzw, km, tend, u, usws, uswst, v, w
     475           ONLY:  ddzu, ddzw, km, tend, u, usws, uswst, v, w,                  &
     476                  drho_air, rho_air_zw
    474477       
    475478       USE control_parameters,                                                 &
     
    559562                      & + ( kmzp * ( ( u(k+1,j,i) - u(k,j,i)   ) * ddzu(k+1)   &
    560563                      &            + ( w(k,j,i)   - w(k,j,i-1) ) * ddx         &
    561                       &            )                                           &
     564                      &            ) * rho_air_zw(k)                           &
    562565                      &   - kmzm * ( ( u(k,j,i)   - u(k-1,j,i)   ) * ddzu(k)   &
    563566                      &            + ( w(k-1,j,i) - w(k-1,j,i-1) ) * ddx       &
    564                       &            )                                           &
    565                       &   ) * ddzw(k)
     567                      &            ) * rho_air_zw(k-1)                         &
     568                      &   ) * ddzw(k) * drho_air(k)
    566569       ENDDO
    567570
     
    583586
    584587          tend(k,j,i) = tend(k,j,i)                                            &
    585                       & + ( kmzp * ( w(k,j,i)   - w(k,j,i-1)   ) * ddx         &
    586                       &   ) * ddzw(k)                                          &
    587                       & + ( kmzp * ( u(k+1,j,i) - u(k,j,i)     ) * ddzu(k+1)   &
    588                       &   + usws(j,i)                                          &
    589                       &   ) * ddzw(k)
     588                      & + ( kmzp * ( ( u(k+1,j,i) - u(k,j,i)   ) * ddzu(k+1)   &
     589                      &            + ( w(k,j,i)   - w(k,j,i-1) ) * ddx         &
     590                      &            ) * rho_air_zw(k)                           &
     591                      &   - ( -usws(j,i) )                                     &
     592                      &   ) * ddzw(k) * drho_air(k)
    590593       ENDIF
    591594
     
    597600!
    598601!--       Interpolate eddy diffusivities on staggered gridpoints
    599           kmzm = 0.25_wp *                                                     &
    600                  ( km(k,j,i)+km(k-1,j,i)+km(k,j,i-1)+km(k-1,j,i-1) )
     602          kmzm = 0.25_wp * ( km(k,j,i)+km(k-1,j,i)+km(k,j,i-1)+km(k-1,j,i-1) )
    601603
    602604          tend(k,j,i) = tend(k,j,i)                                            &
    603                       & - ( kmzm * ( w(k-1,j,i) - w(k-1,j,i-1) ) * ddx         &
    604                       &   ) * ddzw(k)                                          &
    605                       & + ( -uswst(j,i)                                        &
    606                       &   - kmzm * ( u(k,j,i)   - u(k-1,j,i)   ) * ddzu(k)     &
    607                       &   ) * ddzw(k)
     605                      & + ( ( -uswst(j,i) )                                    &
     606                      &   - kmzm * ( ( u(k,j,i)   - u(k-1,j,i)   ) * ddzu(k)   &
     607                      &            + ( w(k-1,j,i) - w(k-1,j,i-1) ) * ddx       &
     608                      &            ) * rho_air_zw(k-1)                         &
     609                      &   ) * ddzw(k) * drho_air(k)
    608610       ENDIF
    609611
Note: See TracChangeset for help on using the changeset viewer.