/[lmdze]/trunk/dyn3d/Dissipation/divgrad2.f
ViewVC logotype

Annotation of /trunk/dyn3d/Dissipation/divgrad2.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 266 - (hide annotations)
Thu Apr 19 17:54:55 2018 UTC (6 years, 2 months ago) by guez
File size: 1321 byte(s)
Define macros of the preprocessor CPP_IIM, CPP_JJM, CPP_LLM so we can
control the resolution from the compilation command, and automate
compilation for several resolutions.

In module yoethf_m, transform variables into named constants. So we do
not need procedure yoethf any longer.

Bug fix in program test_inter_barxy, missing calls to fyhyp and fxhyp,
and definition of rlatu.

Remove variable iecri of module conf_gcm_m. The files dyn_hist*.nc are
written every time step. We are simplifying the output system, pending
replacement by a whole new system.

Modify possible value of vert_sampling from "param" to
"strato_custom", following LMDZ. Default values of corresponding
namelist variables are now the values used for LMDZ CMIP6.

1 guez 65 module divgrad2_m
2 guez 3
3 guez 65 IMPLICIT NONE
4 guez 3
5 guez 65 contains
6 guez 3
7 guez 65 SUBROUTINE divgrad2(klevel, h, deltapres, lh, divgra, cdivh)
8 guez 3
9 guez 266 ! From LMDZ4/libf/dyn3d/divgrad2.F, version 1.1.1.1, 2004/05/19 12:53:06
10 guez 65 ! P. Le Van
11    
12     ! Calcul de div(grad) de (pext * h)
13    
14     USE comgeom, ONLY: cuvscvgam2, cvuscugam2, unsair_gam2, unsapolnga2, &
15     unsapolsga2
16 guez 266 use dimensions, only: iim, jjm
17 guez 207 use laplacien_gam_m, only: laplacien_gam
18 guez 65 USE laplacien_m, ONLY: laplacien
19    
20     INTEGER, intent(in):: klevel
21 guez 266 REAL, intent(in), dimension(iim + 1, jjm + 1, klevel):: h, deltapres
22 guez 65 integer, intent(in):: lh
23 guez 266 REAL, intent(out):: divgra(iim + 1, jjm + 1, klevel)
24 guez 65 real, intent(in):: cdivh
25    
26     ! Variables locales
27 guez 266 REAL sqrtps(iim + 1, jjm + 1, klevel)
28 guez 65 INTEGER iter
29    
30     !-----------------------------------------------------------------
31    
32     divgra = h
33     CALL laplacien(klevel, divgra)
34     sqrtps = SQRT(deltapres)
35     divgra = divgra * sqrtps
36    
37     ! ItĂ©ration de l'opĂ©rateur laplacien_gam
38     DO iter = 1, lh - 2
39     CALL laplacien_gam(klevel, cuvscvgam2, cvuscugam2, unsair_gam2, &
40     unsapolnga2, unsapolsga2, divgra, divgra)
41     ENDDO
42    
43     divgra = divgra * sqrtps
44     CALL laplacien(klevel, divgra)
45     divgra = (-1.)**lh * cdivh * divgra / deltapres
46    
47     END SUBROUTINE divgrad2
48    
49     end module divgrad2_m

  ViewVC Help
Powered by ViewVC 1.1.21