/[lmdze]/trunk/phylmd/Interface_surf/clqh.f
ViewVC logotype

Diff of /trunk/phylmd/Interface_surf/clqh.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 284 by guez, Fri Jul 20 17:35:43 2018 UTC revision 285 by guez, Fri Jul 20 17:53:18 2018 UTC
# Line 98  contains Line 98  contains
98      REAL run_off_lic_0(klon)! runof glacier au pas de temps precedent      REAL run_off_lic_0(klon)! runof glacier au pas de temps precedent
99    
100      ! Local:      ! Local:
101      INTEGER knon  
102        INTEGER knon, k
103      REAL evap(size(knindex)) ! (knon) evaporation au sol      REAL evap(size(knindex)) ! (knon) evaporation au sol
     INTEGER i, k  
104      REAL, dimension(size(knindex), klev):: cq, dq, ch, dh ! (knon, klev)      REAL, dimension(size(knindex), klev):: cq, dq, ch, dh ! (knon, klev)
105      REAL buf1(size(knindex)), buf2(size(knindex))      REAL buf1(size(knindex)), buf2(size(knindex))
106      REAL zx_coef(size(knindex), 2:klev) ! (knon, 2:klev)      REAL zx_coef(size(knindex), 2:klev) ! (knon, 2:klev)
# Line 143  contains Line 143  contains
143           + t(:, k)) / 2. / RG / paprs(:, k) * (pplay(:, k - 1) - pplay(:, k))) &           + t(:, k)) / 2. / RG / paprs(:, k) * (pplay(:, k - 1) - pplay(:, k))) &
144           * RCPD * (psref / paprs(:, k))**RKAPPA           * RCPD * (psref / paprs(:, k))**RKAPPA
145    
146      DO i = 1, knon      buf1 = zx_coef(:, klev) + delp(:, klev)
147         buf1(i) = zx_coef(i, klev) + delp(i, klev)      cq(:, klev) = q(:, klev) * delp(:, klev) / buf1
148         cq(i, klev) = q(i, klev) * delp(i, klev) / buf1(i)      dq(:, klev) = zx_coef(:, klev) / buf1
149         dq(i, klev) = zx_coef(i, klev) / buf1(i)  
150        buf2 = delp(:, klev) / pkf(:, klev) + zx_coef(:, klev)
151         buf2(i) = delp(i, klev) / pkf(i, klev) + zx_coef(i, klev)      ch(:, klev) = (h(:, klev) / pkf(:, klev) * delp(:, klev) &
152         ch(i, klev) = (h(i, klev) / pkf(i, klev) * delp(i, klev) &           - zx_coef(:, klev) * gamah(:, klev)) / buf2
153              - zx_coef(i, klev) * gamah(i, klev)) / buf2(i)      dh(:, klev) = zx_coef(:, klev) / buf2
        dh(i, klev) = zx_coef(i, klev) / buf2(i)  
     ENDDO  
154    
155      DO k = klev - 1, 2, - 1      DO k = klev - 1, 2, - 1
156         DO i = 1, knon         buf1 = delp(:, k) + zx_coef(:, k) &
157            buf1(i) = delp(i, k) + zx_coef(i, k) &              + zx_coef(:, k + 1) * (1. - dq(:, k + 1))
158                 + zx_coef(i, k + 1) * (1. - dq(i, k + 1))         cq(:, k) = (q(:, k) * delp(:, k) &
159            cq(i, k) = (q(i, k) * delp(i, k) &              + zx_coef(:, k + 1) * cq(:, k + 1)) / buf1
160                 + zx_coef(i, k + 1) * cq(i, k + 1)) / buf1(i)         dq(:, k) = zx_coef(:, k) / buf1
161            dq(i, k) = zx_coef(i, k) / buf1(i)  
162           buf2 = delp(:, k) / pkf(:, k) + zx_coef(:, k) &
163            buf2(i) = delp(i, k) / pkf(i, k) + zx_coef(i, k) &              + zx_coef(:, k + 1) * (1. - dh(:, k + 1))
164                 + zx_coef(i, k + 1) * (1. - dh(i, k + 1))         ch(:, k) = (h(:, k) / pkf(:, k) * delp(:, k) &
165            ch(i, k) = (h(i, k) / pkf(i, k) * delp(i, k) &              + zx_coef(:, k + 1) * ch(:, k + 1) &
166                 + zx_coef(i, k + 1) * ch(i, k + 1) &              + zx_coef(:, k + 1) * gamah(:, k + 1) &
167                 + zx_coef(i, k + 1) * gamah(i, k + 1) &              - zx_coef(:, k) * gamah(:, k)) / buf2
168                 - zx_coef(i, k) * gamah(i, k)) / buf2(i)         dh(:, k) = zx_coef(:, k) / buf2
           dh(i, k) = zx_coef(i, k) / buf2(i)  
        ENDDO  
169      ENDDO      ENDDO
170    
171      DO i = 1, knon      buf1 = delp(:, 1) + zx_coef(:, 2) * (1. - dq(:, 2))
172         buf1(i) = delp(i, 1) + zx_coef(i, 2) * (1. - dq(i, 2))      cq(:, 1) = (q(:, 1) * delp(:, 1) + zx_coef(:, 2) * cq(:, 2)) / buf1
173         cq(i, 1) = (q(i, 1) * delp(i, 1) + zx_coef(i, 2) * cq(i, 2)) / buf1(i)      dq(:, 1) = - 1. * RG / buf1
174         dq(i, 1) = - 1. * RG / buf1(i)  
175        buf2 = delp(:, 1) / pkf(:, 1) + zx_coef(:, 2) * (1. - dh(:, 2))
176         buf2(i) = delp(i, 1) / pkf(i, 1) + zx_coef(i, 2) * (1. - dh(i, 2))      ch(:, 1) = (h(:, 1) / pkf(:, 1) * delp(:, 1) &
177         ch(i, 1) = (h(i, 1) / pkf(i, 1) * delp(i, 1) &           + zx_coef(:, 2) * (gamah(:, 2) + ch(:, 2))) / buf2
178              + zx_coef(i, 2) * (gamah(i, 2) + ch(i, 2))) / buf2(i)      dh(:, 1) = - 1. * RG / buf2
        dh(i, 1) = - 1. * RG / buf2(i)  
     ENDDO  
179    
180      CALL interfsurf_hq(dtime, julien, rmu0, nisurf, knindex, debut, tsoil, &      CALL interfsurf_hq(dtime, julien, rmu0, nisurf, knindex, debut, tsoil, &
181           qsol, u1lay, v1lay, t(:, 1), q(:, 1), tq_cdrag(:knon), ch(:, 1), &           qsol, u1lay, v1lay, t(:, 1), q(:, 1), tq_cdrag(:knon), ch(:, 1), &

Legend:
Removed from v.284  
changed lines
  Added in v.285

  ViewVC Help
Powered by ViewVC 1.1.21