4 SUBROUTINE advxp(LIMIT,DTX,PBARU,SM,S0,SSX,SY,SZ
5 . ,ssxx,ssxy,ssxz,syy,syz,szz,ntra)
7 ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
9 c second-order moments(som) advection of tracer in
x direction c
11 ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
13 c parametres principaux du modele
15 #include "dimensions.h"
23 c definition
de la grille du modele
28 c moments: sm total mass in each grid box
29 c s0 mass of tracer in each grid box
30 c si 1rst order moment in
i direction
31 c sij 2nd order moment in
i and
j directions
48 c mass fluxes across the boundaries(ugri,vgri,wgri)
54 c rem : vgri et wgri ne sont pas utilises dans
55 c cette
subroutine ( advection en x uniquement )
58 c tij are the moments for the current latitude and
level
62 REAL ty (
iim,ntra),tz (
iim,ntra)
63 REAL txx(
iim,ntra),txy(
iim,ntra)
64 REAL txz(
iim,ntra),tyy(
iim,ntra)
65 REAL tyz(
iim,ntra),tzz(
iim,ntra)
67 c the moments f are similarly defined and used as temporary
68 c storage for portions of the grid boxes in transit
74 REAL fxz(
iim,ntra),fyy(
iim,ntra)
75 REAL fyz(
iim,ntra),fzz(
iim,ntra)
86 REAL s1max,s1new,s2new
89 INTEGER num(
jjp1),lonk,numk
90 INTEGER lon,lati,latf,niv
91 INTEGER i,i2,i3,
j,jv,
l,
k,iter
98 c *** test
de passage d
'arguments ******
103 .lt.
c IF (S0(i,j,l,ntra) 0. ) THEN
104 c PRINT*,'s0(
',i,j,l,')=
',S0(i,j,l,ntra)
105 c print*, 'ssx(
',i,j,l,')=
',SSX(i,j,l,ntra)
106 c print*, 'sy(
',i,j,l,')=
',SY(i,j,l,ntra)
107 c print*, 'sz(
',i,j,l,')=
',SZ(i,j,l,ntra)
113 c *** test : diagnostique
de la qtite totale
de traceur
114 c dans
l'atmosphere avant l'advection
122 sqi = sqi + s0(
i,
j,
l,ntra)
126 print*,
'------ DIAG DANS ADVX2 - ENTREE -----'
129 c -------------------------------------
146 c
Interface : adaptation nouveau modele
147 c -------------------------------------
149 c ---------------------------------------------------------
150 c conversion des flux
de masses en kg/s
151 c pbaru est en n/s d
'ou :
157 ugri (i,j,llm+1-l) =pbaru (i,j,l)
160 C ---------------------------------------------------------
163 C boucle principale sur les niveaux et les latitudes
171 C program assumes periodic boundaries in X
174 SMNEW(I)=SM(I,K,L)+(UGRI(I-1,K,L)-UGRI(I,K,L))*DTX
176 SMNEW(1)=SM(1,K,L)+(UGRI(LON,K,L)-UGRI(1,K,L))*DTX
178 C modifications for extended polar zones
207 TM(I)=TM(I)+SM(I3,K,L)
208 ALF(I)=SM(I3,K,L)/TM(I)
210 ALFQ(I)=ALF(I)*ALF(I)
211 ALF1Q(I)=ALF1(I)*ALF1(I)
212 ALF2(I)=ALF1(I)-ALF(I)
213 ALF3(I)=ALF(I)*ALF1(I)
219 TEMPTM=-ALF(I)*T0(I,JV)+ALF1(I)*S0(I3,K,L,JV)
220 T0 (I,JV)=T0(I,JV)+S0(I3,K,L,JV)
221 TXX(I,JV)=ALFQ(I)*SSXX(I3,K,L,JV)+ALF1Q(I)*TXX(I,JV)
222 + +5.*( ALF3(I)*(SSX(I3,K,L,JV)-TX(I,JV))+ALF2(I)*TEMPTM )
223 TX (I,JV)=ALF(I)*SSX(I3,K,L,JV)+ALF1(I)*TX(I,JV)+3.*TEMPTM
224 TXY(I,JV)=ALF (I)*SSXY(I3,K,L,JV)+ALF1(I)*TXY(I,JV)
225 + +3.*(ALF1(I)*SY (I3,K,L,JV)-ALF (I)*TY (I,JV))
226 TXZ(I,JV)=ALF (I)*SSXZ(I3,K,L,JV)+ALF1(I)*TXZ(I,JV)
227 + +3.*(ALF1(I)*SZ (I3,K,L,JV)-ALF (I)*TZ (I,JV))
228 TY (I,JV)=TY (I,JV)+SY (I3,K,L,JV)
229 TZ (I,JV)=TZ (I,JV)+SZ (I3,K,L,JV)
230 TYY(I,JV)=TYY(I,JV)+SYY(I3,K,L,JV)
231 TYZ(I,JV)=TYZ(I,JV)+SYZ(I3,K,L,JV)
232 TZZ(I,JV)=TZZ(I,JV)+SZZ(I3,K,L,JV)
245 T0 (I,JV)=S0 (I,K,L,JV)
246 TX (I,JV)=SSX (I,K,L,JV)
247 TY (I,JV)=SY (I,K,L,JV)
248 TZ (I,JV)=SZ (I,K,L,JV)
249 TXX(I,JV)=SSXX(I,K,L,JV)
250 TXY(I,JV)=SSXY(I,K,L,JV)
251 TXZ(I,JV)=SSXZ(I,K,L,JV)
252 TYY(I,JV)=SYY(I,K,L,JV)
253 TYZ(I,JV)=SYZ(I,K,L,JV)
254 TZZ(I,JV)=SZZ(I,K,L,JV)
261 UEXT(I)=UGRI(I*NUMK,K,L)
264 C place limits on appropriate moments before transport
265 C (if flux-limiting is to be applied)
267 .NOT.
IF(LIMIT) GO TO 13
271 .GT.
IF(T0(I,JV)0.) THEN
274 S1NEW=AMIN1(S1MAX,AMAX1(-S1MAX,TX(I,JV)))
275 S2NEW=AMIN1( 2.*SLPMAX-ABS(S1NEW)/3. ,
276 + AMAX1(ABS(S1NEW)-SLPMAX,TXX(I,JV)) )
279 TXY(I,JV)=AMIN1(SLPMAX,AMAX1(-SLPMAX,TXY(I,JV)))
280 TXZ(I,JV)=AMIN1(SLPMAX,AMAX1(-SLPMAX,TXZ(I,JV)))
292 C calculate flux and moments between adjacent boxes
293 C 1- create temporary moments/masses for partial boxes in transit
294 C 2- reajusts moments remaining in the box
296 .lt.
C flux from IP to I if U(I)0
299 .LT.
IF(UEXT(I)0.) THEN
302 TM(I+1)=TM(I+1)-FM(I)
307 .LT.
IF(UEXT(I)0.) THEN
313 .gt.
C flux from I to IP if U(I)0
316 .GE.
IF(UEXT(I)0.) THEN
324 ALFQ(I)=ALF(I)*ALF(I)
326 ALF1Q(I)=ALF1(I)*ALF1(I)
327 ALF2(I)=ALF1(I)-ALF(I)
328 ALF3(I)=ALF(I)*ALFQ(I)
329 ALF4(I)=ALF1(I)*ALF1Q(I)
335 .LT.
IF(UEXT(I)0.) THEN
337 F0 (I,JV)=ALF (I)* ( T0(I+1,JV)-ALF1(I)*
338 + ( TX(I+1,JV)-ALF2(I)*TXX(I+1,JV) ) )
339 FX (I,JV)=ALFQ(I)*(TX(I+1,JV)-3.*ALF1(I)*TXX(I+1,JV))
340 FXX(I,JV)=ALF3(I)*TXX(I+1,JV)
341 FY (I,JV)=ALF (I)*(TY(I+1,JV)-ALF1(I)*TXY(I+1,JV))
342 FZ (I,JV)=ALF (I)*(TZ(I+1,JV)-ALF1(I)*TXZ(I+1,JV))
343 FXY(I,JV)=ALFQ(I)*TXY(I+1,JV)
344 FXZ(I,JV)=ALFQ(I)*TXZ(I+1,JV)
345 FYY(I,JV)=ALF (I)*TYY(I+1,JV)
346 FYZ(I,JV)=ALF (I)*TYZ(I+1,JV)
347 FZZ(I,JV)=ALF (I)*TZZ(I+1,JV)
349 T0 (I+1,JV)=T0(I+1,JV)-F0(I,JV)
350 TX (I+1,JV)=ALF1Q(I)*(TX(I+1,JV)+3.*ALF(I)*TXX(I+1,JV))
351 TXX(I+1,JV)=ALF4(I)*TXX(I+1,JV)
352 TY (I+1,JV)=TY (I+1,JV)-FY (I,JV)
353 TZ (I+1,JV)=TZ (I+1,JV)-FZ (I,JV)
354 TYY(I+1,JV)=TYY(I+1,JV)-FYY(I,JV)
355 TYZ(I+1,JV)=TYZ(I+1,JV)-FYZ(I,JV)
356 TZZ(I+1,JV)=TZZ(I+1,JV)-FZZ(I,JV)
357 TXY(I+1,JV)=ALF1Q(I)*TXY(I+1,JV)
358 TXZ(I+1,JV)=ALF1Q(I)*TXZ(I+1,JV)
366 .LT.
IF(UEXT(I)0.) THEN
370 F0 (I,JV)=ALF (I)* ( T0(1,JV)-ALF1(I)*
371 + ( TX(1,JV)-ALF2(I)*TXX(1,JV) ) )
372 FX (I,JV)=ALFQ(I)*(TX(1,JV)-3.*ALF1(I)*TXX(1,JV))
373 FXX(I,JV)=ALF3(I)*TXX(1,JV)
374 FY (I,JV)=ALF (I)*(TY(1,JV)-ALF1(I)*TXY(1,JV))
375 FZ (I,JV)=ALF (I)*(TZ(1,JV)-ALF1(I)*TXZ(1,JV))
376 FXY(I,JV)=ALFQ(I)*TXY(1,JV)
377 FXZ(I,JV)=ALFQ(I)*TXZ(1,JV)
378 FYY(I,JV)=ALF (I)*TYY(1,JV)
379 FYZ(I,JV)=ALF (I)*TYZ(1,JV)
380 FZZ(I,JV)=ALF (I)*TZZ(1,JV)
382 T0 (1,JV)=T0(1,JV)-F0(I,JV)
383 TX (1,JV)=ALF1Q(I)*(TX(1,JV)+3.*ALF(I)*TXX(1,JV))
384 TXX(1,JV)=ALF4(I)*TXX(1,JV)
385 TY (1,JV)=TY (1,JV)-FY (I,JV)
386 TZ (1,JV)=TZ (1,JV)-FZ (I,JV)
387 TYY(1,JV)=TYY(1,JV)-FYY(I,JV)
388 TYZ(1,JV)=TYZ(1,JV)-FYZ(I,JV)
389 TZZ(1,JV)=TZZ(1,JV)-FZZ(I,JV)
390 TXY(1,JV)=ALF1Q(I)*TXY(1,JV)
391 TXZ(1,JV)=ALF1Q(I)*TXZ(1,JV)
400 .GE.
IF(UEXT(I)0.) THEN
402 F0 (I,JV)=ALF (I)* ( T0(I,JV)+ALF1(I)*
403 + ( TX(I,JV)+ALF2(I)*TXX(I,JV) ) )
404 FX (I,JV)=ALFQ(I)*(TX(I,JV)+3.*ALF1(I)*TXX(I,JV))
405 FXX(I,JV)=ALF3(I)*TXX(I,JV)
406 FY (I,JV)=ALF (I)*(TY(I,JV)+ALF1(I)*TXY(I,JV))
407 FZ (I,JV)=ALF (I)*(TZ(I,JV)+ALF1(I)*TXZ(I,JV))
408 FXY(I,JV)=ALFQ(I)*TXY(I,JV)
409 FXZ(I,JV)=ALFQ(I)*TXZ(I,JV)
410 FYY(I,JV)=ALF (I)*TYY(I,JV)
411 FYZ(I,JV)=ALF (I)*TYZ(I,JV)
412 FZZ(I,JV)=ALF (I)*TZZ(I,JV)
414 T0 (I,JV)=T0(I,JV)-F0(I,JV)
415 TX (I,JV)=ALF1Q(I)*(TX(I,JV)-3.*ALF(I)*TXX(I,JV))
416 TXX(I,JV)=ALF4(I)*TXX(I,JV)
417 TY (I,JV)=TY (I,JV)-FY (I,JV)
418 TZ (I,JV)=TZ (I,JV)-FZ (I,JV)
419 TYY(I,JV)=TYY(I,JV)-FYY(I,JV)
420 TYZ(I,JV)=TYZ(I,JV)-FYZ(I,JV)
421 TZZ(I,JV)=TZZ(I,JV)-FZZ(I,JV)
422 TXY(I,JV)=ALF1Q(I)*TXY(I,JV)
423 TXZ(I,JV)=ALF1Q(I)*TXZ(I,JV)
430 C puts the temporary moments Fi into appropriate neighboring boxes
433 .LT.
IF(UEXT(I)0.) THEN
440 .GE.
IF(UEXT(I)0.) THEN
441 TM(I+1)=TM(I+1)+FM(I)
447 .GE.
IF(UEXT(I)0.) THEN
454 ALFQ(I)=ALF(I)*ALF(I)
455 ALF1Q(I)=ALF1(I)*ALF1(I)
456 ALF2(I)=ALF1(I)-ALF(I)
457 ALF3(I)=ALF(I)*ALF1(I)
463 .LT.
IF(UEXT(I)0.) THEN
465 TEMPTM=-ALF(I)*T0(I,JV)+ALF1(I)*F0(I,JV)
466 T0 (I,JV)=T0(I,JV)+F0(I,JV)
467 TXX(I,JV)=ALFQ(I)*FXX(I,JV)+ALF1Q(I)*TXX(I,JV)
468 + +5.*( ALF3(I)*(FX(I,JV)-TX(I,JV))+ALF2(I)*TEMPTM )
469 TX (I,JV)=ALF (I)*FX (I,JV)+ALF1(I)*TX (I,JV)+3.*TEMPTM
470 TXY(I,JV)=ALF (I)*FXY(I,JV)+ALF1(I)*TXY(I,JV)
471 + +3.*(ALF1(I)*FY (I,JV)-ALF (I)*TY (I,JV))
472 TXZ(I,JV)=ALF (I)*FXZ(I,JV)+ALF1(I)*TXZ(I,JV)
473 + +3.*(ALF1(I)*FZ (I,JV)-ALF (I)*TZ (I,JV))
474 TY (I,JV)=TY (I,JV)+FY (I,JV)
475 TZ (I,JV)=TZ (I,JV)+FZ (I,JV)
476 TYY(I,JV)=TYY(I,JV)+FYY(I,JV)
477 TYZ(I,JV)=TYZ(I,JV)+FYZ(I,JV)
478 TZZ(I,JV)=TZZ(I,JV)+FZZ(I,JV)
488 .GE.
IF(UEXT(I)0.) THEN
490 TEMPTM=ALF(I)*T0(I+1,JV)-ALF1(I)*F0(I,JV)
491 T0 (I+1,JV)=T0(I+1,JV)+F0(I,JV)
492 TXX(I+1,JV)=ALFQ(I)*FXX(I,JV)+ALF1Q(I)*TXX(I+1,JV)
493 + +5.*( ALF3(I)*(TX(I+1,JV)-FX(I,JV))-ALF2(I)*TEMPTM )
494 TX (I+1,JV)=ALF(I)*FX (I ,JV)+ALF1(I)*TX (I+1,JV)+3.*TEMPTM
495 TXY(I+1,JV)=ALF(I)*FXY(I ,JV)+ALF1(I)*TXY(I+1,JV)
496 + +3.*(ALF(I)*TY (I+1,JV)-ALF1(I)*FY (I ,JV))
497 TXZ(I+1,JV)=ALF(I)*FXZ(I ,JV)+ALF1(I)*TXZ(I+1,JV)
498 + +3.*(ALF(I)*TZ (I+1,JV)-ALF1(I)*FZ (I ,JV))
499 TY (I+1,JV)=TY (I+1,JV)+FY (I,JV)
500 TZ (I+1,JV)=TZ (I+1,JV)+FZ (I,JV)
501 TYY(I+1,JV)=TYY(I+1,JV)+FYY(I,JV)
502 TYZ(I+1,JV)=TYZ(I+1,JV)+FYZ(I,JV)
503 TZZ(I+1,JV)=TZZ(I+1,JV)+FZZ(I,JV)
511 .GE.
IF(UEXT(I)0.) THEN
513 TEMPTM=ALF(I)*T0(1,JV)-ALF1(I)*F0(I,JV)
514 T0 (1,JV)=T0(1,JV)+F0(I,JV)
515 TXX(1,JV)=ALFQ(I)*FXX(I,JV)+ALF1Q(I)*TXX(1,JV)
516 + +5.*( ALF3(I)*(TX(1,JV)-FX(I,JV))-ALF2(I)*TEMPTM )
517 TX (1,JV)=ALF(I)*FX(I,JV)+ALF1(I)*TX(1,JV)+3.*TEMPTM
518 TXY(1,JV)=ALF(I)*FXY(I,JV)+ALF1(I)*TXY(1,JV)
519 + +3.*(ALF(I)*TY (1,JV)-ALF1(I)*FY (I,JV))
520 TXZ(1,JV)=ALF(I)*FXZ(I,JV)+ALF1(I)*TXZ(1,JV)
521 + +3.*(ALF(I)*TZ (1,JV)-ALF1(I)*FZ (I,JV))
522 TY (1,JV)=TY (1,JV)+FY (I,JV)
523 TZ (1,JV)=TZ (1,JV)+FZ (I,JV)
524 TYY(1,JV)=TYY(1,JV)+FYY(I,JV)
525 TYZ(1,JV)=TYZ(1,JV)+FYZ(I,JV)
526 TZZ(1,JV)=TZZ(1,JV)+FZZ(I,JV)
530 C retour aux mailles d'origine(passage des tij aux sij)
540 alf(
i)=smnew(i3)/tm(
i)
541 tm(
i)=tm(
i)-smnew(i3)
543 alfq(
i)=alf(
i)*alf(
i)
545 alf1q(
i)=alf1(
i)*alf1(
i)
546 alf2(
i)=alf1(
i)-alf(
i)
547 alf3(
i)=alf(
i)*alfq(
i)
548 alf4(
i)=alf1(
i)*alf1q(
i)
556 s0(i3,
k,
l,jv)=alf(
i)* (
t0(
i,jv)-alf1(
i)*
557 + ( tx(
i,jv)-alf2(
i)*txx(
i,jv) ) )
558 ssx(i3,
k,
l,jv)=alfq(
i)*(tx(
i,jv)-3.*alf1(
i)*txx(
i,jv))
559 ssxx(i3,
k,
l,jv)=alf3(
i)*txx(
i,jv)
560 sy(i3,
k,
l,jv)=alf(
i)*(ty(
i,jv)-alf1(
i)*txy(
i,jv))
561 sz(i3,
k,
l,jv)=alf(
i)*(tz(
i,jv)-alf1(
i)*txz(
i,jv))
562 ssxy(i3,
k,
l,jv)=alfq(
i)*txy(
i,jv)
563 ssxz(i3,
k,
l,jv)=alfq(
i)*txz(
i,jv)
564 syy(i3,
k,
l,jv)=alf(
i)*tyy(
i,jv)
565 syz(i3,
k,
l,jv)=alf(
i)*tyz(
i,jv)
566 szz(i3,
k,
l,jv)=alf(
i)*tzz(
i,jv)
568 c reajusts moments remaining in the box
571 tx(
i,jv)=alf1q(
i)*(tx(
i,jv)+3.*alf(
i)*txx(
i,jv))
572 txx(
i,jv)=alf4(
i)*txx(
i,jv)
573 ty(
i,jv)=ty(
i,jv)-sy(i3,
k,
l,jv)
574 tz(
i,jv)=tz(
i,jv)-sz(i3,
k,
l,jv)
575 tyy(
i,jv)=tyy(
i,jv)-syy(i3,
k,
l,jv)
576 tyz(
i,jv)=tyz(
i,jv)-syz(i3,
k,
l,jv)
577 tzz(
i,jv)=tzz(
i,jv)-szz(i3,
k,
l,jv)
578 txy(
i,jv)=alf1q(
i)*txy(
i,jv)
579 txz(
i,jv)=alf1q(
i)*txz(
i,jv)
593 ssx(
i,
k,
l,jv)=tx(
i,jv)
594 sy(
i,
k,
l,jv)=ty(
i,jv)
595 sz(
i,
k,
l,jv)=tz(
i,jv)
596 ssxx(
i,
k,
l,jv)=txx(
i,jv)
597 ssxy(
i,
k,
l,jv)=txy(
i,jv)
598 ssxz(
i,
k,
l,jv)=txz(
i,jv)
599 syy(
i,
k,
l,jv)=tyy(
i,jv)
600 syz(
i,
k,
l,jv)=tyz(
i,jv)
601 szz(
i,
k,
l,jv)=tzz(
i,jv)
609 c ----------- aa test en fin
de advx ------ controle des s*
612 c
DO 9999
j = 1,
jjp1
613 c
DO 9999
i = 1, iip1
614 c
IF (s0(
i,
j,
l,ntra).lt.0..and.
limit)
THEN
615 c print*,
'-------------------'
616 c print*,
'En fin de ADVXP'
617 c print*,
'S0(',
i,
j,
l,
')=',s0(
i,
j,
l,ntra)
618 c print*,
'SSX(',
i,
j,
l,
')=',ssx(
i,
j,
l,ntra)
619 c print*,
'SY(',
i,
j,
l,
')=',sy(
i,
j,
l,ntra)
620 c print*,
'SZ(',
i,
j,
l,
')=',sz(
i,
j,
l,ntra)
621 c
WRITE (*,*)
'On arrete !! - pbl en fin de ADVXP'
625 c ---------- bouclage cyclique
629 sm(iip1,
j,
l) = sm(1,
j,
l)
630 s0(iip1,
j,
l,ntra) = s0(1,
j,
l,ntra)
631 ssx(iip1,
j,
l,ntra) = ssx(1,
j,
l,ntra)
632 sy(iip1,
j,
l,ntra) = sy(1,
j,
l,ntra)
633 sz(iip1,
j,
l,ntra) = sz(1,
j,
l,ntra)
637 c ----------- qqtite totale
de traceur dans tte
l'atmosphere
641 sqf = sqf + S0(i,j,l,ntra)
646 PRINT*,'------ diag dans advx2 - sortie -----
'
648 c-------------------------------------------------------------
!$Id NSTRA real GKLIFT real GVSEC REAL GWD_RANDO_RUWMAX!Maximum Eliassen Palm flux at launch level
!$Id!Thermodynamical constants for t0 real clmci real epsim1 real hrd real grav COMMON cvthermo rowl t0
c c $Id c c calculs statistiques distribution nuage ftion du regime dynamique c c Ce calcul doit etre fait a partir de valeurs mensuelles CALL nbregdyn DO kmaxm1 DO l
!$Header!c REAL ripx REAL fy
!$Header!c REAL ripx REAL fx
!$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
c c $Id c c calculs statistiques distribution nuage ftion du regime dynamique c c Ce calcul doit etre fait a partir de valeurs mensuelles CALL nbregdyn DO k
!$Id klon initialisation mois suivants day_rain itap ENDIF!Calcul fin de nday_rain calcul nday_rain itap DO i
subroutine advx(limit, dtx, pbaru, sm, s0, sx, sy, sz, lati, latf)
!$Id Turb_fcg!implicit none!ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc!cette routine permet d obtenir hq et ainsi de!pouvoir calculer la convergence et le cisaillement dans la physiq!cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc INTEGER klev REAL j
!$Header!integer nvarmx parameter(nfmx=10, imx=200, jmx=150, lmx=200, nvarmx=1000) real xd(imx
!$Header!c c INCLUDE fxyprim h c c c Fonctions in line c c REAL fyprim REAL rj c c il faut la calculer avant d appeler ces fonctions c c c Fonctions a changer selon x(x) et y(y) choisis.c-----------------------------------------------------------------c c.....ici
subroutine fxy(rlatu, yprimu, rlatv, yprimv, rlatu1, yprimu1, rlatu2, yprimu2, rlonu, xprimu, rlonv, xprimv, rlonm025, xprimm025, rlonp025, xprimp025)
c c zjulian c cym CALL iim cym klev iim