LMDZ
laplacien_loc.F
Go to the documentation of this file.
1  SUBROUTINE laplacien_loc ( klevel, teta, divgra )
2 c
3 c P. Le Van
4 c
5 c ************************************************************
6 c .... calcul de (div( grad )) de teta .....
7 c ************************************************************
8 c klevel et teta sont des arguments d'entree pour le s-prog
9 c divgra est un argument de sortie pour le s-prog
10 c
11  USE parallel_lmdz
12  USE mod_filtreg_p
13  IMPLICIT NONE
14 c
15 #include "dimensions.h"
16 #include "paramet.h"
17 #include "comgeom.h"
18 
19 c
20 c ......... variables en arguments ..............
21 c
22  INTEGER klevel
23  REAL teta( ijb_u:ije_u,klevel ), divgra( ijb_u:ije_u,klevel )
24  INTEGER :: l
25 c
26 c ............ variables locales ..............
27 c
28  REAL ghy(ijb_v:ije_v,llm), ghx(ijb_u:ije_u,llm)
29 c .......................................................
30 
31 
32  INTEGER :: ijb,ije,jjb,jje
33 c
34 c CALL SCOPY ( ip1jmp1 * klevel, teta, 1, divgra, 1 )
35 
36  ijb=ij_begin-iip1
37  ije=ij_end+iip1
38  if (pole_nord) ijb=ij_begin
39  if (pole_sud ) ije=ij_end
40 
41 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
42  DO l=1,klevel
43  divgra(ijb:ije,l)=teta(ijb:ije,l)
44  ENDDO
45 c$OMP END DO NOWAIT
46 
47  jjb=jj_begin-1
48  jje=jj_end+1
49  if (pole_nord) jjb=jj_begin
50  if (pole_sud ) jje=jj_end
51 
52  CALL filtreg_p( divgra,jjb_u,jje_u,jjb,jje,jjp1,
53  & klevel, 2, 1, .true., 1 )
54  CALL grad_loc ( klevel,divgra, ghx , ghy )
55  CALL divergf_loc ( klevel, ghx , ghy , divgra )
56 
57  RETURN
58  END
integer, save jjb_u
subroutine grad_loc(klevel, pg, pgx, pgy)
Definition: grad_loc.F:2
subroutine filtreg_p(champ, ibeg, iend, nlat, nbniv, ifiltre, iaire, griscal, iter)
Definition: filtreg_p.F:5
integer, save jj_end
integer, save jj_begin
integer, save ij_end
logical, save pole_sud
!$Id Turb_fcg_gcssold get_uvd hqturb_gcssold endif!large scale llm day day1 day day1 *dt_toga endif!time annee_ref dt_toga u_toga vq_toga w_prof vq_prof llm day day1 day day1 *dt_dice endif!time annee_ref dt_dice swup_dice vg_dice omega_dice tg_prof vg_profd w_profd omega_profd!do llm!print llm l llm
integer, save ijb_v
subroutine divergf_loc(klevel, x, y, div)
Definition: divergf_loc.F:2
logical, save pole_nord
!$Header jjp1
Definition: paramet.h:14
integer, save jje_u
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
integer, save ij_begin
integer, save ije_v
subroutine laplacien_loc(klevel, teta, divgra)
Definition: laplacien_loc.F:2
integer, save ije_u
integer, save ijb_u