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

Last change on this file since 5649 was 5648, checked in by amaison, 8 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
RevLine 
[3442]1!
2! $Id: dimphy.f90 5648 2025-05-12 09:14:58Z lebasn $
3!
4  MODULE dimphy
[776]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
[5627]14  INTEGER,SAVE :: nbtersrf !AM
15  INTEGER,SAVE :: nbtsoildepths !AM
[776]16
[5492]17!$OMP THREADPRIVATE(klon,kfdia,kidia,kdlon)
[5494]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
[776]23!$OMP THREADPRIVATE(zmasq)   
24
25CONTAINS
26 
[1146]27  SUBROUTINE Init_dimphy(klon0,klev0)
[776]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))   
[3435]44    zmasq=0.
[776]45   
46  END SUBROUTINE Init_dimphy
47
[5627]48  SUBROUTINE Init_dimphy1D(klon0,klev0,nbtersrf0,nbtsoildepths0)
[3442]49! 1D special version of dimphy without ALLOCATE(zmasq)
50! which will be allocated in iniphysiq
51  IMPLICIT NONE
[776]52 
[3442]53    INTEGER, INTENT(in) :: klon0
54    INTEGER, INTENT(in) :: klev0
[5627]55    INTEGER, INTENT(in), OPTIONAL :: nbtersrf0
56    INTEGER, INTENT(in), OPTIONAL :: nbtsoildepths0
57
[3442]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
[5627]66
[5648]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
[3442]78  END SUBROUTINE Init_dimphy1D
79
80 
[776]81END MODULE dimphy
Note: See TracBrowser for help on using the repository browser.