Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
M
Méso-NH code
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
RODIER Quentin
Méso-NH code
Commits
2974c734
Commit
2974c734
authored
6 years ago
by
Juan Escobar
Browse files
Options
Downloads
Patches
Plain Diff
Juan 24/05/2018: COUPLING , move modified OASIS/MNH source to original/true MNH
parent
25c061e0
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
src/MNH/ground_paramn.f90
+49
-7
49 additions, 7 deletions
src/MNH/ground_paramn.f90
src/MNH/ini_modeln.f90
+10
-0
10 additions, 0 deletions
src/MNH/ini_modeln.f90
src/MNH/mesonh.f90
+62
-3
62 additions, 3 deletions
src/MNH/mesonh.f90
with
121 additions
and
10 deletions
src/MNH/ground_paramn.f90
+
49
−
7
View file @
2974c734
...
@@ -98,9 +98,10 @@ END MODULE MODI_GROUND_PARAM_n
...
@@ -98,9 +98,10 @@ END MODULE MODI_GROUND_PARAM_n
! (P.Tulet ) 01/11/03 externalisation of the surface chemistry!
! (P.Tulet ) 01/11/03 externalisation of the surface chemistry!
!! (D.Gazen) 01/12/03 change emissions handling for surf. externalization
!! (D.Gazen) 01/12/03 change emissions handling for surf. externalization
!! (J.escobar) 18/10/2012 missing USE MODI_COUPLING_SURF_ATM_n & MODI_DIAG_SURF_ATM_n
!! (J.escobar) 18/10/2012 missing USE MODI_COUPLING_SURF_ATM_n & MODI_DIAG_SURF_ATM_n
! (J.escobar) 2/2014 add Forefire coupling
! (J.escobar)
0
2/2014 add Forefire coupling
!!
06/2016
(G.Delautier) phasage surfex 8
!! (G.Delautier)
06/2016
phasage surfex 8
!! (B.Vie) 2016 LIMA
!! (B.Vie) 2016 LIMA
!! (J.Pianezze) 08/2016 add send/recv oasis functions
!! (M.Leriche) 24/03/16 remove flag for chemical surface fluxes
!! (M.Leriche) 24/03/16 remove flag for chemical surface fluxes
!! (M.Leriche) 01/07/2017 Add DIAG chimical surface fluxes
!! (M.Leriche) 01/07/2017 Add DIAG chimical surface fluxes
!! 01/2018 (G.Delautier) SURFEX 8.1
!! 01/2018 (G.Delautier) SURFEX 8.1
...
@@ -113,6 +114,16 @@ END MODULE MODI_GROUND_PARAM_n
...
@@ -113,6 +114,16 @@ END MODULE MODI_GROUND_PARAM_n
!* 0. DECLARATIONS
!* 0. DECLARATIONS
! ------------
! ------------
!
!
!
#ifdef CPLOASIS
USE
MODI_GET_HALO
USE
MODI_MNH_OASIS_RECV
USE
MODI_MNH_OASIS_SEND
USE
MODD_SFX_OASIS
,
ONLY
:
LOASIS
USE
MODD_DYN
,
ONLY
:
XSEGLEN
#endif
!
USE
MODD_LUNIT_n
,
ONLY
:
TLUOUT
USE
MODD_CST
,
ONLY
:
XP00
,
XCPD
,
XRD
,
XRV
,
XRHOLW
,
XDAY
,
XPI
,
XLVTT
,
XMD
,
XAVOGADRO
USE
MODD_CST
,
ONLY
:
XP00
,
XCPD
,
XRD
,
XRV
,
XRHOLW
,
XDAY
,
XPI
,
XLVTT
,
XMD
,
XAVOGADRO
USE
MODD_PARAMETERS
,
ONLY
:
JPVEXT
,
XUNDEF
USE
MODD_PARAMETERS
,
ONLY
:
JPVEXT
,
XUNDEF
USE
MODD_DYN_n
,
ONLY
:
XTSTEP
USE
MODD_DYN_n
,
ONLY
:
XTSTEP
...
@@ -336,10 +347,12 @@ CHARACTER(LEN=6), DIMENSION(:), ALLOCATABLE :: YSV_SURF ! name of the scalar var
...
@@ -336,10 +347,12 @@ CHARACTER(LEN=6), DIMENSION(:), ALLOCATABLE :: YSV_SURF ! name of the scalar var
! sent to SURFEX
! sent to SURFEX
!
!
REAL
::
ZTIMEC
REAL
::
ZTIMEC
INTEGER
::
ILUOUT
! logical unit
!
!
!-------------------------------------------------------------------------------
!-------------------------------------------------------------------------------
!
!
!
!
ILUOUT
=
TLUOUT
%
NLU
IKB
=
1
+
JPVEXT
IKB
=
1
+
JPVEXT
IKU
=
NKMAX
+
2
*
JPVEXT
IKU
=
NKMAX
+
2
*
JPVEXT
IKE
=
IKU
-
JPVEXT
IKE
=
IKU
-
JPVEXT
...
@@ -553,6 +566,22 @@ CALL RESHAPE_SURF(IDIM1D)
...
@@ -553,6 +566,22 @@ CALL RESHAPE_SURF(IDIM1D)
! call to have the cumulated time since beginning of simulation
! call to have the cumulated time since beginning of simulation
!
!
CALL
DATETIME_DISTANCE
(
TDTSEG
,
TDTCUR
,
ZTIMEC
)
CALL
DATETIME_DISTANCE
(
TDTSEG
,
TDTCUR
,
ZTIMEC
)
#ifdef CPLOASIS
IF
(
LOASIS
)
THEN
IF
(
MOD
(
ZTIMEC
,
1.0
)
.LE.
1E-2
.OR.
(
1.0
-
MOD
(
ZTIMEC
,
1.0
))
.LE.
1E-2
)
THEN
IF
(
NINT
(
ZTIMEC
-
(
XSEGLEN
-
XTSTEP
))
.LT.
0
)
THEN
WRITE
(
ILUOUT
,
*
)
'----------------------------'
WRITE
(
ILUOUT
,
*
)
' Reception des champs avec OASIS'
WRITE
(
ILUOUT
,
*
)
'NINT(ZTIMEC)='
,
NINT
(
ZTIMEC
)
CALL
MNH_OASIS_RECV
(
CPROGRAM
,
IDIM1D
,
SIZE
(
XSW_BANDS
),
ZTIMEC
+
XTSTEP
,
XTSTEP
,
&
ZP_ZENITH
,
XSW_BANDS
,
&
ZP_TSRAD
,
ZP_DIR_ALB
,
ZP_SCA_ALB
,
ZP_EMIS
,
ZP_TSURF
)
WRITE
(
ILUOUT
,
*
)
'----------------------------'
END
IF
END
IF
END
IF
#endif
!
!
! Call to surface schemes
! Call to surface schemes
!
!
...
@@ -568,7 +597,20 @@ CALL COUPLING_SURF_ATM_n(YSURF_CUR,'MESONH', 'E',ZTIMEC,
...
@@ -568,7 +597,20 @@ CALL COUPLING_SURF_ATM_n(YSURF_CUR,'MESONH', 'E',ZTIMEC,
ZP_PET_A_COEF
,
ZP_PEQ_A_COEF
,
ZP_PET_B_COEF
,
ZP_PEQ_B_COEF
,
&
ZP_PET_A_COEF
,
ZP_PEQ_A_COEF
,
ZP_PET_B_COEF
,
ZP_PEQ_B_COEF
,
&
'OK'
)
'OK'
)
!
!
#ifdef CPLOASIS
IF
(
LOASIS
)
THEN
IF
(
MOD
(
ZTIMEC
,
1.0
)
.LE.
1E-2
.OR.
(
1.0
-
MOD
(
ZTIMEC
,
1.0
))
.LE.
1E-2
)
THEN
IF
(
NINT
(
ZTIMEC
-
(
XSEGLEN
-
XTSTEP
))
.LT.
0
)
THEN
WRITE
(
ILUOUT
,
*
)
'----------------------------'
WRITE
(
ILUOUT
,
*
)
' Envoi des champs avec OASIS'
WRITE
(
ILUOUT
,
*
)
'NINT(ZTIMEC)='
,
NINT
(
ZTIMEC
)
CALL
MNH_OASIS_SEND
(
CPROGRAM
,
IDIM1D
,
ZTIMEC
+
XTSTEP
,
XTSTEP
)
WRITE
(
ILUOUT
,
*
)
'----------------------------'
END
IF
END
IF
END
IF
#endif
!
IF
(
CPROGRAM
==
'DIAG '
.OR.
LDIAG_IN_RUN
)
THEN
IF
(
CPROGRAM
==
'DIAG '
.OR.
LDIAG_IN_RUN
)
THEN
CALL
DIAG_SURF_ATM_n
(
YSURF_CUR
,
'MESONH'
)
CALL
DIAG_SURF_ATM_n
(
YSURF_CUR
,
'MESONH'
)
CALL
MNHGET_SURF_PARAM_n
(
PRN
=
ZP_RN
,
PH
=
ZP_H
,
PLE
=
ZP_LE
,
PGFLUX
=
ZP_GFLUX
,
&
CALL
MNHGET_SURF_PARAM_n
(
PRN
=
ZP_RN
,
PH
=
ZP_H
,
PLE
=
ZP_LE
,
PGFLUX
=
ZP_GFLUX
,
&
...
@@ -637,10 +679,10 @@ END IF
...
@@ -637,10 +679,10 @@ END IF
!* conversion from chemistry flux (molec/m2/s) to (ppp.m.s-1)
!* conversion from chemistry flux (molec/m2/s) to (ppp.m.s-1)
!
!
IF
(
LUSECHEM
)
THEN
IF
(
LUSECHEM
)
THEN
DO
JSV
=
NSV_CHEMBEG
,
NSV_CHEMEND
DO
JSV
=
NSV_CHEMBEG
,
NSV_CHEMEND
PSFSV
(:,:,
JSV
)
=
ZSFTS
(:,:,
JSV
)
*
XMD
/
(
XAVOGADRO
*
XRHODREF
(:,:,
IKB
))
PSFSV
(:,:,
JSV
)
=
ZSFTS
(:,:,
JSV
)
*
XMD
/
(
XAVOGADRO
*
XRHODREF
(:,:,
IKB
))
IF
((
LCHEMDIAG
)
.AND.
(
CPROGRAM
==
'DIAG '
))
XCHFLX
(:,:,
JSV
)
=
PSFSV
(:,:,
JSV
)
IF
((
LCHEMDIAG
)
.AND.
(
CPROGRAM
==
'DIAG '
))
XCHFLX
(:,:,
JSV
)
=
PSFSV
(:,:,
JSV
)
END
DO
END
DO
ELSE
ELSE
PSFSV
(:,:,
NSV_CHEMBEG
:
NSV_CHEMEND
)
=
0.
PSFSV
(:,:,
NSV_CHEMBEG
:
NSV_CHEMEND
)
=
0.
END
IF
END
IF
...
...
This diff is collapsed.
Click to expand it.
src/MNH/ini_modeln.f90
+
10
−
0
View file @
2974c734
...
@@ -265,6 +265,7 @@ END MODULE MODI_INI_MODEL_n
...
@@ -265,6 +265,7 @@ END MODULE MODI_INI_MODEL_n
!! J.Escobar : 01/06/2016 : correct check limit of NRIM versus local subdomain size IDIM
!! J.Escobar : 01/06/2016 : correct check limit of NRIM versus local subdomain size IDIM
!! 06/2016 (G.Delautier) phasage surfex 8
!! 06/2016 (G.Delautier) phasage surfex 8
!! Modification 01/2016 (JP Pinty) Add LIMA
!! Modification 01/2016 (JP Pinty) Add LIMA
!! Aug. 2016 (J.Pianezze) Add SFX_OASIS_READ_NAM function from SurfEx
!! M.Leriche 2016 Chemistry
!! M.Leriche 2016 Chemistry
!! 10/2016 M.Mazoyer New KHKO output fields
!! 10/2016 M.Mazoyer New KHKO output fields
!! 10/2016 (C.Lac) Add max values
!! 10/2016 (C.Lac) Add max values
...
@@ -281,6 +282,11 @@ END MODULE MODI_INI_MODEL_n
...
@@ -281,6 +282,11 @@ END MODULE MODI_INI_MODEL_n
!
!
!* 0. DECLARATIONS
!* 0. DECLARATIONS
! ------------
! ------------
!
#ifdef CPLOASIS
USE
MODI_SFX_OASIS_READ_NAM
#endif
!
USE
MODE_ll
USE
MODE_ll
USE
MODD_ARGSLIST_ll
,
ONLY
:
LIST_ll
USE
MODD_ARGSLIST_ll
,
ONLY
:
LIST_ll
USE
MODE_IO_ll
USE
MODE_IO_ll
...
@@ -2068,6 +2074,10 @@ IF (CSURF=='EXTE' .AND. (CPROGRAM=='MESONH' .OR. CPROGRAM=='DIAG ')) THEN
...
@@ -2068,6 +2074,10 @@ IF (CSURF=='EXTE' .AND. (CPROGRAM=='MESONH' .OR. CPROGRAM=='DIAG ')) THEN
END
IF
END
IF
!
!
CALL
GOTO_SURFEX
(
KMI
)
CALL
GOTO_SURFEX
(
KMI
)
#ifdef CPLOASIS
CALL
SFX_OASIS_READ_NAM
(
CPROGRAM
,
XTSTEP
)
WRITE
(
*
,
*
)
'SFX-OASIS: READ NAM_SFX_SEA_CPL OK'
#endif
!* initialization of surface
!* initialization of surface
CALL
INIT_GROUND_PARAM_n
(
'ALL'
,
SIZE
(
CSV
),
CSV
,
ZCO2
,
&
CALL
INIT_GROUND_PARAM_n
(
'ALL'
,
SIZE
(
CSV
),
CSV
,
ZCO2
,
&
XZENITH
,
XAZIM
,
XSW_BANDS
,
XLW_BANDS
,
ZDIR_ALB
,
ZSCA_ALB
,
&
XZENITH
,
XAZIM
,
XSW_BANDS
,
XLW_BANDS
,
ZDIR_ALB
,
ZSCA_ALB
,
&
...
...
This diff is collapsed.
Click to expand it.
src/MNH/mesonh.f90
+
62
−
3
View file @
2974c734
...
@@ -69,17 +69,24 @@
...
@@ -69,17 +69,24 @@
!! J.Stein 08/04/99 general case of the sequential form
!! J.Stein 08/04/99 general case of the sequential form
!! V. Masson 15/03/99 MASDEV number and PROGRAM name
!! V. Masson 15/03/99 MASDEV number and PROGRAM name
!! J.P. Chaboureau 15/03/04 loop limited to 100000 iterations
!! J.P. Chaboureau 15/03/04 loop limited to 100000 iterations
!! remplaced by infinite loop
!!
remplaced by infinite loop
!! J.Escobar 19/03/2008 rename INIT to INIT_MNH --> grib problem
!! J.Escobar 19/03/2008 rename INIT to INIT_MNH --> grib problem
!! J.Escobar 6/11/2014 remove test on LCHECK otherwise never call MPPDB_INIT
!! J.Escobar 6/11/2014 remove test on LCHECK otherwise never call MPPDB_INIT
!! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1
!! J.Escobar 15/09/2015 WENO5 & JPHEXT <> 1
!! 06/2016 (G.Delautier) phasage surfex 8
!! G.Delautier 06/2016 phasage surfex 8
!! J. Pianezze 01/08/2016 add sfxoasis coupling functions
!! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
!! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O
!-------------------------------------------------------------------------------
!-------------------------------------------------------------------------------
!
!
!* 0. DECLARATIONS
!* 0. DECLARATIONS
! ------------
! ------------
!
!
#ifdef CPLOASIS
USE
MODD_VAR_ll
,
ONLY
:
NMNH_COMM_WORLD
,
IP
USE
MODD_DYN_n
,
ONLY
:
XTSTEP
USE
MODD_SFX_OASIS
,
ONLY
:
LOASIS
,
LOASIS_GRID
#endif
!
USE
MODD_CONF
USE
MODD_CONF
USE
MODD_NESTING
USE
MODD_NESTING
USE
MODD_CONF_n
USE
MODD_CONF_n
...
@@ -97,6 +104,13 @@ USE MODI_VERSION
...
@@ -97,6 +104,13 @@ USE MODI_VERSION
USE
MODI_INIT_MNH
USE
MODI_INIT_MNH
USE
MODD_MNH_SURFEX_n
USE
MODD_MNH_SURFEX_n
!
!
#ifdef CPLOASIS
USE
MODI_SFX_OASIS_INIT
USE
MODI_MNH_OASIS_GRID
USE
MODI_MNH_OASIS_DEFINE
USE
MODI_SFX_OASIS_END
#endif
!
USE
MODE_MPPDB
USE
MODE_MPPDB
!
!
IMPLICIT
NONE
IMPLICIT
NONE
...
@@ -109,14 +123,27 @@ LOGICAL :: GEXIT ! flag for the end of the
...
@@ -109,14 +123,27 @@ LOGICAL :: GEXIT ! flag for the end of the
! temporal loop
! temporal loop
INTEGER
::
IINFO_ll
! return code of // routines
INTEGER
::
IINFO_ll
! return code of // routines
!
!
#ifdef CPLOASIS
CHARACTER
(
LEN
=
28
)
::
CNAMELIST
LOGICAL
::
L_MASTER
#endif
!
!-------------------------------------------------------------------------------
!-------------------------------------------------------------------------------
!
!
!* 1. INITIALIZATION
!* 1. INITIALIZATION
! --------------
! --------------
! Switch to model 1 variables
! Switch to model 1 variables
#ifndef CPLOASIS
CALL
MPPDB_INIT
()
CALL
MPPDB_INIT
()
#endif
!
CALL
GOTO_MODEL
(
1
,
ONOFIELDLIST
=
.TRUE.
)
CALL
GOTO_MODEL
(
1
,
ONOFIELDLIST
=
.TRUE.
)
!
!
#ifdef CPLOASIS
CNAMELIST
=
'EXSEG1.nam'
CALL
SFX_OASIS_INIT
(
CNAMELIST
,
NMNH_COMM_WORLD
)
#endif
!
CALL
INITIO_ll
()
CALL
INITIO_ll
()
!
!
CALL
VERSION
CALL
VERSION
...
@@ -127,6 +154,33 @@ CALL INIT_MNH
...
@@ -127,6 +154,33 @@ CALL INIT_MNH
!
!
GEXIT
=
.FALSE.
GEXIT
=
.FALSE.
!
!
!
!* 1.1 INITIALIZATION GRID OASIS
! -------------------------
!
!
#ifdef CPLOASIS
IF
(
IP
==
1
)
THEN
L_MASTER
=
.TRUE.
ELSE
L_MASTER
=
.FALSE.
END
IF
!
IF
(
LOASIS_GRID
)
THEN
CALL
MNH_OASIS_GRID
(
L_MASTER
,
NMNH_COMM_WORLD
)
ENDIF
#endif
!
!
!* 1.2 INITIALIZATION PARTITION OASIS
! ------------------------------
!
#ifdef CPLOASIS
IF
(
LOASIS
)
THEN
CALL
MNH_OASIS_DEFINE
(
CPROGRAM
,
IP
)
END
IF
#endif
!
!-------------------------------------------------------------------------------
!-------------------------------------------------------------------------------
!
!
!* 2. TEMPORAL LOOP
!* 2. TEMPORAL LOOP
...
@@ -170,6 +224,11 @@ IF (LCHECK) THEN
...
@@ -170,6 +224,11 @@ IF (LCHECK) THEN
CALL
MPPDB_BARRIER
()
CALL
MPPDB_BARRIER
()
ELSE
ELSE
CALL
END_PARA_ll
(
IINFO_ll
)
CALL
END_PARA_ll
(
IINFO_ll
)
#ifdef CPLOASIS
IF
(
LOASIS
)
THEN
CALL
SFX_OASIS_END
END
IF
#endif
END
IF
END
IF
!
!
!
!
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment