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