Ignore:
Timestamp:
Jan 27, 2003, 12:01:53 PM (22 years ago)
Author:
lmdzadmin
Message:

Nettoyage + correction bug q 2m IM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ.3.3/branches/rel-LF/libf/phylmd/stdlevvar.F90

    r433 r445  
    5151      REAL, PARAMETER :: RKAR=0.40
    5252! niter : nombre iterations calcul "corrector"
    53       INTEGER, parameter :: niter=6, ncon=niter-1
     53!     INTEGER, parameter :: niter=6, ncon=niter-1
     54      INTEGER, parameter :: niter=2, ncon=niter-1
    5455!
    5556! Variables locales
     
    7374      LOGICAL :: okri
    7475      REAL, dimension(klon) :: u_zref_p, te_zref_p, temp_p, q_zref_p
     76!convertgence
     77      REAL, dimension(klon) :: te_zref_con, q_zref_con
    7578      REAL, dimension(klon) :: u_zref_c, te_zref_c, temp_c, q_zref_c
    7679      REAL, dimension(klon) :: ok_pred, ok_corr
     
    115118        te_zref(i) = ts1(i) + delte(i)
    116119        temp(i) = te_zref(i) * (psol(i)/pat1(i))**(-RKAPPA)
    117 !       q_zref_p(i) = q_zref(i)
     120        q_zref_p(i) = q_zref(i)
    118121!       te_zref_p(i) = te_zref(i)
    119122        temp_p(i) = temp(i)
     
    142145!                 (1 + RVTMP2 * max(q_zref(i),0.0))
    143146!
    144           IF(temp(i).GT.350.) THEN
    145             WRITE(*,*) 'temp(i) GT 350 K !!',i,nsrf,temp(i)
    146           ENDIF
     147!IM +++
     148!         IF(temp(i).GT.350.) THEN
     149!           WRITE(*,*) 'temp(i) GT 350 K !!',i,nsrf,temp(i)
     150!         ENDIF
     151!IM ---
    147152!
    148153        IF(n.EQ.ncon) THEN
    149           te_zref_p(i) = te_zref(i)
    150           q_zref_p(i) = q_zref(i)
     154          te_zref_con(i) = te_zref(i)
     155          q_zref_con(i) = q_zref(i)
    151156        ENDIF
    152157!
     
    158163!
    159164        DO i = 1, knon
    160           conv_te(i) = (te_zref(i) - te_zref_p(i))/te_zref_p(i)
    161           conv_q(i) = (q_zref(i) - q_zref_p(i))/q_zref_p(i)
     165          conv_te(i) = (te_zref(i) - te_zref_con(i))/te_zref_con(i)
     166          conv_q(i) = (q_zref(i) - q_zref_con(i))/q_zref_con(i)
     167!IM +++
    162168!         IF(abs(conv_te(i)).GE.0.0025.AND.abs(conv_q(i)).GE.0.05) THEN
    163 !           PRINT*,'DIV','i=',i,te_zref_p(i),te_zref(i),conv_te(i), &
    164 !           q_zref_p(i),q_zref(i),conv_q(i)
     169!           PRINT*,'DIV','i=',i,te_zref_con(i),te_zref(i),conv_te(i), &
     170!           q_zref_con(i),q_zref(i),conv_q(i)
    165171!         ENDIF
     172!IM ---
    166173        ENDDO
    167174!
     
    170177        temp_c(i) = temp(i)
    171178!
    172         IF(zri1(i).LT.0.) THEN
    173           IF(nsrf.EQ.1) THEN
    174             ok_pred(i)=1.
    175             ok_corr(i)=0.
    176           ELSE
    177             ok_pred(i)=0.
    178             ok_corr(i)=1.
    179           ENDIF
    180         ELSE
    181           ok_pred(i)=0.
    182           ok_corr(i)=1.
    183         ENDIF
     179!       IF(zri1(i).LT.0.) THEN
     180!         IF(nsrf.EQ.1) THEN
     181!           ok_pred(i)=1.
     182!           ok_corr(i)=0.
     183!         ELSE
     184!           ok_pred(i)=0.
     185!           ok_corr(i)=1.
     186!         ENDIF
     187!       ELSE
     188!         ok_pred(i)=0.
     189!         ok_corr(i)=1.
     190!       ENDIF
     191!
     192        ok_pred(i)=0.
     193        ok_corr(i)=1.
    184194!
    185195        t_2m(i) = temp_p(i) * ok_pred(i) + temp_c(i) * ok_corr(i)
    186196        q_2m(i) = q_zref_p(i) * ok_pred(i) + q_zref_c(i) * ok_corr(i)
     197!IM +++
     198!       IF(n.EQ.niter) THEN
     199!       IF(t_2m(i).LT.t1(i).AND.t_2m(i).LT.ts1(i)) THEN
     200!         PRINT*,' BAD t2m LT ',i,nsrf,t_2m(i),t1(i),ts1(i)
     201!       ELSEIF(t_2m(i).GT.t1(i).AND.t_2m(i).GT.ts1(i)) THEN
     202!         PRINT*,' BAD t2m GT ',i,nsrf,t_2m(i),t1(i),ts1(i)
     203!       ENDIF
     204!       ENDIF
     205!IM ---
    187206      ENDDO
    188207!
Note: See TracChangeset for help on using the changeset viewer.