From 540c40733f1080962c41ba195da44e44d49c50c3 Mon Sep 17 00:00:00 2001 From: ESCOBAR Juan <escj@nuwa> Date: Wed, 26 Aug 2020 11:01:41 +0200 Subject: [PATCH] Juan 26/08/2020:bitrep , use br_asin,br_sin,br_atan2 --- src/MNH/dyn_sources.f90 | 6 +++++- src/MNH/ini_dynamics.f90 | 12 ++++++++++++ src/MNH/ini_radiations.f90 | 5 +++++ src/MNH/set_ref.f90 | 9 ++++++++- 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/MNH/dyn_sources.f90 b/src/MNH/dyn_sources.f90 index 3972eae3c..d45b05eed 100644 --- a/src/MNH/dyn_sources.f90 +++ b/src/MNH/dyn_sources.f90 @@ -246,7 +246,8 @@ IF ((.NOT.L1D).AND.(.NOT.LCARTESIAN) ) THEN & MYF(PVT) * ZWORK1 - MZF(PWT) , & & MYF(PVT) , MZF(PWT) , MXM(PWT) , MYM(PWT) ) CALL MPPDB_CHECK3DM("DYN_SOOURCES:SUITE",PRECISION,& - & MXM(ZRVT),MXM(PVT),MXM(PWT),MXM(ZWORK1),MXM(ZWORK2),MXM(ZWORK3) ) + & MXM(ZRVT),MXM(PVT),MXM(PWT),MXM(ZWORK1),MXM(ZWORK2),MXM(ZWORK3),& + & ZRUT,ZRVT,PRUS,PRVS,PRWS ) ! PRUS(:,:,:) = PRUS & + MXM( MYF(ZRVT*PVT) * ZWORK2 * ZWORK3 ) & @@ -283,6 +284,9 @@ IF (LCORIO) THEN ! ZWORK1(:,:,:) = SPREAD( PCORIOX(:,:),DIM=3,NCOPIES=IKU) * PRHODJ(:,:,:) ZWORK2(:,:,:) = SPREAD( PCORIOY(:,:),DIM=3,NCOPIES=IKU) * PRHODJ(:,:,:) + ! + CALL MPPDB_CHECK3DM("DYN_SOOURCES:CORIOLIS",PRECISION,& + & ZWORK1,ZWORK2,ZWORK3 ) ! PRUS(:,:,:) = PRUS - MXM( ZWORK2 * MZF(PWT) ) ! diff --git a/src/MNH/ini_dynamics.f90 b/src/MNH/ini_dynamics.f90 index e4d00f5bb..13ea80bc1 100644 --- a/src/MNH/ini_dynamics.f90 +++ b/src/MNH/ini_dynamics.f90 @@ -296,6 +296,13 @@ USE MODI_ZDIFFUSETUP ! USE MODE_ll USE MODE_TYPE_ZDIFFU +#ifdef MNH_BITREP +USE MODI_BITREP +#define SIN BR_SIN +#define COS BR_COS +#endif +! +USE MODE_MPPDB ! IMPLICIT NONE ! @@ -474,6 +481,11 @@ IF (.NOT.LCARTESIAN) THEN / COS(PLAT(:,:)*ZCDR) PCURVY (:,:) = SIN(ZGAMMA(:,:)) * (SIN(PLAT(:,:)*ZCDR) -XRPK) & / COS(PLAT(:,:)*ZCDR) + ! + CALL MPPDB_CHECK2D(PCORIOX,"ini_dynamics:PCORIOX",PRECISION) + CALL MPPDB_CHECK2D(PCORIOY,"ini_dynamics:PCORIOY",PRECISION) + CALL MPPDB_CHECK2D(PCORIOZ,"ini_dynamics:PCORIOZ",PRECISION) + ! ELSE ZMBETA = - (XBETA*ZCDR) PCORIOX(:,:) = - 2. * XOMEGA * COS(XLAT0*ZCDR) * SIN(ZMBETA) diff --git a/src/MNH/ini_radiations.f90 b/src/MNH/ini_radiations.f90 index d05fc31f5..04df49009 100644 --- a/src/MNH/ini_radiations.f90 +++ b/src/MNH/ini_radiations.f90 @@ -130,6 +130,11 @@ USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_ll ! USE MODI_SHUMAN +#ifdef MNH_BITREP +USE MODI_BITREP +#define ATAN BR_ATAN +#define ATAN2 BR_ATAN2 +#endif ! IMPLICIT NONE ! diff --git a/src/MNH/set_ref.f90 b/src/MNH/set_ref.f90 index 925fd52ef..45862bf31 100644 --- a/src/MNH/set_ref.f90 +++ b/src/MNH/set_ref.f90 @@ -165,6 +165,9 @@ USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_ll USE MODE_MPPDB USE MODE_REPRO_SUM +#ifdef MNH_BITREP +USE MODI_BITREP +#endif ! IMPLICIT NONE ! @@ -370,7 +373,11 @@ ZCVD_O_RD = (XCPD / XRD) - 1. IF (LBOUSS) THEN ZRHOREF(:,:,:) = PRHODREF(:,:,:) ELSE - ZRHOREF(:,:,:) = PEXNREF(:,:,:) ** ZCVD_O_RD * XP00 / ( XRD * PTHVREF(:,:,:) ) +#ifndef MNH_BITREP + ZRHOREF(:,:,:) = PEXNREF(:,:,:) ** ZCVD_O_RD * XP00 / ( XRD * PTHVREF(:,:,:) ) +#else + ZRHOREF(:,:,:) = BR_POW ( PEXNREF(:,:,:) , ZCVD_O_RD ) * XP00 / ( XRD * PTHVREF(:,:,:) ) +#endif ZRHOREF(:,:,1)=ZRHOREF(:,:,2) ! this avoids to obtain erroneous values for END IF ! rv at this last point -- GitLab