SUBROUTINE divgrad_p (klevel,h, lh, divgra ) USE parallel USE times IMPLICIT NONE c c======================================================================= c c Auteur : P. Le Van c ---------- c c lh c calcul de (div( grad )) de h ..... c h et lh sont des arguments d'entree pour le s-prog c divgra est un argument de sortie pour le s-prog c c======================================================================= c c declarations: c ------------- c #include "dimensions.h" #include "paramet.h" #include "comgeom.h" #include "comdissipn.h" #include "logic.h" c INTEGER klevel REAL h( ip1jmp1,klevel ), divgra( ip1jmp1,klevel ) c REAL ghy(ip1jm,llm), ghx(ip1jmp1,llm) INTEGER l,ij,iter,lh c EXTERNAL filtreg EXTERNAL SCOPY, grad, covcont, diverg INTEGER ijb,ije,jjb,jje c c c CALL SCOPY ( ip1jmp1*klevel,h,1,divgra,1 ) ijb=ij_begin ije=ij_end divgra(ijb:ije,1:klevel)=h(ijb:ije,1:klevel) c c DO 10 iter = 1,lh jjb=jj_begin jje=jj_end CALL filtreg_p ( divgra,jjb,jje,jjp1,klevel,2,1,.true.,1 ) c call exchange_Hallo(divgra,ip1jmp1,llm,0,1) call suspend_timer(timer_dissip) call exchange_Hallo(divgra,ip1jmp1,llm,1,1) call resume_timer(timer_dissip) CALL grad_p (klevel,divgra, ghx , ghy ) call suspend_timer(timer_dissip) call exchange_Hallo(ghy,ip1jm,llm,1,0) call resume_timer(timer_dissip) CALL diverg_p (klevel, ghx , ghy , divgra ) jjb=jj_begin jje=jj_end CALL filtreg_p( divgra,jjb,jje,jjp1,klevel,2,1,.true.,1) DO 5 l = 1,klevel DO 4 ij = ijb, ije divgra( ij,l ) = - cdivh * divgra( ij,l ) 4 CONTINUE 5 CONTINUE c 10 CONTINUE RETURN END