LMDZ
gr_fi_dyn_p.F
Go to the documentation of this file.
1 !
2 ! $Id: gr_fi_dyn_p.F 2239 2015-03-23 07:27:30Z emillour $
3 !
4  SUBROUTINE gr_fi_dyn_p(nfield,ngrid,im,jm,pfi,pdyn)
5 #ifdef CPP_PARA
6 ! Interface with parallel physics,
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,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_PARA
55  RETURN
56  END
integer, dimension(:), allocatable, save index_i
integer, save klon
Definition: dimphy.F90:3
logical, save pole_sud
integer, dimension(:), allocatable, save index_j
logical, save pole_nord
subroutine gr_fi_dyn_p(nfield, ngrid, im, jm, pfi, pdyn)
Definition: gr_fi_dyn_p.F:5
Definition: dimphy.F90:1