--- trunk/libf/dyn3d/exner_hyb.f90 2011/07/19 12:54:20 48 +++ trunk/dyn3d/exner_hyb.f 2014/03/06 18:10:03 87 @@ -30,8 +30,7 @@ use dimens_m, only: iim, jjm, llm use comconst, only: kappa, cpp - use comvert, only: preff - use comgeom, only: aire_2d, apoln, apols + use disvert_m, only: preff use filtreg_m, only: filtreg REAL, intent(in):: ps(iim + 1, jjm + 1) @@ -49,8 +48,6 @@ !------------------------------------- pks = cpp * (ps / preff)**kappa - pks(:, 1) = SUM(aire_2d(:iim, 1) * pks(:iim, 1)) / apoln - pks(:, jjm + 1) = SUM(aire_2d(:iim, jjm + 1) * pks(:iim, jjm + 1)) / apols unpl2k = 1. + 2 * kappa beta(:, :, llm) = 1. / unpl2k @@ -59,16 +56,15 @@ / (p(:, :, l) * unpl2k + p(:, :, l+1) * (beta(:, :, l+1) - unpl2k)) ENDDO - pk(:, :, 1) = p(:, :, 1) * pks & - / (p(:, :, 1) * (1. + kappa) & - + 0.5 * (beta(:, :, 2) - unpl2k) * p(:, :, 2)) + pk(:, :, 1) = ps * pks & + / (ps * (1. + kappa) + 0.5 * (beta(:, :, 2) - unpl2k) * p(:, :, 2)) DO l = 2, llm - pk(:, :, l) = beta(:, :, l) * pk(:, :, l-1) + pk(:, :, l) = beta(:, :, l) * pk(:, :, l - 1) ENDDO if (present(pkf)) then pkf = pk - CALL filtreg(pkf, jjm + 1, llm, 2, 1, .TRUE., 1) + CALL filtreg(pkf, jjm + 1, llm, 2, 1, .TRUE.) end if END SUBROUTINE exner_hyb