Ignore:
Timestamp:
Jan 30, 2015, 2:57:13 PM (10 years ago)
Author:
Laurent Fairhead
Message:

Merged trunk changes -r2158:2186 into testing branch.

Location:
LMDZ5/branches/testing
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/branches/testing

  • LMDZ5/branches/testing/libf/phylmd/climb_hq_mod.F90

    r1910 r2187  
    3030  SUBROUTINE climb_hq_down(knon, coefhq, paprs, pplay, &
    3131       delp, temp, q, dtime, &
     32!!! nrlmd le 02/05/2011
     33       Ccoef_H_out, Ccoef_Q_out, Dcoef_H_out, Dcoef_Q_out, &
     34       Kcoef_hq_out, gama_q_out, gama_h_out, &
     35!!!
    3236       Acoef_H_out, Acoef_Q_out, Bcoef_H_out, Bcoef_Q_out)
    3337
    34     INCLUDE "YOMCST.h"
    3538! This routine calculates recursivly the coefficients C and D
    3639! for the quantity X=[Q,H] in equation X(k) = C(k) + D(k)*X(k-1), where k is
     
    5457    REAL, DIMENSION(klon), INTENT(OUT)       :: Bcoef_Q_out
    5558
     59!!! nrlmd le 02/05/2011
     60    REAL, DIMENSION(klon,klev), INTENT(OUT)  :: Ccoef_H_out
     61    REAL, DIMENSION(klon,klev), INTENT(OUT)  :: Ccoef_Q_out
     62    REAL, DIMENSION(klon,klev), INTENT(OUT)  :: Dcoef_H_out
     63    REAL, DIMENSION(klon,klev), INTENT(OUT)  :: Dcoef_Q_out
     64    REAL, DIMENSION(klon,klev), INTENT(OUT)  :: Kcoef_hq_out
     65    REAL, DIMENSION(klon,klev), INTENT(OUT)  :: gama_q_out
     66    REAL, DIMENSION(klon,klev), INTENT(OUT)  :: gama_h_out
     67!!!
     68
    5669! Local variables
    5770!****************************************************************************************
     
    6578! Include
    6679!****************************************************************************************
     80    INCLUDE "YOMCST.h"
    6781    INCLUDE "compbl.h"   
    6882
     
    186200    Bcoef_Q_out = Bcoef_Q
    187201
     202!****************************************************************************************
     203! 7)
     204! If Pbl is split, return also the other layers in output variables
     205!
     206!****************************************************************************************
     207!!! jyg le 07/02/2012
     208       IF (mod(iflag_pbl_split,2) .eq.1) THEN
     209!!! nrlmd le 02/05/2011
     210    DO k= 1, klev
     211      DO i= 1, klon
     212        Ccoef_H_out(i,k) = Ccoef_H(i,k)
     213        Dcoef_H_out(i,k) = Dcoef_H(i,k)
     214        Ccoef_Q_out(i,k) = Ccoef_Q(i,k)
     215        Dcoef_Q_out(i,k) = Dcoef_Q(i,k)
     216        Kcoef_hq_out(i,k) = Kcoefhq(i,k)
     217          IF (k.eq.1) THEN
     218            gama_h_out(i,k)  = 0.
     219            gama_q_out(i,k)  = 0.
     220          ELSE
     221            gama_h_out(i,k)  = gamah(i,k)
     222            gama_q_out(i,k)  = gamaq(i,k)
     223          ENDIF
     224      ENDDO
     225    ENDDO
     226!!!     
     227       ENDIF  ! (mod(iflag_pbl_split,2) .eq.1)
     228!!!
     229
    188230  END SUBROUTINE climb_hq_down
    189231!
     
    252294       Bcoef(i) = -1. * RG / buf
    253295    END DO
    254     acoef(knon+1: klon) = 0.
    255     bcoef(knon+1: klon) = 0.
    256296
    257297  END SUBROUTINE calc_coef
     
    261301  SUBROUTINE climb_hq_up(knon, dtime, t_old, q_old, &
    262302       flx_q1, flx_h1, paprs, pplay, &
     303!!! nrlmd le 02/05/2011
     304       Acoef_H_in, Acoef_Q_in, Bcoef_H_in, Bcoef_Q_in, &
     305       Ccoef_H_in, Ccoef_Q_in, Dcoef_H_in, Dcoef_Q_in, &
     306       Kcoef_hq_in, gama_q_in, gama_h_in, &
     307!!!
    263308       flux_q, flux_h, d_q, d_t)
    264309!
     
    269314! C and D are known from before and k is index of the vertical layer.
    270315!   
    271     INCLUDE "YOMCST.h"
     316
    272317! Input arguments
    273318!****************************************************************************************
     
    279324    REAL, DIMENSION(klon,klev), INTENT(IN)   :: pplay
    280325
     326!!! nrlmd le 02/05/2011
     327    REAL, DIMENSION(klon), INTENT(IN)        :: Acoef_H_in,Acoef_Q_in, Bcoef_H_in, Bcoef_Q_in
     328    REAL, DIMENSION(klon,klev), INTENT(IN)   :: Ccoef_H_in, Ccoef_Q_in, Dcoef_H_in, Dcoef_Q_in
     329    REAL, DIMENSION(klon,klev), INTENT(IN)   :: Kcoef_hq_in, gama_q_in, gama_h_in
     330!!!
     331
    281332! Output arguments
    282333!****************************************************************************************
     
    289340    REAL, DIMENSION(klon)                    :: psref         
    290341    INTEGER                                  :: k, i, ierr
     342 
     343! Include
     344!****************************************************************************************
     345    INCLUDE "YOMCST.h"
     346    INCLUDE "compbl.h"   
    291347
    292348!****************************************************************************************
     
    301357
    302358    psref(1:knon) = paprs(1:knon,1) 
     359
     360!!! jyg le 07/02/2012
     361       IF (mod(iflag_pbl_split,2) .eq.1) THEN
     362!!! nrlmd le 02/05/2011
     363    DO i = 1, knon
     364      Acoef_H(i)=Acoef_H_in(i)
     365      Acoef_Q(i)=Acoef_Q_in(i)
     366      Bcoef_H(i)=Bcoef_H_in(i)
     367      Bcoef_Q(i)=Bcoef_Q_in(i)
     368    ENDDO
     369    DO k = 1, klev
     370      DO i = 1, knon
     371        Ccoef_H(i,k)=Ccoef_H_in(i,k)
     372        Ccoef_Q(i,k)=Ccoef_Q_in(i,k)
     373        Dcoef_H(i,k)=Dcoef_H_in(i,k)
     374        Dcoef_Q(i,k)=Dcoef_Q_in(i,k)
     375        Kcoefhq(i,k)=Kcoef_hq_in(i,k)
     376          IF (k.gt.1) THEN
     377            gamah(i,k)=gama_h_in(i,k)
     378            gamaq(i,k)=gama_q_in(i,k)
     379          ENDIF
     380      ENDDO
     381    ENDDO
     382!!!     
     383       ENDIF  ! (mod(iflag_pbl_split,2) .eq.1)
     384!!!
    303385
    304386!****************************************************************************************
Note: See TracChangeset for help on using the changeset viewer.