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_v.f90

    r2001 r2037  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! Anelastic approximation implemented
    2323!
    2424! Former revisions:
     
    111111
    112112       USE arrays_3d,                                                          &
    113            ONLY:  ddzu, ddzw, km, tend, u, v, vsws, vswst, w
     113           ONLY:  ddzu, ddzw, km, tend, u, v, vsws, vswst, w,                  &
     114                  drho_air, rho_air_zw
    114115       
    115116       USE control_parameters,                                                 &
     
    212213                      & + ( kmzp * ( ( v(k+1,j,i) - v(k,j,i) ) * ddzu(k+1)     &
    213214                      &            + ( w(k,j,i) - w(k,j-1,i) ) * ddy           &
    214                       &            )                                           &
     215                      &            ) * rho_air_zw(k)                           &
    215216                      &   - kmzm * ( ( v(k,j,i)   - v(k-1,j,i)   ) * ddzu(k)   &
    216217                      &            + ( w(k-1,j,i) - w(k-1,j-1,i) ) * ddy       &
    217                       &            )                                           &
    218                       &   ) * ddzw(k)
     218                      &            ) * rho_air_zw(k-1)                         &
     219                      &   ) * ddzw(k) * drho_air(k)
    219220             ENDDO
    220221
     
    237238
    238239                tend(k,j,i) = tend(k,j,i)                                      &
    239                       & + ( kmzp * ( w(k,j,i) - w(k,j-1,i)     ) * ddy         &
    240                       &   ) * ddzw(k)                                          &
    241                       & + ( kmzp * ( v(k+1,j,i) - v(k,j,i)     ) * ddzu(k+1)   &
    242                       &   + vsws(j,i)                                          &
    243                       &   ) * ddzw(k)
     240                      & + ( kmzp * ( ( v(k+1,j,i) - v(k,j,i)   ) * ddzu(k+1)   &
     241                      &            + ( w(k,j,i)   - w(k,j-1,i) ) * ddy         &
     242                      &            ) * rho_air_zw(k)                           &
     243                      &   - ( -vsws(j,i) )                                     &
     244                      &   ) * ddzw(k) * drho_air(k)
    244245             ENDIF
    245246
     
    255256
    256257                tend(k,j,i) = tend(k,j,i)                                      &
    257                       & - ( kmzm *  ( w(k-1,j,i) - w(k-1,j-1,i) ) * ddy        &
    258                       &   ) * ddzw(k)                                          &
    259                       & + ( -vswst(j,i)                                        &
    260                       &   - kmzm * ( v(k,j,i)   - v(k-1,j,i)    ) * ddzu(k)    &
    261                       &   ) * ddzw(k)
     258                      & + ( ( -vswst(j,i) )                                    &
     259                      &   - kmzm * ( ( v(k,j,i)   - v(k-1,j,i)   ) * ddzu(k)   &
     260                      &            + ( w(k-1,j,i) - w(k-1,j-1,i) ) * ddy       &
     261                      &            ) * rho_air_zw(k-1)                         &
     262                      &   ) * ddzw(k) * drho_air(k)
    262263             ENDIF
    263264
     
    276277
    277278       USE arrays_3d,                                                          &
    278            ONLY:  ddzu, ddzw, km, tend, u, v, vsws, vswst, w
     279           ONLY:  ddzu, ddzw, km, tend, u, v, vsws, vswst, w,                  &
     280                  drho_air, rho_air_zw
    279281       
    280282       USE control_parameters,                                                 &
     
    385387                         & + ( kmzp * ( ( v(k+1,j,i) - v(k,j,i)   ) * ddzu(k+1)&
    386388                         &            + ( w(k,j,i)   - w(k,j-1,i) ) * ddy      &
    387                          &            )                                        &
     389                         &            ) * rho_air_zw(k)                        &
    388390                         &   - kmzm * ( ( v(k,j,i)   - v(k-1,j,i)   ) * ddzu(k)&
    389391                         &            + ( w(k-1,j,i) - w(k-1,j-1,i) ) * ddy    &
    390                          &            )                                        &
    391                          &   ) * ddzw(k)
     392                         &            ) * rho_air_zw(k-1)                      &
     393                         &   ) * ddzw(k) * drho_air(k)
    392394                ENDIF
    393395             ENDDO
     
    418420
    419421                tend(k,j,i) = tend(k,j,i)                                      &
    420                       & + ( kmzp * ( w(k,j,i) - w(k,j-1,i)     ) * ddy         &
    421                       &   ) * ddzw(k)                                          &
    422                       & + ( kmzp * ( v(k+1,j,i) - v(k,j,i)     ) * ddzu(k+1)   &
    423                       &   + vsws(j,i)                                          &
    424                       &   ) * ddzw(k)
     422                      & + ( kmzp * ( ( v(k+1,j,i) - v(k,j,i)   ) * ddzu(k+1)   &
     423                      &            + ( w(k,j,i)   - w(k,j-1,i) ) * ddy         &
     424                      &            ) * rho_air_zw(k)                           &
     425                      &   - ( -vsws(j,i) )                                     &
     426                      &   ) * ddzw(k) * drho_air(k)
    425427             ENDDO
    426428          ENDDO
     
    444446
    445447                tend(k,j,i) = tend(k,j,i)                                      &
    446                       & - ( kmzm *  ( w(k-1,j,i) - w(k-1,j-1,i) ) * ddy        &
    447                       &   ) * ddzw(k)                                          &
    448                       & + ( -vswst(j,i)                                        &
    449                       &   - kmzm * ( v(k,j,i)   - v(k-1,j,i)    ) * ddzu(k)    &
    450                       &   ) * ddzw(k)
     448                      & + ( ( -vswst(j,i) )                                    &
     449                      &   - kmzm * ( ( v(k,j,i)   - v(k-1,j,i)   ) * ddzu(k)   &
     450                      &            + ( w(k-1,j,i) - w(k-1,j-1,i) ) * ddy       &
     451                      &            ) * rho_air_zw(k-1)                         &
     452                      &   ) * ddzw(k) * drho_air(k)
    451453             ENDDO
    452454          ENDDO
     
    466468
    467469       USE arrays_3d,                                                          &
    468            ONLY:  ddzu, ddzw, km, tend, u, v, vsws, vswst, w
     470           ONLY:  ddzu, ddzw, km, tend, u, v, vsws, vswst, w,                  &
     471                  drho_air, rho_air_zw
    469472       
    470473       USE control_parameters,                                                 &
     
    556559                      & + ( kmzp * ( ( v(k+1,j,i) - v(k,j,i) ) * ddzu(k+1)     &
    557560                      &            + ( w(k,j,i) - w(k,j-1,i) ) * ddy           &
    558                       &            )                                           &
     561                      &            ) * rho_air_zw(k)                           &
    559562                      &   - kmzm * ( ( v(k,j,i)   - v(k-1,j,i)   ) * ddzu(k)   &
    560563                      &            + ( w(k-1,j,i) - w(k-1,j-1,i) ) * ddy       &
    561                       &            )                                           &
    562                       &   ) * ddzw(k)
     564                      &            ) * rho_air_zw(k-1)                         &
     565                      &   ) * ddzw(k) * drho_air(k)
    563566       ENDDO
    564567
     
    580583
    581584          tend(k,j,i) = tend(k,j,i)                                            &
    582                       & + ( kmzp * ( w(k,j,i) - w(k,j-1,i)     ) * ddy         &
    583                       &   ) * ddzw(k)                                          &
    584                       & + ( kmzp * ( v(k+1,j,i) - v(k,j,i)     ) * ddzu(k+1)   &
    585                       &   + vsws(j,i)                                          &
    586                       &   ) * ddzw(k)
     585                      & + ( kmzp * ( ( v(k+1,j,i) - v(k,j,i)   ) * ddzu(k+1)   &
     586                      &            + ( w(k,j,i)   - w(k,j-1,i) ) * ddy         &
     587                      &            ) * rho_air_zw(k)                           &
     588                      &   - ( -vsws(j,i) )                                     &
     589                      &   ) * ddzw(k) * drho_air(k)
    587590       ENDIF
    588591
     
    594597!
    595598!--       Interpolate eddy diffusivities on staggered gridpoints
    596           kmzm = 0.25_wp * &
    597                  ( km(k,j,i)+km(k-1,j,i)+km(k,j-1,i)+km(k-1,j-1,i) )
     599          kmzm = 0.25_wp * ( km(k,j,i)+km(k-1,j,i)+km(k,j-1,i)+km(k-1,j-1,i) )
    598600
    599601          tend(k,j,i) = tend(k,j,i)                                            &
    600                       & - ( kmzm *  ( w(k-1,j,i) - w(k-1,j-1,i) ) * ddy        &
    601                       &   ) * ddzw(k)                                          &
    602                       & + ( -vswst(j,i)                                        &
    603                       &   - kmzm * ( v(k,j,i)   - v(k-1,j,i)    ) * ddzu(k)    &
    604                       &   ) * ddzw(k)
     602                      & + ( ( -vswst(j,i) )                                    &
     603                      &   - kmzm * ( ( v(k,j,i)   - v(k-1,j,i)   ) * ddzu(k)   &
     604                      &            + ( w(k-1,j,i) - w(k-1,j-1,i) ) * ddy       &
     605                      &            ) * rho_air_zw(k-1)                         &
     606                      &   ) * ddzw(k) * drho_air(k)
    605607       ENDIF
    606608
Note: See TracChangeset for help on using the changeset viewer.