1 |
|
|
! |
2 |
|
|
! $Id: gr_dyn_fi_p.F 2239 2015-03-23 07:27:30Z emillour $ |
3 |
|
|
! |
4 |
|
|
SUBROUTINE gr_dyn_fi_p(nfield,im,jm,ngrid,pdyn,pfi) |
5 |
|
|
#ifdef CPP_PARA |
6 |
|
|
! Interface with parallel physics, |
7 |
|
|
USE mod_interface_dyn_phys |
8 |
|
|
USE dimphy |
9 |
|
|
USE parallel_lmdz |
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,ig,l |
24 |
|
|
|
25 |
|
|
c----------------------------------------------------------------------- |
26 |
|
|
c calcul: |
27 |
|
|
c ------- |
28 |
|
|
|
29 |
|
|
c IF(ngrid.NE.2+(jm-2)*(im-1)) STOP 'probleme de dim' |
30 |
|
|
c traitement des poles |
31 |
|
|
c traitement des point normaux |
32 |
|
|
c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) |
33 |
|
|
DO l=1,nfield |
34 |
|
|
DO ig=1,klon |
35 |
|
|
i=index_i(ig) |
36 |
|
|
j=index_j(ig) |
37 |
|
|
pfi(ig,l)=pdyn(i,j,l) |
38 |
|
|
ENDDO |
39 |
|
|
ENDDO |
40 |
|
|
c$OMP END DO NOWAIT |
41 |
|
|
#endif |
42 |
|
|
! of #ifdef CPP_PARA |
43 |
|
|
RETURN |
44 |
|
|
END |