source: LMDZ4/trunk/libf/dyn3dpar/divgrad_p.F @ 630

Last change on this file since 630 was 630, checked in by Laurent Fairhead, 19 years ago

Import d'une version parallele de la dynamique YM
LF

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 1.9 KB
Line 
1      SUBROUTINE divgrad_p (klevel,h, lh, divgra )
2      USE parallel
3      USE times
4      IMPLICIT NONE
5c
6c=======================================================================
7c
8c  Auteur :   P. Le Van
9c  ----------
10c
11c                              lh
12c      calcul de  (div( grad ))   de h  .....
13c      h  et lh  sont des arguments  d'entree pour le s-prog
14c      divgra     est  un argument  de sortie pour le s-prog
15c
16c=======================================================================
17c
18c   declarations:
19c   -------------
20c
21#include "dimensions.h"
22#include "paramet.h"
23#include "comgeom.h"
24#include "comdissipn.h"
25#include "logic.h"
26c
27      INTEGER klevel
28      REAL h( ip1jmp1,klevel ), divgra( ip1jmp1,klevel )
29c
30      REAL ghy(ip1jm,llm), ghx(ip1jmp1,llm)
31
32      INTEGER  l,ij,iter,lh
33c
34      EXTERNAL  filtreg
35      EXTERNAL  SCOPY, grad, covcont, diverg
36      INTEGER ijb,ije,jjb,jje
37c
38c
39c      CALL SCOPY ( ip1jmp1*klevel,h,1,divgra,1 )
40     
41      ijb=ij_begin
42      ije=ij_end
43      divgra(ijb:ije,1:klevel)=h(ijb:ije,1:klevel)
44
45c
46
47c
48      DO 10 iter = 1,lh
49
50      jjb=jj_begin
51      jje=jj_end
52      CALL filtreg_p ( divgra,jjb,jje,jjp1,klevel,2,1,.true.,1  )
53
54c      call exchange_Hallo(divgra,ip1jmp1,llm,0,1)
55     
56      call suspend_timer(timer_dissip)
57      call exchange_Hallo(divgra,ip1jmp1,llm,1,1)
58      call resume_timer(timer_dissip)
59       
60      CALL    grad_p (klevel,divgra, ghx  , ghy          )
61
62      call suspend_timer(timer_dissip)
63      call exchange_Hallo(ghy,ip1jm,llm,1,0)
64      call resume_timer(timer_dissip)
65     
66      CALL  diverg_p (klevel,  ghx , ghy  , divgra       )
67
68      jjb=jj_begin
69      jje=jj_end
70      CALL filtreg_p( divgra,jjb,jje,jjp1,klevel,2,1,.true.,1)
71
72      DO 5 l = 1,klevel
73      DO 4  ij = ijb, ije
74      divgra( ij,l ) = - cdivh * divgra( ij,l )
75   4  CONTINUE
76   5  CONTINUE
77c
78  10  CONTINUE
79      RETURN
80      END
Note: See TracBrowser for help on using the repository browser.