Skip to content
Snippets Groups Projects
Commit 149f5824 authored by Juan Escobar's avatar Juan Escobar
Browse files

Juan 24/05/2017: add MPPDB_CHECK on SURFEX routine for reprod check with MNH_PARALLEL key

parent 9b3306b3
No related branches found
No related tags found
No related merge requests found
......@@ -44,6 +44,7 @@
!! G. Pigeon 09/2012: add ROUGH_WALL/ROUGH_ROOF/CH_BEM for conv. coef.
!! B. Decharme 04/2013 new coupling variables
!! delete CTOPREG option (never used)
!! M.Moge 02/2015 MPPDB_CHECK
!-------------------------------------------------------------------------------
!
!* 0. DECLARATIONS
......@@ -119,6 +120,11 @@ USE MODI_SET_SURFEX_FILEIN
USE YOMHOOK ,ONLY : LHOOK, DR_HOOK
USE PARKIND1 ,ONLY : JPRB
!
#ifdef MNH_PARALLEL
USE MODD_DATA_COVER_PAR, ONLY : JPCOVER
USE MODE_MPPDB
!
#endif
IMPLICIT NONE
!
!* 0.1 Declarations of arguments
......@@ -304,6 +310,9 @@ END SELECT
!
CALL READ_PGD_TEB_n(DTCO, U, TM,GCP, &
HPROGRAM)
#ifdef MNH_PARALLEL
CALL MPPDB_CHECK_SURFEX3D(TM%TOP%XCOVER,"INIT_TEB_n after READ_PGD_TEB_n:XCOVER",PRECISION,ILUOUT, 'TOWN ',JPCOVER)
#endif
!
CALL END_IO_SURF_n(HPROGRAM)
!
......@@ -314,6 +323,9 @@ ILU = SIZE(TM%TOP%XCOVER,1)
ALLOCATE(TM%TOP%XTEB_PATCH(ILU,TM%TOP%NTEB_PATCH))
CALL CONVERT_TEB(TM%TOP, &
TM%TOP%XCOVER,TM%TOP%XTEB_PATCH)
#ifdef MNH_PARALLEL
CALL MPPDB_CHECK_SURFEX3D(TM%TOP%XCOVER,"INIT_TEB_n after CONVERT_TEB:XCOVER",PRECISION,ILUOUT, 'TOWN ',JPCOVER)
#endif
!
CALL SET_SURFEX_FILEIN(HPROGRAM,'PREP') ! restore input file name
CALL INIT_IO_SURF_n(DTCO, DGU, U, &
......@@ -680,6 +692,9 @@ DO JPATCH=1,TM%TOP%NTEB_PATCH
CALL DIAG_MISC_TEB_INIT_n(TM%DGCT, TM%DGMT, TM%DGMTO, TM%TOP, &
HPROGRAM,ILU,ISWB)
END DO ! end of loop on patches
#ifdef MNH_PARALLEL
CALL MPPDB_CHECK_SURFEX3D(TM%TOP%XCOVER,"INIT_TEB_n end:XCOVER",PRECISION,ILUOUT, 'TOWN ',JPCOVER)
#endif
!
!-------------------------------------------------------------------------------
!
......
......@@ -35,6 +35,7 @@
!!
!! Original 03/2004
!! 04/2013, P. Le Moigne : allow limitation of lake depth
!! M. Moge 02/2015 : MPPDB_CHECK
!!
!----------------------------------------------------------------------------
!
......@@ -72,6 +73,9 @@ USE MODI_TREAT_GLOBAL_LAKE_DEPTH
!
USE MODE_POS_SURF
!
#ifdef MNH_PARALLEL
USE MODE_MPPDB
#endif
!
USE YOMHOOK ,ONLY : LHOOK, DR_HOOK
USE PARKIND1 ,ONLY : JPRB
......@@ -201,6 +205,12 @@ ALLOCATE(FG%XMESH_SIZE (FG%NDIM))
FG%CGRID, FG%XGRID_PAR, &
F%LCOVER, F%XCOVER, F%XZS, &
FG%XLAT, FG%XLON, FG%XMESH_SIZE )
#ifdef MNH_PARALLEL
CALL MPPDB_CHECK_SURFEX3D(F%XCOVER,"PGD_FLAKE after PACK_PGD:XCOVER",PRECISION,ILUOUT,'WATER',JPCOVER)
CALL MPPDB_CHECK_SURFEX2D(FG%XLAT,"PGD_FLAKE after PACK_PGD:XLAT",PRECISION,ILUOUT,'WATER')
CALL MPPDB_CHECK_SURFEX2D(FG%XLON,"PGD_FLAKE after PACK_PGD:XLON",PRECISION,ILUOUT,'WATER')
CALL MPPDB_CHECK_SURFEX2D(FG%XMESH_SIZE,"PGD_FLAKE after PACK_PGD:XMESH_SIZE",PRECISION,ILUOUT,'WATER')
#endif
!
!-------------------------------------------------------------------------------
!
......
......@@ -83,6 +83,9 @@ USE MODI_PGD_GRID_IO_INIT
USE MODE_TOOLS_ll, ONLY : GET_MEAN_OF_COORD_SQRT_ll
!
USE MODI_GET_SIZE_FULL_n
#ifdef MNH_PARALLEL
USE MODE_MPPDB
#endif
USE MODI_SPLIT_GRID
USE MODD_CONF, ONLY : CPROGRAM
#endif
......@@ -314,6 +317,11 @@ ALLOCATE(UG%XLON (U%NSIZE_FULL))
ALLOCATE(UG%XMESH_SIZE (U%NSIZE_FULL))
ALLOCATE(UG%XJPDIR (U%NSIZE_FULL))
CALL LATLON_GRID(CGRID,NGRID_PAR,U%NSIZE_FULL,ILUOUT,XGRID_PAR,UG%XLAT,UG%XLON,UG%XMESH_SIZE,UG%XJPDIR)
#ifdef MNH_PARALLEL
CALL MPPDB_CHECK_SURFEX2D(UG%XLAT,"PGD_GRID after LATLON_GRID:XLAT",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(UG%XLON,"PGD_GRID after LATLON_GRID:XLON",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(UG%XMESH_SIZE,"PGD_GRID after LATLON_GRID:XMESH_SIZE",PRECISION,ILUOUT)
#endif
!
!------------------------------------------------------------------------------
!
......
......@@ -44,6 +44,7 @@
!! R. Alkama 05/2012 : npatch must be 12 or 19 if CPHOTO/='NON'
!! B. Decharme 11/2013 : groundwater distribution for water table/surface coupling
!! P. Samuelsson 02/2012 : MEB
!! M. Moge 02/2015 : MPPDB_CHECK
!!
!----------------------------------------------------------------------------
!
......@@ -106,6 +107,10 @@ USE PARKIND1 ,ONLY : JPRB
!
USE MODI_ABOR1_SFX
!
#ifdef MNH_PARALLEL
USE MODE_MPPDB
!
#endif
IMPLICIT NONE
!
!* 0.1 Declaration of arguments
......@@ -430,6 +435,11 @@ ALLOCATE(I%XZ0EFFJPDIR(ILU))
IG%CGRID, IG%XGRID_PAR, &
I%LCOVER, I%XCOVER, I%XZS, &
IG%XLAT, IG%XLON, IG%XMESH_SIZE, I%XZ0EFFJPDIR )
#ifdef MNH_PARALLEL
CALL MPPDB_CHECK_SURFEX2D(IG%XLAT,"PGD_ISBA after PACK_PGD:XLAT",PRECISION,ILUOUT, 'NATURE')
CALL MPPDB_CHECK_SURFEX2D(IG%XLON,"PGD_ISBA after PACK_PGD:XLON",PRECISION,ILUOUT, 'NATURE')
CALL MPPDB_CHECK_SURFEX2D(IG%XMESH_SIZE,"PGD_ISBA after PACK_PGD:XMESH_SIZE",PRECISION,ILUOUT, 'NATURE')
#endif
!
!-------------------------------------------------------------------------------
!
......
......@@ -35,6 +35,7 @@
!!
!! Original 03/2004
!! Lebeaupin-B C. 01/2008 : include bathymetry
!! M.Moge 02/2015 check with MPPDB
!!
!----------------------------------------------------------------------------
!
......@@ -67,6 +68,11 @@ USE MODI_PGD_SEAFLUX_PAR
USE YOMHOOK ,ONLY : LHOOK, DR_HOOK
USE PARKIND1 ,ONLY : JPRB
!
#ifdef MNH_PARALLEL
USE MODE_MPPDB
USE MODI_GET_LUOUT
!
#endif
IMPLICIT NONE
!
!* 0.1 Declaration of arguments
......@@ -88,6 +94,9 @@ TYPE(SURF_ATM_SSO_t), INTENT(INOUT) :: USS
! ------------------------------
!
REAL, DIMENSION(NL) :: ZSEABATHY ! bathymetry on all surface points
#ifdef MNH_PARALLEL
INTEGER :: ILUOUT
#endif
!
!* 0.3 Declaration of namelists
! ------------------------
......@@ -111,6 +120,9 @@ REAL(KIND=JPRB) :: ZHOOK_HANDLE
! -------------------
!
IF (LHOOK) CALL DR_HOOK('PGD_SEAFLUX',0,ZHOOK_HANDLE)
#ifdef MNH_PARALLEL
CALL GET_LUOUT(HPROGRAM,ILUOUT)
#endif
CALL READ_NAM_PGD_SEABATHY(HPROGRAM,YSEABATHY,YSEABATHYFILETYPE,YNCVARNAME,&
XUNIF_SEABATHY)
!
......@@ -145,7 +157,12 @@ ALLOCATE(SG%XMESH_SIZE (SG%NDIM))
HPROGRAM, 'SEA ', &
SG%CGRID, SG%XGRID_PAR, &
S%LCOVER, S%XCOVER, S%XZS, &
SG%XLAT, SG%XLON, SG%XMESH_SIZE )
SG%XLAT, SG%XLON, SG%XMESH_SIZE )
#ifdef MNH_PARALLEL
CALL MPPDB_CHECK_SURFEX2D(SG%XLAT,"PGD_SEAFLUX after PACK_PGD:XLAT",PRECISION,ILUOUT,'SEA')
CALL MPPDB_CHECK_SURFEX2D(SG%XLON,"PGD_SEAFLUX after PACK_PGD:XLON",PRECISION,ILUOUT,'SEA')
CALL MPPDB_CHECK_SURFEX2D(SG%XMESH_SIZE,"PGD_SEAFLUX after PACK_PGD:XMESH_SIZE",PRECISION,ILUOUT,'SEA')
#endif
!
CALL PACK_PGD_SEAFLUX(DTCO, SG, S, U, &
HPROGRAM, ZSEABATHY)
......
......@@ -37,6 +37,7 @@
!! A. Lemonsu 05/2009 Ajout de la clef LGARDEN pour TEB
!! J. Escobar 11/2013 Add USE MODI_READ_NAM_PGD_CHEMISTRY
!! B. Decharme 02/2014 Add LRM_RIVER
!! M.Moge 02/2015 check with MPPDB
!----------------------------------------------------------------------------
!
!* 0. DECLARATION
......@@ -76,6 +77,11 @@ USE MODI_INIT_READ_DATA_COVER
USE YOMHOOK ,ONLY : LHOOK, DR_HOOK
USE PARKIND1 ,ONLY : JPRB
!
USE MODI_READ_NAM_PGD_CHEMISTRY
#ifdef MNH_PARALLEL
!
USE MODE_MPPDB
#endif
!
IMPLICIT NONE
!
......@@ -138,6 +144,11 @@ ALLOCATE(YSC%UG%XMESH_SIZE(YSC%U%NSIZE_FULL))
ALLOCATE(YSC%UG%XJPDIR(YSC%U%NSIZE_FULL))
CALL LATLON_GRID(YSC%UG%CGRID,YSC%UG%NGRID_PAR,YSC%U%NSIZE_FULL,ILUOUT,&
YSC%UG%XGRID_PAR,YSC%UG%XLAT,YSC%UG%XLON,YSC%UG%XMESH_SIZE,YSC%UG%XJPDIR)
#ifdef MNH_PARALLEL
! CALL MPPDB_CHECK_SURFEX2D(YSC%UG%XLAT,"PGD_SURF_ATM_n after LATLON_GRID:XLAT",PRECISION,ILUOUT)
! CALL MPPDB_CHECK_SURFEX2D(YSC%UG%XLON,"PGD_SURF_ATM_n after LATLON_GRID:XLON",PRECISION,ILUOUT)
! CALL MPPDB_CHECK_SURFEX2D(YSC%UG%XMESH_SIZE,"PGD_SURF_ATM_n after LATLON_GRID:XMESH_SIZE",PRECISION,ILUOUT)
#endif
!
!
!* 2.3 Stores the grid in the module MODD_PGD_GRID
......
......@@ -36,6 +36,7 @@
!! Original 10/12/97
!! A. Lemonsu 05/2009 Key for garden option
!! G. Pigeon /09/12: WALL, ROOF, FLOOR, MASS LAYER default to 5
!! M. Moge 02/2015 : MPPDB_CHECK
!!
!----------------------------------------------------------------------------
!
......@@ -70,6 +71,10 @@ USE MODI_ABOR1_SFX
USE YOMHOOK ,ONLY : LHOOK, DR_HOOK
USE PARKIND1 ,ONLY : JPRB
!
#ifdef MNH_PARALLEL
USE MODE_MPPDB
!
#endif
USE MODI_WRITE_COVER_TEX_TEB
!
IMPLICIT NONE
......@@ -156,7 +161,13 @@ ALLOCATE(TM%TG%XMESH_SIZE (TM%TG%NDIM))
HPROGRAM, 'TOWN ', &
TM%TG%CGRID, TM%TG%XGRID_PAR, &
TM%TOP%LCOVER, TM%TOP%XCOVER, TM%TOP%XZS, &
TM%TG%XLAT, TM%TG%XLON, TM%TG%XMESH_SIZE )
TM%TG%XLAT, TM%TG%XLON, TM%TG%XMESH_SIZE )
#ifdef MNH_PARALLEL
CALL MPPDB_CHECK_SURFEX3D(TM%TOP%XCOVER,"PGD_TEB after PACK_PGD:XCOVER",PRECISION,ILUOUT, 'TOWN ',JPCOVER)
CALL MPPDB_CHECK_SURFEX2D(TM%TG%XLAT,"PGD_TEB after PACK_PGD:XLAT",PRECISION,ILUOUT, 'TOWN ')
CALL MPPDB_CHECK_SURFEX2D(TM%TG%XLON,"PGD_TEB after PACK_PGD:XLON",PRECISION,ILUOUT, 'TOWN ')
CALL MPPDB_CHECK_SURFEX2D(TM%TG%XMESH_SIZE,"PGD_TEB after PACK_PGD:XMESH_SIZE",PRECISION,ILUOUT, 'TOWN ')
#endif
!
!-------------------------------------------------------------------------------
!
......
......@@ -42,6 +42,7 @@
!! 11/2013 : same for groundwater distribution
!! 11/2014 : Read XSOILGRID as a series of real
!! P. Samuelsson 10/2014 : MEB
!! M. Moge 02/2015 READ_SURF // + MPPDB_CHECK
!-------------------------------------------------------------------------------
!
!* 0. DECLARATIONS
......@@ -91,6 +92,10 @@ USE MODI_GET_LUOUT
USE MODI_PACK_SAME_RANK
USE MODI_GET_SURF_MASK_n
!
#ifdef MNH_PARALLEL
USE MODE_MPPDB
!
#endif
IMPLICIT NONE
!
!* 0.1 Declarations of arguments
......@@ -301,6 +306,7 @@ ALLOCATE(I%XCOVER(IG%NDIM,COUNT(I%LCOVER)))
#ifdef MNH_PARALLEL
CALL READ_SURF_COV(&
HPROGRAM,'COVER',I%XCOVER(:,:),I%LCOVER,IRESP,HDIR='H')
CALL MPPDB_CHECK_SURFEX3D(I%XCOVER,"READ_PGD_ISBA_n after READ_SURF:XCOVER",PRECISION,ILUOUT,'NATURE',JPCOVER)
#else
CALL READ_SURF_COV(&
HPROGRAM,'COVER',I%XCOVER(:,:),I%LCOVER,IRESP)
......@@ -324,6 +330,11 @@ ALLOCATE(IG%XMESH_SIZE (IG%NDIM))
ALLOCATE(I%XZ0EFFJPDIR(IG%NDIM))
CALL READ_GRID(&
HPROGRAM,IG%CGRID,IG%XGRID_PAR,IG%XLAT,IG%XLON,IG%XMESH_SIZE,IRESP,I%XZ0EFFJPDIR)
#ifdef MNH_PARALLEL
CALL MPPDB_CHECK_SURFEX2D(IG%XLAT,"READ_PGD_ISBA_n after READ_GRID:XLAT",PRECISION,ILUOUT,'NATURE')
CALL MPPDB_CHECK_SURFEX2D(IG%XLON,"READ_PGD_ISBA_n after READ_GRID:XLON",PRECISION,ILUOUT,'NATURE')
CALL MPPDB_CHECK_SURFEX2D(IG%XMESH_SIZE,"READ_PGD_ISBA_n after READ_GRID:XMESH_SIZE",PRECISION,ILUOUT,'NATURE')
#endif
!
!* clay fraction : attention, seul un niveau est present dans le fichier
!* on rempli tout les niveaux de XCLAY avec les valeurs du fichiers
......
......@@ -34,7 +34,7 @@
!! MODIFICATIONS
!! -------------
!! Original 01/2003
!! M. Moge 02/2015 READ_SURF
!! M. Moge 02/2015 READ_SURF // + MPPDB_CHECK
!-------------------------------------------------------------------------------
!
!* 0. DECLARATIONS
......@@ -66,6 +66,11 @@ USE MODI_GET_TYPE_DIM_n
!
USE MODI_READ_LECOCLIMAP
!
#ifdef MNH_PARALLEL
USE MODI_GET_LUOUT
USE MODE_MPPDB
!
#endif
IMPLICIT NONE
!
!* 0.1 Declarations of arguments
......@@ -83,6 +88,9 @@ TYPE(GRID_CONF_PROJ_t),INTENT(INOUT) :: GCP
! -------------------------------
!
INTEGER :: IRESP ! Error code after redding
#ifdef MNH_PARALLEL
INTEGER :: ILUOUT ! output listing logical unit
#endif
!
CHARACTER(LEN=LEN_HREC) :: YRECFM ! Name of the article to be read
INTEGER :: IVERSION
......@@ -94,6 +102,9 @@ REAL(KIND=JPRB) :: ZHOOK_HANDLE
!* 1D physical dimension
!
IF (LHOOK) CALL DR_HOOK('READ_PGD_TEB_N',0,ZHOOK_HANDLE)
#ifdef MNH_PARALLEL
CALL GET_LUOUT(HPROGRAM,ILUOUT)
#endif
YRECFM='SIZE_TOWN'
CALL GET_TYPE_DIM_n(DTCO, U, &
'TOWN ',TM%TG%NDIM)
......@@ -208,6 +219,7 @@ ALLOCATE(TM%TOP%XCOVER(TM%TG%NDIM,COUNT(TM%TOP%LCOVER)))
#ifdef MNH_PARALLEL
CALL READ_SURF_COV(&
HPROGRAM,'COVER',TM%TOP%XCOVER(:,:),TM%TOP%LCOVER,IRESP,HDIR='H')
CALL MPPDB_CHECK_SURFEX3D(TM%TOP%XCOVER,"READ_PGD_TEB_n after READ_SURF:XCOVER",PRECISION,ILUOUT, 'TOWN ',JPCOVER)
#else
CALL READ_SURF_COV(&
HPROGRAM,'COVER',TM%TOP%XCOVER(:,:),TM%TOP%LCOVER,IRESP)
......
This diff is collapsed.
......@@ -37,6 +37,7 @@
!! Original 13/10/03
!! B. Decharme 2008 XWDRAIN
!! M.Tomasini 17/04/12 Add interpolation for ISBA variables (MODD_DATA_ISBA_n)
! M.Moge 05/02/15 MPPDB_CHECK
!----------------------------------------------------------------------------
!
!* 0. DECLARATION
......@@ -76,6 +77,10 @@ USE MODI_PACK_PGD_ISBA
USE YOMHOOK ,ONLY : LHOOK, DR_HOOK
USE PARKIND1 ,ONLY : JPRB
!
#ifdef MNH_PARALLEL
USE MODE_MPPDB
!
#endif
IMPLICIT NONE
!
!* 0.1 Declaration of dummy arguments
......@@ -238,7 +243,14 @@ ALLOCATE(I%XZ0EFFJPDIR(ILU))
HPROGRAM, 'NATURE', &
IG%CGRID, IG%XGRID_PAR, &
I%LCOVER, I%XCOVER, I%XZS, &
IG%XLAT, IG%XLON, IG%XMESH_SIZE, I%XZ0EFFJPDIR )
IG%XLAT, IG%XLON, IG%XMESH_SIZE, I%XZ0EFFJPDIR )
#ifdef MNH_PARALLEL
CALL MPPDB_CHECK_SURFEX3D(I%XCOVER,"ZOOM_PGD_ISBA:XCOVER",PRECISION,ILUOUT,'NATURE',JPCOVER)
CALL MPPDB_CHECK_SURFEX2D(IG%XLAT,"ZOOM_PGD_ISBA:XLAT",PRECISION,ILUOUT,'NATURE')
CALL MPPDB_CHECK_SURFEX2D(IG%XLON,"ZOOM_PGD_ISBA:XLON",PRECISION,ILUOUT,'NATURE')
CALL MPPDB_CHECK_SURFEX2D(IG%XMESH_SIZE,"ZOOM_PGD_ISBA:XMESH_SIZE",PRECISION,ILUOUT,'NATURE')
CALL MPPDB_CHECK_SURFEX2D(I%XZ0EFFJPDIR,"ZOOM_PGD_ISBA:XZ0EFFJPDIR",PRECISION,ILUOUT,'NATURE')
#endif
!
!------------------------------------------------------------------------------
!
......@@ -251,6 +263,12 @@ ALLOCATE(I%XRUNOFFB(ILU))
ALLOCATE(I%XWDRAIN (ILU))
CALL ZOOM_PGD_ISBA_FULL(CHI, DTCO, DTI, IG, I, UG, U, GCP,&
HPROGRAM,HINIFILE,HINIFILETYPE)
#ifdef MNH_PARALLEL
CALL MPPDB_CHECK_SURFEX3D(I%XSAND,"ZOOM_PGD_ISBA:XSAND",PRECISION,ILUOUT,'NATURE',I%NGROUND_LAYER)
CALL MPPDB_CHECK_SURFEX3D(I%XCLAY,"ZOOM_PGD_ISBA:XCLAY",PRECISION,ILUOUT,'NATURE',I%NGROUND_LAYER)
CALL MPPDB_CHECK_SURFEX2D(I%XRUNOFFB,"ZOOM_PGD_ISBA:XRUNOFFB",PRECISION,ILUOUT,'NATURE')
CALL MPPDB_CHECK_SURFEX2D(I%XWDRAIN,"ZOOM_PGD_ISBA:XWDRAIN",PRECISION,ILUOUT,'NATURE')
#endif
!
!-------------------------------------------------------------------------------
!
......@@ -280,6 +298,17 @@ ALLOCATE(ZSSO_SLOPE(IL))
ZAOSIP, ZAOSIM, ZAOSJP, ZAOSJM, &
ZHO2IP, ZHO2IM, ZHO2JP, ZHO2JM, &
ZSSO_SLOPE )
#ifdef MNH_PARALLEL
CALL MPPDB_CHECK_SURFEX2D(ZAOSIP,"ZOOM_PGD_ISBA:ZAOSIP",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(ZAOSIM,"ZOOM_PGD_ISBA:ZAOSIM",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(ZAOSJP,"ZOOM_PGD_ISBA:ZAOSJP",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(ZAOSJM,"ZOOM_PGD_ISBA:ZAOSJM",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(ZHO2IP,"ZOOM_PGD_ISBA:ZHO2IP",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(ZHO2IM,"ZOOM_PGD_ISBA:ZHO2IM",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(ZHO2JP,"ZOOM_PGD_ISBA:ZHO2JP",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(ZHO2JM,"ZOOM_PGD_ISBA:ZHO2JM",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(ZSSO_SLOPE,"ZOOM_PGD_ISBA:ZSSO_SLOPE",PRECISION,ILUOUT)
#endif
!
DEALLOCATE(ZAOSIP)
DEALLOCATE(ZAOSIM)
......
......@@ -70,6 +70,11 @@ USE PARKIND1 ,ONLY : JPRB
USE MODI_CLEAN_PREP_OUTPUT_GRID
!
USE MODI_GET_LUOUT
!
#ifdef MNH_PARALLEL
USE MODE_MPPDB
!
#endif
IMPLICIT NONE
!
!* 0.1 Declaration of dummy arguments
......@@ -144,6 +149,10 @@ IF (LHOOK) CALL DR_HOOK('ZOOM_PGD_OROGRAPHY',0,ZHOOK_HANDLE)
!
CALL PREP_OUTPUT_GRID(UG, U, &
ILUOUT,UG%CGRID,UG%XGRID_PAR,UG%XLAT,UG%XLON)
#ifdef MNH_PARALLEL
CALL MPPDB_CHECK_SURFEX2D(UG%XLAT,"ZOOM_PGD_OROGRAPHY:XLAT",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(UG%XLON,"ZOOM_PGD_OROGRAPHY:XLON",PRECISION,ILUOUT)
#endif
!
!------------------------------------------------------------------------------
!
......@@ -316,6 +325,26 @@ WHERE (PWATER(:)==1.)
USS%XAOSJP(:) = 0.
USS%XAOSJM(:) = 0.
END WHERE
#ifdef MNH_PARALLEL
CALL MPPDB_CHECK_SURFEX2D(U%XZS,"ZOOM_PGD_OROGRAPHY:XZS",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(USS%XAVG_ZS,"ZOOM_PGD_OROGRAPHY:XAVG_ZS",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(USS%XSIL_ZS,"ZOOM_PGD_OROGRAPHY:XSIL_ZS",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(USS%XSSO_STDEV,"ZOOM_PGD_OROGRAPHY:XSSO_STDEV",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(USS%XMIN_ZS,"ZOOM_PGD_OROGRAPHY:XMIN_ZS",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(USS%XMAX_ZS,"ZOOM_PGD_OROGRAPHY:XMAX_ZS",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(USS%XSSO_ANIS,"ZOOM_PGD_OROGRAPHY:XSSO_ANIS",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(USS%XSSO_DIR,"ZOOM_PGD_OROGRAPHY:XSSO_DIR",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(USS%XSSO_SLOPE,"ZOOM_PGD_OROGRAPHY:XSSO_SLOPE",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(USS%XAOSIP,"ZOOM_PGD_OROGRAPHY:XAOSIP",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(USS%XAOSIM,"ZOOM_PGD_OROGRAPHY:XAOSIM",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(USS%XAOSJP,"ZOOM_PGD_OROGRAPHY:XAOSJP",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(USS%XAOSJM,"ZOOM_PGD_OROGRAPHY:XAOSJM",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(USS%XHO2IP,"ZOOM_PGD_OROGRAPHY:XHO2IP",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(USS%XHO2IM,"ZOOM_PGD_OROGRAPHY:XHO2IM",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(USS%XHO2JP,"ZOOM_PGD_OROGRAPHY:XHO2JP",PRECISION,ILUOUT)
CALL MPPDB_CHECK_SURFEX2D(USS%XHO2JM,"ZOOM_PGD_OROGRAPHY:XHO2JM",PRECISION,ILUOUT)
!
#endif
! go back to child model
CALL GOTO_MODEL_MNH(U,HPROGRAM, 2, IINFO_ll)
!_______________________________________________________________________________
......
......@@ -36,6 +36,7 @@
!! Original 09/2008
!! G. TANGUY 03/2009 : add reading and interpolation of XDATA_SST and
!! TDATA_SST in the case LDATA_SST=T
! Modification 05/02/15 M.Moge : MPPDB_CHECK
!!
!----------------------------------------------------------------------------
!
......@@ -73,6 +74,10 @@ USE MODI_CLEAN_PREP_OUTPUT_GRID
USE YOMHOOK ,ONLY : LHOOK, DR_HOOK
USE PARKIND1 ,ONLY : JPRB
!
#ifdef MNH_PARALLEL
USE MODE_MPPDB
!
#endif
IMPLICIT NONE
!
!* 0.1 Declaration of arguments
......@@ -142,7 +147,12 @@ ALLOCATE(SG%XMESH_SIZE (SG%NDIM))
HPROGRAM, 'SEA ', &
SG%CGRID, SG%XGRID_PAR, S%LCOVER, &
S%XCOVER, S%XZS, &
SG%XLAT, SG%XLON, SG%XMESH_SIZE )
SG%XLAT, SG%XLON, SG%XMESH_SIZE )
#ifdef MNH_PARALLEL
CALL MPPDB_CHECK_SURFEX3D(S%XCOVER,"ZOOM_PGD_SEAFLUX:XCOVER",PRECISION,ILUOUT, 'SEA',JPCOVER)
CALL MPPDB_CHECK_SURFEX2D(SG%XMESH_SIZE,"ZOOM_PGD_SEAFLUX:XMESH_SIZE",PRECISION,ILUOUT, 'SEA')
CALL MPPDB_CHECK_SURFEX2D(S%XZS,"ZOOM_PGD_SEAFLUX:XZS",PRECISION,ILUOUT, 'SEA')
#endif
!
!------------------------------------------------------------------------------
!
......@@ -154,6 +164,10 @@ ALLOCATE(SG%XMESH_SIZE (SG%NDIM))
!
CALL PREP_OUTPUT_GRID(UG, U, &
ILUOUT,SG%CGRID,SG%XGRID_PAR,SG%XLAT,SG%XLON)
#ifdef MNH_PARALLEL
CALL MPPDB_CHECK_SURFEX2D(SG%XLAT,"ZOOM_PGD_SEAFLUX:XLAT",PRECISION,ILUOUT, 'SEA')
CALL MPPDB_CHECK_SURFEX2D(SG%XLON,"ZOOM_PGD_SEAFLUX:XLON",PRECISION,ILUOUT, 'SEA')
#endif
!
!* mask where interpolations must be done
!
......
......@@ -37,6 +37,7 @@
!! ------------
!!
!! Original 13/10/03
! Modification 05/02/15 M.Moge : MPPDB_CHECK
!----------------------------------------------------------------------------
!
!* 0. DECLARATION
......@@ -87,6 +88,9 @@ USE MODI_GOTO_WRAPPER_TEB_PATCH
USE YOMHOOK ,ONLY : LHOOK, DR_HOOK
USE PARKIND1 ,ONLY : JPRB
!
#ifdef MNH_PARALLEL
USE MODE_MPPDB
#endif
!
IMPLICIT NONE
!
......@@ -181,7 +185,14 @@ ALLOCATE(TG%XMESH_SIZE (ILU))
HPROGRAM, 'TOWN ', &
TG%CGRID, TG%XGRID_PAR, &
TOP%LCOVER, TOP%XCOVER, TOP%XZS, &
TG%XLAT, TG%XLON, TG%XMESH_SIZE )
TG%XLAT, TG%XLON, TG%XMESH_SIZE )
#ifdef MNH_PARALLEL
CALL MPPDB_CHECK_SURFEX3D(TOP%XCOVER,"ZOOM_PGD_TEB:XCOVER",PRECISION,ILUOUT, 'TOWN ',JPCOVER)
CALL MPPDB_CHECK_SURFEX2D(TG%XLAT,"ZOOM_PGD_TEB:XLAT",PRECISION,ILUOUT, 'TOWN ')
CALL MPPDB_CHECK_SURFEX2D(TG%XLON,"ZOOM_PGD_TEB:XLON",PRECISION,ILUOUT, 'TOWN ')
CALL MPPDB_CHECK_SURFEX2D(TG%XMESH_SIZE,"ZOOM_PGD_TEB:XMESH_SIZE",PRECISION,ILUOUT, 'TOWN ')
CALL MPPDB_CHECK_SURFEX2D(TOP%XZS,"ZOOM_PGD_TEB:XZS",PRECISION,ILUOUT, 'TOWN ')
#endif
!
TG%NDIM = ILU
!
......@@ -200,6 +211,10 @@ TG%NDIM = ILU
!
CALL PREP_OUTPUT_GRID(UG, U, &
ILUOUT,TG%CGRID,TG%XGRID_PAR,TG%XLAT,TG%XLON)
#ifdef MNH_PARALLEL
CALL MPPDB_CHECK_SURFEX2D(TG%XLAT,"ZOOM_PGD_TEB:XLAT",PRECISION,ILUOUT, 'TOWN ')
CALL MPPDB_CHECK_SURFEX2D(TG%XLON,"ZOOM_PGD_TEB:XLON",PRECISION,ILUOUT, 'TOWN ')
#endif
!
!
!------------------------------------------------------------------------------
......@@ -317,6 +332,9 @@ END DO
ALLOCATE(TGDP%XSAND(ILU,TGDO%NGROUND_LAYER))
CALL HOR_INTERPOL(DTCO, U,GCP, &
ILUOUT,ZIN,TGDP%XSAND)
#ifdef MNH_PARALLEL
CALL MPPDB_CHECK_SURFEX3D(TGDP%XSAND,"ZOOM_PGD_TEB_GARDEB:XSAND",PRECISION,ILUOUT, 'TOWN ',TGDO%NGROUND_LAYER)
#endif
DEALLOCATE(ZIN)
!
!* clay
......@@ -332,6 +350,9 @@ END DO
ALLOCATE(TGDP%XCLAY(ILU,TGDO%NGROUND_LAYER))
CALL HOR_INTERPOL(DTCO, U,GCP, &
ILUOUT,ZIN,TGDP%XCLAY)
#ifdef MNH_PARALLEL
CALL MPPDB_CHECK_SURFEX3D(TGDP%XCLAY,"ZOOM_PGD_TEB_GARDEB:XCLAY",PRECISION,ILUOUT, 'TOWN ',TGDO%NGROUND_LAYER)
#endif
DEALLOCATE(ZIN)
!
!* runoff & drainage
......@@ -345,6 +366,9 @@ ZIN(:,1) = ZFIELD(:)
ALLOCATE(TGDP%XRUNOFFB(ILU))
CALL HOR_INTERPOL(DTCO, U,GCP, &
ILUOUT,ZIN,ZOUT)
#ifdef MNH_PARALLEL
CALL MPPDB_CHECK_SURFEX3D(ZOUT,"ZOOM_PGD_TEB_GARDEB:ZOUT",PRECISION,ILUOUT, 'TOWN ',1)
#endif
TGDP%XRUNOFFB(:) = ZOUT(:,1)
!
IF (IVERSION<=3) THEN
......@@ -358,6 +382,9 @@ ELSE
ALLOCATE(TGDP%XWDRAIN(ILU))
CALL HOR_INTERPOL(DTCO, U,GCP, &
ILUOUT,ZIN,ZOUT)
#ifdef MNH_PARALLEL
CALL MPPDB_CHECK_SURFEX3D(ZOUT,"ZOOM_PGD_TEB_GARDEB:ZOUT",PRECISION,ILUOUT, 'TOWN ',1)
#endif
TGDP%XWDRAIN(:) = ZOUT(:,1)
ENDIF
!
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment