4 c ***********************************************************
8 c xcov et ycov etant les compos. covariantes
de v
9 c ***********************************************************
77 'entree pour le s-progc grx et gry sont des arguments de sortie pour le s-progcc USE write_Field_p USE parallel USE times USE mod_hallo USE mod_filtreg_p USE nxgraro2_mod IMPLICIT NONEc#include "dimensions.h"#include "paramet.h"#include "comdissipn.h"cc ...... variables en arguments .......c INTEGER klevel REAL xcov( ijb_u:ije_u,klevel ), ycov( ijb_v:ije_v,klevel ) REAL grx_out( ijb_u:ije_u,klevel ),gry_out(ijb_v:ije_v,klevel)cc ...... variables locales ........c REAL signe, nugradrs INTEGER l,ij,iter,lr Type(Request) :: Request_dissipc ........................................................c INTEGER :: ijb,ije,jjb,jje cc signe = (-1.)**lr nugradrs = signe * crotcc CALL SCOPY ( ip1jmp1* klevel, xcov, 1, grx, 1 )c CALL SCOPY ( ip1jm * klevel, ycov, 1, gry, 1 ) ijb=ij_begin ije=ij_endc$OMP DO SCHEDULE(STATIC,OMP_CHUNK) DO l = 1, klevel grx(ijb:ije,l)=xcov(ijb:ije,l) ENDDOc$OMP END DO NOWAITc$OMP BARRIER call Register_Hallo_u(grx,llm,0,1,1,0,Request_dissip) call SendRequest(Request_dissip)c$OMP BARRIER call WaitRequest(Request_dissip)c$OMP BARRIER ijb=ij_begin ije=ij_end if(pole_sud) ije=ij_end-iip1c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) DO l = 1, klevel gry(ijb:ije,l)=ycov(ijb:ije,l) ENDDOc$OMP END DO NOWAIT c CALL rotatf_loc ( klevel, grx, gry, rot )c call write_field3d_p('rot1
87 ',reshape(rot,(/iip1,jjm,llm/)))c$OMP BARRIER call Register_Hallo_v(rot,llm,1,1,1,1,Request_dissip) call SendRequest(Request_dissip)c$OMP BARRIER call WaitRequest(Request_dissip)c$OMP BARRIER CALL laplacien_rot_loc ( klevel, rot, rot,grx,gry )c call write_field3d_p('rot2
89 ',reshape(rot,(/iip1,jjm,llm/)))cc ..... Iteration de l'operateur
laplacien_rotgam .....
108 if (pole_sud) jje=jj_end-1
110 CALL
filtreg_p( rot, jjb_v,jje_v, jjb,jje,jjm,
111 & klevel, 2,1, .
false.,1)
125 c$omp
DO schedule(static,omp_chunk)
128 if(pole_sud) ije=ij_end-iip1
130 gry_out(
ij,
l ) = gry(
ij,
l ) * nugradrs
133 if(pole_sud) ije=ij_end
135 grx_out(
ij,
l ) = grx(
ij,
l ) * nugradrs