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/poismg_mod.f90

    r2022 r2037  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! Anelastic approximation implemented (stll error in optimized multigrid)
    2323!
    2424! Former revisions:
     
    262262
    263263       USE arrays_3d,                                                          &
    264            ONLY:  f1_mg, f2_mg, f3_mg
     264           ONLY:  f1_mg, f2_mg, f3_mg, rho_air_mg
    265265
    266266       USE control_parameters,                                                 &
     
    309309                kp1 = k-ind_even_odd
    310310                r(k,j,i) = f_mg(k,j,i)                                         &
    311                       - ddx2_mg(l) *                                           &
     311                      - rho_air_mg(k,l) * ddx2_mg(l) *                         &
    312312                      ( p_mg(k,j,i+1) +  p_mg(k,j,i-1)  )                      &
    313                       - ddy2_mg(l) *                                           &
     313                      - rho_air_mg(k,l) * ddy2_mg(l) *                         &
    314314                      ( p_mg(k,j+1,i) + p_mg(k,j-1,i)  )                       &
    315315                      - f2_mg_b(k,l) * p_mg(kp1,j,i)                           &
     
    322322                kp1 = k+ind_even_odd+1
    323323                r(k,j,i) = f_mg(k,j,i)                                         &
    324                       - ddx2_mg(l) *                                           &
     324                      - rho_air_mg(k,l) * ddx2_mg(l) *                         &
    325325                      ( p_mg(k,j,i+1) +  p_mg(k,j,i-1)  )                      &
    326                       - ddy2_mg(l) *                                           &
     326                      - rho_air_mg(k,l) * ddy2_mg(l) *                         &
    327327                      ( p_mg(k,j+1,i) + p_mg(k,j-1,i)  )                       &
    328328                      - f2_mg_b(k,l) * p_mg(kp1,j,i)                           &
     
    693693
    694694       USE arrays_3d,                                                          &
    695            ONLY:  f1_mg, f2_mg, f3_mg
     695           ONLY:  f1_mg, f2_mg, f3_mg, rho_air_mg
    696696
    697697       USE control_parameters,                                                 &
     
    755755                         kp1 = k-ind_even_odd
    756756                         p_mg(k,j,i) = 1.0_wp / f1_mg_b(k,l) * (               &
    757                                  ddx2_mg(l) *                                  &
     757                                 rho_air_mg(k,l) * ddx2_mg(l) *                &
    758758                               ( p_mg(k,j,i+1) + p_mg(k,j,i-1) )               &
    759                                + ddy2_mg(l) *                                  &
     759                               + rho_air_mg(k,l) * ddy2_mg(l) *                &
    760760                               ( p_mg(k,j+1,i) + p_mg(k,j-1,i) )               &
    761761                               + f2_mg_b(k,l) * p_mg(kp1,j,i)                  &
     
    774774                         kp1 = k-ind_even_odd
    775775                         p_mg(k,j,i) = 1.0_wp / f1_mg_b(k,l) * (               &
    776                                  ddx2_mg(l) *                                  &
     776                                 rho_air_mg(k,l) * ddx2_mg(l) *                &
    777777                               ( p_mg(k,j,i+1) + p_mg(k,j,i-1) )               &
    778                                + ddy2_mg(l) *                                  &
     778                               + rho_air_mg(k,l) * ddy2_mg(l) *                &
    779779                               ( p_mg(k,j+1,i) + p_mg(k,j-1,i) )               &
    780780                               + f2_mg_b(k,l) * p_mg(kp1,j,i)                  &
     
    793793                         kp1 = k+ind_even_odd+1
    794794                         p_mg(k,j,i) = 1.0_wp / f1_mg_b(k,l) * (               &
    795                                  ddx2_mg(l) *                                  &
     795                                 rho_air_mg(k,l) * ddx2_mg(l) *                &
    796796                               ( p_mg(k,j,i+1) + p_mg(k,j,i-1) )               &
    797                                + ddy2_mg(l) *                                  &
     797                               + rho_air_mg(k,l) * ddy2_mg(l) *                &
    798798                               ( p_mg(k,j+1,i) + p_mg(k,j-1,i) )               &
    799799                               + f2_mg_b(k,l) * p_mg(kp1,j,i)                  &
     
    812812                         kp1 = k+ind_even_odd+1
    813813                         p_mg(k,j,i) = 1.0_wp / f1_mg_b(k,l) * (               &
    814                                  ddx2_mg(l) *                                  &
     814                                 rho_air_mg(k,l) * ddx2_mg(l) *                &
    815815                               ( p_mg(k,j,i+1) + p_mg(k,j,i-1) )               &
    816                                + ddy2_mg(l) *                                  &
     816                               + rho_air_mg(k,l) * ddy2_mg(l) *                &
    817817                               ( p_mg(k,j+1,i) + p_mg(k,j-1,i) )               &
    818818                               + f2_mg_b(k,l) * p_mg(kp1,j,i)                  &
     
    843843                         j   = jj
    844844                         p_mg(k,j,i) = 1.0_wp / f1_mg_b(k,l) * (               &
    845                                  ddx2_mg(l) *                                  &
     845                                 rho_air_mg(k,l) * ddx2_mg(l) *                &
    846846                               ( p_mg(k,j,i+1) + p_mg(k,j,i-1) )               &
    847                                + ddy2_mg(l) *                                  &
     847                               + rho_air_mg(k,l) * ddy2_mg(l) *                &
    848848                               ( p_mg(k,j+1,i) + p_mg(k,j-1,i) )               &
    849849                               + f2_mg_b(k,l) * p_mg(kp1,j,i)                  &
     
    852852                         j = jj+2
    853853                         p_mg(k,j,i) = 1.0_wp / f1_mg_b(k,l) * (               &
    854                                  ddx2_mg(l) *                                  &
     854                                 rho_air_mg(k,l) * ddx2_mg(l) *                &
    855855                               ( p_mg(k,j,i+1) + p_mg(k,j,i-1) )               &
    856                                + ddy2_mg(l) *                                  &
     856                               + rho_air_mg(k,l) * ddy2_mg(l) *                &
    857857                               ( p_mg(k,j+1,i) + p_mg(k,j-1,i) )               &
    858858                               + f2_mg_b(k,l) * p_mg(kp1,j,i)                  &
     
    869869                         j   = jj
    870870                         p_mg(k,j,i) = 1.0_wp / f1_mg_b(k,l) * (               &
    871                                  ddx2_mg(l) *                                  &
     871                                 rho_air_mg(k,l) * ddx2_mg(l) *                &
    872872                               ( p_mg(k,j,i+1) + p_mg(k,j,i-1) )               &
    873                                + ddy2_mg(l) *                                  &
     873                               + rho_air_mg(k,l) * ddy2_mg(l) *                &
    874874                               ( p_mg(k,j+1,i) + p_mg(k,j-1,i) )               &
    875875                               + f2_mg_b(k,l) * p_mg(kp1,j,i)                  &
     
    878878                         j = jj+2
    879879                         p_mg(k,j,i) = 1.0_wp / f1_mg_b(k,l) * (               &
    880                                  ddx2_mg(l) *                                  &
     880                                 rho_air_mg(k,l) * ddx2_mg(l) *                &
    881881                               ( p_mg(k,j,i+1) + p_mg(k,j,i-1) )               &
    882                                + ddy2_mg(l) *                                  &
     882                               + rho_air_mg(k,l) * ddy2_mg(l) *                &
    883883                               ( p_mg(k,j+1,i) + p_mg(k,j-1,i) )               &
    884884                               + f2_mg_b(k,l) * p_mg(kp1,j,i)                  &
     
    895895                         j   = jj
    896896                         p_mg(k,j,i) = 1.0_wp / f1_mg_b(k,l) * (               &
    897                                  ddx2_mg(l) *                                  &
     897                                 rho_air_mg(k,l) * ddx2_mg(l) *                &
    898898                               ( p_mg(k,j,i+1) + p_mg(k,j,i-1) )               &
    899                                + ddy2_mg(l) *                                  &
     899                               + rho_air_mg(k,l) * ddy2_mg(l) *                &
    900900                               ( p_mg(k,j+1,i) + p_mg(k,j-1,i) )               &
    901901                               + f2_mg_b(k,l) * p_mg(kp1,j,i)                  &
     
    904904                         j = jj+2
    905905                         p_mg(k,j,i) = 1.0_wp / f1_mg_b(k,l) * (               &
    906                                  ddx2_mg(l) *                                  &
     906                                 rho_air_mg(k,l) * ddx2_mg(l) *                &
    907907                               ( p_mg(k,j,i+1) + p_mg(k,j,i-1) )               &
    908                                + ddy2_mg(l) *                                  &
     908                               + rho_air_mg(k,l) * ddy2_mg(l) *                &
    909909                               ( p_mg(k,j+1,i) + p_mg(k,j-1,i) )               &
    910910                               + f2_mg_b(k,l) * p_mg(kp1,j,i)                  &
     
    921921                         j   = jj
    922922                         p_mg(k,j,i) = 1.0_wp / f1_mg_b(k,l) * (               &
    923                                  ddx2_mg(l) *                                  &
     923                                 rho_air_mg(k,l) * ddx2_mg(l) *                &
    924924                               ( p_mg(k,j,i+1) + p_mg(k,j,i-1) )               &
    925                                + ddy2_mg(l) *                                  &
     925                               + rho_air_mg(k,l) * ddy2_mg(l) *                &
    926926                               ( p_mg(k,j+1,i) + p_mg(k,j-1,i) )               &
    927927                               + f2_mg_b(k,l) * p_mg(kp1,j,i)                  &
     
    930930                         j = jj+2
    931931                         p_mg(k,j,i) = 1.0_wp / f1_mg_b(k,l) * (               &
    932                                  ddx2_mg(l) *                                  &
     932                                 rho_air_mg(k,l) * ddx2_mg(l) *                &
    933933                               ( p_mg(k,j,i+1) + p_mg(k,j,i-1) )               &
    934                                + ddy2_mg(l) *                                  &
     934                               + rho_air_mg(k,l) * ddy2_mg(l) *                &
    935935                               ( p_mg(k,j+1,i) + p_mg(k,j-1,i) )               &
    936936                               + f2_mg_b(k,l) * p_mg(kp1,j,i)                  &
Note: See TracChangeset for help on using the changeset viewer.