My Project
 All Classes Files Functions Variables Macros
gr_fi_dyn_p.F
Go to the documentation of this file.
1 !
2 ! $Id$
3 !
4  SUBROUTINE gr_fi_dyn_p(nfield,ngrid,im,jm,pfi,pdyn)
5 #ifdef CPP_PHYS
6 ! Interface with parallel physics,
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
54 ! of #ifdef CPP_PHYS
55  RETURN
56  END