Last change
on this file since 1724 was
1673,
checked in by Laurent Fairhead, 12 years ago
|
Fin du phasage de la dynamique parallele localisee (petite memoire) avec le tronc LMDZ5 r1671
Il reste quelques routines a verifier (en particulier ce qui touche a l'etude des cas academiques)
et la validation a effectuer
End of the phasing of the localised (low memory) parallel dynamics package with the
LMDZ5 trunk (r1671)
Some routines still need some checking (in particular the academic cases) and some
validation is still required
|
File size:
1.3 KB
|
Rev | Line | |
---|
[1632] | 1 | ! |
---|
[1673] | 2 | ! $Id$ |
---|
[1632] | 3 | ! |
---|
| 4 | SUBROUTINE gr_fi_dyn_p(nfield,ngrid,im,jm,pfi,pdyn) |
---|
[1673] | 5 | #ifdef CPP_PHYS |
---|
[1632] | 6 | ! Interface with parallel physics, |
---|
| 7 | USE mod_interface_dyn_phys |
---|
| 8 | USE dimphy |
---|
| 9 | use parallel |
---|
| 10 | IMPLICIT NONE |
---|
| 11 | c======================================================================= |
---|
| 12 | c passage d'un champ de la grille scalaire a la grille physique |
---|
| 13 | c======================================================================= |
---|
| 14 | |
---|
| 15 | c----------------------------------------------------------------------- |
---|
| 16 | c declarations: |
---|
| 17 | c ------------- |
---|
| 18 | |
---|
| 19 | INTEGER im,jm,ngrid,nfield |
---|
| 20 | REAL pdyn(im,jm,nfield) |
---|
| 21 | REAL pfi(ngrid,nfield) |
---|
| 22 | |
---|
| 23 | INTEGER i,j,ifield,ig |
---|
| 24 | |
---|
| 25 | c----------------------------------------------------------------------- |
---|
| 26 | c calcul: |
---|
| 27 | c ------- |
---|
| 28 | c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) |
---|
| 29 | DO ifield=1,nfield |
---|
| 30 | |
---|
| 31 | do ig=1,klon |
---|
| 32 | i=index_i(ig) |
---|
| 33 | j=index_j(ig) |
---|
| 34 | pdyn(i,j,ifield)=pfi(ig,ifield) |
---|
| 35 | if (i==1) pdyn(im,j,ifield)=pdyn(i,j,ifield) |
---|
| 36 | enddo |
---|
| 37 | |
---|
| 38 | c traitement des poles |
---|
| 39 | if (pole_nord) then |
---|
| 40 | do i=1,im |
---|
| 41 | pdyn(i,1,ifield)=pdyn(1,1,ifield) |
---|
| 42 | enddo |
---|
| 43 | endif |
---|
| 44 | |
---|
| 45 | if (pole_sud) then |
---|
| 46 | do i=1,im |
---|
| 47 | pdyn(i,jm,ifield)=pdyn(1,jm,ifield) |
---|
| 48 | enddo |
---|
| 49 | endif |
---|
| 50 | |
---|
| 51 | ENDDO |
---|
| 52 | c$OMP END DO NOWAIT |
---|
| 53 | #endif |
---|
[1673] | 54 | ! of #ifdef CPP_PHYS |
---|
[1632] | 55 | RETURN |
---|
| 56 | END |
---|
Note: See
TracBrowser
for help on using the repository browser.