4 SUBROUTINE add_phys_tend (zdu,zdv,zdt,zdq,zdql,zdqi,paprs,text,abortphy)
 
   35 REAL zq_int, zqp_int, zq_new
 
   48 logical, 
save :: first=.
true.
 
   55       IF (abortphy==1) 
RETURN  
   85             IF ( zt>370. .or. zt<130. .or. abs(zdt(i,k))>50. ) 
then 
   90             IF ( zq<0. .or. zq>0.1 .or. abs(zdq(i,k))>1.e-2 ) 
then 
  104 IF (jbad .GT. 0) 
THEN 
  108           print*,
'PLANTAGE POUR LE POINT i rlon rlat =',i,
rlon(i),
rlat(i),text
 
  109           print*,
'l    T     dT       Q     dQ    ' 
  111              write(*,
'(i3,2f14.4,2e14.2)') k,
t_seri(i,k),zdt(i,k),
q_seri(i,k),zdq(i,k)
 
  121 IF (jqbad .GT. 0) 
THEN 
  126            print*,
'WARNING  : EAU POUR LE POINT i rlon rlat =',i,
rlon(i),
rlat(i),text
 
  127            print*,
'l    T     dT       Q     dQ    ' 
  129               write(*,
'(i3,2f14.4,2e14.2)') k,
t_seri(i,k),zdt(i,k),
q_seri(i,k),zdq(i,k)
 
  132           IF (ok_conserv_q) 
THEN 
  134             IF (.NOT.done(i)) 
THEN                   
  136                 zqp(k) = max(
q_seri(i,k),1.e-15)
 
  141                 zq_int  = zq_int  + 
q_seri(i,k)*(paprs(i,k)-paprs(i,k+1))/
rg 
  142                 zqp_int = zqp_int + zqp(k)     *(paprs(i,k)-paprs(i,k+1))/
rg 
  145                print*,
' cas q_seri<1.e-15 i k zq_int zqp_int zq_int/zqp_int :', &
 
  146                                     i, kqadrs(j), zq_int, zqp_int, zq_int/zqp_int
 
  149                 zq_new = zqp(k)*zq_int/zqp_int
 
  150                 zdq(i,k) = zdq(i,k) + zq_new - 
q_seri(i,k)
 
  159               if (zq.lt.1.e-15) 
then 
  160                  if (
q_seri(i,k).lt.1.e-15) 
then 
  162                    print*,
' cas q_seri<1.e-15 i k q_seri zq zdq :',i,k,
q_seri(i,k),zq,zdq(i,k)
 
  165                   zdq(i,k)=(1.e-15-
q_seri(i,k))
 
  185             IF ( 
t_seri(i,k)>370. .or. 
t_seri(i,k)<130. .or. abs(zdt(i,k))>50. ) 
then 
  192             IF ( 
q_seri(i,k)<0. .or. 
q_seri(i,k)>0.1 .or. abs(zdq(i,k))>1.e-2 ) 
then 
  202 IF (jbad .GT. 0) 
THEN 
  207           print*,
'PLANTAGE2 POUR LE POINT i itap rlon rlat txt jbad zdt t',i,itap,
rlon(i),
rlat(i),text,jbad, &
 
  208        &        zdt(i,k),
t_seri(i,k)-zdt(i,k)
 
  210           print*,
'l    T     dT       Q     dQ    ' 
  212              write(*,
'(i3,2f14.4,2e14.2)') k,
t_seri(i,k),zdt(i,k),
q_seri(i,k),zdq(i,k)
 
  219 IF (jqbad .GT. 0) 
THEN 
  224           print*,
'WARNING  : EAU2 POUR LE POINT i itap rlon rlat txt jqbad zdq q zdql ql',i,itap,
rlon(i),
rlat(i),text,jqbad,&
 
  225        &        zdq(i,k), 
q_seri(i,k)-zdq(i,k), zdql(i,k), 
ql_seri(i,k)-zdql(i,k)
 
  227           print*,
'l    T     dT       Q     dQ    ' 
  229             write(*,
'(i3,2f14.4,2e14.2)') k,
t_seri(i,k),zdt(i,k),
q_seri(i,k),zdq(i,k)
 
  245       IF (abortphy==1) 
THEN 
  246         print*,
'ERROR ABORT hgardfou dans ',text
 
subroutine print_debug_phys(i, debug_lev, text)
 
real, dimension(:,:), allocatable, save qs_seri
 
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL false
 
subroutine add_phys_tend(zdu, zdv, zdt, zdq, zdql, zdqi, paprs, text, abortphy)
 
real, dimension(:), allocatable, save rlon
 
!FH On elimine toutes les clefs physiques dans la dynamique prt_level
 
real, dimension(:,:), allocatable, save q_seri
 
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
 
subroutine hgardfou(t, tsol, text, abortphy)
 
real, dimension(:), allocatable, save rlat
 
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL & u_seri
 
real, dimension(:,:), allocatable, save t_seri
 
real, dimension(:,:), allocatable, save ql_seri
 
real, dimension(:,:), allocatable, save ftsol
 
real, dimension(:,:), allocatable, save v_seri