source: LMDZ6/trunk/libf/phylmd/dimphy.f90 @ 5648

Last change on this file since 5648 was 5648, checked in by amaison, 4 weeks ago

correction of optional arguments for heterogeneous continental sub-surfaces

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 1.6 KB
Line 
1!
2! $Id: dimphy.f90 5648 2025-05-12 09:14:58Z amaison $
3!
4  MODULE dimphy
5 
6  INTEGER,SAVE :: klon
7  INTEGER,SAVE :: kdlon
8  INTEGER,SAVE :: kfdia
9  INTEGER,SAVE :: kidia
10  INTEGER,SAVE :: klev
11  INTEGER,SAVE :: klevp1
12  INTEGER,SAVE :: klevm1
13  INTEGER,SAVE :: kflev
14  INTEGER,SAVE :: nbtersrf !AM
15  INTEGER,SAVE :: nbtsoildepths !AM
16
17!$OMP THREADPRIVATE(klon,kfdia,kidia,kdlon)
18! note that klev, klevp1, klevm1 and kflev are
19! not included in an ompthreadprivate statement
20! because of the way they are initialized below (omp master)
21
22REAL,save,allocatable,dimension(:) :: zmasq
23!$OMP THREADPRIVATE(zmasq)   
24
25CONTAINS
26 
27  SUBROUTINE Init_dimphy(klon0,klev0)
28  IMPLICIT NONE
29 
30    INTEGER, INTENT(in) :: klon0
31    INTEGER, INTENT(in) :: klev0
32   
33    klon=klon0
34    kdlon=klon
35    kidia=1
36    kfdia=klon
37!$OMP MASTER
38    klev=klev0
39    klevp1=klev+1
40    klevm1=klev-1
41    kflev=klev
42!$OMP END MASTER   
43    ALLOCATE(zmasq(klon))   
44    zmasq=0.
45   
46  END SUBROUTINE Init_dimphy
47
48  SUBROUTINE Init_dimphy1D(klon0,klev0,nbtersrf0,nbtsoildepths0)
49! 1D special version of dimphy without ALLOCATE(zmasq)
50! which will be allocated in iniphysiq
51  IMPLICIT NONE
52 
53    INTEGER, INTENT(in) :: klon0
54    INTEGER, INTENT(in) :: klev0
55    INTEGER, INTENT(in), OPTIONAL :: nbtersrf0
56    INTEGER, INTENT(in), OPTIONAL :: nbtsoildepths0
57
58    klon=klon0
59    kdlon=klon
60    kidia=1
61    kfdia=klon
62    klev=klev0
63    klevp1=klev+1
64    klevm1=klev-1
65    kflev=klev
66
67    IF (PRESENT(nbtersrf0)) THEN
68      nbtersrf=nbtersrf0
69    ELSE
70      nbtersrf = 0
71    ENDIF
72    IF (PRESENT(nbtsoildepths0)) THEN
73      nbtsoildepths=nbtsoildepths0
74    ELSE
75      nbtsoildepths = 0
76    ENDIF
77
78  END SUBROUTINE Init_dimphy1D
79
80 
81END MODULE dimphy
Note: See TracBrowser for help on using the repository browser.