Ignore:
Timestamp:
Sep 20, 2006, 12:12:39 PM (18 years ago)
Author:
Laurent Fairhead
Message:

Nouvelles versions de la dynamique YM
LF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/V3_test/libf/dyn3dpar/gradiv_p.F

    r630 r709  
    1       SUBROUTINE gradiv_p(klevel, xcov, ycov, ld, gdx, gdy )
     1      SUBROUTINE gradiv_p(klevel, xcov, ycov, ld, gdx_out, gdy_out )
    22c
    33c    Auteur :   P. Le Van
     
    2626c
    2727      REAL xcov( ip1jmp1,klevel ), ycov( ip1jm,klevel )
    28       REAL gdx( ip1jmp1,klevel ),   gdy( ip1jm,klevel )
     28      REAL,SAVE :: gdx( ip1jmp1,llm ),   gdy( ip1jm,llm )
    2929
    30       REAL div(ip1jmp1,llm)
     30      REAL gdx_out( ip1jmp1,klevel ),   gdy_out( ip1jm,klevel )
     31
     32      REAL,SAVE ::  div(ip1jmp1,llm)
    3133
    3234      INTEGER l,ij,iter,ld
    3335c
    34       EXTERNAL   SCOPY, diverg,  grad
    35       EXTERNAL   filtreg
    3636      INTEGER ijb,ije,jjb,jje
    3737c
     
    4242      ijb=ij_begin
    4343      ije=ij_end
    44       gdx(ijb:ije,1:klevel)=xcov(ijb:ije,1:klevel)
    4544
     45c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)     
     46      DO l = 1,klevel
     47        gdx(ijb:ije,l)=xcov(ijb:ije,l)
     48      ENDDO
     49c$OMP END DO NOWAIT
     50     
    4651      ijb=ij_begin
    4752      ije=ij_end
    4853      if(pole_sud) ije=ij_end-iip1
    49       gdy(ijb:ije,1:klevel)=ycov(ijb:ije,1:klevel)
    50      
     54
     55c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)     
     56      DO l = 1,klevel
     57        gdy(ijb:ije,l)=ycov(ijb:ije,l)
     58      ENDDO
     59c$OMP END DO NOWAIT
     60
    5161c
    5262      DO 10 iter = 1,ld
    53      
     63
     64c$OMP BARRIER
     65c$OMP MASTER     
    5466      call suspend_timer(timer_dissip)
    5567      call exchange_Hallo(gdy,ip1jm,llm,1,0)
    5668      call resume_timer(timer_dissip)
    57      
     69c$OMP END MASTER     
     70c$OMP BARRIER
     71
    5872      CALL  diverg_p( klevel,  gdx , gdy, div          )
    5973     
     
    6377     
    6478c      call exchange_Hallo(div,ip1jmp1,llm,0,1)
    65      
     79
     80c$OMP BARRIER
     81c$OMP MASTER       
    6682      call suspend_timer(timer_dissip)
    6783      call exchange_Hallo(div,ip1jmp1,llm,1,1)
    6884      call resume_timer(timer_dissip)
     85c$OMP END MASTER
     86c$OMP BARRIER
    6987     
    7088      CALL    grad_p( klevel,  div, gdx, gdy           )
    7189c
     90
     91c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)     
    7292      DO 5  l = 1, klevel
    7393     
    7494      if(pole_sud) ije=ij_end
    7595      DO 3 ij = ijb, ije
    76         gdx( ij,l ) = - gdx( ij,l ) * cdivu
     96        gdx_out( ij,l ) = - gdx( ij,l ) * cdivu
    7797   3  CONTINUE
    7898   
    7999      if(pole_sud) ije=ij_end-iip1
    80100      DO 4 ij = ijb, ije
    81         gdy( ij,l ) = - gdy( ij,l ) * cdivu
     101        gdy_out( ij,l ) = - gdy( ij,l ) * cdivu
    82102   4  CONTINUE
    83103
    84104   5  CONTINUE
     105c$OMP END DO NOWAIT
    85106c
    86107  10  CONTINUE
Note: See TracChangeset for help on using the changeset viewer.