31 #include "dimensions.h"
35 #include "comdissip.h"
40 #include "description.h"
61 REAL (kind=kind(1.d0)) :: t_initial, t_final, tps_cpu
62 INTEGER,
SAVE :: iadvtr=0
80 integer ijb,ije,ijbu,ijbv,ijeu,ijev,j
81 type(
request),
SAVE :: testRequest
93 zdp(ij) = pbarug(ij-1,l) - pbarug(ij,l)
94 s - pbarvg(ij-iip1,l) + pbarvg(ij,l)
95 s + wg(ij,l+1) - wg(ij,l)
101 do ij=ijb,ije-iip1+1,iip1
102 zdp(ij)=zdp(ij+iip1-1)
106 zdp(ij)= zdp(ij)*
dtvr/ massem(ij,l)
112 CALL minmax ( ije-ijb+1, zdp(ijb), zdpmin,zdpmax )
114 IF(max(abs(zdpmin),abs(zdpmax)).GT.0.5)
THEN
115 print*,
'WARNING DP/P l=',l,
' MIN:',zdpmin,
159 * pbarug,pbarvg,
dtvr,p,
180 if(
iadv(iq) == 0) cycle
184 if(
iadv(iq).eq.10)
THEN
192 else if(
iadv(iq).eq.14)
then
200 else if(
iadv(iq).eq.12)
then
201 stop
'advtrac : schema non parallelise'
205 write(*,*)
'WARNING horizontal dt=',dtbon,
'dtvr=',
209 call advn(q(1,1,iq),massem,wg,pbarug,pbarvg,dtbon,1)
211 else if(
iadv(iq).eq.13)
then
212 stop
'advtrac : schema non parallelise'
216 write(*,*)
'WARNING horizontal dt=',dtbon,
'dtvr=',
220 call advn(q(1,1,iq),massem,wg,pbarug,pbarvg,dtbon,2)
225 else if (
iadv(iq).eq.20)
then
226 stop
'advtrac : schema non parallelise'
228 call pentes_ini (q(1,1,iq),wg,massem,pbarug,pbarvg,0)
233 else if (
iadv(iq).eq.30)
then
234 stop
'advtrac : schema non parallelise'
238 write(*,*)
'WARNING horizontal dt=',dtbon,
'dtvr=',
241 call prather(q(1,1,iq),wg,massem,pbarug,pbarvg,
246 else if (
iadv(iq).eq.11.OR.(
iadv(iq).GE.16.AND.
247 s
iadv(iq).LE.18))
then
249 stop
'advtrac : schema non parallelise'
255 write(*,*)
'WARNING horizontal dt=',dtbon,
'dtvr=',
262 aaa=wg(ij,l)*
dtvr/massem(ij,l)
263 cflmaxz=max(cflmaxz,aaa)
264 bbb=-wg(ij,l)*
dtvr/massem(ij,l-1)
265 cflmaxz=max(cflmaxz,bbb)
268 if (cflmaxz.GE.1)
then
269 write(*,*)
'WARNING vertical',
'CFLmaxz=', cflmaxz
276 call interpre(q(1,1,iq),qppm(1,1,iq),wg,fluxwppm,massem,
277 s apppm,bpppm,massebx,masseby,pbarug,pbarvg,
278 s unatppm,vnatppm,psppm)
284 if (
iadv(iq).eq.11)
then
286 call ppm3d(1,qppm(1,1,iq),
288 s unatppm,vnatppm,fluxwppm,dtbon,2,2,2,1,
295 else if (
iadv(iq).eq.16)
then
297 call ppm3d(1,qppm(1,1,iq),
299 s unatppm,vnatppm,fluxwppm,dtbon,3,3,3,1,
307 else if (
iadv(iq).eq.17)
then
309 call ppm3d(1,qppm(1,1,iq),
311 s unatppm,vnatppm,fluxwppm,dtbon,4,4,4,1,
319 else if (
iadv(iq).eq.18)
then
321 call ppm3d(1,qppm(1,1,iq),
323 s unatppm,vnatppm,fluxwppm,dtbon,5,5,5,1,
359 finmasse(ij,l) = p(ij,l) - p(ij,l+1)
subroutine pentes_ini(q, w, masse, pbaru, pbarv, mode)
integer, save iapp_tracvl
subroutine check_isotopes(q, ijb, ije, err_msg)
subroutine interpost(q, qppm)
real, dimension(:,:), pointer, save finmasse
subroutine adaptdt(nadv, dtbon, n, pbaru, masse)
subroutine qminimum_loc(q, nqtot, deltap)
logical, save ok_iso_verif
character(len=10), save planet_type
!$Id Turb_fcg_gcssold get_uvd hqturb_gcssold endif!large scale llm day day1 day day1 *dt_toga endif!time annee_ref dt_toga u_toga vq_toga w_prof vq_prof llm day day1 day day1 *dt_dice endif!time annee_ref dt_dice swup_dice vg_dice omega_dice tg_prof vg_profd w_profd omega_profd!do llm!print llm l llm
subroutine advn(q, masse, w, pbaru, pbarv, pdt, mode)
subroutine advtrac_loc(pbarug, pbarvg, wg, p, massem, q, teta, pk)
!$Header llmm1 INTEGER ip1jm
subroutine minmax(imax, xi, zmin, zmax)
subroutine ppm3d(IGD, Q, PS1, PS2, U, V, W, NDT, IORD, JORD, KORD, NC, IMR, JNP, j1, NLAY, AP, BP, PT, AE, fill, dum, Umax)
subroutine prather(q, w, masse, pbaru, pbarv, nt, dt)
subroutine vlspltgen_loc(q, iadv, pente_max, masse, w, pbaru, pbarv,
!$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
!$Id mode_top_bound COMMON comconstr dtvr
c c zjulian c cym CALL iim cym klev iim
character(len=maxlen) function int2str(int)
integer, dimension(:), allocatable, save iadv