diff --git a/src/arome/ext/apl_arome.F90 b/src/arome/ext/apl_arome.F90 index d8fb606880da690e798ff4f9a44a3d3fb4fa0408..e3e8f9c1b0b44cf24cdf9e3617652731dc91e794 100644 --- a/src/arome/ext/apl_arome.F90 +++ b/src/arome/ext/apl_arome.F90 @@ -1,47 +1,10 @@ -!OPTION! -pvctl noloopfusion -SUBROUTINE APL_AROME(YDGEOMETRY,YDSURF, YDCFU, YDXFU, YDMODEL, KBL, KGPCOMP, KIDIA , KFDIA , KLON ,& - & KTDIA , KLEV , KSTEP ,& - & KMAXDRAFT, KSGST, KNFRRC, PDT, LDXFUMSE, PINDX, PINDY ,& - & PGEMU,PGELAM,POROG,PGM,PMU0,PMU0LU,PMU0M,PMU0N,PCLON, PSLON,PVO3ABC,PLSM,& - & PAESEA , PAELAN , PAESOO , PAEDES , PAESUL, PAEVOL,& - & PGP2DSDT, PGP2DSPP, & - !--------------------------------------------------------------------- - ! - INPUT A M - & PAPHIM,PAPHIFM,PAPRSM, PAPRSFM, PRDELPM, PDELPM, PTM, PQVM ,& - & PCPM , PRM ,PALPHM , PLNPRM,& - & PQCM , PQIM ,PQRM , PQSM, PQGM, PQHM,& - - & PLIMAM , & - & PTKEM , PEFB1 ,PEFB2 , PEFB3,& - & PSIGM,PSVM,& - & PUM , PVM, PWM, PEDR,& - & PFORCEU,PFORCEV,PFORCET,PFORCEQ,& - !--------------------------------------------------------------------- - ! - INOUT A S - & PGPAR, PEMTD, PEMTU, PTRSO,& - & PGDEOSI, PGUEOSI, PGMU0, PGMU0_MIN, PGMU0_MAX,& - & PGDEOTI, PGDEOTI2, PGUEOTI, PGUEOTI2, PGEOLT, PGEOXT,& - & PGRPROX, PGMIXP, PGFLUXC, PGRSURF,& - & PTURB3D,& - ! - OUT A S - & PQLRAD, PQIRAD, PRH, PCLFS, PSIGS,& - & PTENDT, PTENDR, PTENDU, PTENDV,PTENDW,& - - & PTENDLIMA, & - & PTENDTKE, PTENDEFB1, PTENDEFB2, PTENDEFB3,& - & PTENDEXT,PFRTH, PFRSO,PFRTHDS, PFRSODS, PFRSOPS, PFRSDNI,& - & PFRSOPT, PFRTHC, PFRSOC, & - !--------------------------------------------------------------------- - ! - IN FOR RADIATION IF NO SURFACE SCHEME - & PALBIN,PEMIS,& - ! - INOUT for easy diag - & PEZDIAG,& - ! - INOUT for CFU XFU - & PCLCH,PCLCL,PCLCM,PCLCT,PFPLSL,PFPLSN,PFPLSG,PFPLSH,PSTRTU,PSTRTV,PFCS,PFCLL,& - & PFCLN,PUCLS,PVCLS,PNUCLS,PNVCLS,PTCLS,PQCLS,PHUCLS,PUGST,PVGST,PFEVL,PFEVN, PPBLH,PSPSG,PSPSGR,& - & PSDUR,PDIAGH,PFLASH,PSFORC,PTPWCLS,PDPRECIPS,PDPRECIPS2,PVISICLD,PVISIHYDRO,PMXCLWC,& - ! daand: radflex - & YDPROCSET ,YDDDH) +#ifdef RS6K +@PROCESS NOCHECK +#endif +SUBROUTINE APL_AROME(YDCST, YDMF_PHYS_BASE_STATE, YDMF_PHYS_NEXT_STATE, YDGEOMETRY, YDCPG_BNDS, YDCPG_OPTS, & +& YDCPG_MISC, YDCPG_GPAR, YDCPG_PHY0, YDCPG_PHY9, YDMF_PHYS, YDCPG_DYN0, YDCPG_DYN9, YDMF_PHYS_SURF, & +& YDCPG_SL1, YDVARS, YDGMV, YDSURF, YDCFU, YDXFU, YDMODEL, PGFL, PGP2DSDT, PGMVT1, & +& PGFLT1, PTRAJ_PHYS, YDDDH) !**** *APL_AROME * - CALL OF PHYSICAL PARAMETERISATIONS FOR ALARO/AROME @@ -62,75 +25,30 @@ SUBROUTINE APL_AROME(YDGEOMETRY,YDSURF, YDCFU, YDXFU, YDMODEL, KBL, KGPCOMP, KID ! - NOM DES PARAMETRES DE DIMENSIONNEMENT DE LA PHYSIQUE. ! - DIMENSIONS. -! KBL : NUMERO DE BLOC NPROMA -! KBL : NPROMA-PACKETS NUMBER -! KGPCOMP : NOMBRE TOTAL DE POINTS DE GRILLE SUR LE DOMAINE -! KGPCOMP : TOTAL GRID POINTS NUMBER IN THE DOMAIN -! KIDIA, KFDIA : BORNES BOUCLES HORIZONTALES (IST,IEND DANS CPG). -! KIDIA, KFDIA : START/END OF HORIZONTAL LOOP (IST,IEND IN *CPG*). -! KLON : DIMENSION HORIZONTALE (NPROMA DANS CPG). -! KLON : HORIZONTAL DIMENSION (NPROMA IN *CPG*). -! KTDIA : DEBUT BOUCLE VERTICALE DANS LA PHYSIQUE. -! KTDIA : START OF THE VERTICAL LOOP IN THE PHYSICS (IF SOME LEVELS ARE -! SKIPPED AT THE TOP OF THE MODEL). -! KLEV : FIN BOUCLE VERTICE ET DIMENSION VERTICALE (NFLEVG DANS CPG). -! KLEV : END OF VERTICAL LOOP AND VERTICAL DIMENSION(NFLEVG IN *CPG*). -! KSTEP : TIME STEP NUMBER (starting with zero) ! KMAXDRAFT : MAX NUMBER OF DRAFTS (FOR DIMENSIONNING) ! KSGST : NUMBER OF SUBGRID SURFACE TEMPERATURES AND FLUXES (NTSSG IN *CPG*) ! KNFRRC : FREQUENCY FOR CLEAR SKY RADIATION CALCULATION -! PDT : TIME STEP (in s) +! PDT : TIME STEP (in s) ! LDXFUMSE : T if CDCONF=X in order not to increment surfex timer in that case !----------------------------------------------------------------------- -! PGEMU : SINE OF GEOGRAPHICAL LATITUDE +! YDVARS%GEOMETRY%GEMU%T0 : SINE OF GEOGRAPHICAL LATITUDE ! PGELAM : LONGITUDE ! POROG : g * OROGRAPHY ! PGM : MAP FACTOR (used in ALARO convection only) -! PMU0 : COSINUS LOCAL INSTANTANE DE L'ANGLE ZENITHAL SOLAIRE. -! PMU0LU : COSINUS LOCAL INSTANTANE DE L'ANGLE ZENITHAL LUNAIRE. -! PMU0 : LOCAL COSINE OF INSTANTANEOUS SOLAR ZENITH ANGLE. -! PMU0M : COSINUS LOCAL MOYEN DE L'ANGLE ZENITHAL. -! PMU0M : LOCAL COSINE OF AVERAGED SOLAR ZENITH ANGLE. -! PMU0N : COSINUS LOCAL AU PAS DE TEMPS SUIVANT DE L'ANGLE ZENITHAL SOLAIRE. -! PMU0N : NEXT TIME STEP COSINUS LOCAL INSTANTANE DE L'ANGLE ZENITHAL SOLAIRE. ! PCLON : cosine of geographical longitude. ! PSLON : sine of geographical longitude. -! PVO3ABC : OZONE COEFFICIENTS FOR ARPEGE PROFILES -! PLSM : -ATMOSPHERIC MODEL- LAND-SEA MASK (! MAY BE DIFFERENT FROM -! THE SURFACE ONE) -! PAESEA : MARINE AEROSOLS (IF NVCLIA >= 4) -! PAELAN : CONTINENTAL AEROSOLS (IF NVCLIA >= 4) -! PAESOO : SOOT AEROSOLS (IF NVCLIA >= 4) -! PAEDES : DESERT AEROSOLS (IF NVCLIA >= 4) -! PAESUL : SULFATE AEROSOLS (IF LAEROSUL=.T.) -! PAEVOL : VOLCANO AEROSOLS (IF LAEROVOL=.T.) ! PGP2DSDT : STOCHASTIC PHYSICS PATTERNS ! FIELDS WITH SUBSCRIPT M FOR TIME T-DT IN 3TL OR T IN 2TL -! PAPHIM : GEOPOTENTIAL ON HALF-LEVELS -! PAPHIFM : GEOPOTENTIAL ON FULL-LEVELS -! PAPRSM : PRESSURE ON HALF LEVELS -! PAPRSFM : PRESSURE ON FULL LEVELS. -! PRDELPM : INVERSE OF PDELP ! PDELPM : LAYER THICKNESS IN PRESSURE UNITS ! PTM : TEMPERATURE. -! PQVM : SPECIFIC HUMIDITY OF WATER VAPOR ! PCPM : SPECIFIC HEAT AT CONSTANT PRESSURE FOR AIR ! PRM : GAS CONSTANT FOR AIR -! PALPHM : "alpha" on layers -! PLNPRM : "delta" on layers - -! PQCM : SPECIFIC HUMIDITY OF CLOUD WATER -! PQIM : SPECIFIC HUMIDITY OF ICE -! PQRM : SPECIFIC HUMIDITY OF RAIN -! PQSM : SPECIFIC HUMIDITY OF SNOW -! PQGM : SPECIFIC HUMIDITY OF GRAUPEL -! PQHM : SPECIFIC HUMIDITY OF HAIL + ! PTKEM : TURBULENT KINETIC ENERGY ! PSVM : PASSIVE SCALARS -! PSIGM : SIGMA FOR SUBGRIDCOND ! PUM : ZONAL WIND ! PVM : MERIDIAN WIND ! PWM : VERTICAL VELOCITY (m/s) @@ -138,112 +56,33 @@ SUBROUTINE APL_AROME(YDGEOMETRY,YDSURF, YDCFU, YDXFU, YDMODEL, KBL, KGPCOMP, KID !----------------------------------------------------------------------- ! - INOUT -! PGPAR : BUFFER FOR 2D FIELDS - CONTAINS PRECIP, ALBEDO, EMISS, TS +! PGPAR : BUFFER FOR 2D FIELDS - CONTAINS PRECIP, ALBEDO, EMISS, TS ! : SURFACE FLUXES -! PEMTD : DOWNWARD LONGWAVE EMISSIVITY -! PEMTU : UPWARD LONGWAVE EMISSIVITY -! PTRSO : SHORTWAVE TRANSMISSIVITY ! ACRANEB2 intermittency storage -! PGDEOSI : DESCENDING INCREMENTAL OPTICAL DEPTHS, SOLAR -! PGUEOSI : ASCENDING INCREMENTAL OPTICAL DEPTHS, SOLAR -! PGMU0 : COSINE OF SOLAR ZENITH ANGLE, APPROXIMATE ACTUAL VALUE -! PGMU0_MIN : COSINE OF SOLAR ZENITH ANGLE, MIN VALUE -! PGMU0_MAX : COSINE OF SOLAR ZENITH ANGLE, MAX VALUE -! PGDEOTI : DESCENDING INCREMENTAL OPTICAL DEPTHS, dB/dT(T0) WEIGHTS -! PGDEOTI2 : DESCENDING INCREMENTAL OPTICAL DEPTHS, B WEIGHTS WITH ! LINEAR T_e CORRECTION -! PGUEOTI : ASCENDING INCREMENTAL OPTICAL DEPTHS, dB/dT(T0) WEIGHTS -! PGUEOTI2 : ASCENDING INCREMENTAL OPTICAL DEPTHS, B WEIGHTS WITH ! LINEAR T_e CORRECTION -! PGEOLT : LOCAL OPTICAL DEPTHS, dB/dT(T0) WEIGHTS -! PGEOXT : MAXIMUM OPTICAL DEPTHS FOR EBL-EAL, dB/dT(T0) WEIGHTS -! PGRPROX : CORRECTION TERM FOR ADJACENT EXCHANGES -! PGMIXP : NON-STATISTICAL WEIGHTS FOR BRACKETING -! PGFLUXC : OUT OF BRACKET PART OF CLEARSKY EBL, RESP. EBL-EAL FLUX -! PGRSURF : CORRECTIVE RATIO FOR SURFACE CTS CONTRIBUTION -! PTURB3D : MATRICE DE GRADIENTS HORIZONTAUX !----------------------------------------------------------------------- ! - OUTPUT (SUBSCRIPT S FOR T+DT) -! PCLFS : CLOUD FRACTION -! PQLRAD : SPECIFIC HUMIDITY OF CLOUD WATER FOR RTTOV -! PQIRAD : SPECIFIC HUMIDITY OF ICE FOR RTTOV ! PSIGS : SIGMA FOR SUBGRIDCOND ! PTENDT : TEMPERATURE TENDENCY ! PTENDR : HYDROMETEORE TENDENCIES -! PTENDU : ZONAL WIND TENDENCY -! PTENDV : MERIDIAN WIND TENDENCY ! PTENDW : VERTICAL VELOCITY TENDENCY ! PTENDTKE : TKE TENDENCY ! PTENDEXT : PASSIVE SCALARS TENDENCY -! PFRTH : LONGWAVE RADIATIVE FLUX ! PFRSO : SHORTWAVE RADIATIVE FLUX -! PFRTHDS : LONGWAVE DOWNWARD SURFACE RADIATIVE FLUX -! PFRSOPS : SHORTWAVE DOWNWARD SURFACE RADIATIVE FLUX DIRECT -! PFRSDNI : SHORTWAVE DIRECT NORMAL IRRADIANCE -! PFRSODS : SHORTWAVE DOWNWARD SURFACE RADIATIVE FLUX GLOBAL -! PFRSOPT : SHORTWAVE DOWNWARD TOP RADIATIVE FLUX DIRECT ! - 2D (0:1) -! PFRTHC : LONGWAVE CLEAR SKY NET RADIATIVE FLUX -! PFRSOC : SHORTWAVE CLEAR SKY NET RADIATIVE FLUX -! variables used in input for radiation in case no surface scheme is used +! variables used in input for radiation in case no surface scheme is used -! PALBIN : MODEL SURFACE SHORTWAVE ALBEDO. -! PEMIS : MODEL SURFACE LONGWAVE EMISSIVITY. +! PSIC : MODEL SEA ICE CONCENTRATION ! Part of GFL strcture dedicated to easy diagnostics (to be used as a print...) ! PEZDIAG : MULPITPLE ARRAY TO BE FILLED BY THE USER BY 3D FIELDS ! (NGFL_EZDIAG ONES) ! output for CFU XFU -! PCLCH : HIGH CLOUD COVER (DIAGNOSTIC). -! PCLCL : LOW CLOUD COVER (DIAGNOSTIC). -! PCLCM : MEDIUM CLOUD COVER (DIAGNOSTIC). -! PCLCT : TOTAL CLOUD COVER (DIAGNOSTIC). -! PFPLSL : RESOLVED PRECIPITATION AS RAIN. -! PFPLSN : RESOLVED PRECIPITATION AS SNOW -! PFPLSG : RESOLVED PRECIPITATION AS GRAUPEL -! PFPLSH : RESOLVED PRECIPITATION AS HAIL -! PSTRTU : TURBULENT FLUX OF MOMENTUM "U". -! PSTRTV : TURBULENT FLUX OF MOMENTUM "V". -! PFCS : SENSIBLE HEAT FLUX AT SURFACE LEVEL. -! PFCLL : LATENT HEAT FLUX AT SURFACE LEVEL OVER WATER. -! PFCLN : LATENT HEAT FLUX AT SURFACE LEVEL OVER SNOW. -! PUCLS : SORTIE DIAGNOSTIQUE DU VENT EN X A HUV METEO. -! PUCLS : U-COMPONENT OF WIND AT 10 METERS (DIAGNOSTIC). -! PVCLS : SORTIE DIAGNOSTIQUE DU VENT EN Y A HUV METEO. -! PVCLS : V-COMPONENT OF WIND AT 10 METERS (DIAGNOSTIC). -! PNUCLS : SORTIE DIAGNOSTIQUE DU VENT NEUTRE EN X A HUV METEO. -! PNUCLS : U-COMPONENT OF NEUTRAL WIND AT 10 METERS (DIAGNOSTIC). -! PNVCLS : SORTIE DIAGNOSTIQUE DU VENT NEUTRE EN Y A HUV METEO. -! PNVCLS : V-COMPONENT OF NEUTRAL WIND AT 10 METERS (DIAGNOSTIC). -! PTCLS : SORTIE DIAGNOSTIQUE DE LA TEMPERATURE A HTQ METEO. -! PTCLS : TEMPERATURE AT 2 METERS (DIAGNOSTIC). -! PQCLS : SORTIE DIAGNOSTIQUE DE L'HUMIDITE SPECIFIQUE A HTQ METEO. -! PQCLS : SPECIFIC HUMIDITY AT 2 METERS (DIAGNOSTIC). -! PHUCLS : SORTIE DIAGNOSTIQUE DE L'HUMIDITE RELATIVE A HTQ METEO. -! PHUCLS : RELATIVE HUMIDITY AT 2 METERS (DIAGNOSTIC). -! PUGST : SORTIE DIAGNOSTIQUE DU VENT RAFALE EN X A HUV METEO. -! PUGST : U-COMPONENT OF WIND GUST AT 10 METERS (DIAGNOSTIC). -! PVGST : SORTIE DIAGNOSTIQUE DU VENT RAFALE EN Y A HUV METEO. -! PVGST : V-COMPONENT OF WIND GUST AT 10 METERS (DIAGNOSTIC). -! PFEVL : FLUX DE VAPEUR D'EAU SUR EAU LIQUIDE (OU SOL HUMIDE). -! PFEVL : WATER VAPOUR FLUX OVER LIQUID WATER (OR WET SOIL) -! PFEVN : FLUX DE VAPEUR D'EAU SUR NEIGE (OU GLACE) ET SOL GELE. -! PFEVN : WATER VAPOUR FLUX OVER SNOW (OR ICE) AND FROZEN SOIL. -! PPBLH : PSEUDO-HISTORICAL ARRAY FOR PBL HEIGHT -! PSPSG : SNOW COVER -! PSPSGR : SNOW DENSITY -! PSDUR : SUNSHINE DURATION [s] -! PDIAGH : HAIL DIAGNOSTIC -! PFLASH : LIGHTNING DIAGNOSTICS -! PVISICLD : VISIBILITY DUE TO CLOUD WATER AND CLOUD ICE -! PVISIHYDRO : VISIBILITY DUE TO RAIN AND SNOW AND GRAUPEL -! PMXCLWC : CLOUD WATER LIQUID CONTENT AT HVISI METERS -! PDPRECIPS : PRECIPITATION TYPE -! PDPRECIPS2 : PRECIPITATION TYPE FOR 2NDE PERIOD !----------------------------------------------------------------------- @@ -277,7 +116,7 @@ SUBROUTINE APL_AROME(YDGEOMETRY,YDSURF, YDCFU, YDXFU, YDMODEL, KBL, KGPCOMP, KID ! Y. Seity 2007-05-07: add CFU and XFU calculations ! and call aro_ground_diag ! S.Ivatek-S 2007-04-17: Over dimensioning of PGPAR by NGPAR+1 just -! (KLON,NGPAR) is used boundary checking bf +! (YDCPG_OPTS%KLON,NGPAR) is used boundary checking bf ! T.Kovacic 2007-03-16: Fourth dim. in APFT ! JJMorcrette, ECMWF, 20080325: dummy arguments for RADACT to allow for ! using a new sulphate climatology in the ECMWF model @@ -346,232 +185,91 @@ SUBROUTINE APL_AROME(YDGEOMETRY,YDSURF, YDCFU, YDXFU, YDMODEL, KBL, KGPCOMP, KID ! 2020-10, J. Masek: Modified call to ACCLDIA. ! 2020-12, F. Meier add call to latent heat nudging if LNUDGLH is TRUE ! 2020-12, U. Andrae : Introduce SPP for HARMONIE-AROME -! R. El Khatib 24-Aug-2021 NPROMICRO specific cache-blocking factor for microphysics +! 2021-12, F. Meier add call to windfarm parametrisation if LWINDFARM is TRUE +! R. El Khatib 08-Jul-2022 Contribution to the encapsulation of YOMCST and YOETHF ! End modifications !------------------------------------------------------------------------------- + USE GEOMETRY_MOD , ONLY : GEOMETRY +USE MF_PHYS_TYPE_MOD , ONLY : MF_PHYS_TYPE +USE CPG_TYPE_MOD , ONLY : CPG_MISC_TYPE, CPG_GPAR_TYPE, CPG_SL1_TYPE, CPG_DYN_TYPE, CPG_PHY_TYPE +USE CPG_OPTS_TYPE_MOD , ONLY : CPG_BNDS_TYPE, CPG_OPTS_TYPE +USE MF_PHYS_SURFACE_TYPE_MOD,ONLY : MF_PHYS_SURF_TYPE +USE FIELD_VARIABLES_MOD, ONLY : FIELD_VARIABLES USE SURFACE_FIELDS_MIX , ONLY : TSURF USE YOMXFU , ONLY : TXFU USE YOMCFU , ONLY : TCFU USE TYPE_MODEL , ONLY : MODEL USE PARKIND1 , ONLY : JPIM ,JPRB ,JPRD USE YOMHOOK , ONLY : LHOOK ,DR_HOOK - -! AROME SPECIFIC - - -! OTHERS USE YOESW , ONLY : RSUN2 -USE YOMCST , ONLY : RG ,RCPD ,RD ,RATM ,RTT ,& - & RCW ,RCPV ,RLVTT ,RCS ,RLSTT ,RGAMW ,& - & RBETW ,RALPW ,RGAMS ,RBETS ,RALPS ,RGAMD ,& - & RBETD ,RALPD ,RETV ,RV ,RKAPPA ,RHOUR +USE YOMCST , ONLY : TCST USE YOMLUN , ONLY : NULOUT -USE YOMCT0 , ONLY : LTWOTL, LSFORCS +USE YOMCT0 , ONLY : LTWOTL, LSFORCS, LSLAG, LNHDYN, LAROME USE YOMVERT , ONLY : VP00 USE YOMRIP0 , ONLY : NINDAT USE YOMNUDGLH , ONLY : LNUDGLH, NSTARTNUDGLH, NSTOPNUDGLH, NINTNUDGLH, NTAUNUDGLH, & & RAMPLIFY,RMAXNUDGLH,RMINNUDGLH,LNUDGLHCOMPT,NTIMESPLITNUDGLH USE YOMNSV , ONLY : NSV_CO2 -USE DDH_MIX , ONLY : ADD_FIELD_3D, NEW_ADD_FIELD_3D, TYP_DDH ! for new diag data flow +USE DDH_MIX , ONLY : NEW_ADD_FIELD_3D, NEW_ADD_FIELD_2D,& + & NTOTSVAR, NTOTSURF, NTOTSVFS, TYP_DDH ! for new data flow USE YOMSPSDT , ONLY : YSPPT_CONFIG, YSPPT USE SPP_MOD , ONLY : YSPP_CONFIG, YSPP USE SPP_MOD_TYPE, ONLY : ALL_SPP_VARS, SET_ALL_SPP, CLEAR_ALL_SPP, APPLY_SPP USE YOMLSFORC , ONLY : LMUSCLFA, NMUSCLFA, REMIS_FORC, RALB_FORC -! daand: radflex USE INTFLEX_MOD, ONLY : LINTFLEX, LRADFLEX,& & TYPE_INTPROC, TYPE_INTPROCSET,& - & NEWINTFIELD, NEWINTPROC + & NEWINTFIELD, NEWINTPROC, NEWINTPROCSET, CLEANINTPROCSET +USE YOMGFL , ONLY : GFL_WKA, GFL_WKA2 USE YOMMP0 , ONLY : MYPROC +USE MF_PHYS_BASE_STATE_TYPE_MOD & + & , ONLY : MF_PHYS_BASE_STATE_TYPE +USE MF_PHYS_NEXT_STATE_TYPE_MOD & + & , ONLY : MF_PHYS_NEXT_STATE_TYPE +USE YOMGMV , ONLY : TGMV +USE SC2PRG_MOD , ONLY : SC2PRG +USE YOMCVER , ONLY : LVERTFE ,LVFE_GWMPA +USE YOMDYNA , ONLY : LGWADV, L_RDRY_VD +USE YOMSCM , ONLY : LGSCM +USE YOMTRAJ , ONLY : TRAJ_PHYS_TYPE +! ------------------------------------------------------------------------- +IMPLICIT NONE +TYPE(TCST), INTENT(IN) :: YDCST +TYPE (MF_PHYS_BASE_STATE_TYPE), INTENT(IN) :: YDMF_PHYS_BASE_STATE +TYPE (MF_PHYS_NEXT_STATE_TYPE), INTENT(INOUT) :: YDMF_PHYS_NEXT_STATE +TYPE(GEOMETRY), INTENT(IN) :: YDGEOMETRY +TYPE(CPG_BNDS_TYPE), INTENT(IN) :: YDCPG_BNDS +TYPE(CPG_OPTS_TYPE), INTENT(IN) :: YDCPG_OPTS +TYPE(CPG_MISC_TYPE), INTENT(INOUT) :: YDCPG_MISC +TYPE(CPG_GPAR_TYPE), INTENT(INOUT) :: YDCPG_GPAR +TYPE(CPG_PHY_TYPE), INTENT(IN) :: YDCPG_PHY0 +TYPE(CPG_PHY_TYPE), INTENT(IN) :: YDCPG_PHY9 +TYPE(MF_PHYS_TYPE), INTENT(IN) :: YDMF_PHYS +TYPE(CPG_DYN_TYPE), INTENT(IN) :: YDCPG_DYN0 +TYPE(CPG_DYN_TYPE), INTENT(IN) :: YDCPG_DYN9 +TYPE(MF_PHYS_SURF_TYPE), INTENT(INOUT) :: YDMF_PHYS_SURF +TYPE(CPG_SL1_TYPE), INTENT(INOUT) :: YDCPG_SL1 +TYPE(FIELD_VARIABLES), INTENT(INOUT) :: YDVARS +TYPE(TGMV), INTENT(IN) :: YDGMV +TYPE(TSURF), INTENT(IN) :: YDSURF +TYPE(TCFU), INTENT(IN) :: YDCFU +TYPE(TXFU), INTENT(IN) :: YDXFU +TYPE(MODEL), INTENT(IN) :: YDMODEL + +REAL(KIND=JPRB), INTENT(INOUT) :: PGFL(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NDIM) +REAL(KIND=JPRB), INTENT(IN) :: PGP2DSDT(YDCPG_OPTS%KLON,YSPPT%YGPSDT(1)%NG2D,YSPPT%N2D) +REAL(KIND=JPRB), INTENT(INOUT) :: PGMVT1(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDGMV%YT1%NDIM) +REAL(KIND=JPRB), INTENT(INOUT) :: PGFLT1(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NDIM1) +TYPE (TRAJ_PHYS_TYPE), INTENT(INOUT) :: PTRAJ_PHYS +TYPE(TYP_DDH), INTENT(INOUT) :: YDDDH - -!SR phasing step, must be removed in 48t3 -USE SPP_MOD_TYPE, ONLY : TSPP_CONFIG_TYPE - - - - - - - - - - -! -------------------------------------------------------------------------- - -IMPLICIT NONE - -TYPE(GEOMETRY) ,INTENT(IN) :: YDGEOMETRY -TYPE(TSURF) ,INTENT(INOUT) :: YDSURF -TYPE(TXFU) ,INTENT(INOUT) :: YDXFU -TYPE(TCFU) ,INTENT(INOUT) :: YDCFU -TYPE(MODEL) ,INTENT(INOUT) :: YDMODEL -INTEGER(KIND=JPIM),INTENT(IN) :: KLON -INTEGER(KIND=JPIM),INTENT(IN) :: KLEV -INTEGER(KIND=JPIM),INTENT(IN) :: KBL -INTEGER(KIND=JPIM),INTENT(IN) :: KGPCOMP -INTEGER(KIND=JPIM),INTENT(IN) :: KIDIA -INTEGER(KIND=JPIM),INTENT(IN) :: KFDIA -INTEGER(KIND=JPIM),INTENT(IN) :: KTDIA -INTEGER(KIND=JPIM),INTENT(IN) :: KSTEP -INTEGER(KIND=JPIM),INTENT(IN) :: KMAXDRAFT -INTEGER(KIND=JPIM),INTENT(IN) :: KSGST -INTEGER(KIND=JPIM),INTENT(IN) :: KNFRRC -REAL(KIND=JPRB) ,INTENT(IN) :: PDT -LOGICAL ,INTENT(IN) :: LDXFUMSE -REAL(KIND=JPRB) ,INTENT(IN) :: PINDX(KLON) -REAL(KIND=JPRB) ,INTENT(IN) :: PINDY(KLON) -REAL(KIND=JPRB) ,INTENT(IN) :: PGEMU(KLON) -REAL(KIND=JPRB) ,INTENT(IN) :: PGELAM(KLON) -REAL(KIND=JPRB) ,INTENT(IN) :: PGM(KLON) -REAL(KIND=JPRB) ,INTENT(IN) :: POROG(KLON) -REAL(KIND=JPRB) ,INTENT(IN) :: PMU0(KLON) -REAL(KIND=JPRB) ,INTENT(IN) :: PMU0LU(KLON) -REAL(KIND=JPRB) ,INTENT(IN) :: PMU0M(KLON) -REAL(KIND=JPRB) ,INTENT(IN) :: PMU0N(KLON) -REAL(KIND=JPRB) ,INTENT(IN) :: PCLON(KLON) -REAL(KIND=JPRB) ,INTENT(IN) :: PSLON(KLON) -REAL(KIND=JPRB) ,INTENT(IN) :: PVO3ABC(KLON,3) -REAL(KIND=JPRB) ,INTENT(IN) :: PLSM(KLON) -REAL(KIND=JPRB) ,INTENT(IN) :: PAESEA(KLON) -REAL(KIND=JPRB) ,INTENT(IN) :: PAELAN(KLON) -REAL(KIND=JPRB) ,INTENT(IN) :: PAESOO(KLON) -REAL(KIND=JPRB) ,INTENT(IN) :: PAEDES(KLON) -REAL(KIND=JPRB) ,INTENT(IN) :: PAESUL(KLON) -REAL(KIND=JPRB) ,INTENT(IN) :: PAEVOL(KLON) -REAL(KIND=JPRB) ,INTENT(IN) :: PGP2DSDT(KLON,YSPPT%YGPSDT(1)%NG2D,YSPPT%N2D) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PGP2DSPP(KLON,YSPP%N2D) -REAL(KIND=JPRB) ,INTENT(IN) :: PAPHIM(KLON,0:KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PAPHIFM(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PAPRSM(KLON,0:KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PAPRSFM(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PRDELPM(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PDELPM(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PTM(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PQVM(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PCPM(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PRM(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PALPHM(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PLNPRM(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PQCM(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PQIM(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PQRM(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PQSM(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PQGM(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PQHM(KLON,KLEV) - -REAL(KIND=JPRB) ,INTENT(IN) :: PLIMAM(KLON,KLEV,YDMODEL%YRML_GCONF%YGFL%NLIMA) -REAL(KIND=JPRB) ,INTENT(IN), TARGET :: PTKEM(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PEFB1(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PEFB2(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PEFB3(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PSVM(KLON,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT) -REAL(KIND=JPRB) ,INTENT(IN) :: PSIGM(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PUM(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PVM(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PWM(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PFORCEU(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PFORCEV(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PFORCET(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(IN) :: PFORCEQ(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PGPAR(KLON,YDMODEL%YRML_PHY_MF%YRPARAR%NGPAR+1) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PEMTD(KLON,0:KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PEMTU(KLON,0:KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PTRSO(KLON,0:KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PGDEOSI(KLON,0:KLEV,2) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PGUEOSI(KLON,0:KLEV,2) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PGMU0(KLON,0:YDMODEL%YRML_PHY_MF%YRPHY%NSORAYFR-1) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PGMU0_MIN(KLON) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PGMU0_MAX(KLON) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PGDEOTI(KLON,0:KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PGDEOTI2(KLON,0:KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PGUEOTI(KLON,0:KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PGUEOTI2(KLON,0:KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PGEOLT(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PGEOXT(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PGRPROX(KLON,0:KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PGMIXP(KLON,0:KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PGFLUXC(KLON,0:KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PGRSURF(KLON) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PTURB3D(KLON,YDMODEL%YRML_PHY_MF%YRARPHY%NGRADIENTS,KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PCLFS(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(OUT) :: PQLRAD(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(OUT) :: PEDR(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(OUT) :: PQIRAD(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(OUT) :: PSIGS(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(OUT) :: PTENDT(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(OUT) :: PTENDR(KLON,KLEV,YDMODEL%YRML_PHY_MF%YRPARAR%NRR) -REAL(KIND=JPRB) ,INTENT(OUT) :: PTENDU(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(OUT) :: PTENDV(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(OUT) :: PTENDW(KLON,KLEV) - -REAL(KIND=JPRB) ,INTENT(OUT) :: PTENDLIMA(KLON,KLEV,YDMODEL%YRML_GCONF%YGFL%NLIMA) -REAL(KIND=JPRB) ,INTENT(OUT) :: PTENDTKE(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(OUT) :: PRH(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PTENDEFB1(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PTENDEFB2(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PTENDEFB3(KLON,KLEV) -REAL(KIND=JPRB) ,INTENT(OUT) :: PTENDEXT(KLON,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT) -REAL(KIND=JPRB) ,INTENT(IN) :: PALBIN(KLON) -! daand: radflex; made target -REAL(KIND=JPRB) ,INTENT(INOUT), TARGET :: PFRTH(KLON,0:KLEV,KSGST+1) -REAL(KIND=JPRB) ,INTENT(OUT), TARGET :: PFRSO(KLON,0:KLEV,KSGST+1) -REAL(KIND=JPRB) ,INTENT(OUT) :: PFRTHDS(KLON) -REAL(KIND=JPRB) ,INTENT(OUT) :: PFRSOPS(KLON) -REAL(KIND=JPRB) ,INTENT(OUT) :: PFRSDNI(KLON) -REAL(KIND=JPRB) ,INTENT(OUT) :: PFRSODS(KLON) -REAL(KIND=JPRB) ,INTENT(OUT) :: PFRSOPT(KLON) -REAL(KIND=JPRB) ,INTENT(OUT) :: PFRSOC(KLON,0:1) -REAL(KIND=JPRB) ,INTENT(OUT) :: PFRTHC(KLON,0:1) -REAL(KIND=JPRB) ,INTENT(IN) :: PEMIS(KLON) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PEZDIAG(KLON,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EZDIAG) -REAL(KIND=JPRB) ,INTENT(OUT) :: PCLCH(KLON) -REAL(KIND=JPRB) ,INTENT(OUT) :: PCLCL(KLON) -REAL(KIND=JPRB) ,INTENT(OUT) :: PCLCM(KLON) -REAL(KIND=JPRB) ,INTENT(OUT) :: PCLCT(KLON) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PFPLSL(KLON,0:KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PFPLSN(KLON,0:KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PFPLSG(KLON,0:KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PFPLSH(KLON,0:KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PSTRTU(KLON,0:KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PSTRTV(KLON,0:KLEV) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PFCS(KLON,KSGST+1) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PFCLL(KLON,KSGST+1) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PFCLN(KLON,KSGST+1) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PFEVL(KLON,KSGST+1) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PFEVN(KLON,KSGST+1) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PUCLS(KLON) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PVCLS(KLON) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PNUCLS(KLON) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PNVCLS(KLON) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PTCLS(KLON) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PQCLS(KLON) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PHUCLS(KLON) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PUGST(KLON) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PVGST(KLON) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PPBLH(KLON) -REAL(KIND=JPRB) ,INTENT(OUT) :: PSPSG(KLON) -REAL(KIND=JPRB) ,INTENT(OUT) :: PSPSGR(KLON) -REAL(KIND=JPRB) ,INTENT(INOUT) :: PSDUR(KLON) -REAL(KIND=JPRB) ,INTENT(OUT) :: PDIAGH(KLON) -REAL(KIND=JPRB) ,INTENT(OUT) :: PTPWCLS(KLON) -REAL(KIND=JPRB) ,INTENT(OUT) :: PFLASH(KLON) -REAL(KIND=JPRB) ,INTENT(OUT) :: PDPRECIPS(KLON,YDMODEL%YRML_PHY_MF%YRPHY%YRDPRECIPS%NDTPREC) -REAL(KIND=JPRB) ,INTENT(OUT) :: PDPRECIPS2(KLON,YDMODEL%YRML_PHY_MF%YRPHY%YRDPRECIPS%NDTPREC2) -REAL(KIND=JPRB) ,INTENT(OUT) :: PVISICLD(KLON) -REAL(KIND=JPRB) ,INTENT(OUT) :: PVISIHYDRO(KLON) -REAL(KIND=JPRB) ,INTENT(OUT) :: PMXCLWC(KLON) -REAL(KIND=JPRB) ,INTENT(IN) :: PSFORC(KLON,YDMODEL%YRML_PHY_MF%YRPHYDS%NSFORC) -! daand: radflex -TYPE(TYPE_INTPROCSET), INTENT(INOUT) :: YDPROCSET -TYPE(TYP_DDH) ,INTENT(INOUT) :: YDDDH !* ! ------------------------------------------------------------------ @@ -592,7 +290,7 @@ TYPE(TYP_DDH) ,INTENT(INOUT) :: YDDDH ! Local 3D arrays with extra levels for Meso-NH turbulence scheme : ! - first dimension is KFDIA not KDLON in order to limit array copies ! - suffixed with two underscore to be easily identified -! These arrays are passed in argument as ZXXX__(:,1:KLEV) except for aro_turb_mnh where they are passed as ZXXX__. +! These arrays are passed in argument as ZXXX__(:,1:YDCPG_OPTS%KFLEVG) except for aro_turb_mnh where they are passed as ZXXX__. ! Local 3D arrays with regular number of levels for Meso-NH interfaces : ! - first dimension is KFDIA not KDLON in order to limit array copies due to non-contiguous data. @@ -620,11 +318,11 @@ TYPE(TYP_DDH) ,INTENT(INOUT) :: YDDDH ! because the compiler will be able to use an optimized function to initialize/copy a segment of memory, ! and may be able to address simultaneously several cach lines : ! 1D array : -! Z(KIDIA:KFDIA)=value +! Z(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=value ! 2D arrays : -! DO JLEV=1,KLEV -! ZX(KIDIA:KFDIA,JLEV)=xval -! ZY(KIDIA:KFDIA,JLEV)=yval +! DO JLEV=1,YDCPG_OPTS%KFLEVG +! ZX(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=xval +! ZY(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=yval ! ENDDO ! - if you need the bakup of an array, use a swapp mechanism, as what is done here for instance for @@ -658,128 +356,130 @@ TYPE(TYP_DDH) ,INTENT(INOUT) :: YDDDH ! CALL COMPUTE(ZARG) ! IF (JI > IFIRST) THEN ! ! Add increment -! ZSUM(KIDIA:KFDIA)=ZSUM(KIDIA:KFDIA)+ZINC(KIDIA:KFDIA) +! ZSUM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=ZSUM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)+ZINC(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) ! ENDIF ! ENDDO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -REAL(KIND=JPRB) :: ZRHODJM__(KFDIA,0:KLEV+1), ZRHODREFM__(KFDIA,0:KLEV+1), ZPABSM__(KFDIA,0:KLEV+1) -REAL(KIND=JPRB) :: ZUM__(KFDIA,0:KLEV+1), ZVM__(KFDIA,0:KLEV+1), ZTHM__(KFDIA,0:KLEV+1) -REAL(KIND=JPRB) :: ZUS__(KFDIA,0:KLEV+1), ZVS__(KFDIA,0:KLEV+1), ZWS__(KFDIA,0:KLEV+1) -REAL(KIND=JPRB) :: ZTKES_OUT__(KFDIA,0:KLEV+1), ZMF_UP__(KFDIA,0:KLEV+1), ZTHVREFM__(KFDIA,0:KLEV+1) ! thetav de l etat -REAL(KIND=JPRB) :: ZTENDU_TURB__(KFDIA,0:KLEV+1), ZTENDV_TURB__(KFDIA,0:KLEV+1), ZTENDTHL_TURB__(KFDIA,0:KLEV+1) -REAL(KIND=JPRB) :: ZTENDRT_TURB__(KFDIA,0:KLEV+1), ZTKEM__(KFDIA,0:KLEV+1), ZSRCS__(KFDIA,0:KLEV+1) -REAL(KIND=JPRB) :: ZHLC_HRC__(KFDIA,0:KLEV+1), ZHLC_HCF__(KFDIA,0:KLEV+1), & - & ZHLI_HRI__(KFDIA,0:KLEV+1), ZHLI_HCF__(KFDIA,0:KLEV+1) - -REAL(KIND=JPRB) :: ZSIGS__(KFDIA,0:KLEV+1), ZEDR__(KFDIA,0:KLEV+1) +REAL(KIND=JPRB) :: ZRHODJM__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZRHODREFM__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZPABSM__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1) +REAL(KIND=JPRB) :: ZUM__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZVM__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZTHM__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1) +REAL(KIND=JPRB) :: ZUS__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZVS__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZWS__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1) +REAL(KIND=JPRB) :: ZTKES_OUT__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZMF_UP__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZTHVREFM__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1) ! thetav de l etat +REAL(KIND=JPRB) :: ZTENDU_TURB__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZTENDV_TURB__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZTENDTHL_TURB__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1) +REAL(KIND=JPRB) :: ZTENDRT_TURB__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZTKEM__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZSRCS__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1) +REAL(KIND=JPRB) :: ZSIGS__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZEDR__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1) ! THE DDH budgets -REAL(KIND=JPRB) :: ZDP__(KFDIA,0:KLEV+1), ZTP__(KFDIA,0:KLEV+1), ZTPMF__(KFDIA,0:KLEV+1) -REAL(KIND=JPRB) :: ZTDIFF__(KFDIA,0:KLEV+1), ZTDISS__(KFDIA,0:KLEV+1) +REAL(KIND=JPRB) :: ZDP__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZTP__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZTPMF__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1) +REAL(KIND=JPRB) :: ZTDIFF__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZTDISS__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1) ! length scales for momentum and heat for mnh level definitions in case LHARATU=TRUE -REAL(KIND=JPRB) :: ZLENGTHM__(KFDIA,0:KLEV+1), ZLENGTHH__(KFDIA,0:KLEV+1) +REAL(KIND=JPRB) :: ZLENGTHM__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZLENGTHH__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1) REAL(KIND=JPRB), POINTER :: ZTHS__(:,:) ! horizontal gradients and diagnostics -REAL(KIND=JPRB) :: ZTURB3D__(KFDIA,0:KLEV+1,YDMODEL%YRML_PHY_MF%YRARPHY%NGRADIENTS) +REAL(KIND=JPRB) :: ZTURB3D__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1,YDMODEL%YRML_PHY_MF%YRARPHY%NGRADIENTS) ! WARNING ! Don't use ZTHSWAP__ or ZTHSAVE__ below because they may be swapped ! ! Use only the pointer ZTHS__, and possibly ZTHSIN_ if you need the backup of input data. -REAL(KIND=JPRB), TARGET :: ZTHSWAP__(KFDIA,0:KLEV+1), ZTHSAVE__(KFDIA,0:KLEV+1) -REAL(KIND=JPRB), TARGET :: ZFLXZTHVMF_SUM__(KFDIA,0:KLEV+1), ZWM__(KFDIA,0:KLEV+1) +REAL(KIND=JPRB), TARGET :: ZTHSWAP__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZTHSAVE__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1) +REAL(KIND=JPRB), TARGET :: ZFLXZTHVMF_SUM__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1), ZWM__(YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG+1) ! Updraft characteristics for Meso-NH world (input of ARO_SHALLOW_MF) -REAL(KIND=JPRB) :: ZTHETAL_UP_(KFDIA,KLEV), ZTHETAV_UP_(KFDIA,KLEV), ZZFRAC_UP_(KFDIA,KLEV) -REAL(KIND=JPRB) :: ZRT_UP_(KFDIA,KLEV), ZRC_UP_(KFDIA,KLEV), ZRI_UP_(KFDIA,KLEV) -REAL(KIND=JPRB) :: ZZU_UP_(KFDIA,KLEV), ZZV_UP_(KFDIA,KLEV), ZZW_UP_(KFDIA,KLEV) -REAL(KIND=JPRB) :: ZZRV_UP_(KFDIA,KLEV), ZTKES_(KFDIA,KLEV), ZZZ_(KFDIA,KLEV) -REAL(KIND=JPRB) :: ZDZZ_(KFDIA,KLEV), ZZZ_F_(KFDIA,KLEV), ZDZZ_F_(KFDIA,KLEV) -REAL(KIND=JPRB) :: ZCIT_(KFDIA,KLEV), ZMFM_(KFDIA,KLEV), ZEXNREFM_(KFDIA,KLEV) -REAL(KIND=JPRB) :: ZSIGM_(KFDIA,KLEV), ZNEBMNH_(KFDIA,KLEV), ZEVAP_(KFDIA,KLEV) +REAL(KIND=JPRB) :: ZTHETAL_UP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZTHETAV_UP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZZFRAC_UP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZRT_UP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZRC_UP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZRI_UP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZZU_UP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZZV_UP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZZW_UP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZZRV_UP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZTKES_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZZZ_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZDZZ_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZZZ_F_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZDZZ_F_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZCIT_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZMFM_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZEXNREFM_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZSIGM_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZNEBMNH_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZEVAP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) ! additions for MF scheme (Pergaud et al) -REAL(KIND=JPRB) :: ZSIGMF_(KFDIA,KLEV), ZRC_MF_(KFDIA,KLEV), ZRI_MF_(KFDIA,KLEV) -REAL(KIND=JPRB) :: ZCF_MF_(KFDIA,KLEV), ZAERD_(KFDIA,KLEV), ZCVTENDT_(KFDIA,KLEV) -REAL(KIND=JPRB) :: ZCVTENDRV_(KFDIA,KLEV), ZCVTENDRC_(KFDIA,KLEV), ZCVTENDRI_(KFDIA,KLEV) -REAL(KIND=JPRB) :: ZMFS_(KFDIA,KLEV), ZTHLS_(KFDIA,KLEV), ZRTS_(KFDIA,KLEV) -REAL(KIND=JPRB) :: ZMFUS_(KFDIA,KLEV), ZMFVS_(KFDIA,KLEV), ZDEPTH_HEIGHT_(KFDIA,KLEV) +REAL(KIND=JPRB) :: ZSIGMF_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZRC_MF_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZRI_MF_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZCF_MF_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZAERD_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZCVTENDT_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZCVTENDRV_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZCVTENDRC_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZCVTENDRI_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZMFS_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZTHLS_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZRTS_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZMFUS_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZMFVS_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZDEPTH_HEIGHT_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) -REAL(KIND=JPRB), TARGET :: ZFLXZTHVMF_(KFDIA,KLEV) +REAL(KIND=JPRB), TARGET :: ZFLXZTHVMF_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) REAL(KIND=JPRB), POINTER :: ZARG_FLXZTHVMF_(:,:) +! Subgrid autoconversions +REAL(KIND=JPRB) :: ZHLC_HRC_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZHLC_HCF_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), & + ZHLI_HRI_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZHLI_HCF_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) + ! WARNING ! Don't use ZRSWAP_ or ZRSAVE_ below because they may be swapped ! ! Use only the pointer ZRS_, and possibly ZRSIN_ if you need the backup of input data. REAL(KIND=JPRB), POINTER :: ZRSIN_(:,:,:), ZRS_(:,:,:) -REAL(KIND=JPRB), TARGET :: ZRSWAP_(KFDIA,KLEV,YDMODEL%YRML_PHY_MF%YRPARAR%NRR) -REAL(KIND=JPRB), TARGET :: ZRSAVE_(KFDIA,KLEV,YDMODEL%YRML_PHY_MF%YRPARAR%NRR) +REAL(KIND=JPRB), TARGET :: ZRSWAP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_PHY_MF%YRPARAR%NRR) +REAL(KIND=JPRB), TARGET :: ZRSAVE_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_PHY_MF%YRPARAR%NRR) REAL(KIND=JPRB), POINTER :: ZPTRWNU_(:,:), ZTHSIN_(:,:) -REAL(KIND=JPRB), TARGET :: ZWNU_(KFDIA,KLEV) +REAL(KIND=JPRB), TARGET :: ZWNU_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) ! WARNING ! Don't use ZSVSWAP_ or ZSVSAVE_ below because they may be swapped ! ! Use only the pointer ZSVS_, and possibly ZSVSIN_ if you need the backup of input data. REAL(KIND=JPRB), POINTER :: ZSVSIN_(:,:,:), ZSVS_(:,:,:) -REAL(KIND=JPRB), TARGET :: ZSVSWAP_(KFDIA,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT) -REAL(KIND=JPRB), TARGET :: ZSVSAVE_(KFDIA,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT) +REAL(KIND=JPRB), TARGET :: ZSVSWAP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT) +REAL(KIND=JPRB), TARGET :: ZSVSAVE_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT) -REAL(KIND=JPRB) :: ZSVXXX_(KFDIA,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT) +REAL(KIND=JPRB) :: ZSVXXX_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT) ! WARNING ! Don't use ZSVMSWAP_ or ZSVMSAVE_ below because they may be swapped ! ! Use only the pointer ZSVM_, and possibly ZSVMIN_ if you need the backup of input data. REAL(KIND=JPRB), POINTER :: ZSVMIN_(:,:,:), ZSVM_(:,:,:) -REAL(KIND=JPRB), TARGET :: ZSVMSWAP_(KFDIA,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT) -REAL(KIND=JPRB), TARGET :: ZSVMSAVE_(KFDIA,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT) -REAL(KIND=JPRB) :: ZSVMB_(KFDIA,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT) +REAL(KIND=JPRB), TARGET :: ZSVMSWAP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT) +REAL(KIND=JPRB), TARGET :: ZSVMSAVE_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT) +REAL(KIND=JPRB) :: ZSVMB_(YDCPG_BNDS%KFDIA,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT) ! WARNING ! Don't use ZLIMASWAP_ or ZLIMASAVE_ below because they may be swapped ! ! Use only the pointer ZLIMAS_, and possibly ZLIMASIN_ if you need the backup of input data. REAL(KIND=JPRB), POINTER :: ZLIMAS_(:,:,:), ZLIMASIN_(:,:,:) -REAL(KIND=JPRB), TARGET :: ZLIMASWAP_(KFDIA,KLEV,YDMODEL%YRML_GCONF%YGFL%NLIMA) -REAL(KIND=JPRB), TARGET :: ZLIMASAVE_(KFDIA,KLEV,YDMODEL%YRML_GCONF%YGFL%NLIMA) +REAL(KIND=JPRB), TARGET :: ZLIMASWAP_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NLIMA) +REAL(KIND=JPRB), TARGET :: ZLIMASAVE_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NLIMA) -REAL(KIND=JPRB) :: ZLIMAM_(KFDIA,KLEV,YDMODEL%YRML_GCONF%YGFL%NLIMA) +REAL(KIND=JPRB) :: ZLIMAM_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NLIMA) !INTEGER(KIND=JPIM) :: KSV_TURB !CPtoclean? -!CPtoclean REAL(KIND=JPRB) :: ZTURBM(KLON,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT+YDMODEL%YRML_GCONF%YGFL%NLIMA) -!CPtoclean REAL(KIND=JPRB) :: ZTURBS(KLON,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT+YDMODEL%YRML_GCONF%YGFL%NLIMA) +!CPtoclean REAL(KIND=JPRB) :: ZTURBM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT+YDMODEL%YRML_GCONF%YGFL%NLIMA) +!CPtoclean REAL(KIND=JPRB) :: ZTURBS(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT+YDMODEL%YRML_GCONF%YGFL%NLIMA) !not (yet ?) used. REK -!REAL(KIND=JPRB) :: ZSFTURB(KLON,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT+YDMODEL%YRML_GCONF%YGFL%NLIMA) ! surf. flux of SV (=0) -!REAL(KIND=JPRB) :: ZTENDSV_TURB2(KLON,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT+YDMODEL%YRML_GCONF%YGFL%NLIMA) ! SV (=0) -REAL(KIND=JPRB) :: ZSFSVLIMA_(KFDIA,YDMODEL%YRML_GCONF%YGFL%NLIMA) ! surf. flux of LIMA vars -REAL(KIND=JPRB) :: ZTENDSV_TURBLIMA_(KFDIA,KLEV,YDMODEL%YRML_GCONF%YGFL%NLIMA) ! LIMA +!REAL(KIND=JPRB) :: ZSFTURB(YDCPG_OPTS%KLON,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT+YDMODEL%YRML_GCONF%YGFL%NLIMA) ! surf. flux of SV (=0) +!REAL(KIND=JPRB) :: ZTENDSV_TURB2(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT+YDMODEL%YRML_GCONF%YGFL%NLIMA) ! SV (=0) +REAL(KIND=JPRB) :: ZSFSVLIMA_(YDCPG_BNDS%KFDIA,YDMODEL%YRML_GCONF%YGFL%NLIMA) ! surf. flux of LIMA vars +REAL(KIND=JPRB) :: ZTENDSV_TURBLIMA_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NLIMA) ! LIMA ! For radiation scheme -REAL(KIND=JPRB) :: ZRM_(KFDIA,KLEV,YDMODEL%YRML_PHY_MF%YRPARAR%NRR) -REAL(KIND=JPRB) :: ZPFPR_(KFDIA,KLEV,YDMODEL%YRML_PHY_MF%YRPARAR%NRR) +REAL(KIND=JPRB) :: ZRM_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_PHY_MF%YRPARAR%NRR) +REAL(KIND=JPRB) :: ZPFPR_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_PHY_MF%YRPARAR%NRR) -REAL(KIND=JPRB) :: ZPEZDIAG_(KFDIA,KLEV,YDMODEL%YRML_GCONF%YGFL%NGFL_EZDIAG) +REAL(KIND=JPRB) :: ZPEZDIAG_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NGFL_EZDIAG) -REAL(KIND=JPRB) :: ZSFSV_(KFDIA,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT) ! surf. flux of scalars +REAL(KIND=JPRB) :: ZSFSV_(YDCPG_BNDS%KFDIA,YDMODEL%YRML_GCONF%YGFL%NGFL_EXT) ! surf. flux of scalars +REAL(KIND=JPRD) :: ZGEMU_D(YDCPG_OPTS%KLON) ! double precision version of YDVARS%GEOMETRY%GEMU%T0, for RADACT ! Single scattering albedo of dust (points,lev,wvl) : -REAL(KIND=JPRB) :: ZPIZA_DST_(KFDIA,KLEV,YDMODEL%YRML_PHY_MF%YRPARAR%NSWB_MNH) +REAL(KIND=JPRB) :: ZPIZA_DST_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_PHY_MF%YRPARAR%NSWB_MNH) ! Assymetry factor for dust (points,lev,wvl) : -REAL(KIND=JPRB) :: ZCGA_DST_(KFDIA,KLEV,YDMODEL%YRML_PHY_MF%YRPARAR%NSWB_MNH) +REAL(KIND=JPRB) :: ZCGA_DST_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_PHY_MF%YRPARAR%NSWB_MNH) ! tau/tau_{550} dust (points,lev,wvl) : -REAL(KIND=JPRB) :: ZTAUREL_DST_(KFDIA,KLEV,YDMODEL%YRML_PHY_MF%YRPARAR%NSWB_MNH) +REAL(KIND=JPRB) :: ZTAUREL_DST_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_PHY_MF%YRPARAR%NSWB_MNH) ! surface flux of theta and surface flux of vapor ; surface flux of CO2 -REAL(KIND=JPRB) :: ZSFTH_(KFDIA), ZSFRV_(KFDIA), ZSFCO2_(KFDIA) -REAL(KIND=JPRB) :: ZACPRG_(KFDIA), ZINPRG_NOTINCR_(KFDIA), ZINPRG_(KFDIA) -REAL(KIND=JPRB) :: ZACPRR_(KFDIA), ZINPRR_NOTINCR_(KFDIA), ZINPRR_(KFDIA) -REAL(KIND=JPRB) :: ZACPRS_(KFDIA), ZINPRS_NOTINCR_(KFDIA), ZINPRS_(KFDIA) -REAL(KIND=JPRB) :: ZCFBTH_(KFDIA), ZINPRH_NOTINCR_(KFDIA), ZINPRH_(KFDIA) -REAL(KIND=JPRB) :: ZZS_(KFDIA), ZSSO_STDEV_(KFDIA), ZALB_UV_(KIDIA) -REAL(KIND=JPRB) :: ZLAT_(KIDIA), ZLON_(KIDIA), ZZENITH_(KIDIA) -REAL(KIND=JPRB) :: ZGZ0_(KFDIA), ZGZ0H_(KFDIA), ZTOWNS_(KFDIA) -REAL(KIND=JPRB) :: ZCFAQ_(KFDIA), ZCFBQ_(KFDIA), ZCFATH_(KFDIA) -REAL(KIND=JPRB) :: ZCFAU_(KFDIA), ZCFBU_(KFDIA), ZCFBV_(KFDIA) -REAL(KIND=JPRB) :: ZBUDTH_ (KFDIA),ZBUDSO_(KFDIA), ZFCLL_(KFDIA) -REAL(KIND=JPRB) :: ZCD_(KFDIA), ZSEA_(KFDIA), ZTOWN_(KFDIA) -REAL(KIND=JPRB) :: ZZTOP_(KFDIA), ZCVTENDPR_(KFDIA), ZCVTENDPRS_(KFDIA) +REAL(KIND=JPRB) :: ZSFTH_(YDCPG_BNDS%KFDIA), ZSFRV_(YDCPG_BNDS%KFDIA), ZSFCO2_(YDCPG_BNDS%KFDIA) +REAL(KIND=JPRB) :: ZACPRG_(YDCPG_BNDS%KFDIA), ZINPRG_NOTINCR_(YDCPG_BNDS%KFDIA), ZINPRG_(YDCPG_BNDS%KFDIA) +REAL(KIND=JPRB) :: ZACPRR_(YDCPG_BNDS%KFDIA), ZINPRR_NOTINCR_(YDCPG_BNDS%KFDIA), ZINPRR_(YDCPG_BNDS%KFDIA) +REAL(KIND=JPRB) :: ZACPRS_(YDCPG_BNDS%KFDIA), ZINPRS_NOTINCR_(YDCPG_BNDS%KFDIA), ZINPRS_(YDCPG_BNDS%KFDIA) +REAL(KIND=JPRB) :: ZCFBTH_(YDCPG_BNDS%KFDIA), ZINPRH_NOTINCR_(YDCPG_BNDS%KFDIA), ZINPRH_(YDCPG_BNDS%KFDIA) +REAL(KIND=JPRB) :: ZZS_(YDCPG_BNDS%KFDIA), ZSSO_STDEV_(YDCPG_BNDS%KFDIA), ZALB_UV_(YDCPG_BNDS%KIDIA) +REAL(KIND=JPRB) :: ZLAT_(YDCPG_BNDS%KIDIA), ZLON_(YDCPG_BNDS%KIDIA), ZZENITH_(YDCPG_BNDS%KIDIA) +REAL(KIND=JPRB) :: ZGZ0_(YDCPG_BNDS%KFDIA), ZGZ0H_(YDCPG_BNDS%KFDIA), ZTOWNS_(YDCPG_BNDS%KFDIA) +REAL(KIND=JPRB) :: ZCFAQ_(YDCPG_BNDS%KFDIA), ZCFBQ_(YDCPG_BNDS%KFDIA), ZCFATH_(YDCPG_BNDS%KFDIA) +REAL(KIND=JPRB) :: ZCFAU_(YDCPG_BNDS%KFDIA), ZCFBU_(YDCPG_BNDS%KFDIA), ZCFBV_(YDCPG_BNDS%KFDIA) +REAL(KIND=JPRB) :: ZBUDTH_ (YDCPG_BNDS%KFDIA),ZBUDSO_(YDCPG_BNDS%KFDIA), ZFCLL_(YDCPG_BNDS%KFDIA) +REAL(KIND=JPRB) :: ZCD_(YDCPG_BNDS%KFDIA), ZSEA_(YDCPG_BNDS%KFDIA), ZTOWN_(YDCPG_BNDS%KFDIA) +REAL(KIND=JPRB) :: ZZTOP_(YDCPG_BNDS%KFDIA), ZCVTENDPR_(YDCPG_BNDS%KFDIA), ZCVTENDPRS_(YDCPG_BNDS%KFDIA) ! surface flux of x and y component of wind. are they really necessary ? REK -REAL(KIND=JPRB) :: ZSFU_(KFDIA), ZSFV_(KFDIA) +REAL(KIND=JPRB) :: ZSFU_(YDCPG_BNDS%KFDIA), ZSFV_(YDCPG_BNDS%KFDIA) ! local areas for OCND2 option: ! ZICLDFR = ice cloud fraction , ZWCLDFR = water or mixed-phase cloud fraction, @@ -787,111 +487,126 @@ REAL(KIND=JPRB) :: ZSFU_(KFDIA), ZSFV_(KFDIA) ! ZSSIU = Sub-saturation with respect to ice outside ZICLDFR, ! ZIFR = variable used for calulation of subgridscale ice ! Meso-NH world -REAL(KIND=JPRB) :: ZICLDFR_(KFDIA,KLEV), ZWCLDFR_(KFDIA,KLEV) -REAL(KIND=JPRB) :: ZSSIO_(KFDIA,KLEV), ZSSIU_(KFDIA,KLEV), ZIFR_(KFDIA,KLEV) +REAL(KIND=JPRB) :: ZICLDFR_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZWCLDFR_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZSSIO_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZSSIU_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG), ZIFR_(YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) ! Arpege-style dimensionning : ! -------------------------- !Variables used in case LHARATU=TRUE ! length scales for momentum and heat and TKE -REAL(KIND=JPRB) :: ZLENGTH_M(KLON,KLEV),ZLENGTH_H(KLON,KLEV) -REAL(KIND=JPRB) :: ZTKEEDMF(KLON,KLEV) -REAL(KIND=JPRB) :: ZTKEEDMFS(KLON,KLEV) +REAL(KIND=JPRB) :: ZLENGTH_M(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG),ZLENGTH_H(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZTKEEDMF(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZTKEEDMFS(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) -REAL(KIND=JPRB) :: ZEMIS (KLON) -REAL(KIND=JPRB) :: ZQICE(KLON,KLEV), ZQLIQ(KLON,KLEV) +REAL(KIND=JPRB) :: ZEMIS (YDCPG_OPTS%KLON) +REAL(KIND=JPRB) :: ZTMP2(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG),ZTMP(YDCPG_OPTS%KLON) +REAL(KIND=JPRB) :: ZQICE(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQLIQ(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) -REAL(KIND=JPRB) :: ZAER(KLON,KLEV,6) -REAL(KIND=JPRB) :: ZAERINDS(KLON,KLEV) +REAL(KIND=JPRB) :: ZAER(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,6) +REAL(KIND=JPRB) :: ZAERINDS(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZRAER(YDCPG_OPTS%KLON,6,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZAERO(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,12) -REAL(KIND=JPRB) :: ZQSAT(KLON,KLEV) -REAL(KIND=JPRB) :: ZFRSOFS(KLON) -REAL(KIND=JPRB) :: ZLH(KLON,KLEV), ZLSCPE(KLON,KLEV), ZGEOSLC(KLON,KLEV) -REAL(KIND=JPRB) :: ZQDM(KLON,KLEV), ZQV(KLON,KLEV) -REAL(KIND=JPRB) :: ZQCO2(KLON,KLEV) -REAL(KIND=JPRB), TARGET :: ZTKEM4SLDDH(KLON,KLEV) -REAL(KIND=JPRB), POINTER :: ZTKEM(:,:) -REAL(KIND=JPRB) :: ZQW(KLON,KLEV), ZTW(KLON,KLEV) +REAL(KIND=JPRB) :: ZQSAT(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) -REAL(KIND=JPRB) :: ZTENT(KLON,KLEV) -REAL(KIND=JPRB) :: ZTENDT(KLON,KLEV) ! array to save heating profile for LHN -REAL(KIND=JPRB) :: ZMAXTEND,ZMINTEND -REAL(KIND=JPRB) :: ZDZZ(KLON,KLEV) -REAL(KIND=JPRB) :: ZTPW(KLON,KLEV) +REAL(KIND=JPRB) :: ZFRSOFS(YDCPG_OPTS%KLON) +REAL(KIND=JPRB) :: ZLH(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZLSCPE(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZGEOSLC(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZQDM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQV(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) -! POUR GROUND -REAL(KIND=JPRB) :: ZZS_FSWDIR(KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW), ZZS_FSWDIF(KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW) -REAL(KIND=JPRB) :: ZTRSODIR (KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW), ZTRSODIF (KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW) - -REAL(KIND=JPRB) :: ZTRSOD(KLON) -REAL(KIND=JPRB) :: ZSUDU(KLON), ZSDUR(KLON), ZDSRP(KLON) -REAL(KIND=JPRB) :: ZCEMTR(KLON,2), ZCTRSO(KLON,2) +REAL(KIND=JPRB) :: ZQCO2(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQCH4(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZQN2O(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQNO2(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQC11(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZQC12(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQC22(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQCL4(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZCHTIX(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG+1), ZCAPH(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG+1), ZTH(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG+1) +REAL(KIND=JPRB) :: ZDUM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZGELAM(YDCPG_OPTS%KLON) +REAL(KIND=JPRB), TARGET :: ZTKEM4SLDDH(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) -REAL(KIND=JPRB) :: ZALBD(KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW), ZALBP(KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW) -REAL(KIND=JPRB) :: ZALBD1(KLON), ZALBP1(KLON) -REAL(KIND=JPRB) :: ZAPHIM(KLON,0:KLEV), ZAPHIFM(KLON,KLEV) +REAL(KIND=JPRB), POINTER :: ZTKEM(:,:) +REAL(KIND=JPRB) :: ZQW(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZTW(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) -REAL(KIND=JPRB) :: ZTM(KLON,KLEV), ZQVM(KLON,KLEV), ZQIM(KLON,KLEV) -REAL(KIND=JPRB) :: ZQCM(KLON,KLEV),ZQHM(KLON,KLEV), ZQHGM(KLON,KLEV) -REAL(KIND=JPRB) :: ZQRM(KLON,KLEV), ZQSM(KLON,KLEV), ZQGM(KLON,KLEV) -REAL(KIND=JPRB) :: ZUPGENL(KLON,KLEV) -REAL(KIND=JPRB) :: ZUPGENN(KLON,KLEV) -REAL(KIND=JPRB) :: ZCLFR(KLON) +REAL(KIND=JPRB) :: ZTENT(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZTENDTT(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! array to save heating profile for LHN +REAL(KIND=JPRB) :: ZMAXTEND,ZMINTEND +REAL(KIND=JPRB) :: ZDZZ(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZTPW(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) -REAL(KIND=JPRB) :: ZCPM(KLON,KLEV), ZRHM(KLON,KLEV) +! POUR GROUND +REAL(KIND=JPRB) :: ZZS_FSWDIR(YDCPG_OPTS%KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW), ZZS_FSWDIF(YDCPG_OPTS%KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW) +REAL(KIND=JPRB) :: ZTRSODIR (YDCPG_OPTS%KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW), ZTRSODIF (YDCPG_OPTS%KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW) +REAL(KIND=JPRB) :: ZTP2(YDCPG_OPTS%KLON), ZWS2(YDCPG_OPTS%KLON), ZWP2(YDCPG_OPTS%KLON), ZWSI2(YDCPG_OPTS%KLON), ZWPI2(YDCPG_OPTS%KLON) +REAL(KIND=JPRB) :: ZWR2(YDCPG_OPTS%KLON), ZSNA2(YDCPG_OPTS%KLON) +REAL(KIND=JPRB) :: ZTRSOD(YDCPG_OPTS%KLON) +REAL(KIND=JPRB) :: ZSUDU(YDCPG_OPTS%KLON), ZSDUR(YDCPG_OPTS%KLON), ZDSRP(YDCPG_OPTS%KLON) +REAL(KIND=JPRB) :: ZCEMTR(YDCPG_OPTS%KLON,2), ZCTRSO(YDCPG_OPTS%KLON,2) + +REAL(KIND=JPRB) :: ZALBD(YDCPG_OPTS%KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW), ZALBP(YDCPG_OPTS%KLON,YDMODEL%YRML_PHY_RAD%YRERAD%NSW) +REAL(KIND=JPRB) :: ZALBD1(YDCPG_OPTS%KLON), ZALBP1(YDCPG_OPTS%KLON) +REAL(KIND=JPRB) :: ZAPHIM(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG), ZAPHIFM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) + +REAL(KIND=JPRB) :: ZTM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQVM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQIM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZQCM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG),ZQHM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQHGM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZQRM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQSM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZQGM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZUPGENL(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZUPGENN(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZCLFR(YDCPG_OPTS%KLON) + +REAL(KIND=JPRB) :: ZCPM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZRHM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! Variables concerning updraft rain/snow for EDMF -REAL(KIND=JPRB) :: ZTENDTUP(KLON,KLEV), ZTENDQVUP(KLON,KLEV) +REAL(KIND=JPRB) :: ZTENDTUP(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZTENDQVUP(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! specific to new data flow for diagnostics -REAL(KIND=JPRB) :: ZTENDTBAK(KLON,KLEV), ZTENDRBAK(KLON,KLEV,YDMODEL%YRML_PHY_MF%YRPARAR%NRR) -REAL(KIND=JPRB) :: ZTMPAF(KLON,KLEV) +REAL(KIND=JPRB) :: ZTENDTBAK(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZTENDRBAK(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_PHY_MF%YRPARAR%NRR) +REAL(KIND=JPRB) :: ZTMPAF(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! daand: radflex -REAL(KIND=JPRB) :: ZFPR(KLON,0:KLEV,YDMODEL%YRML_PHY_MF%YRPARAR%NRR) +REAL(KIND=JPRB) :: ZFPR(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG,YDMODEL%YRML_PHY_MF%YRPARAR%NRR) ! Target should not be necessary. REK -REAL(KIND=JPRB), TARGET :: ZCON1(KLON,KLEV) -REAL(KIND=JPRB), TARGET :: ZCON2(KLON,KLEV) -REAL(KIND=JPRB), TARGET :: ZCON3(KLON,KLEV) +REAL(KIND=JPRB), TARGET :: ZCON1(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB), TARGET :: ZCON2(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB), TARGET :: ZCON3(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! Ajout pour MF Dual Scheme (KNMI et al) ! Updraft characteristics in Arpege/IFS world -REAL(KIND=JPRB) :: ZMF_UP(KLON,0:KLEV,KMAXDRAFT) -REAL(KIND=JPRB) :: ZTHETAL_UP(KLON,0:KLEV,KMAXDRAFT) -REAL(KIND=JPRB) :: ZQT_UP(KLON,0:KLEV,KMAXDRAFT) -REAL(KIND=JPRB) :: ZTHTV_UP(KLON,0:KLEV,KMAXDRAFT) -REAL(KIND=JPRB) :: ZQC_UP(KLON,0:KLEV,KMAXDRAFT) -REAL(KIND=JPRB) :: ZQI_UP(KLON,0:KLEV,KMAXDRAFT) -REAL(KIND=JPRB) :: ZU_UP(KLON,0:KLEV,KMAXDRAFT) -REAL(KIND=JPRB) :: ZV_UP(KLON,0:KLEV,KMAXDRAFT) -REAL(KIND=JPRB) :: ZTSURF(KLON), ZTN(KLON), ZQS(KLON) +REAL(KIND=JPRB) :: ZMF_UP(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KMAXDRAFT) +REAL(KIND=JPRB) :: ZTHETAL_UP(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KMAXDRAFT) +REAL(KIND=JPRB) :: ZQT_UP(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KMAXDRAFT) +REAL(KIND=JPRB) :: ZTHTV_UP(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KMAXDRAFT) +REAL(KIND=JPRB) :: ZQC_UP(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KMAXDRAFT) +REAL(KIND=JPRB) :: ZQI_UP(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KMAXDRAFT) +REAL(KIND=JPRB) :: ZU_UP(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KMAXDRAFT) +REAL(KIND=JPRB) :: ZV_UP(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KMAXDRAFT) +REAL(KIND=JPRB) :: ZTSURF(YDCPG_OPTS%KLON), ZTN(YDCPG_OPTS%KLON), ZQS(YDCPG_OPTS%KLON) +REAL(KIND=JPRB) :: ZZEXNREFM(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG), ZZWCLDFR(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) -REAL(KIND=JPRB) :: ZFRSOLU(KLON), ZFRSODS(KLON) -REAL(KIND=JPRB) :: ZFSDNN(KLON), ZFSDNV(KLON) +REAL(KIND=JPRB) :: ZFRSOLU(YDCPG_OPTS%KLON), ZFRSODS(YDCPG_OPTS%KLON) +REAL(KIND=JPRB) :: ZFSDNN(YDCPG_OPTS%KLON), ZFSDNV(YDCPG_OPTS%KLON) -REAL(KIND=JPRB) :: ZSURFPREP(KLON), ZSURFSNOW(KLON) +REAL(KIND=JPRB) :: ZSURFPREP(YDCPG_OPTS%KLON), ZSURFSNOW(YDCPG_OPTS%KLON) -REAL(KIND=JPRB) :: ZQO3(KLON,0:KLEV) +REAL(KIND=JPRB) :: ZQO3(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG) -REAL(KIND=JPRB) :: ZZS_FTH_(KLON), ZZS_FRV_(KLON), ZZS_FU_(KLON), ZZS_FV_(KLON) +REAL(KIND=JPRB) :: ZZS_FTH_(YDCPG_OPTS%KLON), ZZS_FRV_(YDCPG_OPTS%KLON), ZZS_FU_(YDCPG_OPTS%KLON), ZZS_FV_(YDCPG_OPTS%KLON) ! Surface forcing arrays for MUSC -REAL(KIND=JPRB) :: ZRHODREFM(KLON), ZTHETAS(KLON) +REAL(KIND=JPRB) :: ZRHODREFM(YDCPG_OPTS%KLON), ZTHETAS(YDCPG_OPTS%KLON) ! ACRANEB2 local variables -REAL(KIND=JPRB) :: ZNEB0 (KLON,KLEV) ! protected cloud fractions -REAL(KIND=JPRB) :: ZCLCT_RAD(KLON) ! total cloud cover for radiation -REAL(KIND=JPRB) :: ZDECRD (KLON) ! decorrelation depth +REAL(KIND=JPRB) :: ZNEB0 (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! protected cloud fractions +REAL(KIND=JPRB) :: ZCLCT_RAD(YDCPG_OPTS%KLON) ! total cloud cover for radiation +REAL(KIND=JPRB) :: ZDECRD (YDCPG_OPTS%KLON) ! decorrelation depth ! Stochastic physics pattern & dummy tendencies for calling sppten ! Bof. REK -REAL(KIND=JPRB) :: ZDUMMY(KLON,KLEV) -REAL(KIND=JPRB) :: ZDUMMY1(KLON) +REAL(KIND=JPRB) :: ZMULNOISE(YDCPG_OPTS%KLON,1) +REAL(KIND=JPRB) :: ZDUMMY(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) +REAL(KIND=JPRB) :: ZDUMMY1(YDCPG_OPTS%KLON) +REAL(KIND=JPRB) :: PTENDENCYU(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,1),PTENDENCYV(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,1) +REAL(KIND=JPRB) :: PTENDENCYT(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,1),PTENDENCYQ(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,1) -REAL(KIND=JPRB) :: ZROZ(KLON,KLEV) +REAL(KIND=JPRB) :: ZROZ(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! Can we remove ? REK REAL(KIND=JPRB) :: ZEPSM(0,0,0) ! Dissipation of TKE (eps) at time t-dt @@ -904,17 +619,17 @@ INTEGER(KIND=JPIM) :: IJN ! max. number of day/night slices within NRPOMA INTEGER(KIND=JPIM) :: IKL !ordering of vert levels 1:MNH -1:AROME INTEGER(KIND=JPIM) :: IOFF_MFSHAL, IEZDIAG_CHEM INTEGER(KIND=JPIM) :: IKA,IKB,IKU,IKT,IKTE,IKTB ! vertical points as in mpa -INTEGER(KIND=JPIM) :: JSG, JK, JR, JSW +INTEGER(KIND=JPIM) :: JSG, JK, JR, JSW, JAE INTEGER(KIND=JPIM) :: IDRAFT,JDRAFT,INDRAFT INTEGER(KIND=JPIM) :: ISURFEX -INTEGER(KIND=JPIM) :: IDAY,IYEAR,IMONTH +INTEGER(KIND=JPIM) :: IDAY,IYEAR,IMONTH,IAERO INTEGER(KIND=JPIM) :: INIT0 ! Kind of safety/debugging initialization : ! 0 = initialize to HUGE (debugging) ! 1 = initialize to realistic value (discouraged) ! -1 = no initialization (optimized code) - this is the default. -INTEGER(KIND=JPIM) :: ICLPH(KLON) !PBL top level +INTEGER(KIND=JPIM) :: ICLPH(YDCPG_OPTS%KLON) !PBL top level INTEGER(KIND=JPIM) :: JLHSTEP,ISTEP ! Real @@ -922,21 +637,21 @@ REAL(KIND=JPRB) :: ZRHO REAL(KIND=JPRB) :: ZAEO, ZAEN, ZSALBCOR REAL(KIND=JPRB) :: ZDT, ZDT2, ZINVDT, ZINVG, ZRSCP, ZINVATM, Z_WMAX, Z_WMIN ! pas de temps pour la surface externalise -REAL(KIND=JPRB) :: ZDTMSE,ZRHGMT,ZSTATI +REAL(KIND=JPRB) :: ZDTMSE,ZRHGMT,ZSTATI,ZADTMS REAL(KIND=JPRB) :: ZDELTA REAL(KIND=JPRB) :: ZEPSNEB ! default values for initialization : REAL(KIND=JPRB) :: ZVALUE, ZVALUE_ONE, ZVALUE_T, ZVALUE_P, ZVALUE_L, ZVALUE_EPSILON -REAL(KIND=JPRB) :: ZVETAH(0:KLEV) +REAL(KIND=JPRB) :: ZVETAH(0:YDCPG_OPTS%KFLEVG) ! Boolean LOGICAL :: LLMSE, LLMSE_PARAM, LLMSE_DIAG LOGICAL :: LLAROME LOGICAL :: LLRAD LOGICAL :: LLSWAP_THS, LLSWAP_RS, LLSWAP_SVS, LLSWAP_SVM, LLSWAP_LIMAS ! logical to swap or not pointers in and out -LOGICAL :: LLHN(KLON,KLEV) +LOGICAL :: LLHN(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) LOGICAL :: LNUDGLHNREAD ! Characters @@ -946,7 +661,7 @@ CHARACTER(LEN=2),DIMENSION(7):: CLVARNAME=(/"QV","QL","QR","QI","QS","QG","QH"/) ! daand: radflex REAL(KIND=JPRB), POINTER :: ZFRSO(:,:), ZFRTH(:,:) TYPE(TYPE_INTPROC), POINTER :: YLRADPROC -REAL(KIND=JPRB) :: ZCAPE(KLON), ZDCAPE(KLON) +REAL(KIND=JPRB) :: ZCAPE(YDCPG_OPTS%KLON), ZDCAPE(YDCPG_OPTS%KLON) ! ! Phaser team note from CY43T1: @@ -959,29 +674,121 @@ REAL(KIND=JPRB), PARAMETER :: PPTKEMIN = 1.E-6 ! Perturbed radiation-cloud interaction coef -REAL(KIND=JPRB), DIMENSION (KLON) :: ZRADGR,ZRADSN -REAL(KIND=JPRB) :: ZMU,ZVAL -INTEGER(KIND=JPIM) :: JKO,JKE - -REAL(KIND=JPRB) :: ZHOOK_HANDLE - - - - - - - - - - +REAL(KIND=JPRB), DIMENSION (YDCPG_OPTS%KLON) :: ZRADGR,ZRADSN +TYPE(ALL_SPP_VARS) :: ZSPP_ALL +! ------------------------------------------------------------------ +LOGICAL :: LLDIAB +LOGICAL :: LL_SAVE_PHSURF +LOGICAL :: LLXFUMSE + +INTEGER(KIND=JPIM) :: IPTREXT,IEFB1,IEFB2,IEFB3 +INTEGER(KIND=JPIM) :: IPTR(YDMODEL%YRML_GCONF%YGFL%NUMFLDS) +INTEGER(KIND=JPIM) :: IPTRLIMA +INTEGER(KIND=JPIM) :: IRR ! pointer of 1st hydrometeors in ZTENDGFLR +INTEGER(KIND=JPIM) :: IPTRTKE ! pointer of TKE in ZTENDGFLR + +INTEGER(KIND=JPIM) :: IPGFL(YDMODEL%YRML_GCONF%YGFL%NUMFLDS) + +INTEGER(KIND=JPIM) :: INSTEP_DEB,INSTEP_FIN +INTEGER(KIND=JPIM) :: JROF, JSPP +INTEGER(KIND=JPIM) :: ISLB1U9 ,ISLB1V9 ,ISLB1T9 ,ISLB1GFL9, ISLB1VD9 + +! --- UPPER AIR PHYSICAL TENDENCIES. +REAL(KIND=JPRB) :: ZTENDH(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! Enthalpy tendency. +REAL(KIND=JPRB) :: ZTENDPTKE(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! Pseudo progn. TKE + +! GFL tendencies for APL_AROME (assumes YDMODEL%YRML_GCONF%YGFL%NUMFLDS>=YDMODEL%YRML_PHY_MF%YRPARAR%NRR) +! for now, use Jovi's trick : +REAL(KIND=JPRB), TARGET :: ZTENDGFLR(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,0:YDMODEL%YRML_GCONF%YGFL%NUMFLDS) +REAL(KIND=JPRB) :: ZTENDGFL(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDMODEL%YRML_GCONF%YGFL%NUMFLDS) ! GFL tendencies + +! --- UPPER AIR PHYSICAL TENDENCIES FOR AROME. +! (the previous one are not used in AROME) +REAL(KIND=JPRB) :: ZTENDT (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! temperature tendency +REAL(KIND=JPRB) :: ZTENDW (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! W tendency +REAL(KIND=JPRB) :: ZTENDD (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! d tendency + +REAL(KIND=JPRB) :: ZTENDU (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! U tendency without deep convection contribution +REAL(KIND=JPRB) :: ZTENDV (YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! V tendency without deep convection contribution + + +! ---FOR AROME PHYSICS --- +REAL(KIND=JPRB) :: ZGWT1(YDCPG_OPTS%KLON,0:YDCPG_OPTS%KFLEVG) ! vertical velocity calculated by cputqy_arome before convertion in d +REAL(KIND=JPRB) :: ZTT1(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) ! Temperature at t1 + +! ZRTT1: appropriate version of R*T at t1 for gnhgw2svd +! Version of R must be consistent with definition of vertical divergence. +REAL(KIND=JPRB) :: ZRTT1(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG) + + +REAL (KIND=JPRB) :: ZSAV_GZ0F (YDCPG_OPTS%KLON) +REAL (KIND=JPRB) :: ZSAV_UDOM (YDCPG_OPTS%KLON, 1:YDCPG_OPTS%KFLEVG) +REAL (KIND=JPRB) :: ZPRC_DPRECIPS2 (YDCPG_OPTS%KLON, 1:YDCPG_OPTS%NDTPREC2) +REAL (KIND=JPRB) :: ZRDG_LCVQ (YDCPG_OPTS%KLON, 1:YDCPG_OPTS%KFLEVG) +REAL (KIND=JPRB) :: ZSAV_DDAL (YDCPG_OPTS%KLON, 1:YDCPG_OPTS%KFLEVG) +REAL (KIND=JPRB) :: ZPRC_DPRECIPS (YDCPG_OPTS%KLON, 1:YDCPG_OPTS%NDTPREC) +REAL (KIND=JPRB) :: ZRDG_MU0M (YDCPG_OPTS%KLON) +REAL (KIND=JPRB) :: ZRDG_CVGQ (YDCPG_OPTS%KLON, 1:YDCPG_OPTS%KFLEVG) +REAL (KIND=JPRB) :: ZRDG_MU0N (YDCPG_OPTS%KLON) +REAL (KIND=JPRB) :: ZSAV_UDAL (YDCPG_OPTS%KLON, 1:YDCPG_OPTS%KFLEVG) +REAL (KIND=JPRB) :: ZSAV_UDGRO (YDCPG_OPTS%KLON) +REAL (KIND=JPRB) :: ZSAV_HV (YDCPG_OPTS%KLON) +REAL (KIND=JPRB) :: ZSAV_QSH (YDCPG_OPTS%KLON) +REAL (KIND=JPRB) :: ZSAV_DDOM (YDCPG_OPTS%KLON, 1:YDCPG_OPTS%KFLEVG) +REAL (KIND=JPRB) :: ZSAV_UNEBH (YDCPG_OPTS%KLON, 1:YDCPG_OPTS%KFLEVG) +REAL (KIND=JPRB) :: ZRDG_MU0 (YDCPG_OPTS%KLON) +REAL (KIND=JPRB) :: ZSAV_ENTCH (YDCPG_OPTS%KLON, 1:YDCPG_OPTS%KFLEVG) +REAL (KIND=JPRB) :: ZRDG_MU0LU (YDCPG_OPTS%KLON) +REAL (KIND=JPRB) :: ZSAV_PBLH (YDCPG_OPTS%KLON) +REAL (KIND=JPRB) :: ZSAV_GZ0HF (YDCPG_OPTS%KLON) +REAL (KIND=JPRB) :: ZSAV_FHPS (YDCPG_OPTS%KLON) + +! required for INTFLEX +TYPE(TYPE_INTPROCSET) :: YLPROCSET + +! SPP +REAL(KIND=JPRB) :: ZGP2DSPP(YDCPG_OPTS%KLON,YSPP%N2D) + +REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTEND_Q (:,:) +REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTEND_L (:,:) +REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTEND_R (:,:) +REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTEND_I (:,:) +REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTEND_S (:,:) +REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTEND_G (:,:) +REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTEND_H (:,:) +REAL(KIND=JPRB), TARGET :: ZDUM2 (1,1) + +REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTENDRA (:,:,:) + +REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTENDLIMA (:,:,:) +REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTENDTKE (:,:) +REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTENDEFB1 (:,:) +REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTENDEFB2 (:,:) +REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTENDEFB3 (:,:) +REAL(KIND=JPRB), POINTER, CONTIGUOUS :: ZTENDEXT (:,:,:) + +REAL(KIND=JPRB), POINTER :: ZP1EZDIAG(:,:,:) +REAL(KIND=JPRB) :: ZHOOK_HANDLE -!SR phasing step -TYPE(TSPP_CONFIG_TYPE) :: YSPP1, YSPP2, YSPP3 -! -------------------------------------------------------------------------- +! ------------------------------------------------------------------ +#include "cpphinp.intfb.h" +#include "cptend_flex.intfb.h" +#include "cputqy_arome_expl.intfb.h" +#include "cputqy_arome_loop.intfb.h" +#include "cputqy.intfb.h" +#include "cp_ptrslb1.intfb.h" +#include "gnhgw2svdarome.intfb.h" +#include "writephysio.intfb.h" +#include "mf_phys_save_phsurf_part1.intfb.h" +#include "mf_phys_save_phsurf_part2.intfb.h" +#include "mf_phys_transfer.intfb.h" +#include "mf_phys_precips.intfb.h" +#include "apl_arome_calc_iptr.intfb.h" +#include "apl_arome_calc_ipgfl.intfb.h" #include "abor1.intfb.h" #include "recmwf.intfb.h" #include "acraneb2.intfb.h" @@ -991,8 +798,10 @@ TYPE(TSPP_CONFIG_TYPE) :: YSPP1, YSPP2, YSPP3 #include "gpgeo.intfb.h" #include "gprcp.intfb.h" #include "radheat.intfb.h" +#include "radghg.intfb.h" #include "suozon.intfb.h" #include "radaer.intfb.h" +#include "radact.intfb.h" #include "radozc.intfb.h" #include "accldia.intfb.h" #include "vdfhghthl.intfb.h" @@ -1000,12 +809,12 @@ TYPE(TSPP_CONFIG_TYPE) :: YSPP1, YSPP2, YSPP3 #include "surf_ideal_flux.intfb.h" #include "ecr1d.intfb.h" #include "apl_arome2intflex.intfb.h" - #include "aro_rain_ice.h" #include "nudglhprecip.intfb.h" #include "nudglh.intfb.h" #include "nudglhclimprof.intfb.h" #include "nudglhprep.intfb.h" +#include "aro_windfarm.intfb.h" #include "aro_turb_mnh.h" #include "aro_adjust.h" #include "aro_mnhc.h" @@ -1023,105 +832,176 @@ TYPE(TSPP_CONFIG_TYPE) :: YSPP1, YSPP2, YSPP3 #include "acvisih.intfb.h" #include "aro_ground_diag_2isba.h" +#ifdef REPRO48 +!To compensate a bug introduced in 48t3 +!Must be suppressed as soon as the bug is corrected +#include "aroini_budget.h" +#endif + ! ------------------------------------------------------------------ #include "fcttrm.func.h" -! -------------------------------------------------------------------------- +! ------------------------------------------------------------------ IF (LHOOK) CALL DR_HOOK('APL_AROME',0,ZHOOK_HANDLE) -ASSOCIATE(YDDIM=>YDGEOMETRY%YRDIM,YDDIMV=>YDGEOMETRY%YRDIMV,YDGEM=>YDGEOMETRY%YRGEM, YDMP=>YDGEOMETRY%YRMP, & - & YDVETA=>YDGEOMETRY%YRVETA, YDVFE=>YDGEOMETRY%YRVFE, YDSTA=>YDGEOMETRY%YRSTA, YDLAP=>YDGEOMETRY%YRLAP, & - & YDCSGLEG=>YDGEOMETRY%YRCSGLEG, YDVSPLIP=>YDGEOMETRY%YRVSPLIP, YDVSLETA=>YDGEOMETRY%YRVSLETA, & - & YDHSLMER=>YDGEOMETRY%YRHSLMER, YDCSGEOM=>YDGEOMETRY%YRCSGEOM, YDCSGEOM_NB=>YDGEOMETRY%YRCSGEOM_NB, & - & YDGSGEOM=>YDGEOMETRY%YRGSGEOM, YDGSGEOM_NB=>YDGEOMETRY%YRGSGEOM_NB, YDSPGEOM=>YDGEOMETRY%YSPGEOM, & - & YDPHY=>YDMODEL%YRML_PHY_MF%YRPHY, & - & YLDDH=>YDMODEL%YRML_DIAG%YRLDDH,YDTOPH=>YDMODEL%YRML_PHY_MF%YRTOPH, & - & YDERDI=>YDMODEL%YRML_PHY_RAD%YRERDI,YDRIP=>YDMODEL%YRML_GCONF%YRRIP,YDARPHY=>YDMODEL%YRML_PHY_MF%YRARPHY, & - & YDERAD=>YDMODEL%YRML_PHY_RAD%YRERAD,YDPHY3=>YDMODEL%YRML_PHY_MF%YRPHY3,YDPHYDS=>YDMODEL%YRML_PHY_MF%YRPHYDS, & - & YDPHY0=>YDMODEL%YRML_PHY_MF%YRPHY0, YDVISI=>YDMODEL%YRML_PHY_MF%YRPHY%YRDVISI,& - & YDPHY2=>YDMODEL%YRML_PHY_MF%YRPHY2,& - & YGFL=>YDMODEL%YRML_GCONF%YGFL,YDMSE=>YDMODEL%YRML_PHY_MF%YRMSE, & - & YDPARAR=>YDMODEL%YRML_PHY_MF%YRPARAR,YDPRECIPS=>YDMODEL%YRML_PHY_MF%YRPHY%YRDPRECIPS, & - & YDSTOPH=>YDMODEL%YRML_PHY_STOCH%YRSTOPH) - -ASSOCIATE(MINPRR=>YDPARAR%MINPRR, MINPRS=>YDPARAR%MINPRS, MVQS=>YDPARAR%MVQS, & - & MINPRG=>YDPARAR%MINPRG, LOTOWNC=>YDPARAR%LOTOWNC, LFPREC3D=>YDPARAR%LFPREC3D, & - & NGPAR=>YDPARAR%NGPAR, CSUBG_PR_PDF=>YDPARAR%CSUBG_PR_PDF, & - & NRRI=>YDPARAR%NRRI, NRRL=>YDPARAR%NRRL, CSUBG_AUCV_RC=>YDPARAR%CSUBG_AUCV_RC, & - & CSUBG_AUCV_RI=>YDPARAR%CSUBG_AUCV_RI, CCONDENS=>YDPARAR%CCONDENS, & - & CSUBG_MF_PDF=>YDPARAR%CSUBG_MF_PDF, & - & LTOTPREC=>YDPARAR%LTOTPREC, CSUBG_RC_RR_ACCR=>YDPARAR%CSUBG_RC_RR_ACCR, CSUBG_RR_EVAP=>YDPARAR%CSUBG_RR_EVAP, & - & NPRINTFR=>YDPARAR%NPRINTFR, CMF_CLOUD=>YDPARAR%CMF_CLOUD, & - & MALBDIR=>YDPARAR%MALBDIR, NSWB_MNH=>YDPARAR%NSWB_MNH, & - & XSW_BANDS=>YDPARAR%XSW_BANDS, MACPRG=>YDPARAR%MACPRG, MSWDIR=>YDPARAR%MSWDIR, & - & LMIXUV=>YDPARAR%LMIXUV, MSWDIF=>YDPARAR%MSWDIF, LOLSMC=>YDPARAR%LOLSMC, & - & NDIAGWMAX=>YDPARAR%NDIAGWMAX, MACPRS=>YDPARAR%MACPRS, MACPRR=>YDPARAR%MACPRR, & - & LSQUALL=>YDPARAR%LSQUALL, VSIGQSAT=>YDPARAR%VSIGQSAT, & - & MALBSCA=>YDPARAR%MALBSCA,& - & RADSN=>YDPARAR%RADSN, LOSEDIC=>YDPARAR%LOSEDIC, LDIAGWMAX=>YDPARAR%LDIAGWMAX, & - & CSEDIM=>YDPARAR%CSEDIM, CLAMBDA3=>YDPARAR%CLAMBDA3, & - & NPTP=>YDPARAR%NPTP, NSPLITR=>YDPARAR%NSPLITR, NSPLITG=>YDPARAR%NSPLITG, NSV=>YDPARAR%NSV, & - & CFRAC_ICE_SHALLOW_MF=>YDPARAR%CFRAC_ICE_SHALLOW_MF, CFRAC_ICE_ADJUST=>YDPARAR%CFRAC_ICE_ADJUST, & - & MVTS=>YDPARAR%MVTS, NREFROI2=>YDPARAR%NREFROI2, NREFROI1=>YDPARAR%NREFROI1, & - & MVEMIS=>YDPARAR%MVEMIS, LOWARM=>YDPARAR%LOWARM, LOCND2=>YDPARAR%LOCND2, & - & LOSIGMAS=>YDPARAR%LOSIGMAS, NRR=>YDPARAR%NRR, & - & LOSUBG_COND=>YDPARAR%LOSUBG_COND, RADGR=>YDPARAR%RADGR, & - & CMF_UPDRAFT=>YDPARAR%CMF_UPDRAFT, LHARATU=>YDPARAR%LHARATU, & - & XMINLM=>YDPHY0%XMINLM, XMAXLM=>YDPHY0%XMAXLM, AERCS1=>YDPHY0%AERCS1, & - & AERCS3=>YDPHY0%AERCS3, AERCS5=>YDPHY0%AERCS5, & - & RDECRD1=>YDPHY0%RDECRD1, RDECRD2=>YDPHY0%RDECRD2, & - & RDECRD3=>YDPHY0%RDECRD3, RDECRD4=>YDPHY0%RDECRD4, & - & LMPA=>YDARPHY%LMPA, LUSECHEM=>YDARPHY%LUSECHEM, LKFBCONV=>YDARPHY%LKFBCONV, & - & LMFSHAL=>YDARPHY%LMFSHAL, LMICRO=>YDARPHY%LMICRO, & - & CCOUPLING=>YDARPHY%CCOUPLING, LTURB=>YDARPHY%LTURB, LGRADHPHY=>YDARPHY%LGRADHPHY, & - & NSURFEX_ITER=>YDARPHY%NSURFEX_ITER, LRDUST=>YDARPHY%LRDUST, & - & NGRADIENTS=>YDARPHY%NGRADIENTS, & - & LRDEPOS=>YDARPHY%LRDEPOS, LSURFEX_CRITICAL=>YDARPHY%LSURFEX_CRITICAL, & - & LRCO2=>YDARPHY%LRCO2, LMSE=>YDARPHY%LMSE, & - & LSURFEX_KFROM=>YDARPHY%LSURFEX_KFROM, & - & NSURFEXCTL=>YDMSE%NSURFEXCTL, XZSEPS=>YDMSE%XZSEPS, & - & NDLUNG=>YDDIM%NDLUNG, NDGUNG=>YDDIM%NDGUNG, NPROMA=>YDDIM%NPROMA, & - & NDLUXG=>YDDIM%NDLUXG, NDGUXG=>YDDIM%NDGUXG, & - & NSFORC=>YDPHYDS%NSFORC, & - & NGFL_EXT=>YGFL%NGFL_EXT, YLRAD=>YGFL%YLRAD, YIRAD=>YGFL%YIRAD, & - & NGFL_EZDIAG=>YGFL%NGFL_EZDIAG, & - & NLIMA=>YGFL%NLIMA, CMICRO=>YDPARAR%CMICRO,NPROMICRO=>YDPARAR%NPROMICRO, & - & LKOGAN=>YDPARAR%LKOGAN, LHGT_QS=>YDPARAR%LHGT_QS, LMODICEDEP=>YDPARAR%LMODICEDEP, & - & YSD_VAD=>YDSURF%YSD_VAD, & - & QCO2=>YDPHY3%QCO2, & - & NTEND_DIAG_POS=>YDPHY%NTEND_DIAG_POS, NTEND_DIAG_FREQ_RESET=>YDPHY%NTEND_DIAG_FREQ_RESET, & - & NRAY=>YDPHY%NRAY, LRAYFM=>YDPHY%LRAYFM, & - & LO3ABC=>YDPHY%LO3ABC, LRAY=>YDPHY%LRAY, & - & LAEROVOL=>YDPHY%LAEROVOL, LRSTAER=>YDPHY%LRSTAER, LRNUEXP=>YDPHY%LRNUEXP, & - & AMAGSTOPH_CASBS=> YDSTOPH%AMAGSTOPH_CASBS, LFORCENL=>YDSTOPH%LFORCENL, & - & NFORCESTART=>YDSTOPH%NFORCESTART, NFORCEEND=>YDSTOPH%NFORCEEND, & - & NTRADI=>YDTOPH%NTRADI, NTQSAT=>YDTOPH%NTQSAT, NTNEBU=>YDTOPH%NTNEBU,& - & NAER=>YDERAD%NAER, & - & LHLRADUPD=>YDPHY%LHLRADUPD, & - & TSPHY=>YDPHY2%TSPHY,& - & NMODE=>YDERAD%NMODE, & - & NOZOCL=>YDERAD%NOZOCL, & - & NRADFR=>YDERAD%NRADFR, & - & NSW=>YDERAD%NSW, & - & RCARDI=>YDERDI%RCARDI, & - & LFLEXDIA=>YLDDH%LFLEXDIA, LDDH_OMP=>YLDDH%LDDH_OMP, LRSLDDH=>YLDDH%LRSLDDH, & - & RDECLI=>YDRIP%RDECLI, & - & RCODEC=>YDRIP%RCODEC, & - & RHGMT=>YDRIP%RHGMT, & - & RSIDEC=>YDRIP%RSIDEC, & - & RSOVR=>YDRIP%RSOVR, & - & RSTATI=>YDRIP%RSTATI, & - & TSTEP=>YDRIP%TSTEP, & - & STPREH=>YDSTA%STPREH, & - & LXXDIAGH=>YDXFU%LXXDIAGH,& - & LFLASH =>YDCFU%LFLASH,& - & LDPRECIPS=>YDPHY%LDPRECIPS,LDPRECIPS2=>YDPHY%LDPRECIPS2,& - & NDTPREC=>YDPRECIPS%NDTPREC,NDTPREC2=>YDPRECIPS%NDTPREC2,& - & NDTPRECCUR=>YDPRECIPS%NDTPRECCUR,NDTPRECCUR2=>YDPRECIPS%NDTPRECCUR2,& - & NGPTOT=>YDGEM%NGPTOT,& - & NGPBLKS=>YDDIM%NGPBLKS) +ASSOCIATE(YDDIM=>YDGEOMETRY%YRDIM, YDGEM=>YDGEOMETRY%YRGEM, YDSTA=>YDGEOMETRY%YRSTA, YDPHY=>YDMODEL%YRML_PHY_MF%YRPHY, & +& YLDDH=>YDMODEL%YRML_DIAG%YRLDDH, YDTOPH=>YDMODEL%YRML_PHY_MF%YRTOPH, YDERDI=>YDMODEL%YRML_PHY_RAD%YRERDI, & +& YDRIP=>YDMODEL%YRML_GCONF%YRRIP, YDARPHY=>YDMODEL%YRML_PHY_MF%YRARPHY, YDERAD=>YDMODEL%YRML_PHY_RAD%YRERAD, & +& YDPHY3=>YDMODEL%YRML_PHY_MF%YRPHY3, YDPHYDS=>YDMODEL%YRML_PHY_MF%YRPHYDS, YDPHY0=>YDMODEL%YRML_PHY_MF%YRPHY0, & +& YDVISI=>YDMODEL%YRML_PHY_MF%YRPHY%YRDVISI, YDPHY2=>YDMODEL%YRML_PHY_MF%YRPHY2, YGFL=>YDMODEL%YRML_GCONF%YGFL, & +& YDMSE=>YDMODEL%YRML_PHY_MF%YRMSE, YDPARAR=>YDMODEL%YRML_PHY_MF%YRPARAR, YDPRECIPS=>YDMODEL%YRML_PHY_MF%YRPHY%YRDPRECIPS, & +& YDSTOPH=>YDMODEL%YRML_PHY_STOCH%YRSTOPH, YDPTRSLB1=>YDMODEL%YRML_DYN%YRPTRSLB1, YDMDDH=>YDMODEL%YRML_DIAG%YRMDDH, & +& YDDPHY=>YDMODEL%YRML_PHY_G%YRDPHY, YDLDDH=>YDMODEL%YRML_DIAG%YRLDDH, YDEPHY=> YDMODEL%YRML_PHY_EC%YREPHY & +& ) + +ASSOCIATE(MINPRR=>YDPARAR%MINPRR, MINPRS=>YDPARAR%MINPRS, MVQS=>YDPARAR%MVQS, MINPRG=>YDPARAR%MINPRG, & +& LOTOWNC=>YDPARAR%LOTOWNC, LFPREC3D=>YDPARAR%LFPREC3D, NRRI=>YDPARAR%NRRI, NRRL=>YDPARAR%NRRL, CSUBG_AUCV_RC=>YDPARAR%CSUBG_AUCV_RC, & +& CSUBG_AUCV_RI=>YDPARAR%CSUBG_AUCV_RI, CCONDENS=>YDPARAR%CCONDENS, CSUBG_MF_PDF=>YDPARAR%CSUBG_MF_PDF, & +& LTOTPREC=>YDPARAR%LTOTPREC, NPRINTFR=>YDPARAR%NPRINTFR, CMF_CLOUD=>YDPARAR%CMF_CLOUD, MALBDIR=>YDPARAR%MALBDIR, & +& NSWB_MNH=>YDPARAR%NSWB_MNH, XSW_BANDS=>YDPARAR%XSW_BANDS, MACPRG=>YDPARAR%MACPRG, MSWDIR=>YDPARAR%MSWDIR, & +& LMIXUV=>YDPARAR%LMIXUV, MSWDIF=>YDPARAR%MSWDIF, LOLSMC=>YDPARAR%LOLSMC, NDIAGWMAX=>YDPARAR%NDIAGWMAX, & +& MACPRS=>YDPARAR%MACPRS, MACPRR=>YDPARAR%MACPRR, LSQUALL=>YDPARAR%LSQUALL, VSIGQSAT=>YDPARAR%VSIGQSAT, & +& MALBSCA=>YDPARAR%MALBSCA, RADSN=>YDPARAR%RADSN, LOSEDIC=>YDPARAR%LOSEDIC, LDIAGWMAX=>YDPARAR%LDIAGWMAX, & +& CSEDIM=>YDPARAR%CSEDIM, CLAMBDA3=>YDPARAR%CLAMBDA3, & +& NPTP=>YDPARAR%NPTP, NSPLITR=>YDPARAR%NSPLITR, NSPLITG=>YDPARAR%NSPLITG, NSV=>YDPARAR%NSV, & +& CFRAC_ICE_SHALLOW_MF=>YDPARAR%CFRAC_ICE_SHALLOW_MF, CFRAC_ICE_ADJUST=>YDPARAR%CFRAC_ICE_ADJUST, MVTS=>YDPARAR%MVTS, & +& NREFROI2=>YDPARAR%NREFROI2, NREFROI1=>YDPARAR%NREFROI1, MVEMIS=>YDPARAR%MVEMIS, LOWARM=>YDPARAR%LOWARM, & +& LOCND2=>YDPARAR%LOCND2, LOSIGMAS=>YDPARAR%LOSIGMAS, NRR=>YDPARAR%NRR, LOSUBG_COND=>YDPARAR%LOSUBG_COND, & +& RADGR=>YDPARAR%RADGR, CMF_UPDRAFT=>YDPARAR%CMF_UPDRAFT, LHARATU=>YDPARAR%LHARATU, XMINLM=>YDPHY0%XMINLM, & +& XMAXLM=>YDPHY0%XMAXLM, AERCS1=>YDPHY0%AERCS1, AERCS3=>YDPHY0%AERCS3, AERCS5=>YDPHY0%AERCS5, RDECRD1=>YDPHY0%RDECRD1, & +& RDECRD2=>YDPHY0%RDECRD2, RDECRD3=>YDPHY0%RDECRD3, RDECRD4=>YDPHY0%RDECRD4, LMPA=>YDARPHY%LMPA, LUSECHEM=>YDARPHY%LUSECHEM, & +& LKFBCONV=>YDARPHY%LKFBCONV, LMFSHAL=>YDARPHY%LMFSHAL, LMICRO=>YDARPHY%LMICRO, CCOUPLING=>YDARPHY%CCOUPLING, & +& LTURB=>YDARPHY%LTURB, LGRADHPHY=>YDARPHY%LGRADHPHY, LRDUST=>YDARPHY%LRDUST, & +& NGRADIENTS=>YDARPHY%NGRADIENTS, LRDEPOS=>YDARPHY%LRDEPOS, & +& LRCO2=>YDARPHY%LRCO2, LMSE=>YDARPHY%LMSE, LSURFEX_KFROM=>YDARPHY%LSURFEX_KFROM, NSURFEXCTL=>YDMSE%NSURFEXCTL, & +& XZSEPS=>YDMSE%XZSEPS, NDLUNG=>YDDIM%NDLUNG, NDGUNG=>YDDIM%NDGUNG, NPROMA=>YDDIM%NPROMA, NDLUXG=>YDDIM%NDLUXG, & +& NDGUXG=>YDDIM%NDGUXG, NGFL_EXT=>YGFL%NGFL_EXT, YLRAD=>YGFL%YLRAD, YIRAD=>YGFL%YIRAD, NGFL_EZDIAG=>YGFL%NGFL_EZDIAG, & +& NLIMA=>YGFL%NLIMA, CMICRO=>YDPARAR%CMICRO, NPROMICRO=>YDPARAR%NPROMICRO, & +& YSD_VAD=>YDSURF%YSD_VAD, QCO2=>YDPHY3%QCO2, NRAY=>YDPHY%NRAY, & +& LRAYFM=>YDPHY%LRAYFM, LO3ABC=>YDPHY%LO3ABC, LRAY=>YDPHY%LRAY, LRSTAER=>YDPHY%LRSTAER, LRNUEXP=>YDPHY%LRNUEXP, & +& AMAGSTOPH_CASBS=> YDSTOPH%AMAGSTOPH_CASBS, LFORCENL=>YDSTOPH%LFORCENL, NFORCESTART=>YDSTOPH%NFORCESTART, & +& NFORCEEND=>YDSTOPH%NFORCEEND, NTRADI=>YDTOPH%NTRADI, NTQSAT=>YDTOPH%NTQSAT, NTNEBU=>YDTOPH%NTNEBU, NAERMACC=>YDERAD%NAERMACC, & +& NAER=>YDERAD%NAER, LHLRADUPD=>YDPHY%LHLRADUPD, TSPHY=>YDPHY2%TSPHY, NOZOCL=>YDERAD%NOZOCL, NRADFR=>YDERAD%NRADFR, & +& NSW=>YDERAD%NSW, RCARDI=>YDERDI%RCARDI, LFLEXDIA=>YLDDH%LFLEXDIA, LDDH_OMP=>YLDDH%LDDH_OMP, LRSLDDH=>YLDDH%LRSLDDH, & +& RDECLI=>YDRIP%RDECLI, RCODEC=>YDRIP%RCODEC, RHGMT=>YDRIP%RHGMT, RSIDEC=>YDRIP%RSIDEC, RSOVR=>YDRIP%RSOVR, & +& RSTATI=>YDRIP%RSTATI, TSTEP=>YDRIP%TSTEP, STPREH=>YDSTA%STPREH, LXXDIAGH=>YDXFU%LXXDIAGH, LFLASH =>YDCFU%LFLASH, & +& LDPRECIPS=>YDPHY%LDPRECIPS, LDPRECIPS2=>YDPHY%LDPRECIPS2, NDTPREC=>YDPRECIPS%NDTPREC, NDTPREC2=>YDPRECIPS%NDTPREC2, & +& NGPTOT=>YDGEM%NGPTOT, NGPBLKS=>YDDIM%NGPBLKS, NTSSG=>YDDPHY%NTSSG, YEZDIAG=>YGFL%YEZDIAG, YEXT=>YGFL%YEXT, & +& YNOGW=>YGFL%YNOGW, YCHEM=>YGFL%YCHEM, YSP_SBD=>YDSURF%YSP_SBD, LEDR=>YDPHY%LEDR, LAGPHY=>YDEPHY%LAGPHY, & +& YLIMA=>YGFL%YLIMA, LSPSDT => YSPPT_CONFIG%LSPSDT, LKOGAN=>YDPARAR%LKOGAN, LHGT_QS=>YDPARAR%LHGT_QS, & +& LMODICEDEP=>YDPARAR%LMODICEDEP, LWINDFARM=>YDPHY%LWINDFARM, LSTATNW=>YDPARAR%LSTATNW, & + & RG=>YDCST%RG, RCPD=>YDCST%RCPD, RATM=>YDCST%RATM, RTT=>YDCST%RTT, RPI=>YDCST%RPI, & + & RCW=>YDCST%RCW, RCPV=>YDCST%RCPV, RLVTT=>YDCST%RLVTT, RCS=>YDCST%RCS, RLSTT=>YDCST%RLSTT, & + & RGAMW=>YDCST%RGAMW, RBETW=>YDCST%RBETW, RALPW=>YDCST%RALPW, RGAMS=>YDCST%RGAMS, & + & RBETS=>YDCST%RBETS, RALPS=>YDCST%RALPS, RGAMD=>YDCST%RGAMD, RBETD=>YDCST%RBETD, & + & RALPD=>YDCST%RALPD, RETV=>YDCST%RETV, RKAPPA=>YDCST%RKAPPA, RHOUR=>YDCST%RHOUR, RV=>YDCST%RV, RD=>YDCST%RD, & +& LTOTPRECL=>YDPARAR%LTOTPRECL) + +CALL SC2PRG(1, YEZDIAG(:)%MP, YDMODEL%YRML_GCONF%YGFL%NGFL_EZDIAG, PGFL, ZP1EZDIAG) + +! ------------------------------------------------------------------ + +! 0. constructor for procset +IF (LINTFLEX) YLPROCSET=NEWINTPROCSET() + +! 1. Preliminary calculations necessary +! for all types of physics. +! ------------------------------------ +#ifdef REPRO48 +!see comment associated to the include statement +CALL AROINI_BUDGET(YDMODEL%YRML_DIAG%YRLDDH%LSDDH) +#endif + +INSTEP_DEB=1 +INSTEP_FIN=1 + +! initialisation for surfex if XFU +LLXFUMSE=.FALSE. +IF (YDCPG_OPTS%LCONFX) THEN + LLXFUMSE=.TRUE. +ENDIF + +! SPP +IF ( YSPP_CONFIG%LSPP ) THEN + DO JSPP=1,YSPP%N2D + ZGP2DSPP(:,JSPP) = YSPP%GP_ARP(JSPP)%GP2D(:,1,YDCPG_BNDS%KBL) + ENDDO +ENDIF + +! Complete physics is called. +LLDIAB=(.NOT.LAGPHY) + +IF (LLDIAB) THEN + CALL CPPHINP(YDCPG_OPTS%LVERTFE, YDGEOMETRY, YDMODEL, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDVARS%GEOMETRY%GEMU%T0, & + & YDVARS%GEOMETRY%GELAM%T0, YDVARS%U%T0, YDVARS%V%T0, YDVARS%Q%T0, YDVARS%Q%DL, YDVARS%Q%DM, YDVARS%CVGQ%DL, YDVARS%CVGQ%DM, & + & YDCPG_PHY0%XYB%RDELP, YDCPG_DYN0%CTY%EVEL, YDVARS%CVGQ%T0, ZRDG_MU0, ZRDG_MU0LU, ZRDG_MU0M, & + & ZRDG_MU0N, ZRDG_CVGQ) + ZRDG_LCVQ(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=ZRDG_CVGQ(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG) +ENDIF + +! * In some cases, some pseudo-historic surface buffers (like z0) should +! not be modified between the entrance and the output of APL_AROME +! (this is the case for example if LDCONFX=T). +! For the time being, we must save: +! - HV (group VV) : resistance to evapotranspiration +! - Z0F (group VD): gravity * surface roughness length +! - Z0H (group VV): gravity * roughness length for heat +! - PBLH (group VH): PBL height +! - SPSH (group VH): +! - QSH (group VH): + +LL_SAVE_PHSURF = .FALSE. + +IF (LLDIAB) THEN + LL_SAVE_PHSURF=YDCPG_OPTS%LCONFX + IF (LL_SAVE_PHSURF) THEN + CALL MF_PHYS_SAVE_PHSURF_PART1 (YDCPG_BNDS, YDCPG_OPTS, ZSAV_DDAL, ZSAV_DDOM, ZSAV_ENTCH, & + & ZSAV_FHPS, ZSAV_GZ0F, ZSAV_GZ0HF, ZSAV_HV, ZSAV_PBLH, ZSAV_QSH, ZSAV_UDAL, ZSAV_UDGRO, & + & ZSAV_UDOM, ZSAV_UNEBH, YDMF_PHYS_SURF%GSD_VF%PZ0F, YDMF_PHYS_SURF%GSD_VH%PPBLH, YDMF_PHYS_SURF%GSD_VH%PQSH, & + & YDMF_PHYS_SURF%GSD_VH%PSPSH, YDMF_PHYS_SURF%GSD_VK%PUDGRO, YDMF_PHYS_SURF%GSD_VV%PHV, YDMF_PHYS_SURF%GSD_VV%PZ0H, & + & YDVARS%DAL%T0, YDVARS%DOM%T0, YDVARS%UAL%T0, YDVARS%UEN%T0, YDVARS%UNEBH%T0, YDVARS%UOM%T0, & + & YDMODEL) + ENDIF +ENDIF + + +CALL APL_AROME_CALC_IPGFL (YDGEOMETRY, YDCPG_BNDS, YDCPG_OPTS, YDMODEL, IPGFL) + +CALL MF_PHYS_TRANSFER (YDCPG_BNDS, YDCPG_OPTS, YDVARS, YDMODEL%YRML_PHY_MF%YRPHY, YDMODEL%YRML_GCONF%YGFL) + +CALL APL_AROME_CALC_IPTR (YDMODEL, IEFB1, IEFB2, IEFB3, IPTR, IPTREXT, IPTRLIMA, IPTRTKE, IRR) + +! If an incorrect address is used, then the initialization below will detect it : +ZTENDGFLR(:,:,0)=HUGE(1._JPRB) + +ZTEND_Q => ZTENDGFLR (:,:,IRR+0) ! 1 Q +ZTEND_L => ZTENDGFLR (:,:,IRR+1) ! 2 L +ZTEND_R => ZTENDGFLR (:,:,IRR+2) ! 3 R +ZTEND_I => ZTENDGFLR (:,:,IRR+3) ! 4 I +ZTEND_S => ZTENDGFLR (:,:,IRR+4) ! 5 S +ZTEND_G => ZTENDGFLR (:,:,IRR+5) ! 6 G +IF (YDMODEL%YRML_PHY_MF%YRPARAR%NRR == 7) THEN + ZTEND_H => ZTENDGFLR (:,:,IRR+6) ! 7 H +ELSE + ZTEND_H => ZDUM2 +ENDIF + + +ZTENDRA => ZTENDGFLR (:, :, IRR:IRR+YDMODEL%YRML_PHY_MF%YRPARAR%NRR-1) +ZTENDLIMA => ZTENDGFLR (:, :, IPTRLIMA:IPTRLIMA+YDMODEL%YRML_GCONF%YGFL%NLIMA-1) +ZTENDTKE => ZTENDGFLR (:, :, IPTRTKE) +ZTENDEFB1 => ZTENDGFLR (:, :, IEFB1) +ZTENDEFB2 => ZTENDGFLR (:, :, IEFB2) +ZTENDEFB3 => ZTENDGFLR (:, :, IEFB3) +ZTENDEXT => ZTENDGFLR (:, :, IPTREXT:IPTREXT+YDMODEL%YRML_GCONF%YGFL%NGFL_EXT-1) + + + + + + ! -------------------------------------------------------------------------- ! ------------------------------------------------------------------ @@ -1160,38 +1040,38 @@ ELSE ZEPSNEB=1.E-06 ENDIF -NSV=0 - ! 1.3 time step initialisation -! the mesoNH physics (turb and microphysics) is written +! the mesoNH physics (turb and microphysics) is written ! for leap frog scheme -! !!! be carefull for 2TL or 3TL +! !!! be carefull for 2TL or 3TL IF (LTWOTL) THEN - ZDT=PDT/2._JPRB + ZDT=YDCPG_OPTS%ZDTPHY/2._JPRB ELSE - IF (KSTEP/=0) THEN - ZDT=PDT/2._JPRB + IF (YDCPG_OPTS%KSTEP/=0) THEN + ZDT=YDCPG_OPTS%ZDTPHY/2._JPRB ELSE - ZDT=PDT + ZDT=YDCPG_OPTS%ZDTPHY ENDIF ENDIF -ZINVDT=1/PDT +ZINVDT=1/YDCPG_OPTS%ZDTPHY ZINVG=1._JPRB/RG ! initialisation de ZDTMSE -IF (LDXFUMSE) THEN +IF (LLXFUMSE) THEN ZDTMSE=0.01_JPRB - ZSTATI=REAL(RSTATI,JPRB)-ZDTMSE/2._JPRB + ZSTATI=REAL(RSTATI,JPRB)-ZDTMSE*.5_JPRB + ZADTMS=0._JPRB ELSE - ZDTMSE=PDT + ZDTMSE=YDCPG_OPTS%ZDTPHY ZSTATI=REAL(RSTATI,JPRB) + ZADTMS=ZDTMSE ENDIF IF(LTWOTL) THEN - ZRHGMT=REAL(RHGMT,JPRB)-ZDTMSE/2._JPRB + ZRHGMT=REAL(RHGMT,JPRB)-ZDTMSE*.5_JPRB ELSE ZRHGMT=REAL(RHGMT,JPRB) ENDIF @@ -1203,11 +1083,11 @@ LLMSE_DIAG=LLMSE.AND.(NSURFEXCTL >= 3) ! Vertical points -IKA=KLEV -IKB=KLEV +IKA=YDCPG_OPTS%KFLEVG +IKB=YDCPG_OPTS%KFLEVG IKU=1 -IKT=KLEV -IKTE=KLEV +IKT=YDCPG_OPTS%KFLEVG +IKTE=YDCPG_OPTS%KFLEVG IKTB=1 IKL=-1 @@ -1317,7 +1197,7 @@ IF (INIT0 >= 0) THEN ZFRSOFS(:)=ZVALUE ZQW(:,:)=ZVALUE - PRH(:,:)=ZVALUE + YDCPG_MISC%RH(:,:)=ZVALUE ZTW(:,:)=ZVALUE ZTRSODIF(:,:)=ZVALUE @@ -1335,10 +1215,10 @@ IF (INIT0 >= 0) THEN ZQV(:,:)=ZVALUE ZSFSV_(:,:)=ZVALUE - PFRSOC(:,:)=ZVALUE - PFRTHC(:,:)=ZVALUE - PFRSOPS(:)=ZVALUE - PDIAGH(:)=ZVALUE + YDMF_PHYS%OUT%FRSOC(:,:)=ZVALUE + YDMF_PHYS%OUT%FRTHC(:,:)=ZVALUE + YDMF_PHYS%OUT%FRSOPS(:)=ZVALUE + YDMF_PHYS%OUT%DIAGH(:)=ZVALUE ZTENDSV_TURBLIMA_(:,:,:)=ZVALUE @@ -1346,76 +1226,76 @@ ENDIF ! INITIALIZE (CUMULATED) TENDENCIES -DO JLEV=1,KLEV - PTENDT(KIDIA:KFDIA,JLEV)=0.0_JPRB - PTENDU(KIDIA:KFDIA,JLEV)=0.0_JPRB - PTENDV(KIDIA:KFDIA,JLEV)=0.0_JPRB - PTENDW(KIDIA:KFDIA,JLEV)=0.0_JPRB - PTENDTKE(KIDIA:KFDIA,JLEV)=0.0_JPRB +DO JLEV=1,YDCPG_OPTS%KFLEVG + ZTENDT(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0.0_JPRB + YDMF_PHYS%OUT%TENDU(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0.0_JPRB + YDMF_PHYS%OUT%TENDV(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0.0_JPRB + ZTENDW(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0.0_JPRB + ZTENDTKE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0.0_JPRB ENDDO DO JRR=1,NRR - DO JLEV=1,KLEV - PTENDR(KIDIA:KFDIA,JLEV,JRR)=0.0_JPRB + DO JLEV=1,YDCPG_OPTS%KFLEVG + ZTENDRA(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,JRR)=0.0_JPRB ENDDO ENDDO DO JGFL=1,NGFL_EXT - DO JLEV=1,KLEV - PTENDEXT(KIDIA:KFDIA,JLEV,JGFL)=0.0_JPRB + DO JLEV=1,YDCPG_OPTS%KFLEVG + ZTENDEXT(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,JGFL)=0.0_JPRB ENDDO ENDDO DO JGFL=1,NLIMA - DO JLEV=1,KLEV - PTENDLIMA(KIDIA:KFDIA,JLEV,JGFL)=0.0_JPRB + DO JLEV=1,YDCPG_OPTS%KFLEVG + ZTENDLIMA(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,JGFL)=0.0_JPRB ENDDO ENDDO ! INITIALIZE CUMULATED STUFF ! Small array, OK. REK -ZINPRH_(KIDIA:KFDIA)=0._JPRB -ZINPRR_(KIDIA:KFDIA)=0._JPRB -ZACPRR_(KIDIA:KFDIA)=0._JPRB -ZINPRS_(KIDIA:KFDIA)=0._JPRB -ZACPRS_(KIDIA:KFDIA)=0._JPRB -ZINPRG_(KIDIA:KFDIA)=0._JPRB +ZINPRH_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB +ZINPRR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB +ZACPRR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB +ZINPRS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB +ZACPRS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB +ZINPRG_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB -DO JLEV = 1,KLEV - DO JLON = KIDIA,KFDIA - ZZZ_F_(JLON,JLEV)=PAPHIFM(JLON,JLEV)*ZINVG - ZTENDT(JLON,JLEV)=0._JPRB +DO JLEV = 1,YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZZZ_F_(JLON,JLEV)=YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF(JLON,JLEV)*ZINVG + ZTENDTT(JLON,JLEV)=0._JPRB ENDDO ENDDO ! adhoc solution to avoid negative tke values ! when SL advective ddh is activated IF (LRSLDDH) THEN - DO JLEV=1, KLEV - DO JLON = KIDIA, KFDIA - ZTKEM4SLDDH(JLON,JLEV)=MAX(PTKEM(JLON,JLEV),PPTKEMIN) + DO JLEV=1, YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA + ZTKEM4SLDDH(JLON,JLEV)=MAX(YDMF_PHYS_BASE_STATE%TKE(JLON,JLEV),PPTKEMIN) ENDDO ENDDO ZTKEM => ZTKEM4SLDDH(:,:) ELSE - ZTKEM => PTKEM(:,:) + ZTKEM => YDMF_PHYS_BASE_STATE%TKE(:,:) !test TKE > 0. - IF (MINVAL(ZTKEM(KIDIA:KFDIA,1:KLEV)) <= 0._JPRB) THEN + IF (MINVAL(ZTKEM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)) <= 0._JPRB) THEN CALL ABOR1('TKE < 0 under APL_AROME check YTKE_NL%NREQIN') ENDIF ENDIF - -!test invalid combinations -IF (LHARATU .AND. CMF_UPDRAFT == 'EDKF') THEN - CALL ABOR1('Combination LHARATU and EDKF not valid!') -ENDIF - !initialisation of first useful field for EZDIAG use in Chemistry/Dust IOFF_MFSHAL=1 IF(LFPREC3D) IOFF_MFSHAL=2 +! 1.5 SPP settings +IF (YSPP_CONFIG%LSPP) THEN + CALL SET_ALL_SPP(YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,NGFL_EZDIAG, & + & YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA,ZGP2DSPP,ZP1EZDIAG,ZSPP_ALL) +ENDIF + ! ------------------------------------------------------------------ -! 2 - CHANGEMENTS DE VARIABLES ET INVERSION DES NIVEAUX +! 2 - CHANGEMENTS DE VARIABLES ET INVERSION DES NIVEAUX ! -------------------------------------------------------------------- IF (LMICRO.OR.LTURB.OR.LLMSE.OR.LKFBCONV) THEN @@ -1423,83 +1303,83 @@ IF (LMICRO.OR.LTURB.OR.LLMSE.OR.LKFBCONV) THEN ZRSCP=RD/RCPD ZINVATM=1/RATM !initialisation de ZZZ_ - DO JLEV = 1,KLEV - !initialisation de qdm (utile localement pour calculer rho + DO JLEV = 1,YDCPG_OPTS%KFLEVG + !initialisation de qdm (utile localement pour calculer rho !et convertir q en r IF (NRR==7) THEN - DO JLON = KIDIA,KFDIA - ZQDM(JLON,JLEV)=1._JPRB-PQVM(JLON,JLEV)-PQCM(JLON,JLEV)-PQRM(JLON,JLEV)& - & -PQIM(JLON,JLEV)-PQSM(JLON,JLEV)-PQGM(JLON,JLEV)-PQHM(JLON,JLEV) + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZQDM(JLON,JLEV)=1._JPRB-YDMF_PHYS_BASE_STATE%Q(JLON,JLEV)-YDMF_PHYS_BASE_STATE%L(JLON,JLEV)-YDMF_PHYS_BASE_STATE%R(JLON,JLEV)& + & -YDMF_PHYS_BASE_STATE%I(JLON,JLEV)-YDMF_PHYS_BASE_STATE%S(JLON,JLEV)-YDMF_PHYS_BASE_STATE%G(JLON,JLEV)-YDMF_PHYS_BASE_STATE%H(JLON,JLEV) ENDDO ELSE - DO JLON = KIDIA,KFDIA - ZQDM(JLON,JLEV)=1._JPRB-PQVM(JLON,JLEV)-PQCM(JLON,JLEV)-PQRM(JLON,JLEV)& - & -PQIM(JLON,JLEV)-PQSM(JLON,JLEV)-PQGM(JLON,JLEV) + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZQDM(JLON,JLEV)=1._JPRB-YDMF_PHYS_BASE_STATE%Q(JLON,JLEV)-YDMF_PHYS_BASE_STATE%L(JLON,JLEV)-YDMF_PHYS_BASE_STATE%R(JLON,JLEV)& + & -YDMF_PHYS_BASE_STATE%I(JLON,JLEV)-YDMF_PHYS_BASE_STATE%S(JLON,JLEV)-YDMF_PHYS_BASE_STATE%G(JLON,JLEV) ENDDO ENDIF - DO JLON = KIDIA,KFDIA - !initialisation de ZRHODREFM__ (=qd*zrho) - ZRHO=PAPRSFM(JLON,JLEV)/(PRM(JLON,JLEV)*PTM(JLON,JLEV)) + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + !initialisation de ZRHODREFM__ (=qd*zrho) + ZRHO=YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(JLON,JLEV)/(YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%R(JLON,JLEV)*YDMF_PHYS_BASE_STATE%T(JLON,JLEV)) ZRHODREFM__(JLON,JLEV)=ZRHO*ZQDM(JLON,JLEV) - ZRHODJM__(JLON,JLEV)=PDELPM(JLON,JLEV)*ZINVG + ZRHODJM__(JLON,JLEV)=YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JLEV)*ZINVG !initialisation de ZEXNREFM_ - ZEXNREFM_(JLON,JLEV)=(PAPRSFM(JLON,JLEV)*ZINVATM)**(ZRSCP) + ZEXNREFM_(JLON,JLEV)=(YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(JLON,JLEV)*ZINVATM)**(ZRSCP) ! vent horizontal et TKE - ZPABSM__(JLON,JLEV)=PAPRSFM(JLON,JLEV) - ZUM__(JLON,JLEV)= PUM(JLON,JLEV) - ZVM__(JLON,JLEV)= PVM(JLON,JLEV) - ZWM__(JLON,JLEV)= PWM(JLON,JLEV) + ZPABSM__(JLON,JLEV)=YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(JLON,JLEV) + ZUM__(JLON,JLEV)= YDMF_PHYS_BASE_STATE%U(JLON,JLEV) + ZVM__(JLON,JLEV)= YDMF_PHYS_BASE_STATE%V(JLON,JLEV) + ZWM__(JLON,JLEV)= YDMF_PHYS_BASE_STATE%YCPG_PHY%W(JLON,JLEV) ZTKEM__(JLON,JLEV)= ZTKEM(JLON,JLEV) - ZZZ_(JLON,JLEV)=PAPHIM(JLON,JLEV)*ZINVG + ZZZ_(JLON,JLEV)=YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI(JLON,JLEV)*ZINVG ENDDO ENDDO !initialise sigma for subgrid condensation coming !from previous time step turbulence scheme IF (LOSIGMAS) THEN - DO JLEV = 1, KLEV - ZSIGM_(KIDIA:KFDIA,JLEV)= PSIGM(KIDIA:KFDIA,JLEV) + DO JLEV = 1, YDCPG_OPTS%KFLEVG + ZSIGM_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)= YDMF_PHYS_BASE_STATE%SRC(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) ENDDO ENDIF - !initialise convective mas flux for subgrid condensation coming + !initialise convective mas flux for subgrid condensation coming !from previous time step convection scheme IF (LOSUBG_COND.AND..NOT.LOSIGMAS) THEN IF (LKFBCONV) THEN - DO JLEV = 1, KLEV - ZMFM_(KIDIA:KFDIA,JLEV)=PSIGM(KIDIA:KFDIA,JLEV) + DO JLEV = 1, YDCPG_OPTS%KFLEVG + ZMFM_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=YDMF_PHYS_BASE_STATE%SRC(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) ENDDO ELSE - DO JLEV = 1, KLEV - ZMFM_(KIDIA:KFDIA,JLEV)=0._JPRB + DO JLEV = 1, YDCPG_OPTS%KFLEVG + ZMFM_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0. ENDDO ENDIF ENDIF -!!! initialisation des variables d etat MNH �t +!!! initialisation des variables d etat MNH !initialisation de ZRM_ pour les hydrometeores (ri=qi/qd) - DO JLEV = 1, KLEV - DO JLON = KIDIA,KFDIA - ZTHM__(JLON,JLEV)=PTM(JLON,JLEV)/ZEXNREFM_(JLON,JLEV) - ZRM_(JLON,JLEV,1)=PQVM(JLON,JLEV)/ZQDM(JLON,JLEV) - ZRM_(JLON,JLEV,2)=PQCM(JLON,JLEV)/ZQDM(JLON,JLEV) - ZRM_(JLON,JLEV,3)=PQRM(JLON,JLEV)/ZQDM(JLON,JLEV) - ZRM_(JLON,JLEV,4)=PQIM(JLON,JLEV)/ZQDM(JLON,JLEV) - ZRM_(JLON,JLEV,5)=PQSM(JLON,JLEV)/ZQDM(JLON,JLEV) - ZRM_(JLON,JLEV,6)=PQGM(JLON,JLEV)/ZQDM(JLON,JLEV) + DO JLEV = 1, YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZTHM__(JLON,JLEV)=YDMF_PHYS_BASE_STATE%T(JLON,JLEV)/ZEXNREFM_(JLON,JLEV) + ZRM_(JLON,JLEV,1)=YDMF_PHYS_BASE_STATE%Q(JLON,JLEV)/ZQDM(JLON,JLEV) + ZRM_(JLON,JLEV,2)=YDMF_PHYS_BASE_STATE%L(JLON,JLEV)/ZQDM(JLON,JLEV) + ZRM_(JLON,JLEV,3)=YDMF_PHYS_BASE_STATE%R(JLON,JLEV)/ZQDM(JLON,JLEV) + ZRM_(JLON,JLEV,4)=YDMF_PHYS_BASE_STATE%I(JLON,JLEV)/ZQDM(JLON,JLEV) + ZRM_(JLON,JLEV,5)=YDMF_PHYS_BASE_STATE%S(JLON,JLEV)/ZQDM(JLON,JLEV) + ZRM_(JLON,JLEV,6)=YDMF_PHYS_BASE_STATE%G(JLON,JLEV)/ZQDM(JLON,JLEV) ENDDO ENDDO - + IF (NRR==7) THEN - DO JLEV = 1, KLEV - DO JLON = KIDIA,KFDIA - ZRM_(JLON,JLEV,7)=PQHM(JLON,JLEV)/ZQDM(JLON,JLEV) + DO JLEV = 1, YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZRM_(JLON,JLEV,7)=YDMF_PHYS_BASE_STATE%H(JLON,JLEV)/ZQDM(JLON,JLEV) ENDDO ENDDO ENDIF - + IF (NRR==6) THEN !initialisation de ZTHVREFM__ - DO JLEV = 1, KLEV - DO JLON = KIDIA,KFDIA + DO JLEV = 1, YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ZTHVREFM__(JLON,JLEV)=ZTHM__(JLON,JLEV)*& & (1._JPRB+ZRM_(JLON,JLEV,1)*(RV/RD))/& & (1._JPRB+ZRM_(JLON,JLEV,1)+ZRM_(JLON,JLEV,2) +& @@ -1508,8 +1388,8 @@ IF (LMICRO.OR.LTURB.OR.LLMSE.OR.LKFBCONV) THEN ENDDO ENDDO ELSEIF (NRR==7) THEN - DO JLEV = 1, KLEV - DO JLON = KIDIA,KFDIA + DO JLEV = 1, YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ZTHVREFM__(JLON,JLEV)=ZTHM__(JLON,JLEV)*& & (1._JPRB+ZRM_(JLON,JLEV,1)*(RV/RD))/& & (1._JPRB+ZRM_(JLON,JLEV,1)+ZRM_(JLON,JLEV,2) +& @@ -1522,17 +1402,17 @@ IF (LMICRO.OR.LTURB.OR.LLMSE.OR.LKFBCONV) THEN !!! initialisation des variables d etat MNH a t+dt !!! division pas le pas de temps -!!!(la multiplication par rhodj est faite plus tard, si necessaire, -!!! suivant les parametrisations) +!!!(la multiplication par rhodj est faite plus tard, si necessaire, +!!! suivant les parametrisations) ! initialise pointers : CALL SWAP_THS ! vent horizontal - DO JLEV = 1, KLEV - DO JLON=KIDIA,KFDIA - ZUS__(JLON,JLEV)= PUM(JLON,JLEV)*ZINVDT - ZVS__(JLON,JLEV)= PVM(JLON,JLEV)*ZINVDT - ZWS__(JLON,JLEV)= PWM(JLON,JLEV)*ZINVDT + DO JLEV = 1, YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZUS__(JLON,JLEV)= YDMF_PHYS_BASE_STATE%U(JLON,JLEV)*ZINVDT + ZVS__(JLON,JLEV)= YDMF_PHYS_BASE_STATE%V(JLON,JLEV)*ZINVDT + ZWS__(JLON,JLEV)= YDMF_PHYS_BASE_STATE%YCPG_PHY%W(JLON,JLEV)*ZINVDT ZTKES_(JLON,JLEV)= ZTKEM(JLON,JLEV)*ZINVDT ZTHS__(JLON,JLEV)=ZTHM__(JLON,JLEV)*ZINVDT ENDDO @@ -1542,8 +1422,8 @@ IF (LMICRO.OR.LTURB.OR.LLMSE.OR.LKFBCONV) THEN ! initialise pointers : CALL SWAP_RS DO JRR=1,NRR - DO JLEV = 1, KLEV - DO JLON=KIDIA,KFDIA + DO JLEV = 1, YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ZRS_(JLON,JLEV,JRR)=ZRM_(JLON,JLEV,JRR)*ZINVDT ENDDO ENDDO @@ -1551,17 +1431,17 @@ IF (LMICRO.OR.LTURB.OR.LLMSE.OR.LKFBCONV) THEN !!! Initialisations temporaires d'arguments non-utilises !initialisation de ZCIT_ - ZCIT_(KIDIA:KFDIA,1:IKT)=0.0_JPRB + ZCIT_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:IKT)=0.0_JPRB - !initialisation des tableaux de precipitations inst. and cumulated + !initialisation des tableaux de precipitations inst. and cumulated !and surface fluxes for turbulence IF (LLMSE.OR.LSFORCS) THEN - ZACPRR_(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MACPRR) - ZACPRS_(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MACPRS) - ZACPRG_(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MACPRG) - ZINPRR_NOTINCR_(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MINPRR) - ZINPRS_NOTINCR_(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MINPRS) - ZINPRG_NOTINCR_(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MINPRG) + ZACPRR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%ACPRR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) + ZACPRS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%ACPRS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) + ZACPRG_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%ACPRG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) + ZINPRR_NOTINCR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%INPRR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) + ZINPRS_NOTINCR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%INPRS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) + ZINPRG_NOTINCR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%INPRG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) ENDIF !initialisation des scalaires passifs @@ -1569,10 +1449,10 @@ IF (LMICRO.OR.LTURB.OR.LLMSE.OR.LKFBCONV) THEN CALL SWAP_SVM CALL SWAP_SVS DO JGFL=1,NGFL_EXT - DO JLEV = 1, KLEV - DO JLON=KIDIA,KFDIA - ZSVM_(JLON,JLEV,JGFL)=PSVM(JLON,JLEV,JGFL) - ZSVS_(JLON,JLEV,JGFL)=PSVM(JLON,JLEV,JGFL)*ZINVDT + DO JLEV = 1, YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZSVM_(JLON,JLEV,JGFL)=YDMF_PHYS_BASE_STATE%P1EXT(JLON,JLEV,JGFL) + ZSVS_(JLON,JLEV,JGFL)=YDMF_PHYS_BASE_STATE%P1EXT(JLON,JLEV,JGFL)*ZINVDT ENDDO ENDDO ENDDO @@ -1581,10 +1461,10 @@ IF (LMICRO.OR.LTURB.OR.LLMSE.OR.LKFBCONV) THEN ! initialise pointers : CALL SWAP_LIMAS DO JGFL=1,NLIMA - DO JLEV = 1, KLEV - DO JLON=KIDIA,KFDIA - ZLIMAM_(JLON,JLEV,JGFL)=PLIMAM(JLON,JLEV,JGFL) - ZLIMAS_(JLON,JLEV,JGFL)=PLIMAM(JLON,JLEV,JGFL)*ZINVDT + DO JLEV = 1, YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZLIMAM_(JLON,JLEV,JGFL)=YDMF_PHYS_BASE_STATE%P1LIMA(JLON,JLEV,JGFL) + ZLIMAS_(JLON,JLEV,JGFL)=YDMF_PHYS_BASE_STATE%P1LIMA(JLON,JLEV,JGFL)*ZINVDT ENDDO ENDDO ENDDO @@ -1592,24 +1472,24 @@ IF (LMICRO.OR.LTURB.OR.LLMSE.OR.LKFBCONV) THEN ENDIF ! daand: radflex -ZFRSO => PFRSO(:,:,1) -ZFRTH => PFRTH(:,:,1) +ZFRSO => YDMF_PHYS%OUT%FRSO(:,:,1) +ZFRTH => YDMF_PHYS%OUT%FRTH(:,:,1) ! ------------------------------------------------------------------ ! 3 - PRINTS FOR DIAGNOSTICS IF NEEDED ! ------------------------------------------------------------------ IF (LDIAGWMAX) THEN - IF (MOD(KSTEP+1,NDIAGWMAX)==0) THEN + IF (MOD(YDCPG_OPTS%KSTEP+1,NDIAGWMAX)==0) THEN ! calcul de wmax - DO JLEV = 1 , KLEV + DO JLEV = 1 , YDCPG_OPTS%KFLEVG Z_WMAX=0._JPRB Z_WMIN=0._JPRB - DO JLON=KIDIA,KFDIA - IF (PWM(JLON,JLEV)>Z_WMAX) THEN - Z_WMAX=PWM(JLON,JLEV) + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + IF (YDMF_PHYS_BASE_STATE%YCPG_PHY%W(JLON,JLEV)>Z_WMAX) THEN + Z_WMAX=YDMF_PHYS_BASE_STATE%YCPG_PHY%W(JLON,JLEV) ENDIF - IF (PWM(JLON,JLEV)<Z_WMIN) THEN - Z_WMIN=PWM(JLON,JLEV) + IF (YDMF_PHYS_BASE_STATE%YCPG_PHY%W(JLON,JLEV)<Z_WMIN) THEN + Z_WMIN=YDMF_PHYS_BASE_STATE%YCPG_PHY%W(JLON,JLEV) ENDIF ENDDO ENDDO @@ -1618,15 +1498,15 @@ ENDIF IF (LFLEXDIA) THEN !save tendencies - ZTENDTBAK(KIDIA:KFDIA,1:KLEV)=PTENDT(KIDIA:KFDIA,1:KLEV) + ZTENDTBAK(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=ZTENDT(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG) DO JR=1,NRR - ZTENDRBAK(KIDIA:KFDIA,1:KLEV,JR)=PTENDR(KIDIA:KFDIA,1:KLEV,JR) + ZTENDRBAK(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,JR)=ZTENDRA(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,JR) ENDDO ENDIF ! ------------------------------------------------------------------ -! 4 - ADJUSTMENT (CALLED IF THE MICROPHYSICS IS SWITCH ON) +! 4 - ADJUSTMENT (CALLED IF THE MICROPHYSICS IS SWITCH ON) ! ------------------------------------------------------------------ IF (LMICRO) THEN @@ -1637,157 +1517,131 @@ IF (LMICRO) THEN IF (LMFSHAL .AND. (CMF_CLOUD=='DIRE'.OR.CMF_CLOUD=='BIGA')) THEN IOFF_MFSHAL=IOFF_MFSHAL+3 - IF (KSTEP==0) THEN - DO JLEV = 1, KLEV - ZRC_MF_(KIDIA:KFDIA,JLEV)=0._JPRB - ZRI_MF_(KIDIA:KFDIA,JLEV)=0._JPRB - ZCF_MF_(KIDIA:KFDIA,JLEV)=0._JPRB + IF (YDCPG_OPTS%KSTEP==0) THEN + DO JLEV = 1, YDCPG_OPTS%KFLEVG + ZRC_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB + ZRI_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB + ZCF_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB ENDDO ELSE - DO JLEV = 1, KLEV - ZRC_MF_(KIDIA:KFDIA,JLEV)=PEZDIAG(KIDIA:KFDIA,JLEV,1) - ZRI_MF_(KIDIA:KFDIA,JLEV)=PEZDIAG(KIDIA:KFDIA,JLEV,3) - ZCF_MF_(KIDIA:KFDIA,JLEV)=PEZDIAG(KIDIA:KFDIA,JLEV,2) + DO JLEV = 1, YDCPG_OPTS%KFLEVG + ZRC_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,1) + ZRI_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,3) + ZCF_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,2) ENDDO ENDIF - PEZDIAG(KIDIA:KFDIA,1:KLEV,1:3)=0._JPRB + ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,1:3)=0._JPRB ELSE - DO JLEV = 1, KLEV - ZRC_MF_(KIDIA:KFDIA,JLEV)=0._JPRB - ZRI_MF_(KIDIA:KFDIA,JLEV)=0._JPRB - ZCF_MF_(KIDIA:KFDIA,JLEV)=0._JPRB + DO JLEV = 1, YDCPG_OPTS%KFLEVG + ZRC_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB + ZRI_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB + ZCF_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB ENDDO ENDIF - IF (MOD(KSTEP+1,NPRINTFR)==0) THEN + IF (MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN WRITE(NULOUT,*)'avant aro_adjust sous apl_arome' WRITE(NULOUT,*)'JLEV ZZZ_F_ RHODJM EXNREFM PABSM THM SIGM MFM ' - DO JLEV=1,KLEV+1 + DO JLEV=1,YDCPG_OPTS%KFLEVG WRITE(NULOUT,'(I2,X,7F10.3)') JLEV,ZZZ_F_(NPTP,JLEV),ZRHODJM__(NPTP,JLEV),& & ZEXNREFM_(NPTP,JLEV), ZPABSM__(NPTP,JLEV), ZTHM__(NPTP,JLEV), ZSIGM_(NPTP,JLEV), ZMFM_(NPTP,JLEV) ENDDO WRITE (NULOUT,*)'JLEV rhoQv rhoQc rhoQr rhoQi rhoQs rhoQg' - DO JLEV=1,KLEV + DO JLEV=1,YDCPG_OPTS%KFLEVG WRITE(NULOUT,'(I2,X,6E11.4)') JLEV,ZRM_(NPTP,JLEV,1),& - & ZRM_(NPTP,JLEV,2), ZRM_(NPTP,JLEV,3),ZRM_(NPTP,JLEV,4),ZRM_(NPTP,JLEV,5), ZRM_(NPTP,JLEV,6) + & ZRM_(NPTP,JLEV,2), ZRM_(NPTP,JLEV,3),ZRM_(NPTP,JLEV,4),ZRM_(NPTP,JLEV,5), ZRM_(NPTP,JLEV,6) ENDDO WRITE (NULOUT,*)'JLEV ZRC_MF_ ZRI_MF_ ZCF_MF_ ZTHSIN_ ZSRCS__ ZNEBMNH_' - DO JLEV=1,KLEV + DO JLEV=1,YDCPG_OPTS%KFLEVG WRITE(NULOUT,'(I2,X,6E11.4)') JLEV,ZRC_MF_(NPTP,JLEV),& & ZRI_MF_(NPTP,JLEV),ZCF_MF_(NPTP,JLEV), ZTHSIN_(NPTP,JLEV),ZSRCS__(NPTP,JLEV), ZNEBMNH_(NPTP,JLEV) ENDDO ENDIF ! for now a copy is needed (see below, inside). I don't like than :-( REK - ZTHS__(KIDIA:KFDIA,1:KLEV)=ZTHSIN_(KIDIA:KFDIA,1:KLEV) - ZRS_(KIDIA:KFDIA,1:KLEV,1:NRR)=ZRSIN_(KIDIA:KFDIA,1:KLEV,1:NRR) + ZTHS__(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=ZTHSIN_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG) + ZRS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,1:NRR)=ZRSIN_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,1:NRR) IF (CMICRO == 'LIMA') THEN CALL SWAP_LIMAS ! for now a copy is needed (see below, inside). I don't like than :-( REK - ZLIMAS_(KIDIA:KFDIA,1:KLEV,1:NLIMA)=ZLIMASIN_(KIDIA:KFDIA,1:KLEV,1:NLIMA) - - CALL ARO_ADJUST_LIMA (KLEV,IKU,IKL,KFDIA,KLEV,NRR,NLIMA,KSTEP+1,& - & LOSUBG_COND, LOSIGMAS, LOCND2, & - & ZDT,VSIGQSAT,ZZZ_F_,& - & ZRHODJM__(:,1:KLEV),& - & ZRHODREFM__(:,1:KLEV),& - & ZEXNREFM_,& - & ZPABSM__(:,1:KLEV),& - & ZTHM__(:,1:KLEV),& - & ZRM_,& - & ZLIMAM_,& - & ZSIGM_,& - & ZMFM_,ZRC_MF_,& - & ZRI_MF_,ZCF_MF_,& - & ZTHS__(:,1:KLEV),ZRS_,& - & ZLIMAS_,& - & ZSRCS__(:,1:KLEV),ZNEBMNH_,& - & YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH) + ZLIMAS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,1:NLIMA)=ZLIMASIN_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,1:NLIMA) + + CALL ARO_ADJUST_LIMA (YDCPG_OPTS%KFLEVG, IKU, IKL, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, NRR, & + & NLIMA, YDCPG_OPTS%KSTEP+1, LOSUBG_COND, LOSIGMAS, LOCND2, ZDT, VSIGQSAT, ZZZ_F_, ZRHODJM__(:, 1:YDCPG_OPTS%KFLEVG), & + & ZRHODREFM__(:, 1:YDCPG_OPTS%KFLEVG), ZEXNREFM_, ZPABSM__(:, 1:YDCPG_OPTS%KFLEVG), ZTHM__(:, 1:YDCPG_OPTS%KFLEVG), & + & ZRM_, ZLIMAM_, ZSIGM_, ZMFM_, ZRC_MF_, ZRI_MF_, ZCF_MF_, ZTHS__(:, 1:YDCPG_OPTS%KFLEVG), ZRS_, & + & ZLIMAS_, ZSRCS__(:, 1:YDCPG_OPTS%KFLEVG), ZNEBMNH_, YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH & + & ) ELSE -YSPP1%LPERT=.FALSE. -YSPP2%LPERT=.FALSE. -YSPP3%LPERT=.FALSE. - -!SR phasing step, YSPP1 and YSPP2 must be replaced by their values ! CALL ARO_ADJUST (KLON,KIDIA,KFDIA,KLEV,NRR,& !this is the target version - CALL ARO_ADJUST (KFDIA,KIDIA,KFDIA,KLEV,NRR,& - & CFRAC_ICE_ADJUST, CCONDENS, CLAMBDA3, LOSUBG_COND, & - & LOSIGMAS, CMICRO, LOCND2, LHGT_QS, CSUBG_MF_PDF, & - & ZDT,VSIGQSAT,ZZZ_F_,& - & ZRHODJM__(:,1:KLEV),& - & ZEXNREFM_,& - & ZRHODREFM__(:,1:KLEV),& - & ZPABSM__(:,1:KLEV),& - & ZTHM__(:,1:KLEV),& - & ZRM_,ZSIGM_,& - & ZMFM_,ZRC_MF_,& - & ZRI_MF_,ZCF_MF_,& - & ZTHS__(:,1:KLEV),ZRS_,& - & ZSRCS__(:,1:KLEV),ZNEBMNH_,& - & ZICLDFR_,ZWCLDFR_,ZSSIO_,ZSSIU_,ZIFR_,& - & ZHLC_HRC__(:,1:KLEV), ZHLC_HCF__(:,1:KLEV),& - & ZHLI_HRI__(:,1:KLEV), ZHLI_HCF__(:,1:KLEV),& - & YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH,& - & YSPP1, YSPP2) -! & ZSPP_ALL%YSPP_PSIGQSAT,ZSPP_ALL%YSPP_ICE_CLD_WGT) + CALL ARO_ADJUST (YDCPG_BNDS%KFDIA, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, NRR, & + & CFRAC_ICE_ADJUST, CCONDENS, CLAMBDA3, LOSUBG_COND, & + & LOSIGMAS, CMICRO, LOCND2, LHGT_QS, CSUBG_MF_PDF, & + & ZDT, VSIGQSAT, ZZZ_F_, ZRHODJM__(:, 1:YDCPG_OPTS%KFLEVG), & + & ZEXNREFM_, ZRHODREFM__(:, 1:YDCPG_OPTS%KFLEVG), ZPABSM__(:, 1:YDCPG_OPTS%KFLEVG), ZTHM__(:, 1:YDCPG_OPTS%KFLEVG), ZRM_, ZSIGM_, & + & ZMFM_, ZRC_MF_, ZRI_MF_, ZCF_MF_, ZTHS__(:, 1:YDCPG_OPTS%KFLEVG), ZRS_, ZSRCS__(:, 1:YDCPG_OPTS%KFLEVG), & + & ZNEBMNH_, & + & ZICLDFR_,ZWCLDFR_,ZSSIO_,ZSSIU_,ZIFR_,& + & ZHLC_HRC_, ZHLC_HCF_, ZHLI_HRI_, ZHLI_HCF_, & + & YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH,& + & ZSPP_ALL%YSPP_PSIGQSAT,ZSPP_ALL%YSPP_ICE_CLD_WGT) ENDIF - IF (MOD(KSTEP+1,NPRINTFR)==0) THEN + IF (MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN WRITE(NULOUT,*)'apres aro_adjust sous apl_arome' - WRITE(NULOUT,*)'JLEV ZZZ_F_ RHODJM EXNREFM PABSM THM SIGM MFM ' - DO JLEV=1,KLEV+1 + WRITE(NULOUT,*)'JLEV ZZZ_F_ RHODJM EXNREFM PABSM THM SIGM MFM ' + DO JLEV=1,YDCPG_OPTS%KFLEVG WRITE(NULOUT,'(I2,X,7F10.3)') JLEV,ZZZ_F_(NPTP,JLEV),ZRHODJM__(NPTP,JLEV),& & ZEXNREFM_(NPTP,JLEV), ZPABSM__(NPTP,JLEV), ZTHM__(NPTP,JLEV), ZSIGM_(NPTP,JLEV), ZMFM_(NPTP,JLEV) ENDDO WRITE (NULOUT,*)'JLEV rhoQv rhoQc rhoQr rhoQi rhoQs rhoQg' - DO JLEV=1,KLEV + DO JLEV=1,YDCPG_OPTS%KFLEVG WRITE(NULOUT,'(I2,X,6E11.4)') JLEV,ZRS_(NPTP,JLEV,1),& - & ZRS_(NPTP,JLEV,2), ZRS_(NPTP,JLEV,3),ZRS_(NPTP,JLEV,4),ZRS_(NPTP,JLEV,5), ZRS_(NPTP,JLEV,6) + & ZRS_(NPTP,JLEV,2), ZRS_(NPTP,JLEV,3),ZRS_(NPTP,JLEV,4),ZRS_(NPTP,JLEV,5), ZRS_(NPTP,JLEV,6) ENDDO WRITE (NULOUT,*)'JLEV ZRC_MF_ ZRI_MF_ ZCF_MF_ ZTHS__ ZSRCS__ ZNEBMNH_' - DO JLEV=1,KLEV + DO JLEV=1,YDCPG_OPTS%KFLEVG WRITE(NULOUT,'(I2,X,6E11.4)')JLEV,ZRC_MF_(NPTP,JLEV),& & ZRI_MF_(NPTP,JLEV),ZCF_MF_(NPTP,JLEV), ZTHS__(NPTP,JLEV),ZSRCS__(NPTP,JLEV), ZNEBMNH_(NPTP,JLEV) ENDDO ENDIF - DO JLEV=1,KLEV - PCLFS(KIDIA:KFDIA,JLEV)=ZNEBMNH_(KIDIA:KFDIA,JLEV) + DO JLEV=1,YDCPG_OPTS%KFLEVG + YDVARS%A%T1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZNEBMNH_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) ENDDO !adjusted zthm and zrm - DO JLEV = 1, KLEV - DO JLON = KIDIA,KFDIA - ZTHM__(JLON,JLEV)=ZTHS__(JLON,JLEV)*PDT + DO JLEV = 1, YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZTHM__(JLON,JLEV)=ZTHS__(JLON,JLEV)*YDCPG_OPTS%ZDTPHY ENDDO ENDDO DO JRR=1,NRR - DO JLEV = 1, KLEV - DO JLON = KIDIA,KFDIA - ZRM_(JLON,JLEV,JRR)=ZRS_(JLON,JLEV,JRR)*PDT + DO JLEV = 1, YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZRM_(JLON,JLEV,JRR)=ZRS_(JLON,JLEV,JRR)*YDCPG_OPTS%ZDTPHY ENDDO ENDDO ENDDO - - !initialisation de qdm utile pour - !convertir tendance de r en tendance de q + !initialisation de qdm utile pour + !convertir tendance de r en tendance de q IF (NRR==6) THEN - DO JLEV=1,KLEV - DO JLON= KIDIA, KFDIA + DO JLEV=1,YDCPG_OPTS%KFLEVG + DO JLON= YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA ZQDM(JLON,JLEV)=1._JPRB/(1._JPRB+ZRM_(JLON,JLEV,1)+& &ZRM_(JLON,JLEV,2)+ZRM_(JLON,JLEV,3)+ZRM_(JLON,JLEV,4)+ZRM_(JLON,JLEV,5)+& &ZRM_(JLON,JLEV,6) ) ENDDO ENDDO ELSEIF (NRR==7) THEN - DO JLEV=1,KLEV - DO JLON= KIDIA, KFDIA + DO JLEV=1,YDCPG_OPTS%KFLEVG + DO JLON= YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA ZQDM(JLON,JLEV)=1._JPRB/(1._JPRB+ZRM_(JLON,JLEV,1)+& &ZRM_(JLON,JLEV,2)+ZRM_(JLON,JLEV,3)+ZRM_(JLON,JLEV,4)+ZRM_(JLON,JLEV,5)+& &ZRM_(JLON,JLEV,6)+ZRM_(JLON,JLEV,7) ) @@ -1795,8 +1649,8 @@ YSPP3%LPERT=.FALSE. ENDDO ENDIF !reinitialisation des qi - DO JLEV = 1, KLEV - DO JLON = KIDIA,KFDIA + DO JLEV = 1, YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ZQVM(JLON,JLEV)=ZRM_(JLON,JLEV,1)*ZQDM(JLON,JLEV) ZQCM(JLON,JLEV)=ZRM_(JLON,JLEV,2)*ZQDM(JLON,JLEV) ZQRM(JLON,JLEV)=ZRM_(JLON,JLEV,3)*ZQDM(JLON,JLEV) @@ -1807,158 +1661,170 @@ YSPP3%LPERT=.FALSE. ENDDO IF (NRR==7) THEN - DO JLEV = 1,KLEV - DO JLON = KIDIA,KFDIA + DO JLEV = 1,YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ZQHM(JLON,JLEV)=ZRM_(JLON,JLEV,7)*ZQDM(JLON,JLEV) ENDDO ENDDO ELSE - ZQHM(KIDIA:KFDIA,1:KLEV)=0._JPRB + ZQHM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=0._JPRB ENDIF ! Tendances des variables LIMA DO JGFL=1,NLIMA - DO JLEV = 1, KLEV + DO JLEV = 1, YDCPG_OPTS%KFLEVG ! Réinitialisation des variables LIMA - DO JLON=KIDIA,KFDIA - ZLIMAM_(JLON,JLEV,JGFL)=ZLIMAS_(JLON,JLEV,JGFL)*PDT - PTENDLIMA(JLON,JLEV,JGFL)=PTENDLIMA(JLON,JLEV,JGFL)+(ZLIMAS_(JLON,JLEV,JGFL)-ZLIMASIN_(JLON,JLEV,JGFL)) + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZLIMAM_(JLON,JLEV,JGFL)=ZLIMAS_(JLON,JLEV,JGFL)*YDCPG_OPTS%ZDTPHY + ZTENDLIMA(JLON,JLEV,JGFL)=ZTENDLIMA(JLON,JLEV,JGFL)+(ZLIMAS_(JLON,JLEV,JGFL)-ZLIMASIN_(JLON,JLEV,JGFL)) ENDDO ENDDO ENDDO !modif de R et CP - ZQHGM(KIDIA:KFDIA,:)=ZQHM(KIDIA:KFDIA,:)+ZQGM(KIDIA:KFDIA,:) - CALL GPRCP(KLON,KIDIA,KFDIA,KLEV,PQ=ZQVM,PQI=ZQIM,PQL=ZQCM,PQR=ZQRM,PQS=ZQSM,PQG=ZQHGM,PCP=ZCPM,PR=ZRHM) + ZQHGM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)=ZQHM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)+ZQGM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:) + CALL GPRCP(YDCPG_OPTS%KLON, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, PQ=ZQVM, PQI=ZQIM, & + & PQL=ZQCM, PQR=ZQRM, PQS=ZQSM, PQG=ZQHGM, PCP=ZCPM, PR=ZRHM) - DO JLEV = 1,KLEV - DO JLON = KIDIA,KFDIA + DO JLEV = 1,YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ZTM(JLON,JLEV)=ZTHM__(JLON,JLEV)*ZEXNREFM_(JLON,JLEV) !reinitialisation de ZRHODREFM__ (=qd*zrho) - ZRHO=PAPRSFM(JLON,JLEV)/(ZRHM(JLON,JLEV)*ZTM(JLON,JLEV)) + ZRHO=YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(JLON,JLEV)/(ZRHM(JLON,JLEV)*ZTM(JLON,JLEV)) ZRHODREFM__(JLON,JLEV)=ZRHO*ZQDM(JLON,JLEV) ENDDO ENDDO !geopotentiel calculation - ZAPHIM(KIDIA:KFDIA,KLEV)=PAPHIM(KIDIA:KFDIA,KLEV) - CALL GPGEO(KLON,KIDIA,KFDIA,KLEV,ZAPHIM,ZAPHIFM,ZTM,ZRHM,PLNPRM,PALPHM,YDGEOMETRY%YRVERT_GEOM) + ZAPHIM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) + CALL GPGEO(YDCPG_OPTS%KLON, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, ZAPHIM, ZAPHIFM, & + & ZTM, ZRHM, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%LNPR, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%ALPH, YDGEOMETRY%YRVERT_GEOM& + & ) !calcul de l'altitude - DO JLEV = 1, KLEV - DO JLON = KIDIA,KFDIA + DO JLEV = 1, YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ZZZ_(JLON,JLEV)=ZAPHIM(JLON,JLEV)*ZINVG !initialisation de ZZZ_F_ ZZZ_F_(JLON,JLEV)=ZAPHIFM(JLON,JLEV)*ZINVG ! tendency of T - PTENDT(JLON,JLEV)=PTENDT(JLON,JLEV)+(ZTHS__(JLON,JLEV)-ZTHSIN_(JLON,JLEV))*ZEXNREFM_(JLON,JLEV) - ZTENDT(JLON,JLEV)=ZTHS__(JLON,JLEV)-ZTHSIN_(JLON,JLEV) + ZTENDT(JLON,JLEV)=ZTENDT(JLON,JLEV)+(ZTHS__(JLON,JLEV)-ZTHSIN_(JLON,JLEV))*ZEXNREFM_(JLON,JLEV) + ZTENDTT(JLON,JLEV)=ZTHS__(JLON,JLEV)-ZTHSIN_(JLON,JLEV) ENDDO ENDDO - !inversion niveaux tendances des ri et conversion en qi en multipliant par qd + !inversion niveaux tendances des ri et conversion en qi en multipliant par qd DO JR=1,NRR - DO JLEV=1,KLEV - DO JLON=KIDIA,KFDIA - PTENDR(JLON,JLEV,JR)=PTENDR(JLON,JLEV,JR)+(ZRS_(JLON,JLEV,JR)-ZRSIN_(JLON,JLEV,JR))*ZQDM(JLON,JLEV) + DO JLEV=1,YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZTENDRA(JLON,JLEV,JR)=ZTENDRA(JLON,JLEV,JR)+(ZRS_(JLON,JLEV,JR)-ZRSIN_(JLON,JLEV,JR))*ZQDM(JLON,JLEV) ENDDO ENDDO ENDDO !initialisation de ZDZZ_ - DO JLON = KIDIA,KFDIA + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ZDZZ_(JLON,1)=ZAPHIM(JLON,0)*ZINVG-ZZZ_(JLON,1) ENDDO - DO JLEV = 2, KLEV - DO JLON = KIDIA,KFDIA + DO JLEV = 2, YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ZDZZ_(JLON,JLEV)=ZZZ_(JLON,JLEV+IKL)-ZZZ_(JLON,JLEV) ENDDO ENDDO ELSE - ZTM (KIDIA:KFDIA,1:KLEV)=PTM(KIDIA:KFDIA,1:KLEV) - ZRHM(KIDIA:KFDIA,1:KLEV)=PRM(KIDIA:KFDIA,1:KLEV) - ZQVM(KIDIA:KFDIA,1:KLEV)=PQVM(KIDIA:KFDIA,1:KLEV) - ZQIM(KIDIA:KFDIA,1:KLEV)=PQIM(KIDIA:KFDIA,1:KLEV) - ZQCM(KIDIA:KFDIA,1:KLEV)=PQCM(KIDIA:KFDIA,1:KLEV) - ZQRM(KIDIA:KFDIA,1:KLEV)=PQRM(KIDIA:KFDIA,1:KLEV) - ZQSM(KIDIA:KFDIA,1:KLEV)=PQSM(KIDIA:KFDIA,1:KLEV) - ZQGM(KIDIA:KFDIA,1:KLEV)=PQGM(KIDIA:KFDIA,1:KLEV) + ZTM (YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%T(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG) + ZRHM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%R(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG) + ZQVM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%Q(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG) + ZQIM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%I(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG) + ZQCM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%L(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG) + ZQRM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%R(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG) + ZQSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%S(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG) + ZQGM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%G(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG) IF (NRR==7) THEN - ZQHM(KIDIA:KFDIA,1:KLEV)=PQHM(KIDIA:KFDIA,1:KLEV) + ZQHM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%H(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG) ELSE - ZQHM(KIDIA:KFDIA,1:KLEV)=0._JPRB + ZQHM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=0._JPRB ENDIF - ZCPM(KIDIA:KFDIA,KTDIA:KLEV)=PCPM(KIDIA:KFDIA,KTDIA:KLEV) - ZAPHIM(KIDIA:KFDIA,0:KLEV)=PAPHIM(KIDIA:KFDIA,0:KLEV) - ZAPHIFM(KIDIA:KFDIA,1:KLEV)=PAPHIFM(KIDIA:KFDIA,1:KLEV) - ZZZ_(KIDIA:KFDIA,1:KLEV)=PAPHIM(KIDIA:KFDIA,1:KLEV)*ZINVG + ZCPM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KTDIA:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%CP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KTDIA:YDCPG_OPTS%KFLEVG) + ZAPHIM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,0:YDCPG_OPTS%KFLEVG) + ZAPHIFM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG) + ZZZ_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)*ZINVG !initialisation of PCLFS outside LMICRO to be zero in case LMICRO=F - PCLFS(KIDIA:KFDIA,1:KLEV)=0._JPRB + YDVARS%A%T1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=0._JPRB ENDIF ! ADJUSTMENT LMICRO +! ------------------------------------------------------------------ +! NEBULOSITE (CONVECTIVE+STRATIFORME) A TROIS NIVEAUX. +! DIAGNOSTIC OF THREE LEVELS (CONVECTIVE+STRATIFORM) CLOUDINESS. + +! protect cloudiness from being 0 or 1 (needed for ACRANEB2 and ACNPART) +DO JLEV=YDCPG_OPTS%KTDIA,YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZNEB0(JLON,JLEV)=MAX(ZEPSNEB,MIN(1._JPRB-ZEPSNEB,YDVARS%A%T1(JLON,JLEV))) + ENDDO +ENDDO + +! decorrelation depth for cloud overlaps + +IF (LRNUEXP) THEN + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZDECRD(JLON)=RDECRD1+RDECRD2*EXP(-((ASIN(YDVARS%GEOMETRY%GEMU%T0(JLON))-RDECRD3*RDECLI)/RDECRD4)**2) + ENDDO +ENDIF + +! calculate high, medium, low and total cloud cover +CALL ACNPART(YDCST, YDMODEL%YRML_PHY_MF,YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA,YDCPG_OPTS%KLON,NTNEBU,YDCPG_OPTS%KFLEVG,& + & YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI,YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF,YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF,ZDECRD,ZNEB0,& + & YDMF_PHYS%OUT%CLCH, YDMF_PHYS%OUT%CLCM, YDMF_PHYS%OUT%CLCL, YDCPG_MISC%CLCT, ZCLCT_RAD) + IF (LFLEXDIA) THEN - DO JLEV = 1, KLEV - DO JLON=KIDIA,KFDIA - ZTMPAF(JLON,JLEV)=(PTENDT(JLON,JLEV)-ZTENDTBAK(JLON,JLEV))*PDELPM(JLON,JLEV)*ZINVG*ZCPM(JLON,JLEV) + DO JLEV = 1, YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZTMPAF(JLON,JLEV)=(ZTENDT(JLON,JLEV)-ZTENDTBAK(JLON,JLEV))*YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JLEV)*ZINVG*ZCPM(JLON,JLEV) ENDDO ENDDO - IF (LDDH_OMP) THEN - CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMPAF,'TCTADJU',YDDDH) - ELSE - CALL ADD_FIELD_3D(YLDDH,ZTMPAF,'TCTADJU','T','ARP',.TRUE.,.TRUE.) - ENDIF + CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMPAF,'TCTADJU',YDDDH) DO JR=1,NRR CLNAME='T'//CLVARNAME(JR)//'ADJU' - DO JLEV = 1, KLEV - DO JLON=KIDIA,KFDIA - ZTMPAF(JLON,JLEV)=(PTENDR(JLON,JLEV,JR)-ZTENDRBAK(JLON,JLEV,JR))*PDELPM(JLON,JLEV)*ZINVG + DO JLEV = 1, YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZTMPAF(JLON,JLEV)=(ZTENDRA(JLON,JLEV,JR)-ZTENDRA(JLON,JLEV,JR))*YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JLEV)*ZINVG ENDDO ENDDO - IF (LDDH_OMP) THEN - CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMPAF,CLNAME,YDDDH) - ELSE - CALL ADD_FIELD_3D(YLDDH,ZTMPAF,CLNAME,'T','ARP',.TRUE.,.TRUE.) - ENDIF - DO JLEV = 1, KLEV - DO JLON=KIDIA,KFDIA - ZTMPAF(JLON,JLEV)=PCLFS(JLON,JLEV)*PDELPM(JLON,JLEV) + CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMPAF,CLNAME,YDDDH) + DO JLEV = 1, YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZTMPAF(JLON,JLEV)=YDVARS%A%T1(JLON,JLEV)*YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JLEV) ENDDO ENDDO - IF (LDDH_OMP) THEN - CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMPAF,'VNT',YDDDH) - ELSE - CALL ADD_FIELD_3D(YLDDH,ZTMPAF,'VNT','V','ARP',.TRUE.,.TRUE.) - ENDIF + CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMPAF,'VNT',YDDDH) ENDDO ! specific to new data flow for diagnostics - IF (LDDH_OMP) THEN - DO JLEV = 1, KLEV - ZCON1(KIDIA:KFDIA,JLEV) = 1.0_JPRB - ZCON2(KIDIA:KFDIA,JLEV) = ZQDM(KIDIA:KFDIA,JLEV) - ENDDO - DO JLEV = 1, KLEV - DO JLON=KIDIA,KFDIA - ZCON3(JLON,JLEV) = PCPM(JLON,JLEV)*ZEXNREFM_(JLON,JLEV) - ENDDO + DO JLEV = 1, YDCPG_OPTS%KFLEVG + ZCON1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) = 1.0_JPRB + ZCON2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) = ZQDM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) + ENDDO + DO JLEV = 1, YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZCON3(JLON,JLEV) = YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%CP(JLON,JLEV)*ZEXNREFM_(JLON,JLEV) ENDDO - ! missing interface !!! REK - CALL ARO_SUINTBUDGET_OMP(KLON,KLEV,KSTEP,ZCON1,ZCON2,ZCON3,YDDDH) - ELSE - ! missing interface !!! REK - CALL ARO_SUINTBUDGET(KLON,KLEV,KSTEP,KFDIA,ZQDM,ZEXNREFM_,PCPM) - ENDIF + ENDDO + ! missing interface !!! REK + CALL ARO_SUINTBUDGET_OMP(YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, YDCPG_OPTS%KSTEP, ZCON1, ZCON2, & + & ZCON3, YDDDH) + ENDIF -DO JLEV = 1, KLEV-1 - DO JLON = KIDIA,KFDIA +DO JLEV = 1, YDCPG_OPTS%KFLEVG-1 + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ZDZZ_F_(JLON,JLEV)=ZZZ_F_(JLON,JLEV)-ZZZ_F_(JLON,JLEV-IKL) ENDDO ENDDO -DO JLON = KIDIA,KFDIA - ZDZZ_F_(JLON,KLEV)=ZZZ_F_(JLON,KLEV)-POROG(JLON)*ZINVG +DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZDZZ_F_(JLON,YDCPG_OPTS%KFLEVG)=ZZZ_F_(JLON,YDCPG_OPTS%KFLEVG)-YDVARS%GEOMETRY%OROG%T0(JLON)*ZINVG ENDDO @@ -1966,22 +1832,22 @@ ENDDO ! 5 - COMPUTE DUST PROPERTIES FOR RADIATION IF LRDUST=T ! -------------------------------------------------------------------- IF (LRDUST) THEN - PEZDIAG(KIDIA:KFDIA,1:KLEV,IOFF_MFSHAL:NGFL_EZDIAG)=0.0_JPRB + ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,IOFF_MFSHAL:NGFL_EZDIAG)=0.0_JPRB ! input dust scalar concentration in ppp from IEZDIAG_CHEM=NGFL_EZDIAG-IOFF_MFSHAL+1 ! Swapp because IN and OUT will be needed simultaneously CALL SWAP_SVM ! input dust scalar concentration in ppp from - CALL ARO_MNHDUST (IKL,KFDIA,KLEV,NGFL_EXT, PDT,ZSVMIN_,ZZZ_,ZDZZ_,& - & ZPABSM__(:,1:KLEV),ZTHM__(:,1:KLEV),ZRHODREFM__(:,1:KLEV),& - & NSWB_MNH,KSTEP+1,ZSVM_,ZPIZA_DST_,ZCGA_DST_,ZTAUREL_DST_,ZAERD_,IEZDIAG_CHEM,& - & ZPEZDIAG_(:,:,IOFF_MFSHAL:NGFL_EZDIAG) ) - PEZDIAG(KIDIA:KFDIA,1:KLEV,IOFF_MFSHAL:NGFL_EZDIAG)=ZPEZDIAG_(KIDIA:KFDIA,1:KLEV,IOFF_MFSHAL:NGFL_EZDIAG) + CALL ARO_MNHDUST (IKL, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, NGFL_EXT, YDCPG_OPTS%ZDTPHY, ZSVMIN_, ZZZ_, ZDZZ_, & + & ZPABSM__(:, 1:YDCPG_OPTS%KFLEVG), ZTHM__(:, 1:YDCPG_OPTS%KFLEVG), ZRHODREFM__(:, 1:YDCPG_OPTS%KFLEVG), & + & NSWB_MNH, YDCPG_OPTS%KSTEP+1, ZSVM_, ZPIZA_DST_, ZCGA_DST_, ZTAUREL_DST_, ZAERD_, IEZDIAG_CHEM, ZPEZDIAG_(:, :, IOFF_MFSHAL:NGFL_EZDIAG)& + & ) + ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,IOFF_MFSHAL:NGFL_EZDIAG)=ZPEZDIAG_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,IOFF_MFSHAL:NGFL_EZDIAG) ! return to tendency DO JGFL=1, NGFL_EXT - DO JLEV = 1,KLEV - DO JLON = KIDIA,KFDIA - PTENDEXT(JLON,JLEV,JGFL)=PTENDEXT(JLON,JLEV,JGFL)+(ZSVM_(JLON,JLEV,JGFL)-ZSVMIN_(JLON,JLEV,JGFL))*ZINVDT + DO JLEV = 1,YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZTENDEXT(JLON,JLEV,JGFL)=ZTENDEXT(JLON,JLEV,JGFL)+(ZSVM_(JLON,JLEV,JGFL)-ZSVMIN_(JLON,JLEV,JGFL))*ZINVDT ENDDO ENDDO ENDDO @@ -1989,33 +1855,35 @@ ENDIF ! LRDUST IF (LSFORCS) THEN ! <== Surface forcing for MUSC - ZTSURF(KIDIA:KFDIA) = PTM(KIDIA:KFDIA,KLEV) - ZTN(KIDIA:KFDIA) = PTM(KIDIA:KFDIA,KLEV) - ZQS(KIDIA:KFDIA) = PQVM(KIDIA:KFDIA,KLEV) - DO JLON=KIDIA,KFDIA - ZRHODREFM(JLON) = PAPRSFM(JLON,KLEV)/(PTM(JLON,KLEV)*PRM(JLON,KLEV)) - ZTHETAS(JLON) = ZTSURF(JLON)*(RATM/PAPRSM(JLON,KLEV))**RKAPPA + ZTSURF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) = YDMF_PHYS_BASE_STATE%T(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) + ZTN(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) = YDMF_PHYS_BASE_STATE%T(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) + ZQS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) = YDMF_PHYS_BASE_STATE%Q(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZRHODREFM(JLON) = YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(JLON,YDCPG_OPTS%KFLEVG)/(YDMF_PHYS_BASE_STATE%T(JLON,YDCPG_OPTS%KFLEVG)*YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%R(JLON,YDCPG_OPTS%KFLEVG)) + ZTHETAS(JLON) = ZTSURF(JLON)*(RATM/YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(JLON,YDCPG_OPTS%KFLEVG))**RKAPPA ENDDO LLAROME=.TRUE. - CALL SURF_IDEAL_FLUX(YDRIP,YDPHY0,YDPHYDS, LLAROME, KIDIA , KFDIA , KLON, PAPHIFM(:,KLEV), & - & ZRHODREFM, PSFORC,ZTN,ZTSURF,PLSM,PQVM(:,KLEV), PUM(:,KLEV), PVM(:,KLEV), ZTHETAS, & - & ZSFTH_, ZSFRV_, ZSFU_, ZSFV_) + CALL SURF_IDEAL_FLUX(YDRIP, YDPHY0, YDPHYDS, LLAROME, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, & + & YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF(:, YDCPG_OPTS%KFLEVG), ZRHODREFM, YDMF_PHYS_SURF%GSD_SFO%PGROUP, & + & ZTN, ZTSURF, YDMF_PHYS_SURF%GSD_VF%PLSM, YDMF_PHYS_BASE_STATE%Q(:, YDCPG_OPTS%KFLEVG), YDMF_PHYS_BASE_STATE%U(:, YDCPG_OPTS%KFLEVG), & + & YDMF_PHYS_BASE_STATE%V(:, YDCPG_OPTS%KFLEVG), ZTHETAS, ZSFTH_, ZSFRV_, ZSFU_, ZSFV_) !* Compute PBL-diagnostics ZCAPE(:)=0._JPRB ZDCAPE(:)=0._JPRB - CALL ACCLDIA(YDXFU,YDPHY,YDMODEL%YRML_PHY_MF%YRPHY2,YDTOPH,KIDIA,KFDIA,KLON,KLEV,PUCLS,& - & PVCLS,PUM(:,1:KLEV),PVM(:,1:KLEV),ZCAPE,ZDCAPE,ZTKEM(:,1:KLEV),PAPHIFM(:,1:KLEV),POROG,& - & PUGST,PVGST,PPBLH,ICLPH) + CALL ACCLDIA(YDCST, YDCPG_OPTS%LXCLP, YDCPG_OPTS%LXTGST, YDCPG_OPTS%LXXGST, YDPHY, YDMODEL%YRML_PHY_MF%YRPHY2, YDTOPH, YDCPG_BNDS%KIDIA, & + & YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, YDMF_PHYS%OUT%UCLS, YDMF_PHYS%OUT%VCLS, YDMF_PHYS_BASE_STATE%U(:, 1:YDCPG_OPTS%KFLEVG), & + & YDMF_PHYS_BASE_STATE%V(:, 1:YDCPG_OPTS%KFLEVG), ZCAPE, ZDCAPE, ZTKEM(:, 1:YDCPG_OPTS%KFLEVG), YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF(:, 1:YDCPG_OPTS%KFLEVG), & + & YDVARS%GEOMETRY%OROG%T0, YDMF_PHYS%OUT%UGST, YDMF_PHYS%OUT%VGST, YDMF_PHYS%OUT%CLPH, ICLPH) - PPBLH(KIDIA:KFDIA)=MIN(XMAXLM,MAX(XMINLM,PPBLH(KIDIA:KFDIA))) + YDMF_PHYS%OUT%CLPH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=MIN(XMAXLM,MAX(XMINLM,YDMF_PHYS%OUT%CLPH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA))) ENDIF ! <== End of surface forcing for MUSC ! -------------------------------------------------------------------- -! 6 - RADIATION LRAYFM (IFS) or LRAY (ACRANEB2) +! 6 - RADIATION LRAYFM (IFS) or LRAY (ACRANEB2) ! -------------------------------------------------------------------- IF (LRAYFM.OR.LRAY) THEN ! prepare some input for both radiation schemes at every time step @@ -2027,61 +1895,35 @@ IF (LRAYFM.OR.LRAY) THEN ENDIF ! compute saturated specific humidity - CALL ACTQSAT ( YDPHY,KIDIA,KFDIA,KLON,NTQSAT,KLEV, PAPRSFM, ZCPM, ZQVM, ZTM,& - & ZGEOSLC, ZLH, ZLSCPE, ZQSAT, ZQW, PRH, ZTW) - - IF (YSPP_CONFIG%LSPP.AND.YSPP_CONFIG%LPERT_RADGR) THEN - IF (YSPP_CONFIG%LLNN_MEAN1.OR.YSPP_CONFIG%LLNN_MEAN1_RADGR) THEN - ZMU = -0.5_JPRB * (YSPP_CONFIG%CMPERT_RADGR * YSPP_CONFIG%SDEV)**2 - ELSE - ZMU = 0._JPRB - ENDIF - DO JLON=KIDIA,KFDIA - ZVAL = RADGR*EXP(ZMU+YSPP_CONFIG%CMPERT_RADGR*PGP2DSPP(JLON,YSPP%MP_RADGR)) - ZRADGR(JLON) = MAX(YSPP_CONFIG%CLIP_RADGR(1),MIN(ZVAL,YSPP_CONFIG%CLIP_RADGR(2))) - ENDDO - IF ( YSPP_CONFIG%IEZDIAG_POS > 0 ) THEN - JKO=2*YSPP%MP_RADGR-1 - JKE=2*YSPP%MP_RADGR - DO JLON=KIDIA,KFDIA - PEZDIAG(JLON,JKO,YSPP_CONFIG%IEZDIAG_POS) = PGP2DSPP(JLON,YSPP%MP_RADGR) - PEZDIAG(JLON,JKE,YSPP_CONFIG%IEZDIAG_POS) = ZRADGR(JLON) - ENDDO - ENDIF + CALL ACTQSAT (YDCST, YDPHY, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, NTQSAT, YDCPG_OPTS%KFLEVG, & + & YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF, ZCPM, ZQVM, ZTM, ZGEOSLC, ZLH, ZLSCPE, ZQSAT, ZQW, YDCPG_MISC%RH, & + & ZTW) + + IF (ZSPP_ALL%YSPP_RADGR%LPERT) THEN + CALL APPLY_SPP(ZSPP_ALL%YSPP_RADGR, & + & YDCPG_OPTS%KLON,YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA, & + & RADGR,ZRADGR) ELSE - DO JLON=KIDIA,KFDIA + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ZRADGR(JLON) = RADGR ENDDO ENDIF - IF (YSPP_CONFIG%LSPP.AND.YSPP_CONFIG%LPERT_RADSN) THEN - IF (YSPP_CONFIG%LLNN_MEAN1.OR.YSPP_CONFIG%LLNN_MEAN1_RADSN) THEN - ZMU = -0.5_JPRB * (YSPP_CONFIG%CMPERT_RADSN * YSPP_CONFIG%SDEV)**2 - ELSE - ZMU = 0._JPRB - ENDIF - DO JLON=KIDIA,KFDIA - ZVAL = RADSN*EXP(ZMU+YSPP_CONFIG%CMPERT_RADSN*PGP2DSPP(JLON,YSPP%MP_RADSN)) - ZRADSN(JLON) = MAX(YSPP_CONFIG%CLIP_RADSN(1),MIN(ZVAL,YSPP_CONFIG%CLIP_RADSN(2))) - ENDDO - IF ( YSPP_CONFIG%IEZDIAG_POS > 0 ) THEN - JKO=2*YSPP%MP_RADSN-1 - JKE=2*YSPP%MP_RADSN - DO JLON=KIDIA,KFDIA - PEZDIAG(JLON,JKO,YSPP_CONFIG%IEZDIAG_POS) = PGP2DSPP(JLON,YSPP%MP_RADSN) - PEZDIAG(JLON,JKE,YSPP_CONFIG%IEZDIAG_POS) = ZRADSN(JLON) - ENDDO - ENDIF + IF (ZSPP_ALL%YSPP_RADSN%LPERT) THEN + CALL APPLY_SPP(ZSPP_ALL%YSPP_RADSN, & + & YDCPG_OPTS%KLON,YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA, & + & RADSN,ZRADSN) ELSE - DO JLON=KIDIA,KFDIA + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ZRADSN(JLON) = RADSN ENDDO ENDIF - ! initialisation des humidite (dans le rayonnement, l'eau liquide nuageuse + + ! initialisation des humidite (dans le rayonnement, l'eau liquide nuageuse ! et la glace sont donne par des hu par rapport au gaz. ! (qi/qa+qv pour ice par ex. C'est donc different de ri) - DO JLEV=KTDIA,KLEV - DO JLON=KIDIA,KFDIA + DO JLEV=YDCPG_OPTS%KTDIA,YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ZQICE(JLON,JLEV)= MAX(0.0_JPRB,& & (ZQIM(JLON,JLEV) + ZQSM(JLON,JLEV)*ZRADSN(JLON) + ZQGM(JLON,JLEV)*ZRADGR(JLON))/& & (1.0_JPRB-ZQIM(JLON,JLEV)-ZQCM(JLON,JLEV)-ZQRM(JLON,JLEV)& @@ -2096,117 +1938,162 @@ IF (LRAYFM.OR.LRAY) THEN ENDDO ! store cloud water content for RTTOV - IF (YIRAD%LGP) PQIRAD(KIDIA:KFDIA,:) = ZQICE(KIDIA:KFDIA,:) - IF (YLRAD%LGP) PQLRAD(KIDIA:KFDIA,:) = ZQLIQ(KIDIA:KFDIA,:) + IF (YIRAD%LGP) YDVARS%IRAD%T1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:) = ZQICE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:) + IF (YLRAD%LGP) YDVARS%LRAD%T1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:) = ZQLIQ(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:) ! Hannu Savijarvi diffuse -> direct albedo correction from hlradia, - ! Assuming that SURFEX does not make difference between + ! Assuming that SURFEX does not make difference between ! dir/dif albedo as surfex/SURFEX/albedo_from_nir_vis.F90 defines ! PSCA_ALB(:,:) = PDIR_ALB(:,:) - + ! Albedo dans les intervalles, direct (parallel) et diffus (diffuse). IF (NSW==6.OR.NSW==1) THEN IF (LLMSE) THEN DO JSW=1,NSW - ZALBP(KIDIA:KFDIA,JSW)=PGPAR(KIDIA:KFDIA,MALBDIR-1+JSW) - ZALBD(KIDIA:KFDIA,JSW)=PGPAR(KIDIA:KFDIA,MALBSCA-1+JSW) + ZALBP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=YDCPG_GPAR%ALBDIR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW) + ZALBD(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=YDCPG_GPAR%ALBSCA(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW) IF (LHLRADUPD) THEN - DO JLON=KIDIA,KFDIA - ZSALBCOR=0.2_JPRB/(1._JPRB+PMU0(JLON))-0.12_JPRB + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZSALBCOR=0.2_JPRB/(1._JPRB+ZRDG_MU0(JLON))-0.12_JPRB ZALBP(JLON,JSW)=ZALBD(JLON,JSW)+ZSALBCOR ENDDO ENDIF ENDDO ELSEIF (LSFORCS) THEN DO JSW=1,NSW - ZALBP(KIDIA:KFDIA,JSW)=RALB_FORC - ZALBD(KIDIA:KFDIA,JSW)=RALB_FORC + ZALBP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=RALB_FORC + ZALBD(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=RALB_FORC ! direct>diffuse correction might be applied to RALB_FORC,too: ! ZALBP(JLON,JSW)=RALB_FORC+ZSALBCOR ENDDO ELSE !pour pouvoir tourner sans la surface DO JSW=1,NSW - ZALBP(KIDIA:KFDIA,JSW)=PALBIN(KIDIA:KFDIA) - ZALBD(KIDIA:KFDIA,JSW)=PALBIN(KIDIA:KFDIA) + ZALBP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=YDMF_PHYS_SURF%GSD_VF%PALBF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) + ZALBD(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=YDMF_PHYS_SURF%GSD_VF%PALBF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) ! ZALBP(JLON,JSW)=PALBIN(JLON)+ZSALBCOR ENDDO ENDIF - ! Spectral average albedo done with RSUN2 weights, + ! Spectral average albedo done with RSUN2 weights, ! to be applied for HLRADIA, ACRANEB2 which use a single solar spectral band IF (LHLRADUPD) THEN - ZALBP1(KIDIA:KFDIA)=0._JPRB - ZALBD1(KIDIA:KFDIA)=0._JPRB + ZALBP1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB + ZALBD1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB DO JSW=1,NSW - DO JLON=KIDIA,KFDIA + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ZALBP1(JLON)=ZALBP1(JLON)+RSUN2(JSW)*ZALBP(JLON,JSW) ZALBD1(JLON)=ZALBD1(JLON)+RSUN2(JSW)*ZALBD(JLON,JSW) ENDDO ENDDO ELSE - ZALBP1(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MALBDIR) - ZALBD1(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MALBSCA) + ZALBP1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%ALBDIR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1) + ZALBD1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%ALBSCA(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1) ENDIF - ELSE - CALL ABOR1 ('ALBEDO FOR NSW/= 1 or 6 not defined in apl_arome') - ENDIF ! all albedo operations IF (LLMSE) THEN - ZEMIS(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MVEMIS) - ZTSURF(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MVTS) + ZEMIS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%VEMIS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) + ZTSURF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%VTS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) ! protection for E Zone, Where surface scheme send back EMIS and T =0 ! the protection in aro_ground_paramn is not sufficient !!! WHY ?? - DO JLON=KIDIA,KFDIA + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA IF (ZEMIS(JLON)==0._JPRB) THEN ZEMIS(JLON)=1.0_JPRB ZTSURF(JLON)=288.0_JPRB ENDIF ENDDO ELSEIF (LSFORCS) THEN - ZEMIS(KIDIA:KFDIA)=REMIS_FORC + ZEMIS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=REMIS_FORC ELSE - ZEMIS(KIDIA:KFDIA)=0.5_JPRB ! value 0.5 is suspicious - ZTSURF(KIDIA:KFDIA)=ZTM(KIDIA:KFDIA,KLEV) + ZEMIS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0.5_JPRB ! value 0.5 is suspicious + ZTSURF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=ZTM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) ENDIF !LLMSE EMIS ! initialization of aerosols IF (LRAY.AND.NRAY == 2.AND.LRADFLEX.AND.LRSTAER) THEN ! old ("standard") aerosols for LRAY only - ZAER(KIDIA:KFDIA,1:KTDIA-1,1)=0._JPRB - DO JLEV=KTDIA-1,KLEV + ZAER(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KTDIA-1,1)=0._JPRB + DO JLEV=YDCPG_OPTS%KTDIA-1,YDCPG_OPTS%KFLEVG ZVETAH(JLEV)=STPREH(JLEV)/VP00 ENDDO - ZAEO=AERCS1*ZVETAH(KTDIA-1)+AERCS3*ZVETAH(KTDIA-1)**3+AERCS5*ZVETAH(KTDIA-1)**5 - DO JLEV=KTDIA,KLEV + ZAEO=AERCS1*ZVETAH(YDCPG_OPTS%KTDIA-1)+AERCS3*ZVETAH(YDCPG_OPTS%KTDIA-1)**3+AERCS5*ZVETAH(YDCPG_OPTS%KTDIA-1)**5 + DO JLEV=YDCPG_OPTS%KTDIA,YDCPG_OPTS%KFLEVG ZAEN=AERCS1*ZVETAH(JLEV)+AERCS3*ZVETAH(JLEV)**3+AERCS5*ZVETAH(JLEV)**5 - ZAER(KIDIA:KFDIA,JLEV,1)=ZAEN-ZAEO + ZAER(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,1)=ZAEN-ZAEO ZAEO=ZAEN ENDDO - ZAER(KIDIA:KFDIA,1:KLEV,2:6)=0._JPRB + ZAER(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,2:6)=0._JPRB ELSE - IF (NAER >= 1 ) THEN + IF (NAER >= 1 .AND. NAERMACC == 0) THEN IF(YSD_VAD%NUMFLDS >= 4) THEN - CALL RADAER ( YDMODEL%YRML_PHY_RAD%YREAERD,YDERAD,YDPHY, KIDIA , KFDIA , KLON , KLEV,& - & PAPRSM,PAPRSFM,ZTM,ZTSURF,PAESEA,PAELAN,PAESOO,PAEDES,PAESUL,PAEVOL,ZAER,ZAERINDS) + CALL RADAER ( YDMODEL%YRML_PHY_RAD%YREAERD, YDERAD, YDPHY, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, & + & YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF, & + & ZTM, ZTSURF, YDMF_PHYS_SURF%GSD_VA%PSEA, YDMF_PHYS_SURF%GSD_VA%PLAN, YDMF_PHYS_SURF%GSD_VA%PSOO, & + & YDMF_PHYS_SURF%GSD_VA%PDES, YDMF_PHYS_SURF%GSD_VA%PSUL, YDMF_PHYS_SURF%GSD_VA%PVOL, ZAER, & + & ZAERINDS) ELSE WRITE(NULOUT,*) 'YSD_VAD%NUMFLDS SHOULD BE >= 4, IT IS: ',YSD_VAD%NUMFLDS CALL ABOR1('APL_AROME: PB AEROSOLS!') ! NB : this abort excludes the use of radact. REK. ENDIF + ELSE + !AEROSOLS from MACC (NAERMACC=1) + ZDUM=1._JPRB + ! in E Zone, there are YDVARS%GEOMETRY%GEMU%T0 < 0. + ZGELAM=YDVARS%GEOMETRY%GELAM%T0 + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + IF (ZGELAM(JLON)<0._JPRB) THEN + ZGELAM(JLON)=ZGELAM(JLON)+2*RPI + ENDIF + ENDDO + ! Init ZCHTIX + ! Warning YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE is 0:YDCPG_OPTS%KFLEVG here whereas in radintg it is + ! 1:YDCPG_OPTS%KFLEVG+1 + DO JK=2,YDCPG_OPTS%KFLEVG + ZCAPH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK)=YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK-1) + ZTH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK)=(ZTM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK-1)*YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK-1)& + & *(YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK)-YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK-1))& + & +ZTM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK)*YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK)*(YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK-1)& + & -YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK-1)))& + &*(1.0_JPRB/(YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK-1)*(YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK)-YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK-1)))) + ZCHTIX(1:YDCPG_OPTS%KLON,JK)=ZTH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JK) + ENDDO + ! QUANTITIES AT BOUNDARIES + ZCAPH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)=YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,0) + ZCAPH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG+1)=YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG) + ZTH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)=ZTM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)-YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)*(ZTM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)& + & -ZTH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,2))/(YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)-YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)) + ZTH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG+1)=ZTSURF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) + ZCHTIX(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG+1)=ZTH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG+1) + ZCHTIX(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)=ZTH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1) + IAERO=SIZE(ZAERO,3) + ZGEMU_D=REAL(YDVARS%GEOMETRY%GEMU%T0,JPRD) + CALL RADACT(YDMODEL%YRML_PHY_RAD%YREAERD,YDERAD,YDMODEL%YRML_PHY_AER%YREAERSNK,YDRIP, & + & YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG,& + & 1 , YDCPG_OPTS%KLON , YDCPG_OPTS%KLON ,0 , 1,& + & YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE , ZGELAM, ZGEMU_D, YDVARS%GEOMETRY%GECLO%T0, YDVARS%GEOMETRY%GESLO%T0, ZCHTIX,& + & ZQVM , ZQSAT , ZDUM ,& + & ZRAER , ZAERO,ZROZ ) + DO JAE=1,6 + DO JK=1,YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZAER(JLON,JK,JAE)=ZRAER(JLON,JAE,JK) + ENDDO + ENDDO + ENDDO ENDIF IF (LRDUST) THEN ! We use the extinction coefficient explicitly solved by ARO_MNHDUST - ZAER(KIDIA:KFDIA,1:KLEV,3) = ZAERD_(KIDIA:KFDIA,1:KLEV) + ZAER(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,3) = ZAERD_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG) ENDIF ENDIF @@ -2215,156 +2102,143 @@ IF (LRAYFM.OR.LRAY) THEN ! initialization of ozone IF (NOZOCL == 1) THEN ! as in IFS - CALL RADOZC(KIDIA,KFDIA,KLON,KLEV,1,KLON,0,PAPRSM,PGEMU,ZROZ) - DO JK=1,KLEV - DO JLON=KIDIA,KFDIA - ZQO3(JLON,JK)=ZROZ(JLON,JK)/PDELPM(JLON,JK) + CALL RADOZC(YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, 1, YDCPG_OPTS%KLON, & + & 0, YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE, YDVARS%GEOMETRY%GEMU%T0, ZROZ) + DO JK=1,YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZQO3(JLON,JK)=ZROZ(JLON,JK)/YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JK) ENDDO ENDDO ELSEIF (NOZOCL == 2) THEN ! as in ARPEGE (from clim profiles) - CALL SUOZON(KIDIA,KFDIA,KLON,KLEV,ZQO3,.FALSE.,PAPRSM,PRDELPM,LO3ABC,PVO3ABC) + CALL SUOZON(YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, ZQO3, & + & .FALSE., YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%RDELP, LO3ABC, YDMF_PHYS_SURF%GSD_VC%PA, & + & YDMF_PHYS_SURF%GSD_VC%PB, YDMF_PHYS_SURF%GSD_VC%PC) ENDIF + IF (NOZOCL==3.OR.NOZOCL==4) THEN ! Clims MACC + CALL RADGHG (YDERAD,YDRIP,YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA,YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KLON, & + & YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE,YDVARS%GEOMETRY%GEMU%T0,& + & ZQCO2, ZQCH4, ZQN2O, ZQNO2, ZQC11, ZQC12, ZROZ, ZQC22, ZQCL4 ) + DO JK=1,YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZQO3(JLON,JK)=ZROZ(JLON,JK) + ENDDO + ENDDO + ENDIF + ELSE DO JSW=1,NSW - ZALBP(KIDIA:KFDIA,JSW)=0._JPRB - ZALBD(KIDIA:KFDIA,JSW)=0._JPRB + ZALBP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=0._JPRB + ZALBD(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=0._JPRB ENDDO ENDIF !of preparation of input for LRAYFM, LRAY at every time step - + IF (LRAYFM) THEN ! Intermittent call to radiation interface - IF (MOD(KSTEP,NRADFR) == 0) THEN - CALL RECMWF (YDGEOMETRY%YRDIMV, YDMODEL, & - & KIDIA , KFDIA , KLON , KLEV , & - & ZALBD , ZALBP , PAPRSM , PAPRSFM , & - & PCLFS , ZQO3 , ZAER , PDELPM , ZEMIS , & - & PMU0M , ZQV , ZQSAT , ZQICE , ZQLIQ , & - & ZQSM , ZQRM , PLSM , ZTM , ZTSURF , & - & PGP2DSPP, PEZDIAG, & - & PEMTD , PEMTU , PTRSO , PFRTHC , PFRTH , & - & PFRSOC , PFRSO , ZZS_FSWDIR, ZZS_FSWDIF, ZFSDNN , & - & ZFSDNV , ZCTRSO, ZCEMTR , ZTRSOD , ZTRSODIR, & - & ZTRSODIF, ZPIZA_DST_,ZCGA_DST_,ZTAUREL_DST_,ZAERINDS,& - & PGELAM , PGEMU ,PGPAR , & - & PMU0LU , ZALBD1 , ZFRSOLU) + IF (MOD(YDCPG_OPTS%KSTEP,NRADFR) == 0) THEN + CALL RECMWF (YDGEOMETRY%YRDIMV, YDMODEL, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, & + & YDCPG_OPTS%KSW, & + & NOZOCL ,NAERMACC, IAERO, & + & ZALBD, ZALBP, YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF, & + & YDVARS%A%T1, ZQO3,ZQCO2 , ZQCH4 , ZQN2O , & + & ZQNO2 , ZQC11 , ZQC12 , ZQC22 , ZQCL4 , & + & ZAER, ZAERO, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP, ZEMIS, & + & ZRDG_MU0M, ZQV, ZQSAT, & + & ZQICE, ZQLIQ, ZQSM, ZQRM, YDMF_PHYS_SURF%GSD_VF%PLSM, ZTM, ZTSURF, YDMF_PHYS%RAD%EMTD, YDMF_PHYS%RAD%EMTU, & + & YDMF_PHYS%RAD%TRSW, YDMF_PHYS%OUT%FRTHC, YDMF_PHYS%OUT%FRTH, YDMF_PHYS%OUT%FRSOC, YDMF_PHYS%OUT%FRSO, & + & ZZS_FSWDIR, ZZS_FSWDIF, ZFSDNN, ZFSDNV, ZCTRSO, ZCEMTR, ZTRSOD, ZTRSODIR, ZTRSODIF, & + & ZPIZA_DST_, ZCGA_DST_, ZTAUREL_DST_, ZAERINDS, YDVARS%GEOMETRY%GELAM%T0, YDVARS%GEOMETRY%GEMU%T0, & + & YDCPG_GPAR%SWDIR, YDCPG_GPAR%SWDIF, ZRDG_MU0LU, ZALBD1, ZFRSOLU, & + & YSPP_RSWINHF=ZSPP_ALL%YSPP_RSWINHF, YSPP_RLWINHF=ZSPP_ALL%YSPP_RLWINHF) ELSE - IF (LLMSE) THEN - DO JSW=1,NSW - ZTRSODIR(KIDIA:KFDIA,JSW)=PGPAR(KIDIA:KFDIA,MSWDIR+JSW-1) - ZTRSODIF(KIDIA:KFDIA,JSW)=PGPAR(KIDIA:KFDIA,MSWDIF+JSW-1) - ENDDO + IF (LLMSE) THEN + DO JSW=1,NSW + ZTRSODIR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=YDCPG_GPAR%SWDIR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW) + ZTRSODIF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=YDCPG_GPAR%SWDIF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW) + ENDDO ENDIF ZCTRSO(:,:)=0._JPRB ENDIF ! daand: radflex IF (LRADFLEX) THEN - YLRADPROC => NEWINTPROC(YDPROCSET,'Radiation') - ZFRSO => NEWINTFIELD(YLRADPROC,KLON,KLEV,'FRSO','H','F') - ZFRTH => NEWINTFIELD(YLRADPROC,KLON,KLEV,'FRTH','H','F') + YLRADPROC => NEWINTPROC(YLPROCSET,'Radiation') + ZFRSO => NEWINTFIELD(YLRADPROC,YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,'FRSO','H','F') + ZFRTH => NEWINTFIELD(YLRADPROC,YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,'FRTH','H','F') ENDIF - DO JLEV=1,KLEV - ZTENT(KIDIA:KFDIA,JLEV)=0.0_JPRB + DO JLEV=1,YDCPG_OPTS%KFLEVG + ZTENT(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0.0_JPRB ENDDO - ZSUDU(KIDIA:KFDIA)=0.0_JPRB + ZSUDU(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0.0_JPRB - CALL RADHEAT& - & ( YDERAD,YDERDI,YDMODEL%YRML_PHY_MF, KIDIA , KFDIA , KLON , KLEV,& - & PAPRSM , ZEMIS , PEMTD , PMU0, ZQVM,& - & ZTENT , PTRSO , ZTRSOD , ZTSURF , PDT,& - & ZTRSODIR,ZTRSODIF, ZALBD , ZALBP,& - ! daand: radflex; replaced PFRSO and PRFTH by pointers - & ZFRSO , ZFRTH , PFRSODS, PFRTHDS, ZCEMTR , ZCTRSO , PFRSOC , PFRTHC,& - & ZSUDU , ZSDUR , ZDSRP , ZZS_FSWDIR , ZZS_FSWDIF ,& - & PFRSOPS, ZFRSOFS, PFRSOPT ) + CALL RADHEAT ( YDERAD, YDERDI, YDMODEL%YRML_PHY_MF, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, & + & YDCPG_OPTS%KFLEVG, YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE, ZEMIS, YDMF_PHYS%RAD%EMTD, ZRDG_MU0, ZQVM, & + & ZTENT, YDMF_PHYS%RAD%TRSW, ZTRSOD, ZTSURF, YDCPG_OPTS%ZDTPHY, ZTRSODIR, ZTRSODIF, ZALBD, ZALBP, ZFRSO, & + & ZFRTH, YDMF_PHYS%OUT%FRSODS, YDMF_PHYS%OUT%FRTHDS, ZCEMTR, ZCTRSO, YDMF_PHYS%OUT%FRSOC, YDMF_PHYS%OUT%FRTHC, & + & ZSUDU, ZSDUR, ZDSRP, ZZS_FSWDIR, ZZS_FSWDIF, YDMF_PHYS%OUT%FRSOPS, ZFRSOFS, YDMF_PHYS%OUT%FRSOPT & + & ) ! daand: radflex IF (LRADFLEX) THEN ! store for further calculations and diagnostics ! warning : pointers. REK - PFRSO(:,:,1)=ZFRSO - PFRTH(:,:,1)=ZFRTH + YDMF_PHYS%OUT%FRSO(:,:,1)=ZFRSO + YDMF_PHYS%OUT%FRTH(:,:,1)=ZFRTH ELSE ! daand: if LRADFLEX, the contribution to temperature is done by ! cptend_flex/cputqy ! update temperature tendency by radiative contribution - DO JLEV=1,KLEV - DO JLON = KIDIA, KFDIA - PTENDT(JLON,JLEV)=PTENDT(JLON,JLEV)+ZTENT(JLON,JLEV) + DO JLEV=1,YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA + ZTENDT(JLON,JLEV)=ZTENDT(JLON,JLEV)+ZTENT(JLON,JLEV) ENDDO ENDDO ENDIF - DO JLON = KIDIA, KFDIA + DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA ! update sunshine duration [s] - PSDUR(JLON)=PSDUR(JLON)+ZSDUR(JLON)*TSTEP + !YDMF_PHYS_SURF%GSD_VD%PSUND(JLON)=YDMF_PHYS_SURF%GSD_VD%PSUND(JLON)+ZSDUR(JLON)*TSTEP + YDMF_PHYS_SURF%GSD_VD%PSUND(JLON)=YDMF_PHYS_SURF%GSD_VD%PSUND(JLON)+ZSDUR(JLON)*ZADTMS ! fix stepx case ! Estimate of the direct normal irradiance, with securities - IF (PMU0(JLON) > 3.0E-02_JPRB) THEN - PFRSDNI(JLON)=MAX(0.0_JPRB,PFRSOPS(JLON)/PMU0(JLON)) + IF (ZRDG_MU0(JLON) > 3.0E-02_JPRB) THEN + YDMF_PHYS%OUT%FRSDNI(JLON)=MAX(0.0_JPRB,YDMF_PHYS%OUT%FRSOPS(JLON)/ZRDG_MU0(JLON)) ELSE - PFRSDNI(JLON)=MAX(0.0_JPRB,PFRSOPS(JLON)) + YDMF_PHYS%OUT%FRSDNI(JLON)=MAX(0.0_JPRB,YDMF_PHYS%OUT%FRSOPS(JLON)) ENDIF ENDDO - IF( MOD(KSTEP+1,NPRINTFR)==0) THEN + IF( MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN WRITE(NULOUT,*)'sous apl_arome apres rayonnement ZTENT=',ZTENT(NPTP,30:41) IF (LLMSE) THEN DO JSW=1, NSW WRITE(NULOUT,*)'ZSFSWDIR ZSFSWDIF ZFSDNN ZFSDNV PFRSO',& - & ZZS_FSWDIR(NPTP,JSW),ZZS_FSWDIF(NPTP,JSW),ZFSDNN(NPTP), ZFSDNV(NPTP),PFRSO(NPTP,KLEV,1) + & ZZS_FSWDIR(NPTP,JSW),ZZS_FSWDIF(NPTP,JSW),ZFSDNN(NPTP), ZFSDNV(NPTP),YDMF_PHYS%OUT%FRSO(NPTP,YDCPG_OPTS%KFLEVG,1) WRITE(NULOUT,*)'ZALBD ZALBP',ZALBD(NPTP,JSW),ZALBP(NPTP,JSW) ENDDO ENDIF WRITE(NULOUT,*)ZFSDNN(NPTP),ZFSDNV(NPTP) - WRITE (NULOUT,*)'TSURF EMIS ZFRTH',ZTSURF(NPTP),ZEMIS(NPTP),PFRTHDS(NPTP) + WRITE (NULOUT,*)'TSURF EMIS ZFRTH',ZTSURF(NPTP),ZEMIS(NPTP),YDMF_PHYS%OUT%FRTHDS(NPTP) ENDIF IF (LFLEXDIA) THEN - IF (LDDH_OMP) THEN - CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,PFRSO(:,:,1),'FCTRAYSO',YDDDH) - CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,PFRTH(:,:,1),'FCTRAYTH',YDDDH) - ELSE - CALL ADD_FIELD_3D(YLDDH,PFRSO(:,:,1),'FCTRAYSO','F','ARP',.TRUE.,.TRUE.) - CALL ADD_FIELD_3D(YLDDH,PFRTH(:,:,1),'FCTRAYTH','F','ARP',.TRUE.,.TRUE.) - ENDIF + CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH, YDMF_PHYS%OUT%FRSO(:, :, 1), 'FCTRAYSO', YDDDH& + & ) + CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH, YDMF_PHYS%OUT%FRTH(:, :, 1), 'FCTRAYTH', YDDDH& + & ) ENDIF ELSE - PFRSOC(KIDIA:KFDIA,0:1)=0.0_JPRB - PFRTHC(KIDIA:KFDIA,0:1)=0.0_JPRB + YDMF_PHYS%OUT%FRSOC(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,0:1)=0.0_JPRB + YDMF_PHYS%OUT%FRTHC(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,0:1)=0.0_JPRB ENDIF ! LRAYFM -! ------------------------------------------------------------------ -! NEBULOSITE (CONVECTIVE+STRATIFORME) A TROIS NIVEAUX. -! DIAGNOSTIC OF THREE LEVELS (CONVECTIVE+STRATIFORM) CLOUDINESS. - -! protect cloudiness from being 0 or 1 (needed for ACRANEB2 and ACNPART) -DO JLEV=KTDIA,KLEV - DO JLON=KIDIA,KFDIA - ZNEB0(JLON,JLEV)=MAX(ZEPSNEB,MIN(1._JPRB-ZEPSNEB,PCLFS(JLON,JLEV))) - ENDDO -ENDDO - -! decorrelation depth for cloud overlaps - -IF (LRNUEXP) THEN - DO JLON=KIDIA,KFDIA - ZDECRD(JLON)=RDECRD1+RDECRD2*EXP(-((ASIN(PGEMU(JLON))-RDECRD3*RDECLI)/RDECRD4)**2) - ENDDO -ENDIF - -! calculate high, medium, low and total cloud cover -CALL ACNPART(YDMODEL%YRML_PHY_MF,KIDIA,KFDIA,KLON,NTNEBU,KLEV,& - & PAPHIM,PAPHIFM,PAPRSFM,ZDECRD,ZNEB0,& - & PCLCH,PCLCM,PCLCL,PCLCT,ZCLCT_RAD) IF (LRAY.AND.NRAY == 2.AND.LRADFLEX) THEN @@ -2376,8 +2250,8 @@ IF (LRAY.AND.NRAY == 2.AND.LRADFLEX) THEN ! initialization of cloud ice, cloud liquid and specific humidity ! (with respect to moist air, i.e. excluding hydrometeors) - DO JLEV=KTDIA,KLEV - DO JLON=KIDIA,KFDIA + DO JLEV=YDCPG_OPTS%KTDIA,YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ZQICE(JLON,JLEV)=MAX(0.0_JPRB, ZQIM(JLON,JLEV)/& & (1.0_JPRB-ZQIM(JLON,JLEV)-ZQCM(JLON,JLEV)-ZQRM(JLON,JLEV)& & -ZQGM(JLON,JLEV)-ZQSM(JLON,JLEV)-ZQHM(JLON,JLEV))) @@ -2391,46 +2265,63 @@ IF (LRAY.AND.NRAY == 2.AND.LRADFLEX) THEN ENDDO ! store cloud water content for RTTOV - IF (YIRAD%LGP) PQIRAD(KIDIA:KFDIA,:) = ZQICE(KIDIA:KFDIA,:) - IF (YLRAD%LGP) PQLRAD(KIDIA:KFDIA,:) = ZQLIQ(KIDIA:KFDIA,:) + IF (YIRAD%LGP) YDVARS%IRAD%T1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:) = ZQICE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:) + IF (YLRAD%LGP) YDVARS%LRAD%T1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:) = ZQLIQ(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:) ! initialization of ozone IF (NOZOCL == 1) THEN ! as in IFS - CALL RADOZC(KIDIA,KFDIA,KLON,KLEV,1,KLON,0,PAPRSM,PGEMU,ZROZ) - DO JK=1,KLEV - DO JLON=KIDIA,KFDIA - ZQO3(JLON,JK)=ZROZ(JLON,JK)/PDELPM(JLON,JK) + CALL RADOZC(YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, 1, YDCPG_OPTS%KLON, & + & 0, YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE, YDVARS%GEOMETRY%GEMU%T0, ZROZ) + DO JK=1,YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZQO3(JLON,JK)=ZROZ(JLON,JK)/YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JK) ENDDO ENDDO ELSEIF (NOZOCL == 2) THEN ! as in ARPEGE (from clim profiles) - CALL SUOZON(KIDIA,KFDIA,KLON,KLEV,ZQO3,.FALSE.,PAPRSM,PRDELPM,LO3ABC,PVO3ABC) + CALL SUOZON(YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, ZQO3, & + & .FALSE., YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%RDELP, LO3ABC, YDMF_PHYS_SURF%GSD_VC%PA, & + & YDMF_PHYS_SURF%GSD_VC%PB, YDMF_PHYS_SURF%GSD_VC%PC) + ENDIF + IF (NOZOCL==3.OR.NOZOCL==4) THEN ! Clims MACC + CALL RADGHG (YDERAD,YDRIP,YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA,YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KLON, & + & YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE,YDVARS%GEOMETRY%GEMU%T0,& + & ZQCO2, ZQCH4, ZQN2O, ZQNO2, ZQC11, ZQC12, ZROZ, ZQC22, ZQCL4 ) + DO JK=1,YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZQO3(JLON,JK)=ZROZ(JLON,JK) + ENDDO + ENDDO ENDIF + ! initialization of aerosols IF (LRAY.AND.NRAY == 2.AND.LRADFLEX.AND.LRSTAER) THEN - ZAER(KIDIA:KFDIA,1:KTDIA-1,1)=0._JPRB + ZAER(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KTDIA-1,1)=0._JPRB ! old ("standard") aerosols - DO JLEV=KTDIA-1,KLEV + DO JLEV=YDCPG_OPTS%KTDIA-1,YDCPG_OPTS%KFLEVG ZVETAH(JLEV)=STPREH(JLEV)/VP00 ENDDO - ZAEO=AERCS1*ZVETAH(KTDIA-1)+AERCS3*ZVETAH(KTDIA-1)**3+AERCS5*ZVETAH(KTDIA-1)**5 - DO JLEV=KTDIA,KLEV + ZAEO=AERCS1*ZVETAH(YDCPG_OPTS%KTDIA-1)+AERCS3*ZVETAH(YDCPG_OPTS%KTDIA-1)**3+AERCS5*ZVETAH(YDCPG_OPTS%KTDIA-1)**5 + DO JLEV=YDCPG_OPTS%KTDIA,YDCPG_OPTS%KFLEVG ZAEN=AERCS1*ZVETAH(JLEV)+AERCS3*ZVETAH(JLEV)**3+AERCS5*ZVETAH(JLEV)**5 - ZAER(KIDIA:KFDIA,JLEV,1)=ZAEN-ZAEO + ZAER(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,1)=ZAEN-ZAEO ZAEO=ZAEN ENDDO - ZAER(KIDIA:KFDIA,1:KLEV,2:6)=0._JPRB + ZAER(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,2:6)=0._JPRB ELSE IF (NAER >= 1) THEN IF (YSD_VAD%NUMFLDS >= 4) THEN ! initialisation of aerosols as in ARPEGE (from clim files) - CALL RADAER (YDMODEL%YRML_PHY_RAD%YREAERD,YDERAD,YDPHY, KIDIA , KFDIA , KLON , KLEV,& - & PAPRSM,PAPRSFM,ZTM,ZTSURF,PAESEA,PAELAN,PAESOO,PAEDES,PAESUL,PAEVOL,ZAER,ZAERINDS) + CALL RADAER (YDMODEL%YRML_PHY_RAD%YREAERD, YDERAD, YDPHY, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, & + & YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF, & + & ZTM, ZTSURF, YDMF_PHYS_SURF%GSD_VA%PSEA, YDMF_PHYS_SURF%GSD_VA%PLAN, YDMF_PHYS_SURF%GSD_VA%PSOO, & + & YDMF_PHYS_SURF%GSD_VA%PDES, YDMF_PHYS_SURF%GSD_VA%PSUL, YDMF_PHYS_SURF%GSD_VA%PVOL, ZAER, & + & ZAERINDS) ELSE CALL ABOR1('APL_AROME: PB AEROSOLS!') ! NB : this abort excludes the use of radact. REK. @@ -2439,19 +2330,19 @@ IF (LRAY.AND.NRAY == 2.AND.LRADFLEX) THEN IF (LRDUST) THEN ! We uses the extinction coefficient explicitely solved by ARO_MNHDUST - ZAER(KIDIA:KFDIA,1:KLEV,3) = ZAERD_(KIDIA:KFDIA,1:KLEV) + ZAER(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,3) = ZAERD_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG) ENDIF ENDIF ! (LRAY.AND.NRAY == 2.AND.LRADFLEX.AND.LRSTAER) THEN ! get diffuse and direct surface albedo, emissivity and temperature IF (.NOT.LHLRADUPD) THEN - ZALBD1(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MALBSCA) - ZALBP1(KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MALBDIR) + ZALBD1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%ALBSCA(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1) + ZALBP1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%ALBDIR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1) ENDIF - ZEMIS (KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MVEMIS) - ZTSURF (KIDIA:KFDIA)=PGPAR(KIDIA:KFDIA,MVTS) - DO JLON=KIDIA,KFDIA + ZEMIS (YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%VEMIS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) + ZTSURF (YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDCPG_GPAR%VTS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ! protection of E-zone (not to have zero emissivity and T_surf there) IF (ZEMIS(JLON) == 0._JPRB) THEN ZEMIS (JLON)= 1._JPRB @@ -2462,343 +2353,238 @@ IF (LRAY.AND.NRAY == 2.AND.LRADFLEX) THEN !+++ End of redundant input preparations for ACRANEB ! initialization of CO2(+), differs from IFS radiation scheme! - ZQCO2(KIDIA:KFDIA,1:KLEV)=QCO2 + ZQCO2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=QCO2 ! daand: radflex - YLRADPROC => NEWINTPROC(YDPROCSET,'Radiation') - ZFRSO => NEWINTFIELD(YLRADPROC,KLON,KLEV, 'FRSO','H','F') - ZFRTH => NEWINTFIELD(YLRADPROC,KLON,KLEV, 'FRTH','H','F') + YLRADPROC => NEWINTPROC(YLPROCSET,'Radiation') + ZFRSO => NEWINTFIELD(YLRADPROC,YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG, 'FRSO','H','F') + ZFRTH => NEWINTFIELD(YLRADPROC,YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG, 'FRTH','H','F') ! call radiation scheme - IJN=KLON - CALL ACRANEB2(YDERDI,YDRIP,YDMODEL%YRML_PHY_MF,& - & KIDIA,KFDIA,KLON,NTRADI,KLEV,IJN,KSTEP,KNFRRC,& - & PAPRSM,PAPRSFM,PCPM,PRM,PDELPM,ZNEB0,& - & ZQV,ZQCO2,ZQICE,ZQLIQ,ZQO3,PTM,& - & ZALBD1,ZALBP1,ZEMIS,PGELAM,PGEMU,PMU0,PMU0LU,ZTSURF, & - & ZDECRD,ZCLCT_RAD,& - & PGDEOSI,PGUEOSI,PGMU0,PGMU0_MIN,PGMU0_MAX,& - & PGDEOTI,PGDEOTI2,PGUEOTI,PGUEOTI2,PGEOLT,PGEOXT,& - & PGRPROX,PGMIXP,PGFLUXC,PGRSURF,PSDUR,& - & ZFRSO,ZFRTH,& - & PFRSOC,PFRTHC,ZFRSODS,PFRSOPS,ZFRSOLU,PFRTHDS,ZAER) + IJN=YDCPG_OPTS%KLON + CALL ACRANEB2(YDERDI, YDRIP, YDMODEL%YRML_PHY_MF, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, & + & NTRADI, YDCPG_OPTS%KFLEVG, IJN, YDCPG_OPTS%KSTEP, YDCFU%NFRRC, YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE, & + & YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF, YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%CP, YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%R, & + & YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP, ZNEB0, ZQV, ZQCO2, ZQICE, ZQLIQ, ZQO3, YDMF_PHYS_BASE_STATE%T, & + & ZALBD1, ZALBP1, ZEMIS, YDVARS%GEOMETRY%GELAM%T0, YDVARS%GEOMETRY%GEMU%T0, ZRDG_MU0, ZRDG_MU0LU, & + & ZTSURF, ZDECRD, ZCLCT_RAD, YDMF_PHYS%OPT%GDEOSI, YDMF_PHYS%OPT%GUEOSI, YDMF_PHYS%OPT%GMU0, YDMF_PHYS%OPT%GMU0_MIN, & + & YDMF_PHYS%OPT%GMU0_MAX, YDMF_PHYS%OPT%GDEOTI, YDMF_PHYS%OPT%GDEOTI2, YDMF_PHYS%OPT%GUEOTI, YDMF_PHYS%OPT%GUEOTI2, & + & YDMF_PHYS%OPT%GEOLT, YDMF_PHYS%OPT%GEOXT, YDMF_PHYS%OPT%GRPROX, YDMF_PHYS%OPT%GMIXP, YDMF_PHYS%OPT%GFLUXC, & + & YDMF_PHYS%OPT%GRSURF, YDMF_PHYS_SURF%GSD_VD%PSUND, ZFRSO, ZFRTH, YDMF_PHYS%OUT%FRSOC, YDMF_PHYS%OUT%FRTHC, & + & ZFRSODS, YDMF_PHYS%OUT%FRSOPS, ZFRSOLU, YDMF_PHYS%OUT%FRTHDS, ZAER) ! daand: radflex ! store for further calculations and diagnostics ! warning : pointers. REK - PFRSO(:,:,1)=ZFRSO - PFRTH(:,:,1)=ZFRTH + YDMF_PHYS%OUT%FRSO(:,:,1)=ZFRSO + YDMF_PHYS%OUT%FRTH(:,:,1)=ZFRTH ! extract surface fluxes - DO JLON=KIDIA,KFDIA - PFRSODS(JLON)=ZFRSODS(JLON)+PFRSOPS(JLON) ! downward surface sw flux + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + YDMF_PHYS%OUT%FRSODS(JLON)=ZFRSODS(JLON)+YDMF_PHYS%OUT%FRSOPS(JLON) ! downward surface sw flux ENDDO IF (LLMSE) THEN IF (LHLRADUPD) THEN DO JSW = 1,NSW - DO JLON=KIDIA,KFDIA - ZZS_FSWDIR(JLON,JSW) = PFRSOPS(JLON)*RSUN2(JSW) + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZZS_FSWDIR(JLON,JSW) = YDMF_PHYS%OUT%FRSOPS(JLON)*RSUN2(JSW) ZZS_FSWDIF(JLON,JSW) = ZFRSODS(JLON)*RSUN2(JSW) ENDDO ENDDO ELSE - ZZS_FSWDIR(KIDIA:KFDIA,1)=PFRSOPS(KIDIA:KFDIA) ! direct surface swdn flux - ZZS_FSWDIF(KIDIA:KFDIA,1)=ZFRSODS(KIDIA:KFDIA) ! diffuse surface swdn flux + ZZS_FSWDIR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)=YDMF_PHYS%OUT%FRSOPS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) ! direct surface swdn flux + ZZS_FSWDIF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1)=ZFRSODS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) ! diffuse surface swdn flux ENDIF ENDIF ! Estimate of the direct normal irradiance, with securities - PFRSDNI(KIDIA:KFDIA)=PFRSOPS(KIDIA:KFDIA) - DO JLON = KIDIA, KFDIA - IF (PMU0(JLON) > 3.0E-02_JPRB) THEN - PFRSDNI(JLON)=PFRSOPS(JLON)/PMU0(JLON) + YDMF_PHYS%OUT%FRSDNI(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS%OUT%FRSOPS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) + DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA + IF (ZRDG_MU0(JLON) > 3.0E-02_JPRB) THEN + YDMF_PHYS%OUT%FRSDNI(JLON)=YDMF_PHYS%OUT%FRSOPS(JLON)/ZRDG_MU0(JLON) ENDIF ENDDO - DO JLON = KIDIA, KFDIA - PFRSDNI(JLON)=MAX(0.0_JPRB,PFRSDNI(JLON)) + DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA + YDMF_PHYS%OUT%FRSDNI(JLON)=MAX(0.0_JPRB,YDMF_PHYS%OUT%FRSDNI(JLON)) ENDDO IF (LFLEXDIA) THEN - IF (LDDH_OMP) THEN - CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,PFRSO(:,:,1),'FCTRAYSO',YDDDH) - CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,PFRTH(:,:,1),'FCTRAYSO',YDDDH) - ELSE - CALL ADD_FIELD_3D(YLDDH,PFRSO(:,:,1),'FCTRAYSO','F','ARP',.TRUE.,.TRUE.) - CALL ADD_FIELD_3D(YLDDH,PFRTH(:,:,1),'FCTRAYTH','F','ARP',.TRUE.,.TRUE.) - ENDIF + CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH, YDMF_PHYS%OUT%FRSO(:, :, 1), 'FCTRAYSO', YDDDH& + & ) + CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH, YDMF_PHYS%OUT%FRTH(:, :, 1), 'FCTRAYSO', YDDDH& + & ) ENDIF ENDIF IF (.NOT.(LRAY.AND.NRAY == 2.AND.LRADFLEX).AND..NOT.LRAYFM) THEN DO JSW = 1,NSW - ZZS_FSWDIR(KIDIA:KFDIA,JSW) = 0._JPRB - ZZS_FSWDIF(KIDIA:KFDIA,JSW) = 0._JPRB + ZZS_FSWDIR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW) = 0._JPRB + ZZS_FSWDIF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW) = 0._JPRB ENDDO - PFRSOPS(KIDIA:KFDIA)=0._JPRB + YDMF_PHYS%OUT%FRSOPS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB ENDIF IF (LFLEXDIA) THEN - CALL ARO_STARTBU( KIDIA, KFDIA, KLEV, NRR,NGFL_EXT,ZRHODJM__(:,1:KLEV),& - & ZUS__(:,1:KLEV), ZVS__(:,1:KLEV), ZWS__(:,1:KLEV), ZTHS__(:,1:KLEV), & - & ZRS_, ZTKES_, YDDDH,YDMODEL%YRML_DIAG%YRLDDH,YDMODEL%YRML_DIAG%YRMDDH) + CALL ARO_STARTBU( YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, NRR, NGFL_EXT, ZRHODJM__(:, 1:YDCPG_OPTS%KFLEVG), & + & ZUS__(:, 1:YDCPG_OPTS%KFLEVG), ZVS__(:, 1:YDCPG_OPTS%KFLEVG), ZWS__(:, 1:YDCPG_OPTS%KFLEVG), ZTHS__(:, 1:YDCPG_OPTS%KFLEVG), & + & ZRS_, ZTKES_, YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH) ENDIF ! ------------------------------------------------------------------ -! 7 - CONVECTION. +! 7 - CONVECTION. ! -------------------------------------------------------------------- IF(LKFBCONV) THEN ! No swapp needed becaus IN and OUT are not needed simultaneously - CALL BRI2ACCONV(YDMODEL%YRML_PHY_MF,YDGEOMETRY%YREGEO,KIDIA,KFDIA,KFDIA,KLEV,PGM(KIDIA:KFDIA),& - & ZPABSM__(:,1:KLEV),ZZZ_F_, ZTM(KIDIA:KFDIA,:), ZRM_(:,:,1),ZRM_(:,:,2), ZRM_(:,:,4), & - & ZRHODREFM__(:,1:KLEV), ZUM__(:,1:KLEV),ZVM__(:,1:KLEV), ZWM__(:,1:KLEV),ZMFS_,& - & ZCVTENDT_, ZCVTENDRV_,ZCVTENDRC_, ZCVTENDRI_,ZCVTENDPR_, ZCVTENDPRS_ & - & ) + CALL BRI2ACCONV(YDMODEL%YRML_PHY_MF, YDGEOMETRY%YREGEO, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_BNDS%KFDIA, & + & YDCPG_OPTS%KFLEVG, YDVARS%GEOMETRY%GM%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZPABSM__(:, 1:YDCPG_OPTS%KFLEVG), & + & ZZZ_F_, ZTM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, :), ZRM_(:, :, 1), ZRM_(:, :, 2), ZRM_(:, :, 4), ZRHODREFM__(:, 1:YDCPG_OPTS%KFLEVG), & + & ZUM__(:, 1:YDCPG_OPTS%KFLEVG), ZVM__(:, 1:YDCPG_OPTS%KFLEVG), ZWM__(:, 1:YDCPG_OPTS%KFLEVG), & + & ZMFS_, ZCVTENDT_, ZCVTENDRV_, ZCVTENDRC_, ZCVTENDRI_, ZCVTENDPR_, ZCVTENDPRS_ ) - IF(MOD(KSTEP+1,NPRINTFR)==0) THEN + IF(MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN WRITE(NULOUT,*)"Pluie conv au sol", ZCVTENDPR_(NPTP), & - & MAXVAL(ZCVTENDPR_(KIDIA:KFDIA)) ,MINVAL(ZCVTENDPR_(KIDIA:KFDIA)) + & MAXVAL(ZCVTENDPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)) ,MINVAL(ZCVTENDPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)) ENDIF - DO JLEV = 1,KLEV - DO JLON = KIDIA, KFDIA - PTENDT(JLON,JLEV)=PTENDT(JLON,JLEV) + ZCVTENDT_(JLON,JLEV) - PTENDR(JLON,JLEV,1) = PTENDR(JLON,JLEV,1) + ZCVTENDRV_(JLON,JLEV)*ZQDM(JLON,JLEV) - PTENDR(JLON,JLEV,2) = PTENDR(JLON,JLEV,2) + ZCVTENDRC_(JLON,JLEV)*ZQDM(JLON,JLEV) - PTENDR(JLON,JLEV,4) = PTENDR(JLON,JLEV,4) + ZCVTENDRI_(JLON,JLEV)*ZQDM(JLON,JLEV) + DO JLEV = 1,YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA + ZTENDT(JLON,JLEV)=ZTENDT(JLON,JLEV) + ZCVTENDT_(JLON,JLEV) + ZTEND_Q(JLON,JLEV) = ZTEND_Q(JLON,JLEV) + ZCVTENDRV_(JLON,JLEV)*ZQDM(JLON,JLEV) + ZTEND_L(JLON,JLEV) = ZTEND_L(JLON,JLEV) + ZCVTENDRC_(JLON,JLEV)*ZQDM(JLON,JLEV) + ZTEND_I(JLON,JLEV) = ZTEND_I(JLON,JLEV) + ZCVTENDRI_(JLON,JLEV)*ZQDM(JLON,JLEV) ZRS_(JLON,JLEV,1)=ZRS_(JLON,JLEV,1)+ZCVTENDRV_(JLON,JLEV) ZRS_(JLON,JLEV,2)=ZRS_(JLON,JLEV,2)+ZCVTENDRC_(JLON,JLEV) ZRS_(JLON,JLEV,4)=ZRS_(JLON,JLEV,4)+ZCVTENDRI_(JLON,JLEV) - ZTHS__(JLON,JLEV)=ZTHS__(JLON,JLEV)+ZCVTENDT_(JLON,JLEV)*(RATM/PAPRSFM(JLON,JLEV))**(RD/RCPD) + ZTHS__(JLON,JLEV)=ZTHS__(JLON,JLEV)+ZCVTENDT_(JLON,JLEV)*(RATM/YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(JLON,JLEV))**(RD/RCPD) ENDDO ENDDO - DO JLON =KIDIA, KFDIA + DO JLON =YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA ZINPRR_(JLON)=ZINPRR_(JLON)+ZCVTENDPR_(JLON)-ZCVTENDPRS_(JLON) - ZACPRR_(JLON)=ZACPRR_(JLON)+(ZCVTENDPR_(JLON)-ZCVTENDPRS_(JLON))*PDT + ZACPRR_(JLON)=ZACPRR_(JLON)+(ZCVTENDPR_(JLON)-ZCVTENDPRS_(JLON))*YDCPG_OPTS%ZDTPHY ZINPRS_(JLON)=ZINPRS_(JLON)+ZCVTENDPRS_(JLON) - ZACPRS_(JLON)=ZACPRS_(JLON)+ZCVTENDPRS_(JLON)*PDT + ZACPRS_(JLON)=ZACPRS_(JLON)+ZCVTENDPRS_(JLON)*YDCPG_OPTS%ZDTPHY ENDDO ! avance temporelle et inversion niveau pour ZMFS_ - ! on utilise PSIGS pour le flux de masse pour la condensation sous maille + ! on utilise PSIGS pour le flux de masse pour la condensation sous maille ! car PSIGS n est utilise que si LOSIGMAS=T IF (LOSUBG_COND.AND..NOT.LOSIGMAS) THEN - PSIGS(KIDIA:KFDIA,1:KLEV)=ZMFS_(KIDIA:KFDIA,1:KLEV) + YDVARS%SRC%T1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=ZMFS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG) ENDIF - IF(MOD(KSTEP+1,NPRINTFR)==0) THEN + IF(MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN WRITE(NULOUT,*)"aps CONV, TENRV, TENRC, TENRI" - DO JLEV=1,KLEV - WRITE(NULOUT,*)PTENDR(NPTP,JLEV,1),PTENDR(NPTP,JLEV,2),PTENDR(NPTP,JLEV,4) + DO JLEV=1,YDCPG_OPTS%KFLEVG + WRITE(NULOUT,*)ZTEND_Q(NPTP,JLEV),ZTEND_L(NPTP,JLEV),ZTEND_I(NPTP,JLEV) ENDDO ENDIF - CALL ARO_CONVBU(KFDIA,KLEV,NRR,ZRHODJM__(:,1:KLEV),ZRS_,ZTHS__(:,1:KLEV), & - & YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH) + CALL ARO_CONVBU(YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, NRR, ZRHODJM__(:, 1:YDCPG_OPTS%KFLEVG), ZRS_, & + & ZTHS__(:, 1:YDCPG_OPTS%KFLEVG), YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH) ENDIF ! ------------------------------------------------------------------ -! 8 - SURFACE. +! 8 - SURFACE. ! -------------------------------------------------------------------- IF (LLMSE) THEN -! A loop around SURFEX in order to test OpenMP - - SURFEX_LOOP : DO ISURFEX = 1, NSURFEX_ITER - -! Initialisations +! Initialisations - DO JLON=KIDIA,KFDIA - ZZS_(JLON)=POROG(JLON)*ZINVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZZS_(JLON)=YDVARS%GEOMETRY%OROG%T0(JLON)*ZINVG ENDDO - DO JLEV = 1,KLEV - DO JLON=KIDIA,KFDIA - ZDEPTH_HEIGHT_(JLON,JLEV)=ZZZ_F_(JLON,JLEV)-ZZS_(JLON) + DO JLEV = 1,YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZDEPTH_HEIGHT_(JLON,JLEV)=ZZZ_F_(JLON,JLEV)-ZZS_(JLON) ENDDO ENDDO - IF (MINVAL(ZDEPTH_HEIGHT_(KIDIA:KFDIA,IKB)) <= 0._JPRB) THEN - DO JLON=KIDIA,KFDIA + IF (MINVAL(ZDEPTH_HEIGHT_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,IKB)) <= 0._JPRB) THEN + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA IF (ZDEPTH_HEIGHT_(JLON,IKB) <= 0._JPRB) THEN - WRITE (NULOUT,*)'sous apl_arome pb height en', JLON,ZAPHIFM(JLON,KLEV),POROG(JLON) + WRITE (NULOUT,*)'sous apl_arome pb height en', JLON,ZAPHIFM(JLON,YDCPG_OPTS%KFLEVG),YDVARS%GEOMETRY%OROG%T0(JLON) ENDIF ENDDO ENDIF ! Can't use a section of pointer. An explicit copy shows, by the way, that a copy is needed ! because data is not contiguous. REK - ZSVMB_(KIDIA:KFDIA,1:NGFL_EXT)=ZSVM_(KIDIA:KFDIA,IKB,1:NGFL_EXT) - - IF (LSURFEX_CRITICAL) THEN - -!$OMP CRITICAL (ARO_GROUND_PARAM_LOCK) - - IF (LLMSE_PARAM) THEN - CALL ARO_GROUND_PARAM( KBL,KGPCOMP,& - & KFDIA,KIDIA,KFDIA,KSTEP,& - & NRR,NSW,NGFL_EXT,NDGUNG, NDGUXG, NDLUNG, NDLUXG,LSURFEX_KFROM,& - & LMPA,CCOUPLING,LDXFUMSE,& - & NINDAT,ZRHGMT,ZSTATI,RSOVR,RCODEC,RSIDEC,& - & PINDX(KIDIA:KFDIA),PINDY(KIDIA:KFDIA),& - & ZUM__(:,IKB),& - & ZVM__(:,IKB),& - & ZTM(KIDIA:KFDIA,KLEV),ZRM_(:,IKB,1),& - & ZSVMB_,& - & RCARDI,ZRHODREFM__(:,IKB),& - & ZPABSM__(:,IKB),PAPRSM(KIDIA:KFDIA,KLEV),& - & ZDTMSE,ZDEPTH_HEIGHT_(:,IKB),ZZS_, XZSEPS,& - & PMU0(KIDIA:KFDIA),PMU0N(KIDIA:KFDIA),PGELAM(KIDIA:KFDIA),& - & PGEMU(KIDIA:KFDIA),XSW_BANDS,& - & ZINPRR_NOTINCR_,ZINPRS_NOTINCR_,& - & ZINPRG_NOTINCR_,& - & PFRTHDS(KIDIA:KFDIA),ZZS_FSWDIF(KIDIA:KFDIA,1:NSW),& - & ZZS_FSWDIR(KIDIA:KFDIA,1:NSW),& - & ZCFAQ_, ZCFATH_, ZCFAU_,ZCFBQ_, ZCFBTH_, ZCFBU_,ZCFBV_,& - & ZSFTH_,ZSFRV_,& - & ZSFSV_,ZSFCO2_,& - & ZSFU_,ZSFV_,& - & ZALBP(KIDIA:KFDIA,1:NSW),ZALBD(KIDIA:KFDIA,1:NSW),& - & ZEMIS(KIDIA:KFDIA),ZTSURF(KIDIA:KFDIA),PFRTH(KIDIA:KFDIA,KLEV,1)) - - ENDIF - - IF (LRCO2) THEN - ZSFSV_(KIDIA:KFDIA,NSV_CO2)= ZSFCO2_(KIDIA:KFDIA) -!print*,' FLUX CO2 =', MINVAL(ZSFSV_(KIDIA:KFDIA,NSV_CO2)),& -! & MAXVAL(ZSFSV_(KIDIA:KFDIA,NSV_CO2)) - ENDIF - -!!!!! TEST DDH ATTENTION -!ZSFRV_(KIDIA:KFDIA) = 0._JPRB - - IF (LLMSE_DIAG) THEN - - CALL ARO_GROUND_DIAG( KBL, KGPCOMP,& - & KFDIA,KIDIA,KFDIA,KLEV, IKL,& - & NDGUNG, NDGUXG, NDLUNG, NDLUXG, LSURFEX_KFROM,& - & ZZS_,ZSFRV_,& - & ZUM__(:,IKTB:IKTE),& - & ZVM__(:,IKTB:IKTE),& - & ZDEPTH_HEIGHT_(:,IKTB:IKTE),& - & PFRTH(KIDIA:KFDIA,KLEV,1),PFRSO(KIDIA:KFDIA,KLEV,1),& - & PINDX(KIDIA:KFDIA),PINDY(KIDIA:KFDIA),& - & ZQS(KIDIA:KFDIA),ZGZ0_,ZGZ0H_,& - & PTCLS(KIDIA:KFDIA),PQCLS(KIDIA:KFDIA),PHUCLS(KIDIA:KFDIA),& - & PUCLS(KIDIA:KFDIA),PVCLS(KIDIA:KFDIA),& - & PNUCLS(KIDIA:KFDIA),PNVCLS(KIDIA:KFDIA),& - & PFCLL(KIDIA:KFDIA,1),PFCLN(KIDIA:KFDIA,1),& - & PFEVL(KIDIA:KFDIA,1),PFEVN(KIDIA:KFDIA,1),& - & ZSSO_STDEV_, PSPSG(KIDIA:KFDIA),& - & ZBUDTH_, ZBUDSO_,& - & ZFCLL_, ZTOWNS_,& - & ZCD_ ) - CALL ARO_GROUND_DIAG_2ISBA( KBL, KGPCOMP, & - & KFDIA, KIDIA, KFDIA, & - & NDGUNG, NDGUXG, NDLUNG, NDLUXG, LSURFEX_KFROM, & - & PINDX(KIDIA:KFDIA), PINDY(KIDIA:KFDIA), & - & PLSM, ZDUMMY1, ZDUMMY1, ZDUMMY1, ZTSURF(KIDIA:KFDIA), PSPSG(KIDIA:KFDIA), & - & ZDUMMY1(KIDIA:KFDIA), ZDUMMY1(KIDIA:KFDIA), ZDUMMY1(KIDIA:KFDIA), & - & ZDUMMY1(KIDIA:KFDIA), ZDUMMY1(KIDIA:KFDIA), ZDUMMY1(KIDIA:KFDIA), & - & ZDUMMY1(KIDIA:KFDIA), PSPSGR(KIDIA:KFDIA), ZDUMMY1 ) - - ENDIF - -!$OMP END CRITICAL (ARO_GROUND_PARAM_LOCK) - ELSE - - IF (LLMSE_PARAM) THEN - - CALL ARO_GROUND_PARAM( KBL,KGPCOMP,& - & KFDIA,KIDIA,KFDIA,KSTEP,& - & NRR,NSW,NGFL_EXT,NDGUNG, NDGUXG, NDLUNG, NDLUXG,LSURFEX_KFROM,& - & LMPA,CCOUPLING,LDXFUMSE,& - & NINDAT,ZRHGMT,ZSTATI,RSOVR,RCODEC,RSIDEC,& - & PINDX(KIDIA:KFDIA),PINDY(KIDIA:KFDIA),& - & ZUM__(:,IKB),& - & ZVM__(:,IKB),& - & ZTM(KIDIA:KFDIA,KLEV),ZRM_(:,IKB,1),& - & ZSVMB_,& - & RCARDI,ZRHODREFM__(:,IKB),& - & ZPABSM__(:,IKB),PAPRSM(KIDIA:KFDIA,KLEV),& - & ZDTMSE,ZDEPTH_HEIGHT_(:,IKB),ZZS_, XZSEPS,& - & PMU0(KIDIA:KFDIA),PMU0N(KIDIA:KFDIA),PGELAM(KIDIA:KFDIA),& - & PGEMU(KIDIA:KFDIA),XSW_BANDS,& - & ZINPRR_NOTINCR_,ZINPRS_NOTINCR_,& - & ZINPRG_NOTINCR_,& - & PFRTHDS(KIDIA:KFDIA),ZZS_FSWDIF(KIDIA:KFDIA,1:NSW),& - & ZZS_FSWDIR(KIDIA:KFDIA,1:NSW),& - & ZCFAQ_, ZCFATH_, ZCFAU_,ZCFBQ_, ZCFBTH_, ZCFBU_,ZCFBV_,& - & ZSFTH_,ZSFRV_,& - & ZSFSV_,ZSFCO2_,& - & ZSFU_,ZSFV_,& - & ZALBP(KIDIA:KFDIA,1:NSW),ZALBD(KIDIA:KFDIA,1:NSW),& - & ZEMIS(KIDIA:KFDIA),ZTSURF(KIDIA:KFDIA),PFRTH(KIDIA:KFDIA,KLEV,1)) + ZSVMB_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NGFL_EXT)=ZSVM_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,IKB,1:NGFL_EXT) + + IF (LLMSE_PARAM) THEN + + CALL ARO_GROUND_PARAM( YDCPG_BNDS%KBL, YDCPG_OPTS%KGPCOMP, YDCPG_BNDS%KFDIA, YDCPG_BNDS%KIDIA, & + & YDCPG_BNDS%KFDIA, YDCPG_OPTS%KSTEP, NRR, NSW, NGFL_EXT, NDGUNG, NDGUXG, NDLUNG, NDLUXG, & + & LSURFEX_KFROM, LMPA, CCOUPLING, LLXFUMSE, NINDAT, ZRHGMT, ZSTATI, RSOVR, RCODEC, RSIDEC, YDVARS%GEOMETRY%RINDX%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), & + & YDVARS%GEOMETRY%RINDY%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZUM__(:, IKB), ZVM__(:, IKB), ZTM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG), & + & ZRM_(:, IKB, 1), ZSVMB_, RCARDI, ZRHODREFM__(:, IKB), ZPABSM__(:, IKB), YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG), & + & ZDTMSE, ZDEPTH_HEIGHT_(:, IKB), ZZS_, XZSEPS, ZRDG_MU0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZRDG_MU0N(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), & + & YDVARS%GEOMETRY%GELAM%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), YDVARS%GEOMETRY%GEMU%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), & + & XSW_BANDS, ZINPRR_NOTINCR_, ZINPRS_NOTINCR_, ZINPRG_NOTINCR_, YDMF_PHYS%OUT%FRTHDS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), & + & ZZS_FSWDIF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:NSW), ZZS_FSWDIR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:NSW), & + & ZCFAQ_, ZCFATH_, ZCFAU_, ZCFBQ_, ZCFBTH_, ZCFBU_, ZCFBV_, ZSFTH_, ZSFRV_, ZSFSV_, ZSFCO2_, & + & ZSFU_, ZSFV_, ZALBP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:NSW), ZALBD(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:NSW), & + & ZEMIS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZTSURF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), YDMF_PHYS%OUT%FRTH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, 1) & + & ) - ENDIF + ENDIF - IF (LRCO2) THEN - ZSFSV_(KIDIA:KFDIA,NSV_CO2)= ZSFCO2_(KIDIA:KFDIA) -!print*,' FLUX CO2 =', MINVAL(ZSFSV_(KIDIA:KFDIA,NSV_CO2)),& -! & MAXVAL(ZSFSV_(KIDIA:KFDIA,NSV_CO2)) - ENDIF + IF (LRCO2) THEN + ZSFSV_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,NSV_CO2)= ZSFCO2_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) +!print*,' FLUX CO2 =', MINVAL(ZSFSV_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,NSV_CO2)),& +! & MAXVAL(ZSFSV_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,NSV_CO2)) + ENDIF !!!!! TEST DDH ATTENTION -!ZSFRV_(KIDIA:KFDIA) = 0._JPRB - - IF (LLMSE_DIAG) THEN - - CALL ARO_GROUND_DIAG( KBL, KGPCOMP,& - & KFDIA,KIDIA,KFDIA,KLEV, IKL,& - & NDGUNG, NDGUXG, NDLUNG, NDLUXG, LSURFEX_KFROM,& - & ZZS_,ZSFRV_,& - & ZUM__(:,IKTB:IKTE),& - & ZVM__(:,IKTB:IKTE),& - & ZDEPTH_HEIGHT_(:,IKTB:IKTE),& - & PFRTH(KIDIA:KFDIA,KLEV,1),PFRSO(KIDIA:KFDIA,KLEV,1),& - & PINDX(KIDIA:KFDIA),PINDY(KIDIA:KFDIA),& - & ZQS(KIDIA:KFDIA),ZGZ0_,ZGZ0H_,& - & PTCLS(KIDIA:KFDIA),PQCLS(KIDIA:KFDIA),PHUCLS(KIDIA:KFDIA),& - & PUCLS(KIDIA:KFDIA),PVCLS(KIDIA:KFDIA),& - & PNUCLS(KIDIA:KFDIA),PNVCLS(KIDIA:KFDIA),& - & PFCLL(KIDIA:KFDIA,1),PFCLN(KIDIA:KFDIA,1),& - & PFEVL(KIDIA:KFDIA,1),PFEVN(KIDIA:KFDIA,1),& - & ZSSO_STDEV_, PSPSG(KIDIA:KFDIA),& - & ZBUDTH_, ZBUDSO_,& - & ZFCLL_, ZTOWNS_,& - & ZCD_ ) - - CALL ARO_GROUND_DIAG_2ISBA( KBL, KGPCOMP, & - & KFDIA, KIDIA, KFDIA, & - & NDGUNG, NDGUXG, NDLUNG, NDLUXG, LSURFEX_KFROM, & - & PINDX(KIDIA:KFDIA), PINDY(KIDIA:KFDIA), & - & PLSM, ZDUMMY1, ZDUMMY1, ZDUMMY1, ZTSURF(KIDIA:KFDIA), PSPSG(KIDIA:KFDIA), & - & ZDUMMY1(KIDIA:KFDIA), ZDUMMY1(KIDIA:KFDIA), ZDUMMY1(KIDIA:KFDIA), & - & ZDUMMY1(KIDIA:KFDIA), ZDUMMY1(KIDIA:KFDIA), ZDUMMY1(KIDIA:KFDIA), & - & ZDUMMY1(KIDIA:KFDIA), PSPSGR(KIDIA:KFDIA), ZDUMMY1 ) +!ZSFRV_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) = 0._JPRB + + IF (LLMSE_DIAG) THEN + + CALL ARO_GROUND_DIAG( YDCPG_BNDS%KBL, YDCPG_OPTS%KGPCOMP, YDCPG_BNDS%KFDIA, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, & + & YDCPG_OPTS%KFLEVG, IKL, NDGUNG, NDGUXG, NDLUNG, NDLUXG, LSURFEX_KFROM, ZZS_, ZSFRV_, ZUM__(:, IKTB:IKTE), & + & ZVM__(:, IKTB:IKTE), ZDEPTH_HEIGHT_(:, IKTB:IKTE), YDMF_PHYS%OUT%FRTH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, 1), & + & YDMF_PHYS%OUT%FRSO(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, 1), YDVARS%GEOMETRY%RINDX%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), & + & YDVARS%GEOMETRY%RINDY%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZQS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), & + & ZGZ0_, ZGZ0H_, YDMF_PHYS%OUT%TCLS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), YDMF_PHYS%OUT%QCLS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), & + & YDMF_PHYS%OUT%RHCLS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), YDMF_PHYS%OUT%UCLS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), & + & YDMF_PHYS%OUT%VCLS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), YDMF_PHYS%OUT%NUCLS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), & + & YDMF_PHYS%OUT%NVCLS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), YDMF_PHYS%OUT%FCLL(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1), & + & YDMF_PHYS%OUT%FCLN(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1), YDMF_PHYS%OUT%FEVL(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1), & + & YDMF_PHYS%OUT%FEVN(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1), ZSSO_STDEV_, YDMF_PHYS_SURF%GSP_SG%PF_T1, & + & ZBUDTH_, ZBUDSO_, ZFCLL_, ZTOWNS_, ZCD_, YDMF_PHYS%OUT%SIC(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)) + + CALL ARO_GROUND_DIAG_2ISBA( YDCPG_BNDS%KBL, YDCPG_OPTS%KGPCOMP, YDCPG_BNDS%KFDIA, YDCPG_BNDS%KIDIA, & + & YDCPG_BNDS%KFDIA, NDGUNG, NDGUXG, NDLUNG, NDLUXG, LSURFEX_KFROM, YDVARS%GEOMETRY%RINDX%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), & + & YDVARS%GEOMETRY%RINDY%T0(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), YDMF_PHYS_SURF%GSD_VF%PLSM, & + & ZDUMMY1, ZDUMMY1, ZDUMMY1, ZTSURF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), YDMF_PHYS_SURF%GSP_SG%PF_T1, & + & ZTP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZWS2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZWP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), & + & ZWSI2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZWPI2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZWR2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), & + & ZDUMMY1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), YDMF_PHYS_SURF%GSP_SG%PR_T1, ZDUMMY1 ) - ENDIF - ENDIF - ENDDO SURFEX_LOOP !* Compute PBL-diagnostics ZCAPE(:)=0._JPRB - ZDCAPE(:)=0._JPRB - CALL ACCLDIA(YDXFU,YDPHY,YDMODEL%YRML_PHY_MF%YRPHY2,YDTOPH, KIDIA,KFDIA,KLON,KLEV,PUCLS,& - & PVCLS,PUM(:,1:KLEV),PVM(:,1:KLEV), ZCAPE,ZDCAPE,ZTKEM(:,1:KLEV),PAPHIFM(:,1:KLEV),POROG,& - & PUGST,PVGST,PPBLH,ICLPH) + ZDCAPE(:)=0._JPRB + CALL ACCLDIA(YDCST, YDCPG_OPTS%LXCLP, YDCPG_OPTS%LXTGST, YDCPG_OPTS%LXXGST, YDPHY, YDMODEL%YRML_PHY_MF%YRPHY2, YDTOPH, YDCPG_BNDS%KIDIA, & + & YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, YDMF_PHYS%OUT%UCLS, YDMF_PHYS%OUT%VCLS, YDMF_PHYS_BASE_STATE%U(:, 1:YDCPG_OPTS%KFLEVG), & + & YDMF_PHYS_BASE_STATE%V(:, 1:YDCPG_OPTS%KFLEVG), ZCAPE, ZDCAPE, ZTKEM(:, 1:YDCPG_OPTS%KFLEVG), YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF(:, 1:YDCPG_OPTS%KFLEVG), & + & YDVARS%GEOMETRY%OROG%T0, YDMF_PHYS%OUT%UGST, YDMF_PHYS%OUT%VGST, YDMF_PHYS%OUT%CLPH, ICLPH) - PPBLH(KIDIA:KFDIA)=MIN(XMAXLM,MAX(XMINLM,PPBLH(KIDIA:KFDIA))) + YDMF_PHYS%OUT%CLPH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=MIN(XMAXLM,MAX(XMINLM,YDMF_PHYS%OUT%CLPH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA))) - CALL ACVISIH(YDVISI,KIDIA,KFDIA,KLON,KTDIA,KLEV,PAPHIM,PAPHIFM,PAPRSFM,& - & ZTM,ZRHM,ZQCM,ZQIM,ZQRM,ZQSM,ZQGM,PVISICLD, PVISIHYDRO,PMXCLWC) + CALL ACVISIH(YDCST, YDVISI, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KTDIA, YDCPG_OPTS%KFLEVG, & + & YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF, & + & ZTM, ZRHM, ZQCM, ZQIM, ZQRM, ZQSM, ZQGM, YDMF_PHYS%OUT%VISICLD, YDMF_PHYS%OUT%VISIHYD, YDMF_PHYS%OUT%MXCLWC & + & ) ELSE - ZSFSV_(KIDIA:KFDIA,:)=0._JPRB + ZSFSV_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)=0._JPRB ENDIF ! <== End block "IF (LMSE)" @@ -2806,14 +2592,14 @@ ENDIF ! <== End block "IF (LMSE)" ! -------------------------------------------------------- IF (LSQUALL.AND.LTURB) THEN - ! on n'a besoin que d'un flux sur V (U est nul). - DO JLON=KIDIA,KFDIA + ! on n'a besoin que d'un flux sur V (U est nul). + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA IF (ABS(ZVM__(JLON,IKB)) <= 1.E-12) THEN ZSFV_(JLON)=0._JPRB ELSE ZSFV_(JLON)=-(ZVM__(JLON,IKB))**2 *& & (0.4_JPRB /(LOG(ZZZ_F_(JLON,IKB)/0.2_JPRB) ) )**2& - & *ZVM__(JLON,IKB)/ABS(ZVM__(JLON,IKB)) + & *ZVM__(JLON,IKB)/ABS(ZVM__(JLON,IKB)) ENDIF ENDDO ENDIF @@ -2822,7 +2608,6 @@ ENDIF ! 9. Shallow Mass Flux Mixing ! ------------------------------------------------------------------ - IF (LMFSHAL) THEN IF (CMF_UPDRAFT=='DUAL') THEN ! Updraft computation from EDMF/ECMWF dual proposal @@ -2834,28 +2619,42 @@ IF (LMFSHAL) THEN ! only 2 and 3 are used for tendency computation in ARO_SHALLOW_MF INDRAFT=3 ! 1 for test, 2 for dry, 3 for wet - IF (KMAXDRAFT < INDRAFT) THEN + IF (YDCPG_OPTS%KMAXDRAFT < INDRAFT) THEN CALL ABOR1('APL_AROME : KMAXDRAFT TOO SMALL !') ENDIF - DO JLON = KIDIA, KFDIA - ZZS_FTH_(JLON)=-1._JPRB*ZSFTH_(JLON)*(PAPRSM(JLON,KLEV)*ZINVATM)**(ZRSCP) + DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA + ZZS_FTH_(JLON)=-1._JPRB*ZSFTH_(JLON)*(YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(JLON,YDCPG_OPTS%KFLEVG)*ZINVATM)**(ZRSCP) ZZS_FRV_(JLON)=-1._JPRB*ZSFRV_(JLON) ENDDO - ZZS_FU_(KIDIA:KFDIA)=ZSFU_(KIDIA:KFDIA) - ZZS_FV_(KIDIA:KFDIA)=ZSFV_(KIDIA:KFDIA) + ZZS_FU_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=ZSFU_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) + ZZS_FV_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=ZSFV_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) + DO JLEV=1,YDCPG_OPTS%KFLEVG + ZZEXNREFM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZEXNREFM_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) + ENDDO + + ! If OCND2 and non-LIMA microphysics use water or mixed-phase cloud fraction for VDFHGHTHL, else use cloud fraction YDVARS%A%T1 + IF (LOCND2.AND.LMICRO.AND.CMICRO/='LIMA') THEN + DO JLEV=1,YDCPG_OPTS%KFLEVG + ZZWCLDFR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) = ZWCLDFR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) + ENDDO + ELSE + DO JLEV=1,YDCPG_OPTS%KFLEVG + ZZWCLDFR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) = YDVARS%A%T1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) + ENDDO + ENDIF ! IF LHARATU=TRUE then TKE at t-dt is needed as input for vdfexcuhl so fill ZTKEEDMF with t-1 value from PTKEM IF (LHARATU) THEN - DO JLEV=1,KLEV - ZTKEEDMF(KIDIA:KFDIA,JLEV)=ZTKEM(KIDIA:KFDIA,JLEV) - ZLENGTH_M(KIDIA:KFDIA,JLEV)=0.01_JPRB - ZLENGTH_H(KIDIA:KFDIA,JLEV)=0.01_JPRB - ENDDO - IF (MAXVAL(ZTKEM(KIDIA:KFDIA,1:KLEV)) > 3300._JPRB) THEN - DO JLEV=1, KLEV - DO JLON = KIDIA, KFDIA + DO JLEV=1,YDCPG_OPTS%KFLEVG + ZTKEEDMF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZTKEM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) + ZLENGTH_M(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0.01_JPRB + ZLENGTH_H(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0.01_JPRB + ENDDO + IF (MAXVAL(ZTKEM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)) > 3300._JPRB) THEN + DO JLEV=1, YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA IF (ZTKEM(JLON,JLEV) > 3300._JPRB) THEN WRITE (NULOUT,*) 'TKE > 3300 ! ' ENDIF @@ -2864,44 +2663,42 @@ IF (LMFSHAL) THEN ENDIF ENDIF - CALL VDFHGHTHL(YDMODEL%YRML_PHY_G%YRVDF,YDMODEL%YRML_PHY_SLIN%YREPHLI, & - & YDMODEL%YRML_PHY_EC%YRECUMF,YDMODEL%YRML_PHY_EC%YREPHY,YDPARAR, & - & KSTEP,KIDIA,KFDIA,KLON,KLEV,INDRAFT,& - & PDT, PUM, PVM,& - & ZTM,ZQVM,ZQCM,ZQIM,PCLFS,& - & PAPRSM, PAPRSFM, ZAPHIFM,ZAPHIM,& - & ZZS_FTH_,ZZS_FRV_,ZZS_FU_,ZZS_FV_,& - & ZMF_UP,ZTHETAL_UP,ZQT_UP,ZTHTV_UP,ZQC_UP,ZQI_UP,& - & ZU_UP, ZV_UP,& - & PGP2DSPP, NGFL_EZDIAG, PEZDIAG, & - & ZTENDQVUP,ZTENDTUP,ZSURFPREP,ZSURFSNOW, & - & ZUPGENL,ZUPGENN, ZCLFR, & - & ZLENGTH_M, ZLENGTH_H, ZTKEEDMF) + CALL VDFHGHTHL(YDMODEL%YRML_PHY_G%YRVDF, YDMODEL%YRML_PHY_SLIN%YREPHLI, YDMODEL%YRML_PHY_EC%YRECUMF, & + & YDMODEL%YRML_PHY_EC%YREPHY, YDPARAR, YDCPG_OPTS%KSTEP, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, & + & YDCPG_OPTS%KFLEVG, INDRAFT, YDCPG_OPTS%ZDTPHY, YDMF_PHYS_BASE_STATE%U, YDMF_PHYS_BASE_STATE%V, ZTM, ZQVM, & + & ZQCM, ZQIM, ZZWCLDFR, YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF, & + & ZAPHIFM, ZAPHIM, ZZEXNREFM, ZZS_FTH_, ZZS_FRV_, ZZS_FU_, ZZS_FV_, ZMF_UP, ZTHETAL_UP, ZQT_UP, ZTHTV_UP, & + & ZQC_UP, ZQI_UP, ZU_UP, ZV_UP, & + & ZSPP_ALL%YSPP_CLDDPTH,ZSPP_ALL%YSPP_CLDDPTHDP, & + & ZSPP_ALL%YSPP_RFAC_TWOC,ZSPP_ALL%YSPP_RZC_H,ZSPP_ALL%YSPP_RZL_INF, & + & ZTENDQVUP, ZTENDTUP, ZSURFPREP, & + & ZSURFSNOW, ZUPGENL, ZUPGENN, ZCLFR, ZLENGTH_M, ZLENGTH_H, ZTKEEDMF) + ! tendtup, tendqvup tendencies for non-conserved AROME ! variables due to updraft precipitation/snow (and its evaporation) - DO JLEV = 2 ,KLEV - DO JLON = KIDIA,KFDIA - PTENDT(JLON,JLEV)=PTENDT(JLON,JLEV) + ZTENDTUP(JLON,JLEV) - PTENDR(JLON,JLEV,1)=PTENDR(JLON,JLEV,1) + ZTENDQVUP(JLON,JLEV) + DO JLEV = 2 ,YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZTENDT(JLON,JLEV)=ZTENDT(JLON,JLEV) + ZTENDTUP(JLON,JLEV) + ZTEND_Q(JLON,JLEV)=ZTEND_Q(JLON,JLEV) + ZTENDQVUP(JLON,JLEV) ENDDO ENDDO - - IF(LTOTPREC)THEN + + IF (LTOTPREC.OR.LTOTPRECL) THEN !Add rain and snow tendencies from the sub-grid scheme to tendencies and sources, - !at all vertical levels, instead of diagnosing only surface precip. - ZSURFPREP(KIDIA:KFDIA)=0.0_JPRB - ZSURFSNOW(KIDIA:KFDIA)=0.0_JPRB - DO JLEV= 1, KLEV - DO JLON = KIDIA, KFDIA + !at all vertical levels, instead of diagnosing only surface precip. + ZSURFPREP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0.0_JPRB + ZSURFSNOW(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0.0_JPRB + DO JLEV= 1, YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA !Add rain and snow to sources: ZRS_(JLON,JLEV,3)=ZRS_(JLON,JLEV,3)+ZUPGENL(JLON,JLEV) ZRS_(JLON,JLEV,5)=ZRS_(JLON,JLEV,5)+ZUPGENN(JLON,JLEV) ZTHS__(JLON,JLEV)=ZTHS__(JLON,JLEV)+ZTENDTUP(JLON,JLEV)*(RATM/& - & PAPRSFM(JLON,JLEV))**(RD/RCPD) + & YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(JLON,JLEV))**(RD/RCPD) !Update rain/snow tendencies: - PTENDR(JLON,JLEV,3)=PTENDR(JLON,JLEV,3)+ZUPGENL(JLON,JLEV) - PTENDR(JLON,JLEV,5)=PTENDR(JLON,JLEV,5)+ZUPGENN(JLON,JLEV) + ZTEND_R(JLON,JLEV)=ZTEND_R(JLON,JLEV)+ZUPGENL(JLON,JLEV) + ZTEND_S(JLON,JLEV)=ZTEND_S(JLON,JLEV)+ZUPGENN(JLON,JLEV) ENDDO ENDDO ENDIF @@ -2909,8 +2706,8 @@ IF (LMFSHAL) THEN ELSE IDRAFT=3 ! only a wet updraft INDRAFT=1 - ZSURFPREP(KIDIA:KFDIA)=0._JPRB - ZSURFSNOW(KIDIA:KFDIA)=0._JPRB + ZSURFPREP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB + ZSURFSNOW(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB ENDIF DO JDRAFT=IDRAFT,3 @@ -2927,8 +2724,8 @@ IF (LMFSHAL) THEN IF (CMF_UPDRAFT=='DUAL') THEN ! Goes from one of the updraft from the IFS level world to the Méso-NH level world ! go from q to r) - DO JLEV = 1,KLEV - DO JLON = KIDIA,KFDIA + DO JLEV = 1,YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ZMF_UP__(JLON,JLEV) = ZMF_UP(JLON,JLEV,JDRAFT) ZZU_UP_(JLON,JLEV) = ZU_UP(JLON,JLEV,JDRAFT) ZZV_UP_(JLON,JLEV) = ZV_UP(JLON,JLEV,JDRAFT) @@ -2939,11 +2736,11 @@ IF (LMFSHAL) THEN ZRI_UP_(JLON,JLEV) = ZQI_UP(JLON,JLEV,JDRAFT)/(1.-ZQT_UP(JLON,JLEV,JDRAFT)) ENDDO ENDDO - ZZW_UP_(KIDIA:KFDIA,1:IKT)=0._JPRB - ZZFRAC_UP_(KIDIA:KFDIA,1:IKT)=0._JPRB + ZZW_UP_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:IKT)=0._JPRB + ZZFRAC_UP_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:IKT)=0._JPRB IF (LHARATU) THEN - DO JLEV = 1,KLEV - DO JLON = KIDIA,KFDIA + DO JLEV = 1,YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ZLENGTHM__(JLON,JLEV) = MAX(0.01_JPRB,ZLENGTH_M(JLON,JLEV)) ZLENGTHH__(JLON,JLEV) = MAX(0.01_JPRB,ZLENGTH_H(JLON,JLEV)) ! TKE should be bigger than a minimum value: @@ -2952,82 +2749,76 @@ IF (LMFSHAL) THEN ENDDO ENDIF ENDIF - IF(MOD(KSTEP+1,NPRINTFR)==0) THEN + IF(MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN WRITE(NULOUT,*)"apres surface zsfth zsfrv",ZSFTH_(NPTP),ZSFRV_(NPTP) ENDIF - DO JLEV = 1, KLEV - ZRC_MF_(KIDIA:KFDIA,JLEV)=0._JPRB - ZRI_MF_(KIDIA:KFDIA,JLEV)=0._JPRB - ZCF_MF_(KIDIA:KFDIA,JLEV)=0._JPRB + DO JLEV = 1, YDCPG_OPTS%KFLEVG + ZRC_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB + ZRI_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB + ZCF_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB ENDDO IF (JDRAFT == IDRAFT) THEN ! Fill the sum at the first iteration - ZARG_FLXZTHVMF_ => ZFLXZTHVMF_SUM__(:,1:KLEV) + ZARG_FLXZTHVMF_ => ZFLXZTHVMF_SUM__(:,1:YDCPG_OPTS%KFLEVG) ELSE ! increment - ZARG_FLXZTHVMF_ => ZFLXZTHVMF_(:,1:KLEV) + ZARG_FLXZTHVMF_ => ZFLXZTHVMF_(:,1:YDCPG_OPTS%KFLEVG) ENDIF - CALL ARO_SHALLOW_MF (KKL=IKL, KLON=KFDIA, KLEV=KLEV, KFDIA=KFDIA, KRR=NRR, KRRL=NRRL,& - & KRRI=NRRI,KSV=NGFL_EXT,HMF_UPDRAFT=CMF_UPDRAFT, HMF_CLOUD=CMF_CLOUD,& - & HFRAC_ICE=CFRAC_ICE_SHALLOW_MF,& - & OMIXUV=LMIXUV, ONOMIXLG=.FALSE.,KSV_LGBEG=0,KSV_LGEND=0,& - & KTCOUNT=KSTEP+1, PTSTEP=ZDT,& - & PDX=YDGEOMETRY%YREGEO%EDELX, PDY=YDGEOMETRY%YREGEO%EDELY,& - & PZZ=ZZZ_,PZZF=ZZZ_F_,& - & PDZZF=ZDZZ_F_,& - & PRHODJ=ZRHODJM__(:,1:KLEV),& - & PRHODREF=ZRHODREFM__(:,1:KLEV),& - & PPABSM=ZPABSM__(:,1:KLEV),& - & PEXNM=ZEXNREFM_,& - & PSFTH=ZSFTH_,PSFRV=ZSFRV_,& - & PTHM=ZTHM__(:,1:KLEV),PRM=ZRM_,& - & PUM=ZUM__(:,1:KLEV),PVM=ZVM__(:,1:KLEV),& - & PTKEM=ZTKEM__(:,1:KLEV),PSVM=ZSVM_,& - & PDUDT_MF=ZMFUS_,PDVDT_MF=ZMFVS_,& - & PDTHLDT_MF=ZTHLS_,PDRTDT_MF=ZRTS_,& - & PDSVDT_MF=ZSVXXX_,& - & PSIGMF=ZSIGMF_,PRC_MF=ZRC_MF_,& - & PRI_MF=ZRI_MF_,& - & PCF_MF=ZCF_MF_,PFLXZTHVMF=ZARG_FLXZTHVMF_,& - & PTHL_UP=ZTHETAL_UP_,PRT_UP= ZRT_UP_,& - & PRV_UP=ZZRV_UP_,& - & PRC_UP=ZRC_UP_,PRI_UP=ZRI_UP_,& - & PU_UP=ZZU_UP_,PV_UP=ZZV_UP_,& - & PTHV_UP=ZTHETAV_UP_,PW_UP=ZZW_UP_,& - & PFRAC_UP=ZZFRAC_UP_,PEMF=ZMF_UP__(:,1:KLEV)) + CALL ARO_SHALLOW_MF (KKL=IKL, KLON=YDCPG_BNDS%KFDIA, KLEV=YDCPG_OPTS%KFLEVG, KFDIA=YDCPG_BNDS%KFDIA, KRR=NRR, KRRL=NRRL, & + & KRRI=NRRI, KSV=NGFL_EXT, HMF_UPDRAFT=CMF_UPDRAFT, HMF_CLOUD=CMF_CLOUD, HFRAC_ICE=CFRAC_ICE_SHALLOW_MF, & + & OMIXUV=LMIXUV, ONOMIXLG=.FALSE., KSV_LGBEG=0, KSV_LGEND=0, KTCOUNT=YDCPG_OPTS%KSTEP+1, PTSTEP=ZDT, & + & PDX=YDGEOMETRY%YREGEO%EDELX, PDY=YDGEOMETRY%YREGEO%EDELY, & + & PZZ=ZZZ_, PZZF=ZZZ_F_, PDZZF=ZDZZ_F_, PRHODJ=ZRHODJM__(:, 1:YDCPG_OPTS%KFLEVG), PRHODREF=ZRHODREFM__(:, 1:YDCPG_OPTS%KFLEVG), & + & PPABSM=ZPABSM__(:, 1:YDCPG_OPTS%KFLEVG), PEXNM=ZEXNREFM_, PSFTH=ZSFTH_, PSFRV=ZSFRV_, PTHM=ZTHM__(:, 1:YDCPG_OPTS%KFLEVG), & + & PRM=ZRM_, PUM=ZUM__(:, 1:YDCPG_OPTS%KFLEVG), PVM=ZVM__(:, 1:YDCPG_OPTS%KFLEVG), PTKEM=ZTKEM__(:, 1:YDCPG_OPTS%KFLEVG), & + & PSVM=ZSVM_, PDUDT_MF=ZMFUS_, PDVDT_MF=ZMFVS_, PDTHLDT_MF=ZTHLS_, PDRTDT_MF=ZRTS_, PDSVDT_MF=ZSVXXX_, & + & PSIGMF=ZSIGMF_, PRC_MF=ZRC_MF_, PRI_MF=ZRI_MF_, PCF_MF=ZCF_MF_, PFLXZTHVMF=ZARG_FLXZTHVMF_, PTHL_UP=ZTHETAL_UP_, & + & PRT_UP= ZRT_UP_, PRV_UP=ZZRV_UP_, PRC_UP=ZRC_UP_, PRI_UP=ZRI_UP_, PU_UP=ZZU_UP_, PV_UP=ZZV_UP_, & + & PTHV_UP=ZTHETAV_UP_, PW_UP=ZZW_UP_, PFRAC_UP=ZZFRAC_UP_, PEMF=ZMF_UP__(:, 1:YDCPG_OPTS%KFLEVG) & + & ) + + !wc No variance due to dry updraft yet. + ! Putting ZSIGMF to 0 for dry updraft might be obsolete + IF (LSTATNW) THEN + IF (JDRAFT .EQ. 2) THEN + DO JLEV = 1,YDCPG_OPTS%KFLEVG + ZSIGMF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB + ENDDO + ENDIF + ENDIF IF (JDRAFT > IDRAFT) THEN ! Add increment - ZFLXZTHVMF_SUM__(KIDIA:KFDIA,1:KLEV)=ZFLXZTHVMF_SUM__(KIDIA:KFDIA,1:KLEV)+ZFLXZTHVMF_(KIDIA:KFDIA,1:KLEV) + ZFLXZTHVMF_SUM__(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=ZFLXZTHVMF_SUM__(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)+ZFLXZTHVMF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG) ENDIF ! traitement des sorties pour repasser dans le monde Aladin IF ((CMF_CLOUD=='DIRE'.OR.CMF_CLOUD=='BIGA').AND.JDRAFT==3) THEN ! sauvegarde pour le schema de nuage - DO JLEV = 1,KLEV - PEZDIAG(KIDIA:KFDIA,JLEV,1)=ZRC_MF_(KIDIA:KFDIA,JLEV) - PEZDIAG(KIDIA:KFDIA,JLEV,3)=ZRI_MF_(KIDIA:KFDIA,JLEV) - PEZDIAG(KIDIA:KFDIA,JLEV,2)=ZCF_MF_(KIDIA:KFDIA,JLEV) + DO JLEV = 1,YDCPG_OPTS%KFLEVG + ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,1)=ZRC_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) + ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,3)=ZRI_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) + ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,2)=ZCF_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) ENDDO ENDIF - DO JLEV = 1,KLEV - DO JLON = KIDIA,KFDIA + DO JLEV = 1,YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ZUS__(JLON,JLEV)=ZUS__(JLON,JLEV)+ZMFUS_(JLON,JLEV) ZVS__(JLON,JLEV)=ZVS__(JLON,JLEV)+ZMFVS_(JLON,JLEV) ZTHS__(JLON,JLEV)=ZTHS__(JLON,JLEV)+ZTHLS_(JLON,JLEV) ZRS_(JLON,JLEV,1)=ZRS_(JLON,JLEV,1)+ZRTS_(JLON,JLEV) !calcul de tendance et inversion des niveaux pour le vent horizontal - PTENDU(JLON,JLEV)=PTENDU(JLON,JLEV)+ZMFUS_(JLON,JLEV) - PTENDV(JLON,JLEV)=PTENDV(JLON,JLEV)+ZMFVS_(JLON,JLEV) + YDMF_PHYS%OUT%TENDU(JLON,JLEV)=YDMF_PHYS%OUT%TENDU(JLON,JLEV)+ZMFUS_(JLON,JLEV) + YDMF_PHYS%OUT%TENDV(JLON,JLEV)=YDMF_PHYS%OUT%TENDV(JLON,JLEV)+ZMFVS_(JLON,JLEV) !conversion de la tendance de theta en tendance de T et inversion niveau - PTENDT(JLON,JLEV)=PTENDT(JLON,JLEV)+ZTHLS_(JLON,JLEV)*ZEXNREFM_(JLON,JLEV) - ZTENDT(JLON,JLEV)=ZTENDT(JLON,JLEV)+ZTHLS_(JLON,JLEV) + ZTENDT(JLON,JLEV)=ZTENDT(JLON,JLEV)+ZTHLS_(JLON,JLEV)*ZEXNREFM_(JLON,JLEV) + ZTENDTT(JLON,JLEV)=ZTENDTT(JLON,JLEV)+ZTHLS_(JLON,JLEV) !inversion niveaux tendances des ri et conversion en qi en multipliant par qd - PTENDR(JLON,JLEV,1) = PTENDR(JLON,JLEV,1)+ZRTS_(JLON,JLEV)*ZQDM(JLON,JLEV) + ZTEND_Q(JLON,JLEV) = ZTEND_Q(JLON,JLEV)+ZRTS_(JLON,JLEV)*ZQDM(JLON,JLEV) ENDDO ENDDO @@ -3049,11 +2840,11 @@ IF (LTURB) THEN CALL SWAP_SVS ! well let's keep the copy, though for now OUT=IN anyway. IF (NGFL_EXT /=0 ) THEN - ZSVSIN_(KIDIA:KFDIA,1:KLEV,1:NGFL_EXT)=ZSVS_(KIDIA:KFDIA,1:KLEV,1:NGFL_EXT) + ZSVSIN_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,1:NGFL_EXT)=ZSVS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,1:NGFL_EXT) ENDIF !prints - IF(MOD(KSTEP+1,NPRINTFR)==0) THEN + IF(MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN WRITE(NULOUT,*)'avant d entrer dans turb sous apl_arome U' WRITE(NULOUT,*)MAXVAL(ZUM__(:,IKB)), MINVAL(ZUM__(:,IKB)) WRITE(NULOUT,*)'avant d entrer dans turb sous apl_arome V' @@ -3062,15 +2853,15 @@ IF (LTURB) THEN WRITE(NULOUT,*)MAXVAL(ZWM__(:,IKB)), MINVAL(ZWM__(:,IKB)) WRITE(NULOUT,*)'avant d entrer dans turb sous apl_arome TKE' WRITE(NULOUT,*)MAXVAL(ZTKEM__(:,IKB)), MINVAL(ZTKEM__(:,IKB)) - DO JLEV=1,KLEV + DO JLEV=1,YDCPG_OPTS%KFLEVG WRITE(NULOUT,*)JLEV,ZUM__(NPTP,JLEV),ZVM__(NPTP,JLEV),ZWM__(NPTP,JLEV),ZTKEM__(NPTP,JLEV) ENDDO WRITE(NULOUT,*)'u v w tke a S' - DO JLEV=1,KLEV + DO JLEV=1,YDCPG_OPTS%KFLEVG WRITE(NULOUT,*)JLEV,ZUS__(NPTP,JLEV),ZVS__(NPTP,JLEV),ZWS__(NPTP,JLEV),ZTKES_(NPTP,JLEV) ENDDO WRITE(NULOUT,*)'ZTHS__ avant turb' - DO JLEV=1,KLEV + DO JLEV=1,YDCPG_OPTS%KFLEVG WRITE(NULOUT,*)JLEV,ZTHS__(NPTP,JLEV) ENDDO ENDIF @@ -3081,9 +2872,9 @@ IF (LTURB) THEN !!$! !!$ IF (NGFL_EXT/=0) THEN !!$ DO JGFL=1,NGFL_EXT -!!$ DO JLON=KIDIA,KFDIA +!!$ DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA !!$ ZSFTURB(JLON,JGFL)=ZSFSV_(JLON,JGFL) -!!$ DO JLEV = 1, KLEV +!!$ DO JLEV = 1, YDCPG_OPTS%KFLEVG !!$ ZTURBM(JLON,JLEV,JGFL)=ZSVM_(JLON,1,JLEV,JGFL) !!$ ZTURBS(JLON,JLEV,JGFL)=ZSVSIN_(JLON,1,JLEV,JGFL) !!$ ENDDO @@ -3093,9 +2884,9 @@ IF (LTURB) THEN !!$! !!$ IF (NLIMA/=0) THEN !!$ DO JGFL=1,NLIMA -!!$ DO JLON=KIDIA,KFDIA +!!$ DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA !!$ ZSFTURB(JLON,NGFL_EXT+JGFL)=0. -!!$ DO JLEV = 1, KLEV +!!$ DO JLEV = 1, YDCPG_OPTS%KFLEVG !!$ ZTURBM(JLON,JLEV,NGFL_EXT+JGFL)=ZLIMAM_(JLON,JLEV,JGFL) !!$ ZTURBS(JLON,JLEV,NGFL_EXT+JGFL)=ZLIMASIN_(JLON,JLEV,JGFL) !!$ ENDDO @@ -3104,16 +2895,16 @@ IF (LTURB) THEN !!$ ENDIF ! Input variable indeed. REK - ZSFSVLIMA_(KIDIA:KFDIA,1:NLIMA)=0._JPRB + ZSFSVLIMA_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:NLIMA)=0._JPRB ! 10.2 calcul TURB - ZZTOP_(KIDIA:KFDIA)=ZAPHIM(KIDIA:KFDIA,0)*ZINVG + ZZTOP_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=ZAPHIM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,0)*ZINVG IF (LGRADHPHY) THEN - ! - DO JLEV = 1,KLEV - DO JGR=1,NGRADIENTS - ZTURB3D__(KIDIA:KFDIA,JLEV,JGR)=PTURB3D(KIDIA:KFDIA,JGR,JLEV) + ! + DO JGR=1,NGRADIENTS + DO JLEV = 1,YDCPG_OPTS%KFLEVG + ZTURB3D__(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,JGR)=YDMF_PHYS%GRA%G(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,JGR) ENDDO ENDDO @@ -3121,40 +2912,27 @@ IF (LTURB) THEN ! Appel avec les arguments modifiés pour variables LIMA : ! KSV_TURB, ZSFTURB, ZTURBM, ZTURBS, ZTENDSV_TURB - CALL ARO_TURB_MNH(KKA=IKA,KKU=IKU,KKL=IKL,KLON=KFDIA,KLEV=KLEV,& - & KRR=NRR, KRRL=NRRL,KRRI= NRRI,& - & KSV=NLIMA,KTCOUNT=KSTEP+1,KGRADIENTS=NGRADIENTS,& - &LDHARATU=LHARATU,CMICRO=CMICRO,PTSTEP=ZDT,& - & PZZ=ZZZ_,PZZF=ZZZ_F_,& - & PZZTOP=ZZTOP_,PRHODJ=ZRHODJM__,PTHVREF=ZTHVREFM__,& - & HINST_SFU='M',& - & PSFTH=ZSFTH_,PSFRV=ZSFRV_,& - & PSFSV=ZSFSVLIMA_,PSFU=ZSFU_,& - & PSFV=ZSFV_,PPABSM=ZPABSM__,& - & PUM=ZUM__,PVM=ZVM__,PWM=ZWM__,PTKEM=ZTKEM__,PEPSM=ZEPSM,& - & PSVM=ZLIMAM_,& - & PSRCM=ZSRCS__,PTHM=ZTHM__,& - & PRM=ZRM_,& - & PRUS=ZUS__,PRVS=ZVS__,PRWS=ZWS__,PRTHS=ZTHS__,& - & PRRS=ZRS_,& - & PRSVSIN=ZLIMASIN_,PRSVS=ZLIMAS_,& - & PRTKES=ZTKES_,PRTKES_OUT=ZTKES_OUT__,& - & PREPSS=ZEPSS,PHGRAD=ZTURB3D__,PSIGS=ZSIGS__,& - & OSUBG_COND=LOSUBG_COND,& - & PFLXZTHVMF=ZFLXZTHVMF_SUM__,& - & PLENGTHM=ZLENGTHM__,PLENGTHH=ZLENGTHH__,MFMOIST=ZMF_UP__,PDRUS_TURB=ZTENDU_TURB__, & - & PDRVS_TURB=ZTENDV_TURB__,PDRTHLS_TURB=ZTENDTHL_TURB__,PDRRTS_TURB=ZTENDRT_TURB__,& - & PDRSVS_TURB=ZTENDSV_TURBLIMA_,& - & PDP=ZDP__, PTP=ZTP__,PTPMF=ZTPMF__,PTDIFF=ZTDIFF__,PTDISS=ZTDISS__,PEDR=ZEDR__,YDDDH=YDDDH,& - & YDLDDH=YDMODEL%YRML_DIAG%YRLDDH,YDMDDH=YDMODEL%YRML_DIAG%YRMDDH) + CALL ARO_TURB_MNH(KKA=IKA, KKU=IKU, KKL=IKL, KLON=YDCPG_BNDS%KFDIA, KLEV=YDCPG_OPTS%KFLEVG, KRR=NRR, & + & KRRL=NRRL, KRRI= NRRI, KSV=NLIMA, KTCOUNT=YDCPG_OPTS%KSTEP+1, KGRADIENTS=NGRADIENTS, LDHARATU=LHARATU, & + & CMICRO=CMICRO, & + & PTSTEP=ZDT, PZZ=ZZZ_, PZZF=ZZZ_F_, PZZTOP=ZZTOP_, PRHODJ=ZRHODJM__, PTHVREF=ZTHVREFM__, & + & HINST_SFU='M', PSFTH=ZSFTH_, PSFRV=ZSFRV_, PSFSV=ZSFSVLIMA_, PSFU=ZSFU_, & + & PSFV=ZSFV_, PPABSM=ZPABSM__, PUM=ZUM__, PVM=ZVM__, PWM=ZWM__, PTKEM=ZTKEM__, PEPSM=ZEPSM, PSVM=ZLIMAM_, & + & PSRCM=ZSRCS__, PTHM=ZTHM__, PRM=ZRM_, PRUS=ZUS__, PRVS=ZVS__, PRWS=ZWS__, PRTHS=ZTHS__, PRRS=ZRS_, & + & PRSVSIN=ZLIMASIN_, PRSVS=ZLIMAS_, PRTKES=ZTKES_, PRTKES_OUT=ZTKES_OUT__, PREPSS=ZEPSS, PHGRAD=ZTURB3D__, & + & PSIGS=ZSIGS__, OSUBG_COND=LOSUBG_COND, PFLXZTHVMF=ZFLXZTHVMF_SUM__, PLENGTHM=ZLENGTHM__, PLENGTHH=ZLENGTHH__, & + & MFMOIST=ZMF_UP__, PDRUS_TURB=ZTENDU_TURB__, PDRVS_TURB=ZTENDV_TURB__, PDRTHLS_TURB=ZTENDTHL_TURB__, & + & PDRRTS_TURB=ZTENDRT_TURB__, PDRSVS_TURB=ZTENDSV_TURBLIMA_, PDP=ZDP__, PTP=ZTP__, PTPMF=ZTPMF__, PTDIFF=ZTDIFF__, & + & PTDISS=ZTDISS__, PEDR=ZEDR__, YDDDH=YDDDH, YDLDDH=YDMODEL%YRML_DIAG%YRLDDH, YDMDDH=YDMODEL%YRML_DIAG%YRMDDH & + & ) ! Séparation des variables SV (NGFL_EXT + NLIMA) !!$ IF (NGFL_EXT/=0) THEN !!$ DO JGFL=1,NGFL_EXT -!!$ DO JLON=KIDIA,KFDIA +!!$ DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA !!$ ZSFSV_(JLON,JGFL)=ZSFTURB(JLON,JGFL) -!!$ DO JLEV = 1, KLEV +!!$ DO JLEV = 1, YDCPG_OPTS%KFLEVG !!$ ZSVM_(JLON,1,JLEV,JGFL)=ZTURBM(JLON,JLEV,JGFL) !!$ ZSVS_(JLON,1,JLEV,JGFL)=ZTURBS(JLON,JLEV,JGFL) !!$ ENDDO @@ -3164,8 +2942,8 @@ IF (LTURB) THEN !!$! !!$ IF (NLIMA/=0) THEN !!$ DO JGFL=1,NLIMA -!!$ DO JLON=KIDIA,KFDIA -!!$ DO JLEV = 1, KLEV +!!$ DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA +!!$ DO JLEV = 1, YDCPG_OPTS%KFLEVG !!$ ZLIMAM_(JLON,JLEV,JGFL)=ZTURBM(JLON,JLEV,NGFL_EXT+JGFL) !!$ ZLIMAS_(JLON,JLEV,JGFL)=ZTURBS(JLON,JLEV,NGFL_EXT+JGFL) !!$ ENDDO @@ -3174,42 +2952,40 @@ IF (LTURB) THEN !!$ ENDIF - DO JLEV = 1 , KLEV - PEDR(KIDIA:KFDIA,JLEV)=ZEDR__(KIDIA:KFDIA,JLEV) + DO JLEV = 1 , YDCPG_OPTS%KFLEVG + YDMF_PHYS%OUT%EDR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZEDR__(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) ENDDO IF (LFLEXDIA) THEN - DO JLEV = 1,KLEV - DO JLON = KIDIA,KFDIA - ZDP__(JLON,JLEV)=ZDP__(JLON,JLEV)*PDELPM(JLON,JLEV)*ZINVG - ZTP__(JLON,JLEV)=(ZTP__(JLON,JLEV)-ZTPMF__(JLON,JLEV))*PDELPM(JLON,JLEV)*ZINVG - ZTPMF__(JLON,JLEV)=ZTPMF__(JLON,JLEV)*PDELPM(JLON,JLEV)*ZINVG - ZTDIFF__(JLON,JLEV)=ZTDIFF__(JLON,JLEV)*PDELPM(JLON,JLEV)*ZINVG - ZTDISS__(JLON,JLEV)=ZTDISS__(JLON,JLEV)*PDELPM(JLON,JLEV)*ZINVG - ENDDO - ENDDO - IF (LDDH_OMP) THEN - CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZDP__(:,1:KLEV),'TKEPRDY',YDDDH) - CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTP__(:,1:KLEV),'TKEPRTH',YDDDH) - CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTPMF__(:,1:KLEV),'TKEPRTHMF',YDDDH) - CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTDIFF__(:,1:KLEV),'TKEDIFF',YDDDH) - CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTDISS__(:,1:KLEV),'TKEDISS',YDDDH) - ELSE - CALL ADD_FIELD_3D(YLDDH,ZDP__(:,1:KLEV),'TKEPRDY','T','ARO',.TRUE.,.TRUE.) - CALL ADD_FIELD_3D(YLDDH,ZTP__(:,1:KLEV),'TKEPRTH','T','ARO',.TRUE.,.TRUE.) - CALL ADD_FIELD_3D(YLDDH,ZTPMF__(:,1:KLEV),'TKEPRTHMF','T','ARO',.TRUE.,.TRUE.) - CALL ADD_FIELD_3D(YLDDH,ZTDIFF__(:,1:KLEV),'TKEDIFF','T','ARO',.TRUE.,.TRUE.) - CALL ADD_FIELD_3D(YLDDH,ZTDISS__(:,1:KLEV),'TKEDISS','T','ARO',.TRUE.,.TRUE.) - ENDIF + DO JLEV = 1,YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZDP__(JLON,JLEV)=ZDP__(JLON,JLEV)*YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JLEV)*ZINVG + ZTP__(JLON,JLEV)=(ZTP__(JLON,JLEV)-ZTPMF__(JLON,JLEV))*YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JLEV)*ZINVG + ZTPMF__(JLON,JLEV)=ZTPMF__(JLON,JLEV)*YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JLEV)*ZINVG + ZTDIFF__(JLON,JLEV)=ZTDIFF__(JLON,JLEV)*YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JLEV)*ZINVG + ZTDISS__(JLON,JLEV)=ZTDISS__(JLON,JLEV)*YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JLEV)*ZINVG + ENDDO + ENDDO + CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH, ZDP__(:, 1:YDCPG_OPTS%KFLEVG), 'TKEPRDY', & + & YDDDH ) + CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH, ZTP__(:, 1:YDCPG_OPTS%KFLEVG), 'TKEPRTH', & + & YDDDH ) + CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH, ZTPMF__(:, 1:YDCPG_OPTS%KFLEVG), 'TKEPRTHMF', & + & YDDDH) + CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH, ZTDIFF__(:, 1:YDCPG_OPTS%KFLEVG), 'TKEDIFF', & + & YDDDH) + CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH, ZTDISS__(:, 1:YDCPG_OPTS%KFLEVG), 'TKEDISS', & + & YDDDH) + ENDIF - IF(MOD(KSTEP+1,NPRINTFR)==0) THEN + IF(MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN WRITE(NULOUT,*)'u v w a S apres turb' - DO JLEV=1,KLEV + DO JLEV=1,YDCPG_OPTS%KFLEVG WRITE(NULOUT,*)JLEV,ZUS__(NPTP,JLEV),ZVS__(NPTP,JLEV),ZWS__(NPTP,JLEV),ZTKES_OUT__(NPTP,JLEV) ENDDO WRITE(NULOUT,*)'THS TKES SIGS apres turb' - DO JLEV=1,KLEV + DO JLEV=1,YDCPG_OPTS%KFLEVG WRITE(NULOUT,*)JLEV,ZTHS__(NPTP,JLEV),ZTKES_OUT__(NPTP,JLEV),ZSIGS__(NPTP,JLEV) ENDDO ENDIF @@ -3217,13 +2993,13 @@ IF (LTURB) THEN ! avance temporelle et inversion niveau pour ZSIGS__ IF (LOSUBG_COND .AND. LOSIGMAS) THEN IF (CMF_CLOUD=='DIRE'.OR.CMF_CLOUD=='BIGA'.OR.CMF_CLOUD=='NONE') THEN - DO JLEV = 1,KLEV - PSIGS(KIDIA:KFDIA,JLEV)=ZSIGS__(KIDIA:KFDIA,JLEV) + DO JLEV = 1,YDCPG_OPTS%KFLEVG + YDVARS%SRC%T1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZSIGS__(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV) ENDDO ELSEIF (CMF_CLOUD=='STAT') THEN - DO JLEV = 1,KLEV - DO JLON = KIDIA,KFDIA - PSIGS(JLON,JLEV)=SQRT(ZSIGS__(JLON,JLEV)**2+ZSIGMF_(JLON,JLEV)**2 ) + DO JLEV = 1,YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + YDVARS%SRC%T1(JLON,JLEV)=SQRT(ZSIGS__(JLON,JLEV)**2+ZSIGMF_(JLON,JLEV)**2 ) ENDDO ENDDO ENDIF @@ -3233,57 +3009,81 @@ IF (LTURB) THEN !10.3. traitement des sorties pour repasser dans le monde Aladin !calcul de tendance et inversion des niveaux pour le vent horizontal et la TKE - DO JLEV = 1,KLEV - DO JLON = KIDIA,KFDIA - PTENDU(JLON,JLEV)=PTENDU(JLON,JLEV)+ZTENDU_TURB__(JLON,JLEV) - PTENDV(JLON,JLEV)=PTENDV(JLON,JLEV)+ZTENDV_TURB__(JLON,JLEV) + DO JLEV = 1,YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + YDMF_PHYS%OUT%TENDU(JLON,JLEV)=YDMF_PHYS%OUT%TENDU(JLON,JLEV)+ZTENDU_TURB__(JLON,JLEV) + YDMF_PHYS%OUT%TENDV(JLON,JLEV)=YDMF_PHYS%OUT%TENDV(JLON,JLEV)+ZTENDV_TURB__(JLON,JLEV) ! for the moment, turbulence do not compute w tendency: - PTENDW(JLON,JLEV)=0.0_JPRB + ZTENDW(JLON,JLEV)=0.0_JPRB ! PTENDW(JLON,JLEV)+(ZWS__(JLON,JLEV)-& ! & ZWS_AVE(JLON,1,JLEV)) !conversion de la tendance de theta en tendance de T et inversion niveau - PTENDT(JLON,JLEV)=PTENDT(JLON,JLEV)+ZTENDTHL_TURB__(JLON,JLEV)*ZEXNREFM_(JLON,JLEV) + ZTENDT(JLON,JLEV)=ZTENDT(JLON,JLEV)+ZTENDTHL_TURB__(JLON,JLEV)*ZEXNREFM_(JLON,JLEV) !inversion niveaux tendances des rv et conversion en qv en multipliant par qd - PTENDR(JLON,JLEV,1)= PTENDR(JLON,JLEV,1)+ZTENDRT_TURB__(JLON,JLEV)*ZQDM(JLON,JLEV) + ZTEND_Q(JLON,JLEV)= ZTEND_Q(JLON,JLEV)+ZTENDRT_TURB__(JLON,JLEV)*ZQDM(JLON,JLEV) ENDDO ENDDO IF (LHARATU) THEN - DO JLEV = 1,KLEV - DO JLON = KIDIA,KFDIA - PTENDTKE(JLON,JLEV)=PTENDTKE(JLON,JLEV)+(ZTKEEDMFS(JLON,JLEV)-ZTKES_(JLON,JLEV)) + DO JLEV = 1,YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZTENDTKE(JLON,JLEV)=ZTENDTKE(JLON,JLEV)+(ZTKEEDMFS(JLON,JLEV)-ZTKES_(JLON,JLEV)) ENDDO ENDDO ELSE - DO JLEV = 1,KLEV - DO JLON = KIDIA,KFDIA - PTENDTKE(JLON,JLEV)=PTENDTKE(JLON,JLEV)+(ZTKES_OUT__(JLON,JLEV)-ZTKES_(JLON,JLEV)) + DO JLEV = 1,YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZTENDTKE(JLON,JLEV)=ZTENDTKE(JLON,JLEV)+(ZTKES_OUT__(JLON,JLEV)-ZTKES_(JLON,JLEV)) ENDDO ENDDO ENDIF DO JGFL=1,NGFL_EXT - DO JLEV = 1,KLEV - DO JLON = KIDIA,KFDIA - PTENDEXT(JLON,JLEV,JGFL)=PTENDEXT(JLON,JLEV,JGFL)+(ZSVS_(JLON,JLEV,JGFL)-ZSVSIN_(JLON,JLEV,JGFL)) + DO JLEV = 1,YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZTENDEXT(JLON,JLEV,JGFL)=ZTENDEXT(JLON,JLEV,JGFL)+(ZSVS_(JLON,JLEV,JGFL)-ZSVSIN_(JLON,JLEV,JGFL)) ENDDO ENDDO ENDDO ! Tendances LIMA DO JGFL=1,NLIMA - DO JLEV = 1, KLEV - DO JLON=KIDIA,KFDIA - PTENDLIMA(JLON,JLEV,JGFL)=PTENDLIMA(JLON,JLEV,JGFL)+ZTENDSV_TURBLIMA_(JLON,JLEV,JGFL) + DO JLEV = 1, YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZTENDLIMA(JLON,JLEV,JGFL)=ZTENDLIMA(JLON,JLEV,JGFL)+ZTENDSV_TURBLIMA_(JLON,JLEV,JGFL) ! PTENDLIMA(JLON,JLEV,:)=PTENDLIMA(JLON,JLEV,:)+ (ZLIMAS_(JLON,JLEV,:)-ZLIMASIN_(JLON,JLEV,:)) ENDDO ENDDO ENDDO ENDIF +IF(LWINDFARM)THEN + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZP1EZDIAG(JLON,1,5)=0.0_JPRB + IF(GFL_WKA(JLON,YDCPG_BNDS%KBL)>0.0)THEN + JGFL=INT(GFL_WKA2(1,6,YDCPG_BNDS%KBL))*1_JPIM + CALL ARO_WINDFARM(YDGEOMETRY,YDMODEL,YDVARS%GEOMETRY%OROG%T0(JLON), & + & YDMF_PHYS_BASE_STATE%U(JLON,1:YDCPG_OPTS%KFLEVG),YDMF_PHYS_BASE_STATE%V(JLON,1:YDCPG_OPTS%KFLEVG),& + & YDMF_PHYS_BASE_STATE%YCPG_PHY%W(JLON,1:YDCPG_OPTS%KFLEVG),YDMF_PHYS_BASE_STATE%TKE(JLON,1:YDCPG_OPTS%KFLEVG),& + & YDMF_PHYS_BASE_STATE%YCPG_DYN%PHI(JLON,0:YDCPG_OPTS%KFLEVG),& + & YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(JLON,1:YDCPG_OPTS%KFLEVG),ZTENDU_TURB__(JLON,1:YDCPG_OPTS%KFLEVG),& + & ZTENDV_TURB__(JLON,1:YDCPG_OPTS%KFLEVG),ZTKES_OUT__(JLON,1:YDCPG_OPTS%KFLEVG),& + & GFL_WKA(JLON,YDCPG_BNDS%KBL),GFL_WKA2(1:JGFL,1:6,YDCPG_BNDS%KBL),YDCPG_OPTS%KFLEVG,& + & YDCPG_OPTS%KSTEP,JGFL,ZP1EZDIAG(JLON,1,5)) + DO JLEV=1,YDCPG_OPTS%KFLEVG + YDMF_PHYS%OUT%TENDU(JLON,JLEV)=YDMF_PHYS%OUT%TENDU(JLON,JLEV)+ZTENDU_TURB__(JLON,JLEV) + YDMF_PHYS%OUT%TENDV(JLON,JLEV)=YDMF_PHYS%OUT%TENDV(JLON,JLEV)+ZTENDV_TURB__(JLON,JLEV) + ZTENDTKE(JLON,JLEV)=ZTENDTKE(JLON,JLEV)+ZTKES_OUT__(JLON,JLEV) + !WRITE(*,*) 'windfarm tendencies dU/dt,dV/dt,dTKE/dt' + !WRITE(*,*)ZTENDU_TURB(JLON,1,JLEV),ZTENDV_TURB(JLON,1,JLEV),& + ! & ZZI_TKES(JLON,1,JLEV) + ENDDO + ENDIF + ENDDO +ENDIF ! ------------------------------------------------------------------ -! 11 - MICROPHYSIQUE. +! 11 - MICROPHYSIQUE. ! -------------------------------------------------------------------- IF (LMICRO) THEN @@ -3294,93 +3094,94 @@ IF (LMICRO) THEN CALL SWAP_LIMAS ! for now a copy is needed (see below, inside). I don't like than :-( REK - ZTHS__(KIDIA:KFDIA,1:KLEV)=ZTHSIN_(KIDIA:KFDIA,1:KLEV) - ZRS_(KIDIA:KFDIA,1:KLEV,1:NRR)=ZRSIN_(KIDIA:KFDIA,1:KLEV,1:NRR) + ZTHS__(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=ZTHSIN_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG) + ZRS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,1:NRR)=ZRSIN_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,1:NRR) ! for now a copy is needed (see below, inside). I don't like than :-( REK - ZLIMAS_(KIDIA:KFDIA,1:KLEV,1:NLIMA)=ZLIMASIN_(KIDIA:KFDIA,1:KLEV,1:NLIMA) + ZLIMAS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,1:NLIMA)=ZLIMASIN_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,1:NLIMA) !prints - IF (MOD(KSTEP+1,NPRINTFR)==0) THEN + IF (MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN WRITE(NULOUT,*)'avant rain_ice sous apl_arome' WRITE(NULOUT,*)'JLEV ZZZ_F_ ZZZ_ ZRHODREF',& - & ' ZRHODJ ZPABSM__ ZTHSIN_ ZTHM__ ' - DO JLEV=1,KLEV+1 + & ' ZRHODJ ZPABSM__ ZTHSIN_ ZTHM__ ' + DO JLEV=1,YDCPG_OPTS%KFLEVG WRITE(NULOUT,'(I2,X,7F10.3)')JLEV,ZZZ_F_(NPTP,JLEV),ZZZ_(NPTP,JLEV), ZRHODREFM__(NPTP,JLEV),& & ZRHODJM__(NPTP,JLEV), ZPABSM__(NPTP,JLEV), ZTHSIN_(NPTP,JLEV), ZTHM__(NPTP,JLEV) ENDDO WRITE(NULOUT,*)'JLEV PDELPM ZPABSM__ ZEXNREF',' ZSIGS__' - DO JLEV=2,KLEV - WRITE(NULOUT,'(I2,X,4f10.3)')JLEV, PDELPM(NPTP,JLEV),& - & ZPABSM__(NPTP,JLEV),ZEXNREFM_(NPTP,JLEV),ZSIGS__(NPTP,JLEV) + DO JLEV=2,YDCPG_OPTS%KFLEVG + WRITE(NULOUT,'(I2,X,4f10.3)')JLEV, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(NPTP,JLEV),& + & ZPABSM__(NPTP,JLEV),ZEXNREFM_(NPTP,JLEV),ZSIGS__(NPTP,JLEV) ENDDO WRITE(NULOUT,*)'JLEV PTM PRM PCPM' - DO JLEV=1,KLEV - WRITE(NULOUT,'(I2,X,3f10.3)')JLEV,ZTM(NPTP,KLEV+1-JLEV), ZRHM(NPTP,KLEV+1-JLEV) ,ZCPM(NPTP,KLEV+1-JLEV) + DO JLEV=1,YDCPG_OPTS%KFLEVG + WRITE(NULOUT,'(I2,X,3f10.3)')JLEV,ZTM(NPTP,YDCPG_OPTS%KFLEVG+1-JLEV), ZRHM(NPTP,YDCPG_OPTS%KFLEVG+1-JLEV) ,ZCPM(NPTP,YDCPG_OPTS%KFLEVG+1-JLEV) ENDDO WRITE (NULOUT,*)'JLEV rhoQv rhoQc rhoQr rhoQi rhoQs rhoQg' - DO JLEV=1,KLEV + DO JLEV=1,YDCPG_OPTS%KFLEVG WRITE(NULOUT,'(I2,X,6E11.4)')JLEV,ZRM_(NPTP,JLEV,1), ZRM_(NPTP,JLEV,2),& - & ZRM_(NPTP,JLEV,3),ZRM_(NPTP,JLEV,4),ZRM_(NPTP,JLEV,5), ZRM_(NPTP,JLEV,6) + & ZRM_(NPTP,JLEV,3),ZRM_(NPTP,JLEV,4),ZRM_(NPTP,JLEV,5), ZRM_(NPTP,JLEV,6) ENDDO WRITE (NULOUT,*)'JLEV ZRSQv ZRSQc ZRSQr ZRSQi ZRSQs ZRSQg' - DO JLEV=1,KLEV + DO JLEV=1,YDCPG_OPTS%KFLEVG WRITE(NULOUT,'(I2,X,6E11.4)')JLEV,ZRS_(NPTP,JLEV,1), ZRS_(NPTP,JLEV,2),& - & ZRSIN_(NPTP,JLEV,3),ZRSIN_(NPTP,JLEV,4),ZRSIN_(NPTP,JLEV,5), ZRSIN_(NPTP,JLEV,6) + & ZRSIN_(NPTP,JLEV,3),ZRSIN_(NPTP,JLEV,4),ZRSIN_(NPTP,JLEV,5), ZRSIN_(NPTP,JLEV,6) ENDDO WRITE(NULOUT,*)'ZDT=',ZDT - WRITE(NULOUT,*)'NRR and co',NRR,KSTEP+1,NSPLITR,LOSUBG_COND, LOSIGMAS, CSUBG_AUCV_RC,LOWARM + WRITE(NULOUT,*)'NRR and co',NRR,YDCPG_OPTS%KSTEP+1,NSPLITR,LOSUBG_COND, LOSIGMAS, CSUBG_AUCV_RC,LOWARM ENDIF - - ZSEA_(KIDIA:KFDIA)=0.0_JPRB + ZSEA_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0.0_JPRB IF (LOLSMC) THEN - DO JLON = KIDIA, KFDIA - IF (PLSM(JLON) < 0.5) THEN + DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA + IF (YDMF_PHYS_SURF%GSD_VF%PLSM(JLON) < 0.5) THEN ZSEA_(JLON) = 1.0_JPRB ENDIF ENDDO ENDIF - + IF (LOTOWNC) THEN - ZTOWN_(KIDIA:KFDIA) = ZTOWNS_(KIDIA:KFDIA) + ZTOWN_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) = ZTOWNS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) ELSE - ZTOWN_(KIDIA:KFDIA)=0.0_JPRB - ENDIF + ZTOWN_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0.0_JPRB + ENDIF IF (CMICRO == 'LIMA') THEN IF (LTURB) THEN - DO JLON=KIDIA,KFDIA - DO JLEV=1,KLEV + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + DO JLEV=1,YDCPG_OPTS%KFLEVG ZWNU_(JLON,JLEV) = ZWM__(JLON,JLEV) + 0.66*SQRT(ZTKEM__(JLON,JLEV)) ENDDO ENDDO - ZPTRWNU_ => ZWNU_(1:KFDIA,1:KLEV) + ZPTRWNU_ => ZWNU_(1:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG) ELSE - ZPTRWNU_ => ZWM__(1:KFDIA,1:KLEV) + ZPTRWNU_ => ZWM__(1:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG) ENDIF - CALL ARO_LIMA(KLEV,IKU,IKL,KFDIA,KLEV,NRR,NLIMA,KSTEP+1,NSPLITR,NSPLITG, ZDT,ZDZZ_ ,& - & ZRHODJM__(:,1:KLEV),ZRHODREFM__(:,1:KLEV), ZEXNREFM_, ZPABSM__(:,1:KLEV), ZPTRWNU_, & - & ZTHM__(:,1:KLEV),ZRM_, ZLIMAM_, ZTHS__(:,1:KLEV),ZRS_, ZLIMAS_, ZEVAP_, & - & ZINPRR_NOTINCR_, ZINPRS_NOTINCR_, ZINPRG_NOTINCR_, ZINPRH_NOTINCR_,ZPFPR_,& - & YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH ) + CALL ARO_LIMA(YDCPG_OPTS%KFLEVG, IKU, IKL, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, NRR, NLIMA, YDCPG_OPTS%KSTEP+1, & + & NSPLITR, NSPLITG, ZDT, ZDZZ_, ZRHODJM__(:, 1:YDCPG_OPTS%KFLEVG), ZRHODREFM__(:, 1:YDCPG_OPTS%KFLEVG), & + & ZEXNREFM_, ZPABSM__(:, 1:YDCPG_OPTS%KFLEVG), ZPTRWNU_, ZTHM__(:, 1:YDCPG_OPTS%KFLEVG), ZRM_, & + & ZLIMAM_, ZTHS__(:, 1:YDCPG_OPTS%KFLEVG), ZRS_, ZLIMAS_, ZEVAP_, ZINPRR_NOTINCR_, & + & ZINPRS_NOTINCR_, ZINPRG_NOTINCR_, ZINPRH_NOTINCR_, ZPFPR_, YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH& + & ) ELSE - !CALL ARO_RAIN_ICE (NPROMICRO,KLEV,IKU,IKL,KLON,KLEV,KFDIA,NRR,KSTEP+1,NSPLITR,& !this is the target version - CALL ARO_RAIN_ICE (NPROMICRO,KLEV,IKU,IKL,KFDIA,KLEV,KFDIA,NRR,KSTEP+1,NSPLITR,& - & LOSUBG_COND, CSUBG_AUCV_RC, CSUBG_AUCV_RI, LOSEDIC,CSEDIM, CMICRO, ZDT,ZDZZ_ ,& - & ZRHODJM__(:,1:KLEV),ZRHODREFM__(:,1:KLEV), ZEXNREFM_, ZPABSM__(:,1:KLEV),& - & ZHLC_HRC__(:,1:KLEV), ZHLC_HCF__(:,1:KLEV),& - & ZHLI_HRI__(:,1:KLEV), ZHLI_HCF__(:,1:KLEV),& - & ZTHM__(:,1:KLEV),ZRM_, ZSIGS__(:,1:KLEV), ZNEBMNH_, ZTHS__(:,1:KLEV),ZRS_,& - & ZEVAP_, ZCIT_,LOWARM,ZSEA_,ZTOWN_, & - & ZICLDFR_, ZWCLDFR_, ZSSIO_, ZSSIU_, ZIFR_, & - & LOCND2, LKOGAN, LMODICEDEP,& - & ZINPRR_NOTINCR_, ZINPRS_NOTINCR_, ZINPRG_NOTINCR_, ZINPRH_NOTINCR_,ZPFPR_,& - & YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH,& - & YSPP1, YSPP2, YSPP3) + !CALL ARO_RAIN_ICE (NPROMICRO,KLEV,IKU,IKL,KLON,KLEV,KFDIA,NRR,KSTEP+1,& !this is the target version + CALL ARO_RAIN_ICE (NPROMICRO,YDCPG_OPTS%KFLEVG,IKU,IKL,YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,YDCPG_BNDS%KFDIA,NRR,YDCPG_OPTS%KSTEP+1, & + & NSPLITR, LOSUBG_COND, CSUBG_AUCV_RC, CSUBG_AUCV_RI, LOSEDIC, CSEDIM, CMICRO, ZDT, ZDZZ_, & + & ZRHODJM__(:, 1:YDCPG_OPTS%KFLEVG), ZRHODREFM__(:, 1:YDCPG_OPTS%KFLEVG), ZEXNREFM_, ZPABSM__(:, 1:YDCPG_OPTS%KFLEVG), & + & ZHLC_HRC_, ZHLC_HCF_, ZHLI_HRI_, ZHLI_HCF_, & + & ZTHM__(:, 1:YDCPG_OPTS%KFLEVG), & + & ZRM_, ZSIGS__(:, 1:YDCPG_OPTS%KFLEVG), ZNEBMNH_, ZTHS__(:, 1:YDCPG_OPTS%KFLEVG), ZRS_, ZEVAP_, & + & ZCIT_, LOWARM, ZSEA_, ZTOWN_, & + & ZICLDFR_, ZWCLDFR_, ZSSIO_, ZSSIU_, ZIFR_, & + & LOCND2, LKOGAN, LMODICEDEP,& + & ZINPRR_NOTINCR_, ZINPRS_NOTINCR_, ZINPRG_NOTINCR_, & + & ZINPRH_NOTINCR_, ZPFPR_, & + & YDDDH, YDMODEL%YRML_DIAG%YRLDDH, YDMODEL%YRML_DIAG%YRMDDH,& + & ZSPP_ALL%YSPP_ICENU,ZSPP_ALL%YSPP_KGN_ACON,ZSPP_ALL%YSPP_KGN_SBGR) ENDIF - DO JLON=KIDIA,KFDIA + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ZINPRR_(JLON)=ZINPRR_(JLON)+ZINPRR_NOTINCR_(JLON) ZINPRS_(JLON)=ZINPRS_(JLON)+ZINPRS_NOTINCR_(JLON) ZINPRG_(JLON)=ZINPRG_(JLON)+ZINPRG_NOTINCR_(JLON) @@ -3388,27 +3189,27 @@ IF (LMICRO) THEN ENDDO !conversion de la tendance de theta en tendance de T et inversion niveau - DO JLEV = 1,KLEV - DO JLON = KIDIA,KFDIA - PTENDT(JLON,JLEV)= PTENDT(JLON,JLEV)+(ZTHS__(JLON,JLEV)-ZTHSIN_(JLON,JLEV))*ZEXNREFM_(JLON,JLEV) - ZTENDT(JLON,JLEV)= ZTENDT(JLON,JLEV)+ZTHS__(JLON,JLEV)-ZTHSIN_(JLON,JLEV) + DO JLEV = 1,YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZTENDT(JLON,JLEV)= ZTENDT(JLON,JLEV)+(ZTHS__(JLON,JLEV)-ZTHSIN_(JLON,JLEV))*ZEXNREFM_(JLON,JLEV) + ZTENDTT(JLON,JLEV)= ZTENDTT(JLON,JLEV)+ZTHS__(JLON,JLEV)-ZTHSIN_(JLON,JLEV) ENDDO ENDDO - + !inversion niveaux tendances des ri et conversion en qi en multipliant par qd DO JR=1,NRR - DO JLEV=1,KLEV - DO JLON=KIDIA,KFDIA - PTENDR(JLON,JLEV,JR)=PTENDR(JLON,JLEV,JR)+(ZRS_(JLON,JLEV,JR)-ZRSIN_(JLON,JLEV,JR))*ZQDM(JLON,JLEV) + DO JLEV=1,YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZTENDRA(JLON,JLEV,JR)=ZTENDRA(JLON,JLEV,JR)+(ZRS_(JLON,JLEV,JR)-ZRSIN_(JLON,JLEV,JR))*ZQDM(JLON,JLEV) ENDDO ENDDO ENDDO ! Tendances des variables LIMA DO JGFL=1,NLIMA - DO JLEV = 1, KLEV - DO JLON=KIDIA,KFDIA - PTENDLIMA(JLON,JLEV,JGFL)=PTENDLIMA(JLON,JLEV,JGFL)+(ZLIMAS_(JLON,JLEV,JGFL)-ZLIMASIN_(JLON,JLEV,JGFL)) + DO JLEV = 1, YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZTENDLIMA(JLON,JLEV,JGFL)=ZTENDLIMA(JLON,JLEV,JGFL)+(ZLIMAS_(JLON,JLEV,JGFL)-ZLIMASIN_(JLON,JLEV,JGFL)) ENDDO ENDDO ENDDO @@ -3416,50 +3217,50 @@ IF (LMICRO) THEN IF (LINTFLEX) THEN !inversion of levels of upper-air precipitation DO JR=2,NRR ! no precip for qv - ZFPR(KIDIA:KFDIA,0,JR)=0._JPRB ! zero precip at top of atmosphere - DO JLEV=1,KLEV - ZFPR(KIDIA:KFDIA,JLEV,JR)=ZPFPR_(KIDIA:KFDIA,JLEV,JR) + ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,0,JR)=0._JPRB ! zero precip at top of atmosphere + DO JLEV=1,YDCPG_OPTS%KFLEVG + ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,JR)=ZPFPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,JR) ENDDO ENDDO ENDIF - !store cumulative 3D precipitations for mocage + !store cumulative 3D precipitations for mocage IF (LFPREC3D) THEN DO JR=2,NRR ! no precip for qv - DO JLEV=1,KLEV - DO JLON=KIDIA,KFDIA - PEZDIAG(JLON,JLEV,4)=PEZDIAG(JLON,JLEV,4)+ZPFPR_(JLON,JLEV,JR)*1000._JPRB*PDT + DO JLEV=1,YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZP1EZDIAG(JLON,JLEV,4)=ZP1EZDIAG(JLON,JLEV,4)+ZPFPR_(JLON,JLEV,JR)*1000._JPRB*YDCPG_OPTS%ZDTPHY ENDDO ENDDO ENDDO ENDIF - !prints - IF(MOD(KSTEP+1,NPRINTFR)==0) THEN + !prints + IF(MOD(YDCPG_OPTS%KSTEP+1,NPRINTFR)==0) THEN WRITE(NULOUT,*)'PTENDT en sortie de rain_ice' WRITE(NULOUT,*)'ZTHS__ en sortie de rain_ice' - DO JLEV=1,KLEV - WRITE(NULOUT,*)PTENDT(NPTP,JLEV),ZTHS__(NPTP,JLEV) + DO JLEV=1,YDCPG_OPTS%KFLEVG + WRITE(NULOUT,*)ZTENDT(NPTP,JLEV),ZTHS__(NPTP,JLEV) ENDDO - WRITE (NULOUT,*)'JLEV ZTENDQv ZTZNDQc ZTENDQr ZTENDQi' ,'ZTENDQs ZTENDQg' - DO JLEV=1,KLEV - WRITE(NULOUT,'(I2,X,6E11.4)')JLEV,PTENDR(NPTP,JLEV,1),PTENDR(NPTP,JLEV,2),& - & PTENDR(NPTP,JLEV,3),PTENDR(NPTP,JLEV,4),PTENDR(NPTP,JLEV,5),PTENDR(NPTP,JLEV,6) + WRITE (NULOUT,*)'JLEV ZTENDQv ZTZNDQc ZTENDQr ZTENDQi' ,'ZTENDQs ZTENDQg' + DO JLEV=1,YDCPG_OPTS%KFLEVG + WRITE(NULOUT,'(I2,X,6E11.4)')JLEV,ZTEND_Q(NPTP,JLEV),ZTEND_L(NPTP,JLEV),& + & ZTEND_R(NPTP,JLEV),ZTEND_I(NPTP,JLEV),ZTEND_S(NPTP,JLEV),ZTEND_G(NPTP,JLEV) ENDDO - WRITE (NULOUT,*) 'ZSRCS__ et ZNEBMNH_',MAXVAL(ZSRCS__),MAXVAL(ZNEBMNH_) + WRITE (NULOUT,*) 'ZSRCS__ et ZNEBMNH_',MAXVAL(ZSRCS__),MAXVAL(ZNEBMNH_) ENDIF - + IF (LRDEPOS) THEN ISPLITR=NSPLITR ! Swapp because IN and OUT will be needed simultaneously CALL SWAP_SVM - CALL ARO_RAINAERO(KFDIA,KLEV,NGFL_EXT,NRR, PDT,ZSVMIN_,ZZZ_,& - & ZPABSM__(:,1:KLEV),ZTHM__(:,1:KLEV),ZRHODREFM__(:,1:KLEV),& - & KSTEP+1,ZRM_,ZEVAP_, ISPLITR, ZSVM_ ) + CALL ARO_RAINAERO(YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, NGFL_EXT, NRR, YDCPG_OPTS%ZDTPHY, ZSVMIN_, ZZZ_, ZPABSM__(:, 1:YDCPG_OPTS%KFLEVG), & + & ZTHM__(:, 1:YDCPG_OPTS%KFLEVG), ZRHODREFM__(:, 1:YDCPG_OPTS%KFLEVG), YDCPG_OPTS%KSTEP+1, ZRM_, & + & ZEVAP_, ISPLITR, ZSVM_ ) ! return to tendency DO JGFL=1,NGFL_EXT - DO JLEV = 1,KLEV - DO JLON = KIDIA,KFDIA - PTENDEXT(JLON,JLEV,JGFL)=PTENDEXT(JLON,JLEV,JGFL)+(ZSVM_(JLON,JLEV,JGFL)-ZSVMIN_(JLON,JLEV,JGFL))*ZINVDT + DO JLEV = 1,YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZTENDEXT(JLON,JLEV,JGFL)=ZTENDEXT(JLON,JLEV,JGFL)+(ZSVM_(JLON,JLEV,JGFL)-ZSVMIN_(JLON,JLEV,JGFL))*ZINVDT ENDDO ENDDO ENDDO @@ -3470,23 +3271,25 @@ ENDIF ! LMICRO ! start LHN F.Meier 2020 ****** LNUDGLHNREAD=.TRUE. -IF(MYPROC==1.AND.KSTEP==1.AND.LNUDGLH)THEN - CALL NUDGLHCLIMPROF(KLEV,LNUDGLHNREAD) +IF(MYPROC==1.AND.YDCPG_OPTS%KSTEP==1.AND.LNUDGLH)THEN + CALL NUDGLHCLIMPROF(YDCPG_OPTS%KFLEVG, LNUDGLHNREAD) ENDIF ! save accumulated precipitation for LHN -IF (LNUDGLH.AND.KSTEP == NSTARTNUDGLH.AND.NSTARTNUDGLH > 0) THEN +IF (LNUDGLH.AND.YDCPG_OPTS%KSTEP == NSTARTNUDGLH.AND.NSTARTNUDGLH > 0) THEN !IF(MYPROC==1) WRITE(NULOUT,*)'save precip for LHN - STEP:',KSTEP, & ! & 'NUDGINGINT:',NINTNUDGLH,'NSTARTNUDGLH:',NSTARTNUDGLH - CALL NUDGLHPRECIP(KIDIA,KFDIA,KLON,ZACPRR_(KIDIA:KFDIA),& - & ZACPRS_(KIDIA:KFDIA),ZACPRG_(KIDIA:KFDIA),KBL) + CALL NUDGLHPRECIP(YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, ZACPRR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), & + & ZACPRS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZACPRG_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), YDCPG_BNDS%KBL & + & ) ENDIF -ISTEP=KSTEP-NSTARTNUDGLH +ISTEP=YDCPG_OPTS%KSTEP-NSTARTNUDGLH ! if LNUDGLH and KSTEP in nudging interval -IF (LNUDGLH.AND.KSTEP > NSTARTNUDGLH.AND.KSTEP <= NSTOPNUDGLH) THEN +IF (LNUDGLH.AND.YDCPG_OPTS%KSTEP > NSTARTNUDGLH.AND.YDCPG_OPTS%KSTEP <= NSTOPNUDGLH) THEN ! safe LH profile for step before LHN step LLHN=.FALSE. IF(MOD(ISTEP+1,NINTNUDGLH)==0) THEN - CALL NUDGLHPREP(KIDIA,KFDIA,KLON,KLEV,ZTENDT,KBL) + CALL NUDGLHPREP(YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, ZTENDTT, & + & YDCPG_BNDS%KBL ) ENDIF ! LHN step IF(MOD(ISTEP,NINTNUDGLH)==0) THEN @@ -3497,31 +3300,31 @@ IF (LNUDGLH.AND.KSTEP > NSTARTNUDGLH.AND.KSTEP <= NSTOPNUDGLH) THEN JLHSTEP=NINT(1.0_JPRB*ISTEP/(NTIMESPLITNUDGLH*NINTNUDGLH))+2 !IF(MYPROC==1) WRITE(NULOUT,*)'observation array:',JLHSTEP ! call nudging routine to modify LHN profile where necessary - CALL NUDGLH(NGPTOT,NPROMA,NGPBLKS,KIDIA,KFDIA,KLON,KLEV,ZACPRR_(KIDIA:KFDIA),& - & ZACPRS_(KIDIA:KFDIA),ZACPRG_(KIDIA:KFDIA),& - & ZTENDT(KIDIA:KFDIA,1:KLEV),JLHSTEP,KBL,& - & ZEXNREFM_(KIDIA:KFDIA,1:KLEV),.TRUE.,& - & LLHN(KIDIA:KFDIA,1:KLEV),ZPABSM__(KIDIA:KFDIA,1:KLEV),ZDT,& - & ZTHM__(KIDIA:KFDIA,1:KLEV),ZRM_(KIDIA:KFDIA,1:KLEV,:),& - & ZQDM(KIDIA:KFDIA,1:KLEV),PTENDR(KIDIA:KFDIA,1:KLEV,1),NRR,LNUDGLHNREAD) + CALL NUDGLH(NGPTOT, NPROMA, NGPBLKS, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, & + & ZACPRR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZACPRS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZACPRG_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), & + & ZTENDTT(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), JLHSTEP, YDCPG_BNDS%KBL, ZEXNREFM_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), & + & .TRUE., LLHN(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), ZPABSM__(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), & + & ZDT, ZTHM__(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), ZRM_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG, :), & + & ZQDM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), ZTEND_Q(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), & + & NRR, LNUDGLHNREAD) !IF(MYPROC==1) WRITE(NULOUT,*)'calling LH successful - convert TH to T and !add temperature tendency' ! add LHN tendency to physics tendency, limit LHN tendency ZMAXTEND=0.0_JPRB ZMINTEND=0.0_JPRB - DO JLEV = 1,KLEV - DO JLON = KIDIA,KFDIA + DO JLEV = 1,YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA IF(LLHN(JLON,JLEV))THEN - ZTENDT(JLON,JLEV)=MAX(ZTENDT(JLON,JLEV),RMINNUDGLH) - ZTENDT(JLON,JLEV)=MIN(ZTENDT(JLON,JLEV),RMAXNUDGLH) - PTENDT(JLON,JLEV)=PTENDT(JLON,JLEV)+ZTENDT(JLON,JLEV)*& + ZTENDTT(JLON,JLEV)=MAX(ZTENDTT(JLON,JLEV),RMINNUDGLH) + ZTENDTT(JLON,JLEV)=MIN(ZTENDTT(JLON,JLEV),RMAXNUDGLH) + ZTENDT(JLON,JLEV)=ZTENDT(JLON,JLEV)+ZTENDTT(JLON,JLEV)*& & RAMPLIFY*ZEXNREFM_(JLON,JLEV) - ZMINTEND=MIN(ZTENDT(JLON,JLEV),ZMINTEND) - ZMAXTEND=MAX(ZTENDT(JLON,JLEV),ZMAXTEND) + ZMINTEND=MIN(ZTENDTT(JLON,JLEV),ZMINTEND) + ZMAXTEND=MAX(ZTENDTT(JLON,JLEV),ZMAXTEND) ! keep RH constant if LNUDGLHCOMPT=T - IF(PTM(JLON,JLEV)>0.01_JPRB.AND.LNUDGLHCOMPT)THEN - PTENDR(JLON,JLEV,1)=PTENDR(JLON,JLEV,1)+RLVTT/RV/((PTM(JLON,JLEV))**2._JPRB)* & - & ZTENDT(JLON,JLEV)*RAMPLIFY*ZEXNREFM_(JLON,JLEV)*ZQSAT(JLON,JLEV) + IF(YDMF_PHYS_BASE_STATE%T(JLON,JLEV)>0.01_JPRB.AND.LNUDGLHCOMPT)THEN + ZTEND_Q(JLON,JLEV)=ZTEND_Q(JLON,JLEV)+RLVTT/RV/((YDMF_PHYS_BASE_STATE%T(JLON,JLEV))**2._JPRB)* & + & ZTENDTT(JLON,JLEV)*RAMPLIFY*ZEXNREFM_(JLON,JLEV)*ZQSAT(JLON,JLEV) ENDIF ENDIF ENDDO @@ -3529,13 +3332,14 @@ IF (LNUDGLH.AND.KSTEP > NSTARTNUDGLH.AND.KSTEP <= NSTOPNUDGLH) THEN !IF(ZMINTEND<-0.01)WRITE(*,*)'ZMINTEND',ZMINTEND !IF(ZMAXTEND>0.01)WRITE(*,*)'ZMAXTEND',ZMAXTEND ! write LH profiles to array to save it for next time step - CALL NUDGLHPREP(KIDIA,KFDIA,KLON,KLEV,ZTENDT,KBL) + CALL NUDGLHPREP(YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, ZTENDTT, & + & YDCPG_BNDS%KBL ) IF(MYPROC==1) WRITE(NULOUT,*)'calling LH successful finished' ! use LHN factor again on following time steps depending on NTAUNUDGLH ELSEIF(MOD(ISTEP,NINTNUDGLH)<NTAUNUDGLH.AND.MOD(ISTEP,NINTNUDGLH)>0 & & .AND.ISTEP>NINTNUDGLH) THEN IF(MYPROC==1)THEN - WRITE(NULOUT,*)'LH nudging applied-STEP:',KSTEP,'NUDGINGINT:',NINTNUDGLH + WRITE(NULOUT,*)'LH nudging applied-STEP:',YDCPG_OPTS%KSTEP,'NUDGINGINT:',NINTNUDGLH WRITE(NULOUT,*)'NTAUNUDGLH:',NTAUNUDGLH ENDIF ! get index for reading correctly most recent obs @@ -3543,29 +3347,29 @@ IF (LNUDGLH.AND.KSTEP > NSTARTNUDGLH.AND.KSTEP <= NSTOPNUDGLH) THEN !IF(MYPROC==1) WRITE(NULOUT,*)'observation array:',JLHSTEP ! call nudging routine to modify LHN profile where necessary ! LHN factor is not recalculated but might be damped by RDAMPNUDGLH - CALL NUDGLH(NGPTOT,NPROMA,NGPBLKS,KIDIA,KFDIA,KLON,KLEV,ZACPRR_(KIDIA:KFDIA),& - & ZACPRS_(KIDIA:KFDIA),ZACPRG_(KIDIA:KFDIA),& - & ZTENDT(KIDIA:KFDIA,1:KLEV),JLHSTEP,KBL,& - & ZEXNREFM_(KIDIA:KFDIA,1:KLEV),.FALSE.,& - & LLHN(KIDIA:KFDIA,1:KLEV),ZPABSM__(KIDIA:KFDIA,1:KLEV),ZDT,& - & ZTHM__(KIDIA:KFDIA,1:KLEV),ZRM_(KIDIA:KFDIA,1:KLEV,:),& - & ZQDM(KIDIA:KFDIA,1:KLEV),PTENDR(KIDIA:KFDIA,1:KLEV,1),NRR,LNUDGLHNREAD) + CALL NUDGLH(NGPTOT, NPROMA, NGPBLKS, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, & + & ZACPRR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZACPRS_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), ZACPRG_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA), & + & ZTENDTT(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), JLHSTEP, YDCPG_BNDS%KBL, ZEXNREFM_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), & + & .FALSE., LLHN(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), ZPABSM__(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), & + & ZDT, ZTHM__(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), ZRM_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG, :), & + & ZQDM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), ZTEND_Q(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA, 1:YDCPG_OPTS%KFLEVG), & + & NRR, LNUDGLHNREAD) !IF(MYPROC==1) WRITE(NULOUT,*)'calling LH successful - convert TH to T and !add temperature tendency' ! add LHN tendency to physics tendency, limit LHN tendency - DO JLEV = 1,KLEV - DO JLON = KIDIA,KFDIA + DO JLEV = 1,YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA IF(LLHN(JLON,JLEV))THEN - ZTENDT(JLON,JLEV)=MAX(ZTENDT(JLON,JLEV),RMINNUDGLH) - ZTENDT(JLON,JLEV)=MIN(ZTENDT(JLON,JLEV),RMAXNUDGLH) - PTENDT(JLON,JLEV)= PTENDT(JLON,JLEV)+ZTENDT(JLON,JLEV)*& + ZTENDTT(JLON,JLEV)=MAX(ZTENDTT(JLON,JLEV),RMINNUDGLH) + ZTENDTT(JLON,JLEV)=MIN(ZTENDTT(JLON,JLEV),RMAXNUDGLH) + ZTENDT(JLON,JLEV)= ZTENDT(JLON,JLEV)+ZTENDTT(JLON,JLEV)*& & RAMPLIFY*ZEXNREFM_(JLON,JLEV) - ZMINTEND=MIN(ZTENDT(JLON,JLEV),ZMINTEND) - ZMAXTEND=MAX(ZTENDT(JLON,JLEV),ZMAXTEND) + ZMINTEND=MIN(ZTENDTT(JLON,JLEV),ZMINTEND) + ZMAXTEND=MAX(ZTENDTT(JLON,JLEV),ZMAXTEND) ! keep RH constant if LNUDGLHCOMPT=T - IF(PTM(JLON,JLEV)>0.01_JPRB.AND.LNUDGLHCOMPT)THEN - PTENDR(JLON,JLEV,1)=PTENDR(JLON,JLEV,1)+RLVTT/RV/((PTM(JLON,JLEV))**2._JPRB)*& - & ZTENDT(JLON,JLEV)*RAMPLIFY*ZEXNREFM_(JLON,JLEV)*ZQSAT(JLON,JLEV) + IF(YDMF_PHYS_BASE_STATE%T(JLON,JLEV)>0.01_JPRB.AND.LNUDGLHCOMPT)THEN + ZTEND_Q(JLON,JLEV)=ZTEND_Q(JLON,JLEV)+RLVTT/RV/((YDMF_PHYS_BASE_STATE%T(JLON,JLEV))**2._JPRB)*& + & ZTENDTT(JLON,JLEV)*RAMPLIFY*ZEXNREFM_(JLON,JLEV)*ZQSAT(JLON,JLEV) ENDIF ENDIF ENDDO @@ -3573,17 +3377,18 @@ IF (LNUDGLH.AND.KSTEP > NSTARTNUDGLH.AND.KSTEP <= NSTOPNUDGLH) THEN !IF(ZMAXTEND>0.01) WRITE(*,*)'ZMAXTEND',ZMAXTEND !IF(ZMINTEND<-0.01) WRITE(*,*)'ZMINTEND',ZMINTEND ! write LHN profiles to array for next timestep - CALL NUDGLHPREP(KIDIA,KFDIA,KLON,KLEV,ZTENDT,KBL) + CALL NUDGLHPREP(YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, ZTENDTT, & + & YDCPG_BNDS%KBL ) IF(MYPROC==1) WRITE(NULOUT,*)'calling LH successful finished' ENDIF ENDIF ! **end latent heat nudging*********** - + ! ------------------------------------------------------------------ ! 11 - SAVE FIELDS FOR EXT. SURFACE. ! -------------------------------------------------------------------- -! Cette partie n'est plus necessaire apres branchement de la physique +! Cette partie n'est plus necessaire apres branchement de la physique ! de surface sous apl_arome ! ------------------------------------------------------------------ @@ -3598,11 +3403,11 @@ IF (LUSECHEM) THEN ! JOUR DU MOIS IDAY = NINDAT - 10000*IYEAR - 100*IMONTH - DO JLON = KIDIA,KFDIA - ZLAT_(JLON) = 180. * ASIN(PGEMU(JLON)) / (2.*ASIN(1.)) - ZLON_(JLON) = 180. * PGELAM(JLON) / (2.*ASIN(1.)) - ZZENITH_(JLON) = ACOS( PMU0(JLON) ) - ZZS_(JLON)=POROG(JLON)/RG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZLAT_(JLON) = 180. * ASIN(YDVARS%GEOMETRY%GEMU%T0(JLON)) / (2.*ASIN(1.)) + ZLON_(JLON) = 180. * YDVARS%GEOMETRY%GELAM%T0(JLON) / (2.*ASIN(1.)) + ZZENITH_(JLON) = ACOS( ZRDG_MU0(JLON) ) + ZZS_(JLON)=YDVARS%GEOMETRY%OROG%T0(JLON)/RG ZALB_UV_(JLON)=ZALBP(JLON,1) ENDDO @@ -3610,26 +3415,26 @@ IF (LUSECHEM) THEN CALL SWAP_SVS DO JGFL=1,NGFL_EXT - DO JLEV=1,KLEV - DO JLON= KIDIA,KFDIA + DO JLEV=1,YDCPG_OPTS%KFLEVG + DO JLON= YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ! modify input ZSVSIN_(JLON,JLEV,JGFL)=MAX(0.0_JPRB, ZSVSIN_(JLON,JLEV,JGFL)) ENDDO ENDDO ENDDO IEZDIAG_CHEM=NGFL_EZDIAG-IOFF_MFSHAL+1 - CALL ARO_MNHC(ZSVSIN_,& - & ZRHODREFM__(:,1:KLEV),PDT, ZTHM__(:,1:KLEV), ZPABSM__(:,1:KLEV), ZRM_, ZLAT_, ZLON_, ZALB_UV_, & - & ZZS_, ZZENITH_,ZZZ_, IYEAR,IMONTH,IDAY, REAL(RHGMT,JPRB)+PDT/2._JPRB,& - & KFDIA,KLEV,NGFL_EXT, NRR, KSTEP+1,NULOUT,IEZDIAG_CHEM, ZPEZDIAG_(:,:,IOFF_MFSHAL:NGFL_EZDIAG),ZSVS_ ) + CALL ARO_MNHC(ZSVSIN_, ZRHODREFM__(:, 1:YDCPG_OPTS%KFLEVG), YDCPG_OPTS%ZDTPHY, ZTHM__(:, 1:YDCPG_OPTS%KFLEVG), & + & ZPABSM__(:, 1:YDCPG_OPTS%KFLEVG), ZRM_, ZLAT_, ZLON_, ZALB_UV_, ZZS_, ZZENITH_, ZZZ_, IYEAR, & + & IMONTH, IDAY, REAL(RHGMT, JPRB)+YDCPG_OPTS%ZDTPHY/2._JPRB, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, NGFL_EXT, & + & NRR, YDCPG_OPTS%KSTEP+1, NULOUT, IEZDIAG_CHEM, ZPEZDIAG_(:, :, IOFF_MFSHAL:NGFL_EZDIAG), ZSVS_ ) - PEZDIAG(KIDIA:KFDIA,1:KLEV,IOFF_MFSHAL:NGFL_EZDIAG)=ZPEZDIAG_(KIDIA:KFDIA,1:KLEV,IOFF_MFSHAL:NGFL_EZDIAG) + ZP1EZDIAG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,IOFF_MFSHAL:NGFL_EZDIAG)=ZPEZDIAG_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG,IOFF_MFSHAL:NGFL_EZDIAG) !inversion niveau de la tendance des scalaires passifs DO JGFL=1,NGFL_EXT - DO JLEV = 1,KLEV - DO JLON = KIDIA,KFDIA - PTENDEXT(JLON,JLEV,JGFL)=PTENDEXT(JLON,JLEV,JGFL)+(ZSVS_(JLON,JLEV,JGFL)-ZSVSIN_(JLON,JLEV,JGFL)) + DO JLEV = 1,YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZTENDEXT(JLON,JLEV,JGFL)=ZTENDEXT(JLON,JLEV,JGFL)+(ZSVS_(JLON,JLEV,JGFL)-ZSVSIN_(JLON,JLEV,JGFL)) ENDDO ENDDO ENDDO @@ -3640,26 +3445,33 @@ ENDIF ! LUSECHEM ! 13 - STOCHASTIC PHYSICS : PERTURB TENDENCIES ! ----------------------------------------------------------------- -IF(YSPPT_CONFIG%LSPSDT) THEN +IF(LSPSDT) THEN + + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZMULNOISE(JLON,1)=PGP2DSDT(JLON,1,1) ! Use a single 2D pattern for all levels + ENDDO + + ZDUMMY(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=0.0_JPRB ! Dummy nonphys tendency for compatibility with ecmwf stochphy + CALL SPPTEN (YDMODEL%YRML_PHY_EC%YRECLDP, YGFL, & + & YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, 1, YDCPG_OPTS%ZDTPHY, & ! In: block indices, physicstimestep + & PTSL=YDMF_PHYS_BASE_STATE%T, PQSL=YDMF_PHYS_BASE_STATE%Q, PA=YDVARS%A%T1, & ! In: (T,Q,cloud) forsupersatcheck + & PAP=YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF, PAPH=YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE, & ! In: Pfull, Phalf + & PDYN_U=ZDUMMY, PDYN_V=ZDUMMY, PDYN_T=ZDUMMY, PDYN_Q=ZDUMMY, & ! In: dummy nonphys tendencies + & PUNP_U=ZDUMMY, PUNP_V=ZDUMMY, PUNP_T=ZDUMMY, PUNP_Q=ZDUMMY, & ! In: (u,v,t,qv) tendencies to perturb + & PPHY_U=YDMF_PHYS%OUT%TENDU, PPHY_V=YDMF_PHYS%OUT%TENDV, PPHY_T=ZTENDT, PPHY_Q=ZTEND_Q, & ! In: (u,v,t,qv) tendencies to perturb + & PMULNOISE=ZMULNOISE, & ! In: stochphy 3D random multiplicative pattern (less one) + & PTENU=YDMF_PHYS%OUT%TENDU, PTENV=YDMF_PHYS%OUT%TENDV, PTENT=ZTENDT, PTENQ=ZTEND_Q ) ! Out: (u,v,t,qv) total perturbed tendencies - ZDUMMY(KIDIA:KFDIA,1:KLEV)=0.0_JPRB ! Dummy nonphys tendency for compatibility with ecmwf stochphy - CALL SPPTEN (YDMODEL%YRML_PHY_EC%YRECLDP,YGFL, & - & KIDIA,KFDIA,KLON,KLEV,1,PDT, & ! In: block indices, physicstimestep - & PTSL=PTM,PQSL=PQVM, PA=PCLFS, PAP=PAPRSFM, PAPH=PAPRSM, & ! In: (T,Q,cloud) forsupersatcheck, Pfull, Phalf - & PDYN_U=ZDUMMY,PDYN_V=ZDUMMY,PDYN_T=ZDUMMY,PDYN_Q=ZDUMMY, & ! In: dummy nonphys tendencies - & PUNP_U=PTENDU,PUNP_V=PTENDV,PUNP_T=PTENDT,PUNP_Q=PTENDR(:,:,1), & ! In: (u,v,t,qv) tendencies to perturb - & PMULNOISE=PGP2DSDT(1,1,1), & ! In: stochphy 3D random multiplicative pattern (less one) - & PTENU=PTENDU,PTENV=PTENDV,PTENT=PTENDT,PTENQ=PTENDR(:,:,1) ) ! Out: (u,v,t,qv) total perturbed tendencies ENDIF -IF(LFORCENL.AND.(KSTEP*(TSPHY/RHOUR)>=NFORCESTART).AND.& - & (KSTEP*(TSPHY/RHOUR)<=NFORCEEND)) THEN - DO JLEV=1,KLEV - DO JLON=KIDIA,KFDIA - PTENDU(JLON,JLEV)=PTENDU(JLON,JLEV)+AMAGSTOPH_CASBS*PFORCEU(JLON,JLEV) - PTENDV(JLON,JLEV)=PTENDV(JLON,JLEV)+AMAGSTOPH_CASBS*PFORCEV(JLON,JLEV) - PTENDT(JLON,JLEV)=PTENDT(JLON,JLEV)+AMAGSTOPH_CASBS*PFORCET(JLON,JLEV) - PTENDR(JLON,JLEV,1)=PTENDR(JLON,JLEV,1)+AMAGSTOPH_CASBS*PFORCEQ(JLON,JLEV) +IF(LFORCENL.AND.(YDCPG_OPTS%KSTEP*(TSPHY/RHOUR)>=NFORCESTART).AND.& + & (YDCPG_OPTS%KSTEP*(TSPHY/RHOUR)<=NFORCEEND)) THEN + DO JLEV=1,YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + YDMF_PHYS%OUT%TENDU(JLON,JLEV)=YDMF_PHYS%OUT%TENDU(JLON,JLEV)+AMAGSTOPH_CASBS*YDMF_PHYS%FOR%U(JLON,JLEV) + YDMF_PHYS%OUT%TENDV(JLON,JLEV)=YDMF_PHYS%OUT%TENDV(JLON,JLEV)+AMAGSTOPH_CASBS*YDMF_PHYS%FOR%V(JLON,JLEV) + ZTENDT(JLON,JLEV)=ZTENDT(JLON,JLEV)+AMAGSTOPH_CASBS*YDMF_PHYS%FOR%T(JLON,JLEV) + ZTEND_Q(JLON,JLEV)=ZTEND_Q(JLON,JLEV)+AMAGSTOPH_CASBS*YDMF_PHYS%FOR%Q(JLON,JLEV) ENDDO ENDDO ENDIF @@ -3668,17 +3480,17 @@ ENDIF ! 14 - FINAL CALCULATIONS. ! -------------------------------------------------------------------- -!forcage pour declencher la ligne de grain +!forcage pour declencher la ligne de grain IF (LSQUALL) THEN IF (LTWOTL) THEN ZDT2=2*ZDT ELSE ZDT2=ZDT ENDIF - IF((KSTEP+1)*ZDT2 < 600._JPRB) THEN + IF((YDCPG_OPTS%KSTEP+1)*ZDT2 < 600._JPRB) THEN WRITE(NULOUT, *)'refroidissement impose de',NREFROI1,' a ',NREFROI2 - DO JLEV=KLEV,KLEV-20,-1 - PTENDT(NREFROI1:NREFROI2,JLEV)=-0.01_JPRB + DO JLEV=YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KFLEVG-20,-1 + ZTENDT(NREFROI1:NREFROI2,JLEV)=-0.01_JPRB ENDDO ENDIF ENDIF @@ -3686,168 +3498,418 @@ ENDIF !ecriture du buffer IF(LLMSE.OR.LSFORCS) THEN - DO JLON = KIDIA,KFDIA - PGPAR(JLON,MINPRR)=ZINPRR_(JLON)+ZSURFPREP(JLON)/1000._JPRB - PGPAR(JLON,MINPRS)=ZINPRS_(JLON)+ZSURFSNOW(JLON)/1000._JPRB - PGPAR(JLON,MINPRG)=ZINPRG_(JLON)+ZINPRH_(JLON) - PGPAR(JLON,MACPRR)=PGPAR(JLON,MACPRR)+(ZINPRR_(JLON)+ZSURFPREP(JLON)/1000._JPRB)*PDT - PGPAR(JLON,MACPRS)=PGPAR(JLON,MACPRS)+(ZINPRS_(JLON)+ZSURFSNOW(JLON)/1000._JPRB)*PDT - PGPAR(JLON,MACPRG)=PGPAR(JLON,MACPRG)+(ZINPRG_(JLON)+ZINPRH_(JLON))*PDT - ENDDO - PGPAR(KIDIA:KFDIA,MVTS)=ZTSURF(KIDIA:KFDIA) - PGPAR(KIDIA:KFDIA,MVEMIS)=ZEMIS(KIDIA:KFDIA) - PGPAR(KIDIA:KFDIA,MVQS)=ZQS(KIDIA:KFDIA) + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + YDCPG_GPAR%INPRR(JLON)=ZINPRR_(JLON)+ZSURFPREP(JLON)/1000._JPRB + YDCPG_GPAR%INPRS(JLON)=ZINPRS_(JLON)+ZSURFSNOW(JLON)/1000._JPRB + YDCPG_GPAR%INPRG(JLON)=ZINPRG_(JLON)+ZINPRH_(JLON) + YDCPG_GPAR%ACPRR(JLON)=YDCPG_GPAR%ACPRR(JLON)+(ZINPRR_(JLON)+ZSURFPREP(JLON)/1000._JPRB)*YDCPG_OPTS%ZDTPHY + YDCPG_GPAR%ACPRS(JLON)=YDCPG_GPAR%ACPRS(JLON)+(ZINPRS_(JLON)+ZSURFSNOW(JLON)/1000._JPRB)*YDCPG_OPTS%ZDTPHY + YDCPG_GPAR%ACPRG(JLON)=YDCPG_GPAR%ACPRG(JLON)+(ZINPRG_(JLON)+ZINPRH_(JLON))*YDCPG_OPTS%ZDTPHY + ENDDO + YDCPG_GPAR%VTS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=ZTSURF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) + YDCPG_GPAR%VEMIS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=ZEMIS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) + YDCPG_GPAR%VQS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=ZQS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) DO JSW=1,NSW - PGPAR(KIDIA:KFDIA,MALBDIR-1+JSW)=ZALBP(KIDIA:KFDIA,JSW) - PGPAR(KIDIA:KFDIA,MALBSCA-1+JSW)=ZALBD(KIDIA:KFDIA,JSW) + YDCPG_GPAR%ALBDIR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=ZALBP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW) + YDCPG_GPAR%ALBSCA(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW)=ZALBD(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JSW) ENDDO ENDIF -IF (LMUSCLFA) CALL ECR1D(NMUSCLFA,'PCLCT_apl',PCLCT,1,KLON) +IF (LMUSCLFA) CALL ECR1D(NMUSCLFA, 'PCLCT_apl', YDCPG_MISC%CLCT, 1, YDCPG_OPTS%KLON) ! initialisations for CFU for Rainfalls -DO JLEV = 0,KLEV - DO JLON = KIDIA,KFDIA +DO JLEV = 0,YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ! conversion from m/s in mm/s - PFPLSL(JLON,JLEV)= ZINPRR_(JLON)*1000._JPRB+ZSURFPREP(JLON) - PFPLSN(JLON,JLEV)= ZINPRS_(JLON)*1000._JPRB+ZSURFSNOW(JLON) - PFPLSG(JLON,JLEV)= ZINPRG_(JLON)*1000._JPRB - PFPLSH(JLON,JLEV)= ZINPRH_(JLON)*1000._JPRB + YDMF_PHYS%OUT%FPLSL(JLON,JLEV)= ZINPRR_(JLON)*1000._JPRB+ZSURFPREP(JLON) + YDMF_PHYS%OUT%FPLSN(JLON,JLEV)= ZINPRS_(JLON)*1000._JPRB+ZSURFSNOW(JLON) + YDMF_PHYS%OUT%FPLSG(JLON,JLEV)= ZINPRG_(JLON)*1000._JPRB + YDMF_PHYS%OUT%FPLSH(JLON,JLEV)= ZINPRH_(JLON)*1000._JPRB ! conversion in correct Unit for BADP (same as ALADIN) - PSTRTU(JLON,JLEV)= ZSFU_(JLON)*ZRHODREFM__(JLON,IKB) - PSTRTV(JLON,JLEV)= ZSFV_(JLON)*ZRHODREFM__(JLON,IKB) + YDMF_PHYS%OUT%STRTU(JLON,JLEV)= ZSFU_(JLON)*ZRHODREFM__(JLON,IKB) + YDMF_PHYS%OUT%STRTV(JLON,JLEV)= ZSFV_(JLON)*ZRHODREFM__(JLON,IKB) ENDDO ENDDO !Hail diagnostic -PDIAGH(KIDIA:KFDIA)=0._JPRB +YDMF_PHYS%OUT%DIAGH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB IF (LXXDIAGH) THEN - DO JLEV=1,KLEV - DO JLON=KIDIA,KFDIA - PDIAGH(JLON)=PDIAGH(JLON)+ZQGM(JLON,JLEV)*PDELPM(JLON,JLEV)*ZINVG + DO JLEV=1,YDCPG_OPTS%KFLEVG + DO JLON=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + YDMF_PHYS%OUT%DIAGH(JLON)=YDMF_PHYS%OUT%DIAGH(JLON)+ZQGM(JLON,JLEV)*YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP(JLON,JLEV)*ZINVG ENDDO ENDDO ENDIF ! lightening density IF (LFLASH) THEN - IF (KSTEP==0) PFLASH=0._JPRB + IF (YDCPG_OPTS%KSTEP==0) YDMF_PHYS%OUT%FLASH=0._JPRB - CALL DIAGFLASH(YDCFU,KIDIA,KFDIA,KLON,KLEV,KSTEP,& - &ZQCM,ZQIM,ZQRM,ZQSM,ZQGM,ZQHM,& - &PDELPM,ZTM,PWM,PLSM,PFLASH) + CALL DIAGFLASH(YDCFU,YDMODEL%YRML_PHY_MF,YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA,YDCPG_OPTS%KLON,YDCPG_OPTS%KFLEVG,YDCPG_OPTS%KSTEP,& + &ZQCM,ZQIM,ZQRM,ZQSM,ZQGM,ZQHM,YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP,ZTM,YDMF_PHYS_BASE_STATE%YCPG_PHY%W,ZDUMMY,ZDUMMY,ZDUMMY,ZDUMMY,& + &YDMF_PHYS_SURF%GSD_VF%PLSM, YDMF_PHYS%OUT%FLASH) ENDIF !!! modif pour LMSE non activee IF (LLMSE) THEN - DO JLEV=1,KSGST+1 - DO JLON = KIDIA,KFDIA - PFCS(JLON,JLEV)=-ZSFTH_(JLON)*ZRHODREFM__(JLON,IKB)*RCPD - PFCLL(JLON,JLEV) = PFCLL(JLON,JLEV)*ZRHODREFM__(JLON,IKB) - PFCLN(JLON,JLEV) = PFCLN(JLON,JLEV)*ZRHODREFM__(JLON,IKB) - PFEVL(JLON,JLEV) = PFEVL(JLON,JLEV)*ZRHODREFM__(JLON,IKB) - PFEVN(JLON,JLEV) = PFEVN(JLON,JLEV)*ZRHODREFM__(JLON,IKB) + DO JLEV=1,NTSSG+1 + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + YDMF_PHYS%OUT%FCS(JLON,JLEV)=-ZSFTH_(JLON)*ZRHODREFM__(JLON,IKB)*RCPD + YDMF_PHYS%OUT%FCLL(JLON,JLEV) = YDMF_PHYS%OUT%FCLL(JLON,JLEV)*ZRHODREFM__(JLON,IKB) + YDMF_PHYS%OUT%FCLN(JLON,JLEV) = YDMF_PHYS%OUT%FCLN(JLON,JLEV)*ZRHODREFM__(JLON,IKB) + YDMF_PHYS%OUT%FEVL(JLON,JLEV) = YDMF_PHYS%OUT%FEVL(JLON,JLEV)*ZRHODREFM__(JLON,IKB) + YDMF_PHYS%OUT%FEVN(JLON,JLEV) = YDMF_PHYS%OUT%FEVN(JLON,JLEV)*ZRHODREFM__(JLON,IKB) ENDDO ENDDO ENDIF IF (LSFORCS) THEN - DO JLEV=1,KSGST+1 - DO JLON = KIDIA,KFDIA - PFCS(JLON,JLEV)=-ZSFTH_(JLON)*ZRHODREFM__(JLON,IKB)*RCPD + DO JLEV=1,NTSSG+1 + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + YDMF_PHYS%OUT%FCS(JLON,JLEV)=-ZSFTH_(JLON)*ZRHODREFM__(JLON,IKB)*RCPD ZDELTA=MAX(0.0_JPRB,SIGN(1.0_JPRB,RTT-ZTSURF(JLON))) - PFCLL(JLON,JLEV)=-ZSFRV_(JLON)*ZRHODREFM__(JLON,IKB)* FOLH (ZTSURF(JLON),0._JPRB)*(1.0_JPRB-ZDELTA) - PFCLN(JLON,JLEV)=-ZSFRV_(JLON)*ZRHODREFM__(JLON,IKB)* FOLH (ZTSURF(JLON),0._JPRB)*ZDELTA + YDMF_PHYS%OUT%FCLL(JLON,JLEV)=-ZSFRV_(JLON)*ZRHODREFM__(JLON,IKB)* FOLH (ZTSURF(JLON),0._JPRB)*(1.0_JPRB-ZDELTA) + YDMF_PHYS%OUT%FCLN(JLON,JLEV)=-ZSFRV_(JLON)*ZRHODREFM__(JLON,IKB)* FOLH (ZTSURF(JLON),0._JPRB)*ZDELTA ENDDO ENDDO -ENDIF +ENDIF -DO JSG = 1, KSGST+1 - DO JLEV = 0, KLEV - DO JLON = KIDIA, KFDIA - PFRTH(JLON,JLEV,JSG)=PFRTH(JLON,JLEV,JSG)+ZBUDTH_(JLON) +DO JSG = 1, NTSSG+1 + DO JLEV = 0, YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA + YDMF_PHYS%OUT%FRTH(JLON,JLEV,JSG)=YDMF_PHYS%OUT%FRTH(JLON,JLEV,JSG)+ZBUDTH_(JLON) ENDDO ENDDO ENDDO +IF (LFLEXDIA) THEN + ! surface variables + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS_SURF%GSD_VF%PLSM,'SVLSM',YDDDH,CDTYPE='V') + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTSURF,'SVTS',YDDDH,CDTYPE='V') + !am: FIXME: issue of shape of PF_T1 (2D) when arg should be 1D + !CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS_SURF%GSP_SG%PF_T1,'SVWN',YDDDH,CDTYPE='V') + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%TCLS,'SVTCLS',YDDDH,CDTYPE='V') + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%QCLS,'SVQCLS',YDDDH,CDTYPE='V') + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%RHCLS,'SVHUCLS',YDDDH,CDTYPE='V') + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%UCLS,'SVUCLS',YDDDH,CDTYPE='V') + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%VCLS,'SVVCLS',YDDDH,CDTYPE='V') + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%CLPH,'SVPBLH',YDDDH,CDTYPE='V') + ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_SURF%GSD_VF%PLSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)*ZWS2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SVWS',YDDDH,CDTYPE='V') + ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_SURF%GSD_VF%PLSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)*ZWP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SVWP',YDDDH,CDTYPE='V') + ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_SURF%GSD_VF%PLSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)*ZWSI2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SVWIS',YDDDH,CDTYPE='V') + ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_SURF%GSD_VF%PLSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)*ZWPI2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SVWIP',YDDDH,CDTYPE='V') + ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_SURF%GSD_VF%PLSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)*ZTP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SVTP',YDDDH,CDTYPE='V') + !am: FIXME: issue of shape of PF_T1 (2D) when arg should be 1D + !ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_SURF%GSD_VF%PLSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)*YDMF_PHYS_SURF%GSP_SG%PF_T1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA) + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDVARS%GEOMETRY%OROG%T0,'SVOROG',YDDDH,CDTYPE='V') + ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_SURF%GSD_VF%PLSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)*YDMF_PHYS%OUT%FEVL(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1) + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SFEVAPLIQ',YDDDH,CDTYPE='F') + ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_SURF%GSD_VF%PLSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)*YDMF_PHYS%OUT%FEVN(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1) + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SFEVAPNEG',YDDDH,CDTYPE='F') + ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_SURF%GSD_VF%PLSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)*YDMF_PHYS%OUT%FCLL(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1) + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SFCHLATLI',YDDDH,CDTYPE='F') + ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_SURF%GSD_VF%PLSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)*YDMF_PHYS%OUT%FCLN(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1) + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SFCHLATNE',YDDDH,CDTYPE='F') + ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_SURF%GSD_VF%PLSM(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)*YDMF_PHYS%OUT%FCS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1) + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SFCHSENS',YDDDH,CDTYPE='F') + !set to 0._JPRB + ! ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=0._JPRB + !CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SFFONTESL',YDDDH,CDTYPE='F') + !CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SFLIQSNPL',YDDDH,CDTYPE='F') + !CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SFFONTESN',YDDDH,CDTYPE='F') + + ! surface radiation + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%FRSO(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,1),'SFRAYSO',YDDDH,CDTYPE='F') + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%FRTH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,1),'SFRAYTH',YDDDH,CDTYPE='F') + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%FRSODS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA),'SFRAYSODS',YDDDH,CDTYPE='F') + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%FRTHDS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA),'SFRAYTHDS',YDDDH,CDTYPE='F') + ZTMP(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=1_JPRB-YDMF_PHYS%OUT%FRSO(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG,1)/MAX(ZEPSNEB,YDMF_PHYS%OUT%FRSODS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)) + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP,'SVALB',YDDDH,CDTYPE='V') + ! surface precipitations + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%FPLSL(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),'SFPRELIGE',YDDDH,CDTYPE='F') + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%FPLSN(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),'SFPRENEGE',YDDDH,CDTYPE='F') + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%FPLSG(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),'SFPREGRPL',YDDDH,CDTYPE='F') + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%FPLSH(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),'SFPREHAIL',YDDDH,CDTYPE='F') + ! surface wind stress + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%STRTU(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),'SFUUTUR',YDDDH,CDTYPE='F') + CALL NEW_ADD_FIELD_2D(YDMODEL%YRML_DIAG%YRMDDH,YDMF_PHYS%OUT%STRTV(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG),'SFVVTUR',YDDDH,CDTYPE='F') + + ! WRITE(NULOUT,*) 'LFLEXDIA ARPEGE WITH NTOTSURF = ',NTOTSURF,& + ! & ' AND NTOTSVAR = ',NTOTSVAR, ' AND NTOTSVFS = ',NTOTSVFS + ! 3D Variables : + ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,0)=0._JPRB + DO JLEV=1,YDCPG_OPTS%KFLEVG + ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZPFPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,2)+ZPFPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,4) + ENDDO + !ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)=ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,2)+ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,3) + CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP2(:,:),'FQTPRECISTL',YDDDH) + DO JLEV=1,YDCPG_OPTS%KFLEVG + ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZPFPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,4)+ZPFPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,5) + ENDDO + !ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)=ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,4)+ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,5) + CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP2(:,:),'FQTPRECISTN',YDDDH) + +ENDIF + + ! daand: radflex IF (LINTFLEX) THEN ! account for radiation separately LLRAD=.NOT.LRADFLEX - CALL APL_AROME2INTFLEX(YGFL,YDPARAR,YDPHY,KLON,KIDIA,KFDIA,KLEV, PDT,& - & PRDELPM, PUM, PVM, PTM, PGPAR(1,MVTS), PCPM,& - & ZFPR,&! precipitation fluxes - & LLRAD, PFRTH, PFRSO,&! radiative fluxes - & PTENDU, PTENDV, PTENDT,&! momentum and temperature tendencies - & PTENDR, PTENDTKE, PTENDEXT,&! total gfl tendencies - & YDPROCSET) + CALL APL_AROME2INTFLEX(YGFL, YDPARAR, YDPHY, YDCPG_OPTS%KLON, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KFLEVG, & + & YDCPG_OPTS%ZDTPHY, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%RDELP, YDMF_PHYS_BASE_STATE%U, YDMF_PHYS_BASE_STATE%V, & + & YDMF_PHYS_BASE_STATE%T, YDCPG_GPAR%VTS, YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%CP, ZFPR, LLRAD, YDMF_PHYS%OUT%FRTH, & + & YDMF_PHYS%OUT%FRSO, YDMF_PHYS%OUT%TENDU, YDMF_PHYS%OUT%TENDV, ZTENDT, ZTENDRA, ZTENDTKE, & + & ZTENDEXT, YLPROCSET) ENDIF ! Precipitation Type ! Compute wet-bulb temperature at 2 meters (suppose homogeneity of qv/ql/qi ) -!ZPCLS(KIDIA:KFDIA)=PAPRSM(KIDIA:KFDIA,KLEV)-2._JPRB/ZZZF(KIDIA:KFDIA,1,KLEV)*& -! &(PAPRSM(KIDIA:KFDIA,KLEV)-PAPRSFM(KIDIA:KFDIA,KLEV)) +!ZPCLS(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA)=YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)-2._JPRB/ZZZF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1,YDCPG_OPTS%KFLEVG)*& +! &(YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)-YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,YDCPG_OPTS%KFLEVG)) -CALL PPWETPOINT(YDPHY,KIDIA,KFDIA,KLON,PAPRSM(:,KLEV),PTCLS,& - & PQCLS,ZQCM(:,KLEV),ZQIM(:,KLEV),PTPWCLS) +CALL PPWETPOINT(YDCST, YDPHY, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDMF_PHYS_BASE_STATE%YCPG_PHY%PRE(:, YDCPG_OPTS%KFLEVG), & +& YDMF_PHYS%OUT%TCLS, YDMF_PHYS%OUT%QCLS, ZQCM(:, YDCPG_OPTS%KFLEVG), ZQIM(:, YDCPG_OPTS%KFLEVG), YDMF_PHYS%OUT%TPWCLS & +& ) IF (LDPRECIPS.OR.LDPRECIPS2) THEN !initialisation de ZDZZ - DO JLON = KIDIA,KFDIA + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ZDZZ(JLON,1)=ZAPHIM(JLON,0)*ZINVG-ZZZ_(JLON,1) ENDDO - DO JLEV = 2, KLEV - DO JLON = KIDIA,KFDIA + DO JLEV = 2, YDCPG_OPTS%KFLEVG + DO JLON = YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA ZDZZ(JLON,JLEV)=ZZZ_(JLON,JLEV+IKL)-ZZZ_(JLON,JLEV) ENDDO ENDDO ! Compute wet-bulb temperature - DO JLEV=1,KLEV - CALL PPWETPOINT(YDPHY,KIDIA,KFDIA,KLON,PAPRSFM(:,JLEV),ZTM(:,JLEV),& - & ZQVM(:,JLEV),ZQCM(:,JLEV),ZQIM(:,JLEV),ZTPW(:,JLEV)) + DO JLEV=1,YDCPG_OPTS%KFLEVG + CALL PPWETPOINT(YDCST, YDPHY, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDMF_PHYS_BASE_STATE%YCPG_PHY%PREF(:, JLEV), & + & ZTM(:, JLEV), ZQVM(:, JLEV), ZQCM(:, JLEV), ZQIM(:, JLEV), ZTPW(:, JLEV)) ENDDO IF (LDPRECIPS) THEN ! Defined precipitation type ! - NDTPRECCUR=INT(MOD(ZSTATI/TSTEP,REAL(NDTPREC)))+1_JPIM - !PDPRECIPS(:,NDTPRECCUR)=HUGE(1._JPRB) - PDPRECIPS(:,NDTPRECCUR)=0._JPRB + ZPRC_DPRECIPS(:,YDCPG_OPTS%NDTPRECCUR)=0._JPRB - !WRITE(NULOUT,*)'sous apl_arome NDTPRECCUR=',NDTPRECCUR,NDTPREC - CALL DPRECIPS(YDPRECIPS,KIDIA,KFDIA,KLON,KLEV,POROG,PTPWCLS,PDIAGH,PAPHIFM,& - & ZDZZ,ZTPW,ZQCM,PFPLSL(:,KLEV),PFPLSN(:,KLEV),PFPLSG(:,KLEV),PDPRECIPS(:,NDTPRECCUR)) + CALL DPRECIPS(YDCST, YDPRECIPS, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, YDVARS%GEOMETRY%OROG%T0, & + & YDMF_PHYS%OUT%TPWCLS, YDMF_PHYS%OUT%DIAGH, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF, ZDZZ, ZTPW, ZQCM, & + & YDMF_PHYS%OUT%FPLSL(:, YDCPG_OPTS%KFLEVG), YDMF_PHYS%OUT%FPLSN(:, YDCPG_OPTS%KFLEVG), YDMF_PHYS%OUT%FPLSG(:, YDCPG_OPTS%KFLEVG), & + & ZPRC_DPRECIPS(:, YDCPG_OPTS%NDTPRECCUR) & + & ) ENDIF IF (LDPRECIPS2) THEN !Idem for an other time step and an other period - NDTPRECCUR2=INT(MOD(ZSTATI/TSTEP,REAL(NDTPREC2)))+1_JPIM - PDPRECIPS2(:,NDTPRECCUR2)=0._JPRB + ZPRC_DPRECIPS2(:,YDCPG_OPTS%NDTPRECCUR2)=0._JPRB - CALL DPRECIPS(YDPRECIPS,KIDIA,KFDIA,KLON,KLEV,POROG,PTPWCLS,PDIAGH,PAPHIFM,& - & ZDZZ,ZTPW,ZQCM,PFPLSL(:,KLEV),PFPLSN(:,KLEV),PFPLSG(:,KLEV),PDPRECIPS2(:,NDTPRECCUR2)) + CALL DPRECIPS(YDCST, YDPRECIPS, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_OPTS%KLON, YDCPG_OPTS%KFLEVG, YDVARS%GEOMETRY%OROG%T0, & + & YDMF_PHYS%OUT%TPWCLS, YDMF_PHYS%OUT%DIAGH, YDMF_PHYS_BASE_STATE%YCPG_DYN%PHIF, ZDZZ, ZTPW, ZQCM, & + & YDMF_PHYS%OUT%FPLSL(:, YDCPG_OPTS%KFLEVG), YDMF_PHYS%OUT%FPLSN(:, YDCPG_OPTS%KFLEVG), YDMF_PHYS%OUT%FPLSG(:, YDCPG_OPTS%KFLEVG), & + & ZPRC_DPRECIPS2(:, YDCPG_OPTS%NDTPRECCUR2) & + & ) ENDIF ENDIF +!Save surface temperature +IF (LMSE.OR.LSFORCS) THEN + IF (LLXFUMSE) THEN + DO JROF=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + YDMF_PHYS_SURF%GSP_RR%PT_T0(JROF)=YDCPG_GPAR%VTS(JROF) + ENDDO + ELSE + DO JROF=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + YDMF_PHYS_SURF%GSP_RR%PT_T1(JROF)=YDCPG_GPAR%VTS(JROF) + ENDDO + ENDIF +ENDIF +! 4.2 COMPUTE THE PHYS. TENDENCY FOR "T" AND "w" +! ------------------------------------------ + +IF (LVERTFE.AND.LVFE_GWMPA) THEN + ! * case LVFE_GWMPA not yet coded. + ! (in this case ZGWT1 must be computed at full levels and + ! not at half levels) + CALL ABOR1(' APL_AROME: case LVFE_GWMPA not yet coded if LMPA=T!') +ENDIF + +! * compute ZTT1: +IF (LSLAG.AND.LTWOTL) THEN + DO JLEV=1,YDCPG_OPTS%KFLEVG + DO JROF=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZTT1(JROF,JLEV)=YDVARS%T%T0(JROF,JLEV)+YDCPG_OPTS%ZDTPHY*ZTENDT(JROF,JLEV) + ENDDO + ENDDO +ELSE + DO JLEV=1,YDCPG_OPTS%KFLEVG + DO JROF=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZTT1(JROF,JLEV)=YDVARS%T%T9(JROF,JLEV)+YDCPG_OPTS%ZDTPHY*ZTENDT(JROF,JLEV) + ENDDO + ENDDO +ENDIF + +! * compute ZGWT1 = tendency of gw: +IF (LNHDYN) THEN + ! Valid for LVFE_GWMPA=F only; ZGWT1 assumed to be half level values. + DO JLEV=1,YDCPG_OPTS%KFLEVG-1 + DO JROF=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZGWT1(JROF,JLEV)=0.5_JPRB*RG*(ZTENDW(JROF,JLEV)+ZTENDW(JROF,JLEV+1)) + ENDDO + ENDDO + DO JROF=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZGWT1(JROF,YDCPG_OPTS%KFLEVG)=0.0_JPRB + ZGWT1(JROF,0)=0.0_JPRB + ENDDO +ENDIF +! * convert gw tendency in d tendency: +IF(LNHDYN) THEN + + IF (LGWADV) THEN + ZTENDD(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=ZGWT1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG) + ELSE + + ! * Provide the appropriate version of (RT) at t+dt for GNHGW2SVDAROME: + IF (L_RDRY_VD) THEN + ! Use Rd because "dver" is currently defined with Rd. + ZRTT1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG)=RD*ZTT1(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,1:YDCPG_OPTS%KFLEVG) + ELSE + ! Use "moist R" because "dver" is defined with "moist R". + ! Unfortunately, R(t+dt) is not yet available there, use R(t) instead. + ! "Moist R" tendency is neglected in the below call to GNHGW2SVDAROME. + DO JLEV=1,YDCPG_OPTS%KFLEVG + DO JROF=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + ZRTT1(JROF,JLEV)=YDCPG_DYN0%RCP%R(JROF,JLEV)*ZTT1(JROF,JLEV) + ENDDO + ENDDO + ENDIF + + ! * Do conversion: + IF (LSLAG.AND.LTWOTL) THEN + CALL GNHGW2SVDAROME(YDGEOMETRY, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_PHY0%PREHYDF, YDCPG_PHY0%XYB%LNPR, & + & ZRTT1, YDCPG_PHY0%PREF, ZGWT1, ZTENDD) + ELSE + CALL GNHGW2SVDAROME(YDGEOMETRY, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, YDCPG_PHY9%PREHYDF, YDCPG_PHY9%XYB%LNPR, & + & ZRTT1, YDCPG_PHY9%PREF, ZGWT1, ZTENDD) + ENDIF + + ENDIF +ELSE + ZTENDD=0.0_JPRB +ENDIF + +! 4.3 PUT THE TENDENCIES IN PB1/GFLT1/GMVT1. +! -------------------------------------- + + +IF (LSLAG) CALL CP_PTRSLB1(YDMODEL%YRML_DYN%YRDYN, YDPTRSLB1, ISLB1U9, ISLB1V9, ISLB1T9, ISLB1VD9, & + & ISLB1GFL9) +IF ( LINTFLEX ) THEN + + ! Set GFL tendencies to 0 + ZTENDGFL(:,:,:) = 0.0_JPRB + + CALL CPTEND_FLEX( YDLDDH, YDMDDH, YGFL, YDPHY, YDCPG_OPTS%KLON, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, & + & YDCPG_OPTS%KFLEVG, YDVARS%GEOMETRY%GNORDL%T0, YDVARS%GEOMETRY%GNORDM%T0, YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP, & + & YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%RDELP, YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%CP, YDMF_PHYS_BASE_STATE%U, & + & YDMF_PHYS_BASE_STATE%V, YDMF_PHYS_BASE_STATE%T, YDMF_PHYS_BASE_STATE%YGSP_RR%T, PGFL, YLPROCSET, & + & YDMF_PHYS%OUT%TENDU, YDMF_PHYS%OUT%TENDV, ZTENDH, ZTENDGFL, YDMF_PHYS%OUT%FHSCL, YDMF_PHYS%OUT%FHSCN, & + & YDMF_PHYS%OUT%FHSSL, YDMF_PHYS%OUT%FHSSN, YDMF_PHYS%OUT%FHPCL, YDMF_PHYS%OUT%FHPCN, YDMF_PHYS%OUT%FHPSL, & + & YDMF_PHYS%OUT%FHPSN, PFEPFP =YDMF_PHYS%OUT%FEPFP, PFCMPCQ=YDMF_PHYS%OUT%FCMPCQ, PFCMPSN=YDMF_PHYS%OUT%FCMPSN, & + & PFCMPSL=YDMF_PHYS%OUT%FCMPSL, YDDDH=YDDDH ) + + CALL CPUTQY(YDGEOMETRY%YRDIMV, YDGMV, YGFL, YDPTRSLB1, YDPHY, YDCPG_OPTS%KLON, YDCPG_BNDS%KIDIA, YDCPG_BNDS%KFDIA, & + & YDCPG_OPTS%KFLEVG, YDCPG_OPTS%ZDTPHY, IPGFL, ISLB1T9, ISLB1U9, ISLB1V9, ISLB1VD9, ISLB1GFL9, ZTENDH, ZTENDT, & + & YDMF_PHYS%OUT%TENDU, YDMF_PHYS%OUT%TENDV, ZTENDU, ZTENDV, ZTENDD, ZTENDGFL, YDMF_PHYS_BASE_STATE%YCPG_DYN%RCP%CP, & + & YDMF_PHYS_BASE_STATE%YCPG_PHY%XYB%DELP, YDMF_PHYS_BASE_STATE%T, YDMF_PHYS_BASE_STATE%U, YDMF_PHYS_BASE_STATE%V, & + & YDCPG_SL1%ZVIEW, PGMVT1, PGFLT1, YDMF_PHYS%OUT%FDIS) + +ELSE + + ! start ZTENDGFLR at 1 because it is dimensionned (:,:,0:n) + CALL CPUTQY_AROME_EXPL (YDMF_PHYS_NEXT_STATE, YDVARS, YDMODEL, YDGEOMETRY%YRDIMV, YDCPG_BNDS, & + & YDCPG_OPTS, YDCPG_OPTS%ZDTPHY, ZTEND_Q, ZTEND_L, ZTEND_R, ZTEND_I, ZTEND_S, ZTEND_G, ZTEND_H, ZTENDTKE, & + & ZTENDT, YDMF_PHYS%OUT%TENDU, YDMF_PHYS%OUT%TENDV, ZTENDD) + CALL CPUTQY_AROME_LOOP (YDMODEL, YDGEOMETRY%YRDIMV, YDGMV, YDCPG_BNDS, YDCPG_OPTS, YDCPG_OPTS%ZDTPHY, IPGFL, & + & IPTR, ZTENDGFLR(:, :, 1:), YDCPG_SL1%ZVIEW, PGMVT1, PGFLT1) +ENDIF + + +! ------------------------------------------------------------------ +!* 5. Final calculations. +! ------------------- + +! * Restore the initial value of some pseudo-historical surface buffers +! if relevant. +IF (LLDIAB) THEN + IF (LL_SAVE_PHSURF) THEN + CALL MF_PHYS_SAVE_PHSURF_PART2 (YDCPG_BNDS, YDCPG_OPTS, ZSAV_DDAL, ZSAV_DDOM, ZSAV_ENTCH, & + & ZSAV_FHPS, ZSAV_GZ0F, ZSAV_GZ0HF, ZSAV_HV, ZSAV_PBLH, ZSAV_QSH, ZSAV_UDAL, ZSAV_UDGRO, & + & ZSAV_UDOM, ZSAV_UNEBH, YDMF_PHYS_SURF%GSD_VF%PZ0F, YDMF_PHYS_SURF%GSD_VH%PPBLH, YDMF_PHYS_SURF%GSD_VH%PQSH, & + & YDMF_PHYS_SURF%GSD_VH%PSPSH, YDMF_PHYS_SURF%GSD_VK%PUDGRO, YDMF_PHYS_SURF%GSD_VV%PHV, YDMF_PHYS_SURF%GSD_VV%PZ0H, & + & YDVARS%DAL%T0, YDVARS%DOM%T0, YDVARS%UAL%T0, YDVARS%UEN%T0, YDVARS%UNEBH%T0, YDVARS%UOM%T0, & + & YDMODEL) + ENDIF +ENDIF + +!------------------------------------------------- +! Extract Single Column Model profiles from 3D run or +! write LFA file for MUSC (1D model) +!------------------------------------------------- +IF(LGSCM.OR.LMUSCLFA) THEN + IF (LAROME) THEN + DO JLEV=1,YDCPG_OPTS%KFLEVG + DO JROF=YDCPG_BNDS%KIDIA,YDCPG_BNDS%KFDIA + YDCPG_MISC%NEB(JROF,JLEV)=YDVARS%A%T1(JROF,JLEV) + ENDDO + ENDDO + ENDIF + CALL WRITEPHYSIO(YDGEOMETRY, YDCPG_MISC, YDCPG_PHY0, YDMF_PHYS, YDCPG_DYN0, YDMF_PHYS_SURF, YDVARS, & + & YDSURF, YDDPHY, YDRIP, YDMODEL%YRML_PHY_MF, YDCPG_BNDS%KFDIA, YDCPG_BNDS%KIDIA, YDCPG_OPTS%KGL1, & + & YDCPG_OPTS%KGL2, YDCPG_BNDS%KSTGLO, YDCPG_OPTS%KSTEP, NTSSG, YSP_SBD%NLEVS, YDVARS%GEOMETRY%GELAM%T0, & + & YDVARS%GEOMETRY%GEMU%T0, YDVARS%GEOMETRY%GM%T0, YDVARS%GEOMETRY%OROG%T0, YDVARS%GEOMETRY%RCORI%T0, & + & YDVARS%GEOMETRY%RATATH%T0, YDVARS%GEOMETRY%RATATX%T0, YDVARS%GEOMETRY%GECLO%T0, YDVARS%GEOMETRY%GESLO%T0, & + & ZRDG_CVGQ, ZRDG_LCVQ, ZRDG_MU0 ) +ENDIF + +IF (LEDR) THEN + YDMF_PHYS_SURF%GSD_DI%PXEDR(:,:)=YDMF_PHYS%OUT%EDR(:,:) +ENDIF + +CALL MF_PHYS_PRECIPS (YDCPG_BNDS, YDCPG_OPTS, ZPRC_DPRECIPS, ZPRC_DPRECIPS2, YDMF_PHYS_SURF%GSD_XP%PPRECIP, & +& YDMF_PHYS_SURF%GSD_XP2%PPRECIP2, YDMODEL) + +! 6. destructor for procset +IF (LINTFLEX) CALL CLEANINTPROCSET(YLPROCSET) + +! Clear SPP +IF (YSPP_CONFIG%LSPP) CALL CLEAR_ALL_SPP(ZSPP_ALL) + +! ------------------------------------------------------------------ -! -------------------------------------------------------------------------- END ASSOCIATE END ASSOCIATE + IF (LHOOK) CALL DR_HOOK('APL_AROME',1,ZHOOK_HANDLE) CONTAINS SUBROUTINE SWAP_THS IF (LLSWAP_THS) THEN - ZTHSIN_ => ZTHSAVE__(:,1:KLEV) + ZTHSIN_ => ZTHSAVE__(:,1:YDCPG_OPTS%KFLEVG) ZTHS__ => ZTHSWAP__ ELSE - ZTHSIN_ => ZTHSWAP__(:,1:KLEV) + ZTHSIN_ => ZTHSWAP__(:,1:YDCPG_OPTS%KFLEVG) ZTHS__ => ZTHSAVE__ ENDIF LLSWAP_THS=.NOT.LLSWAP_THS diff --git a/src/arome/ext/suparar.F90 b/src/arome/ext/suparar.F90 index 8e3d6c403a91ae9477ee4b378ecf4fcaabb1d551..08755f90e26f9e0d6b790c64a517940494521edc 100644 --- a/src/arome/ext/suparar.F90 +++ b/src/arome/ext/suparar.F90 @@ -729,6 +729,8 @@ WRITE(UNIT=KULOUT,FMT='('' LHARATU = '',L2)') LHARATU WRITE(UNIT=KULOUT,FMT='('' LICERAD = '',L5)') LICERAD WRITE(UNIT=KULOUT,FMT='('' LDEPOSC = '',L5)') LDEPOSC WRITE(UNIT=KULOUT,FMT='('' XVDEPOSC = '',E13.6)') XVDEPOSC +WRITE(UNIT=KULOUT,FMT='('' LDEPSG = '',L2,'' RDEPSRED = '',F6.2,'' RDEPGRED = '',F6.2& +&)') LDEPSG,RDEPSRED,RDEPGRED WRITE(UNIT=KULOUT,FMT='('' NPROMICRO = '',I4)') NPROMICRO @@ -736,3 +738,4 @@ WRITE(UNIT=KULOUT,FMT='('' NPROMICRO = '',I4)') NPROMICRO END ASSOCIATE IF (LHOOK) CALL DR_HOOK('SUPARAR',1,ZHOOK_HANDLE) END SUBROUTINE SUPARAR + diff --git a/src/arome/micro/rain_ice_old.F90 b/src/arome/micro/rain_ice_old.F90 index 9d60e6f85d736ff7e4099633f0ae5c1b582cb436..e7b5994e23cda700e473725afa0ac7ea66e9fbcc 100644 --- a/src/arome/micro/rain_ice_old.F90 +++ b/src/arome/micro/rain_ice_old.F90 @@ -2070,11 +2070,7 @@ END DO PRIS(:,:,:) = PRIS(:,:,:) * ZINVTSTEP -#ifdef REPRO48 - PINPRS(:,:) = 0. -#else PINPRS(:,:) = ZWSED(:,:,IKB)/XRHOLW -#endif ! !* 2.4 for aggregates/snow @@ -3498,11 +3494,7 @@ IMPLICIT NONE END WHERE ELSE IF( KRR == 6 ) THEN WHERE( ZRGT(:)>XRTMIN(6) .AND. ZRGT(:)>XFRMIN(3) .AND. & -#ifdef REPRO48 - ZZT(:)<XTT & -#else ZRIS(:)*PTSTEP>XFRMIN(3) .AND. ZZT(:)<XTT & -#endif .AND. & ! Wet ZRDRYG(:)>=ZRWETG(:) .AND. ZRWETG(:)>0.0 ) ! case ZZW(:) = ZRWETG(:) @@ -3542,11 +3534,7 @@ IMPLICIT NONE ! WHERE( ZRGT(:)>XRTMIN(6) .AND. ZRGT(:)>XFRMIN(4) .AND. & -#ifdef REPRO48 - ZZT(:)<XTT & -#else ZRIS(:)*PTSTEP>XFRMIN(4) .AND. ZZT(:)<XTT & -#endif .AND. & ZRDRYG(:)<ZRWETG(:) .AND. ZRDRYG(:)>0.0 ) ! Dry ZRCS(:) = ZRCS(:) - ZZW1(:,1) diff --git a/src/common/micro/mode_ice4_slow.F90 b/src/common/micro/mode_ice4_slow.F90 index 777f8004a282edcb9f3fa398d01edd8298abb020..fc82cebc6043d8d673f5e94e3a7ddc2bf1acc543 100644 --- a/src/common/micro/mode_ice4_slow.F90 +++ b/src/common/micro/mode_ice4_slow.F90 @@ -85,13 +85,8 @@ IF (LHOOK) CALL DR_HOOK('ICE4_SLOW', 0, ZHOOK_HANDLE) DO JL=1, KSIZE IF(PT(JL)<CST%XTT-35.0 .AND. PRCT(JL)>ICED%XRTMIN(2) .AND. LDCOMPUTE(JL)) THEN IF(.NOT. LDSOFT) THEN -#ifdef REPRO48 - PRCHONI(JL) = ICEP%XHON*PRHODREF(JL)*PRCT(JL) & - *EXP( ICEP%XALPHA3*(PT(JL)-CST%XTT)-ICEP%XBETA3 ) -#else PRCHONI(JL) = MIN(1000.,ICEP%XHON*PRHODREF(JL)*PRCT(JL) & *EXP( ICEP%XALPHA3*(PT(JL)-CST%XTT)-ICEP%XBETA3 )) -#endif ENDIF ELSE PRCHONI(JL) = 0. diff --git a/src/common/turb/mode_tke_eps_sources.F90 b/src/common/turb/mode_tke_eps_sources.F90 index 801ef20306fc59b8f677f95fd4dbd064eb4d92e0..f78bb8fca8794c83669ebcac571fe7215e111e18 100644 --- a/src/common/turb/mode_tke_eps_sources.F90 +++ b/src/common/turb/mode_tke_eps_sources.F90 @@ -398,10 +398,19 @@ END IF !Should be in IF LBUDGET_TKE only. Was removed out for a correct comput. of PTDIFF in case of LBUDGET_TKE=F in AROME !$mnh_expand_array(JIJ=IIJB:IIJE,JK=1:D%NKT) +#ifdef REPRO48 +IF (BUCONF%LBUDGET_TKE) THEN +PRTKES(IIJB:IIJE,1:D%NKT) = PRTKES(IIJB:IIJE,1:D%NKT) + PDP(IIJB:IIJE,1:D%NKT) * PRHODJ(IIJB:IIJE,1:D%NKT) +PRTKES(IIJB:IIJE,1:D%NKT) = PRTKES(IIJB:IIJE,1:D%NKT) + PTP(IIJB:IIJE,1:D%NKT) * PRHODJ(IIJB:IIJE,1:D%NKT) +PRTKES(IIJB:IIJE,1:D%NKT) = PRTKES(IIJB:IIJE,1:D%NKT) - CSTURB%XCED * SQRT(PTKEM(IIJB:IIJE,1:D%NKT)) / PLEPS(IIJB:IIJE,1:D%NKT) * & + (PEXPL*PTKEM(IIJB:IIJE,1:D%NKT) + PIMPL*ZRES(IIJB:IIJE,1:D%NKT)) * PRHODJ(IIJB:IIJE,1:D%NKT) +END IF +#else PRTKES(IIJB:IIJE,1:D%NKT) = PRTKES(IIJB:IIJE,1:D%NKT) + PRHODJ(IIJB:IIJE,1:D%NKT) * & ( PDP(IIJB:IIJE,1:D%NKT) + PTP(IIJB:IIJE,1:D%NKT) & - CSTURB%XCED * SQRT(PTKEM(IIJB:IIJE,1:D%NKT)) / PLEPS(IIJB:IIJE,1:D%NKT) & * ( PEXPL*PTKEM(IIJB:IIJE,1:D%NKT) + PIMPL*ZRES(IIJB:IIJE,1:D%NKT) ) ) +#endif ! PTDIFF(IIJB:IIJE,1:D%NKT) = ZRES(IIJB:IIJE,1:D%NKT) / PTSTEP - PRTKES(IIJB:IIJE,1:D%NKT)& /PRHODJ(IIJB:IIJE,1:D%NKT) & diff --git a/tools/INSTALL_pack_ial.md b/tools/INSTALL_pack_ial.md index 60e553f070e584767b60f990390523182c4b0177..539958fc9c61c0f06266164e26360788bb5d13a3 100644 --- a/tools/INSTALL_pack_ial.md +++ b/tools/INSTALL_pack_ial.md @@ -20,6 +20,7 @@ is now automatically performed with the prep\_code.sh script. The same installation guide applies to sxphynh and belenos except for some commands. The directory in which the repository lies is designated by the TRUNK variable. The $TRUNK dir can be put on a shared directory to share this installation among several users. +Tools are designed and tested with TRUNK=\<git repository\>/tools/pack/ ## REFERENCE PACK CREATION @@ -27,33 +28,34 @@ The $TRUNK dir can be put on a shared directory to share this installation among ``` version=01 +cycle=48t1 or cy48t3 (after commit XXX on 22 September 2022) compiler=MPIGFORTRAN920DBL on ubuntu, MIMPIIFC1805 on belenos gmkfile=${compiler}.GMAP on ubuntu, ${compiler}.EPONA on belenos option=xfftw on ubuntu, 2y on belenos -getpack 48t1_main.01.${compiler}.${option} #get source code on ubuntu, is it really necessary? +getpack ${cycle}_main.01.${compiler}.${option} #get source code on ubuntu, is it really necessary? export GMKTMP=/dev/shm (. berootpack) -gmkpack -a -r 48t1 -b phyex -n $version -l ${compiler} -o ${option} -p masterodb -h $TRUNK/tools/pack/ #create main pack +gmkpack -a -r ${cycle} -b phyex -n $version -l ${compiler} -o ${option} -p masterodb -h $TRUNK/tools/pack/ #create main pack ``` ### Populate main pack with source code ``` -cd $TRUNK/tools/pack/48t1_phyex.${version}.${compiler}.${option}/src/local +cd $TRUNK/tools/pack/${cycle}_phyex.${version}.${compiler}.${option}/src/local if sxphynh; then - wget http://anonymous:mto@webdav.cnrm.meteo.fr/public/algo/khatib/src/48t1_main.01.tgz #only available at MF but equivalent must exist elsewhere + wget http://anonymous:mto@webdav.cnrm.meteo.fr/public/algo/khatib/src/${cycle}_main.01.tgz #only available at MF but equivalent must exist elsewhere else - ssh sxphynh.cnrm.meteo.fr "wget http://anonymous:mto@webdav.cnrm.meteo.fr/public/algo/khatib/src/48t1_main.01.tgz -O -" > 48t1_main.01.tgz + ssh sxphynh.cnrm.meteo.fr "wget http://anonymous:mto@webdav.cnrm.meteo.fr/public/algo/khatib/src/${cycle}_main.01.tgz -O -" > ${cycle}_main.01.tgz fi -tar xf 48t1_main.01.tgz -rm -f 48t1_main.01.tgz +tar xf ${cycle}_main.01.tgz +rm -f ${cycle}_main.01.tgz for rep in turb micro conv; do mkdir -p phyex/$rep - mv mpa/$rep/internals/* phyex/$rep/ - mv mpa/$rep/module/* phyex/$rep/ + mv -f mpa/$rep/internals/* phyex/$rep/ + mv -f mpa/$rep/module/* phyex/$rep/ rmdir mpa/$rep/internals mpa/$rep/module done -tar xf /cnrm/algo/khatib/drhook.c_for_ubuntu.tar #only on ubuntu +[ $cycle == 48t1 ] && tar xf /cnrm/algo/khatib/drhook.c_for_ubuntu.tar #only on ubuntu ``` ### Apply some bug corrections @@ -62,7 +64,7 @@ tar xf /cnrm/algo/khatib/drhook.c_for_ubuntu.tar #only on ubuntu sed -i 's/IF (LBUDGET_RH)/IF (LBUDGET_RH .AND. KRR==7)/' mpa/micro/externals/aro_rain_ice.F90 ``` -Edition of arpifs/phys\_dmn/apl\_arome.F90 to modift (line 1573): +Edition of arpifs/phys\_dmn/apl\_arome.F90 to modify (line 1573 in 48t1, 1496 in 48t3): ``` IF (LMFSHAL .AND. (CMF_CLOUD=='DIRE'.OR.CMF_CLOUD=='BIGA')) THEN @@ -71,7 +73,7 @@ Edition of arpifs/phys\_dmn/apl\_arome.F90 to modift (line 1573): ENDIF ``` -into: +into (48t1): ``` IF (LMFSHAL .AND. (CMF_CLOUD=='DIRE'.OR.CMF_CLOUD=='BIGA')) THEN @@ -86,12 +88,27 @@ into: ENDIF ``` -Edition of apl\_arome.F90 to modify (line 1406): +or (48t3): + + ``` + IF (LMFSHAL .AND. (CMF_CLOUD=='DIRE'.OR.CMF_CLOUD=='BIGA')) THEN + IOFF_MFSHAL=IOFF_MFSHAL+3 + ... + ELSE + DO JLEV = 1, YDCPG_OPTS%KFLEVG + ZRC_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB + ZRI_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB + ZCF_MF_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=0._JPRB + ENDDO + ENDIF + ``` + +Edition of apl\_arome.F90 to modify (line 1406 in 48t1, 1329 in 48t3): ``` IF ( LKFBCONV.AND.LOSUBG_COND.AND..NOT.LOSIGMAS) THEN DO JLEV = 1, KLEV - ZMFM_(KIDIA:KFDIA,JLEV)=PSIGM(KIDIA:KFDIA,JLEV) + ZMFM_(... ENDDO ENDIF ``` @@ -102,20 +119,91 @@ into: IF (LOSUBG_COND.AND..NOT.LOSIGMAS) THEN IF (LKFBCONV) THEN DO JLEV = 1, KLEV - ZMFM_(KIDIA:KFDIA,JLEV)=PSIGM(KIDIA:KFDIA,JLEV) + ZMFM_(... ENDDO ELSE DO JLEV = 1, KLEV - ZMFM_(KIDIA:KFDIA,JLEV)=0._JPRB + ZMFM_(...)=0._JPRB ENDDO ENDIF ENDIF ``` +If cycle is 48t3, edition of apl\_arome.F90 to modify (line 3616) + + ``` + ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)=ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,2)+ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,3) + CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP2(:,:),'FQTPRECISTL',YDDDH) + ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)=ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,4)+ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,5) + CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP2(:,:),'FQTPRECISTN',YDDDH) + ``` + +into: + + ``` + ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,0)=0._JPRB + DO JLEV=1,YDCPG_OPTS%KFLEVG + ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZPFPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,2)+ZPFPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,4) + ENDDO + !ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)=ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,2)+ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,3) + CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP2(:,:),'FQTPRECISTL',YDDDH) + DO JLEV=1,YDCPG_OPTS%KFLEVG + ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV)=ZPFPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,4)+ZPFPR_(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,JLEV,5) + ENDDO + !ZTMP2(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:)=ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,4)+ZFPR(YDCPG_BNDS%KIDIA:YDCPG_BNDS%KFDIA,:,5) + CALL NEW_ADD_FIELD_3D(YDMODEL%YRML_DIAG%YRMDDH,ZTMP2(:,:),'FQTPRECISTN',YDDDH) + ``` + +If cycle is 48t3, edition of apl\_arome.F90 to: + +add the folowing lines after the line 236 (YOMTRAJ use statement): + + ``` + #ifdef REPRO48 + !To compensate a bug introduced in 48t3 + !Must be suppressed as soon as the bug is corrected + USE MODD_BUDGET + #endif + ``` + +and add the folowing lines at line 912 (to be one of the first execution statement but exact emplacement is not sensitive): + + ``` + #ifdef REPRO48 + !see comment associated to the MODD_BUDGET use statement + LBU_ENABLE = YDMODEL%YRML_DIAG%YRLDDH%LSDDH + LBUDGET_U =LBU_ENABLE + LBUDGET_V =LBU_ENABLE + LBUDGET_W =LBU_ENABLE + LBUDGET_TH=LBU_ENABLE + LBUDGET_TKE=LBU_ENABLE + LBUDGET_RV=LBU_ENABLE + LBUDGET_RC=LBU_ENABLE + LBUDGET_RR =LBU_ENABLE + LBUDGET_RI =LBU_ENABLE + LBUDGET_RS =LBU_ENABLE + LBUDGET_RG =LBU_ENABLE + LBUDGET_RH =LBU_ENABLE + LBUDGET_SV=LBU_ENABLE + #endif + ``` + +Edition of phyex/turb/compute\_mf\_cloud\_bigaus.F90 to modify (line 120): + + ``` + DO JK=KKB,KKE,KKL + ``` + +into: + + ``` + DO JK=KKB,KKE-KKL,KKL + ``` + ### Compilation ``` -cd $TRUNK/tools/pack/48t1_phyex.${version}.${compiler}.${option} +cd $TRUNK/tools/pack/${cycle}_phyex.${version}.${compiler}.${option} #Not needed anymore: grep MPA .gmkfile/${compiler}.GMAP | sed 's/MPA/PHYEX/g' >> .gmkfile/${gmkfile} Edition of .gmkfile/${gmkfile} to add -DREPRO48 to the MACROS_FRT variable in order to suppress bug corrections and be able to reproduce the original cy48 #Not needed anymore: Edition of .gmkfile/${gmkfile} to suppress on ubuntu -ftree-vectorize @@ -132,11 +220,11 @@ version=01 compiler=MPIGFORTRAN920DBL on ubuntu, MIMPIIFC1805 on belenos gmkfile=${compiler}.GMAP on ubuntu, ${compiler}.EPONA on belenos option=xfftw on ubuntu, 2y on belenos -getpack 48t1_main.01.${compiler}.${option} #get source code on ubuntu, is it really necessary? +getpack ${cycle}_main.01.${compiler}.${option} #get source code on ubuntu, is it really necessary? commit=9ce8119430dd603d35308d8ae94cf18636157473 #exemple of commit to test against the reference pack -gmkpack -r 48t1 -b phyex -v ${version} -l ${compiler} -o ${option} -p masterodb -f $TRUNK/tools/pack/ -u PHYEX/$commit +gmkpack -r ${cycle} -b phyex -v ${version} -l ${compiler} -o ${option} -p masterodb -f $TRUNK/tools/pack/ -u PHYEX/$commit cd $HOMEPACK/PHYEX/$commit/src/local/phyex git clone git@github.com:QuentinRodier/PHYEX.git diff --git a/tools/check_commit_ial.sh b/tools/check_commit_ial.sh index 6dce25678510156170da852334566d25e512fcb3..f45af42ed7601805f5acdcc1a9f05827de957a62 100755 --- a/tools/check_commit_ial.sh +++ b/tools/check_commit_ial.sh @@ -23,7 +23,7 @@ set -e #The small_3D_alt9 is not included in the list of available tests because it cannot be run before 21 September (commit edc3f88). -specialPack="ori split recompil" +specialPack="ori split split_48t1 split_48t3 recompil" availTests="small_3D,small_3D_np2,small_3D_alt1,small_3D_alt2,small_3D_alt3,small_3D_alt4,small_3D_alt5,small_3D_alt6,small_3D_alt7" defaultTest="small_3D" separator='_' #- be carrefull, gmkpack (at least on belenos) has multiple allergies (':', '.', '@') @@ -38,14 +38,14 @@ if [ $(hostname | cut -c 1-7) == 'belenos' -o $(hostname | cut -c 1-7) == 'taran gmkpack_l=MIMPIIFC1805 gmkpack_o=2y defaultMainPackVersion=01 - defaultRef=split + defaultRef='split_${cycle}' availTests="${availTests},big_3D" else HPC=0 gmkpack_l=MPIGFORTRAN920DBL gmkpack_o=xfftw defaultMainPackVersion=01 - defaultRef=split + defaultRef='split_${cycle}' fi mainPackVersion=${mainPackVersion:-${defaultMainPackVersion}} @@ -63,6 +63,7 @@ function usage { echo " or ALL to execute all tests" echo "--noexpand do not use mnh_expand (code will be in array-syntax)" echo "-f full compilation (do not use pre-compiled pack)" + echo "--cycle CYCLE to force using CYCLE" echo "" echo "If nothing is asked (compilation, running, check) everything is done" echo @@ -73,6 +74,8 @@ function usage { echo "The directory (for commit only, not ref) can take the form server:directory" echo echo "If using a directory (for commit or reference) it must contain at least one '/'" + echo + echo "The cycle will be guessed from the source code" } compilation=0 @@ -84,6 +87,7 @@ tests="" suppress=0 useexpand=1 fullcompilation=0 +cycle="" while [ -n "$1" ]; do case "$1" in @@ -95,6 +99,7 @@ while [ -n "$1" ]; do '-t') tests="$2"; shift;; '--noexpand') useexpand=0;; '-f') fullcompilation=1;; + '--cycle') cycle="$2"; shift;; #--) shift; break ;; *) if [ -z "${commit-}" ]; then commit=$1 @@ -148,30 +153,52 @@ if [ $check -eq 1 -a -z "${reference-}" ]; then exit 3 fi -#Name is choosen such as it can be produced with a main pack: PHYEX/48t1_XXXXXXXXX.01.${gmkpack_l}.${gmkpack_o} +function content2cycle { + # variable content_apl_arome must contain the source code of apl_arome.F90 + if grep CPG_DYN_TYPE <(echo $content_apl_arome) > /dev/null; then + echo 48t3 + else + echo 48t1 + fi +} + +#Name is choosen such as it can be produced with a main pack: PHYEX/${cycle}_XXXXXXXXX.01.${gmkpack_l}.${gmkpack_o} fromdir='' if echo $commit | grep '/' > /dev/null; then fromdir=$commit + if [ "$cycle" == "" ]; then + content_apl_arome=$(cat $commit/src/arome/ext/apl_arome.F90) + cycle=$(content2cycle) + fi packBranch=$(echo $commit | sed 's/\//'${separator}'/g' | sed 's/:/'${separator}'/g' | sed 's/\./'${separator}'/g') - name="PHYEX/48t1_${packBranch}.01.${gmkpack_l}.${gmkpack_o}" + name="PHYEX/${cycle}_${packBranch}.01.${gmkpack_l}.${gmkpack_o}" [ $suppress -eq 1 -a -d $HOMEPACK/$name ] && rm -rf $HOMEPACK/$name elif echo $specialPack | grep -w $commit > /dev/null; then name="PHYEX/$commit" + if [ $commit == split_48t3 ]; then + cycle=48t3 + else + cycle=48t1 + fi else packBranch="COMMIT$commit" - name="PHYEX/48t1_${packBranch}.01.${gmkpack_l}.${gmkpack_o}" + if [ "$cycle" == "" ]; then + content_apl_arome=$(wget https://raw.githubusercontent.com/QuentinRodier/PHYEX/${commit}/src/arome/ext/apl_arome.F90 -O - 2>/dev/null) + cycle=$(content2cycle) + fi + name="PHYEX/${cycle}_${packBranch}.01.${gmkpack_l}.${gmkpack_o}" [ $suppress -eq 1 -a -d $HOMEPACK/$name ] && rm -rf $HOMEPACK/$name fi if [ ! -z "${reference-}" ]; then - [ $reference == 'REF' ] && reference=$defaultRef + [ $reference == 'REF' ] && reference=$(eval echo $defaultRef) #echo to replace ${cycle} by value reffromdir='' if echo $reference | grep '/' > /dev/null; then reffromdir=$reference - refname="PHYEX/48t1_$(echo $reference | sed 's/\//'${separator}'/g' | sed 's/:/'${separator}'/g' | sed 's/\./'${separator}'/g').01.${gmkpack_l}.${gmkpack_o}" + refname="PHYEX/*_$(echo $reference | sed 's/\//'${separator}'/g' | sed 's/:/'${separator}'/g' | sed 's/\./'${separator}'/g').01.${gmkpack_l}.${gmkpack_o}" elif echo $specialPack | grep -w $reference > /dev/null; then refname="PHYEX/$reference" else - refname="PHYEX/48t1_COMMIT${reference}.01.${gmkpack_l}.${gmkpack_o}" + refname="PHYEX/*_COMMIT${reference}.01.${gmkpack_l}.${gmkpack_o}" fi fi @@ -191,24 +218,24 @@ if [ $compilation -eq 1 ]; then export GMKTMP=/dev/shm if [ $fullcompilation == 0 ]; then - basepack=48t1_main.01.${gmkpack_l}.${gmkpack_o} - [ $HPC -eq 0 -a ! -d $ROOTPACK/$basepack ] && getpack $basepack - gmkpack -r 48t1 -b phyex -v $mainPackVersion -l ${gmkpack_l} -o ${gmkpack_o} -p masterodb \ + basepack=${cycle}_main.01.${gmkpack_l}.${gmkpack_o} + #[ $HPC -eq 0 -a ! -d $ROOTPACK/$basepack ] && getpack $basepack + gmkpack -r ${cycle} -b phyex -v $mainPackVersion -l ${gmkpack_l} -o ${gmkpack_o} -p masterodb \ -f $dirpack/ \ -u $name reftree='main' else #Create main pack - gmkpack -a -r 48t1 -b ${packBranch} -n 01 -l ${gmkpack_l} -o ${gmkpack_o} -p masterodb -h $HOMEPACK/PHYEX + gmkpack -a -r ${cycle} -b ${packBranch} -n 01 -l ${gmkpack_l} -o ${gmkpack_o} -p masterodb -h $HOMEPACK/PHYEX #Populate (we keep everything from the official source code except internals and module subdirectories of mpa) cd $HOMEPACK/$name/src/local/ if [ $HPC -eq 1 ]; then - ssh sxphynh.cnrm.meteo.fr "wget http://anonymous:mto@webdav.cnrm.meteo.fr/public/algo/khatib/src/48t1_main.01.tgz -O -" > 48t1_main.01.tgz + ssh sxphynh.cnrm.meteo.fr "wget http://anonymous:mto@webdav.cnrm.meteo.fr/public/algo/khatib/src/${cycle}_main.01.tgz -O -" > ${cycle}_main.01.tgz else - wget http://anonymous:mto@webdav.cnrm.meteo.fr/public/algo/khatib/src/48t1_main.01.tgz + wget http://anonymous:mto@webdav.cnrm.meteo.fr/public/algo/khatib/src/${cycle}_main.01.tgz fi - tar xf 48t1_main.01.tgz - rm -f 48t1_main.01.tgz + tar xf ${cycle}_main.01.tgz + rm -f ${cycle}_main.01.tgz for rep in turb micro conv; do mkdir -p phyex/$rep rm -rf mpa/$rep/internals mpa/$rep/module @@ -220,7 +247,7 @@ if [ $compilation -eq 1 ]; then #Special modification of the compilation configuration file and script sed -i 's/-ftree-vectorize//' $HOMEPACK/$name/.gmkfile/${gmkpack_l}.* sed -i "/MACROS_FRT/s/$/ -DREPRO48/" $HOMEPACK/$name/.gmkfile/${gmkpack_l}.* - #sed -i "s/PHYEX\/48t1_$$.01.${gmkpack_l}.${gmkpack_o}/$(echo $name | sed 's/\//\\\//')/" $HOMEPACK/$name/ics_masterodb #this line could be used if pack was renamed before compilation but it does not work on belenos + #sed -i "s/PHYEX\/${cycle}_$$.01.${gmkpack_l}.${gmkpack_o}/$(echo $name | sed 's/\//\\\//')/" $HOMEPACK/$name/ics_masterodb #this line could be used if pack was renamed before compilation but it does not work on belenos resetpack -f #Is it really useful? reftree='local' @@ -346,7 +373,7 @@ if [ $run -ge 1 ]; then cd $HOMEPACK/$name mkdir -p conf_tests/$t cd conf_tests/$t - MYLIB=$name TESTDIR=$dirconf/$t exescript Output_run $dirconf/$t/aro48t1.sh + MYLIB=$name TESTDIR=$dirconf/$t exescript Output_run $dirconf/$t/aro${cycle}.sh done fi @@ -367,7 +394,7 @@ if [ $check -eq 1 ]; then tag=$(echo $tag_file | cut -d, -f1) file=$(echo $tag_file | cut -d, -f2) file1=$HOMEPACK/$name/$file - file2=$HOMEPACK/$refname/$file + file2=$(echo $HOMEPACK/$refname/$file) #echo to enable shell substitution mess="" t=0 diff --git a/tools/comp_DDH.py b/tools/comp_DDH.py index ea0b116e8d9e8ad3e3745d68959aee99ba0074d6..8a5bdb74a8ac3ca55147f9fdee994b06c81cbc07 100755 --- a/tools/comp_DDH.py +++ b/tools/comp_DDH.py @@ -22,6 +22,9 @@ def comp_DDH(filename1, filename2, output_fig, tol_ad=1.2E-7, tol_rd=1.E-6, verb toplt = False if not t: if verbose: print(fid, ':') + if numpy.array(v1).ndim == 0: + v1 = numpy.array([v1]) + v2 = numpy.array([v2]) for i in range(len(v1)): if v1[i] - v2[i] != 0.: ad = v1[i] - v2[i] @@ -30,7 +33,7 @@ def comp_DDH(filename1, filename2, output_fig, tol_ad=1.2E-7, tol_rd=1.E-6, verb if abs(ad) > tol_ad and abs(rd) > tol_rd: toplt = True return fid if toplt else None toplt = [] - for fid in l1.intersection(l2): + for fid in [fid for fid in l1.intersection(l2) if fid != 'DOCFICHIER']: v1 = r1.readfield(fid) v2 = r2.readfield(fid) if isinstance(v1, epygram.base.FieldSet): diff --git a/tools/conf_tests/big_3D/aro48t3.sh b/tools/conf_tests/big_3D/aro48t3.sh new file mode 100644 index 0000000000000000000000000000000000000000..4663a7184bbbee85922b83a16d966b5cbc780451 --- /dev/null +++ b/tools/conf_tests/big_3D/aro48t3.sh @@ -0,0 +1,602 @@ +#!/bin/bash +#SBATCH -p normal256 +#SBATCH --export=MYLIB,HOMEPACK,TESTDIR +#SBATCH -n 1280 +#SBATCH -c 4 +#SBATCH -N 40 +#SBATCH -t 00:40:00 +#SBATCH --mem=247000 +#SBATCH --exclusiv + +# Job management : +# -------------- +JOB_INITDIR=$SLURM_SUBMIT_DIR +export JOB_NAME=arome_e700 +export JOB_ID=$SLURM_JOB_ID + +echo JOB_INITDIR=$JOB_INITDIR +echo JOB_NAME=$JOB_NAME +echo JOB_ID=$JOB_ID + +# ============================================================================= + +# RESOURCES ALLOCATIONS +# ===================== + +# Number of nodes/mpi-tasks/omp-threads: +# ------------------------------------- +NNODES=$SLURM_JOB_NUM_NODES +# Number of MPI tasks per node: +MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES)) +# Number of OPEN-MP threads per MPI task: +export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK +# Total number of MPI tasks: +MPI_TASKS=$SLURM_NTASKS +# Number of tasks reserved for the I/O server : 2 (hyperthreaded) nodes +NTASKS_IO=$(($(grep processor /proc/cpuinfo | wc -l)/1/$OMP_NUM_THREADS)) + +echo NNODES=$NNODES +echo MPITASKS_PER_NODE=$MPITASKS_PER_NODE +echo +# Number of MPI tasks and OMP threads used in the application : +echo MPI_TASKS=$MPI_TASKS +echo OMP_NUM_THREADS=$OMP_NUM_THREADS + +# ============================================================================= + +# SYSTEM PREFERENCES +# ================== + +# OMP/MPI submission management : +# ----------------------------- +# LOCAL_MPI_WRAPPER : could be "mpiauto", "mpdrun", "mpiexec" ... or empty string +# LOCAL_STACK_LIMIT : could be "unlimited" or empty string + +set -x +#LOCAL_MPI_WRAPPER="/opt/softs/mpiauto/mpiauto --wrap --wrap-stdeo --wrap-stdeo-pack" +LOCAL_MPI_WRAPPER="/opt/softs/mpiauto/mpiauto" +LOCAL_STACK_LIMIT=unlimited +ulimit -l unlimited +set +x + +# Specific environment variables : +# ------------------------------ +set -x +export OMP_STACKSIZE=4G +export KMP_STACKSIZE=4G +export KMP_MONITOR_STACKSIZE=4G +export I_MPI_HARD_FINALIZE=1 +export I_MPI_SCALABLE_OPTIMIZATION=0 +export I_MPI_DAPL_UD_RNDV_EP_NUM=4 +export I_MPI_SHM_SPIN_COUNT=10 +export I_MPI_SPIN_COUNT=10 +set +x + +# File systems : +# ------------ +# Global file system: +export TMPGFS=$TMPDIR +export WORKGFS=$WORKDIR/benchmarks +#MTOOL export TMPGFS=$MTOOL_STEP_WORKSPACE +# Local file system (if preferred): +export TMPLOC=$TMPGFS +echo TMPGFS=$TMPGFS +echo TMPLOC=$TMPLOC + +# Local disks synchronization : +# --------------------------- +export ISYNC=0 +if [ "$MTOOL_IS" = "ON" ] ; then +# synchronization is needed anyway between the steps + export ISYNC=1 +elif [ $NNODES -gt 1 ] && [ "$TMPLOC" != "$TMPGFS" ] ; then +# Local disk synchronization needed: + export ISYNC=1 +fi +echo ISYNC=$ISYNC + +# Miscellaneous : +# ------------- + +# ============================================================================= + +# USER PREFERENCES +# ================ + +#export NAMELDIR=/home/gmap/mrpm/khatib/pack/48t1_main.01#myref/run/cy47.forecast_arome_e700/Namelists +export NAMELDIR=$TESTDIR/Namelists + +HOMEPACK=${HOMEPACK:=$HOME/pack} +export BINDIR=$HOMEPACK/$MYLIB/bin +#export BINDIR=/home/gmap/mrpm/khatib/pack/48t1_main.01#myref/bin +OUTPUTDIR=${OUTPUTDIR:-$PWD} #No cd command have been done before this line + + + +export DATADIR=/scratch/work/khatib/data/cy47.forecast_arome_e700 +#export REFDIR=/home/gmap/mrpm/khatib/benchmarks/apps/modules/cy47.forecast_arome_e700/References +export TOOLSDIR=/home/gmap/mrpm/khatib/benchmarks/tools +#export ROOTDIR_ODB=/home/gmap/mrpm/khatib/odbpools/36t1_bench/cy47.forecast_arome_e700 + +# Check reliability of auxilary directories : +# ----------------------------------------- +ierr=0 +#for var in NAMELDIR BINDIR DATADIR REFDIR TOOLSDIR ; do +for var in NAMELDIR BINDIR DATADIR TOOLSDIR ; do + eval "dir=\$$var" + if [ ! "$dir" ] ; then + echo "$var is not set." + ierr=1 + fi + if [ $ierr -ne 0 ] ; then + exit 1 + fi +done +ierr=0 +for dir in $NAMELDIR $BINDIR $REFDIR $TOOLSDIR ; do + if [ ! -d $dir ] ; then + echo "$dir does not exists." + ierr=1 + fi + if [ $ierr -ne 0 ] ; then + exit 1 + fi +done + +echo TOOLSDIR=$TOOLSDIR +echo NAMELDIR=$NAMELDIR +echo DATADIR=$DATADIR +#echo REFDIR=$REFDIR +echo BINDIR=$BINDIR +#echo ROOTDIR_ODB=$ROOTDIR_ODB + +export PATH=$TOOLSDIR:$PATH +export TOOLSDIR +export DATADIR + +# Software default environment variables : +# -------------------------------------- +set -x +export DR_HOOK=0 +export DR_HOOK_IGNORE_SIGNALS=-1 +export DR_HOOK_SILENT=1 +export DR_HOOK_SHOW_PROCESS_OPTIONS=0 +export MPL_MBX_SIZE=2048000000 +export EC_PROFILE_HEAP=0 +export EC_PROFILE_MEM=0 +export EC_MPI_ATEXIT=0 +export EC_MEMINFO=0 +export OPENBLAS_NUM_THREADS=1 +export MKL_CBWR="AUTO,STRICT" +export MKL_NUM_THREADS=1 +export MKL_DEBUG_CPU_TYPE=5 +set +x + +# Profilers management : +# -------------------- +# FTRACE_JOB : profiler switch +# =0 : no profiler +# =1 : integrated DrHook profiler +# =2 : specific profiler +# +export FTRACE_JOB=1 +echo "FTRACE_JOB=$FTRACE_JOB" + +if [ $FTRACE_JOB -ne 0 ] ; then +# profilings main directory: + if [ -d $JOB_INITDIR ] ; then +# Use the initial job's dir + FTRACE_DIR=$JOB_INITDIR + else +# Set one : + FTRACEDIR= + if [ ! "$FTRACEDIR" ] ; then + echo "FTRACEDIR is not set." + exit 1 + fi + if [ ! -d $FTRACEDIR ] ; then + mkdir -p $FTRACEDIR + if [ $? -ne 0 ] ; then + echo "Can't make directory $FTRACEDIR" + exit 1 + fi + fi + FTRACE_DIR=$FTRACEDIR + fi + SCRATCH_FTRACE_DIR=$TMPGFS +# SCRATCH_FTRACE_DIR=$FTRACE_DIR + if [ $FTRACE_JOB -eq 1 ] ; then + set -x + export DR_HOOK=1 + export DR_HOOK_OPT=prof +# Directory of individual profiles : + export PROFDIR=$SCRATCH_FTRACE_DIR/${JOB_NAME}.d${JOB_ID} +# Merged profiles report filename : + export PROFMRG=$FTRACE_DIR/${JOB_NAME}.h${JOB_ID} + set +x + elif [ $FTRACE_JOB -ge 2 ] ; then + set -x +# Directory of individual profiles : + export PROFDIR=$SCRATCH_FTRACE_DIR/${JOB_NAME}.f${JOB_ID} +# Merged profiles report filename : + export PROFMRG=$FTRACE_DIR/${JOB_NAME}.t${JOB_ID} + set +x + fi +fi + +set +x + +# Listings : +# -------- +set -x +export ECHO_MPSH=OFF +export OUTPUT_LISTING=YES +export LOGDIR=$JOB_INITDIR/${JOB_NAME}.l${JOB_ID} +set +x + +# ODB archives : +# ------------ +# if set to 1, archived Odbs will be gzipped : +set -x +export ARCHIVE_AND_ZIP_ODB=0 +set +x + +# Directory for application output data files : +# ------------------------------------------- +echo +OUTDIR= +OUTDIR=${OUTDIR:=$TMPGFS} +if [ "$TMPGFS" != "$TMPLOC" ] ; then + if [ "$OUTDIR" = "$TMPLOC" ] ; then + echo "Output files on LOCAL file system" + elif [ "$OUTDIR" = "$TMPGFS" ] ; then + echo "Output files on GLOBAL file system" + else + echo "Output files on directory : $OUTDIR" + fi +else + echo "Output files on directory : $OUTDIR" +fi + +# NFS temporary directory for small I/Os +echo +TMPNFS=$(mktemp -d --tmpdir=/tmp/$LOGNAME) +if [ -d $TMPNFS ] ; then + echo "temporary directory on NFS for small I/Os : $TMPNFS" +else + TMPNFS="." +fi + +# ============================================================================= + +# APPLICATION TUNING +# ================== + +# ARPEGE : Forecast +# ***************** + +mkdir -p $TMPLOC +if [ $ISYNC -gt 0 ] ; then + mkdir -p $TMPGFS + cd $TMPGFS +else + cd $TMPLOC +fi + +# Driver-specific environment variables : +# ------------------------------------- +set -x +NAMELIST=namel_previ.48 +CTRLLIST=extra_namelists48.list +LINKS=links_inline48.scpt +EXECUTABLE=MASTERODB +#REFLIST=$REFDIR/forecast.out +EXPLIST=./NODE.001_01 +set +x + +#MTOOL common join=step_2 + +# Namelists modifications : +# ----------------------- + +set -x + +# Number of MPI tasks for the I/O server : +NPROC_IO=$NTASKS_IO + +# Remaining number of MPI tasks : +NPROC=$((MPI_TASKS-NPROC_IO)) + +# Memory cache optimisation: +NPROMA=-16 +NFPROMA=-24 + +# Overall scalar optimisation: +LOPT_SCALAR=.TRUE. + +# Output packing distribution: +NSTROUT=${NPROC} +NSTRIN=${NPROC} + +NPRGPEW=16 +#NPRGPNS=((NPROC/NPRGPEW)) +NPRTRV=16 +#NPRTRW=((NPROC/NPRTRV)) + +set +x + +cat > namelist_mods2 <<EOF + &NAMPARAR + / + &NAMTRANS + LFFTW=.TRUE., + / + &NAMPAR0 + NPRINTLEV=1, + LOPT_SCALAR=${LOPT_SCALAR}, + MBX_SIZE=2048000000, + NPROC=${NPROC}, + NPRGPNS=-, + NPRGPEW=-, + NPRTRW=-, + NPRTRV=-, + / + &NAMDIM + NPROMA=$NPROMA, + / + &NAMFPSC2 + NFPROMA=$NFPROMA, + / + &NAMFPSC2_DEP + NFPROMA_DEP=$NFPROMA, + / + &NAMPAR1 + LSPLIT=.TRUE., + NSTRIN=${NSTRIN}, + NSTROUT=${NSTROUT}, + / + &NAMFA + CMODEL=' ', + / + &NAMIAU + LIAU=.FALSE., + / + &NAMARG + CNMEXP='0000', + / + &NAMCT0 + CSCRIPT_LAMRTC=' ', + CSCRIPT_PPSERVER=' ', + CFPNCF='ECHFP', + NSDITS(0)=0, + NFRSDI=4, + NFPOS=1, + / + &NAMCT1 + N1POS=1, + / + &NAMFPC + CFPDIR='${OUTDIR}/PF', + / + &NAMOPH + CFNHWF='${OUTDIR}/ECHIS', + CFPATH='${OUTDIR}/', + / + &NAMIO_SERV + NPROC_IO=${NPROC_IO}, + NMSG_LEVEL_SERVER=1, + NMSG_LEVEL_CLIENT=1, + NPROCESS_LEVEL=5, + / + &NAMRIP + CSTOP='h24', + TSTEP=50., + / +EOF +cat namelist_mods2 > namelist_modset +\rm -f namelist_mods2 +echo +echo Namelists adaptations : +cat namelist_modset +echo + +set +x +cp $NAMELDIR/$NAMELIST namelist +perl -w $TOOLSDIR/xpnam namelist --dfile=namelist_modset +set -x +echo +/bin/cat namelist.new +set +x +\rm -f namelist_modset namelist +\mv namelist.new fort.4 +set -x + +#MTOOL common + +# ============================================================================= + +# DRIVER +# ====== + +# ****************************** +# * fetch initial data files * +# ****************************** + +#MTOOL common join=step_1 + +set -x +$TOOLSDIR/getdata.sh +set +x + +#MTOOL common + +#MTOOL common join=step_2 + +for file in $(cat $NAMELDIR/$CTRLLIST) ; do + set -x + cp $NAMELDIR/$file . + set +x +done +if [ -s $NAMELDIR/$LINKS ] ; then + set -x + cp $NAMELDIR/$LINKS . + chmod 755 $LINKS + . ./$LINKS + \rm $LINKS + set +x +fi + +#MTOOL common + +# *************** +# * Executable * +# *************** + +#MTOOL common join=step_1 + +echo +set -x +cp $BINDIR/$EXECUTABLE . +set +x +if [ ! -f $EXECUTABLE ] ; then + echo "executable $BINDIR/$EXECUTABLE could not be copied." + exit 1 +fi + +#MTOOL common + +# ******************************** +# * Prepare parallel executions * +# ******************************** + +#MTOOL common join=step_2 + +if [ "$LOCAL_STACK_LIMIT" ] ; then + set -x + ulimit -s $LOCAL_STACK_LIMIT + set +x +fi +# for mpsh : +export MPSH_NPES=$NNODES + +# grib_api environment variables may be determined by the executable : +. grib_api_profile $EXECUTABLE + +# Intel mpi fabric setup depending on what is found in the executable : +. intel_mpi_fabric $EXECUTABLE + +#MTOOL common + +set -x +cd $TMPLOC +set +x +. rttov_profile + +# ******************************************************* +# * Unarchive datasets and local disks Synchronisation * +# ******************************************************* + +if [ $ISYNC -eq 0 ] ; then + set -x +#MTOOL common join=step_1 + $TOOLSDIR/input_sync.sh +#MTOOL common + set +x +else + set -x +#MTOOL common join=step_2 + $TOOLSDIR/input_sync.sh +#MTOOL common + set +x +fi + +# *************** +# * Execution * +# *************** + +#MTOOL common join=step_2 + +mkdir -p $OUTDIR +echo +if [ $(echo $LOCAL_MPI_WRAPPER | grep -c mpiauto) -ne 0 ] ; then + set -x + time $LOCAL_MPI_WRAPPER -np $MPI_TASKS -nnp $MPITASKS_PER_NODE -- ./$EXECUTABLE </dev/null \ + errorcode=$? + 2>&1 | grep -v "FA[DC]GR[AM]: Field .* is not declared in \`faFieldName.def'" + set +x +elif [ "$LOCAL_MPI_WRAPPER" = "srun" ] ; then + set -x + time $LOCAL_MPI_WRAPPER ./$EXECUTABLE </dev/null \ + errorcode=$? + 2>&1 | grep -v "FA[DC]GR[AM]: Field .* is not declared in \`faFieldName.def'" + set +x +elif [ "$LOCAL_MPI_WRAPPER" ] ; then + set -x + time $LOCAL_MPI_WRAPPER -np $MPI_TASKS ./$EXECUTABLE </dev/null \ + errorcode=$? + 2>&1 | grep -v "FA[DC]GR[AM]: Field .* is not declared in \`faFieldName.def'" + set +x +else + set -x + time ./$EXECUTABLE \ + errorcode=$? + 2>&1 | grep -v "FA[DC]GR[AM]: Field .* is not declared in \`faFieldName.def'" + set +x +fi + +# ********************** +# * Post-processings * +# ********************** + +echo +if [ "$OUTPUT_LISTING" = "YES" ] ; then + set -x + $TOOLSDIR/outsync.sh + set +x +fi + +if [ $FTRACE_JOB -gt 0 ] ; then + set -x + $TOOLSDIR/profsync.sh + set +x +fi + +set -x +ls -l $OUTDIR +set +x + +set -x +#errorcode returned by executable is not reliable (always different from 0) +if grep " NSTEP = 1728 CNT0" NODE.001_01 > /dev/null; then + cp $EXPLIST $OUTPUTDIR/ +else + mkdir $OUTPUTDIR/error + cp $EXPLIST $OUTPUTDIR/error/ +fi +#if [ -f $REFLIST ] && [ -f $EXPLIST ] ; then $TOOLSDIR/diffNODE.001_01 $EXPLIST $REFLIST ; fi +set +x +# **************** +# * Cleanups * +# **************** + +set -x +cd $TMPGFS +$TOOLSDIR/cleansync.sh +set +x + +#MTOOL common + +# **************** +# * Epilogue * +# **************** + +set -x +$TOOLSDIR/epilog.sh +set +x +if [ "$MTOOL_IS" != "ON" ] && [ "$AUTO_CLEAN" = "ON" ] ; then + cd $HOME + \rm -rf $TMPGFS +fi + +#MTOOL step id=step_1 target=FRONTEND +#MTOOL step id=step_2 target=SUPERCOMPUTER diff --git a/tools/conf_tests/small_3D/aro48t3.sh b/tools/conf_tests/small_3D/aro48t3.sh new file mode 100755 index 0000000000000000000000000000000000000000..e4dee94ab7fedf14b4354eef27618864b8095488 --- /dev/null +++ b/tools/conf_tests/small_3D/aro48t3.sh @@ -0,0 +1,1208 @@ +#!/bin/bash +#SBATCH -n 4 +#SBATCH --mem=20000 +#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR +#SBATCH -t 00:10:00 +#SBATCH -N 1 +#SBATCH -p normal256 + +#The MYLIB variable must contain the gmkpack pack name +#The TESTDIR variable must contain the test directory +#Results will be stored in the local directory + +#Other environment varaibles that can be set: +#OUTPUTDIR + +date + +OUTPUTDIR=${OUTPUTDIR:-$PWD} +case=riette2 +#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script +rekchemin=$TESTDIR + +NPROC=4 +NSTRIN=$NPROC +NSTROUT=1 +NPRTRW_NPRTRV="" +NPRTRW_NPRTRV=" NPRTRW=$NPROC, + NPRTRV=1," +export OMP_NUM_THREADS=1 + +#MYLIB=48t1_main.01%jpdup + +export DR_HOOK=1 +#export DR_HOOK_IGNORE_SIGNALS=-1 +export DR_HOOK_NOT_MPI=1 +export DR_HOOK_SILENT=1 +export DR_HOOK_OPT= + +export EC_PROFILE_HEAP=0 +export EC_PROFILE_MEM=0 +export EC_MPI_ATEXIT=0 +export DR_HOOK_SHOW_PROCESS_OPTIONS=0 +export EC_MEMINFO=0 +export TVSEARCHPATH=$SOURCE + +HOMEPACK=${HOMEPACK:=$HOME/pack} +SOURCE=$HOMEPACK/$MYLIB/src/local +LOADIR=$HOMEPACK/$MYLIB/bin + +TMPDIR=${TMPDIR:=$HOME/tmp} +TMPLOC=$TMPDIR/rundir.$$ +TMPWAIT=$TMPDIR/wait_queue.$$ +mkdir $TMPWAIT +mkdir $TMPLOC +cd $TMPLOC + +export RTTOV_COEFDIR=$PWD + +# ************************** +# * Saisie des NAMELISTS * +# ************************** + +CNMEXP='FPOS' + +echo +/bin/cat <<FIN > fort.4 + &NACIETEO + / + &NACOBS + / + &NACTAN + / + &NACTEX + / + &NACVEG + / + &NADOCK + / + &NAEAEM7 + / + &NAEAER + / + &NAECOAPHY + / + &NAEPHLI + / + &NAEPHY + / + &NAERAD + LRRTM=.TRUE., + LSRTM=.FALSE., + NAER=1, + NICEOPT=3, + NLIQOPT=3, + NOVLP=6, + NOZOCL=2, + NRADFR=18, + NRADIP=3, + NRADLP=2, + NSW=6, + RLWINHF=1, + RRE2DE=0.64952, + RSWINHF=1, + / + &NAERCLI + / + &NAEVOL + / + &NAIMPO + / + &NALORI + / + &NAMAFN + GFP_CLSG%CLNAME='SURFACCGRAUPEL', + GFP_CLSP%CLNAME='SURFACCPLUIE', + GFP_CLSS%CLNAME='SURFACCNEIGE', + GFP_SFIS%IBITS=16, + GFP_ST%CLNAME='SURFTEMPERATURE', + GFP_ST%IANO=0, + GFP_ST%IBITS=12, + GFP_X10U%CLNAME='CLSVENT.ZONAL', + GFP_X10U%IANO=0, + GFP_X10U%IBITS=12, + GFP_X10V%CLNAME='CLSVENT.MERIDIEN', + GFP_X10V%IANO=0, + GFP_X10V%IBITS=12, + GFP_X2RH%CLNAME='CLSHUMI.RELATIVE', + GFP_X2RH%IANO=0, + GFP_X2RH%IBITS=12, + GFP_X2T%CLNAME='CLSTEMPERATURE', + GFP_X2T%IANO=1, + GFP_XCCC%IBITS=8, + GFP_XHCC%IBITS=8, + GFP_XLCC%IBITS=8, + GFP_XLSG%CLNAME='SURFINSGRAUPEL', + GFP_XLSP%CLNAME='SURFINSPLUIE', + GFP_XLSS%CLNAME='SURFINSNEIGE', + GFP_XMCC%IBITS=8, + GFP_XN2T%IBITS=12, + GFP_XTCC%IBITS=8, + GFP_XUGST%CLNAME='CLSU.RAF60M.XFU', + GFP_XUGST%IANO=0, + GFP_XUGST%IBITS=12, + GFP_XVGST%CLNAME='CLSV.RAF60M.XFU', + GFP_XVGST%IANO=0, + GFP_XVGST%IBITS=12, + GFP_XX2T%IBITS=12, + GFP_XXDIAGH%IBITS=12, + TFP_ABS%ZFK=32., + TFP_CLF%IBITS=6, + TFP_EDR%CLNAME='EDR', + TFP_EDR%IBITS=16, + TFP_EDR%IGRIB=136, + TFP_GR%IBITS=12, + TFP_HL%IBITS=12, + TFP_HTB%IBITS=16, + TFP_HTB%LLGP=.TRUE., + TFP_HU%IBITS=12, + TFP_MSAT9C2%IBITS=12, + TFP_MSAT9C6%IBITS=12, + TFP_MSLNH%IBITS=12, + TFP_PV%ZFK=64., + TFP_RCLS%IBITS=12, + TFP_RR%IBITS=12, + TFP_SN%IBITS=12, + TFP_T%IBITS=12, + TFP_TCLS%IBITS=12, + TFP_TH%IBITS=12, + TFP_THPW%IBITS=12, + TFP_THV%IBITS=12, + TFP_TN%IBITS=12, + TFP_TWV%IBITS=12, + TFP_TX%IBITS=12, + TFP_U%IBITS=12, + TFP_V%IBITS=12, + TFP_VOR%ZFK=32., + TFP_VV%ZFK=32., + / + &NAMARG + CNMEXP='${CNMEXP}', + LECMWF=.FALSE., + LELAM=.TRUE., + LSLAG=.TRUE., + NCONF=1, + NSUPERSEDE=1, + / + &NAMARPHY + LKFBCONV=.FALSE., + LKFBD=.FALSE., + LKFBS=.FALSE., + LMFSHAL=.TRUE., + LMICRO=.TRUE., + LMPA=.TRUE., + LMSE=.TRUE., + LTURB=.TRUE., + / + &NAMCA + / + &NAMCAPE + / + &NAMCFU + LCUMFU=.TRUE., + LFPLS=.TRUE., + LFPLSG=.TRUE., + LFR=.TRUE., + LFRRC=.TRUE., + LFSF=.TRUE., + LNEBPAR=.TRUE., + LNEBTT=.TRUE., + LRAYD=.TRUE., + LRAYS=.TRUE., + / + &NAMCHEM + / + &NAMCHET + / + &NAMCHK + / + &NAMCLA + / + &NAMCLDP + / + &NAMCLI + / + &NAMCLOP15 + / + &NAMCLTC + / + &NAMCOK + / + &NAMCOM + / + &NAMCOSJO + / + &NAMCOUPLO4 + / + &NAMCT0 + CFPNCF='ECHFP', + CNPPATH=' ', + LAROME=.TRUE., + LNHEE=.TRUE., + LSCREEN_OPENMP=.FALSE., + LSPRT=.TRUE., + LTWOTL=.TRUE., + NFPOS=1, + NFRSDI=18, + NSDITS(0)=0, + NFRHIS=72, + NHISTS(0)=0, + NFRPOS=72, + NPOSTS(0)=0, + NFRSFXHIS=72, + NSFXHISTS(0)=0, + NFRDHFD=72, + NDHFDTS(0)=0, + / + &NAMCT1 + LRFILAF=.FALSE., + N1HIS=1, + N1POS=1, + N1RES=0, + N1SDI=1, + N1SFXHIS=1, + N1GDI=0, + / + &NAMCUMF + / + &NAMCUMFS + / + &NAMCVER + / + &NAMCVMNH + / + &NAMDDH + LDDH_OMP=.TRUE., + LHDDOP=.TRUE., + LHDHKS=.TRUE., + LHDEFD=.TRUE., + LFLEXDIA=.TRUE., + BDEDDH(1,1)=3, + BDEDDH(2,1)=1, + BDEDDH(3,1)=358.8 + BDEDDH(4,1)=45.1 + BDEDDH(5,1)=360.3 + BDEDDH(6,1)=44.5 + / + &NAMDFI + / + &NAMDIM + NPROMA=-50, + / + &NAMDIMO + / + &NAMDIM_TRAJ + / + &NAMDPHY + / + &NAMDPRECIPS + / + &NAMDYN + LADVF=.TRUE., + LQMPD=.FALSE., + LQMT=.FALSE., + LQMVD=.FALSE., + LRHDI_LASTITERPC=.TRUE., + NITMP=4, + NSITER=1, + NSPDLAG=3, + NSVDLAG=3, + NTLAG=3, + NVLAG=3, + NWLAG=3, + RDAMPDIV=20., + RDAMPPD=20., + RDAMPQ=0., + RDAMPT=0., + RDAMPVD=20., + RDAMPVOR=20., + REPS1=0., + REPS2=0., + REPSM1=0., + REPSM2=0., + REPSP1=0., + SDRED=1., + SIPR=90000., + SITR=350., + SITRA=100., + SLHDA0=0.25, + SLHDD00=0.000065, + VESL=0.05, + XIDT=0., + ZSLHDP1=1.7, + ZSLHDP3=0.6, + / + &NAMDYNA + LCOMADH=.TRUE., + LCOMADV=.FALSE., + LCOMAD_GFL=.TRUE., + LCOMAD_SP=.TRUE., + LCOMAD_SPD=.TRUE., + LCOMAD_SVD=.TRUE., + LCOMAD_T=.TRUE., + LCOMAD_W=.TRUE., + LGWADV=.TRUE., + LNESC=.TRUE., + LPC_CHEAP=.TRUE., + LPC_FULL=.TRUE., + LRDBBC=.FALSE., + LSETTLS=.FALSE., + LSETTLST=.TRUE., + LSLHD_GFL=.TRUE., + LSLHD_OLD=.FALSE., + LSLHD_SPD=.FALSE., + LSLHD_SVD=.FALSE., + LSLHD_T=.FALSE., + LSLHD_W=.FALSE., + ND4SYS=2, + NDLNPR=1, + NPDVAR=2, + NVDVAR=4, + SLHDEPSH=0.08, + SLHDKMAX=6, + / + &NAMDYNCORE + / + &NAMEMIS_CONF + / + &NAMENKF + / + &NAMFA + CMODEL='OUTPUTID', + LEXTERN=.TRUE., + LSUPPDATE=.FALSE., + NBITCS=-1, + NBITPG=-1, + NSTRON=-1, + / + &NAMFAINIT + JPXTRO=2000, + / + &NAMFPC + CFP2DF(1)='SURFPRESSION', + CFP2DF(2)='MSL_NHPRESSURE', + CFP2DF(3)='SURFTOT.WAT.VAPO', + CFP2DF(4)='SURFISOTPW0.MALT', + CFP2DF(5)='SURFCAPE.POS.F00', + CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS', + CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS', + CFP2DF(8)='SURFREFLECT.MAX', + CFP2DF(9)='SURFISOTPW1.MALT', + CFP2DF(10)='SURFISOTPW2.MALT', + CFP3DF(1)='GEOPOTENTIEL', + CFP3DF(2)='TEMPERATURE', + CFP3DF(3)='VENT_ZONAL', + CFP3DF(4)='VENT_MERIDIEN', + CFP3DF(5)='HUMI_RELATIVE', + CFP3DF(6)='THETA_PRIM_W', + CFP3DF(7)='PRESSURE', + CFP3DF(8)='ABS_VORTICITY', + CFP3DF(9)='VITESSE_VERTICALE', + CFP3DF(10)='TEMPE_POTENT', + CFP3DF(11)='POT_VORTICIT', + CFP3DF(12)='SIM_REFLECTI', + CFP3DF(13)='RAIN', + CFP3DF(14)='SNOW', + CFP3DF(15)='GRAUPEL', + CFP3DF(16)='ICE_CRYSTAL', + CFP3DF(17)='CLOUD_WATER', + CFP3DF(18)='VERT.VELOCIT', + CFP3DF(19)='DIVERGENCE', + CFP3DF(20)='THETA_VIRTUA', + CFP3DF(21)='TKE', + CFP3DF(22)='CLOUD_FRACTI', + CFP3DF(23)='ISOT_ALTIT', + CFP3DF(24)='EDR', + CFPCFU(1)='SURFTENS.TOTA.ZO', + CFPCFU(2)='SURFTENS.TOTA.ME', + CFPCFU(3)='SURFACCPLUIE', + CFPCFU(4)='SURFACCNEIGE', + CFPCFU(5)='SURFACCGRAUPEL', + CFPCFU(6)='SOMMFLU.RAY.SOLA', + CFPCFU(7)='SURFFLU.RAY.SOLA', + CFPCFU(8)='SOMMFLU.RAY.THER', + CFPCFU(9)='SURFFLU.RAY.THER', + CFPCFU(10)='SURFFLU.LAT.MTOT', + CFPCFU(11)='SURFFLU.MTOTA.NE', + CFPCFU(12)='SURFFLU.CHA.SENS', + CFPCFU(13)='SURFRAYT SOLA DE', + CFPCFU(14)='SURFRAYT THER DE', + CFPCFU(15)='SURFRAYT SOL CL', + CFPCFU(16)='SURFRAYT THER CL', + CFPCFU(17)='SURFRAYT DIR SUR', + CFPDOM(1)='FRANGP0025', + CFPFMT='LALON', + CFPPHY(1)='SURFTEMPERATURE', + CFPPHY(2)='INTSURFGEOPOTENT', + CFPPHY(3)='SURFRESERV.NEIGE', + CFPXFU(1)='CLSTEMPERATURE', + CFPXFU(2)='CLSHUMI.RELATIVE', + CFPXFU(3)='CLSVENT.ZONAL', + CFPXFU(4)='CLSVENT.MERIDIEN', + CFPXFU(5)='SURFNEBUL.TOTALE', + CFPXFU(6)='SURFNEBUL.HAUTE', + CFPXFU(7)='SURFNEBUL.MOYENN', + CFPXFU(8)='SURFNEBUL.BASSE', + CFPXFU(9)='CLSMAXI.TEMPERAT', + CFPXFU(10)='CLSMINI.TEMPERAT', + CFPXFU(11)='CLPMHAUT.MOD.XFU', + CFPXFU(12)='SURFDIAGHAIL', + LCRITSNOWTEMP=.FALSE., + LFPCAPEX=.TRUE., + LFPMOIS=.TRUE., + LFPPACKING=.FALSE., + LWIDER_DOM=.TRUE., + L_READ_MODEL_DATE=.TRUE., + NFITI=1, + NFITV=1, + NFPCAPE=5, + NFPCLI=1, + NFPGRIB=1, + NFPINPHY=4, + NITERPV=8, + RENTRA=0.0001, + RFP3H(1)=10., + RFP3H(2)=20., + RFP3H(3)=35., + RFP3H(4)=50., + RFP3H(5)=75., + RFP3H(6)=100., + RFP3H(7)=150., + RFP3H(8)=200., + RFP3H(9)=250., + RFP3H(10)=375., + RFP3H(11)=500., + RFP3H(12)=625., + RFP3H(13)=750., + RFP3H(14)=875., + RFP3H(15)=1000., + RFP3H(16)=1125., + RFP3H(17)=1250., + RFP3H(18)=1375., + RFP3H(19)=1500., + RFP3H(20)=1750., + RFP3H(21)=2000., + RFP3H(22)=2250., + RFP3H(23)=2500., + RFP3H(24)=2750., + RFP3H(25)=3000., + RFP3I(1)=-273.15, + RFP3I(2)=-263.15, + RFP3I(3)=-261.15, + RFP3I(4)=-253.15, + RFP3P(1)=10000., + RFP3P(2)=12500., + RFP3P(3)=15000., + RFP3P(4)=17500., + RFP3P(5)=20000., + RFP3P(6)=22500., + RFP3P(7)=25000., + RFP3P(8)=27500., + RFP3P(9)=30000., + RFP3P(10)=35000., + RFP3P(11)=40000., + RFP3P(12)=45000., + RFP3P(13)=50000., + RFP3P(14)=55000., + RFP3P(15)=60000., + RFP3P(16)=65000., + RFP3P(17)=70000., + RFP3P(18)=75000., + RFP3P(19)=80000., + RFP3P(20)=85000., + RFP3P(21)=90000., + RFP3P(22)=92500., + RFP3P(23)=95000., + RFP3P(24)=100000., + RFP3PV(1)=0.0000015, + RFP3PV(2)=0.000002, + RFPCD2=5., + RFPCSAB=50., + RFPVCAP=7000., + / + &NAMFPD + NLAT(1)=41, + NLON(1)=41, + RLONC(1)=-0.71, + RLATC(1)=44.8, + RDELX(1)=0.025, + RDELY(1)=0.025, + / + &NAMFPDY2 + / + &NAMFPDYF + / + &NAMFPDYH + / + &NAMFPDYI + / + &NAMFPDYP + / + &NAMFPDYS + / + &NAMFPDYT + / + &NAMFPDYV + / + &NAMFPF + NFMAX(1)=60, + NFMAX(2)=80, + / + &NAMFPG + NFPDISTRIB=1, + / + &NAMFPIOS + / + &NAMFPMOVE + / + &NAMFPPHY + / + &NAMFPSC2 + NFPROMA=-50, + / + &NAMFPSC2_DEP + NFPROMA_DEP=-50, + / + &NAMGEM + / + &NAMGFL + NGFL_EZDIAG=4, + YEZDIAG_NL(1)%CNAME='EZDIAG01', + YEZDIAG_NL(1)%LREQOUT=.FALSE., + YEZDIAG_NL(2)%CNAME='EZDIAG02', + YEZDIAG_NL(2)%LREQOUT=.FALSE., + YEZDIAG_NL(3)%CNAME='EZDIAG03', + YEZDIAG_NL(3)%LREQOUT=.FALSE., + YEZDIAG_NL(4)%CNAME='INPRRTOT3D', + YEZDIAG_NL(4)%LREQOUT=.TRUE., + YG_NL%LQM=.TRUE., + YG_NL%LSLHD=.TRUE., + YG_NL%NCOUPLING=-1, + YG_NL%NREQIN=1, + YG_NL%REFVALC=0., + YIRAD_NL%LGP=.TRUE., + YI_NL%LQM=.TRUE., + YI_NL%LSLHD=.TRUE., + YI_NL%NCOUPLING=-1, + YI_NL%NREQIN=1, + YI_NL%REFVALC=0., + YLRAD_NL%LGP=.TRUE., + YL_NL%LQM=.TRUE., + YL_NL%LSLHD=.TRUE., + YL_NL%NCOUPLING=-1, + YL_NL%NREQIN=1, + YL_NL%REFVALC=0., + YQ_NL%LCOMAD=.TRUE., + YQ_NL%LQM=.TRUE., + YQ_NL%LSLHD=.FALSE., + YQ_NL%NREQIN=1, + YR_NL%LQM=.TRUE., + YR_NL%LSLHD=.TRUE., + YR_NL%NCOUPLING=-1, + YR_NL%NREQIN=1, + YR_NL%REFVALC=0., + YS_NL%LQM=.TRUE., + YS_NL%LSLHD=.TRUE., + YS_NL%NCOUPLING=-1, + YS_NL%NREQIN=1, + YS_NL%REFVALC=0., + YTKE_NL%NCOUPLING=0, + YTKE_NL%NREQIN=1, + / + &NAMGRIB + / + &NAMGWD + / + &NAMGWDIAG + / + &NAMGWWMS + / + &NAMIAU + ALPHAIAU=0.5, + LIAU=.FALSE., + TSTARTIAU=1800, + TSTOPIAU=5340, + / + &NAMICE + / + &NAMINI + LDFI=.FALSE., + / + &NAMINTFLEX + / + &NAMIOMI + / + &NAMIOS + / + &NAMIO_SERV + NIO_SERV_BUF_MAXSIZE=20, + NIO_SERV_METHOD=2, + NMSG_LEVEL_CLIENT=0, + NMSG_LEVEL_SERVER=0, + NPROCESS_LEVEL=5, + NPROC_IO=0, + / + &NAMJBCODES + / + &NAMJFH + / + &NAMJG + / + &NAMLCZ + / + &NAMLSFORC + / + &NAMMARS + / + &NAMMCC + / + &NAMMCUF + / + &NAMMKODB + / + &NAMMODERR + / + &NAMMTS + / + &NAMMWAVE + / + &NAMNPROF + / + &NAMNUD + / + &NAMOBS + / + &NAMONEDVAR + / + &NAMOOPS + / + &NAMOPH + CFNHWF='ECHIS', + LINC=.TRUE., + NTIMEFMT=1, + / + &NAMOPTCMEM + / + &NAMPAR0 + LOPT_SCALAR=.TRUE., + NPRINTLEV=1, + LMPOFF=.FALSE., + MBX_SIZE=2048000000, + MP_TYPE=2, + NOUTPUT=1, + NPROC=$NPROC, +$NPRTRW_NPRTRV + / + &NAMPAR1 + LEQ_REGIONS=.FALSE., + LSLONDEM=.TRUE., + LSPLIT=.TRUE., + LSYNC_SLCOM=.FALSE., + LSYNC_TRANS=.FALSE., + L_GATHERV_WRGP=.FALSE., + NCOMBFLEN=1800000, + NSTRIN=$NSTRIN, + NSTROUT=$NSTROUT, + / + &NAMPARAR + CFRAC_ICE_ADJUST='S', + CFRAC_ICE_SHALLOW_MF='S', + CMICRO='ICE3', + CSEDIM='STAT', + CSNOWRIMING='M90', + LCONVHG=.TRUE., + LCRFLIMIT=.TRUE., + LCRIAUTI=.TRUE., + LEVLIMIT=.TRUE., + LFEEDBACKT=.TRUE., + LFPREC3D=.TRUE., + LNULLWETG=.TRUE., + LNULLWETH=.TRUE., + LOLSMC=.TRUE., + LOSEDIC=.TRUE., + LOSIGMAS=.TRUE., + LOSUBG_COND=.TRUE., + LSEDIM_AFTER=.FALSE., + LWETGPOST=.TRUE., + LWETHPOST=.TRUE., + NMAXITER_MICRO=1, + NPRINTFR=10000, + NPTP=1, + RCRIAUTC=0.001, + RCRIAUTI=0.0002, + RT0CRIAUTI=-5., + VSIGQSAT=0.02, + XFRACM90=0.1, + XMRSTEP=0.00005, + XSPLIT_MAXCFL=0.8, + XTSTEP_TS=0., + / + &NAMPHMSE + LPGDFWR=.FALSE., + / + &NAMPHY + LAERODES=.TRUE., + LAEROLAN=.TRUE., + LAEROSEA=.TRUE., + LAEROSOO=.TRUE., + LEDR=.TRUE., + LMPHYS=.TRUE., + LO3ABC=.TRUE., + LRAYFM=.TRUE., + / + &NAMPHY0 + ALMAV=300., + BEDIFV=0.05, + ECMNP=3000., + GCCSV=0., + GCVADS=0.8, + GCVALFA=0.000045, + GCVBETA=0.2, + GCVMLT=0.00016, + GCVNU=0.000025, + GCVPSI=1., + GCVPSIE=1., + GDDEVA=0.25, + GDDSDE=0.5, + GWDCD=6., + HUCOE=0.5, + HUTIL=1.8, + QSSC=400., + QSSUSC=0.75, + QSSUSS=0.4, + QSSUSV=250., + QSUSXC=0.0002, + QSUSXS=0.0003, + QXRAL=130., + QXRDEL=0.49, + QXRHX=0.99, + QXRR=0.25, + RCVEVAP=0.25, + REFLKUO=5000., + REVGSL=15., + SCO=-20., + TDDGP=0.8, + TENTR=0.0000025, + TENTRX=0.00008, + TUDGP=0.8, + UHDIFV=0.0008, + USURIC=0.175, + USURICE=0.5, + USURICL=1., + USURID=0.1, + USURIDE=0.25, + VZ0CM=0.00015, + XMAXLM=5000., + XMINLM=10., + / + &NAMPHY1 + ALBMIN=0.65, + ALCRIN=0.75, + GCGEL=0.00003, + GCGELS=0.00005, + GNEIMX=1.8, + GNEIMXS=1.8, + RCTVEG(3)=0.000012, + RCTVEG(4)=0.00001, + / + &NAMPHY2 + FACRAF=3.8, + HTKERAF=20., + LMULAF=.TRUE., + LRAFTKE=.TRUE., + LRAFTUR=.TRUE., + XDAMP=1., + XMULAF=-1.85, + / + &NAMPHY3 + / + &NAMPHYDS + / + &NAMPONG + / + &NAMPPC + / + &NAMPPVI + / + &NAMPRE + / + &NAMRAD15 + / + &NAMRADCMEM + / + &NAMRCF + / + &NAMRCOEF + / + &NAMRES + / + &NAMRGRI + / + &NAMRINC + / + &NAMRIP + TSTEP=50., + CSTOP='h2', + / + &NAMRIP0 + / + &NAMRLX + / + &NAMSATS + LPARTIAL_COEF_FILES=.TRUE., + / + &NAMSCC + / + &NAMSCEN + / + &NAMSCM + / + &NAMSEKF + / + &NAMSENS + / + &NAMSFXCMP + CFLDNAME(1)='????????????????', + NBBITS(1)=24, + / + &NAMSIMPHL + / + &NAMSPNG + / + &NAMSPSDT + / + &NAMSTA + / + &NAMSTOPH + / + &NAMSWE + / + &NAMTESTVAR + / + &NAMTHLIM + / + &NAMTOPH + ETCVIM=5000., + ETNEBU=5000., + ETPLUI=5000., + XDRMTK=6.0D-7, + XDRMTP=800., + XDRMUK=3.0D-7, + XDRMUP=800., + / + &NAMTRAJP + / + &NAMTRANS + / + &NAMTRANS0 + / + &NAMTS + / + &NAMVAR + / + &NAMVARBC + / + &NAMVARBC_AIREP + / + &NAMVARBC_ALLSKY + / + &NAMVARBC_GBRAD + / + &NAMVARBC_RAD + / + &NAMVARBC_SFCOBS + / + &NAMVARBC_TCWV + / + &NAMVARBC_TO3 + / + &NAMVAREPS + / + &NAMVDF + / + &NAMVDOZ + / + &NAMVOLCANO + / + &NAMVRTL + / + &NAMVV0 + / + &NAMVV1 + / + &NAMVWRK + / + &NAMWAVELETJB + / + &NAMXFU + LXCLP=.TRUE., + LXCLS=.TRUE., + LXFU=.TRUE., + LXNEBPA=.TRUE., + LXNEBTT=.TRUE., + LXNUVCLS=.TRUE., + LXPLS=.TRUE., + LXPLSG=.TRUE., + LXQCLS=.TRUE., + LXR=.TRUE., + LXSOIL=.FALSE., + LXTHW=.TRUE., + LXTRT=.TRUE., + LXTTCLS=.TRUE., + LXXDIAGH=.TRUE., + LXXGST=.TRUE., + NFRRAZ=72, + NRAZTS(0)=0, + / + &NAM_CANAPE + / + &NAM_DISTRIBUTED_VECTORS + / + &NAPHLC + / + &NEMCT0 + / + &NEMDIM + / + &NEMDYN + / + &NEMELBC0A + LESPCPL=.TRUE., + NBICNHX=2, + NBICOP=2, + NBICOT=2, + NBICOU=2, + NBICPD=2, + NBICVD=2, + NECRIPL=1, + / + &NEMELBC0B + NEFRSPCPL=1, + NEK0=20, + NEK1=30, + NEN1=4, + NEN2=8, + SPNUDDIV=0.01, + SPNUDQ=0., + SPNUDT=0.01, + SPNUDVOR=0.01, + TEFRCL=3600., + / + &NEMFPEZO + / + &NEMGEO + / + &NEMJK + / + &NEMVAR + / + &NEMWAVELET + / + &NAETLDIAG + / + &NAMMETHOX + / + &NAMSPP + / + &NAMACV + / + &NAMFPOBJ + / + &NAMNORGWD + / + &NAMTRAJ + / + &NAMSATSIM + / + &NAMDVISI + / + &NAMNUDGLH + / + &NAMPERTPAR + / +FIN +/bin/cat fort.4 + +/bin/cat <<FIN > EXSEG1.nam + &NAM_DIAG_ISBAN + LPGD=.TRUE., + LSURF_MISC_BUDGET=.TRUE., + / + &NAM_DIAG_SURFN + LCOEF=.TRUE., + LSURF_BUDGET=.TRUE., + N2M=2, + / + &NAM_ISBAN + CSCOND='NP89', + / + &NAM_REPROD_OPER + LREPROD_OPER=.TRUE., + / + &NAM_SEAFLUXN + CSEA_FLUX='ECUME', + LPWG=.FALSE., + LPRECIP=.FALSE., + LPWEBB=.FALSE., + / + &NAM_SSON + CROUGH='Z01D', + XFRACZ0=5., + LDSV=.FALSE., + / + &NAM_SURF_ATM + XRIMAX=0.2, + LNOSOF=.TRUE., + / + &NAM_SURF_CSTS + XZ0SN=0.01, + XZ0HSN=0.001, + XEMISSN=0.99, + / + &NAM_WRITE_DIAG_SURFN + LPROVAR_TO_DIAG=.FALSE., + LSELECT=.TRUE., +CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS', + / + &NAM_WRITE_SURF_ATM + LNOWRITE_TEXFILE=.TRUE., + / +FIN +/bin/cat EXSEG1.nam + +# ***************************************** +# * Acquisition du fichier de demarrage * +# ***************************************** + +echo +for hh in 0 1 2 3 4 5 6 ; do + N=`expr $hh / 1 ` + set -x + ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N} + set +x +done +set -x +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx +ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin . +ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim +ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx +ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025 +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat . +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat . +ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat . +set +x +tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz + +# *************** +# * Chargement * +# *************** + +echo +set -x +\ln -s $LOADIR/MASTERODB MASTER +set +x +if ldd MASTER | grep openmpi > /dev/null; then + #On est sur PC + MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}') + MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC" + GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1 + export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions + export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions +else + #On est sur HPC + #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD" + NNODES=$SLURM_JOB_NUM_NODES + MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES)) + MPI_TASKS=$SLURM_NTASKS + MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --" + export OMP_STACKSIZE=4G + export KMP_STACKSIZE=4G + export KMP_MONITOR_STACKSIZE=4G + export DR_HOOK=1 + export DR_HOOK_IGNORE_SIGNALS=-1 + export DR_HOOK_SILENT=1 + export DR_HOOK_SHOW_PROCESS_OPTIONS=0 + export MPL_MBX_SIZE=2048000000 + export EC_PROFILE_HEAP=0 + export EC_PROFILE_MEM=0 + export EC_MPI_ATEXIT=0 + export EC_MEMINFO=0 + export OPENBLAS_NUM_THREADS=1 + export MKL_CBWR="AUTO,STRICT" + export MKL_NUM_THREADS=1 + export MKL_DEBUG_CPU_TYPE=5 + export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions +fi +echo $MPIRUN +set +x +if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi + +# *************** +# * Execution * +# *************** + +echo +echo OMP_NUM_THREADS=$OMP_NUM_THREADS +set -x +ulimit -s unlimited +$MPIRUN $PWD/MASTER >lola +set +x +echo +##if [ -f lola ] ; then +## echo;echo Standard output :;echo;cat lola +##fi +##if [ -f stderr.* ] ; then +## for file in stderr.* ; do +## echo;echo $file :;cat $file +## done +##fi +##if [ -f stdout.* ] ; then +##echo;echo stdout :;echo;cat stdout.* +##fi +##if [ -a NODE.001_01 ] ; then +## for file in NODE* ; do +## echo;echo Listing $file;echo +## cat $file +## done +##fi +##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then +### Top 25 for each MPI task : +## for file in drhook.prof.* ; do +## echo;echo $file :;head -38 $file +## done +##fi +#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl + +# ******************* +# * Sauvegardes * +# ******************* + +ls +#if [ -f PFFPOS000+0000 ] ; then +# cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID +#fi +cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/ +mv *.dat $OUTPUTDIR/ +/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001* +/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00* +/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz) + +# **************** +# * Epilogue * +# **************** + +ls -ltr | grep -v "\->" +echo Wait_queue : +ls -ltr $TMPWAIT +cd $TMPDIR +\rm -rf rundir.$$ +\rm -rf wait_queue.$$ +date +set +x diff --git a/tools/conf_tests/small_3D_alt1/aro48t3.sh b/tools/conf_tests/small_3D_alt1/aro48t3.sh new file mode 100755 index 0000000000000000000000000000000000000000..62c8078f80366bf944c86f07a8c0c8a36ed0f8c3 --- /dev/null +++ b/tools/conf_tests/small_3D_alt1/aro48t3.sh @@ -0,0 +1,1207 @@ +#!/bin/bash +#SBATCH -n 4 +#SBATCH --mem=20000 +#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR +#SBATCH -t 00:10:00 +#SBATCH -N 1 +#SBATCH -p normal256 + +#The MYLIB varibale must contain the gmkpack pack name +#The TESTDIR variable must contain the test directory +#Results will be stored in the local directory + +#Other environment varaibles that can be set: +#OUTPUTDIR + +date + +OUTPUTDIR=${OUTPUTDIR:-$PWD} +case=riette2 +#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script +rekchemin=$TESTDIR + +NPROC=4 +NSTRIN=$NPROC +NSTROUT=1 +NPRTRW_NPRTRV="" +NPRTRW_NPRTRV=" NPRTRW=$NPROC, + NPRTRV=1," +export OMP_NUM_THREADS=1 + +#MYLIB=48t1_main.01%jpdup + +export DR_HOOK=1 +#export DR_HOOK_IGNORE_SIGNALS=-1 +export DR_HOOK_NOT_MPI=1 +export DR_HOOK_SILENT=1 +export DR_HOOK_OPT= + +export EC_PROFILE_HEAP=0 +export EC_PROFILE_MEM=0 +export EC_MPI_ATEXIT=0 +export DR_HOOK_SHOW_PROCESS_OPTIONS=0 +export EC_MEMINFO=0 +export TVSEARCHPATH=$SOURCE + +HOMEPACK=${HOMEPACK:=$HOME/pack} +SOURCE=$HOMEPACK/$MYLIB/src/local +LOADIR=$HOMEPACK/$MYLIB/bin + +TMPDIR=${TMPDIR:=$HOME/tmp} +TMPLOC=$TMPDIR/rundir.$$ +TMPWAIT=$TMPDIR/wait_queue.$$ +mkdir $TMPWAIT +mkdir $TMPLOC +cd $TMPLOC + +export RTTOV_COEFDIR=$PWD + +# ************************** +# * Saisie des NAMELISTS * +# ************************** + +CNMEXP='FPOS' + +echo +/bin/cat <<FIN > fort.4 + &NACIETEO + / + &NACOBS + / + &NACTAN + / + &NACTEX + / + &NACVEG + / + &NADOCK + / + &NAEAEM7 + / + &NAEAER + / + &NAECOAPHY + / + &NAEPHLI + / + &NAEPHY + / + &NAERAD + LRRTM=.TRUE., + LSRTM=.FALSE., + NAER=1, + NICEOPT=3, + NLIQOPT=3, + NOVLP=6, + NOZOCL=2, + NRADFR=18, + NRADIP=3, + NRADLP=2, + NSW=6, + RLWINHF=1, + RRE2DE=0.64952, + RSWINHF=1, + / + &NAERCLI + / + &NAEVOL + / + &NAIMPO + / + &NALORI + / + &NAMAFN + GFP_CLSG%CLNAME='SURFACCGRAUPEL', + GFP_CLSP%CLNAME='SURFACCPLUIE', + GFP_CLSS%CLNAME='SURFACCNEIGE', + GFP_SFIS%IBITS=16, + GFP_ST%CLNAME='SURFTEMPERATURE', + GFP_ST%IANO=0, + GFP_ST%IBITS=12, + GFP_X10U%CLNAME='CLSVENT.ZONAL', + GFP_X10U%IANO=0, + GFP_X10U%IBITS=12, + GFP_X10V%CLNAME='CLSVENT.MERIDIEN', + GFP_X10V%IANO=0, + GFP_X10V%IBITS=12, + GFP_X2RH%CLNAME='CLSHUMI.RELATIVE', + GFP_X2RH%IANO=0, + GFP_X2RH%IBITS=12, + GFP_X2T%CLNAME='CLSTEMPERATURE', + GFP_X2T%IANO=1, + GFP_XCCC%IBITS=8, + GFP_XHCC%IBITS=8, + GFP_XLCC%IBITS=8, + GFP_XLSG%CLNAME='SURFINSGRAUPEL', + GFP_XLSP%CLNAME='SURFINSPLUIE', + GFP_XLSS%CLNAME='SURFINSNEIGE', + GFP_XMCC%IBITS=8, + GFP_XN2T%IBITS=12, + GFP_XTCC%IBITS=8, + GFP_XUGST%CLNAME='CLSU.RAF60M.XFU', + GFP_XUGST%IANO=0, + GFP_XUGST%IBITS=12, + GFP_XVGST%CLNAME='CLSV.RAF60M.XFU', + GFP_XVGST%IANO=0, + GFP_XVGST%IBITS=12, + GFP_XX2T%IBITS=12, + GFP_XXDIAGH%IBITS=12, + TFP_ABS%ZFK=32., + TFP_CLF%IBITS=6, + TFP_EDR%CLNAME='EDR', + TFP_EDR%IBITS=16, + TFP_EDR%IGRIB=136, + TFP_GR%IBITS=12, + TFP_HL%IBITS=12, + TFP_HTB%IBITS=16, + TFP_HTB%LLGP=.TRUE., + TFP_HU%IBITS=12, + TFP_MSAT9C2%IBITS=12, + TFP_MSAT9C6%IBITS=12, + TFP_MSLNH%IBITS=12, + TFP_PV%ZFK=64., + TFP_RCLS%IBITS=12, + TFP_RR%IBITS=12, + TFP_SN%IBITS=12, + TFP_T%IBITS=12, + TFP_TCLS%IBITS=12, + TFP_TH%IBITS=12, + TFP_THPW%IBITS=12, + TFP_THV%IBITS=12, + TFP_TN%IBITS=12, + TFP_TWV%IBITS=12, + TFP_TX%IBITS=12, + TFP_U%IBITS=12, + TFP_V%IBITS=12, + TFP_VOR%ZFK=32., + TFP_VV%ZFK=32., + / + &NAMARG + CNMEXP='${CNMEXP}', + LECMWF=.FALSE., + LELAM=.TRUE., + LSLAG=.TRUE., + NCONF=1, + NSUPERSEDE=1, + / + &NAMARPHY + LKFBCONV=.FALSE., + LKFBD=.FALSE., + LKFBS=.FALSE., + LMFSHAL=.TRUE., + LMICRO=.TRUE., + LMPA=.TRUE., + LMSE=.TRUE., + LTURB=.TRUE., + / + &NAMCA + / + &NAMCAPE + / + &NAMCFU + LCUMFU=.TRUE., + LFPLS=.TRUE., + LFPLSG=.TRUE., + LFR=.TRUE., + LFRRC=.TRUE., + LFSF=.TRUE., + LNEBPAR=.TRUE., + LNEBTT=.TRUE., + LRAYD=.TRUE., + LRAYS=.TRUE., + / + &NAMCHEM + / + &NAMCHET + / + &NAMCHK + / + &NAMCLA + / + &NAMCLDP + / + &NAMCLI + / + &NAMCLOP15 + / + &NAMCLTC + / + &NAMCOK + / + &NAMCOM + / + &NAMCOSJO + / + &NAMCOUPLO4 + / + &NAMCT0 + CFPNCF='ECHFP', + CNPPATH=' ', + LAROME=.TRUE., + LNHEE=.TRUE., + LSCREEN_OPENMP=.FALSE., + LSPRT=.TRUE., + LTWOTL=.TRUE., + NFPOS=1, + NFRSDI=18, + NSDITS(0)=0, + NFRHIS=72, + NHISTS(0)=0, + NFRPOS=72, + NPOSTS(0)=0, + NFRSFXHIS=72, + NSFXHISTS(0)=0, + NFRDHFD=72, + NDHFDTS(0)=0, + / + &NAMCT1 + LRFILAF=.FALSE., + N1HIS=1, + N1POS=1, + N1RES=0, + N1SDI=1, + N1SFXHIS=1, + N1GDI=0, + / + &NAMCUMF + / + &NAMCUMFS + / + &NAMCVER + / + &NAMCVMNH + / + &NAMDDH + LDDH_OMP=.TRUE., + LHDDOP=.TRUE., + LHDHKS=.TRUE., + LHDEFD=.TRUE., + LFLEXDIA=.TRUE., + BDEDDH(1,1)=3, + BDEDDH(2,1)=1, + BDEDDH(3,1)=358.8 + BDEDDH(4,1)=45.1 + BDEDDH(5,1)=360.3 + BDEDDH(6,1)=44.5 + / + &NAMDFI + / + &NAMDIM + NPROMA=-50, + / + &NAMDIMO + / + &NAMDIM_TRAJ + / + &NAMDPHY + / + &NAMDPRECIPS + / + &NAMDYN + LADVF=.TRUE., + LQMPD=.FALSE., + LQMT=.FALSE., + LQMVD=.FALSE., + LRHDI_LASTITERPC=.TRUE., + NITMP=4, + NSITER=1, + NSPDLAG=3, + NSVDLAG=3, + NTLAG=3, + NVLAG=3, + NWLAG=3, + RDAMPDIV=20., + RDAMPPD=20., + RDAMPQ=0., + RDAMPT=0., + RDAMPVD=20., + RDAMPVOR=20., + REPS1=0., + REPS2=0., + REPSM1=0., + REPSM2=0., + REPSP1=0., + SDRED=1., + SIPR=90000., + SITR=350., + SITRA=100., + SLHDA0=0.25, + SLHDD00=0.000065, + VESL=0.05, + XIDT=0., + ZSLHDP1=1.7, + ZSLHDP3=0.6, + / + &NAMDYNA + LCOMADH=.TRUE., + LCOMADV=.FALSE., + LCOMAD_GFL=.TRUE., + LCOMAD_SP=.TRUE., + LCOMAD_SPD=.TRUE., + LCOMAD_SVD=.TRUE., + LCOMAD_T=.TRUE., + LCOMAD_W=.TRUE., + LGWADV=.TRUE., + LNESC=.TRUE., + LPC_CHEAP=.TRUE., + LPC_FULL=.TRUE., + LRDBBC=.FALSE., + LSETTLS=.FALSE., + LSETTLST=.TRUE., + LSLHD_GFL=.TRUE., + LSLHD_OLD=.FALSE., + LSLHD_SPD=.FALSE., + LSLHD_SVD=.FALSE., + LSLHD_T=.FALSE., + LSLHD_W=.FALSE., + ND4SYS=2, + NDLNPR=1, + NPDVAR=2, + NVDVAR=4, + SLHDEPSH=0.08, + SLHDKMAX=6, + / + &NAMDYNCORE + / + &NAMEMIS_CONF + / + &NAMENKF + / + &NAMFA + CMODEL='OUTPUTID', + LEXTERN=.TRUE., + LSUPPDATE=.FALSE., + NBITCS=-1, + NBITPG=-1, + NSTRON=-1, + / + &NAMFAINIT + JPXTRO=2000, + / + &NAMFPC + CFP2DF(1)='SURFPRESSION', + CFP2DF(2)='MSL_NHPRESSURE', + CFP2DF(3)='SURFTOT.WAT.VAPO', + CFP2DF(4)='SURFISOTPW0.MALT', + CFP2DF(5)='SURFCAPE.POS.F00', + CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS', + CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS', + CFP2DF(8)='SURFREFLECT.MAX', + CFP2DF(9)='SURFISOTPW1.MALT', + CFP2DF(10)='SURFISOTPW2.MALT', + CFP3DF(1)='GEOPOTENTIEL', + CFP3DF(2)='TEMPERATURE', + CFP3DF(3)='VENT_ZONAL', + CFP3DF(4)='VENT_MERIDIEN', + CFP3DF(5)='HUMI_RELATIVE', + CFP3DF(6)='THETA_PRIM_W', + CFP3DF(7)='PRESSURE', + CFP3DF(8)='ABS_VORTICITY', + CFP3DF(9)='VITESSE_VERTICALE', + CFP3DF(10)='TEMPE_POTENT', + CFP3DF(11)='POT_VORTICIT', + CFP3DF(12)='SIM_REFLECTI', + CFP3DF(13)='RAIN', + CFP3DF(14)='SNOW', + CFP3DF(15)='GRAUPEL', + CFP3DF(16)='ICE_CRYSTAL', + CFP3DF(17)='CLOUD_WATER', + CFP3DF(18)='VERT.VELOCIT', + CFP3DF(19)='DIVERGENCE', + CFP3DF(20)='THETA_VIRTUA', + CFP3DF(21)='TKE', + CFP3DF(22)='CLOUD_FRACTI', + CFP3DF(23)='ISOT_ALTIT', + CFP3DF(24)='EDR', + CFPCFU(1)='SURFTENS.TOTA.ZO', + CFPCFU(2)='SURFTENS.TOTA.ME', + CFPCFU(3)='SURFACCPLUIE', + CFPCFU(4)='SURFACCNEIGE', + CFPCFU(5)='SURFACCGRAUPEL', + CFPCFU(6)='SOMMFLU.RAY.SOLA', + CFPCFU(7)='SURFFLU.RAY.SOLA', + CFPCFU(8)='SOMMFLU.RAY.THER', + CFPCFU(9)='SURFFLU.RAY.THER', + CFPCFU(10)='SURFFLU.LAT.MTOT', + CFPCFU(11)='SURFFLU.MTOTA.NE', + CFPCFU(12)='SURFFLU.CHA.SENS', + CFPCFU(13)='SURFRAYT SOLA DE', + CFPCFU(14)='SURFRAYT THER DE', + CFPCFU(15)='SURFRAYT SOL CL', + CFPCFU(16)='SURFRAYT THER CL', + CFPCFU(17)='SURFRAYT DIR SUR', + CFPDOM(1)='FRANGP0025', + CFPFMT='LALON', + CFPPHY(1)='SURFTEMPERATURE', + CFPPHY(2)='INTSURFGEOPOTENT', + CFPPHY(3)='SURFRESERV.NEIGE', + CFPXFU(1)='CLSTEMPERATURE', + CFPXFU(2)='CLSHUMI.RELATIVE', + CFPXFU(3)='CLSVENT.ZONAL', + CFPXFU(4)='CLSVENT.MERIDIEN', + CFPXFU(5)='SURFNEBUL.TOTALE', + CFPXFU(6)='SURFNEBUL.HAUTE', + CFPXFU(7)='SURFNEBUL.MOYENN', + CFPXFU(8)='SURFNEBUL.BASSE', + CFPXFU(9)='CLSMAXI.TEMPERAT', + CFPXFU(10)='CLSMINI.TEMPERAT', + CFPXFU(11)='CLPMHAUT.MOD.XFU', + CFPXFU(12)='SURFDIAGHAIL', + LCRITSNOWTEMP=.FALSE., + LFPCAPEX=.TRUE., + LFPMOIS=.TRUE., + LFPPACKING=.FALSE., + LWIDER_DOM=.TRUE., + L_READ_MODEL_DATE=.TRUE., + NFITI=1, + NFITV=1, + NFPCAPE=5, + NFPCLI=1, + NFPGRIB=1, + NFPINPHY=4, + NITERPV=8, + RENTRA=0.0001, + RFP3H(1)=10., + RFP3H(2)=20., + RFP3H(3)=35., + RFP3H(4)=50., + RFP3H(5)=75., + RFP3H(6)=100., + RFP3H(7)=150., + RFP3H(8)=200., + RFP3H(9)=250., + RFP3H(10)=375., + RFP3H(11)=500., + RFP3H(12)=625., + RFP3H(13)=750., + RFP3H(14)=875., + RFP3H(15)=1000., + RFP3H(16)=1125., + RFP3H(17)=1250., + RFP3H(18)=1375., + RFP3H(19)=1500., + RFP3H(20)=1750., + RFP3H(21)=2000., + RFP3H(22)=2250., + RFP3H(23)=2500., + RFP3H(24)=2750., + RFP3H(25)=3000., + RFP3I(1)=-273.15, + RFP3I(2)=-263.15, + RFP3I(3)=-261.15, + RFP3I(4)=-253.15, + RFP3P(1)=10000., + RFP3P(2)=12500., + RFP3P(3)=15000., + RFP3P(4)=17500., + RFP3P(5)=20000., + RFP3P(6)=22500., + RFP3P(7)=25000., + RFP3P(8)=27500., + RFP3P(9)=30000., + RFP3P(10)=35000., + RFP3P(11)=40000., + RFP3P(12)=45000., + RFP3P(13)=50000., + RFP3P(14)=55000., + RFP3P(15)=60000., + RFP3P(16)=65000., + RFP3P(17)=70000., + RFP3P(18)=75000., + RFP3P(19)=80000., + RFP3P(20)=85000., + RFP3P(21)=90000., + RFP3P(22)=92500., + RFP3P(23)=95000., + RFP3P(24)=100000., + RFP3PV(1)=0.0000015, + RFP3PV(2)=0.000002, + RFPCD2=5., + RFPCSAB=50., + RFPVCAP=7000., + / + &NAMFPD + NLAT(1)=41, + NLON(1)=41, + RLONC(1)=-0.71, + RLATC(1)=44.8, + RDELX(1)=0.025, + RDELY(1)=0.025, + / + &NAMFPDY2 + / + &NAMFPDYF + / + &NAMFPDYH + / + &NAMFPDYI + / + &NAMFPDYP + / + &NAMFPDYS + / + &NAMFPDYT + / + &NAMFPDYV + / + &NAMFPF + NFMAX(1)=60, + NFMAX(2)=80, + / + &NAMFPG + NFPDISTRIB=1, + / + &NAMFPIOS + / + &NAMFPMOVE + / + &NAMFPPHY + / + &NAMFPSC2 + NFPROMA=-50, + / + &NAMFPSC2_DEP + NFPROMA_DEP=-50, + / + &NAMGEM + / + &NAMGFL + NGFL_EZDIAG=4, + YEZDIAG_NL(1)%CNAME='EZDIAG01', + YEZDIAG_NL(1)%LREQOUT=.FALSE., + YEZDIAG_NL(2)%CNAME='EZDIAG02', + YEZDIAG_NL(2)%LREQOUT=.FALSE., + YEZDIAG_NL(3)%CNAME='EZDIAG03', + YEZDIAG_NL(3)%LREQOUT=.FALSE., + YEZDIAG_NL(4)%CNAME='INPRRTOT3D', + YEZDIAG_NL(4)%LREQOUT=.TRUE., + YG_NL%LQM=.TRUE., + YG_NL%LSLHD=.TRUE., + YG_NL%NCOUPLING=-1, + YG_NL%NREQIN=1, + YG_NL%REFVALC=0., + YIRAD_NL%LGP=.TRUE., + YI_NL%LQM=.TRUE., + YI_NL%LSLHD=.TRUE., + YI_NL%NCOUPLING=-1, + YI_NL%NREQIN=1, + YI_NL%REFVALC=0., + YLRAD_NL%LGP=.TRUE., + YL_NL%LQM=.TRUE., + YL_NL%LSLHD=.TRUE., + YL_NL%NCOUPLING=-1, + YL_NL%NREQIN=1, + YL_NL%REFVALC=0., + YQ_NL%LCOMAD=.TRUE., + YQ_NL%LQM=.TRUE., + YQ_NL%LSLHD=.FALSE., + YQ_NL%NREQIN=1, + YR_NL%LQM=.TRUE., + YR_NL%LSLHD=.TRUE., + YR_NL%NCOUPLING=-1, + YR_NL%NREQIN=1, + YR_NL%REFVALC=0., + YS_NL%LQM=.TRUE., + YS_NL%LSLHD=.TRUE., + YS_NL%NCOUPLING=-1, + YS_NL%NREQIN=1, + YS_NL%REFVALC=0., + YTKE_NL%NCOUPLING=0, + YTKE_NL%NREQIN=1, + / + &NAMGRIB + / + &NAMGWD + / + &NAMGWDIAG + / + &NAMGWWMS + / + &NAMIAU + ALPHAIAU=0.5, + LIAU=.FALSE., + TSTARTIAU=1800, + TSTOPIAU=5340, + / + &NAMICE + / + &NAMINI + LDFI=.FALSE., + / + &NAMINTFLEX + / + &NAMIOMI + / + &NAMIOS + / + &NAMIO_SERV + NIO_SERV_BUF_MAXSIZE=20, + NIO_SERV_METHOD=2, + NMSG_LEVEL_CLIENT=0, + NMSG_LEVEL_SERVER=0, + NPROCESS_LEVEL=5, + NPROC_IO=0, + / + &NAMJBCODES + / + &NAMJFH + / + &NAMJG + / + &NAMLCZ + / + &NAMLSFORC + / + &NAMMARS + / + &NAMMCC + / + &NAMMCUF + / + &NAMMKODB + / + &NAMMODERR + / + &NAMMTS + / + &NAMMWAVE + / + &NAMNPROF + / + &NAMNUD + / + &NAMOBS + / + &NAMONEDVAR + / + &NAMOOPS + / + &NAMOPH + CFNHWF='ECHIS', + LINC=.TRUE., + NTIMEFMT=1, + / + &NAMOPTCMEM + / + &NAMPAR0 + LOPT_SCALAR=.TRUE., + NPRINTLEV=1, + LMPOFF=.FALSE., + MBX_SIZE=2048000000, + MP_TYPE=2, + NOUTPUT=1, + NPROC=$NPROC, +$NPRTRW_NPRTRV + / + &NAMPAR1 + LEQ_REGIONS=.FALSE., + LSLONDEM=.TRUE., + LSPLIT=.TRUE., + LSYNC_SLCOM=.FALSE., + LSYNC_TRANS=.FALSE., + L_GATHERV_WRGP=.FALSE., + NCOMBFLEN=1800000, + NSTRIN=$NSTRIN, + NSTROUT=$NSTROUT, + / + &NAMPARAR + CFRAC_ICE_ADJUST='T', + CFRAC_ICE_SHALLOW_MF='T', + CMICRO='ICE3', + CSEDIM='SPLI', + CSNOWRIMING='M90', + LCONVHG=.TRUE., + LCRFLIMIT=.TRUE., + LCRIAUTI=.TRUE., + LEVLIMIT=.TRUE., + LFEEDBACKT=.TRUE., + LFPREC3D=.TRUE., + LNULLWETG=.TRUE., + LNULLWETH=.TRUE., + LOLSMC=.TRUE., + LOSEDIC=.TRUE., + LOSIGMAS=.TRUE., + LOSUBG_COND=.TRUE., + LSEDIM_AFTER=.TRUE., + LWETGPOST=.TRUE., + LWETHPOST=.TRUE., + NMAXITER_MICRO=10, + NPRINTFR=10000, + NPTP=1, + RCRIAUTC=0.001, + RCRIAUTI=0.0002, + RT0CRIAUTI=-5., + VSIGQSAT=0.02, + XFRACM90=0.1, + XMRSTEP=0.00005, + XSPLIT_MAXCFL=0.8, + XTSTEP_TS=25., + / + &NAMPHMSE + LPGDFWR=.FALSE., + / + &NAMPHY + LAERODES=.TRUE., + LAEROLAN=.TRUE., + LAEROSEA=.TRUE., + LAEROSOO=.TRUE., + LEDR=.TRUE., + LMPHYS=.TRUE., + LO3ABC=.TRUE., + LRAYFM=.TRUE., + / + &NAMPHY0 + ALMAV=300., + BEDIFV=0.05, + ECMNP=3000., + GCCSV=0., + GCVADS=0.8, + GCVALFA=0.000045, + GCVBETA=0.2, + GCVMLT=0.00016, + GCVNU=0.000025, + GCVPSI=1., + GCVPSIE=1., + GDDEVA=0.25, + GDDSDE=0.5, + GWDCD=6., + HUCOE=0.5, + HUTIL=1.8, + QSSC=400., + QSSUSC=0.75, + QSSUSS=0.4, + QSSUSV=250., + QSUSXC=0.0002, + QSUSXS=0.0003, + QXRAL=130., + QXRDEL=0.49, + QXRHX=0.99, + QXRR=0.25, + RCVEVAP=0.25, + REFLKUO=5000., + REVGSL=15., + SCO=-20., + TDDGP=0.8, + TENTR=0.0000025, + TENTRX=0.00008, + TUDGP=0.8, + UHDIFV=0.0008, + USURIC=0.175, + USURICE=0.5, + USURICL=1., + USURID=0.1, + USURIDE=0.25, + VZ0CM=0.00015, + XMAXLM=5000., + XMINLM=10., + / + &NAMPHY1 + ALBMIN=0.65, + ALCRIN=0.75, + GCGEL=0.00003, + GCGELS=0.00005, + GNEIMX=1.8, + GNEIMXS=1.8, + RCTVEG(3)=0.000012, + RCTVEG(4)=0.00001, + / + &NAMPHY2 + FACRAF=3.8, + HTKERAF=20., + LMULAF=.TRUE., + LRAFTKE=.TRUE., + LRAFTUR=.TRUE., + XDAMP=1., + XMULAF=-1.85, + / + &NAMPHY3 + / + &NAMPHYDS + / + &NAMPONG + / + &NAMPPC + / + &NAMPPVI + / + &NAMPRE + / + &NAMRAD15 + / + &NAMRADCMEM + / + &NAMRCF + / + &NAMRCOEF + / + &NAMRES + / + &NAMRGRI + / + &NAMRINC + / + &NAMRIP + TSTEP=50., + CSTOP='h2', + / + &NAMRIP0 + / + &NAMRLX + / + &NAMSATS + LPARTIAL_COEF_FILES=.TRUE., + / + &NAMSCC + / + &NAMSCEN + / + &NAMSCM + / + &NAMSEKF + / + &NAMSENS + / + &NAMSFXCMP + CFLDNAME(1)='????????????????', + NBBITS(1)=24, + / + &NAMSIMPHL + / + &NAMSPNG + / + &NAMSPSDT + / + &NAMSTA + / + &NAMSTOPH + / + &NAMSWE + / + &NAMTESTVAR + / + &NAMTHLIM + / + &NAMTOPH + ETCVIM=5000., + ETNEBU=5000., + ETPLUI=5000., + XDRMTK=6.0D-7, + XDRMTP=800., + XDRMUK=3.0D-7, + XDRMUP=800., + / + &NAMTRAJP + / + &NAMTRANS + / + &NAMTRANS0 + / + &NAMTS + / + &NAMVAR + / + &NAMVARBC + / + &NAMVARBC_AIREP + / + &NAMVARBC_ALLSKY + / + &NAMVARBC_GBRAD + / + &NAMVARBC_RAD + / + &NAMVARBC_SFCOBS + / + &NAMVARBC_TCWV + / + &NAMVARBC_TO3 + / + &NAMVAREPS + / + &NAMVDF + / + &NAMVDOZ + / + &NAMVOLCANO + / + &NAMVRTL + / + &NAMVV0 + / + &NAMVV1 + / + &NAMVWRK + / + &NAMWAVELETJB + / + &NAMXFU + LXCLP=.TRUE., + LXCLS=.TRUE., + LXFU=.TRUE., + LXNEBPA=.TRUE., + LXNEBTT=.TRUE., + LXNUVCLS=.TRUE., + LXPLS=.TRUE., + LXPLSG=.TRUE., + LXQCLS=.TRUE., + LXR=.TRUE., + LXSOIL=.FALSE., + LXTHW=.TRUE., + LXTRT=.TRUE., + LXTTCLS=.TRUE., + LXXDIAGH=.TRUE., + LXXGST=.TRUE., + NFRRAZ=72, + NRAZTS(0)=0, + / + &NAM_CANAPE + / + &NAM_DISTRIBUTED_VECTORS + / + &NAPHLC + / + &NEMCT0 + / + &NEMDIM + / + &NEMDYN + / + &NEMELBC0A + LESPCPL=.TRUE., + NBICNHX=2, + NBICOP=2, + NBICOT=2, + NBICOU=2, + NBICPD=2, + NBICVD=2, + NECRIPL=1, + / + &NEMELBC0B + NEFRSPCPL=1, + NEK0=20, + NEK1=30, + NEN1=4, + NEN2=8, + SPNUDDIV=0.01, + SPNUDQ=0., + SPNUDT=0.01, + SPNUDVOR=0.01, + TEFRCL=3600., + / + &NEMFPEZO + / + &NEMGEO + / + &NEMJK + / + &NEMVAR + / + &NEMWAVELET + / + &NAETLDIAG + / + &NAMMETHOX + / + &NAMSPP + / + &NAMACV + / + &NAMFPOBJ + / + &NAMNORGWD + / + &NAMTRAJ + / + &NAMSATSIM + / + &NAMDVISI + / + &NAMNUDGLH + / + &NAMPERTPAR + / +FIN +/bin/cat fort.4 + +/bin/cat <<FIN > EXSEG1.nam + &NAM_DIAG_ISBAN + LPGD=.TRUE., + LSURF_MISC_BUDGET=.TRUE., + / + &NAM_DIAG_SURFN + LCOEF=.TRUE., + LSURF_BUDGET=.TRUE., + N2M=2, + / + &NAM_ISBAN + CSCOND='NP89', + / + &NAM_REPROD_OPER + LREPROD_OPER=.TRUE., + / + &NAM_SEAFLUXN + CSEA_FLUX='ECUME', + LPWG=.FALSE., + LPRECIP=.FALSE., + LPWEBB=.FALSE., + / + &NAM_SSON + CROUGH='Z01D', + XFRACZ0=5., + LDSV=.FALSE., + / + &NAM_SURF_ATM + XRIMAX=0.2, + LNOSOF=.TRUE., + / + &NAM_SURF_CSTS + XZ0SN=0.01, + XZ0HSN=0.001, + XEMISSN=0.99, + / + &NAM_WRITE_DIAG_SURFN + LPROVAR_TO_DIAG=.FALSE., + LSELECT=.TRUE., +CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS', + / + &NAM_WRITE_SURF_ATM + LNOWRITE_TEXFILE=.TRUE., + / +FIN +/bin/cat EXSEG1.nam + +# ***************************************** +# * Acquisition du fichier de demarrage * +# ***************************************** + +echo +for hh in 0 1 2 3 4 5 6 ; do + N=`expr $hh / 1 ` + set -x + ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N} + set +x +done +set -x +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx +ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin . +ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim +ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx +ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025 +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat . +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat . +ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat . +set +x +tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz + +# *************** +# * Chargement * +# *************** + +echo +set -x +\ln -s $LOADIR/MASTERODB MASTER +set +x +if ldd MASTER | grep openmpi > /dev/null; then + #On est sur PC + MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}') + MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC" + GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1 + export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions + export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions +else + #On est sur HPC + #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD" + NNODES=$SLURM_JOB_NUM_NODES + MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES)) + MPI_TASKS=$SLURM_NTASKS + MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --" + export OMP_STACKSIZE=4G + export KMP_STACKSIZE=4G + export KMP_MONITOR_STACKSIZE=4G + export DR_HOOK=1 + export DR_HOOK_IGNORE_SIGNALS=-1 + export DR_HOOK_SILENT=1 + export DR_HOOK_SHOW_PROCESS_OPTIONS=0 + export MPL_MBX_SIZE=2048000000 + export EC_PROFILE_HEAP=0 + export EC_PROFILE_MEM=0 + export EC_MPI_ATEXIT=0 + export EC_MEMINFO=0 + export OPENBLAS_NUM_THREADS=1 + export MKL_CBWR="AUTO,STRICT" + export MKL_NUM_THREADS=1 + export MKL_DEBUG_CPU_TYPE=5 + export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions +fi +echo $MPIRUN +set +x +if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi + +# *************** +# * Execution * +# *************** + +echo +echo OMP_NUM_THREADS=$OMP_NUM_THREADS +set -x +ulimit -s unlimited +$MPIRUN $PWD/MASTER >lola +set +x +echo +##if [ -f lola ] ; then +## echo;echo Standard output :;echo;cat lola +##fi +##if [ -f stderr.* ] ; then +## for file in stderr.* ; do +## echo;echo $file :;cat $file +## done +##fi +##if [ -f stdout.* ] ; then +##echo;echo stdout :;echo;cat stdout.* +##fi +##if [ -a NODE.001_01 ] ; then +## for file in NODE* ; do +## echo;echo Listing $file;echo +## cat $file +## done +##fi +##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then +### Top 25 for each MPI task : +## for file in drhook.prof.* ; do +## echo;echo $file :;head -38 $file +## done +##fi +#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl + +# ******************* +# * Sauvegardes * +# ******************* + +ls +#if [ -f PFFPOS000+0000 ] ; then +# cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID +#fi +cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/ +/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001* +/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00* +/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz) + +# **************** +# * Epilogue * +# **************** + +ls -ltr | grep -v "\->" +echo Wait_queue : +ls -ltr $TMPWAIT +cd $TMPDIR +\rm -rf rundir.$$ +\rm -rf wait_queue.$$ +date +set +x diff --git a/tools/conf_tests/small_3D_alt2/aro48t3.sh b/tools/conf_tests/small_3D_alt2/aro48t3.sh new file mode 100755 index 0000000000000000000000000000000000000000..8928589a282adb723fd05cc8487109e78acbd982 --- /dev/null +++ b/tools/conf_tests/small_3D_alt2/aro48t3.sh @@ -0,0 +1,1207 @@ +#!/bin/bash +#SBATCH -n 4 +#SBATCH --mem=20000 +#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR +#SBATCH -t 00:10:00 +#SBATCH -N 1 +#SBATCH -p normal256 + +#The MYLIB varibale must contain the gmkpack pack name +#The TESTDIR variable must contain the test directory +#Results will be stored in the local directory + +#Other environment varaibles that can be set: +#OUTPUTDIR + +date + +OUTPUTDIR=${OUTPUTDIR:-$PWD} +case=riette2 +#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script +rekchemin=$TESTDIR + +NPROC=4 +NSTRIN=$NPROC +NSTROUT=1 +NPRTRW_NPRTRV="" +NPRTRW_NPRTRV=" NPRTRW=$NPROC, + NPRTRV=1," +export OMP_NUM_THREADS=1 + +#MYLIB=48t1_main.01%jpdup + +export DR_HOOK=1 +#export DR_HOOK_IGNORE_SIGNALS=-1 +export DR_HOOK_NOT_MPI=1 +export DR_HOOK_SILENT=1 +export DR_HOOK_OPT= + +export EC_PROFILE_HEAP=0 +export EC_PROFILE_MEM=0 +export EC_MPI_ATEXIT=0 +export DR_HOOK_SHOW_PROCESS_OPTIONS=0 +export EC_MEMINFO=0 +export TVSEARCHPATH=$SOURCE + +HOMEPACK=${HOMEPACK:=$HOME/pack} +SOURCE=$HOMEPACK/$MYLIB/src/local +LOADIR=$HOMEPACK/$MYLIB/bin + +TMPDIR=${TMPDIR:=$HOME/tmp} +TMPLOC=$TMPDIR/rundir.$$ +TMPWAIT=$TMPDIR/wait_queue.$$ +mkdir $TMPWAIT +mkdir $TMPLOC +cd $TMPLOC + +export RTTOV_COEFDIR=$PWD + +# ************************** +# * Saisie des NAMELISTS * +# ************************** + +CNMEXP='FPOS' + +echo +/bin/cat <<FIN > fort.4 + &NACIETEO + / + &NACOBS + / + &NACTAN + / + &NACTEX + / + &NACVEG + / + &NADOCK + / + &NAEAEM7 + / + &NAEAER + / + &NAECOAPHY + / + &NAEPHLI + / + &NAEPHY + / + &NAERAD + LRRTM=.TRUE., + LSRTM=.FALSE., + NAER=1, + NICEOPT=3, + NLIQOPT=3, + NOVLP=6, + NOZOCL=2, + NRADFR=18, + NRADIP=3, + NRADLP=2, + NSW=6, + RLWINHF=1, + RRE2DE=0.64952, + RSWINHF=1, + / + &NAERCLI + / + &NAEVOL + / + &NAIMPO + / + &NALORI + / + &NAMAFN + GFP_CLSG%CLNAME='SURFACCGRAUPEL', + GFP_CLSP%CLNAME='SURFACCPLUIE', + GFP_CLSS%CLNAME='SURFACCNEIGE', + GFP_SFIS%IBITS=16, + GFP_ST%CLNAME='SURFTEMPERATURE', + GFP_ST%IANO=0, + GFP_ST%IBITS=12, + GFP_X10U%CLNAME='CLSVENT.ZONAL', + GFP_X10U%IANO=0, + GFP_X10U%IBITS=12, + GFP_X10V%CLNAME='CLSVENT.MERIDIEN', + GFP_X10V%IANO=0, + GFP_X10V%IBITS=12, + GFP_X2RH%CLNAME='CLSHUMI.RELATIVE', + GFP_X2RH%IANO=0, + GFP_X2RH%IBITS=12, + GFP_X2T%CLNAME='CLSTEMPERATURE', + GFP_X2T%IANO=1, + GFP_XCCC%IBITS=8, + GFP_XHCC%IBITS=8, + GFP_XLCC%IBITS=8, + GFP_XLSG%CLNAME='SURFINSGRAUPEL', + GFP_XLSP%CLNAME='SURFINSPLUIE', + GFP_XLSS%CLNAME='SURFINSNEIGE', + GFP_XMCC%IBITS=8, + GFP_XN2T%IBITS=12, + GFP_XTCC%IBITS=8, + GFP_XUGST%CLNAME='CLSU.RAF60M.XFU', + GFP_XUGST%IANO=0, + GFP_XUGST%IBITS=12, + GFP_XVGST%CLNAME='CLSV.RAF60M.XFU', + GFP_XVGST%IANO=0, + GFP_XVGST%IBITS=12, + GFP_XX2T%IBITS=12, + GFP_XXDIAGH%IBITS=12, + TFP_ABS%ZFK=32., + TFP_CLF%IBITS=6, + TFP_EDR%CLNAME='EDR', + TFP_EDR%IBITS=16, + TFP_EDR%IGRIB=136, + TFP_GR%IBITS=12, + TFP_HL%IBITS=12, + TFP_HTB%IBITS=16, + TFP_HTB%LLGP=.TRUE., + TFP_HU%IBITS=12, + TFP_MSAT9C2%IBITS=12, + TFP_MSAT9C6%IBITS=12, + TFP_MSLNH%IBITS=12, + TFP_PV%ZFK=64., + TFP_RCLS%IBITS=12, + TFP_RR%IBITS=12, + TFP_SN%IBITS=12, + TFP_T%IBITS=12, + TFP_TCLS%IBITS=12, + TFP_TH%IBITS=12, + TFP_THPW%IBITS=12, + TFP_THV%IBITS=12, + TFP_TN%IBITS=12, + TFP_TWV%IBITS=12, + TFP_TX%IBITS=12, + TFP_U%IBITS=12, + TFP_V%IBITS=12, + TFP_VOR%ZFK=32., + TFP_VV%ZFK=32., + / + &NAMARG + CNMEXP='${CNMEXP}', + LECMWF=.FALSE., + LELAM=.TRUE., + LSLAG=.TRUE., + NCONF=1, + NSUPERSEDE=1, + / + &NAMARPHY + LKFBCONV=.FALSE., + LKFBD=.FALSE., + LKFBS=.FALSE., + LMFSHAL=.TRUE., + LMICRO=.TRUE., + LMPA=.TRUE., + LMSE=.TRUE., + LTURB=.TRUE., + / + &NAMCA + / + &NAMCAPE + / + &NAMCFU + LCUMFU=.TRUE., + LFPLS=.TRUE., + LFPLSG=.TRUE., + LFR=.TRUE., + LFRRC=.TRUE., + LFSF=.TRUE., + LNEBPAR=.TRUE., + LNEBTT=.TRUE., + LRAYD=.TRUE., + LRAYS=.TRUE., + / + &NAMCHEM + / + &NAMCHET + / + &NAMCHK + / + &NAMCLA + / + &NAMCLDP + / + &NAMCLI + / + &NAMCLOP15 + / + &NAMCLTC + / + &NAMCOK + / + &NAMCOM + / + &NAMCOSJO + / + &NAMCOUPLO4 + / + &NAMCT0 + CFPNCF='ECHFP', + CNPPATH=' ', + LAROME=.TRUE., + LNHEE=.TRUE., + LSCREEN_OPENMP=.FALSE., + LSPRT=.TRUE., + LTWOTL=.TRUE., + NFPOS=1, + NFRSDI=18, + NSDITS(0)=0, + NFRHIS=72, + NHISTS(0)=0, + NFRPOS=72, + NPOSTS(0)=0, + NFRSFXHIS=72, + NSFXHISTS(0)=0, + NFRDHFD=72, + NDHFDTS(0)=0, + / + &NAMCT1 + LRFILAF=.FALSE., + N1HIS=1, + N1POS=1, + N1RES=0, + N1SDI=1, + N1SFXHIS=1, + N1GDI=0, + / + &NAMCUMF + / + &NAMCUMFS + / + &NAMCVER + / + &NAMCVMNH + / + &NAMDDH + LDDH_OMP=.TRUE., + LHDDOP=.TRUE., + LHDHKS=.TRUE., + LHDEFD=.TRUE., + LFLEXDIA=.TRUE., + BDEDDH(1,1)=3, + BDEDDH(2,1)=1, + BDEDDH(3,1)=358.8 + BDEDDH(4,1)=45.1 + BDEDDH(5,1)=360.3 + BDEDDH(6,1)=44.5 + / + &NAMDFI + / + &NAMDIM + NPROMA=-50, + / + &NAMDIMO + / + &NAMDIM_TRAJ + / + &NAMDPHY + / + &NAMDPRECIPS + / + &NAMDYN + LADVF=.TRUE., + LQMPD=.FALSE., + LQMT=.FALSE., + LQMVD=.FALSE., + LRHDI_LASTITERPC=.TRUE., + NITMP=4, + NSITER=1, + NSPDLAG=3, + NSVDLAG=3, + NTLAG=3, + NVLAG=3, + NWLAG=3, + RDAMPDIV=20., + RDAMPPD=20., + RDAMPQ=0., + RDAMPT=0., + RDAMPVD=20., + RDAMPVOR=20., + REPS1=0., + REPS2=0., + REPSM1=0., + REPSM2=0., + REPSP1=0., + SDRED=1., + SIPR=90000., + SITR=350., + SITRA=100., + SLHDA0=0.25, + SLHDD00=0.000065, + VESL=0.05, + XIDT=0., + ZSLHDP1=1.7, + ZSLHDP3=0.6, + / + &NAMDYNA + LCOMADH=.TRUE., + LCOMADV=.FALSE., + LCOMAD_GFL=.TRUE., + LCOMAD_SP=.TRUE., + LCOMAD_SPD=.TRUE., + LCOMAD_SVD=.TRUE., + LCOMAD_T=.TRUE., + LCOMAD_W=.TRUE., + LGWADV=.TRUE., + LNESC=.TRUE., + LPC_CHEAP=.TRUE., + LPC_FULL=.TRUE., + LRDBBC=.FALSE., + LSETTLS=.FALSE., + LSETTLST=.TRUE., + LSLHD_GFL=.TRUE., + LSLHD_OLD=.FALSE., + LSLHD_SPD=.FALSE., + LSLHD_SVD=.FALSE., + LSLHD_T=.FALSE., + LSLHD_W=.FALSE., + ND4SYS=2, + NDLNPR=1, + NPDVAR=2, + NVDVAR=4, + SLHDEPSH=0.08, + SLHDKMAX=6, + / + &NAMDYNCORE + / + &NAMEMIS_CONF + / + &NAMENKF + / + &NAMFA + CMODEL='OUTPUTID', + LEXTERN=.TRUE., + LSUPPDATE=.FALSE., + NBITCS=-1, + NBITPG=-1, + NSTRON=-1, + / + &NAMFAINIT + JPXTRO=2000, + / + &NAMFPC + CFP2DF(1)='SURFPRESSION', + CFP2DF(2)='MSL_NHPRESSURE', + CFP2DF(3)='SURFTOT.WAT.VAPO', + CFP2DF(4)='SURFISOTPW0.MALT', + CFP2DF(5)='SURFCAPE.POS.F00', + CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS', + CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS', + CFP2DF(8)='SURFREFLECT.MAX', + CFP2DF(9)='SURFISOTPW1.MALT', + CFP2DF(10)='SURFISOTPW2.MALT', + CFP3DF(1)='GEOPOTENTIEL', + CFP3DF(2)='TEMPERATURE', + CFP3DF(3)='VENT_ZONAL', + CFP3DF(4)='VENT_MERIDIEN', + CFP3DF(5)='HUMI_RELATIVE', + CFP3DF(6)='THETA_PRIM_W', + CFP3DF(7)='PRESSURE', + CFP3DF(8)='ABS_VORTICITY', + CFP3DF(9)='VITESSE_VERTICALE', + CFP3DF(10)='TEMPE_POTENT', + CFP3DF(11)='POT_VORTICIT', + CFP3DF(12)='SIM_REFLECTI', + CFP3DF(13)='RAIN', + CFP3DF(14)='SNOW', + CFP3DF(15)='GRAUPEL', + CFP3DF(16)='ICE_CRYSTAL', + CFP3DF(17)='CLOUD_WATER', + CFP3DF(18)='VERT.VELOCIT', + CFP3DF(19)='DIVERGENCE', + CFP3DF(20)='THETA_VIRTUA', + CFP3DF(21)='TKE', + CFP3DF(22)='CLOUD_FRACTI', + CFP3DF(23)='ISOT_ALTIT', + CFP3DF(24)='EDR', + CFPCFU(1)='SURFTENS.TOTA.ZO', + CFPCFU(2)='SURFTENS.TOTA.ME', + CFPCFU(3)='SURFACCPLUIE', + CFPCFU(4)='SURFACCNEIGE', + CFPCFU(5)='SURFACCGRAUPEL', + CFPCFU(6)='SOMMFLU.RAY.SOLA', + CFPCFU(7)='SURFFLU.RAY.SOLA', + CFPCFU(8)='SOMMFLU.RAY.THER', + CFPCFU(9)='SURFFLU.RAY.THER', + CFPCFU(10)='SURFFLU.LAT.MTOT', + CFPCFU(11)='SURFFLU.MTOTA.NE', + CFPCFU(12)='SURFFLU.CHA.SENS', + CFPCFU(13)='SURFRAYT SOLA DE', + CFPCFU(14)='SURFRAYT THER DE', + CFPCFU(15)='SURFRAYT SOL CL', + CFPCFU(16)='SURFRAYT THER CL', + CFPCFU(17)='SURFRAYT DIR SUR', + CFPDOM(1)='FRANGP0025', + CFPFMT='LALON', + CFPPHY(1)='SURFTEMPERATURE', + CFPPHY(2)='INTSURFGEOPOTENT', + CFPPHY(3)='SURFRESERV.NEIGE', + CFPXFU(1)='CLSTEMPERATURE', + CFPXFU(2)='CLSHUMI.RELATIVE', + CFPXFU(3)='CLSVENT.ZONAL', + CFPXFU(4)='CLSVENT.MERIDIEN', + CFPXFU(5)='SURFNEBUL.TOTALE', + CFPXFU(6)='SURFNEBUL.HAUTE', + CFPXFU(7)='SURFNEBUL.MOYENN', + CFPXFU(8)='SURFNEBUL.BASSE', + CFPXFU(9)='CLSMAXI.TEMPERAT', + CFPXFU(10)='CLSMINI.TEMPERAT', + CFPXFU(11)='CLPMHAUT.MOD.XFU', + CFPXFU(12)='SURFDIAGHAIL', + LCRITSNOWTEMP=.FALSE., + LFPCAPEX=.TRUE., + LFPMOIS=.TRUE., + LFPPACKING=.FALSE., + LWIDER_DOM=.TRUE., + L_READ_MODEL_DATE=.TRUE., + NFITI=1, + NFITV=1, + NFPCAPE=5, + NFPCLI=1, + NFPGRIB=1, + NFPINPHY=4, + NITERPV=8, + RENTRA=0.0001, + RFP3H(1)=10., + RFP3H(2)=20., + RFP3H(3)=35., + RFP3H(4)=50., + RFP3H(5)=75., + RFP3H(6)=100., + RFP3H(7)=150., + RFP3H(8)=200., + RFP3H(9)=250., + RFP3H(10)=375., + RFP3H(11)=500., + RFP3H(12)=625., + RFP3H(13)=750., + RFP3H(14)=875., + RFP3H(15)=1000., + RFP3H(16)=1125., + RFP3H(17)=1250., + RFP3H(18)=1375., + RFP3H(19)=1500., + RFP3H(20)=1750., + RFP3H(21)=2000., + RFP3H(22)=2250., + RFP3H(23)=2500., + RFP3H(24)=2750., + RFP3H(25)=3000., + RFP3I(1)=-273.15, + RFP3I(2)=-263.15, + RFP3I(3)=-261.15, + RFP3I(4)=-253.15, + RFP3P(1)=10000., + RFP3P(2)=12500., + RFP3P(3)=15000., + RFP3P(4)=17500., + RFP3P(5)=20000., + RFP3P(6)=22500., + RFP3P(7)=25000., + RFP3P(8)=27500., + RFP3P(9)=30000., + RFP3P(10)=35000., + RFP3P(11)=40000., + RFP3P(12)=45000., + RFP3P(13)=50000., + RFP3P(14)=55000., + RFP3P(15)=60000., + RFP3P(16)=65000., + RFP3P(17)=70000., + RFP3P(18)=75000., + RFP3P(19)=80000., + RFP3P(20)=85000., + RFP3P(21)=90000., + RFP3P(22)=92500., + RFP3P(23)=95000., + RFP3P(24)=100000., + RFP3PV(1)=0.0000015, + RFP3PV(2)=0.000002, + RFPCD2=5., + RFPCSAB=50., + RFPVCAP=7000., + / + &NAMFPD + NLAT(1)=41, + NLON(1)=41, + RLONC(1)=-0.71, + RLATC(1)=44.8, + RDELX(1)=0.025, + RDELY(1)=0.025, + / + &NAMFPDY2 + / + &NAMFPDYF + / + &NAMFPDYH + / + &NAMFPDYI + / + &NAMFPDYP + / + &NAMFPDYS + / + &NAMFPDYT + / + &NAMFPDYV + / + &NAMFPF + NFMAX(1)=60, + NFMAX(2)=80, + / + &NAMFPG + NFPDISTRIB=1, + / + &NAMFPIOS + / + &NAMFPMOVE + / + &NAMFPPHY + / + &NAMFPSC2 + NFPROMA=-50, + / + &NAMFPSC2_DEP + NFPROMA_DEP=-50, + / + &NAMGEM + / + &NAMGFL + NGFL_EZDIAG=4, + YEZDIAG_NL(1)%CNAME='EZDIAG01', + YEZDIAG_NL(1)%LREQOUT=.FALSE., + YEZDIAG_NL(2)%CNAME='EZDIAG02', + YEZDIAG_NL(2)%LREQOUT=.FALSE., + YEZDIAG_NL(3)%CNAME='EZDIAG03', + YEZDIAG_NL(3)%LREQOUT=.FALSE., + YEZDIAG_NL(4)%CNAME='INPRRTOT3D', + YEZDIAG_NL(4)%LREQOUT=.TRUE., + YG_NL%LQM=.TRUE., + YG_NL%LSLHD=.TRUE., + YG_NL%NCOUPLING=-1, + YG_NL%NREQIN=1, + YG_NL%REFVALC=0., + YIRAD_NL%LGP=.TRUE., + YI_NL%LQM=.TRUE., + YI_NL%LSLHD=.TRUE., + YI_NL%NCOUPLING=-1, + YI_NL%NREQIN=1, + YI_NL%REFVALC=0., + YLRAD_NL%LGP=.TRUE., + YL_NL%LQM=.TRUE., + YL_NL%LSLHD=.TRUE., + YL_NL%NCOUPLING=-1, + YL_NL%NREQIN=1, + YL_NL%REFVALC=0., + YQ_NL%LCOMAD=.TRUE., + YQ_NL%LQM=.TRUE., + YQ_NL%LSLHD=.FALSE., + YQ_NL%NREQIN=1, + YR_NL%LQM=.TRUE., + YR_NL%LSLHD=.TRUE., + YR_NL%NCOUPLING=-1, + YR_NL%NREQIN=1, + YR_NL%REFVALC=0., + YS_NL%LQM=.TRUE., + YS_NL%LSLHD=.TRUE., + YS_NL%NCOUPLING=-1, + YS_NL%NREQIN=1, + YS_NL%REFVALC=0., + YTKE_NL%NCOUPLING=0, + YTKE_NL%NREQIN=1, + / + &NAMGRIB + / + &NAMGWD + / + &NAMGWDIAG + / + &NAMGWWMS + / + &NAMIAU + ALPHAIAU=0.5, + LIAU=.FALSE., + TSTARTIAU=1800, + TSTOPIAU=5340, + / + &NAMICE + / + &NAMINI + LDFI=.FALSE., + / + &NAMINTFLEX + / + &NAMIOMI + / + &NAMIOS + / + &NAMIO_SERV + NIO_SERV_BUF_MAXSIZE=20, + NIO_SERV_METHOD=2, + NMSG_LEVEL_CLIENT=0, + NMSG_LEVEL_SERVER=0, + NPROCESS_LEVEL=5, + NPROC_IO=0, + / + &NAMJBCODES + / + &NAMJFH + / + &NAMJG + / + &NAMLCZ + / + &NAMLSFORC + / + &NAMMARS + / + &NAMMCC + / + &NAMMCUF + / + &NAMMKODB + / + &NAMMODERR + / + &NAMMTS + / + &NAMMWAVE + / + &NAMNPROF + / + &NAMNUD + / + &NAMOBS + / + &NAMONEDVAR + / + &NAMOOPS + / + &NAMOPH + CFNHWF='ECHIS', + LINC=.TRUE., + NTIMEFMT=1, + / + &NAMOPTCMEM + / + &NAMPAR0 + LOPT_SCALAR=.TRUE., + NPRINTLEV=1, + LMPOFF=.FALSE., + MBX_SIZE=2048000000, + MP_TYPE=2, + NOUTPUT=1, + NPROC=$NPROC, +$NPRTRW_NPRTRV + / + &NAMPAR1 + LEQ_REGIONS=.FALSE., + LSLONDEM=.TRUE., + LSPLIT=.TRUE., + LSYNC_SLCOM=.FALSE., + LSYNC_TRANS=.FALSE., + L_GATHERV_WRGP=.FALSE., + NCOMBFLEN=1800000, + NSTRIN=$NSTRIN, + NSTROUT=$NSTROUT, + / + &NAMPARAR + CFRAC_ICE_ADJUST='S', + CFRAC_ICE_SHALLOW_MF='S', + CMICRO='OLD3', + CSEDIM='STAT', + CSNOWRIMING='M90', + LCONVHG=.TRUE., + LCRFLIMIT=.TRUE., + LCRIAUTI=.TRUE., + LEVLIMIT=.TRUE., + LFEEDBACKT=.TRUE., + LFPREC3D=.TRUE., + LNULLWETG=.TRUE., + LNULLWETH=.TRUE., + LOLSMC=.TRUE., + LOSEDIC=.TRUE., + LOSIGMAS=.TRUE., + LOSUBG_COND=.TRUE., + LSEDIM_AFTER=.FALSE., + LWETGPOST=.TRUE., + LWETHPOST=.TRUE., + NMAXITER_MICRO=1, + NPRINTFR=10000, + NPTP=1, + RCRIAUTC=0.001, + RCRIAUTI=0.0002, + RT0CRIAUTI=-5., + VSIGQSAT=0.02, + XFRACM90=0.1, + XMRSTEP=0.00005, + XSPLIT_MAXCFL=0.8, + XTSTEP_TS=0., + / + &NAMPHMSE + LPGDFWR=.FALSE., + / + &NAMPHY + LAERODES=.TRUE., + LAEROLAN=.TRUE., + LAEROSEA=.TRUE., + LAEROSOO=.TRUE., + LEDR=.TRUE., + LMPHYS=.TRUE., + LO3ABC=.TRUE., + LRAYFM=.TRUE., + / + &NAMPHY0 + ALMAV=300., + BEDIFV=0.05, + ECMNP=3000., + GCCSV=0., + GCVADS=0.8, + GCVALFA=0.000045, + GCVBETA=0.2, + GCVMLT=0.00016, + GCVNU=0.000025, + GCVPSI=1., + GCVPSIE=1., + GDDEVA=0.25, + GDDSDE=0.5, + GWDCD=6., + HUCOE=0.5, + HUTIL=1.8, + QSSC=400., + QSSUSC=0.75, + QSSUSS=0.4, + QSSUSV=250., + QSUSXC=0.0002, + QSUSXS=0.0003, + QXRAL=130., + QXRDEL=0.49, + QXRHX=0.99, + QXRR=0.25, + RCVEVAP=0.25, + REFLKUO=5000., + REVGSL=15., + SCO=-20., + TDDGP=0.8, + TENTR=0.0000025, + TENTRX=0.00008, + TUDGP=0.8, + UHDIFV=0.0008, + USURIC=0.175, + USURICE=0.5, + USURICL=1., + USURID=0.1, + USURIDE=0.25, + VZ0CM=0.00015, + XMAXLM=5000., + XMINLM=10., + / + &NAMPHY1 + ALBMIN=0.65, + ALCRIN=0.75, + GCGEL=0.00003, + GCGELS=0.00005, + GNEIMX=1.8, + GNEIMXS=1.8, + RCTVEG(3)=0.000012, + RCTVEG(4)=0.00001, + / + &NAMPHY2 + FACRAF=3.8, + HTKERAF=20., + LMULAF=.TRUE., + LRAFTKE=.TRUE., + LRAFTUR=.TRUE., + XDAMP=1., + XMULAF=-1.85, + / + &NAMPHY3 + / + &NAMPHYDS + / + &NAMPONG + / + &NAMPPC + / + &NAMPPVI + / + &NAMPRE + / + &NAMRAD15 + / + &NAMRADCMEM + / + &NAMRCF + / + &NAMRCOEF + / + &NAMRES + / + &NAMRGRI + / + &NAMRINC + / + &NAMRIP + TSTEP=50., + CSTOP='h2', + / + &NAMRIP0 + / + &NAMRLX + / + &NAMSATS + LPARTIAL_COEF_FILES=.TRUE., + / + &NAMSCC + / + &NAMSCEN + / + &NAMSCM + / + &NAMSEKF + / + &NAMSENS + / + &NAMSFXCMP + CFLDNAME(1)='????????????????', + NBBITS(1)=24, + / + &NAMSIMPHL + / + &NAMSPNG + / + &NAMSPSDT + / + &NAMSTA + / + &NAMSTOPH + / + &NAMSWE + / + &NAMTESTVAR + / + &NAMTHLIM + / + &NAMTOPH + ETCVIM=5000., + ETNEBU=5000., + ETPLUI=5000., + XDRMTK=6.0D-7, + XDRMTP=800., + XDRMUK=3.0D-7, + XDRMUP=800., + / + &NAMTRAJP + / + &NAMTRANS + / + &NAMTRANS0 + / + &NAMTS + / + &NAMVAR + / + &NAMVARBC + / + &NAMVARBC_AIREP + / + &NAMVARBC_ALLSKY + / + &NAMVARBC_GBRAD + / + &NAMVARBC_RAD + / + &NAMVARBC_SFCOBS + / + &NAMVARBC_TCWV + / + &NAMVARBC_TO3 + / + &NAMVAREPS + / + &NAMVDF + / + &NAMVDOZ + / + &NAMVOLCANO + / + &NAMVRTL + / + &NAMVV0 + / + &NAMVV1 + / + &NAMVWRK + / + &NAMWAVELETJB + / + &NAMXFU + LXCLP=.TRUE., + LXCLS=.TRUE., + LXFU=.TRUE., + LXNEBPA=.TRUE., + LXNEBTT=.TRUE., + LXNUVCLS=.TRUE., + LXPLS=.TRUE., + LXPLSG=.TRUE., + LXQCLS=.TRUE., + LXR=.TRUE., + LXSOIL=.FALSE., + LXTHW=.TRUE., + LXTRT=.TRUE., + LXTTCLS=.TRUE., + LXXDIAGH=.TRUE., + LXXGST=.TRUE., + NFRRAZ=72, + NRAZTS(0)=0, + / + &NAM_CANAPE + / + &NAM_DISTRIBUTED_VECTORS + / + &NAPHLC + / + &NEMCT0 + / + &NEMDIM + / + &NEMDYN + / + &NEMELBC0A + LESPCPL=.TRUE., + NBICNHX=2, + NBICOP=2, + NBICOT=2, + NBICOU=2, + NBICPD=2, + NBICVD=2, + NECRIPL=1, + / + &NEMELBC0B + NEFRSPCPL=1, + NEK0=20, + NEK1=30, + NEN1=4, + NEN2=8, + SPNUDDIV=0.01, + SPNUDQ=0., + SPNUDT=0.01, + SPNUDVOR=0.01, + TEFRCL=3600., + / + &NEMFPEZO + / + &NEMGEO + / + &NEMJK + / + &NEMVAR + / + &NEMWAVELET + / + &NAETLDIAG + / + &NAMMETHOX + / + &NAMSPP + / + &NAMACV + / + &NAMFPOBJ + / + &NAMNORGWD + / + &NAMTRAJ + / + &NAMSATSIM + / + &NAMDVISI + / + &NAMNUDGLH + / + &NAMPERTPAR + / +FIN +/bin/cat fort.4 + +/bin/cat <<FIN > EXSEG1.nam + &NAM_DIAG_ISBAN + LPGD=.TRUE., + LSURF_MISC_BUDGET=.TRUE., + / + &NAM_DIAG_SURFN + LCOEF=.TRUE., + LSURF_BUDGET=.TRUE., + N2M=2, + / + &NAM_ISBAN + CSCOND='NP89', + / + &NAM_REPROD_OPER + LREPROD_OPER=.TRUE., + / + &NAM_SEAFLUXN + CSEA_FLUX='ECUME', + LPWG=.FALSE., + LPRECIP=.FALSE., + LPWEBB=.FALSE., + / + &NAM_SSON + CROUGH='Z01D', + XFRACZ0=5., + LDSV=.FALSE., + / + &NAM_SURF_ATM + XRIMAX=0.2, + LNOSOF=.TRUE., + / + &NAM_SURF_CSTS + XZ0SN=0.01, + XZ0HSN=0.001, + XEMISSN=0.99, + / + &NAM_WRITE_DIAG_SURFN + LPROVAR_TO_DIAG=.FALSE., + LSELECT=.TRUE., +CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS', + / + &NAM_WRITE_SURF_ATM + LNOWRITE_TEXFILE=.TRUE., + / +FIN +/bin/cat EXSEG1.nam + +# ***************************************** +# * Acquisition du fichier de demarrage * +# ***************************************** + +echo +for hh in 0 1 2 3 4 5 6 ; do + N=`expr $hh / 1 ` + set -x + ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N} + set +x +done +set -x +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx +ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin . +ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim +ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx +ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025 +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat . +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat . +ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat . +set +x +tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz + +# *************** +# * Chargement * +# *************** + +echo +set -x +\ln -s $LOADIR/MASTERODB MASTER +set +x +if ldd MASTER | grep openmpi > /dev/null; then + #On est sur PC + MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}') + MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC" + GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1 + export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions + export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions +else + #On est sur HPC + #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD" + NNODES=$SLURM_JOB_NUM_NODES + MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES)) + MPI_TASKS=$SLURM_NTASKS + MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --" + export OMP_STACKSIZE=4G + export KMP_STACKSIZE=4G + export KMP_MONITOR_STACKSIZE=4G + export DR_HOOK=1 + export DR_HOOK_IGNORE_SIGNALS=-1 + export DR_HOOK_SILENT=1 + export DR_HOOK_SHOW_PROCESS_OPTIONS=0 + export MPL_MBX_SIZE=2048000000 + export EC_PROFILE_HEAP=0 + export EC_PROFILE_MEM=0 + export EC_MPI_ATEXIT=0 + export EC_MEMINFO=0 + export OPENBLAS_NUM_THREADS=1 + export MKL_CBWR="AUTO,STRICT" + export MKL_NUM_THREADS=1 + export MKL_DEBUG_CPU_TYPE=5 + export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions +fi +echo $MPIRUN +set +x +if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi + +# *************** +# * Execution * +# *************** + +echo +echo OMP_NUM_THREADS=$OMP_NUM_THREADS +set -x +ulimit -s unlimited +$MPIRUN $PWD/MASTER >lola +set +x +echo +##if [ -f lola ] ; then +## echo;echo Standard output :;echo;cat lola +##fi +##if [ -f stderr.* ] ; then +## for file in stderr.* ; do +## echo;echo $file :;cat $file +## done +##fi +##if [ -f stdout.* ] ; then +##echo;echo stdout :;echo;cat stdout.* +##fi +##if [ -a NODE.001_01 ] ; then +## for file in NODE* ; do +## echo;echo Listing $file;echo +## cat $file +## done +##fi +##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then +### Top 25 for each MPI task : +## for file in drhook.prof.* ; do +## echo;echo $file :;head -38 $file +## done +##fi +#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl + +# ******************* +# * Sauvegardes * +# ******************* + +ls +#if [ -f PFFPOS000+0000 ] ; then +# cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID +#fi +cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/ +/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001* +/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00* +/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz) + +# **************** +# * Epilogue * +# **************** + +ls -ltr | grep -v "\->" +echo Wait_queue : +ls -ltr $TMPWAIT +cd $TMPDIR +\rm -rf rundir.$$ +\rm -rf wait_queue.$$ +date +set +x diff --git a/tools/conf_tests/small_3D_alt3/aro48t3.sh b/tools/conf_tests/small_3D_alt3/aro48t3.sh new file mode 100755 index 0000000000000000000000000000000000000000..74b175583b629d090492e0ace4e1b052b36c1026 --- /dev/null +++ b/tools/conf_tests/small_3D_alt3/aro48t3.sh @@ -0,0 +1,1209 @@ +#!/bin/bash +#SBATCH -n 4 +#SBATCH --mem=20000 +#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR +#SBATCH -t 00:10:00 +#SBATCH -N 1 +#SBATCH -p normal256 + +#The MYLIB varibale must contain the gmkpack pack name +#The TESTDIR variable must contain the test directory +#Results will be stored in the local directory + +#Other environment varaibles that can be set: +#OUTPUTDIR + +date + +OUTPUTDIR=${OUTPUTDIR:-$PWD} +case=riette2 +#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script +rekchemin=$TESTDIR + +NPROC=4 +NSTRIN=$NPROC +NSTROUT=1 +NPRTRW_NPRTRV="" +NPRTRW_NPRTRV=" NPRTRW=$NPROC, + NPRTRV=1," +export OMP_NUM_THREADS=1 + +#MYLIB=48t1_main.01%jpdup + +export DR_HOOK=1 +#export DR_HOOK_IGNORE_SIGNALS=-1 +export DR_HOOK_NOT_MPI=1 +export DR_HOOK_SILENT=1 +export DR_HOOK_OPT= + +export EC_PROFILE_HEAP=0 +export EC_PROFILE_MEM=0 +export EC_MPI_ATEXIT=0 +export DR_HOOK_SHOW_PROCESS_OPTIONS=0 +export EC_MEMINFO=0 +export TVSEARCHPATH=$SOURCE + +HOMEPACK=${HOMEPACK:=$HOME/pack} +SOURCE=$HOMEPACK/$MYLIB/src/local +LOADIR=$HOMEPACK/$MYLIB/bin + +TMPDIR=${TMPDIR:=$HOME/tmp} +TMPLOC=$TMPDIR/rundir.$$ +TMPWAIT=$TMPDIR/wait_queue.$$ +mkdir $TMPWAIT +mkdir $TMPLOC +cd $TMPLOC + +export RTTOV_COEFDIR=$PWD + +# ************************** +# * Saisie des NAMELISTS * +# ************************** + +CNMEXP='FPOS' + +echo +/bin/cat <<FIN > fort.4 + &NACIETEO + / + &NACOBS + / + &NACTAN + / + &NACTEX + / + &NACVEG + / + &NADOCK + / + &NAEAEM7 + / + &NAEAER + / + &NAECOAPHY + / + &NAEPHLI + / + &NAEPHY + / + &NAERAD + LRRTM=.TRUE., + LSRTM=.FALSE., + NAER=1, + NICEOPT=3, + NLIQOPT=3, + NOVLP=6, + NOZOCL=2, + NRADFR=18, + NRADIP=3, + NRADLP=2, + NSW=6, + RLWINHF=1, + RRE2DE=0.64952, + RSWINHF=1, + / + &NAERCLI + / + &NAEVOL + / + &NAIMPO + / + &NALORI + / + &NAMAFN + GFP_CLSG%CLNAME='SURFACCGRAUPEL', + GFP_CLSP%CLNAME='SURFACCPLUIE', + GFP_CLSS%CLNAME='SURFACCNEIGE', + GFP_SFIS%IBITS=16, + GFP_ST%CLNAME='SURFTEMPERATURE', + GFP_ST%IANO=0, + GFP_ST%IBITS=12, + GFP_X10U%CLNAME='CLSVENT.ZONAL', + GFP_X10U%IANO=0, + GFP_X10U%IBITS=12, + GFP_X10V%CLNAME='CLSVENT.MERIDIEN', + GFP_X10V%IANO=0, + GFP_X10V%IBITS=12, + GFP_X2RH%CLNAME='CLSHUMI.RELATIVE', + GFP_X2RH%IANO=0, + GFP_X2RH%IBITS=12, + GFP_X2T%CLNAME='CLSTEMPERATURE', + GFP_X2T%IANO=1, + GFP_XCCC%IBITS=8, + GFP_XHCC%IBITS=8, + GFP_XLCC%IBITS=8, + GFP_XLSG%CLNAME='SURFINSGRAUPEL', + GFP_XLSP%CLNAME='SURFINSPLUIE', + GFP_XLSS%CLNAME='SURFINSNEIGE', + GFP_XMCC%IBITS=8, + GFP_XN2T%IBITS=12, + GFP_XTCC%IBITS=8, + GFP_XUGST%CLNAME='CLSU.RAF60M.XFU', + GFP_XUGST%IANO=0, + GFP_XUGST%IBITS=12, + GFP_XVGST%CLNAME='CLSV.RAF60M.XFU', + GFP_XVGST%IANO=0, + GFP_XVGST%IBITS=12, + GFP_XX2T%IBITS=12, + GFP_XXDIAGH%IBITS=12, + TFP_ABS%ZFK=32., + TFP_CLF%IBITS=6, + TFP_EDR%CLNAME='EDR', + TFP_EDR%IBITS=16, + TFP_EDR%IGRIB=136, + TFP_GR%IBITS=12, + TFP_HL%IBITS=12, + TFP_HTB%IBITS=16, + TFP_HTB%LLGP=.TRUE., + TFP_HU%IBITS=12, + TFP_MSAT9C2%IBITS=12, + TFP_MSAT9C6%IBITS=12, + TFP_MSLNH%IBITS=12, + TFP_PV%ZFK=64., + TFP_RCLS%IBITS=12, + TFP_RR%IBITS=12, + TFP_SN%IBITS=12, + TFP_T%IBITS=12, + TFP_TCLS%IBITS=12, + TFP_TH%IBITS=12, + TFP_THPW%IBITS=12, + TFP_THV%IBITS=12, + TFP_TN%IBITS=12, + TFP_TWV%IBITS=12, + TFP_TX%IBITS=12, + TFP_U%IBITS=12, + TFP_V%IBITS=12, + TFP_VOR%ZFK=32., + TFP_VV%ZFK=32., + / + &NAMARG + CNMEXP='${CNMEXP}', + LECMWF=.FALSE., + LELAM=.TRUE., + LSLAG=.TRUE., + NCONF=1, + NSUPERSEDE=1, + / + &NAMARPHY + LKFBCONV=.FALSE., + LKFBD=.FALSE., + LKFBS=.FALSE., + LMFSHAL=.TRUE., + LMICRO=.TRUE., + LMPA=.TRUE., + LMSE=.TRUE., + LTURB=.TRUE., + / + &NAMCA + / + &NAMCAPE + / + &NAMCFU + LCUMFU=.TRUE., + LFPLS=.TRUE., + LFPLSG=.TRUE., + LFR=.TRUE., + LFRRC=.TRUE., + LFSF=.TRUE., + LNEBPAR=.TRUE., + LNEBTT=.TRUE., + LRAYD=.TRUE., + LRAYS=.TRUE., + / + &NAMCHEM + / + &NAMCHET + / + &NAMCHK + / + &NAMCLA + / + &NAMCLDP + / + &NAMCLI + / + &NAMCLOP15 + / + &NAMCLTC + / + &NAMCOK + / + &NAMCOM + / + &NAMCOSJO + / + &NAMCOUPLO4 + / + &NAMCT0 + CFPNCF='ECHFP', + CNPPATH=' ', + LAROME=.TRUE., + LNHEE=.TRUE., + LSCREEN_OPENMP=.FALSE., + LSPRT=.TRUE., + LTWOTL=.TRUE., + NFPOS=1, + NFRSDI=18, + NSDITS(0)=0, + NFRHIS=72, + NHISTS(0)=0, + NFRPOS=72, + NPOSTS(0)=0, + NFRSFXHIS=72, + NSFXHISTS(0)=0, + NFRDHFD=72, + NDHFDTS(0)=0, + / + &NAMCT1 + LRFILAF=.FALSE., + N1HIS=1, + N1POS=1, + N1RES=0, + N1SDI=1, + N1SFXHIS=1, + N1GDI=0, + / + &NAMCUMF + / + &NAMCUMFS + / + &NAMCVER + / + &NAMCVMNH + / + &NAMDDH + LDDH_OMP=.TRUE., + LHDDOP=.TRUE., + LHDHKS=.TRUE., + LHDEFD=.TRUE., + LFLEXDIA=.TRUE., + BDEDDH(1,1)=3, + BDEDDH(2,1)=1, + BDEDDH(3,1)=358.8 + BDEDDH(4,1)=45.1 + BDEDDH(5,1)=360.3 + BDEDDH(6,1)=44.5 + / + &NAMDFI + / + &NAMDIM + NPROMA=-50, + / + &NAMDIMO + / + &NAMDIM_TRAJ + / + &NAMDPHY + / + &NAMDPRECIPS + / + &NAMDYN + LADVF=.TRUE., + LQMPD=.FALSE., + LQMT=.FALSE., + LQMVD=.FALSE., + LRHDI_LASTITERPC=.TRUE., + NITMP=4, + NSITER=1, + NSPDLAG=3, + NSVDLAG=3, + NTLAG=3, + NVLAG=3, + NWLAG=3, + RDAMPDIV=20., + RDAMPPD=20., + RDAMPQ=0., + RDAMPT=0., + RDAMPVD=20., + RDAMPVOR=20., + REPS1=0., + REPS2=0., + REPSM1=0., + REPSM2=0., + REPSP1=0., + SDRED=1., + SIPR=90000., + SITR=350., + SITRA=100., + SLHDA0=0.25, + SLHDD00=0.000065, + VESL=0.05, + XIDT=0., + ZSLHDP1=1.7, + ZSLHDP3=0.6, + / + &NAMDYNA + LCOMADH=.TRUE., + LCOMADV=.FALSE., + LCOMAD_GFL=.TRUE., + LCOMAD_SP=.TRUE., + LCOMAD_SPD=.TRUE., + LCOMAD_SVD=.TRUE., + LCOMAD_T=.TRUE., + LCOMAD_W=.TRUE., + LGWADV=.TRUE., + LNESC=.TRUE., + LPC_CHEAP=.TRUE., + LPC_FULL=.TRUE., + LRDBBC=.FALSE., + LSETTLS=.FALSE., + LSETTLST=.TRUE., + LSLHD_GFL=.TRUE., + LSLHD_OLD=.FALSE., + LSLHD_SPD=.FALSE., + LSLHD_SVD=.FALSE., + LSLHD_T=.FALSE., + LSLHD_W=.FALSE., + ND4SYS=2, + NDLNPR=1, + NPDVAR=2, + NVDVAR=4, + SLHDEPSH=0.08, + SLHDKMAX=6, + / + &NAMDYNCORE + / + &NAMEMIS_CONF + / + &NAMENKF + / + &NAMFA + CMODEL='OUTPUTID', + LEXTERN=.TRUE., + LSUPPDATE=.FALSE., + NBITCS=-1, + NBITPG=-1, + NSTRON=-1, + / + &NAMFAINIT + JPXTRO=2000, + / + &NAMFPC + CFP2DF(1)='SURFPRESSION', + CFP2DF(2)='MSL_NHPRESSURE', + CFP2DF(3)='SURFTOT.WAT.VAPO', + CFP2DF(4)='SURFISOTPW0.MALT', + CFP2DF(5)='SURFCAPE.POS.F00', + CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS', + CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS', + CFP2DF(8)='SURFREFLECT.MAX', + CFP2DF(9)='SURFISOTPW1.MALT', + CFP2DF(10)='SURFISOTPW2.MALT', + CFP3DF(1)='GEOPOTENTIEL', + CFP3DF(2)='TEMPERATURE', + CFP3DF(3)='VENT_ZONAL', + CFP3DF(4)='VENT_MERIDIEN', + CFP3DF(5)='HUMI_RELATIVE', + CFP3DF(6)='THETA_PRIM_W', + CFP3DF(7)='PRESSURE', + CFP3DF(8)='ABS_VORTICITY', + CFP3DF(9)='VITESSE_VERTICALE', + CFP3DF(10)='TEMPE_POTENT', + CFP3DF(11)='POT_VORTICIT', + CFP3DF(12)='SIM_REFLECTI', + CFP3DF(13)='RAIN', + CFP3DF(14)='SNOW', + CFP3DF(15)='GRAUPEL', + CFP3DF(16)='ICE_CRYSTAL', + CFP3DF(17)='CLOUD_WATER', + CFP3DF(18)='VERT.VELOCIT', + CFP3DF(19)='DIVERGENCE', + CFP3DF(20)='THETA_VIRTUA', + CFP3DF(21)='TKE', + CFP3DF(22)='CLOUD_FRACTI', + CFP3DF(23)='ISOT_ALTIT', + CFP3DF(24)='EDR', + CFPCFU(1)='SURFTENS.TOTA.ZO', + CFPCFU(2)='SURFTENS.TOTA.ME', + CFPCFU(3)='SURFACCPLUIE', + CFPCFU(4)='SURFACCNEIGE', + CFPCFU(5)='SURFACCGRAUPEL', + CFPCFU(6)='SOMMFLU.RAY.SOLA', + CFPCFU(7)='SURFFLU.RAY.SOLA', + CFPCFU(8)='SOMMFLU.RAY.THER', + CFPCFU(9)='SURFFLU.RAY.THER', + CFPCFU(10)='SURFFLU.LAT.MTOT', + CFPCFU(11)='SURFFLU.MTOTA.NE', + CFPCFU(12)='SURFFLU.CHA.SENS', + CFPCFU(13)='SURFRAYT SOLA DE', + CFPCFU(14)='SURFRAYT THER DE', + CFPCFU(15)='SURFRAYT SOL CL', + CFPCFU(16)='SURFRAYT THER CL', + CFPCFU(17)='SURFRAYT DIR SUR', + CFPDOM(1)='FRANGP0025', + CFPFMT='LALON', + CFPPHY(1)='SURFTEMPERATURE', + CFPPHY(2)='INTSURFGEOPOTENT', + CFPPHY(3)='SURFRESERV.NEIGE', + CFPXFU(1)='CLSTEMPERATURE', + CFPXFU(2)='CLSHUMI.RELATIVE', + CFPXFU(3)='CLSVENT.ZONAL', + CFPXFU(4)='CLSVENT.MERIDIEN', + CFPXFU(5)='SURFNEBUL.TOTALE', + CFPXFU(6)='SURFNEBUL.HAUTE', + CFPXFU(7)='SURFNEBUL.MOYENN', + CFPXFU(8)='SURFNEBUL.BASSE', + CFPXFU(9)='CLSMAXI.TEMPERAT', + CFPXFU(10)='CLSMINI.TEMPERAT', + CFPXFU(11)='CLPMHAUT.MOD.XFU', + CFPXFU(12)='SURFDIAGHAIL', + LCRITSNOWTEMP=.FALSE., + LFPCAPEX=.TRUE., + LFPMOIS=.TRUE., + LFPPACKING=.FALSE., + LWIDER_DOM=.TRUE., + L_READ_MODEL_DATE=.TRUE., + NFITI=1, + NFITV=1, + NFPCAPE=5, + NFPCLI=1, + NFPGRIB=1, + NFPINPHY=4, + NITERPV=8, + RENTRA=0.0001, + RFP3H(1)=10., + RFP3H(2)=20., + RFP3H(3)=35., + RFP3H(4)=50., + RFP3H(5)=75., + RFP3H(6)=100., + RFP3H(7)=150., + RFP3H(8)=200., + RFP3H(9)=250., + RFP3H(10)=375., + RFP3H(11)=500., + RFP3H(12)=625., + RFP3H(13)=750., + RFP3H(14)=875., + RFP3H(15)=1000., + RFP3H(16)=1125., + RFP3H(17)=1250., + RFP3H(18)=1375., + RFP3H(19)=1500., + RFP3H(20)=1750., + RFP3H(21)=2000., + RFP3H(22)=2250., + RFP3H(23)=2500., + RFP3H(24)=2750., + RFP3H(25)=3000., + RFP3I(1)=-273.15, + RFP3I(2)=-263.15, + RFP3I(3)=-261.15, + RFP3I(4)=-253.15, + RFP3P(1)=10000., + RFP3P(2)=12500., + RFP3P(3)=15000., + RFP3P(4)=17500., + RFP3P(5)=20000., + RFP3P(6)=22500., + RFP3P(7)=25000., + RFP3P(8)=27500., + RFP3P(9)=30000., + RFP3P(10)=35000., + RFP3P(11)=40000., + RFP3P(12)=45000., + RFP3P(13)=50000., + RFP3P(14)=55000., + RFP3P(15)=60000., + RFP3P(16)=65000., + RFP3P(17)=70000., + RFP3P(18)=75000., + RFP3P(19)=80000., + RFP3P(20)=85000., + RFP3P(21)=90000., + RFP3P(22)=92500., + RFP3P(23)=95000., + RFP3P(24)=100000., + RFP3PV(1)=0.0000015, + RFP3PV(2)=0.000002, + RFPCD2=5., + RFPCSAB=50., + RFPVCAP=7000., + / + &NAMFPD + NLAT(1)=41, + NLON(1)=41, + RLONC(1)=-0.71, + RLATC(1)=44.8, + RDELX(1)=0.025, + RDELY(1)=0.025, + / + &NAMFPDY2 + / + &NAMFPDYF + / + &NAMFPDYH + / + &NAMFPDYI + / + &NAMFPDYP + / + &NAMFPDYS + / + &NAMFPDYT + / + &NAMFPDYV + / + &NAMFPF + NFMAX(1)=60, + NFMAX(2)=80, + / + &NAMFPG + NFPDISTRIB=1, + / + &NAMFPIOS + / + &NAMFPMOVE + / + &NAMFPPHY + / + &NAMFPSC2 + NFPROMA=-50, + / + &NAMFPSC2_DEP + NFPROMA_DEP=-50, + / + &NAMGEM + / + &NAMGFL + NGFL_EZDIAG=4, + YEZDIAG_NL(1)%CNAME='EZDIAG01', + YEZDIAG_NL(1)%LREQOUT=.FALSE., + YEZDIAG_NL(2)%CNAME='EZDIAG02', + YEZDIAG_NL(2)%LREQOUT=.FALSE., + YEZDIAG_NL(3)%CNAME='EZDIAG03', + YEZDIAG_NL(3)%LREQOUT=.FALSE., + YEZDIAG_NL(4)%CNAME='INPRRTOT3D', + YEZDIAG_NL(4)%LREQOUT=.TRUE., + YG_NL%LQM=.TRUE., + YG_NL%LSLHD=.TRUE., + YG_NL%NCOUPLING=-1, + YG_NL%NREQIN=1, + YG_NL%REFVALC=0., + YIRAD_NL%LGP=.TRUE., + YI_NL%LQM=.TRUE., + YI_NL%LSLHD=.TRUE., + YI_NL%NCOUPLING=-1, + YI_NL%NREQIN=1, + YI_NL%REFVALC=0., + YLRAD_NL%LGP=.TRUE., + YL_NL%LQM=.TRUE., + YL_NL%LSLHD=.TRUE., + YL_NL%NCOUPLING=-1, + YL_NL%NREQIN=1, + YL_NL%REFVALC=0., + YQ_NL%LCOMAD=.TRUE., + YQ_NL%LQM=.TRUE., + YQ_NL%LSLHD=.FALSE., + YQ_NL%NREQIN=1, + YR_NL%LQM=.TRUE., + YR_NL%LSLHD=.TRUE., + YR_NL%NCOUPLING=-1, + YR_NL%NREQIN=1, + YR_NL%REFVALC=0., + YS_NL%LQM=.TRUE., + YS_NL%LSLHD=.TRUE., + YS_NL%NCOUPLING=-1, + YS_NL%NREQIN=1, + YS_NL%REFVALC=0., + YTKE_NL%NCOUPLING=0, + YTKE_NL%NREQIN=1, + / + &NAMGRIB + / + &NAMGWD + / + &NAMGWDIAG + / + &NAMGWWMS + / + &NAMIAU + ALPHAIAU=0.5, + LIAU=.FALSE., + TSTARTIAU=1800, + TSTOPIAU=5340, + / + &NAMICE + / + &NAMINI + LDFI=.FALSE., + / + &NAMINTFLEX + / + &NAMIOMI + / + &NAMIOS + / + &NAMIO_SERV + NIO_SERV_BUF_MAXSIZE=20, + NIO_SERV_METHOD=2, + NMSG_LEVEL_CLIENT=0, + NMSG_LEVEL_SERVER=0, + NPROCESS_LEVEL=5, + NPROC_IO=0, + / + &NAMJBCODES + / + &NAMJFH + / + &NAMJG + / + &NAMLCZ + / + &NAMLSFORC + / + &NAMMARS + / + &NAMMCC + / + &NAMMCUF + / + &NAMMKODB + / + &NAMMODERR + / + &NAMMTS + / + &NAMMWAVE + / + &NAMNPROF + / + &NAMNUD + / + &NAMOBS + / + &NAMONEDVAR + / + &NAMOOPS + / + &NAMOPH + CFNHWF='ECHIS', + LINC=.TRUE., + NTIMEFMT=1, + / + &NAMOPTCMEM + / + &NAMPAR0 + LOPT_SCALAR=.TRUE., + NPRINTLEV=1, + LMPOFF=.FALSE., + MBX_SIZE=2048000000, + MP_TYPE=2, + NOUTPUT=1, + NPROC=$NPROC, +$NPRTRW_NPRTRV + / + &NAMPAR1 + LEQ_REGIONS=.FALSE., + LSLONDEM=.TRUE., + LSPLIT=.TRUE., + LSYNC_SLCOM=.FALSE., + LSYNC_TRANS=.FALSE., + L_GATHERV_WRGP=.FALSE., + NCOMBFLEN=1800000, + NSTRIN=$NSTRIN, + NSTROUT=$NSTROUT, + / + &NAMPARAR + CFRAC_ICE_ADJUST='S', + CFRAC_ICE_SHALLOW_MF='S', + CMICRO='ICE3', + CSEDIM='STAT', + CSNOWRIMING='M90', + LCONVHG=.TRUE., + LCRFLIMIT=.TRUE., + LCRIAUTI=.TRUE., + LEVLIMIT=.TRUE., + LFEEDBACKT=.TRUE., + LFPREC3D=.TRUE., + LNULLWETG=.TRUE., + LNULLWETH=.TRUE., + LOLSMC=.TRUE., + LOSEDIC=.TRUE., + LOSIGMAS=.TRUE., + LOSUBG_COND=.TRUE., + LSEDIM_AFTER=.FALSE., + LWETGPOST=.TRUE., + LWETHPOST=.TRUE., + NMAXITER_MICRO=1, + NPRINTFR=10000, + NPTP=1, + RCRIAUTC=0.001, + RCRIAUTI=0.0002, + RT0CRIAUTI=-5., + VSIGQSAT=0.02, + XFRACM90=0.1, + XMRSTEP=0.00005, + XSPLIT_MAXCFL=0.8, + XTSTEP_TS=0., + CSUBG_RC_RR_ACCR='PRFR', + CSUBG_RR_EVAP='PRFR', + / + &NAMPHMSE + LPGDFWR=.FALSE., + / + &NAMPHY + LAERODES=.TRUE., + LAEROLAN=.TRUE., + LAEROSEA=.TRUE., + LAEROSOO=.TRUE., + LEDR=.TRUE., + LMPHYS=.TRUE., + LO3ABC=.TRUE., + LRAYFM=.TRUE., + / + &NAMPHY0 + ALMAV=300., + BEDIFV=0.05, + ECMNP=3000., + GCCSV=0., + GCVADS=0.8, + GCVALFA=0.000045, + GCVBETA=0.2, + GCVMLT=0.00016, + GCVNU=0.000025, + GCVPSI=1., + GCVPSIE=1., + GDDEVA=0.25, + GDDSDE=0.5, + GWDCD=6., + HUCOE=0.5, + HUTIL=1.8, + QSSC=400., + QSSUSC=0.75, + QSSUSS=0.4, + QSSUSV=250., + QSUSXC=0.0002, + QSUSXS=0.0003, + QXRAL=130., + QXRDEL=0.49, + QXRHX=0.99, + QXRR=0.25, + RCVEVAP=0.25, + REFLKUO=5000., + REVGSL=15., + SCO=-20., + TDDGP=0.8, + TENTR=0.0000025, + TENTRX=0.00008, + TUDGP=0.8, + UHDIFV=0.0008, + USURIC=0.175, + USURICE=0.5, + USURICL=1., + USURID=0.1, + USURIDE=0.25, + VZ0CM=0.00015, + XMAXLM=5000., + XMINLM=10., + / + &NAMPHY1 + ALBMIN=0.65, + ALCRIN=0.75, + GCGEL=0.00003, + GCGELS=0.00005, + GNEIMX=1.8, + GNEIMXS=1.8, + RCTVEG(3)=0.000012, + RCTVEG(4)=0.00001, + / + &NAMPHY2 + FACRAF=3.8, + HTKERAF=20., + LMULAF=.TRUE., + LRAFTKE=.TRUE., + LRAFTUR=.TRUE., + XDAMP=1., + XMULAF=-1.85, + / + &NAMPHY3 + / + &NAMPHYDS + / + &NAMPONG + / + &NAMPPC + / + &NAMPPVI + / + &NAMPRE + / + &NAMRAD15 + / + &NAMRADCMEM + / + &NAMRCF + / + &NAMRCOEF + / + &NAMRES + / + &NAMRGRI + / + &NAMRINC + / + &NAMRIP + TSTEP=50., + CSTOP='h2', + / + &NAMRIP0 + / + &NAMRLX + / + &NAMSATS + LPARTIAL_COEF_FILES=.TRUE., + / + &NAMSCC + / + &NAMSCEN + / + &NAMSCM + / + &NAMSEKF + / + &NAMSENS + / + &NAMSFXCMP + CFLDNAME(1)='????????????????', + NBBITS(1)=24, + / + &NAMSIMPHL + / + &NAMSPNG + / + &NAMSPSDT + / + &NAMSTA + / + &NAMSTOPH + / + &NAMSWE + / + &NAMTESTVAR + / + &NAMTHLIM + / + &NAMTOPH + ETCVIM=5000., + ETNEBU=5000., + ETPLUI=5000., + XDRMTK=6.0D-7, + XDRMTP=800., + XDRMUK=3.0D-7, + XDRMUP=800., + / + &NAMTRAJP + / + &NAMTRANS + / + &NAMTRANS0 + / + &NAMTS + / + &NAMVAR + / + &NAMVARBC + / + &NAMVARBC_AIREP + / + &NAMVARBC_ALLSKY + / + &NAMVARBC_GBRAD + / + &NAMVARBC_RAD + / + &NAMVARBC_SFCOBS + / + &NAMVARBC_TCWV + / + &NAMVARBC_TO3 + / + &NAMVAREPS + / + &NAMVDF + / + &NAMVDOZ + / + &NAMVOLCANO + / + &NAMVRTL + / + &NAMVV0 + / + &NAMVV1 + / + &NAMVWRK + / + &NAMWAVELETJB + / + &NAMXFU + LXCLP=.TRUE., + LXCLS=.TRUE., + LXFU=.TRUE., + LXNEBPA=.TRUE., + LXNEBTT=.TRUE., + LXNUVCLS=.TRUE., + LXPLS=.TRUE., + LXPLSG=.TRUE., + LXQCLS=.TRUE., + LXR=.TRUE., + LXSOIL=.FALSE., + LXTHW=.TRUE., + LXTRT=.TRUE., + LXTTCLS=.TRUE., + LXXDIAGH=.TRUE., + LXXGST=.TRUE., + NFRRAZ=72, + NRAZTS(0)=0, + / + &NAM_CANAPE + / + &NAM_DISTRIBUTED_VECTORS + / + &NAPHLC + / + &NEMCT0 + / + &NEMDIM + / + &NEMDYN + / + &NEMELBC0A + LESPCPL=.TRUE., + NBICNHX=2, + NBICOP=2, + NBICOT=2, + NBICOU=2, + NBICPD=2, + NBICVD=2, + NECRIPL=1, + / + &NEMELBC0B + NEFRSPCPL=1, + NEK0=20, + NEK1=30, + NEN1=4, + NEN2=8, + SPNUDDIV=0.01, + SPNUDQ=0., + SPNUDT=0.01, + SPNUDVOR=0.01, + TEFRCL=3600., + / + &NEMFPEZO + / + &NEMGEO + / + &NEMJK + / + &NEMVAR + / + &NEMWAVELET + / + &NAETLDIAG + / + &NAMMETHOX + / + &NAMSPP + / + &NAMACV + / + &NAMFPOBJ + / + &NAMNORGWD + / + &NAMTRAJ + / + &NAMSATSIM + / + &NAMDVISI + / + &NAMNUDGLH + / + &NAMPERTPAR + / +FIN +/bin/cat fort.4 + +/bin/cat <<FIN > EXSEG1.nam + &NAM_DIAG_ISBAN + LPGD=.TRUE., + LSURF_MISC_BUDGET=.TRUE., + / + &NAM_DIAG_SURFN + LCOEF=.TRUE., + LSURF_BUDGET=.TRUE., + N2M=2, + / + &NAM_ISBAN + CSCOND='NP89', + / + &NAM_REPROD_OPER + LREPROD_OPER=.TRUE., + / + &NAM_SEAFLUXN + CSEA_FLUX='ECUME', + LPWG=.FALSE., + LPRECIP=.FALSE., + LPWEBB=.FALSE., + / + &NAM_SSON + CROUGH='Z01D', + XFRACZ0=5., + LDSV=.FALSE., + / + &NAM_SURF_ATM + XRIMAX=0.2, + LNOSOF=.TRUE., + / + &NAM_SURF_CSTS + XZ0SN=0.01, + XZ0HSN=0.001, + XEMISSN=0.99, + / + &NAM_WRITE_DIAG_SURFN + LPROVAR_TO_DIAG=.FALSE., + LSELECT=.TRUE., +CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS', + / + &NAM_WRITE_SURF_ATM + LNOWRITE_TEXFILE=.TRUE., + / +FIN +/bin/cat EXSEG1.nam + +# ***************************************** +# * Acquisition du fichier de demarrage * +# ***************************************** + +echo +for hh in 0 1 2 3 4 5 6 ; do + N=`expr $hh / 1 ` + set -x + ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N} + set +x +done +set -x +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx +ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin . +ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim +ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx +ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025 +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat . +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat . +ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat . +set +x +tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz + +# *************** +# * Chargement * +# *************** + +echo +set -x +\ln -s $LOADIR/MASTERODB MASTER +set +x +if ldd MASTER | grep openmpi > /dev/null; then + #On est sur PC + MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}') + MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC" + GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1 + export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions + export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions +else + #On est sur HPC + #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD" + NNODES=$SLURM_JOB_NUM_NODES + MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES)) + MPI_TASKS=$SLURM_NTASKS + MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --" + export OMP_STACKSIZE=4G + export KMP_STACKSIZE=4G + export KMP_MONITOR_STACKSIZE=4G + export DR_HOOK=1 + export DR_HOOK_IGNORE_SIGNALS=-1 + export DR_HOOK_SILENT=1 + export DR_HOOK_SHOW_PROCESS_OPTIONS=0 + export MPL_MBX_SIZE=2048000000 + export EC_PROFILE_HEAP=0 + export EC_PROFILE_MEM=0 + export EC_MPI_ATEXIT=0 + export EC_MEMINFO=0 + export OPENBLAS_NUM_THREADS=1 + export MKL_CBWR="AUTO,STRICT" + export MKL_NUM_THREADS=1 + export MKL_DEBUG_CPU_TYPE=5 + export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions +fi +echo $MPIRUN +set +x +if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi + +# *************** +# * Execution * +# *************** + +echo +echo OMP_NUM_THREADS=$OMP_NUM_THREADS +set -x +ulimit -s unlimited +$MPIRUN $PWD/MASTER >lola +set +x +echo +##if [ -f lola ] ; then +## echo;echo Standard output :;echo;cat lola +##fi +##if [ -f stderr.* ] ; then +## for file in stderr.* ; do +## echo;echo $file :;cat $file +## done +##fi +##if [ -f stdout.* ] ; then +##echo;echo stdout :;echo;cat stdout.* +##fi +##if [ -a NODE.001_01 ] ; then +## for file in NODE* ; do +## echo;echo Listing $file;echo +## cat $file +## done +##fi +##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then +### Top 25 for each MPI task : +## for file in drhook.prof.* ; do +## echo;echo $file :;head -38 $file +## done +##fi +#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl + +# ******************* +# * Sauvegardes * +# ******************* + +ls +#if [ -f PFFPOS000+0000 ] ; then +# cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID +#fi +cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/ +/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001* +/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00* +/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz) + +# **************** +# * Epilogue * +# **************** + +ls -ltr | grep -v "\->" +echo Wait_queue : +ls -ltr $TMPWAIT +cd $TMPDIR +\rm -rf rundir.$$ +\rm -rf wait_queue.$$ +date +set +x diff --git a/tools/conf_tests/small_3D_alt4/aro48t3.sh b/tools/conf_tests/small_3D_alt4/aro48t3.sh new file mode 100755 index 0000000000000000000000000000000000000000..d74e8b71259c7858589b9a305517a8bebc18a924 --- /dev/null +++ b/tools/conf_tests/small_3D_alt4/aro48t3.sh @@ -0,0 +1,1207 @@ +#!/bin/bash +#SBATCH -n 4 +#SBATCH --mem=20000 +#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR +#SBATCH -t 00:10:00 +#SBATCH -N 1 +#SBATCH -p normal256 + +#The MYLIB varibale must contain the gmkpack pack name +#The TESTDIR variable must contain the test directory +#Results will be stored in the local directory + +#Other environment varaibles that can be set: +#OUTPUTDIR + +date + +OUTPUTDIR=${OUTPUTDIR:-$PWD} +case=riette2 +#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script +rekchemin=$TESTDIR + +NPROC=4 +NSTRIN=$NPROC +NSTROUT=1 +NPRTRW_NPRTRV="" +NPRTRW_NPRTRV=" NPRTRW=$NPROC, + NPRTRV=1," +export OMP_NUM_THREADS=1 + +#MYLIB=48t1_main.01%jpdup + +export DR_HOOK=1 +#export DR_HOOK_IGNORE_SIGNALS=-1 +export DR_HOOK_NOT_MPI=1 +export DR_HOOK_SILENT=1 +export DR_HOOK_OPT= + +export EC_PROFILE_HEAP=0 +export EC_PROFILE_MEM=0 +export EC_MPI_ATEXIT=0 +export DR_HOOK_SHOW_PROCESS_OPTIONS=0 +export EC_MEMINFO=0 +export TVSEARCHPATH=$SOURCE + +HOMEPACK=${HOMEPACK:=$HOME/pack} +SOURCE=$HOMEPACK/$MYLIB/src/local +LOADIR=$HOMEPACK/$MYLIB/bin + +TMPDIR=${TMPDIR:=$HOME/tmp} +TMPLOC=$TMPDIR/rundir.$$ +TMPWAIT=$TMPDIR/wait_queue.$$ +mkdir $TMPWAIT +mkdir $TMPLOC +cd $TMPLOC + +export RTTOV_COEFDIR=$PWD + +# ************************** +# * Saisie des NAMELISTS * +# ************************** + +CNMEXP='FPOS' + +echo +/bin/cat <<FIN > fort.4 + &NACIETEO + / + &NACOBS + / + &NACTAN + / + &NACTEX + / + &NACVEG + / + &NADOCK + / + &NAEAEM7 + / + &NAEAER + / + &NAECOAPHY + / + &NAEPHLI + / + &NAEPHY + / + &NAERAD + LRRTM=.TRUE., + LSRTM=.FALSE., + NAER=1, + NICEOPT=3, + NLIQOPT=3, + NOVLP=6, + NOZOCL=2, + NRADFR=18, + NRADIP=3, + NRADLP=2, + NSW=6, + RLWINHF=1, + RRE2DE=0.64952, + RSWINHF=1, + / + &NAERCLI + / + &NAEVOL + / + &NAIMPO + / + &NALORI + / + &NAMAFN + GFP_CLSG%CLNAME='SURFACCGRAUPEL', + GFP_CLSP%CLNAME='SURFACCPLUIE', + GFP_CLSS%CLNAME='SURFACCNEIGE', + GFP_SFIS%IBITS=16, + GFP_ST%CLNAME='SURFTEMPERATURE', + GFP_ST%IANO=0, + GFP_ST%IBITS=12, + GFP_X10U%CLNAME='CLSVENT.ZONAL', + GFP_X10U%IANO=0, + GFP_X10U%IBITS=12, + GFP_X10V%CLNAME='CLSVENT.MERIDIEN', + GFP_X10V%IANO=0, + GFP_X10V%IBITS=12, + GFP_X2RH%CLNAME='CLSHUMI.RELATIVE', + GFP_X2RH%IANO=0, + GFP_X2RH%IBITS=12, + GFP_X2T%CLNAME='CLSTEMPERATURE', + GFP_X2T%IANO=1, + GFP_XCCC%IBITS=8, + GFP_XHCC%IBITS=8, + GFP_XLCC%IBITS=8, + GFP_XLSG%CLNAME='SURFINSGRAUPEL', + GFP_XLSP%CLNAME='SURFINSPLUIE', + GFP_XLSS%CLNAME='SURFINSNEIGE', + GFP_XMCC%IBITS=8, + GFP_XN2T%IBITS=12, + GFP_XTCC%IBITS=8, + GFP_XUGST%CLNAME='CLSU.RAF60M.XFU', + GFP_XUGST%IANO=0, + GFP_XUGST%IBITS=12, + GFP_XVGST%CLNAME='CLSV.RAF60M.XFU', + GFP_XVGST%IANO=0, + GFP_XVGST%IBITS=12, + GFP_XX2T%IBITS=12, + GFP_XXDIAGH%IBITS=12, + TFP_ABS%ZFK=32., + TFP_CLF%IBITS=6, + TFP_EDR%CLNAME='EDR', + TFP_EDR%IBITS=16, + TFP_EDR%IGRIB=136, + TFP_GR%IBITS=12, + TFP_HL%IBITS=12, + TFP_HTB%IBITS=16, + TFP_HTB%LLGP=.TRUE., + TFP_HU%IBITS=12, + TFP_MSAT9C2%IBITS=12, + TFP_MSAT9C6%IBITS=12, + TFP_MSLNH%IBITS=12, + TFP_PV%ZFK=64., + TFP_RCLS%IBITS=12, + TFP_RR%IBITS=12, + TFP_SN%IBITS=12, + TFP_T%IBITS=12, + TFP_TCLS%IBITS=12, + TFP_TH%IBITS=12, + TFP_THPW%IBITS=12, + TFP_THV%IBITS=12, + TFP_TN%IBITS=12, + TFP_TWV%IBITS=12, + TFP_TX%IBITS=12, + TFP_U%IBITS=12, + TFP_V%IBITS=12, + TFP_VOR%ZFK=32., + TFP_VV%ZFK=32., + / + &NAMARG + CNMEXP='${CNMEXP}', + LECMWF=.FALSE., + LELAM=.TRUE., + LSLAG=.TRUE., + NCONF=1, + NSUPERSEDE=1, + / + &NAMARPHY + LKFBCONV=.FALSE., + LKFBD=.FALSE., + LKFBS=.FALSE., + LMFSHAL=.TRUE., + LMICRO=.TRUE., + LMPA=.TRUE., + LMSE=.TRUE., + LTURB=.TRUE., + / + &NAMCA + / + &NAMCAPE + / + &NAMCFU + LCUMFU=.TRUE., + LFPLS=.TRUE., + LFPLSG=.TRUE., + LFR=.TRUE., + LFRRC=.TRUE., + LFSF=.TRUE., + LNEBPAR=.TRUE., + LNEBTT=.TRUE., + LRAYD=.TRUE., + LRAYS=.TRUE., + / + &NAMCHEM + / + &NAMCHET + / + &NAMCHK + / + &NAMCLA + / + &NAMCLDP + / + &NAMCLI + / + &NAMCLOP15 + / + &NAMCLTC + / + &NAMCOK + / + &NAMCOM + / + &NAMCOSJO + / + &NAMCOUPLO4 + / + &NAMCT0 + CFPNCF='ECHFP', + CNPPATH=' ', + LAROME=.TRUE., + LNHEE=.TRUE., + LSCREEN_OPENMP=.FALSE., + LSPRT=.TRUE., + LTWOTL=.TRUE., + NFPOS=1, + NFRSDI=18, + NSDITS(0)=0, + NFRHIS=72, + NHISTS(0)=0, + NFRPOS=72, + NPOSTS(0)=0, + NFRSFXHIS=72, + NSFXHISTS(0)=0, + NFRDHFD=72, + NDHFDTS(0)=0, + / + &NAMCT1 + LRFILAF=.FALSE., + N1HIS=1, + N1POS=1, + N1RES=0, + N1SDI=1, + N1SFXHIS=1, + N1GDI=0, + / + &NAMCUMF + / + &NAMCUMFS + / + &NAMCVER + / + &NAMCVMNH + / + &NAMDDH + LDDH_OMP=.TRUE., + LHDDOP=.TRUE., + LHDHKS=.TRUE., + LHDEFD=.TRUE., + LFLEXDIA=.TRUE., + BDEDDH(1,1)=3, + BDEDDH(2,1)=1, + BDEDDH(3,1)=358.8 + BDEDDH(4,1)=45.1 + BDEDDH(5,1)=360.3 + BDEDDH(6,1)=44.5 + / + &NAMDFI + / + &NAMDIM + NPROMA=-50, + / + &NAMDIMO + / + &NAMDIM_TRAJ + / + &NAMDPHY + / + &NAMDPRECIPS + / + &NAMDYN + LADVF=.TRUE., + LQMPD=.FALSE., + LQMT=.FALSE., + LQMVD=.FALSE., + LRHDI_LASTITERPC=.TRUE., + NITMP=4, + NSITER=1, + NSPDLAG=3, + NSVDLAG=3, + NTLAG=3, + NVLAG=3, + NWLAG=3, + RDAMPDIV=20., + RDAMPPD=20., + RDAMPQ=0., + RDAMPT=0., + RDAMPVD=20., + RDAMPVOR=20., + REPS1=0., + REPS2=0., + REPSM1=0., + REPSM2=0., + REPSP1=0., + SDRED=1., + SIPR=90000., + SITR=350., + SITRA=100., + SLHDA0=0.25, + SLHDD00=0.000065, + VESL=0.05, + XIDT=0., + ZSLHDP1=1.7, + ZSLHDP3=0.6, + / + &NAMDYNA + LCOMADH=.TRUE., + LCOMADV=.FALSE., + LCOMAD_GFL=.TRUE., + LCOMAD_SP=.TRUE., + LCOMAD_SPD=.TRUE., + LCOMAD_SVD=.TRUE., + LCOMAD_T=.TRUE., + LCOMAD_W=.TRUE., + LGWADV=.TRUE., + LNESC=.TRUE., + LPC_CHEAP=.TRUE., + LPC_FULL=.TRUE., + LRDBBC=.FALSE., + LSETTLS=.FALSE., + LSETTLST=.TRUE., + LSLHD_GFL=.TRUE., + LSLHD_OLD=.FALSE., + LSLHD_SPD=.FALSE., + LSLHD_SVD=.FALSE., + LSLHD_T=.FALSE., + LSLHD_W=.FALSE., + ND4SYS=2, + NDLNPR=1, + NPDVAR=2, + NVDVAR=4, + SLHDEPSH=0.08, + SLHDKMAX=6, + / + &NAMDYNCORE + / + &NAMEMIS_CONF + / + &NAMENKF + / + &NAMFA + CMODEL='OUTPUTID', + LEXTERN=.TRUE., + LSUPPDATE=.FALSE., + NBITCS=-1, + NBITPG=-1, + NSTRON=-1, + / + &NAMFAINIT + JPXTRO=2000, + / + &NAMFPC + CFP2DF(1)='SURFPRESSION', + CFP2DF(2)='MSL_NHPRESSURE', + CFP2DF(3)='SURFTOT.WAT.VAPO', + CFP2DF(4)='SURFISOTPW0.MALT', + CFP2DF(5)='SURFCAPE.POS.F00', + CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS', + CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS', + CFP2DF(8)='SURFREFLECT.MAX', + CFP2DF(9)='SURFISOTPW1.MALT', + CFP2DF(10)='SURFISOTPW2.MALT', + CFP3DF(1)='GEOPOTENTIEL', + CFP3DF(2)='TEMPERATURE', + CFP3DF(3)='VENT_ZONAL', + CFP3DF(4)='VENT_MERIDIEN', + CFP3DF(5)='HUMI_RELATIVE', + CFP3DF(6)='THETA_PRIM_W', + CFP3DF(7)='PRESSURE', + CFP3DF(8)='ABS_VORTICITY', + CFP3DF(9)='VITESSE_VERTICALE', + CFP3DF(10)='TEMPE_POTENT', + CFP3DF(11)='POT_VORTICIT', + CFP3DF(12)='SIM_REFLECTI', + CFP3DF(13)='RAIN', + CFP3DF(14)='SNOW', + CFP3DF(15)='GRAUPEL', + CFP3DF(16)='ICE_CRYSTAL', + CFP3DF(17)='CLOUD_WATER', + CFP3DF(18)='VERT.VELOCIT', + CFP3DF(19)='DIVERGENCE', + CFP3DF(20)='THETA_VIRTUA', + CFP3DF(21)='TKE', + CFP3DF(22)='CLOUD_FRACTI', + CFP3DF(23)='ISOT_ALTIT', + CFP3DF(24)='EDR', + CFPCFU(1)='SURFTENS.TOTA.ZO', + CFPCFU(2)='SURFTENS.TOTA.ME', + CFPCFU(3)='SURFACCPLUIE', + CFPCFU(4)='SURFACCNEIGE', + CFPCFU(5)='SURFACCGRAUPEL', + CFPCFU(6)='SOMMFLU.RAY.SOLA', + CFPCFU(7)='SURFFLU.RAY.SOLA', + CFPCFU(8)='SOMMFLU.RAY.THER', + CFPCFU(9)='SURFFLU.RAY.THER', + CFPCFU(10)='SURFFLU.LAT.MTOT', + CFPCFU(11)='SURFFLU.MTOTA.NE', + CFPCFU(12)='SURFFLU.CHA.SENS', + CFPCFU(13)='SURFRAYT SOLA DE', + CFPCFU(14)='SURFRAYT THER DE', + CFPCFU(15)='SURFRAYT SOL CL', + CFPCFU(16)='SURFRAYT THER CL', + CFPCFU(17)='SURFRAYT DIR SUR', + CFPDOM(1)='FRANGP0025', + CFPFMT='LALON', + CFPPHY(1)='SURFTEMPERATURE', + CFPPHY(2)='INTSURFGEOPOTENT', + CFPPHY(3)='SURFRESERV.NEIGE', + CFPXFU(1)='CLSTEMPERATURE', + CFPXFU(2)='CLSHUMI.RELATIVE', + CFPXFU(3)='CLSVENT.ZONAL', + CFPXFU(4)='CLSVENT.MERIDIEN', + CFPXFU(5)='SURFNEBUL.TOTALE', + CFPXFU(6)='SURFNEBUL.HAUTE', + CFPXFU(7)='SURFNEBUL.MOYENN', + CFPXFU(8)='SURFNEBUL.BASSE', + CFPXFU(9)='CLSMAXI.TEMPERAT', + CFPXFU(10)='CLSMINI.TEMPERAT', + CFPXFU(11)='CLPMHAUT.MOD.XFU', + CFPXFU(12)='SURFDIAGHAIL', + LCRITSNOWTEMP=.FALSE., + LFPCAPEX=.TRUE., + LFPMOIS=.TRUE., + LFPPACKING=.FALSE., + LWIDER_DOM=.TRUE., + L_READ_MODEL_DATE=.TRUE., + NFITI=1, + NFITV=1, + NFPCAPE=5, + NFPCLI=1, + NFPGRIB=1, + NFPINPHY=4, + NITERPV=8, + RENTRA=0.0001, + RFP3H(1)=10., + RFP3H(2)=20., + RFP3H(3)=35., + RFP3H(4)=50., + RFP3H(5)=75., + RFP3H(6)=100., + RFP3H(7)=150., + RFP3H(8)=200., + RFP3H(9)=250., + RFP3H(10)=375., + RFP3H(11)=500., + RFP3H(12)=625., + RFP3H(13)=750., + RFP3H(14)=875., + RFP3H(15)=1000., + RFP3H(16)=1125., + RFP3H(17)=1250., + RFP3H(18)=1375., + RFP3H(19)=1500., + RFP3H(20)=1750., + RFP3H(21)=2000., + RFP3H(22)=2250., + RFP3H(23)=2500., + RFP3H(24)=2750., + RFP3H(25)=3000., + RFP3I(1)=-273.15, + RFP3I(2)=-263.15, + RFP3I(3)=-261.15, + RFP3I(4)=-253.15, + RFP3P(1)=10000., + RFP3P(2)=12500., + RFP3P(3)=15000., + RFP3P(4)=17500., + RFP3P(5)=20000., + RFP3P(6)=22500., + RFP3P(7)=25000., + RFP3P(8)=27500., + RFP3P(9)=30000., + RFP3P(10)=35000., + RFP3P(11)=40000., + RFP3P(12)=45000., + RFP3P(13)=50000., + RFP3P(14)=55000., + RFP3P(15)=60000., + RFP3P(16)=65000., + RFP3P(17)=70000., + RFP3P(18)=75000., + RFP3P(19)=80000., + RFP3P(20)=85000., + RFP3P(21)=90000., + RFP3P(22)=92500., + RFP3P(23)=95000., + RFP3P(24)=100000., + RFP3PV(1)=0.0000015, + RFP3PV(2)=0.000002, + RFPCD2=5., + RFPCSAB=50., + RFPVCAP=7000., + / + &NAMFPD + NLAT(1)=41, + NLON(1)=41, + RLONC(1)=-0.71, + RLATC(1)=44.8, + RDELX(1)=0.025, + RDELY(1)=0.025, + / + &NAMFPDY2 + / + &NAMFPDYF + / + &NAMFPDYH + / + &NAMFPDYI + / + &NAMFPDYP + / + &NAMFPDYS + / + &NAMFPDYT + / + &NAMFPDYV + / + &NAMFPF + NFMAX(1)=60, + NFMAX(2)=80, + / + &NAMFPG + NFPDISTRIB=1, + / + &NAMFPIOS + / + &NAMFPMOVE + / + &NAMFPPHY + / + &NAMFPSC2 + NFPROMA=-50, + / + &NAMFPSC2_DEP + NFPROMA_DEP=-50, + / + &NAMGEM + / + &NAMGFL + NGFL_EZDIAG=4, + YEZDIAG_NL(1)%CNAME='EZDIAG01', + YEZDIAG_NL(1)%LREQOUT=.FALSE., + YEZDIAG_NL(2)%CNAME='EZDIAG02', + YEZDIAG_NL(2)%LREQOUT=.FALSE., + YEZDIAG_NL(3)%CNAME='EZDIAG03', + YEZDIAG_NL(3)%LREQOUT=.FALSE., + YEZDIAG_NL(4)%CNAME='INPRRTOT3D', + YEZDIAG_NL(4)%LREQOUT=.TRUE., + YG_NL%LQM=.TRUE., + YG_NL%LSLHD=.TRUE., + YG_NL%NCOUPLING=-1, + YG_NL%NREQIN=1, + YG_NL%REFVALC=0., + YIRAD_NL%LGP=.TRUE., + YI_NL%LQM=.TRUE., + YI_NL%LSLHD=.TRUE., + YI_NL%NCOUPLING=-1, + YI_NL%NREQIN=1, + YI_NL%REFVALC=0., + YLRAD_NL%LGP=.TRUE., + YL_NL%LQM=.TRUE., + YL_NL%LSLHD=.TRUE., + YL_NL%NCOUPLING=-1, + YL_NL%NREQIN=1, + YL_NL%REFVALC=0., + YQ_NL%LCOMAD=.TRUE., + YQ_NL%LQM=.TRUE., + YQ_NL%LSLHD=.FALSE., + YQ_NL%NREQIN=1, + YR_NL%LQM=.TRUE., + YR_NL%LSLHD=.TRUE., + YR_NL%NCOUPLING=-1, + YR_NL%NREQIN=1, + YR_NL%REFVALC=0., + YS_NL%LQM=.TRUE., + YS_NL%LSLHD=.TRUE., + YS_NL%NCOUPLING=-1, + YS_NL%NREQIN=1, + YS_NL%REFVALC=0., + YTKE_NL%NCOUPLING=0, + YTKE_NL%NREQIN=1, + / + &NAMGRIB + / + &NAMGWD + / + &NAMGWDIAG + / + &NAMGWWMS + / + &NAMIAU + ALPHAIAU=0.5, + LIAU=.FALSE., + TSTARTIAU=1800, + TSTOPIAU=5340, + / + &NAMICE + / + &NAMINI + LDFI=.FALSE., + / + &NAMINTFLEX + / + &NAMIOMI + / + &NAMIOS + / + &NAMIO_SERV + NIO_SERV_BUF_MAXSIZE=20, + NIO_SERV_METHOD=2, + NMSG_LEVEL_CLIENT=0, + NMSG_LEVEL_SERVER=0, + NPROCESS_LEVEL=5, + NPROC_IO=0, + / + &NAMJBCODES + / + &NAMJFH + / + &NAMJG + / + &NAMLCZ + / + &NAMLSFORC + / + &NAMMARS + / + &NAMMCC + / + &NAMMCUF + / + &NAMMKODB + / + &NAMMODERR + / + &NAMMTS + / + &NAMMWAVE + / + &NAMNPROF + / + &NAMNUD + / + &NAMOBS + / + &NAMONEDVAR + / + &NAMOOPS + / + &NAMOPH + CFNHWF='ECHIS', + LINC=.TRUE., + NTIMEFMT=1, + / + &NAMOPTCMEM + / + &NAMPAR0 + LOPT_SCALAR=.TRUE., + NPRINTLEV=1, + LMPOFF=.FALSE., + MBX_SIZE=2048000000, + MP_TYPE=2, + NOUTPUT=1, + NPROC=$NPROC, +$NPRTRW_NPRTRV + / + &NAMPAR1 + LEQ_REGIONS=.FALSE., + LSLONDEM=.TRUE., + LSPLIT=.TRUE., + LSYNC_SLCOM=.FALSE., + LSYNC_TRANS=.FALSE., + L_GATHERV_WRGP=.FALSE., + NCOMBFLEN=1800000, + NSTRIN=$NSTRIN, + NSTROUT=$NSTROUT, + / + &NAMPARAR + CFRAC_ICE_ADJUST='T', + CFRAC_ICE_SHALLOW_MF='T', + CMICRO='ICE3', + CSEDIM='SPLI', + CSNOWRIMING='OLD', + LCONVHG=.TRUE., + LCRFLIMIT=.TRUE., + LCRIAUTI=.TRUE., + LEVLIMIT=.TRUE., + LFEEDBACKT=.TRUE., + LFPREC3D=.TRUE., + LNULLWETG=.TRUE., + LNULLWETH=.TRUE., + LOLSMC=.TRUE., + LOSEDIC=.TRUE., + LOSIGMAS=.TRUE., + LOSUBG_COND=.TRUE., + LSEDIM_AFTER=.TRUE., + LWETGPOST=.TRUE., + LWETHPOST=.TRUE., + NMAXITER_MICRO=10, + NPRINTFR=10000, + NPTP=1, + RCRIAUTC=0.001, + RCRIAUTI=0.0002, + RT0CRIAUTI=-5., + VSIGQSAT=0.02, + XFRACM90=0.1, + XMRSTEP=0.00005, + XSPLIT_MAXCFL=0.8, + XTSTEP_TS=25., + / + &NAMPHMSE + LPGDFWR=.FALSE., + / + &NAMPHY + LAERODES=.TRUE., + LAEROLAN=.TRUE., + LAEROSEA=.TRUE., + LAEROSOO=.TRUE., + LEDR=.TRUE., + LMPHYS=.TRUE., + LO3ABC=.TRUE., + LRAYFM=.TRUE., + / + &NAMPHY0 + ALMAV=300., + BEDIFV=0.05, + ECMNP=3000., + GCCSV=0., + GCVADS=0.8, + GCVALFA=0.000045, + GCVBETA=0.2, + GCVMLT=0.00016, + GCVNU=0.000025, + GCVPSI=1., + GCVPSIE=1., + GDDEVA=0.25, + GDDSDE=0.5, + GWDCD=6., + HUCOE=0.5, + HUTIL=1.8, + QSSC=400., + QSSUSC=0.75, + QSSUSS=0.4, + QSSUSV=250., + QSUSXC=0.0002, + QSUSXS=0.0003, + QXRAL=130., + QXRDEL=0.49, + QXRHX=0.99, + QXRR=0.25, + RCVEVAP=0.25, + REFLKUO=5000., + REVGSL=15., + SCO=-20., + TDDGP=0.8, + TENTR=0.0000025, + TENTRX=0.00008, + TUDGP=0.8, + UHDIFV=0.0008, + USURIC=0.175, + USURICE=0.5, + USURICL=1., + USURID=0.1, + USURIDE=0.25, + VZ0CM=0.00015, + XMAXLM=5000., + XMINLM=10., + / + &NAMPHY1 + ALBMIN=0.65, + ALCRIN=0.75, + GCGEL=0.00003, + GCGELS=0.00005, + GNEIMX=1.8, + GNEIMXS=1.8, + RCTVEG(3)=0.000012, + RCTVEG(4)=0.00001, + / + &NAMPHY2 + FACRAF=3.8, + HTKERAF=20., + LMULAF=.TRUE., + LRAFTKE=.TRUE., + LRAFTUR=.TRUE., + XDAMP=1., + XMULAF=-1.85, + / + &NAMPHY3 + / + &NAMPHYDS + / + &NAMPONG + / + &NAMPPC + / + &NAMPPVI + / + &NAMPRE + / + &NAMRAD15 + / + &NAMRADCMEM + / + &NAMRCF + / + &NAMRCOEF + / + &NAMRES + / + &NAMRGRI + / + &NAMRINC + / + &NAMRIP + TSTEP=50., + CSTOP='h2', + / + &NAMRIP0 + / + &NAMRLX + / + &NAMSATS + LPARTIAL_COEF_FILES=.TRUE., + / + &NAMSCC + / + &NAMSCEN + / + &NAMSCM + / + &NAMSEKF + / + &NAMSENS + / + &NAMSFXCMP + CFLDNAME(1)='????????????????', + NBBITS(1)=24, + / + &NAMSIMPHL + / + &NAMSPNG + / + &NAMSPSDT + / + &NAMSTA + / + &NAMSTOPH + / + &NAMSWE + / + &NAMTESTVAR + / + &NAMTHLIM + / + &NAMTOPH + ETCVIM=5000., + ETNEBU=5000., + ETPLUI=5000., + XDRMTK=6.0D-7, + XDRMTP=800., + XDRMUK=3.0D-7, + XDRMUP=800., + / + &NAMTRAJP + / + &NAMTRANS + / + &NAMTRANS0 + / + &NAMTS + / + &NAMVAR + / + &NAMVARBC + / + &NAMVARBC_AIREP + / + &NAMVARBC_ALLSKY + / + &NAMVARBC_GBRAD + / + &NAMVARBC_RAD + / + &NAMVARBC_SFCOBS + / + &NAMVARBC_TCWV + / + &NAMVARBC_TO3 + / + &NAMVAREPS + / + &NAMVDF + / + &NAMVDOZ + / + &NAMVOLCANO + / + &NAMVRTL + / + &NAMVV0 + / + &NAMVV1 + / + &NAMVWRK + / + &NAMWAVELETJB + / + &NAMXFU + LXCLP=.TRUE., + LXCLS=.TRUE., + LXFU=.TRUE., + LXNEBPA=.TRUE., + LXNEBTT=.TRUE., + LXNUVCLS=.TRUE., + LXPLS=.TRUE., + LXPLSG=.TRUE., + LXQCLS=.TRUE., + LXR=.TRUE., + LXSOIL=.FALSE., + LXTHW=.TRUE., + LXTRT=.TRUE., + LXTTCLS=.TRUE., + LXXDIAGH=.TRUE., + LXXGST=.TRUE., + NFRRAZ=72, + NRAZTS(0)=0, + / + &NAM_CANAPE + / + &NAM_DISTRIBUTED_VECTORS + / + &NAPHLC + / + &NEMCT0 + / + &NEMDIM + / + &NEMDYN + / + &NEMELBC0A + LESPCPL=.TRUE., + NBICNHX=2, + NBICOP=2, + NBICOT=2, + NBICOU=2, + NBICPD=2, + NBICVD=2, + NECRIPL=1, + / + &NEMELBC0B + NEFRSPCPL=1, + NEK0=20, + NEK1=30, + NEN1=4, + NEN2=8, + SPNUDDIV=0.01, + SPNUDQ=0., + SPNUDT=0.01, + SPNUDVOR=0.01, + TEFRCL=3600., + / + &NEMFPEZO + / + &NEMGEO + / + &NEMJK + / + &NEMVAR + / + &NEMWAVELET + / + &NAETLDIAG + / + &NAMMETHOX + / + &NAMSPP + / + &NAMACV + / + &NAMFPOBJ + / + &NAMNORGWD + / + &NAMTRAJ + / + &NAMSATSIM + / + &NAMDVISI + / + &NAMNUDGLH + / + &NAMPERTPAR + / +FIN +/bin/cat fort.4 + +/bin/cat <<FIN > EXSEG1.nam + &NAM_DIAG_ISBAN + LPGD=.TRUE., + LSURF_MISC_BUDGET=.TRUE., + / + &NAM_DIAG_SURFN + LCOEF=.TRUE., + LSURF_BUDGET=.TRUE., + N2M=2, + / + &NAM_ISBAN + CSCOND='NP89', + / + &NAM_REPROD_OPER + LREPROD_OPER=.TRUE., + / + &NAM_SEAFLUXN + CSEA_FLUX='ECUME', + LPWG=.FALSE., + LPRECIP=.FALSE., + LPWEBB=.FALSE., + / + &NAM_SSON + CROUGH='Z01D', + XFRACZ0=5., + LDSV=.FALSE., + / + &NAM_SURF_ATM + XRIMAX=0.2, + LNOSOF=.TRUE., + / + &NAM_SURF_CSTS + XZ0SN=0.01, + XZ0HSN=0.001, + XEMISSN=0.99, + / + &NAM_WRITE_DIAG_SURFN + LPROVAR_TO_DIAG=.FALSE., + LSELECT=.TRUE., +CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS', + / + &NAM_WRITE_SURF_ATM + LNOWRITE_TEXFILE=.TRUE., + / +FIN +/bin/cat EXSEG1.nam + +# ***************************************** +# * Acquisition du fichier de demarrage * +# ***************************************** + +echo +for hh in 0 1 2 3 4 5 6 ; do + N=`expr $hh / 1 ` + set -x + ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N} + set +x +done +set -x +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx +ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin . +ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim +ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx +ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025 +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat . +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat . +ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat . +set +x +tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz + +# *************** +# * Chargement * +# *************** + +echo +set -x +\ln -s $LOADIR/MASTERODB MASTER +set +x +if ldd MASTER | grep openmpi > /dev/null; then + #On est sur PC + MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}') + MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC" + GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1 + export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions + export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions +else + #On est sur HPC + #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD" + NNODES=$SLURM_JOB_NUM_NODES + MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES)) + MPI_TASKS=$SLURM_NTASKS + MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --" + export OMP_STACKSIZE=4G + export KMP_STACKSIZE=4G + export KMP_MONITOR_STACKSIZE=4G + export DR_HOOK=1 + export DR_HOOK_IGNORE_SIGNALS=-1 + export DR_HOOK_SILENT=1 + export DR_HOOK_SHOW_PROCESS_OPTIONS=0 + export MPL_MBX_SIZE=2048000000 + export EC_PROFILE_HEAP=0 + export EC_PROFILE_MEM=0 + export EC_MPI_ATEXIT=0 + export EC_MEMINFO=0 + export OPENBLAS_NUM_THREADS=1 + export MKL_CBWR="AUTO,STRICT" + export MKL_NUM_THREADS=1 + export MKL_DEBUG_CPU_TYPE=5 + export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions +fi +echo $MPIRUN +set +x +if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi + +# *************** +# * Execution * +# *************** + +echo +echo OMP_NUM_THREADS=$OMP_NUM_THREADS +set -x +ulimit -s unlimited +$MPIRUN $PWD/MASTER >lola +set +x +echo +##if [ -f lola ] ; then +## echo;echo Standard output :;echo;cat lola +##fi +##if [ -f stderr.* ] ; then +## for file in stderr.* ; do +## echo;echo $file :;cat $file +## done +##fi +##if [ -f stdout.* ] ; then +##echo;echo stdout :;echo;cat stdout.* +##fi +##if [ -a NODE.001_01 ] ; then +## for file in NODE* ; do +## echo;echo Listing $file;echo +## cat $file +## done +##fi +##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then +### Top 25 for each MPI task : +## for file in drhook.prof.* ; do +## echo;echo $file :;head -38 $file +## done +##fi +#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl + +# ******************* +# * Sauvegardes * +# ******************* + +ls +#if [ -f PFFPOS000+0000 ] ; then +# cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID +#fi +cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/ +/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001* +/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00* +/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz) + +# **************** +# * Epilogue * +# **************** + +ls -ltr | grep -v "\->" +echo Wait_queue : +ls -ltr $TMPWAIT +cd $TMPDIR +\rm -rf rundir.$$ +\rm -rf wait_queue.$$ +date +set +x diff --git a/tools/conf_tests/small_3D_alt5/aro48t3.sh b/tools/conf_tests/small_3D_alt5/aro48t3.sh new file mode 100755 index 0000000000000000000000000000000000000000..9ca429fc39c97e4db7cd5077916c99b9abf30900 --- /dev/null +++ b/tools/conf_tests/small_3D_alt5/aro48t3.sh @@ -0,0 +1,1219 @@ +#!/bin/bash +#SBATCH -n 4 +#SBATCH --mem=20000 +#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR +#SBATCH -t 00:10:00 +#SBATCH -N 1 +#SBATCH -p normal256 + +#The MYLIB varibale must contain the gmkpack pack name +#The TESTDIR variable must contain the test directory +#Results will be stored in the local directory + +#Other environment varaibles that can be set: +#OUTPUTDIR + +date + +OUTPUTDIR=${OUTPUTDIR:-$PWD} +case=riette2 +#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script +rekchemin=$TESTDIR + +NPROC=4 +NSTRIN=$NPROC +NSTROUT=1 +NPRTRW_NPRTRV="" +NPRTRW_NPRTRV=" NPRTRW=$NPROC, + NPRTRV=1," +export OMP_NUM_THREADS=1 + +#MYLIB=48t1_main.01%jpdup + +export DR_HOOK=1 +#export DR_HOOK_IGNORE_SIGNALS=-1 +export DR_HOOK_NOT_MPI=1 +export DR_HOOK_SILENT=1 +export DR_HOOK_OPT= + +export EC_PROFILE_HEAP=0 +export EC_PROFILE_MEM=0 +export EC_MPI_ATEXIT=0 +export DR_HOOK_SHOW_PROCESS_OPTIONS=0 +export EC_MEMINFO=0 +export TVSEARCHPATH=$SOURCE + +HOMEPACK=${HOMEPACK:=$HOME/pack} +SOURCE=$HOMEPACK/$MYLIB/src/local +LOADIR=$HOMEPACK/$MYLIB/bin + +TMPDIR=${TMPDIR:=$HOME/tmp} +TMPLOC=$TMPDIR/rundir.$$ +TMPWAIT=$TMPDIR/wait_queue.$$ +mkdir $TMPWAIT +mkdir $TMPLOC +cd $TMPLOC + +export RTTOV_COEFDIR=$PWD + +# ************************** +# * Saisie des NAMELISTS * +# ************************** + +CNMEXP='FPOS' + +echo +/bin/cat <<FIN > fort.4 + &NACIETEO + / + &NACOBS + / + &NACTAN + / + &NACTEX + / + &NACVEG + / + &NADOCK + / + &NAEAEM7 + / + &NAEAER + / + &NAECOAPHY + / + &NAEPHLI + / + &NAEPHY + / + &NAERAD + LRRTM=.TRUE., + LSRTM=.FALSE., + NAER=1, + NICEOPT=3, + NLIQOPT=3, + NOVLP=6, + NOZOCL=2, + NRADFR=18, + NRADIP=3, + NRADLP=2, + NSW=6, + RLWINHF=1, + RRE2DE=0.64952, + RSWINHF=1, + / + &NAERCLI + / + &NAEVOL + / + &NAIMPO + / + &NALORI + / + &NAMAFN + GFP_CLSH%CLNAME='SURFACCGREL2', + GFP_XLSH%CLNAME='SURFINSGREL2', + GFP_CLSG%CLNAME='SURFACCGRAUPEL', + GFP_CLSP%CLNAME='SURFACCPLUIE', + GFP_CLSS%CLNAME='SURFACCNEIGE', + GFP_SFIS%IBITS=16, + GFP_ST%CLNAME='SURFTEMPERATURE', + GFP_ST%IANO=0, + GFP_ST%IBITS=12, + GFP_X10U%CLNAME='CLSVENT.ZONAL', + GFP_X10U%IANO=0, + GFP_X10U%IBITS=12, + GFP_X10V%CLNAME='CLSVENT.MERIDIEN', + GFP_X10V%IANO=0, + GFP_X10V%IBITS=12, + GFP_X2RH%CLNAME='CLSHUMI.RELATIVE', + GFP_X2RH%IANO=0, + GFP_X2RH%IBITS=12, + GFP_X2T%CLNAME='CLSTEMPERATURE', + GFP_X2T%IANO=1, + GFP_XCCC%IBITS=8, + GFP_XHCC%IBITS=8, + GFP_XLCC%IBITS=8, + GFP_XLSG%CLNAME='SURFINSGRAUPEL', + GFP_XLSP%CLNAME='SURFINSPLUIE', + GFP_XLSS%CLNAME='SURFINSNEIGE', + GFP_XMCC%IBITS=8, + GFP_XN2T%IBITS=12, + GFP_XTCC%IBITS=8, + GFP_XUGST%CLNAME='CLSU.RAF60M.XFU', + GFP_XUGST%IANO=0, + GFP_XUGST%IBITS=12, + GFP_XVGST%CLNAME='CLSV.RAF60M.XFU', + GFP_XVGST%IANO=0, + GFP_XVGST%IBITS=12, + GFP_XX2T%IBITS=12, + GFP_XXDIAGH%IBITS=12, + TFP_ABS%ZFK=32., + TFP_CLF%IBITS=6, + TFP_EDR%CLNAME='EDR', + TFP_EDR%IBITS=16, + TFP_EDR%IGRIB=136, + TFP_GR%IBITS=12, + TFP_HL%IBITS=12, + TFP_HTB%IBITS=16, + TFP_HTB%LLGP=.TRUE., + TFP_HU%IBITS=12, + TFP_MSAT9C2%IBITS=12, + TFP_MSAT9C6%IBITS=12, + TFP_MSLNH%IBITS=12, + TFP_PV%ZFK=64., + TFP_RCLS%IBITS=12, + TFP_RR%IBITS=12, + TFP_SN%IBITS=12, + TFP_T%IBITS=12, + TFP_TCLS%IBITS=12, + TFP_TH%IBITS=12, + TFP_THPW%IBITS=12, + TFP_THV%IBITS=12, + TFP_TN%IBITS=12, + TFP_TWV%IBITS=12, + TFP_TX%IBITS=12, + TFP_U%IBITS=12, + TFP_V%IBITS=12, + TFP_VOR%ZFK=32., + TFP_VV%ZFK=32., + / + &NAMARG + CNMEXP='${CNMEXP}', + LECMWF=.FALSE., + LELAM=.TRUE., + LSLAG=.TRUE., + NCONF=1, + NSUPERSEDE=1, + / + &NAMARPHY + LKFBCONV=.FALSE., + LKFBD=.FALSE., + LKFBS=.FALSE., + LMFSHAL=.TRUE., + LMICRO=.TRUE., + LMPA=.TRUE., + LMSE=.TRUE., + LTURB=.TRUE., + / + &NAMCA + / + &NAMCAPE + / + &NAMCFU + LCUMFU=.TRUE., + LFPLS=.TRUE., + LFPLSG=.TRUE., + LFPLSH=.TRUE., + LFR=.TRUE., + LFRRC=.TRUE., + LFSF=.TRUE., + LNEBPAR=.TRUE., + LNEBTT=.TRUE., + LRAYD=.TRUE., + LRAYS=.TRUE., + / + &NAMCHEM + / + &NAMCHET + / + &NAMCHK + / + &NAMCLA + / + &NAMCLDP + / + &NAMCLI + / + &NAMCLOP15 + / + &NAMCLTC + / + &NAMCOK + / + &NAMCOM + / + &NAMCOSJO + / + &NAMCOUPLO4 + / + &NAMCT0 + CFPNCF='ECHFP', + CNPPATH=' ', + LAROME=.TRUE., + LNHEE=.TRUE., + LSCREEN_OPENMP=.FALSE., + LSPRT=.TRUE., + LTWOTL=.TRUE., + NFPOS=1, + NFRSDI=18, + NSDITS(0)=0, + NFRHIS=72, + NHISTS(0)=0, + NFRPOS=72, + NPOSTS(0)=0, + NFRSFXHIS=72, + NSFXHISTS(0)=0, + NFRDHFD=72, + NDHFDTS(0)=0, + / + &NAMCT1 + LRFILAF=.FALSE., + N1HIS=1, + N1POS=1, + N1RES=0, + N1SDI=1, + N1SFXHIS=1, + N1GDI=0, + / + &NAMCUMF + / + &NAMCUMFS + / + &NAMCVER + / + &NAMCVMNH + / + &NAMDDH + LDDH_OMP=.TRUE., + LHDDOP=.TRUE., + LHDHKS=.TRUE., + LHDEFD=.TRUE., + LFLEXDIA=.TRUE., + BDEDDH(1,1)=3, + BDEDDH(2,1)=1, + BDEDDH(3,1)=358.8 + BDEDDH(4,1)=45.1 + BDEDDH(5,1)=360.3 + BDEDDH(6,1)=44.5 + / + &NAMDFI + / + &NAMDIM + NPROMA=-50, + / + &NAMDIMO + / + &NAMDIM_TRAJ + / + &NAMDPHY + / + &NAMDPRECIPS + / + &NAMDYN + LADVF=.TRUE., + LQMPD=.FALSE., + LQMT=.FALSE., + LQMVD=.FALSE., + LRHDI_LASTITERPC=.TRUE., + NITMP=4, + NSITER=1, + NSPDLAG=3, + NSVDLAG=3, + NTLAG=3, + NVLAG=3, + NWLAG=3, + RDAMPDIV=20., + RDAMPPD=20., + RDAMPQ=0., + RDAMPT=0., + RDAMPVD=20., + RDAMPVOR=20., + REPS1=0., + REPS2=0., + REPSM1=0., + REPSM2=0., + REPSP1=0., + SDRED=1., + SIPR=90000., + SITR=350., + SITRA=100., + SLHDA0=0.25, + SLHDD00=0.000065, + VESL=0.05, + XIDT=0., + ZSLHDP1=1.7, + ZSLHDP3=0.6, + / + &NAMDYNA + LCOMADH=.TRUE., + LCOMADV=.FALSE., + LCOMAD_GFL=.TRUE., + LCOMAD_SP=.TRUE., + LCOMAD_SPD=.TRUE., + LCOMAD_SVD=.TRUE., + LCOMAD_T=.TRUE., + LCOMAD_W=.TRUE., + LGWADV=.TRUE., + LNESC=.TRUE., + LPC_CHEAP=.TRUE., + LPC_FULL=.TRUE., + LRDBBC=.FALSE., + LSETTLS=.FALSE., + LSETTLST=.TRUE., + LSLHD_GFL=.TRUE., + LSLHD_OLD=.FALSE., + LSLHD_SPD=.FALSE., + LSLHD_SVD=.FALSE., + LSLHD_T=.FALSE., + LSLHD_W=.FALSE., + ND4SYS=2, + NDLNPR=1, + NPDVAR=2, + NVDVAR=4, + SLHDEPSH=0.08, + SLHDKMAX=6, + / + &NAMDYNCORE + / + &NAMEMIS_CONF + / + &NAMENKF + / + &NAMFA + CMODEL='OUTPUTID', + LEXTERN=.TRUE., + LSUPPDATE=.FALSE., + NBITCS=-1, + NBITPG=-1, + NSTRON=-1, + / + &NAMFAINIT + JPXTRO=2000, + / + &NAMFPC + CFP2DF(1)='SURFPRESSION', + CFP2DF(2)='MSL_NHPRESSURE', + CFP2DF(3)='SURFTOT.WAT.VAPO', + CFP2DF(4)='SURFISOTPW0.MALT', + CFP2DF(5)='SURFCAPE.POS.F00', + CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS', + CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS', + CFP2DF(8)='SURFREFLECT.MAX', + CFP2DF(9)='SURFISOTPW1.MALT', + CFP2DF(10)='SURFISOTPW2.MALT', + CFP3DF(1)='GEOPOTENTIEL', + CFP3DF(2)='TEMPERATURE', + CFP3DF(3)='VENT_ZONAL', + CFP3DF(4)='VENT_MERIDIEN', + CFP3DF(5)='HUMI_RELATIVE', + CFP3DF(6)='THETA_PRIM_W', + CFP3DF(7)='PRESSURE', + CFP3DF(8)='ABS_VORTICITY', + CFP3DF(9)='VITESSE_VERTICALE', + CFP3DF(10)='TEMPE_POTENT', + CFP3DF(11)='POT_VORTICIT', + CFP3DF(12)='SIM_REFLECTI', + CFP3DF(13)='RAIN', + CFP3DF(14)='SNOW', + CFP3DF(15)='GRAUPEL', + CFP3DF(16)='ICE_CRYSTAL', + CFP3DF(17)='CLOUD_WATER', + CFP3DF(18)='VERT.VELOCIT', + CFP3DF(19)='DIVERGENCE', + CFP3DF(20)='THETA_VIRTUA', + CFP3DF(21)='TKE', + CFP3DF(22)='CLOUD_FRACTI', + CFP3DF(23)='ISOT_ALTIT', + CFP3DF(24)='EDR', + CFPCFU(1)='SURFTENS.TOTA.ZO', + CFPCFU(2)='SURFTENS.TOTA.ME', + CFPCFU(3)='SURFACCPLUIE', + CFPCFU(4)='SURFACCNEIGE', + CFPCFU(5)='SURFACCGRAUPEL', + CFPCFU(6)='SOMMFLU.RAY.SOLA', + CFPCFU(7)='SURFFLU.RAY.SOLA', + CFPCFU(8)='SOMMFLU.RAY.THER', + CFPCFU(9)='SURFFLU.RAY.THER', + CFPCFU(10)='SURFFLU.LAT.MTOT', + CFPCFU(11)='SURFFLU.MTOTA.NE', + CFPCFU(12)='SURFFLU.CHA.SENS', + CFPCFU(13)='SURFRAYT SOLA DE', + CFPCFU(14)='SURFRAYT THER DE', + CFPCFU(15)='SURFRAYT SOL CL', + CFPCFU(16)='SURFRAYT THER CL', + CFPCFU(17)='SURFRAYT DIR SUR', + CFPDOM(1)='FRANGP0025', + CFPFMT='LALON', + CFPPHY(1)='SURFTEMPERATURE', + CFPPHY(2)='INTSURFGEOPOTENT', + CFPPHY(3)='SURFRESERV.NEIGE', + CFPXFU(1)='CLSTEMPERATURE', + CFPXFU(2)='CLSHUMI.RELATIVE', + CFPXFU(3)='CLSVENT.ZONAL', + CFPXFU(4)='CLSVENT.MERIDIEN', + CFPXFU(5)='SURFNEBUL.TOTALE', + CFPXFU(6)='SURFNEBUL.HAUTE', + CFPXFU(7)='SURFNEBUL.MOYENN', + CFPXFU(8)='SURFNEBUL.BASSE', + CFPXFU(9)='CLSMAXI.TEMPERAT', + CFPXFU(10)='CLSMINI.TEMPERAT', + CFPXFU(11)='CLPMHAUT.MOD.XFU', + CFPXFU(12)='SURFDIAGHAIL', + LCRITSNOWTEMP=.FALSE., + LFPCAPEX=.TRUE., + LFPMOIS=.TRUE., + LFPPACKING=.FALSE., + LWIDER_DOM=.TRUE., + L_READ_MODEL_DATE=.TRUE., + NFITI=1, + NFITV=1, + NFPCAPE=5, + NFPCLI=1, + NFPGRIB=1, + NFPINPHY=4, + NITERPV=8, + RENTRA=0.0001, + RFP3H(1)=10., + RFP3H(2)=20., + RFP3H(3)=35., + RFP3H(4)=50., + RFP3H(5)=75., + RFP3H(6)=100., + RFP3H(7)=150., + RFP3H(8)=200., + RFP3H(9)=250., + RFP3H(10)=375., + RFP3H(11)=500., + RFP3H(12)=625., + RFP3H(13)=750., + RFP3H(14)=875., + RFP3H(15)=1000., + RFP3H(16)=1125., + RFP3H(17)=1250., + RFP3H(18)=1375., + RFP3H(19)=1500., + RFP3H(20)=1750., + RFP3H(21)=2000., + RFP3H(22)=2250., + RFP3H(23)=2500., + RFP3H(24)=2750., + RFP3H(25)=3000., + RFP3I(1)=-273.15, + RFP3I(2)=-263.15, + RFP3I(3)=-261.15, + RFP3I(4)=-253.15, + RFP3P(1)=10000., + RFP3P(2)=12500., + RFP3P(3)=15000., + RFP3P(4)=17500., + RFP3P(5)=20000., + RFP3P(6)=22500., + RFP3P(7)=25000., + RFP3P(8)=27500., + RFP3P(9)=30000., + RFP3P(10)=35000., + RFP3P(11)=40000., + RFP3P(12)=45000., + RFP3P(13)=50000., + RFP3P(14)=55000., + RFP3P(15)=60000., + RFP3P(16)=65000., + RFP3P(17)=70000., + RFP3P(18)=75000., + RFP3P(19)=80000., + RFP3P(20)=85000., + RFP3P(21)=90000., + RFP3P(22)=92500., + RFP3P(23)=95000., + RFP3P(24)=100000., + RFP3PV(1)=0.0000015, + RFP3PV(2)=0.000002, + RFPCD2=5., + RFPCSAB=50., + RFPVCAP=7000., + / + &NAMFPD + NLAT(1)=41, + NLON(1)=41, + RLONC(1)=-0.71, + RLATC(1)=44.8, + RDELX(1)=0.025, + RDELY(1)=0.025, + / + &NAMFPDY2 + / + &NAMFPDYF + / + &NAMFPDYH + / + &NAMFPDYI + / + &NAMFPDYP + / + &NAMFPDYS + / + &NAMFPDYT + / + &NAMFPDYV + / + &NAMFPF + NFMAX(1)=60, + NFMAX(2)=80, + / + &NAMFPG + NFPDISTRIB=1, + / + &NAMFPIOS + / + &NAMFPMOVE + / + &NAMFPPHY + / + &NAMFPSC2 + NFPROMA=-50, + / + &NAMFPSC2_DEP + NFPROMA_DEP=-50, + / + &NAMGEM + / + &NAMGFL + NGFL_EZDIAG=4, + YEZDIAG_NL(1)%CNAME='EZDIAG01', + YEZDIAG_NL(1)%LREQOUT=.FALSE., + YEZDIAG_NL(2)%CNAME='EZDIAG02', + YEZDIAG_NL(2)%LREQOUT=.FALSE., + YEZDIAG_NL(3)%CNAME='EZDIAG03', + YEZDIAG_NL(3)%LREQOUT=.FALSE., + YEZDIAG_NL(4)%CNAME='INPRRTOT3D', + YEZDIAG_NL(4)%LREQOUT=.TRUE., + YG_NL%LQM=.TRUE., + YG_NL%LSLHD=.TRUE., + YG_NL%NCOUPLING=-1, + YG_NL%NREQIN=1, + YG_NL%REFVALC=0., + YH_NL%LGP=.TRUE., + YH_NL%NREQIN=0, + YH_NL%NCOUPLING=-1, + YH_NL%REFVALC=0., + YH_NL%LPT=.FALSE., + YH_NL%LREQOUT=.TRUE., + YH_NL%LQM=.TRUE., + YH_NL%LSLHD=.FALSE., + YIRAD_NL%LGP=.TRUE., + YI_NL%LQM=.TRUE., + YI_NL%LSLHD=.TRUE., + YI_NL%NCOUPLING=-1, + YI_NL%NREQIN=1, + YI_NL%REFVALC=0., + YLRAD_NL%LGP=.TRUE., + YL_NL%LQM=.TRUE., + YL_NL%LSLHD=.TRUE., + YL_NL%NCOUPLING=-1, + YL_NL%NREQIN=1, + YL_NL%REFVALC=0., + YQ_NL%LCOMAD=.TRUE., + YQ_NL%LQM=.TRUE., + YQ_NL%LSLHD=.FALSE., + YQ_NL%NREQIN=1, + YR_NL%LQM=.TRUE., + YR_NL%LSLHD=.TRUE., + YR_NL%NCOUPLING=-1, + YR_NL%NREQIN=1, + YR_NL%REFVALC=0., + YS_NL%LQM=.TRUE., + YS_NL%LSLHD=.TRUE., + YS_NL%NCOUPLING=-1, + YS_NL%NREQIN=1, + YS_NL%REFVALC=0., + YTKE_NL%NCOUPLING=0, + YTKE_NL%NREQIN=1, + / + &NAMGRIB + / + &NAMGWD + / + &NAMGWDIAG + / + &NAMGWWMS + / + &NAMIAU + ALPHAIAU=0.5, + LIAU=.FALSE., + TSTARTIAU=1800, + TSTOPIAU=5340, + / + &NAMICE + / + &NAMINI + LDFI=.FALSE., + / + &NAMINTFLEX + / + &NAMIOMI + / + &NAMIOS + / + &NAMIO_SERV + NIO_SERV_BUF_MAXSIZE=20, + NIO_SERV_METHOD=2, + NMSG_LEVEL_CLIENT=0, + NMSG_LEVEL_SERVER=0, + NPROCESS_LEVEL=5, + NPROC_IO=0, + / + &NAMJBCODES + / + &NAMJFH + / + &NAMJG + / + &NAMLCZ + / + &NAMLSFORC + / + &NAMMARS + / + &NAMMCC + / + &NAMMCUF + / + &NAMMKODB + / + &NAMMODERR + / + &NAMMTS + / + &NAMMWAVE + / + &NAMNPROF + / + &NAMNUD + / + &NAMOBS + / + &NAMONEDVAR + / + &NAMOOPS + / + &NAMOPH + CFNHWF='ECHIS', + LINC=.TRUE., + NTIMEFMT=1, + / + &NAMOPTCMEM + / + &NAMPAR0 + LOPT_SCALAR=.TRUE., + NPRINTLEV=1, + LMPOFF=.FALSE., + MBX_SIZE=2048000000, + MP_TYPE=2, + NOUTPUT=1, + NPROC=$NPROC, +$NPRTRW_NPRTRV + / + &NAMPAR1 + LEQ_REGIONS=.FALSE., + LSLONDEM=.TRUE., + LSPLIT=.TRUE., + LSYNC_SLCOM=.FALSE., + LSYNC_TRANS=.FALSE., + L_GATHERV_WRGP=.FALSE., + NCOMBFLEN=1800000, + NSTRIN=$NSTRIN, + NSTROUT=$NSTROUT, + / + &NAMPARAR + CFRAC_ICE_ADJUST='S', + CFRAC_ICE_SHALLOW_MF='S', + CMICRO='ICE4', + CSEDIM='STAT', + CSNOWRIMING='M90', + LCONVHG=.TRUE., + LCRFLIMIT=.TRUE., + LCRIAUTI=.TRUE., + LEVLIMIT=.TRUE., + LFEEDBACKT=.TRUE., + LFPREC3D=.TRUE., + LNULLWETG=.TRUE., + LNULLWETH=.TRUE., + LOLSMC=.TRUE., + LOSEDIC=.TRUE., + LOSIGMAS=.TRUE., + LOSUBG_COND=.TRUE., + LSEDIM_AFTER=.FALSE., + LWETGPOST=.TRUE., + LWETHPOST=.TRUE., + NMAXITER_MICRO=1, + NPRINTFR=10000, + NPTP=1, + RCRIAUTC=0.001, + RCRIAUTI=0.0002, + RT0CRIAUTI=-5., + VSIGQSAT=0.02, + XFRACM90=0.1, + XMRSTEP=0.00005, + XSPLIT_MAXCFL=0.8, + XTSTEP_TS=0., + / + &NAMPHMSE + LPGDFWR=.FALSE., + / + &NAMPHY + LAERODES=.TRUE., + LAEROLAN=.TRUE., + LAEROSEA=.TRUE., + LAEROSOO=.TRUE., + LEDR=.TRUE., + LMPHYS=.TRUE., + LO3ABC=.TRUE., + LRAYFM=.TRUE., + / + &NAMPHY0 + ALMAV=300., + BEDIFV=0.05, + ECMNP=3000., + GCCSV=0., + GCVADS=0.8, + GCVALFA=0.000045, + GCVBETA=0.2, + GCVMLT=0.00016, + GCVNU=0.000025, + GCVPSI=1., + GCVPSIE=1., + GDDEVA=0.25, + GDDSDE=0.5, + GWDCD=6., + HUCOE=0.5, + HUTIL=1.8, + QSSC=400., + QSSUSC=0.75, + QSSUSS=0.4, + QSSUSV=250., + QSUSXC=0.0002, + QSUSXS=0.0003, + QXRAL=130., + QXRDEL=0.49, + QXRHX=0.99, + QXRR=0.25, + RCVEVAP=0.25, + REFLKUO=5000., + REVGSL=15., + SCO=-20., + TDDGP=0.8, + TENTR=0.0000025, + TENTRX=0.00008, + TUDGP=0.8, + UHDIFV=0.0008, + USURIC=0.175, + USURICE=0.5, + USURICL=1., + USURID=0.1, + USURIDE=0.25, + VZ0CM=0.00015, + XMAXLM=5000., + XMINLM=10., + / + &NAMPHY1 + ALBMIN=0.65, + ALCRIN=0.75, + GCGEL=0.00003, + GCGELS=0.00005, + GNEIMX=1.8, + GNEIMXS=1.8, + RCTVEG(3)=0.000012, + RCTVEG(4)=0.00001, + / + &NAMPHY2 + FACRAF=3.8, + HTKERAF=20., + LMULAF=.TRUE., + LRAFTKE=.TRUE., + LRAFTUR=.TRUE., + XDAMP=1., + XMULAF=-1.85, + / + &NAMPHY3 + / + &NAMPHYDS + / + &NAMPONG + / + &NAMPPC + / + &NAMPPVI + / + &NAMPRE + / + &NAMRAD15 + / + &NAMRADCMEM + / + &NAMRCF + / + &NAMRCOEF + / + &NAMRES + / + &NAMRGRI + / + &NAMRINC + / + &NAMRIP + TSTEP=50., + CSTOP='h2', + / + &NAMRIP0 + / + &NAMRLX + / + &NAMSATS + LPARTIAL_COEF_FILES=.TRUE., + / + &NAMSCC + / + &NAMSCEN + / + &NAMSCM + / + &NAMSEKF + / + &NAMSENS + / + &NAMSFXCMP + CFLDNAME(1)='????????????????', + NBBITS(1)=24, + / + &NAMSIMPHL + / + &NAMSPNG + / + &NAMSPSDT + / + &NAMSTA + / + &NAMSTOPH + / + &NAMSWE + / + &NAMTESTVAR + / + &NAMTHLIM + / + &NAMTOPH + ETCVIM=5000., + ETNEBU=5000., + ETPLUI=5000., + XDRMTK=6.0D-7, + XDRMTP=800., + XDRMUK=3.0D-7, + XDRMUP=800., + / + &NAMTRAJP + / + &NAMTRANS + / + &NAMTRANS0 + / + &NAMTS + / + &NAMVAR + / + &NAMVARBC + / + &NAMVARBC_AIREP + / + &NAMVARBC_ALLSKY + / + &NAMVARBC_GBRAD + / + &NAMVARBC_RAD + / + &NAMVARBC_SFCOBS + / + &NAMVARBC_TCWV + / + &NAMVARBC_TO3 + / + &NAMVAREPS + / + &NAMVDF + / + &NAMVDOZ + / + &NAMVOLCANO + / + &NAMVRTL + / + &NAMVV0 + / + &NAMVV1 + / + &NAMVWRK + / + &NAMWAVELETJB + / + &NAMXFU + LXCLP=.TRUE., + LXCLS=.TRUE., + LXFU=.TRUE., + LXNEBPA=.TRUE., + LXNEBTT=.TRUE., + LXNUVCLS=.TRUE., + LXPLS=.TRUE., + LXPLSG=.TRUE., + LXPLSH=.TRUE., + LXQCLS=.TRUE., + LXR=.TRUE., + LXSOIL=.FALSE., + LXTHW=.TRUE., + LXTRT=.TRUE., + LXTTCLS=.TRUE., + LXXDIAGH=.TRUE., + LXXGST=.TRUE., + NFRRAZ=72, + NRAZTS(0)=0, + / + &NAM_CANAPE + / + &NAM_DISTRIBUTED_VECTORS + / + &NAPHLC + / + &NEMCT0 + / + &NEMDIM + / + &NEMDYN + / + &NEMELBC0A + LESPCPL=.TRUE., + NBICNHX=2, + NBICOP=2, + NBICOT=2, + NBICOU=2, + NBICPD=2, + NBICVD=2, + NECRIPL=1, + / + &NEMELBC0B + NEFRSPCPL=1, + NEK0=20, + NEK1=30, + NEN1=4, + NEN2=8, + SPNUDDIV=0.01, + SPNUDQ=0., + SPNUDT=0.01, + SPNUDVOR=0.01, + TEFRCL=3600., + / + &NEMFPEZO + / + &NEMGEO + / + &NEMJK + / + &NEMVAR + / + &NEMWAVELET + / + &NAETLDIAG + / + &NAMMETHOX + / + &NAMSPP + / + &NAMACV + / + &NAMFPOBJ + / + &NAMNORGWD + / + &NAMTRAJ + / + &NAMSATSIM + / + &NAMDVISI + / + &NAMNUDGLH + / + &NAMPERTPAR + / +FIN +/bin/cat fort.4 + +/bin/cat <<FIN > EXSEG1.nam + &NAM_DIAG_ISBAN + LPGD=.TRUE., + LSURF_MISC_BUDGET=.TRUE., + / + &NAM_DIAG_SURFN + LCOEF=.TRUE., + LSURF_BUDGET=.TRUE., + N2M=2, + / + &NAM_ISBAN + CSCOND='NP89', + / + &NAM_REPROD_OPER + LREPROD_OPER=.TRUE., + / + &NAM_SEAFLUXN + CSEA_FLUX='ECUME', + LPWG=.FALSE., + LPRECIP=.FALSE., + LPWEBB=.FALSE., + / + &NAM_SSON + CROUGH='Z01D', + XFRACZ0=5., + LDSV=.FALSE., + / + &NAM_SURF_ATM + XRIMAX=0.2, + LNOSOF=.TRUE., + / + &NAM_SURF_CSTS + XZ0SN=0.01, + XZ0HSN=0.001, + XEMISSN=0.99, + / + &NAM_WRITE_DIAG_SURFN + LPROVAR_TO_DIAG=.FALSE., + LSELECT=.TRUE., +CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS', + / + &NAM_WRITE_SURF_ATM + LNOWRITE_TEXFILE=.TRUE., + / +FIN +/bin/cat EXSEG1.nam + +# ***************************************** +# * Acquisition du fichier de demarrage * +# ***************************************** + +echo +for hh in 0 1 2 3 4 5 6 ; do + N=`expr $hh / 1 ` + set -x + ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N} + set +x +done +set -x +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx +ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin . +ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim +ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx +ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025 +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat . +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat . +ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat . +set +x +tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz + +# *************** +# * Chargement * +# *************** + +echo +set -x +\ln -s $LOADIR/MASTERODB MASTER +set +x +if ldd MASTER | grep openmpi > /dev/null; then + #On est sur PC + MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}') + MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC" + GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1 + export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions + export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions +else + #On est sur HPC + #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD" + NNODES=$SLURM_JOB_NUM_NODES + MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES)) + MPI_TASKS=$SLURM_NTASKS + MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --" + export OMP_STACKSIZE=4G + export KMP_STACKSIZE=4G + export KMP_MONITOR_STACKSIZE=4G + export DR_HOOK=1 + export DR_HOOK_IGNORE_SIGNALS=-1 + export DR_HOOK_SILENT=1 + export DR_HOOK_SHOW_PROCESS_OPTIONS=0 + export MPL_MBX_SIZE=2048000000 + export EC_PROFILE_HEAP=0 + export EC_PROFILE_MEM=0 + export EC_MPI_ATEXIT=0 + export EC_MEMINFO=0 + export OPENBLAS_NUM_THREADS=1 + export MKL_CBWR="AUTO,STRICT" + export MKL_NUM_THREADS=1 + export MKL_DEBUG_CPU_TYPE=5 + export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions +fi +echo $MPIRUN +set +x +if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi + +# *************** +# * Execution * +# *************** + +echo +echo OMP_NUM_THREADS=$OMP_NUM_THREADS +set -x +ulimit -s unlimited +$MPIRUN $PWD/MASTER >lola +set +x +echo +##if [ -f lola ] ; then +## echo;echo Standard output :;echo;cat lola +##fi +##if [ -f stderr.* ] ; then +## for file in stderr.* ; do +## echo;echo $file :;cat $file +## done +##fi +##if [ -f stdout.* ] ; then +##echo;echo stdout :;echo;cat stdout.* +##fi +##if [ -a NODE.001_01 ] ; then +## for file in NODE* ; do +## echo;echo Listing $file;echo +## cat $file +## done +##fi +##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then +### Top 25 for each MPI task : +## for file in drhook.prof.* ; do +## echo;echo $file :;head -38 $file +## done +##fi +#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl + +# ******************* +# * Sauvegardes * +# ******************* + +ls +#if [ -f PFFPOS000+0000 ] ; then +# cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID +#fi +cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/ +/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001* +/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00* +/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz) + +# **************** +# * Epilogue * +# **************** + +ls -ltr | grep -v "\->" +echo Wait_queue : +ls -ltr $TMPWAIT +cd $TMPDIR +\rm -rf rundir.$$ +\rm -rf wait_queue.$$ +date +set +x diff --git a/tools/conf_tests/small_3D_alt6/aro48t3.sh b/tools/conf_tests/small_3D_alt6/aro48t3.sh new file mode 100755 index 0000000000000000000000000000000000000000..bca3e00b79dd3afa64a65ca49e6d86d6d97a1f95 --- /dev/null +++ b/tools/conf_tests/small_3D_alt6/aro48t3.sh @@ -0,0 +1,1209 @@ +#!/bin/bash +#SBATCH -n 4 +#SBATCH --mem=20000 +#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR +#SBATCH -t 00:10:00 +#SBATCH -N 1 +#SBATCH -p normal256 + +#The MYLIB variable must contain the gmkpack pack name +#The TESTDIR variable must contain the test directory +#Results will be stored in the local directory + +#Other environment varaibles that can be set: +#OUTPUTDIR + +date + +OUTPUTDIR=${OUTPUTDIR:-$PWD} +case=riette2 +#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script +rekchemin=$TESTDIR + +NPROC=4 +NSTRIN=$NPROC +NSTROUT=1 +NPRTRW_NPRTRV="" +NPRTRW_NPRTRV=" NPRTRW=$NPROC, + NPRTRV=1," +export OMP_NUM_THREADS=1 + +#MYLIB=48t1_main.01%jpdup + +export DR_HOOK=1 +#export DR_HOOK_IGNORE_SIGNALS=-1 +export DR_HOOK_NOT_MPI=1 +export DR_HOOK_SILENT=1 +export DR_HOOK_OPT= + +export EC_PROFILE_HEAP=0 +export EC_PROFILE_MEM=0 +export EC_MPI_ATEXIT=0 +export DR_HOOK_SHOW_PROCESS_OPTIONS=0 +export EC_MEMINFO=0 +export TVSEARCHPATH=$SOURCE + +HOMEPACK=${HOMEPACK:=$HOME/pack} +SOURCE=$HOMEPACK/$MYLIB/src/local +LOADIR=$HOMEPACK/$MYLIB/bin + +TMPDIR=${TMPDIR:=$HOME/tmp} +TMPLOC=$TMPDIR/rundir.$$ +TMPWAIT=$TMPDIR/wait_queue.$$ +mkdir $TMPWAIT +mkdir $TMPLOC +cd $TMPLOC + +export RTTOV_COEFDIR=$PWD + +# ************************** +# * Saisie des NAMELISTS * +# ************************** + +CNMEXP='FPOS' + +echo +/bin/cat <<FIN > fort.4 + &NACIETEO + / + &NACOBS + / + &NACTAN + / + &NACTEX + / + &NACVEG + / + &NADOCK + / + &NAEAEM7 + / + &NAEAER + / + &NAECOAPHY + / + &NAEPHLI + / + &NAEPHY + / + &NAERAD + LRRTM=.TRUE., + LSRTM=.FALSE., + NAER=1, + NICEOPT=3, + NLIQOPT=3, + NOVLP=6, + NOZOCL=2, + NRADFR=18, + NRADIP=3, + NRADLP=2, + NSW=6, + RLWINHF=1, + RRE2DE=0.64952, + RSWINHF=1, + / + &NAERCLI + / + &NAEVOL + / + &NAIMPO + / + &NALORI + / + &NAMAFN + GFP_CLSG%CLNAME='SURFACCGRAUPEL', + GFP_CLSP%CLNAME='SURFACCPLUIE', + GFP_CLSS%CLNAME='SURFACCNEIGE', + GFP_SFIS%IBITS=16, + GFP_ST%CLNAME='SURFTEMPERATURE', + GFP_ST%IANO=0, + GFP_ST%IBITS=12, + GFP_X10U%CLNAME='CLSVENT.ZONAL', + GFP_X10U%IANO=0, + GFP_X10U%IBITS=12, + GFP_X10V%CLNAME='CLSVENT.MERIDIEN', + GFP_X10V%IANO=0, + GFP_X10V%IBITS=12, + GFP_X2RH%CLNAME='CLSHUMI.RELATIVE', + GFP_X2RH%IANO=0, + GFP_X2RH%IBITS=12, + GFP_X2T%CLNAME='CLSTEMPERATURE', + GFP_X2T%IANO=1, + GFP_XCCC%IBITS=8, + GFP_XHCC%IBITS=8, + GFP_XLCC%IBITS=8, + GFP_XLSG%CLNAME='SURFINSGRAUPEL', + GFP_XLSP%CLNAME='SURFINSPLUIE', + GFP_XLSS%CLNAME='SURFINSNEIGE', + GFP_XMCC%IBITS=8, + GFP_XN2T%IBITS=12, + GFP_XTCC%IBITS=8, + GFP_XUGST%CLNAME='CLSU.RAF60M.XFU', + GFP_XUGST%IANO=0, + GFP_XUGST%IBITS=12, + GFP_XVGST%CLNAME='CLSV.RAF60M.XFU', + GFP_XVGST%IANO=0, + GFP_XVGST%IBITS=12, + GFP_XX2T%IBITS=12, + GFP_XXDIAGH%IBITS=12, + TFP_ABS%ZFK=32., + TFP_CLF%IBITS=6, + TFP_EDR%CLNAME='EDR', + TFP_EDR%IBITS=16, + TFP_EDR%IGRIB=136, + TFP_GR%IBITS=12, + TFP_HL%IBITS=12, + TFP_HTB%IBITS=16, + TFP_HTB%LLGP=.TRUE., + TFP_HU%IBITS=12, + TFP_MSAT9C2%IBITS=12, + TFP_MSAT9C6%IBITS=12, + TFP_MSLNH%IBITS=12, + TFP_PV%ZFK=64., + TFP_RCLS%IBITS=12, + TFP_RR%IBITS=12, + TFP_SN%IBITS=12, + TFP_T%IBITS=12, + TFP_TCLS%IBITS=12, + TFP_TH%IBITS=12, + TFP_THPW%IBITS=12, + TFP_THV%IBITS=12, + TFP_TN%IBITS=12, + TFP_TWV%IBITS=12, + TFP_TX%IBITS=12, + TFP_U%IBITS=12, + TFP_V%IBITS=12, + TFP_VOR%ZFK=32., + TFP_VV%ZFK=32., + / + &NAMARG + CNMEXP='${CNMEXP}', + LECMWF=.FALSE., + LELAM=.TRUE., + LSLAG=.TRUE., + NCONF=1, + NSUPERSEDE=1, + / + &NAMARPHY + LKFBCONV=.FALSE., + LKFBD=.FALSE., + LKFBS=.FALSE., + LMFSHAL=.TRUE., + LMICRO=.TRUE., + LMPA=.TRUE., + LMSE=.TRUE., + LTURB=.TRUE., + / + &NAMCA + / + &NAMCAPE + / + &NAMCFU + LCUMFU=.TRUE., + LFPLS=.TRUE., + LFPLSG=.TRUE., + LFR=.TRUE., + LFRRC=.TRUE., + LFSF=.TRUE., + LNEBPAR=.TRUE., + LNEBTT=.TRUE., + LRAYD=.TRUE., + LRAYS=.TRUE., + / + &NAMCHEM + / + &NAMCHET + / + &NAMCHK + / + &NAMCLA + / + &NAMCLDP + / + &NAMCLI + / + &NAMCLOP15 + / + &NAMCLTC + / + &NAMCOK + / + &NAMCOM + / + &NAMCOSJO + / + &NAMCOUPLO4 + / + &NAMCT0 + CFPNCF='ECHFP', + CNPPATH=' ', + LAROME=.TRUE., + LNHEE=.TRUE., + LSCREEN_OPENMP=.FALSE., + LSPRT=.TRUE., + LTWOTL=.TRUE., + NFPOS=1, + NFRSDI=18, + NSDITS(0)=0, + NFRHIS=72, + NHISTS(0)=0, + NFRPOS=72, + NPOSTS(0)=0, + NFRSFXHIS=72, + NSFXHISTS(0)=0, + NFRDHFD=72, + NDHFDTS(0)=0, + / + &NAMCT1 + LRFILAF=.FALSE., + N1HIS=1, + N1POS=1, + N1RES=0, + N1SDI=1, + N1SFXHIS=1, + N1GDI=0, + / + &NAMCUMF + / + &NAMCUMFS + / + &NAMCVER + / + &NAMCVMNH + / + &NAMDDH + LDDH_OMP=.TRUE., + LHDDOP=.TRUE., + LHDHKS=.TRUE., + LHDEFD=.TRUE., + LFLEXDIA=.TRUE., + BDEDDH(1,1)=3, + BDEDDH(2,1)=1, + BDEDDH(3,1)=358.8 + BDEDDH(4,1)=45.1 + BDEDDH(5,1)=360.3 + BDEDDH(6,1)=44.5 + / + &NAMDFI + / + &NAMDIM + NPROMA=-50, + / + &NAMDIMO + / + &NAMDIM_TRAJ + / + &NAMDPHY + / + &NAMDPRECIPS + / + &NAMDYN + LADVF=.TRUE., + LQMPD=.FALSE., + LQMT=.FALSE., + LQMVD=.FALSE., + LRHDI_LASTITERPC=.TRUE., + NITMP=4, + NSITER=1, + NSPDLAG=3, + NSVDLAG=3, + NTLAG=3, + NVLAG=3, + NWLAG=3, + RDAMPDIV=20., + RDAMPPD=20., + RDAMPQ=0., + RDAMPT=0., + RDAMPVD=20., + RDAMPVOR=20., + REPS1=0., + REPS2=0., + REPSM1=0., + REPSM2=0., + REPSP1=0., + SDRED=1., + SIPR=90000., + SITR=350., + SITRA=100., + SLHDA0=0.25, + SLHDD00=0.000065, + VESL=0.05, + XIDT=0., + ZSLHDP1=1.7, + ZSLHDP3=0.6, + / + &NAMDYNA + LCOMADH=.TRUE., + LCOMADV=.FALSE., + LCOMAD_GFL=.TRUE., + LCOMAD_SP=.TRUE., + LCOMAD_SPD=.TRUE., + LCOMAD_SVD=.TRUE., + LCOMAD_T=.TRUE., + LCOMAD_W=.TRUE., + LGWADV=.TRUE., + LNESC=.TRUE., + LPC_CHEAP=.TRUE., + LPC_FULL=.TRUE., + LRDBBC=.FALSE., + LSETTLS=.FALSE., + LSETTLST=.TRUE., + LSLHD_GFL=.TRUE., + LSLHD_OLD=.FALSE., + LSLHD_SPD=.FALSE., + LSLHD_SVD=.FALSE., + LSLHD_T=.FALSE., + LSLHD_W=.FALSE., + ND4SYS=2, + NDLNPR=1, + NPDVAR=2, + NVDVAR=4, + SLHDEPSH=0.08, + SLHDKMAX=6, + / + &NAMDYNCORE + / + &NAMEMIS_CONF + / + &NAMENKF + / + &NAMFA + CMODEL='OUTPUTID', + LEXTERN=.TRUE., + LSUPPDATE=.FALSE., + NBITCS=-1, + NBITPG=-1, + NSTRON=-1, + / + &NAMFAINIT + JPXTRO=2000, + / + &NAMFPC + CFP2DF(1)='SURFPRESSION', + CFP2DF(2)='MSL_NHPRESSURE', + CFP2DF(3)='SURFTOT.WAT.VAPO', + CFP2DF(4)='SURFISOTPW0.MALT', + CFP2DF(5)='SURFCAPE.POS.F00', + CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS', + CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS', + CFP2DF(8)='SURFREFLECT.MAX', + CFP2DF(9)='SURFISOTPW1.MALT', + CFP2DF(10)='SURFISOTPW2.MALT', + CFP3DF(1)='GEOPOTENTIEL', + CFP3DF(2)='TEMPERATURE', + CFP3DF(3)='VENT_ZONAL', + CFP3DF(4)='VENT_MERIDIEN', + CFP3DF(5)='HUMI_RELATIVE', + CFP3DF(6)='THETA_PRIM_W', + CFP3DF(7)='PRESSURE', + CFP3DF(8)='ABS_VORTICITY', + CFP3DF(9)='VITESSE_VERTICALE', + CFP3DF(10)='TEMPE_POTENT', + CFP3DF(11)='POT_VORTICIT', + CFP3DF(12)='SIM_REFLECTI', + CFP3DF(13)='RAIN', + CFP3DF(14)='SNOW', + CFP3DF(15)='GRAUPEL', + CFP3DF(16)='ICE_CRYSTAL', + CFP3DF(17)='CLOUD_WATER', + CFP3DF(18)='VERT.VELOCIT', + CFP3DF(19)='DIVERGENCE', + CFP3DF(20)='THETA_VIRTUA', + CFP3DF(21)='TKE', + CFP3DF(22)='CLOUD_FRACTI', + CFP3DF(23)='ISOT_ALTIT', + CFP3DF(24)='EDR', + CFPCFU(1)='SURFTENS.TOTA.ZO', + CFPCFU(2)='SURFTENS.TOTA.ME', + CFPCFU(3)='SURFACCPLUIE', + CFPCFU(4)='SURFACCNEIGE', + CFPCFU(5)='SURFACCGRAUPEL', + CFPCFU(6)='SOMMFLU.RAY.SOLA', + CFPCFU(7)='SURFFLU.RAY.SOLA', + CFPCFU(8)='SOMMFLU.RAY.THER', + CFPCFU(9)='SURFFLU.RAY.THER', + CFPCFU(10)='SURFFLU.LAT.MTOT', + CFPCFU(11)='SURFFLU.MTOTA.NE', + CFPCFU(12)='SURFFLU.CHA.SENS', + CFPCFU(13)='SURFRAYT SOLA DE', + CFPCFU(14)='SURFRAYT THER DE', + CFPCFU(15)='SURFRAYT SOL CL', + CFPCFU(16)='SURFRAYT THER CL', + CFPCFU(17)='SURFRAYT DIR SUR', + CFPDOM(1)='FRANGP0025', + CFPFMT='LALON', + CFPPHY(1)='SURFTEMPERATURE', + CFPPHY(2)='INTSURFGEOPOTENT', + CFPPHY(3)='SURFRESERV.NEIGE', + CFPXFU(1)='CLSTEMPERATURE', + CFPXFU(2)='CLSHUMI.RELATIVE', + CFPXFU(3)='CLSVENT.ZONAL', + CFPXFU(4)='CLSVENT.MERIDIEN', + CFPXFU(5)='SURFNEBUL.TOTALE', + CFPXFU(6)='SURFNEBUL.HAUTE', + CFPXFU(7)='SURFNEBUL.MOYENN', + CFPXFU(8)='SURFNEBUL.BASSE', + CFPXFU(9)='CLSMAXI.TEMPERAT', + CFPXFU(10)='CLSMINI.TEMPERAT', + CFPXFU(11)='CLPMHAUT.MOD.XFU', + CFPXFU(12)='SURFDIAGHAIL', + LCRITSNOWTEMP=.FALSE., + LFPCAPEX=.TRUE., + LFPMOIS=.TRUE., + LFPPACKING=.FALSE., + LWIDER_DOM=.TRUE., + L_READ_MODEL_DATE=.TRUE., + NFITI=1, + NFITV=1, + NFPCAPE=5, + NFPCLI=1, + NFPGRIB=1, + NFPINPHY=4, + NITERPV=8, + RENTRA=0.0001, + RFP3H(1)=10., + RFP3H(2)=20., + RFP3H(3)=35., + RFP3H(4)=50., + RFP3H(5)=75., + RFP3H(6)=100., + RFP3H(7)=150., + RFP3H(8)=200., + RFP3H(9)=250., + RFP3H(10)=375., + RFP3H(11)=500., + RFP3H(12)=625., + RFP3H(13)=750., + RFP3H(14)=875., + RFP3H(15)=1000., + RFP3H(16)=1125., + RFP3H(17)=1250., + RFP3H(18)=1375., + RFP3H(19)=1500., + RFP3H(20)=1750., + RFP3H(21)=2000., + RFP3H(22)=2250., + RFP3H(23)=2500., + RFP3H(24)=2750., + RFP3H(25)=3000., + RFP3I(1)=-273.15, + RFP3I(2)=-263.15, + RFP3I(3)=-261.15, + RFP3I(4)=-253.15, + RFP3P(1)=10000., + RFP3P(2)=12500., + RFP3P(3)=15000., + RFP3P(4)=17500., + RFP3P(5)=20000., + RFP3P(6)=22500., + RFP3P(7)=25000., + RFP3P(8)=27500., + RFP3P(9)=30000., + RFP3P(10)=35000., + RFP3P(11)=40000., + RFP3P(12)=45000., + RFP3P(13)=50000., + RFP3P(14)=55000., + RFP3P(15)=60000., + RFP3P(16)=65000., + RFP3P(17)=70000., + RFP3P(18)=75000., + RFP3P(19)=80000., + RFP3P(20)=85000., + RFP3P(21)=90000., + RFP3P(22)=92500., + RFP3P(23)=95000., + RFP3P(24)=100000., + RFP3PV(1)=0.0000015, + RFP3PV(2)=0.000002, + RFPCD2=5., + RFPCSAB=50., + RFPVCAP=7000., + / + &NAMFPD + NLAT(1)=41, + NLON(1)=41, + RLONC(1)=-0.71, + RLATC(1)=44.8, + RDELX(1)=0.025, + RDELY(1)=0.025, + / + &NAMFPDY2 + / + &NAMFPDYF + / + &NAMFPDYH + / + &NAMFPDYI + / + &NAMFPDYP + / + &NAMFPDYS + / + &NAMFPDYT + / + &NAMFPDYV + / + &NAMFPF + NFMAX(1)=60, + NFMAX(2)=80, + / + &NAMFPG + NFPDISTRIB=1, + / + &NAMFPIOS + / + &NAMFPMOVE + / + &NAMFPPHY + / + &NAMFPSC2 + NFPROMA=-50, + / + &NAMFPSC2_DEP + NFPROMA_DEP=-50, + / + &NAMGEM + / + &NAMGFL + NGFL_EZDIAG=4, + YEZDIAG_NL(1)%CNAME='EZDIAG01', + YEZDIAG_NL(1)%LREQOUT=.FALSE., + YEZDIAG_NL(2)%CNAME='EZDIAG02', + YEZDIAG_NL(2)%LREQOUT=.FALSE., + YEZDIAG_NL(3)%CNAME='EZDIAG03', + YEZDIAG_NL(3)%LREQOUT=.FALSE., + YEZDIAG_NL(4)%CNAME='INPRRTOT3D', + YEZDIAG_NL(4)%LREQOUT=.TRUE., + YG_NL%LQM=.TRUE., + YG_NL%LSLHD=.TRUE., + YG_NL%NCOUPLING=-1, + YG_NL%NREQIN=1, + YG_NL%REFVALC=0., + YIRAD_NL%LGP=.TRUE., + YI_NL%LQM=.TRUE., + YI_NL%LSLHD=.TRUE., + YI_NL%NCOUPLING=-1, + YI_NL%NREQIN=1, + YI_NL%REFVALC=0., + YLRAD_NL%LGP=.TRUE., + YL_NL%LQM=.TRUE., + YL_NL%LSLHD=.TRUE., + YL_NL%NCOUPLING=-1, + YL_NL%NREQIN=1, + YL_NL%REFVALC=0., + YQ_NL%LCOMAD=.TRUE., + YQ_NL%LQM=.TRUE., + YQ_NL%LSLHD=.FALSE., + YQ_NL%NREQIN=1, + YR_NL%LQM=.TRUE., + YR_NL%LSLHD=.TRUE., + YR_NL%NCOUPLING=-1, + YR_NL%NREQIN=1, + YR_NL%REFVALC=0., + YS_NL%LQM=.TRUE., + YS_NL%LSLHD=.TRUE., + YS_NL%NCOUPLING=-1, + YS_NL%NREQIN=1, + YS_NL%REFVALC=0., + YTKE_NL%NCOUPLING=0, + YTKE_NL%NREQIN=1, + / + &NAMGRIB + / + &NAMGWD + / + &NAMGWDIAG + / + &NAMGWWMS + / + &NAMIAU + ALPHAIAU=0.5, + LIAU=.FALSE., + TSTARTIAU=1800, + TSTOPIAU=5340, + / + &NAMICE + / + &NAMINI + LDFI=.FALSE., + / + &NAMINTFLEX + / + &NAMIOMI + / + &NAMIOS + / + &NAMIO_SERV + NIO_SERV_BUF_MAXSIZE=20, + NIO_SERV_METHOD=2, + NMSG_LEVEL_CLIENT=0, + NMSG_LEVEL_SERVER=0, + NPROCESS_LEVEL=5, + NPROC_IO=0, + / + &NAMJBCODES + / + &NAMJFH + / + &NAMJG + / + &NAMLCZ + / + &NAMLSFORC + / + &NAMMARS + / + &NAMMCC + / + &NAMMCUF + / + &NAMMKODB + / + &NAMMODERR + / + &NAMMTS + / + &NAMMWAVE + / + &NAMNPROF + / + &NAMNUD + / + &NAMOBS + / + &NAMONEDVAR + / + &NAMOOPS + / + &NAMOPH + CFNHWF='ECHIS', + LINC=.TRUE., + NTIMEFMT=1, + / + &NAMOPTCMEM + / + &NAMPAR0 + LOPT_SCALAR=.TRUE., + NPRINTLEV=1, + LMPOFF=.FALSE., + MBX_SIZE=2048000000, + MP_TYPE=2, + NOUTPUT=1, + NPROC=$NPROC, +$NPRTRW_NPRTRV + / + &NAMPAR1 + LEQ_REGIONS=.FALSE., + LSLONDEM=.TRUE., + LSPLIT=.TRUE., + LSYNC_SLCOM=.FALSE., + LSYNC_TRANS=.FALSE., + L_GATHERV_WRGP=.FALSE., + NCOMBFLEN=1800000, + NSTRIN=$NSTRIN, + NSTROUT=$NSTROUT, + / + &NAMPARAR + CMF_UPDRAFT='RAHA' + CMF_CLOUD='BIGA' + CFRAC_ICE_ADJUST='S', + CFRAC_ICE_SHALLOW_MF='S', + CMICRO='ICE3', + CSEDIM='STAT', + CSNOWRIMING='M90', + LCONVHG=.TRUE., + LCRFLIMIT=.TRUE., + LCRIAUTI=.TRUE., + LEVLIMIT=.TRUE., + LFEEDBACKT=.TRUE., + LFPREC3D=.TRUE., + LNULLWETG=.TRUE., + LNULLWETH=.TRUE., + LOLSMC=.TRUE., + LOSEDIC=.TRUE., + LOSIGMAS=.TRUE., + LOSUBG_COND=.TRUE., + LSEDIM_AFTER=.FALSE., + LWETGPOST=.TRUE., + LWETHPOST=.TRUE., + NMAXITER_MICRO=1, + NPRINTFR=10000, + NPTP=1, + RCRIAUTC=0.001, + RCRIAUTI=0.0002, + RT0CRIAUTI=-5., + VSIGQSAT=0.02, + XFRACM90=0.1, + XMRSTEP=0.00005, + XSPLIT_MAXCFL=0.8, + XTSTEP_TS=0., + / + &NAMPHMSE + LPGDFWR=.FALSE., + / + &NAMPHY + LAERODES=.TRUE., + LAEROLAN=.TRUE., + LAEROSEA=.TRUE., + LAEROSOO=.TRUE., + LEDR=.TRUE., + LMPHYS=.TRUE., + LO3ABC=.TRUE., + LRAYFM=.TRUE., + / + &NAMPHY0 + ALMAV=300., + BEDIFV=0.05, + ECMNP=3000., + GCCSV=0., + GCVADS=0.8, + GCVALFA=0.000045, + GCVBETA=0.2, + GCVMLT=0.00016, + GCVNU=0.000025, + GCVPSI=1., + GCVPSIE=1., + GDDEVA=0.25, + GDDSDE=0.5, + GWDCD=6., + HUCOE=0.5, + HUTIL=1.8, + QSSC=400., + QSSUSC=0.75, + QSSUSS=0.4, + QSSUSV=250., + QSUSXC=0.0002, + QSUSXS=0.0003, + QXRAL=130., + QXRDEL=0.49, + QXRHX=0.99, + QXRR=0.25, + RCVEVAP=0.25, + REFLKUO=5000., + REVGSL=15., + SCO=-20., + TDDGP=0.8, + TENTR=0.0000025, + TENTRX=0.00008, + TUDGP=0.8, + UHDIFV=0.0008, + USURIC=0.175, + USURICE=0.5, + USURICL=1., + USURID=0.1, + USURIDE=0.25, + VZ0CM=0.00015, + XMAXLM=5000., + XMINLM=10., + / + &NAMPHY1 + ALBMIN=0.65, + ALCRIN=0.75, + GCGEL=0.00003, + GCGELS=0.00005, + GNEIMX=1.8, + GNEIMXS=1.8, + RCTVEG(3)=0.000012, + RCTVEG(4)=0.00001, + / + &NAMPHY2 + FACRAF=3.8, + HTKERAF=20., + LMULAF=.TRUE., + LRAFTKE=.TRUE., + LRAFTUR=.TRUE., + XDAMP=1., + XMULAF=-1.85, + / + &NAMPHY3 + / + &NAMPHYDS + / + &NAMPONG + / + &NAMPPC + / + &NAMPPVI + / + &NAMPRE + / + &NAMRAD15 + / + &NAMRADCMEM + / + &NAMRCF + / + &NAMRCOEF + / + &NAMRES + / + &NAMRGRI + / + &NAMRINC + / + &NAMRIP + TSTEP=50., + CSTOP='h2', + / + &NAMRIP0 + / + &NAMRLX + / + &NAMSATS + LPARTIAL_COEF_FILES=.TRUE., + / + &NAMSCC + / + &NAMSCEN + / + &NAMSCM + / + &NAMSEKF + / + &NAMSENS + / + &NAMSFXCMP + CFLDNAME(1)='????????????????', + NBBITS(1)=24, + / + &NAMSIMPHL + / + &NAMSPNG + / + &NAMSPSDT + / + &NAMSTA + / + &NAMSTOPH + / + &NAMSWE + / + &NAMTESTVAR + / + &NAMTHLIM + / + &NAMTOPH + ETCVIM=5000., + ETNEBU=5000., + ETPLUI=5000., + XDRMTK=6.0D-7, + XDRMTP=800., + XDRMUK=3.0D-7, + XDRMUP=800., + / + &NAMTRAJP + / + &NAMTRANS + / + &NAMTRANS0 + / + &NAMTS + / + &NAMVAR + / + &NAMVARBC + / + &NAMVARBC_AIREP + / + &NAMVARBC_ALLSKY + / + &NAMVARBC_GBRAD + / + &NAMVARBC_RAD + / + &NAMVARBC_SFCOBS + / + &NAMVARBC_TCWV + / + &NAMVARBC_TO3 + / + &NAMVAREPS + / + &NAMVDF + / + &NAMVDOZ + / + &NAMVOLCANO + / + &NAMVRTL + / + &NAMVV0 + / + &NAMVV1 + / + &NAMVWRK + / + &NAMWAVELETJB + / + &NAMXFU + LXCLP=.TRUE., + LXCLS=.TRUE., + LXFU=.TRUE., + LXNEBPA=.TRUE., + LXNEBTT=.TRUE., + LXNUVCLS=.TRUE., + LXPLS=.TRUE., + LXPLSG=.TRUE., + LXQCLS=.TRUE., + LXR=.TRUE., + LXSOIL=.FALSE., + LXTHW=.TRUE., + LXTRT=.TRUE., + LXTTCLS=.TRUE., + LXXDIAGH=.TRUE., + LXXGST=.TRUE., + NFRRAZ=72, + NRAZTS(0)=0, + / + &NAM_CANAPE + / + &NAM_DISTRIBUTED_VECTORS + / + &NAPHLC + / + &NEMCT0 + / + &NEMDIM + / + &NEMDYN + / + &NEMELBC0A + LESPCPL=.TRUE., + NBICNHX=2, + NBICOP=2, + NBICOT=2, + NBICOU=2, + NBICPD=2, + NBICVD=2, + NECRIPL=1, + / + &NEMELBC0B + NEFRSPCPL=1, + NEK0=20, + NEK1=30, + NEN1=4, + NEN2=8, + SPNUDDIV=0.01, + SPNUDQ=0., + SPNUDT=0.01, + SPNUDVOR=0.01, + TEFRCL=3600., + / + &NEMFPEZO + / + &NEMGEO + / + &NEMJK + / + &NEMVAR + / + &NEMWAVELET + / + &NAETLDIAG + / + &NAMMETHOX + / + &NAMSPP + / + &NAMACV + / + &NAMFPOBJ + / + &NAMNORGWD + / + &NAMTRAJ + / + &NAMSATSIM + / + &NAMDVISI + / + &NAMNUDGLH + / + &NAMPERTPAR + / +FIN +/bin/cat fort.4 + +/bin/cat <<FIN > EXSEG1.nam + &NAM_DIAG_ISBAN + LPGD=.TRUE., + LSURF_MISC_BUDGET=.TRUE., + / + &NAM_DIAG_SURFN + LCOEF=.TRUE., + LSURF_BUDGET=.TRUE., + N2M=2, + / + &NAM_ISBAN + CSCOND='NP89', + / + &NAM_REPROD_OPER + LREPROD_OPER=.TRUE., + / + &NAM_SEAFLUXN + CSEA_FLUX='ECUME', + LPWG=.FALSE., + LPRECIP=.FALSE., + LPWEBB=.FALSE., + / + &NAM_SSON + CROUGH='Z01D', + XFRACZ0=5., + LDSV=.FALSE., + / + &NAM_SURF_ATM + XRIMAX=0.2, + LNOSOF=.TRUE., + / + &NAM_SURF_CSTS + XZ0SN=0.01, + XZ0HSN=0.001, + XEMISSN=0.99, + / + &NAM_WRITE_DIAG_SURFN + LPROVAR_TO_DIAG=.FALSE., + LSELECT=.TRUE., +CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS', + / + &NAM_WRITE_SURF_ATM + LNOWRITE_TEXFILE=.TRUE., + / +FIN +/bin/cat EXSEG1.nam + +# ***************************************** +# * Acquisition du fichier de demarrage * +# ***************************************** + +echo +for hh in 0 1 2 3 4 5 6 ; do + N=`expr $hh / 1 ` + set -x + ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N} + set +x +done +set -x +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx +ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin . +ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim +ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx +ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025 +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat . +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat . +ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat . +set +x +tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz + +# *************** +# * Chargement * +# *************** + +echo +set -x +\ln -s $LOADIR/MASTERODB MASTER +set +x +if ldd MASTER | grep openmpi > /dev/null; then + #On est sur PC + MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}') + MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC" + GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1 + export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions + export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions +else + #On est sur HPC + #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD" + NNODES=$SLURM_JOB_NUM_NODES + MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES)) + MPI_TASKS=$SLURM_NTASKS + MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --" + export OMP_STACKSIZE=4G + export KMP_STACKSIZE=4G + export KMP_MONITOR_STACKSIZE=4G + export DR_HOOK=1 + export DR_HOOK_IGNORE_SIGNALS=-1 + export DR_HOOK_SILENT=1 + export DR_HOOK_SHOW_PROCESS_OPTIONS=0 + export MPL_MBX_SIZE=2048000000 + export EC_PROFILE_HEAP=0 + export EC_PROFILE_MEM=0 + export EC_MPI_ATEXIT=0 + export EC_MEMINFO=0 + export OPENBLAS_NUM_THREADS=1 + export MKL_CBWR="AUTO,STRICT" + export MKL_NUM_THREADS=1 + export MKL_DEBUG_CPU_TYPE=5 + export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions +fi +echo $MPIRUN +set +x +if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi + +# *************** +# * Execution * +# *************** + +echo +echo OMP_NUM_THREADS=$OMP_NUM_THREADS +set -x +ulimit -s unlimited +$MPIRUN $PWD/MASTER >lola +set +x +echo +##if [ -f lola ] ; then +## echo;echo Standard output :;echo;cat lola +##fi +##if [ -f stderr.* ] ; then +## for file in stderr.* ; do +## echo;echo $file :;cat $file +## done +##fi +##if [ -f stdout.* ] ; then +##echo;echo stdout :;echo;cat stdout.* +##fi +##if [ -a NODE.001_01 ] ; then +## for file in NODE* ; do +## echo;echo Listing $file;echo +## cat $file +## done +##fi +##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then +### Top 25 for each MPI task : +## for file in drhook.prof.* ; do +## echo;echo $file :;head -38 $file +## done +##fi +#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl + +# ******************* +# * Sauvegardes * +# ******************* + +ls +#if [ -f PFFPOS000+0000 ] ; then +# cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID +#fi +cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/ +/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001* +/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00* +/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz) + +# **************** +# * Epilogue * +# **************** + +ls -ltr | grep -v "\->" +echo Wait_queue : +ls -ltr $TMPWAIT +cd $TMPDIR +\rm -rf rundir.$$ +\rm -rf wait_queue.$$ +date +set +x diff --git a/tools/conf_tests/small_3D_alt7/aro48t3.sh b/tools/conf_tests/small_3D_alt7/aro48t3.sh new file mode 100755 index 0000000000000000000000000000000000000000..b16a272001a2d2ee87613977c6cb648eb5ee2ba3 --- /dev/null +++ b/tools/conf_tests/small_3D_alt7/aro48t3.sh @@ -0,0 +1,1209 @@ +#!/bin/bash +#SBATCH -n 4 +#SBATCH --mem=20000 +#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR +#SBATCH -t 00:10:00 +#SBATCH -N 1 +#SBATCH -p normal256 + +#The MYLIB variable must contain the gmkpack pack name +#The TESTDIR variable must contain the test directory +#Results will be stored in the local directory + +#Other environment varaibles that can be set: +#OUTPUTDIR + +date + +OUTPUTDIR=${OUTPUTDIR:-$PWD} +case=riette2 +#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script +rekchemin=$TESTDIR + +NPROC=4 +NSTRIN=$NPROC +NSTROUT=1 +NPRTRW_NPRTRV="" +NPRTRW_NPRTRV=" NPRTRW=$NPROC, + NPRTRV=1," +export OMP_NUM_THREADS=1 + +#MYLIB=48t1_main.01%jpdup + +export DR_HOOK=1 +#export DR_HOOK_IGNORE_SIGNALS=-1 +export DR_HOOK_NOT_MPI=1 +export DR_HOOK_SILENT=1 +export DR_HOOK_OPT= + +export EC_PROFILE_HEAP=0 +export EC_PROFILE_MEM=0 +export EC_MPI_ATEXIT=0 +export DR_HOOK_SHOW_PROCESS_OPTIONS=0 +export EC_MEMINFO=0 +export TVSEARCHPATH=$SOURCE + +HOMEPACK=${HOMEPACK:=$HOME/pack} +SOURCE=$HOMEPACK/$MYLIB/src/local +LOADIR=$HOMEPACK/$MYLIB/bin + +TMPDIR=${TMPDIR:=$HOME/tmp} +TMPLOC=$TMPDIR/rundir.$$ +TMPWAIT=$TMPDIR/wait_queue.$$ +mkdir $TMPWAIT +mkdir $TMPLOC +cd $TMPLOC + +export RTTOV_COEFDIR=$PWD + +# ************************** +# * Saisie des NAMELISTS * +# ************************** + +CNMEXP='FPOS' + +echo +/bin/cat <<FIN > fort.4 + &NACIETEO + / + &NACOBS + / + &NACTAN + / + &NACTEX + / + &NACVEG + / + &NADOCK + / + &NAEAEM7 + / + &NAEAER + / + &NAECOAPHY + / + &NAEPHLI + / + &NAEPHY + / + &NAERAD + LRRTM=.TRUE., + LSRTM=.FALSE., + NAER=1, + NICEOPT=3, + NLIQOPT=3, + NOVLP=6, + NOZOCL=2, + NRADFR=18, + NRADIP=3, + NRADLP=2, + NSW=6, + RLWINHF=1, + RRE2DE=0.64952, + RSWINHF=1, + / + &NAERCLI + / + &NAEVOL + / + &NAIMPO + / + &NALORI + / + &NAMAFN + GFP_CLSG%CLNAME='SURFACCGRAUPEL', + GFP_CLSP%CLNAME='SURFACCPLUIE', + GFP_CLSS%CLNAME='SURFACCNEIGE', + GFP_SFIS%IBITS=16, + GFP_ST%CLNAME='SURFTEMPERATURE', + GFP_ST%IANO=0, + GFP_ST%IBITS=12, + GFP_X10U%CLNAME='CLSVENT.ZONAL', + GFP_X10U%IANO=0, + GFP_X10U%IBITS=12, + GFP_X10V%CLNAME='CLSVENT.MERIDIEN', + GFP_X10V%IANO=0, + GFP_X10V%IBITS=12, + GFP_X2RH%CLNAME='CLSHUMI.RELATIVE', + GFP_X2RH%IANO=0, + GFP_X2RH%IBITS=12, + GFP_X2T%CLNAME='CLSTEMPERATURE', + GFP_X2T%IANO=1, + GFP_XCCC%IBITS=8, + GFP_XHCC%IBITS=8, + GFP_XLCC%IBITS=8, + GFP_XLSG%CLNAME='SURFINSGRAUPEL', + GFP_XLSP%CLNAME='SURFINSPLUIE', + GFP_XLSS%CLNAME='SURFINSNEIGE', + GFP_XMCC%IBITS=8, + GFP_XN2T%IBITS=12, + GFP_XTCC%IBITS=8, + GFP_XUGST%CLNAME='CLSU.RAF60M.XFU', + GFP_XUGST%IANO=0, + GFP_XUGST%IBITS=12, + GFP_XVGST%CLNAME='CLSV.RAF60M.XFU', + GFP_XVGST%IANO=0, + GFP_XVGST%IBITS=12, + GFP_XX2T%IBITS=12, + GFP_XXDIAGH%IBITS=12, + TFP_ABS%ZFK=32., + TFP_CLF%IBITS=6, + TFP_EDR%CLNAME='EDR', + TFP_EDR%IBITS=16, + TFP_EDR%IGRIB=136, + TFP_GR%IBITS=12, + TFP_HL%IBITS=12, + TFP_HTB%IBITS=16, + TFP_HTB%LLGP=.TRUE., + TFP_HU%IBITS=12, + TFP_MSAT9C2%IBITS=12, + TFP_MSAT9C6%IBITS=12, + TFP_MSLNH%IBITS=12, + TFP_PV%ZFK=64., + TFP_RCLS%IBITS=12, + TFP_RR%IBITS=12, + TFP_SN%IBITS=12, + TFP_T%IBITS=12, + TFP_TCLS%IBITS=12, + TFP_TH%IBITS=12, + TFP_THPW%IBITS=12, + TFP_THV%IBITS=12, + TFP_TN%IBITS=12, + TFP_TWV%IBITS=12, + TFP_TX%IBITS=12, + TFP_U%IBITS=12, + TFP_V%IBITS=12, + TFP_VOR%ZFK=32., + TFP_VV%ZFK=32., + / + &NAMARG + CNMEXP='${CNMEXP}', + LECMWF=.FALSE., + LELAM=.TRUE., + LSLAG=.TRUE., + NCONF=1, + NSUPERSEDE=1, + / + &NAMARPHY + LKFBCONV=.FALSE., + LKFBD=.FALSE., + LKFBS=.FALSE., + LMFSHAL=.TRUE., + LMICRO=.TRUE., + LMPA=.TRUE., + LMSE=.TRUE., + LTURB=.TRUE., + / + &NAMCA + / + &NAMCAPE + / + &NAMCFU + LCUMFU=.TRUE., + LFPLS=.TRUE., + LFPLSG=.TRUE., + LFR=.TRUE., + LFRRC=.TRUE., + LFSF=.TRUE., + LNEBPAR=.TRUE., + LNEBTT=.TRUE., + LRAYD=.TRUE., + LRAYS=.TRUE., + / + &NAMCHEM + / + &NAMCHET + / + &NAMCHK + / + &NAMCLA + / + &NAMCLDP + / + &NAMCLI + / + &NAMCLOP15 + / + &NAMCLTC + / + &NAMCOK + / + &NAMCOM + / + &NAMCOSJO + / + &NAMCOUPLO4 + / + &NAMCT0 + CFPNCF='ECHFP', + CNPPATH=' ', + LAROME=.TRUE., + LNHEE=.TRUE., + LSCREEN_OPENMP=.FALSE., + LSPRT=.TRUE., + LTWOTL=.TRUE., + NFPOS=1, + NFRSDI=18, + NSDITS(0)=0, + NFRHIS=72, + NHISTS(0)=0, + NFRPOS=72, + NPOSTS(0)=0, + NFRSFXHIS=72, + NSFXHISTS(0)=0, + NFRDHFD=72, + NDHFDTS(0)=0, + / + &NAMCT1 + LRFILAF=.FALSE., + N1HIS=1, + N1POS=1, + N1RES=0, + N1SDI=1, + N1SFXHIS=1, + N1GDI=0, + / + &NAMCUMF + / + &NAMCUMFS + / + &NAMCVER + / + &NAMCVMNH + / + &NAMDDH + LDDH_OMP=.TRUE., + LHDDOP=.TRUE., + LHDHKS=.TRUE., + LHDEFD=.TRUE., + LFLEXDIA=.TRUE., + BDEDDH(1,1)=3, + BDEDDH(2,1)=1, + BDEDDH(3,1)=358.8 + BDEDDH(4,1)=45.1 + BDEDDH(5,1)=360.3 + BDEDDH(6,1)=44.5 + / + &NAMDFI + / + &NAMDIM + NPROMA=-50, + / + &NAMDIMO + / + &NAMDIM_TRAJ + / + &NAMDPHY + / + &NAMDPRECIPS + / + &NAMDYN + LADVF=.TRUE., + LQMPD=.FALSE., + LQMT=.FALSE., + LQMVD=.FALSE., + LRHDI_LASTITERPC=.TRUE., + NITMP=4, + NSITER=1, + NSPDLAG=3, + NSVDLAG=3, + NTLAG=3, + NVLAG=3, + NWLAG=3, + RDAMPDIV=20., + RDAMPPD=20., + RDAMPQ=0., + RDAMPT=0., + RDAMPVD=20., + RDAMPVOR=20., + REPS1=0., + REPS2=0., + REPSM1=0., + REPSM2=0., + REPSP1=0., + SDRED=1., + SIPR=90000., + SITR=350., + SITRA=100., + SLHDA0=0.25, + SLHDD00=0.000065, + VESL=0.05, + XIDT=0., + ZSLHDP1=1.7, + ZSLHDP3=0.6, + / + &NAMDYNA + LCOMADH=.TRUE., + LCOMADV=.FALSE., + LCOMAD_GFL=.TRUE., + LCOMAD_SP=.TRUE., + LCOMAD_SPD=.TRUE., + LCOMAD_SVD=.TRUE., + LCOMAD_T=.TRUE., + LCOMAD_W=.TRUE., + LGWADV=.TRUE., + LNESC=.TRUE., + LPC_CHEAP=.TRUE., + LPC_FULL=.TRUE., + LRDBBC=.FALSE., + LSETTLS=.FALSE., + LSETTLST=.TRUE., + LSLHD_GFL=.TRUE., + LSLHD_OLD=.FALSE., + LSLHD_SPD=.FALSE., + LSLHD_SVD=.FALSE., + LSLHD_T=.FALSE., + LSLHD_W=.FALSE., + ND4SYS=2, + NDLNPR=1, + NPDVAR=2, + NVDVAR=4, + SLHDEPSH=0.08, + SLHDKMAX=6, + / + &NAMDYNCORE + / + &NAMEMIS_CONF + / + &NAMENKF + / + &NAMFA + CMODEL='OUTPUTID', + LEXTERN=.TRUE., + LSUPPDATE=.FALSE., + NBITCS=-1, + NBITPG=-1, + NSTRON=-1, + / + &NAMFAINIT + JPXTRO=2000, + / + &NAMFPC + CFP2DF(1)='SURFPRESSION', + CFP2DF(2)='MSL_NHPRESSURE', + CFP2DF(3)='SURFTOT.WAT.VAPO', + CFP2DF(4)='SURFISOTPW0.MALT', + CFP2DF(5)='SURFCAPE.POS.F00', + CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS', + CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS', + CFP2DF(8)='SURFREFLECT.MAX', + CFP2DF(9)='SURFISOTPW1.MALT', + CFP2DF(10)='SURFISOTPW2.MALT', + CFP3DF(1)='GEOPOTENTIEL', + CFP3DF(2)='TEMPERATURE', + CFP3DF(3)='VENT_ZONAL', + CFP3DF(4)='VENT_MERIDIEN', + CFP3DF(5)='HUMI_RELATIVE', + CFP3DF(6)='THETA_PRIM_W', + CFP3DF(7)='PRESSURE', + CFP3DF(8)='ABS_VORTICITY', + CFP3DF(9)='VITESSE_VERTICALE', + CFP3DF(10)='TEMPE_POTENT', + CFP3DF(11)='POT_VORTICIT', + CFP3DF(12)='SIM_REFLECTI', + CFP3DF(13)='RAIN', + CFP3DF(14)='SNOW', + CFP3DF(15)='GRAUPEL', + CFP3DF(16)='ICE_CRYSTAL', + CFP3DF(17)='CLOUD_WATER', + CFP3DF(18)='VERT.VELOCIT', + CFP3DF(19)='DIVERGENCE', + CFP3DF(20)='THETA_VIRTUA', + CFP3DF(21)='TKE', + CFP3DF(22)='CLOUD_FRACTI', + CFP3DF(23)='ISOT_ALTIT', + CFP3DF(24)='EDR', + CFPCFU(1)='SURFTENS.TOTA.ZO', + CFPCFU(2)='SURFTENS.TOTA.ME', + CFPCFU(3)='SURFACCPLUIE', + CFPCFU(4)='SURFACCNEIGE', + CFPCFU(5)='SURFACCGRAUPEL', + CFPCFU(6)='SOMMFLU.RAY.SOLA', + CFPCFU(7)='SURFFLU.RAY.SOLA', + CFPCFU(8)='SOMMFLU.RAY.THER', + CFPCFU(9)='SURFFLU.RAY.THER', + CFPCFU(10)='SURFFLU.LAT.MTOT', + CFPCFU(11)='SURFFLU.MTOTA.NE', + CFPCFU(12)='SURFFLU.CHA.SENS', + CFPCFU(13)='SURFRAYT SOLA DE', + CFPCFU(14)='SURFRAYT THER DE', + CFPCFU(15)='SURFRAYT SOL CL', + CFPCFU(16)='SURFRAYT THER CL', + CFPCFU(17)='SURFRAYT DIR SUR', + CFPDOM(1)='FRANGP0025', + CFPFMT='LALON', + CFPPHY(1)='SURFTEMPERATURE', + CFPPHY(2)='INTSURFGEOPOTENT', + CFPPHY(3)='SURFRESERV.NEIGE', + CFPXFU(1)='CLSTEMPERATURE', + CFPXFU(2)='CLSHUMI.RELATIVE', + CFPXFU(3)='CLSVENT.ZONAL', + CFPXFU(4)='CLSVENT.MERIDIEN', + CFPXFU(5)='SURFNEBUL.TOTALE', + CFPXFU(6)='SURFNEBUL.HAUTE', + CFPXFU(7)='SURFNEBUL.MOYENN', + CFPXFU(8)='SURFNEBUL.BASSE', + CFPXFU(9)='CLSMAXI.TEMPERAT', + CFPXFU(10)='CLSMINI.TEMPERAT', + CFPXFU(11)='CLPMHAUT.MOD.XFU', + CFPXFU(12)='SURFDIAGHAIL', + LCRITSNOWTEMP=.FALSE., + LFPCAPEX=.TRUE., + LFPMOIS=.TRUE., + LFPPACKING=.FALSE., + LWIDER_DOM=.TRUE., + L_READ_MODEL_DATE=.TRUE., + NFITI=1, + NFITV=1, + NFPCAPE=5, + NFPCLI=1, + NFPGRIB=1, + NFPINPHY=4, + NITERPV=8, + RENTRA=0.0001, + RFP3H(1)=10., + RFP3H(2)=20., + RFP3H(3)=35., + RFP3H(4)=50., + RFP3H(5)=75., + RFP3H(6)=100., + RFP3H(7)=150., + RFP3H(8)=200., + RFP3H(9)=250., + RFP3H(10)=375., + RFP3H(11)=500., + RFP3H(12)=625., + RFP3H(13)=750., + RFP3H(14)=875., + RFP3H(15)=1000., + RFP3H(16)=1125., + RFP3H(17)=1250., + RFP3H(18)=1375., + RFP3H(19)=1500., + RFP3H(20)=1750., + RFP3H(21)=2000., + RFP3H(22)=2250., + RFP3H(23)=2500., + RFP3H(24)=2750., + RFP3H(25)=3000., + RFP3I(1)=-273.15, + RFP3I(2)=-263.15, + RFP3I(3)=-261.15, + RFP3I(4)=-253.15, + RFP3P(1)=10000., + RFP3P(2)=12500., + RFP3P(3)=15000., + RFP3P(4)=17500., + RFP3P(5)=20000., + RFP3P(6)=22500., + RFP3P(7)=25000., + RFP3P(8)=27500., + RFP3P(9)=30000., + RFP3P(10)=35000., + RFP3P(11)=40000., + RFP3P(12)=45000., + RFP3P(13)=50000., + RFP3P(14)=55000., + RFP3P(15)=60000., + RFP3P(16)=65000., + RFP3P(17)=70000., + RFP3P(18)=75000., + RFP3P(19)=80000., + RFP3P(20)=85000., + RFP3P(21)=90000., + RFP3P(22)=92500., + RFP3P(23)=95000., + RFP3P(24)=100000., + RFP3PV(1)=0.0000015, + RFP3PV(2)=0.000002, + RFPCD2=5., + RFPCSAB=50., + RFPVCAP=7000., + / + &NAMFPD + NLAT(1)=41, + NLON(1)=41, + RLONC(1)=-0.71, + RLATC(1)=44.8, + RDELX(1)=0.025, + RDELY(1)=0.025, + / + &NAMFPDY2 + / + &NAMFPDYF + / + &NAMFPDYH + / + &NAMFPDYI + / + &NAMFPDYP + / + &NAMFPDYS + / + &NAMFPDYT + / + &NAMFPDYV + / + &NAMFPF + NFMAX(1)=60, + NFMAX(2)=80, + / + &NAMFPG + NFPDISTRIB=1, + / + &NAMFPIOS + / + &NAMFPMOVE + / + &NAMFPPHY + / + &NAMFPSC2 + NFPROMA=-50, + / + &NAMFPSC2_DEP + NFPROMA_DEP=-50, + / + &NAMGEM + / + &NAMGFL + NGFL_EZDIAG=4, + YEZDIAG_NL(1)%CNAME='EZDIAG01', + YEZDIAG_NL(1)%LREQOUT=.FALSE., + YEZDIAG_NL(2)%CNAME='EZDIAG02', + YEZDIAG_NL(2)%LREQOUT=.FALSE., + YEZDIAG_NL(3)%CNAME='EZDIAG03', + YEZDIAG_NL(3)%LREQOUT=.FALSE., + YEZDIAG_NL(4)%CNAME='INPRRTOT3D', + YEZDIAG_NL(4)%LREQOUT=.TRUE., + YG_NL%LQM=.TRUE., + YG_NL%LSLHD=.TRUE., + YG_NL%NCOUPLING=-1, + YG_NL%NREQIN=1, + YG_NL%REFVALC=0., + YIRAD_NL%LGP=.TRUE., + YI_NL%LQM=.TRUE., + YI_NL%LSLHD=.TRUE., + YI_NL%NCOUPLING=-1, + YI_NL%NREQIN=1, + YI_NL%REFVALC=0., + YLRAD_NL%LGP=.TRUE., + YL_NL%LQM=.TRUE., + YL_NL%LSLHD=.TRUE., + YL_NL%NCOUPLING=-1, + YL_NL%NREQIN=1, + YL_NL%REFVALC=0., + YQ_NL%LCOMAD=.TRUE., + YQ_NL%LQM=.TRUE., + YQ_NL%LSLHD=.FALSE., + YQ_NL%NREQIN=1, + YR_NL%LQM=.TRUE., + YR_NL%LSLHD=.TRUE., + YR_NL%NCOUPLING=-1, + YR_NL%NREQIN=1, + YR_NL%REFVALC=0., + YS_NL%LQM=.TRUE., + YS_NL%LSLHD=.TRUE., + YS_NL%NCOUPLING=-1, + YS_NL%NREQIN=1, + YS_NL%REFVALC=0., + YTKE_NL%NCOUPLING=0, + YTKE_NL%NREQIN=1, + / + &NAMGRIB + / + &NAMGWD + / + &NAMGWDIAG + / + &NAMGWWMS + / + &NAMIAU + ALPHAIAU=0.5, + LIAU=.FALSE., + TSTARTIAU=1800, + TSTOPIAU=5340, + / + &NAMICE + / + &NAMINI + LDFI=.FALSE., + / + &NAMINTFLEX + / + &NAMIOMI + / + &NAMIOS + / + &NAMIO_SERV + NIO_SERV_BUF_MAXSIZE=20, + NIO_SERV_METHOD=2, + NMSG_LEVEL_CLIENT=0, + NMSG_LEVEL_SERVER=0, + NPROCESS_LEVEL=5, + NPROC_IO=0, + / + &NAMJBCODES + / + &NAMJFH + / + &NAMJG + / + &NAMLCZ + / + &NAMLSFORC + / + &NAMMARS + / + &NAMMCC + / + &NAMMCUF + / + &NAMMKODB + / + &NAMMODERR + / + &NAMMTS + / + &NAMMWAVE + / + &NAMNPROF + / + &NAMNUD + / + &NAMOBS + / + &NAMONEDVAR + / + &NAMOOPS + / + &NAMOPH + CFNHWF='ECHIS', + LINC=.TRUE., + NTIMEFMT=1, + / + &NAMOPTCMEM + / + &NAMPAR0 + LOPT_SCALAR=.TRUE., + NPRINTLEV=1, + LMPOFF=.FALSE., + MBX_SIZE=2048000000, + MP_TYPE=2, + NOUTPUT=1, + NPROC=$NPROC, +$NPRTRW_NPRTRV + / + &NAMPAR1 + LEQ_REGIONS=.FALSE., + LSLONDEM=.TRUE., + LSPLIT=.TRUE., + LSYNC_SLCOM=.FALSE., + LSYNC_TRANS=.FALSE., + L_GATHERV_WRGP=.FALSE., + NCOMBFLEN=1800000, + NSTRIN=$NSTRIN, + NSTROUT=$NSTROUT, + / + &NAMPARAR + CMF_UPDRAFT='EDKF' + CMF_CLOUD='STAT' + CFRAC_ICE_ADJUST='S', + CFRAC_ICE_SHALLOW_MF='S', + CMICRO='ICE3', + CSEDIM='STAT', + CSNOWRIMING='M90', + LCONVHG=.TRUE., + LCRFLIMIT=.TRUE., + LCRIAUTI=.TRUE., + LEVLIMIT=.TRUE., + LFEEDBACKT=.TRUE., + LFPREC3D=.TRUE., + LNULLWETG=.TRUE., + LNULLWETH=.TRUE., + LOLSMC=.TRUE., + LOSEDIC=.TRUE., + LOSIGMAS=.FALSE., + LOSUBG_COND=.TRUE., + LSEDIM_AFTER=.FALSE., + LWETGPOST=.TRUE., + LWETHPOST=.TRUE., + NMAXITER_MICRO=1, + NPRINTFR=10000, + NPTP=1, + RCRIAUTC=0.001, + RCRIAUTI=0.0002, + RT0CRIAUTI=-5., + VSIGQSAT=0.02, + XFRACM90=0.1, + XMRSTEP=0.00005, + XSPLIT_MAXCFL=0.8, + XTSTEP_TS=0., + / + &NAMPHMSE + LPGDFWR=.FALSE., + / + &NAMPHY + LAERODES=.TRUE., + LAEROLAN=.TRUE., + LAEROSEA=.TRUE., + LAEROSOO=.TRUE., + LEDR=.TRUE., + LMPHYS=.TRUE., + LO3ABC=.TRUE., + LRAYFM=.TRUE., + / + &NAMPHY0 + ALMAV=300., + BEDIFV=0.05, + ECMNP=3000., + GCCSV=0., + GCVADS=0.8, + GCVALFA=0.000045, + GCVBETA=0.2, + GCVMLT=0.00016, + GCVNU=0.000025, + GCVPSI=1., + GCVPSIE=1., + GDDEVA=0.25, + GDDSDE=0.5, + GWDCD=6., + HUCOE=0.5, + HUTIL=1.8, + QSSC=400., + QSSUSC=0.75, + QSSUSS=0.4, + QSSUSV=250., + QSUSXC=0.0002, + QSUSXS=0.0003, + QXRAL=130., + QXRDEL=0.49, + QXRHX=0.99, + QXRR=0.25, + RCVEVAP=0.25, + REFLKUO=5000., + REVGSL=15., + SCO=-20., + TDDGP=0.8, + TENTR=0.0000025, + TENTRX=0.00008, + TUDGP=0.8, + UHDIFV=0.0008, + USURIC=0.175, + USURICE=0.5, + USURICL=1., + USURID=0.1, + USURIDE=0.25, + VZ0CM=0.00015, + XMAXLM=5000., + XMINLM=10., + / + &NAMPHY1 + ALBMIN=0.65, + ALCRIN=0.75, + GCGEL=0.00003, + GCGELS=0.00005, + GNEIMX=1.8, + GNEIMXS=1.8, + RCTVEG(3)=0.000012, + RCTVEG(4)=0.00001, + / + &NAMPHY2 + FACRAF=3.8, + HTKERAF=20., + LMULAF=.TRUE., + LRAFTKE=.TRUE., + LRAFTUR=.TRUE., + XDAMP=1., + XMULAF=-1.85, + / + &NAMPHY3 + / + &NAMPHYDS + / + &NAMPONG + / + &NAMPPC + / + &NAMPPVI + / + &NAMPRE + / + &NAMRAD15 + / + &NAMRADCMEM + / + &NAMRCF + / + &NAMRCOEF + / + &NAMRES + / + &NAMRGRI + / + &NAMRINC + / + &NAMRIP + TSTEP=50., + CSTOP='h2', + / + &NAMRIP0 + / + &NAMRLX + / + &NAMSATS + LPARTIAL_COEF_FILES=.TRUE., + / + &NAMSCC + / + &NAMSCEN + / + &NAMSCM + / + &NAMSEKF + / + &NAMSENS + / + &NAMSFXCMP + CFLDNAME(1)='????????????????', + NBBITS(1)=24, + / + &NAMSIMPHL + / + &NAMSPNG + / + &NAMSPSDT + / + &NAMSTA + / + &NAMSTOPH + / + &NAMSWE + / + &NAMTESTVAR + / + &NAMTHLIM + / + &NAMTOPH + ETCVIM=5000., + ETNEBU=5000., + ETPLUI=5000., + XDRMTK=6.0D-7, + XDRMTP=800., + XDRMUK=3.0D-7, + XDRMUP=800., + / + &NAMTRAJP + / + &NAMTRANS + / + &NAMTRANS0 + / + &NAMTS + / + &NAMVAR + / + &NAMVARBC + / + &NAMVARBC_AIREP + / + &NAMVARBC_ALLSKY + / + &NAMVARBC_GBRAD + / + &NAMVARBC_RAD + / + &NAMVARBC_SFCOBS + / + &NAMVARBC_TCWV + / + &NAMVARBC_TO3 + / + &NAMVAREPS + / + &NAMVDF + / + &NAMVDOZ + / + &NAMVOLCANO + / + &NAMVRTL + / + &NAMVV0 + / + &NAMVV1 + / + &NAMVWRK + / + &NAMWAVELETJB + / + &NAMXFU + LXCLP=.TRUE., + LXCLS=.TRUE., + LXFU=.TRUE., + LXNEBPA=.TRUE., + LXNEBTT=.TRUE., + LXNUVCLS=.TRUE., + LXPLS=.TRUE., + LXPLSG=.TRUE., + LXQCLS=.TRUE., + LXR=.TRUE., + LXSOIL=.FALSE., + LXTHW=.TRUE., + LXTRT=.TRUE., + LXTTCLS=.TRUE., + LXXDIAGH=.TRUE., + LXXGST=.TRUE., + NFRRAZ=72, + NRAZTS(0)=0, + / + &NAM_CANAPE + / + &NAM_DISTRIBUTED_VECTORS + / + &NAPHLC + / + &NEMCT0 + / + &NEMDIM + / + &NEMDYN + / + &NEMELBC0A + LESPCPL=.TRUE., + NBICNHX=2, + NBICOP=2, + NBICOT=2, + NBICOU=2, + NBICPD=2, + NBICVD=2, + NECRIPL=1, + / + &NEMELBC0B + NEFRSPCPL=1, + NEK0=20, + NEK1=30, + NEN1=4, + NEN2=8, + SPNUDDIV=0.01, + SPNUDQ=0., + SPNUDT=0.01, + SPNUDVOR=0.01, + TEFRCL=3600., + / + &NEMFPEZO + / + &NEMGEO + / + &NEMJK + / + &NEMVAR + / + &NEMWAVELET + / + &NAETLDIAG + / + &NAMMETHOX + / + &NAMSPP + / + &NAMACV + / + &NAMFPOBJ + / + &NAMNORGWD + / + &NAMTRAJ + / + &NAMSATSIM + / + &NAMDVISI + / + &NAMNUDGLH + / + &NAMPERTPAR + / +FIN +/bin/cat fort.4 + +/bin/cat <<FIN > EXSEG1.nam + &NAM_DIAG_ISBAN + LPGD=.TRUE., + LSURF_MISC_BUDGET=.TRUE., + / + &NAM_DIAG_SURFN + LCOEF=.TRUE., + LSURF_BUDGET=.TRUE., + N2M=2, + / + &NAM_ISBAN + CSCOND='NP89', + / + &NAM_REPROD_OPER + LREPROD_OPER=.TRUE., + / + &NAM_SEAFLUXN + CSEA_FLUX='ECUME', + LPWG=.FALSE., + LPRECIP=.FALSE., + LPWEBB=.FALSE., + / + &NAM_SSON + CROUGH='Z01D', + XFRACZ0=5., + LDSV=.FALSE., + / + &NAM_SURF_ATM + XRIMAX=0.2, + LNOSOF=.TRUE., + / + &NAM_SURF_CSTS + XZ0SN=0.01, + XZ0HSN=0.001, + XEMISSN=0.99, + / + &NAM_WRITE_DIAG_SURFN + LPROVAR_TO_DIAG=.FALSE., + LSELECT=.TRUE., +CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS', + / + &NAM_WRITE_SURF_ATM + LNOWRITE_TEXFILE=.TRUE., + / +FIN +/bin/cat EXSEG1.nam + +# ***************************************** +# * Acquisition du fichier de demarrage * +# ***************************************** + +echo +for hh in 0 1 2 3 4 5 6 ; do + N=`expr $hh / 1 ` + set -x + ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N} + set +x +done +set -x +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx +ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin . +ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim +ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx +ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025 +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat . +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat . +ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat . +set +x +tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz + +# *************** +# * Chargement * +# *************** + +echo +set -x +\ln -s $LOADIR/MASTERODB MASTER +set +x +if ldd MASTER | grep openmpi > /dev/null; then + #On est sur PC + MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}') + MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC" + GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1 + export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions + export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions +else + #On est sur HPC + #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD" + NNODES=$SLURM_JOB_NUM_NODES + MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES)) + MPI_TASKS=$SLURM_NTASKS + MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --" + export OMP_STACKSIZE=4G + export KMP_STACKSIZE=4G + export KMP_MONITOR_STACKSIZE=4G + export DR_HOOK=1 + export DR_HOOK_IGNORE_SIGNALS=-1 + export DR_HOOK_SILENT=1 + export DR_HOOK_SHOW_PROCESS_OPTIONS=0 + export MPL_MBX_SIZE=2048000000 + export EC_PROFILE_HEAP=0 + export EC_PROFILE_MEM=0 + export EC_MPI_ATEXIT=0 + export EC_MEMINFO=0 + export OPENBLAS_NUM_THREADS=1 + export MKL_CBWR="AUTO,STRICT" + export MKL_NUM_THREADS=1 + export MKL_DEBUG_CPU_TYPE=5 + export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions +fi +echo $MPIRUN +set +x +if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi + +# *************** +# * Execution * +# *************** + +echo +echo OMP_NUM_THREADS=$OMP_NUM_THREADS +set -x +ulimit -s unlimited +$MPIRUN $PWD/MASTER >lola +set +x +echo +##if [ -f lola ] ; then +## echo;echo Standard output :;echo;cat lola +##fi +##if [ -f stderr.* ] ; then +## for file in stderr.* ; do +## echo;echo $file :;cat $file +## done +##fi +##if [ -f stdout.* ] ; then +##echo;echo stdout :;echo;cat stdout.* +##fi +##if [ -a NODE.001_01 ] ; then +## for file in NODE* ; do +## echo;echo Listing $file;echo +## cat $file +## done +##fi +##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then +### Top 25 for each MPI task : +## for file in drhook.prof.* ; do +## echo;echo $file :;head -38 $file +## done +##fi +#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl + +# ******************* +# * Sauvegardes * +# ******************* + +ls +#if [ -f PFFPOS000+0000 ] ; then +# cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID +#fi +cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/ +/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001* +/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00* +/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz) + +# **************** +# * Epilogue * +# **************** + +ls -ltr | grep -v "\->" +echo Wait_queue : +ls -ltr $TMPWAIT +cd $TMPDIR +\rm -rf rundir.$$ +\rm -rf wait_queue.$$ +date +set +x diff --git a/tools/conf_tests/small_3D_alt8/aro48t3.sh b/tools/conf_tests/small_3D_alt8/aro48t3.sh new file mode 100755 index 0000000000000000000000000000000000000000..c0b50410dbfb71c2982e2a467283b7b17620368d --- /dev/null +++ b/tools/conf_tests/small_3D_alt8/aro48t3.sh @@ -0,0 +1,1208 @@ +#!/bin/bash +#SBATCH -n 4 +#SBATCH --mem=20000 +#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR +#SBATCH -t 00:10:00 +#SBATCH -N 1 +#SBATCH -p normal256 + +#The MYLIB variable must contain the gmkpack pack name +#The TESTDIR variable must contain the test directory +#Results will be stored in the local directory + +#Other environment varaibles that can be set: +#OUTPUTDIR + +date + +OUTPUTDIR=${OUTPUTDIR:-$PWD} +case=riette2 +#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script +rekchemin=$TESTDIR + +NPROC=4 +NSTRIN=$NPROC +NSTROUT=1 +NPRTRW_NPRTRV="" +NPRTRW_NPRTRV=" NPRTRW=$NPROC, + NPRTRV=1," +export OMP_NUM_THREADS=1 + +#MYLIB=48t1_main.01%jpdup + +export DR_HOOK=1 +#export DR_HOOK_IGNORE_SIGNALS=-1 +export DR_HOOK_NOT_MPI=1 +export DR_HOOK_SILENT=1 +export DR_HOOK_OPT= + +export EC_PROFILE_HEAP=0 +export EC_PROFILE_MEM=0 +export EC_MPI_ATEXIT=0 +export DR_HOOK_SHOW_PROCESS_OPTIONS=0 +export EC_MEMINFO=0 +export TVSEARCHPATH=$SOURCE + +HOMEPACK=${HOMEPACK:=$HOME/pack} +SOURCE=$HOMEPACK/$MYLIB/src/local +LOADIR=$HOMEPACK/$MYLIB/bin + +TMPDIR=${TMPDIR:=$HOME/tmp} +TMPLOC=$TMPDIR/rundir.$$ +TMPWAIT=$TMPDIR/wait_queue.$$ +mkdir $TMPWAIT +mkdir $TMPLOC +cd $TMPLOC + +export RTTOV_COEFDIR=$PWD + +# ************************** +# * Saisie des NAMELISTS * +# ************************** + +CNMEXP='FPOS' + +echo +/bin/cat <<FIN > fort.4 + &NACIETEO + / + &NACOBS + / + &NACTAN + / + &NACTEX + / + &NACVEG + / + &NADOCK + / + &NAEAEM7 + / + &NAEAER + / + &NAECOAPHY + / + &NAEPHLI + / + &NAEPHY + / + &NAERAD + LRRTM=.TRUE., + LSRTM=.FALSE., + NAER=1, + NICEOPT=3, + NLIQOPT=3, + NOVLP=6, + NOZOCL=2, + NRADFR=18, + NRADIP=3, + NRADLP=2, + NSW=6, + RLWINHF=1, + RRE2DE=0.64952, + RSWINHF=1, + / + &NAERCLI + / + &NAEVOL + / + &NAIMPO + / + &NALORI + / + &NAMAFN + GFP_CLSG%CLNAME='SURFACCGRAUPEL', + GFP_CLSP%CLNAME='SURFACCPLUIE', + GFP_CLSS%CLNAME='SURFACCNEIGE', + GFP_SFIS%IBITS=16, + GFP_ST%CLNAME='SURFTEMPERATURE', + GFP_ST%IANO=0, + GFP_ST%IBITS=12, + GFP_X10U%CLNAME='CLSVENT.ZONAL', + GFP_X10U%IANO=0, + GFP_X10U%IBITS=12, + GFP_X10V%CLNAME='CLSVENT.MERIDIEN', + GFP_X10V%IANO=0, + GFP_X10V%IBITS=12, + GFP_X2RH%CLNAME='CLSHUMI.RELATIVE', + GFP_X2RH%IANO=0, + GFP_X2RH%IBITS=12, + GFP_X2T%CLNAME='CLSTEMPERATURE', + GFP_X2T%IANO=1, + GFP_XCCC%IBITS=8, + GFP_XHCC%IBITS=8, + GFP_XLCC%IBITS=8, + GFP_XLSG%CLNAME='SURFINSGRAUPEL', + GFP_XLSP%CLNAME='SURFINSPLUIE', + GFP_XLSS%CLNAME='SURFINSNEIGE', + GFP_XMCC%IBITS=8, + GFP_XN2T%IBITS=12, + GFP_XTCC%IBITS=8, + GFP_XUGST%CLNAME='CLSU.RAF60M.XFU', + GFP_XUGST%IANO=0, + GFP_XUGST%IBITS=12, + GFP_XVGST%CLNAME='CLSV.RAF60M.XFU', + GFP_XVGST%IANO=0, + GFP_XVGST%IBITS=12, + GFP_XX2T%IBITS=12, + GFP_XXDIAGH%IBITS=12, + TFP_ABS%ZFK=32., + TFP_CLF%IBITS=6, + TFP_EDR%CLNAME='EDR', + TFP_EDR%IBITS=16, + TFP_EDR%IGRIB=136, + TFP_GR%IBITS=12, + TFP_HL%IBITS=12, + TFP_HTB%IBITS=16, + TFP_HTB%LLGP=.TRUE., + TFP_HU%IBITS=12, + TFP_MSAT9C2%IBITS=12, + TFP_MSAT9C6%IBITS=12, + TFP_MSLNH%IBITS=12, + TFP_PV%ZFK=64., + TFP_RCLS%IBITS=12, + TFP_RR%IBITS=12, + TFP_SN%IBITS=12, + TFP_T%IBITS=12, + TFP_TCLS%IBITS=12, + TFP_TH%IBITS=12, + TFP_THPW%IBITS=12, + TFP_THV%IBITS=12, + TFP_TN%IBITS=12, + TFP_TWV%IBITS=12, + TFP_TX%IBITS=12, + TFP_U%IBITS=12, + TFP_V%IBITS=12, + TFP_VOR%ZFK=32., + TFP_VV%ZFK=32., + / + &NAMARG + CNMEXP='${CNMEXP}', + LECMWF=.FALSE., + LELAM=.TRUE., + LSLAG=.TRUE., + NCONF=1, + NSUPERSEDE=1, + / + &NAMARPHY + LKFBCONV=.FALSE., + LKFBD=.FALSE., + LKFBS=.FALSE., + LMFSHAL=.TRUE., + LMICRO=.TRUE., + LMPA=.TRUE., + LMSE=.TRUE., + LTURB=.TRUE., + / + &NAMCA + / + &NAMCAPE + / + &NAMCFU + LCUMFU=.TRUE., + LFPLS=.TRUE., + LFPLSG=.TRUE., + LFR=.TRUE., + LFRRC=.TRUE., + LFSF=.TRUE., + LNEBPAR=.TRUE., + LNEBTT=.TRUE., + LRAYD=.TRUE., + LRAYS=.TRUE., + / + &NAMCHEM + / + &NAMCHET + / + &NAMCHK + / + &NAMCLA + / + &NAMCLDP + / + &NAMCLI + / + &NAMCLOP15 + / + &NAMCLTC + / + &NAMCOK + / + &NAMCOM + / + &NAMCOSJO + / + &NAMCOUPLO4 + / + &NAMCT0 + CFPNCF='ECHFP', + CNPPATH=' ', + LAROME=.TRUE., + LNHEE=.TRUE., + LSCREEN_OPENMP=.FALSE., + LSPRT=.TRUE., + LTWOTL=.TRUE., + NFPOS=1, + NFRSDI=18, + NSDITS(0)=0, + NFRHIS=72, + NHISTS(0)=0, + NFRPOS=72, + NPOSTS(0)=0, + NFRSFXHIS=72, + NSFXHISTS(0)=0, + NFRDHFD=72, + NDHFDTS(0)=0, + / + &NAMCT1 + LRFILAF=.FALSE., + N1HIS=1, + N1POS=1, + N1RES=0, + N1SDI=1, + N1SFXHIS=1, + N1GDI=0, + / + &NAMCUMF + / + &NAMCUMFS + / + &NAMCVER + / + &NAMCVMNH + / + &NAMDDH + LDDH_OMP=.TRUE., + LHDDOP=.TRUE., + LHDHKS=.TRUE., + LHDEFD=.TRUE., + LFLEXDIA=.TRUE., + BDEDDH(1,1)=3, + BDEDDH(2,1)=1, + BDEDDH(3,1)=358.8 + BDEDDH(4,1)=45.1 + BDEDDH(5,1)=360.3 + BDEDDH(6,1)=44.5 + / + &NAMDFI + / + &NAMDIM + NPROMA=-50, + / + &NAMDIMO + / + &NAMDIM_TRAJ + / + &NAMDPHY + / + &NAMDPRECIPS + / + &NAMDYN + LADVF=.TRUE., + LQMPD=.FALSE., + LQMT=.FALSE., + LQMVD=.FALSE., + LRHDI_LASTITERPC=.TRUE., + NITMP=4, + NSITER=1, + NSPDLAG=3, + NSVDLAG=3, + NTLAG=3, + NVLAG=3, + NWLAG=3, + RDAMPDIV=20., + RDAMPPD=20., + RDAMPQ=0., + RDAMPT=0., + RDAMPVD=20., + RDAMPVOR=20., + REPS1=0., + REPS2=0., + REPSM1=0., + REPSM2=0., + REPSP1=0., + SDRED=1., + SIPR=90000., + SITR=350., + SITRA=100., + SLHDA0=0.25, + SLHDD00=0.000065, + VESL=0.05, + XIDT=0., + ZSLHDP1=1.7, + ZSLHDP3=0.6, + / + &NAMDYNA + LCOMADH=.TRUE., + LCOMADV=.FALSE., + LCOMAD_GFL=.TRUE., + LCOMAD_SP=.TRUE., + LCOMAD_SPD=.TRUE., + LCOMAD_SVD=.TRUE., + LCOMAD_T=.TRUE., + LCOMAD_W=.TRUE., + LGWADV=.TRUE., + LNESC=.TRUE., + LPC_CHEAP=.TRUE., + LPC_FULL=.TRUE., + LRDBBC=.FALSE., + LSETTLS=.FALSE., + LSETTLST=.TRUE., + LSLHD_GFL=.TRUE., + LSLHD_OLD=.FALSE., + LSLHD_SPD=.FALSE., + LSLHD_SVD=.FALSE., + LSLHD_T=.FALSE., + LSLHD_W=.FALSE., + ND4SYS=2, + NDLNPR=1, + NPDVAR=2, + NVDVAR=4, + SLHDEPSH=0.08, + SLHDKMAX=6, + / + &NAMDYNCORE + / + &NAMEMIS_CONF + / + &NAMENKF + / + &NAMFA + CMODEL='OUTPUTID', + LEXTERN=.TRUE., + LSUPPDATE=.FALSE., + NBITCS=-1, + NBITPG=-1, + NSTRON=-1, + / + &NAMFAINIT + JPXTRO=2000, + / + &NAMFPC + CFP2DF(1)='SURFPRESSION', + CFP2DF(2)='MSL_NHPRESSURE', + CFP2DF(3)='SURFTOT.WAT.VAPO', + CFP2DF(4)='SURFISOTPW0.MALT', + CFP2DF(5)='SURFCAPE.POS.F00', + CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS', + CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS', + CFP2DF(8)='SURFREFLECT.MAX', + CFP2DF(9)='SURFISOTPW1.MALT', + CFP2DF(10)='SURFISOTPW2.MALT', + CFP3DF(1)='GEOPOTENTIEL', + CFP3DF(2)='TEMPERATURE', + CFP3DF(3)='VENT_ZONAL', + CFP3DF(4)='VENT_MERIDIEN', + CFP3DF(5)='HUMI_RELATIVE', + CFP3DF(6)='THETA_PRIM_W', + CFP3DF(7)='PRESSURE', + CFP3DF(8)='ABS_VORTICITY', + CFP3DF(9)='VITESSE_VERTICALE', + CFP3DF(10)='TEMPE_POTENT', + CFP3DF(11)='POT_VORTICIT', + CFP3DF(12)='SIM_REFLECTI', + CFP3DF(13)='RAIN', + CFP3DF(14)='SNOW', + CFP3DF(15)='GRAUPEL', + CFP3DF(16)='ICE_CRYSTAL', + CFP3DF(17)='CLOUD_WATER', + CFP3DF(18)='VERT.VELOCIT', + CFP3DF(19)='DIVERGENCE', + CFP3DF(20)='THETA_VIRTUA', + CFP3DF(21)='TKE', + CFP3DF(22)='CLOUD_FRACTI', + CFP3DF(23)='ISOT_ALTIT', + CFP3DF(24)='EDR', + CFPCFU(1)='SURFTENS.TOTA.ZO', + CFPCFU(2)='SURFTENS.TOTA.ME', + CFPCFU(3)='SURFACCPLUIE', + CFPCFU(4)='SURFACCNEIGE', + CFPCFU(5)='SURFACCGRAUPEL', + CFPCFU(6)='SOMMFLU.RAY.SOLA', + CFPCFU(7)='SURFFLU.RAY.SOLA', + CFPCFU(8)='SOMMFLU.RAY.THER', + CFPCFU(9)='SURFFLU.RAY.THER', + CFPCFU(10)='SURFFLU.LAT.MTOT', + CFPCFU(11)='SURFFLU.MTOTA.NE', + CFPCFU(12)='SURFFLU.CHA.SENS', + CFPCFU(13)='SURFRAYT SOLA DE', + CFPCFU(14)='SURFRAYT THER DE', + CFPCFU(15)='SURFRAYT SOL CL', + CFPCFU(16)='SURFRAYT THER CL', + CFPCFU(17)='SURFRAYT DIR SUR', + CFPDOM(1)='FRANGP0025', + CFPFMT='LALON', + CFPPHY(1)='SURFTEMPERATURE', + CFPPHY(2)='INTSURFGEOPOTENT', + CFPPHY(3)='SURFRESERV.NEIGE', + CFPXFU(1)='CLSTEMPERATURE', + CFPXFU(2)='CLSHUMI.RELATIVE', + CFPXFU(3)='CLSVENT.ZONAL', + CFPXFU(4)='CLSVENT.MERIDIEN', + CFPXFU(5)='SURFNEBUL.TOTALE', + CFPXFU(6)='SURFNEBUL.HAUTE', + CFPXFU(7)='SURFNEBUL.MOYENN', + CFPXFU(8)='SURFNEBUL.BASSE', + CFPXFU(9)='CLSMAXI.TEMPERAT', + CFPXFU(10)='CLSMINI.TEMPERAT', + CFPXFU(11)='CLPMHAUT.MOD.XFU', + CFPXFU(12)='SURFDIAGHAIL', + LCRITSNOWTEMP=.FALSE., + LFPCAPEX=.TRUE., + LFPMOIS=.TRUE., + LFPPACKING=.FALSE., + LWIDER_DOM=.TRUE., + L_READ_MODEL_DATE=.TRUE., + NFITI=1, + NFITV=1, + NFPCAPE=5, + NFPCLI=1, + NFPGRIB=1, + NFPINPHY=4, + NITERPV=8, + RENTRA=0.0001, + RFP3H(1)=10., + RFP3H(2)=20., + RFP3H(3)=35., + RFP3H(4)=50., + RFP3H(5)=75., + RFP3H(6)=100., + RFP3H(7)=150., + RFP3H(8)=200., + RFP3H(9)=250., + RFP3H(10)=375., + RFP3H(11)=500., + RFP3H(12)=625., + RFP3H(13)=750., + RFP3H(14)=875., + RFP3H(15)=1000., + RFP3H(16)=1125., + RFP3H(17)=1250., + RFP3H(18)=1375., + RFP3H(19)=1500., + RFP3H(20)=1750., + RFP3H(21)=2000., + RFP3H(22)=2250., + RFP3H(23)=2500., + RFP3H(24)=2750., + RFP3H(25)=3000., + RFP3I(1)=-273.15, + RFP3I(2)=-263.15, + RFP3I(3)=-261.15, + RFP3I(4)=-253.15, + RFP3P(1)=10000., + RFP3P(2)=12500., + RFP3P(3)=15000., + RFP3P(4)=17500., + RFP3P(5)=20000., + RFP3P(6)=22500., + RFP3P(7)=25000., + RFP3P(8)=27500., + RFP3P(9)=30000., + RFP3P(10)=35000., + RFP3P(11)=40000., + RFP3P(12)=45000., + RFP3P(13)=50000., + RFP3P(14)=55000., + RFP3P(15)=60000., + RFP3P(16)=65000., + RFP3P(17)=70000., + RFP3P(18)=75000., + RFP3P(19)=80000., + RFP3P(20)=85000., + RFP3P(21)=90000., + RFP3P(22)=92500., + RFP3P(23)=95000., + RFP3P(24)=100000., + RFP3PV(1)=0.0000015, + RFP3PV(2)=0.000002, + RFPCD2=5., + RFPCSAB=50., + RFPVCAP=7000., + / + &NAMFPD + NLAT(1)=41, + NLON(1)=41, + RLONC(1)=-0.71, + RLATC(1)=44.8, + RDELX(1)=0.025, + RDELY(1)=0.025, + / + &NAMFPDY2 + / + &NAMFPDYF + / + &NAMFPDYH + / + &NAMFPDYI + / + &NAMFPDYP + / + &NAMFPDYS + / + &NAMFPDYT + / + &NAMFPDYV + / + &NAMFPF + NFMAX(1)=60, + NFMAX(2)=80, + / + &NAMFPG + NFPDISTRIB=1, + / + &NAMFPIOS + / + &NAMFPMOVE + / + &NAMFPPHY + / + &NAMFPSC2 + NFPROMA=-50, + / + &NAMFPSC2_DEP + NFPROMA_DEP=-50, + / + &NAMGEM + / + &NAMGFL + NGFL_EZDIAG=4, + YEZDIAG_NL(1)%CNAME='EZDIAG01', + YEZDIAG_NL(1)%LREQOUT=.FALSE., + YEZDIAG_NL(2)%CNAME='EZDIAG02', + YEZDIAG_NL(2)%LREQOUT=.FALSE., + YEZDIAG_NL(3)%CNAME='EZDIAG03', + YEZDIAG_NL(3)%LREQOUT=.FALSE., + YEZDIAG_NL(4)%CNAME='INPRRTOT3D', + YEZDIAG_NL(4)%LREQOUT=.TRUE., + YG_NL%LQM=.TRUE., + YG_NL%LSLHD=.TRUE., + YG_NL%NCOUPLING=-1, + YG_NL%NREQIN=1, + YG_NL%REFVALC=0., + YIRAD_NL%LGP=.TRUE., + YI_NL%LQM=.TRUE., + YI_NL%LSLHD=.TRUE., + YI_NL%NCOUPLING=-1, + YI_NL%NREQIN=1, + YI_NL%REFVALC=0., + YLRAD_NL%LGP=.TRUE., + YL_NL%LQM=.TRUE., + YL_NL%LSLHD=.TRUE., + YL_NL%NCOUPLING=-1, + YL_NL%NREQIN=1, + YL_NL%REFVALC=0., + YQ_NL%LCOMAD=.TRUE., + YQ_NL%LQM=.TRUE., + YQ_NL%LSLHD=.FALSE., + YQ_NL%NREQIN=1, + YR_NL%LQM=.TRUE., + YR_NL%LSLHD=.TRUE., + YR_NL%NCOUPLING=-1, + YR_NL%NREQIN=1, + YR_NL%REFVALC=0., + YS_NL%LQM=.TRUE., + YS_NL%LSLHD=.TRUE., + YS_NL%NCOUPLING=-1, + YS_NL%NREQIN=1, + YS_NL%REFVALC=0., + YTKE_NL%NCOUPLING=0, + YTKE_NL%NREQIN=1, + / + &NAMGRIB + / + &NAMGWD + / + &NAMGWDIAG + / + &NAMGWWMS + / + &NAMIAU + ALPHAIAU=0.5, + LIAU=.FALSE., + TSTARTIAU=1800, + TSTOPIAU=5340, + / + &NAMICE + / + &NAMINI + LDFI=.FALSE., + / + &NAMINTFLEX + / + &NAMIOMI + / + &NAMIOS + / + &NAMIO_SERV + NIO_SERV_BUF_MAXSIZE=20, + NIO_SERV_METHOD=2, + NMSG_LEVEL_CLIENT=0, + NMSG_LEVEL_SERVER=0, + NPROCESS_LEVEL=5, + NPROC_IO=0, + / + &NAMJBCODES + / + &NAMJFH + / + &NAMJG + / + &NAMLCZ + / + &NAMLSFORC + / + &NAMMARS + / + &NAMMCC + / + &NAMMCUF + / + &NAMMKODB + / + &NAMMODERR + / + &NAMMTS + / + &NAMMWAVE + / + &NAMNPROF + / + &NAMNUD + / + &NAMOBS + / + &NAMONEDVAR + / + &NAMOOPS + / + &NAMOPH + CFNHWF='ECHIS', + LINC=.TRUE., + NTIMEFMT=1, + / + &NAMOPTCMEM + / + &NAMPAR0 + LOPT_SCALAR=.TRUE., + NPRINTLEV=1, + LMPOFF=.FALSE., + MBX_SIZE=2048000000, + MP_TYPE=2, + NOUTPUT=1, + NPROC=$NPROC, +$NPRTRW_NPRTRV + / + &NAMPAR1 + LEQ_REGIONS=.FALSE., + LSLONDEM=.TRUE., + LSPLIT=.TRUE., + LSYNC_SLCOM=.FALSE., + LSYNC_TRANS=.FALSE., + L_GATHERV_WRGP=.FALSE., + NCOMBFLEN=1800000, + NSTRIN=$NSTRIN, + NSTROUT=$NSTROUT, + / + &NAMPARAR + CMF_UPDRAFT='RHCJ' + CFRAC_ICE_ADJUST='S', + CFRAC_ICE_SHALLOW_MF='S', + CMICRO='ICE3', + CSEDIM='STAT', + CSNOWRIMING='M90', + LCONVHG=.TRUE., + LCRFLIMIT=.TRUE., + LCRIAUTI=.TRUE., + LEVLIMIT=.TRUE., + LFEEDBACKT=.TRUE., + LFPREC3D=.TRUE., + LNULLWETG=.TRUE., + LNULLWETH=.TRUE., + LOLSMC=.TRUE., + LOSEDIC=.TRUE., + LOSIGMAS=.TRUE., + LOSUBG_COND=.TRUE., + LSEDIM_AFTER=.FALSE., + LWETGPOST=.TRUE., + LWETHPOST=.TRUE., + NMAXITER_MICRO=1, + NPRINTFR=10000, + NPTP=1, + RCRIAUTC=0.001, + RCRIAUTI=0.0002, + RT0CRIAUTI=-5., + VSIGQSAT=0.02, + XFRACM90=0.1, + XMRSTEP=0.00005, + XSPLIT_MAXCFL=0.8, + XTSTEP_TS=0., + / + &NAMPHMSE + LPGDFWR=.FALSE., + / + &NAMPHY + LAERODES=.TRUE., + LAEROLAN=.TRUE., + LAEROSEA=.TRUE., + LAEROSOO=.TRUE., + LEDR=.TRUE., + LMPHYS=.TRUE., + LO3ABC=.TRUE., + LRAYFM=.TRUE., + / + &NAMPHY0 + ALMAV=300., + BEDIFV=0.05, + ECMNP=3000., + GCCSV=0., + GCVADS=0.8, + GCVALFA=0.000045, + GCVBETA=0.2, + GCVMLT=0.00016, + GCVNU=0.000025, + GCVPSI=1., + GCVPSIE=1., + GDDEVA=0.25, + GDDSDE=0.5, + GWDCD=6., + HUCOE=0.5, + HUTIL=1.8, + QSSC=400., + QSSUSC=0.75, + QSSUSS=0.4, + QSSUSV=250., + QSUSXC=0.0002, + QSUSXS=0.0003, + QXRAL=130., + QXRDEL=0.49, + QXRHX=0.99, + QXRR=0.25, + RCVEVAP=0.25, + REFLKUO=5000., + REVGSL=15., + SCO=-20., + TDDGP=0.8, + TENTR=0.0000025, + TENTRX=0.00008, + TUDGP=0.8, + UHDIFV=0.0008, + USURIC=0.175, + USURICE=0.5, + USURICL=1., + USURID=0.1, + USURIDE=0.25, + VZ0CM=0.00015, + XMAXLM=5000., + XMINLM=10., + / + &NAMPHY1 + ALBMIN=0.65, + ALCRIN=0.75, + GCGEL=0.00003, + GCGELS=0.00005, + GNEIMX=1.8, + GNEIMXS=1.8, + RCTVEG(3)=0.000012, + RCTVEG(4)=0.00001, + / + &NAMPHY2 + FACRAF=3.8, + HTKERAF=20., + LMULAF=.TRUE., + LRAFTKE=.TRUE., + LRAFTUR=.TRUE., + XDAMP=1., + XMULAF=-1.85, + / + &NAMPHY3 + / + &NAMPHYDS + / + &NAMPONG + / + &NAMPPC + / + &NAMPPVI + / + &NAMPRE + / + &NAMRAD15 + / + &NAMRADCMEM + / + &NAMRCF + / + &NAMRCOEF + / + &NAMRES + / + &NAMRGRI + / + &NAMRINC + / + &NAMRIP + TSTEP=50., + CSTOP='h2', + / + &NAMRIP0 + / + &NAMRLX + / + &NAMSATS + LPARTIAL_COEF_FILES=.TRUE., + / + &NAMSCC + / + &NAMSCEN + / + &NAMSCM + / + &NAMSEKF + / + &NAMSENS + / + &NAMSFXCMP + CFLDNAME(1)='????????????????', + NBBITS(1)=24, + / + &NAMSIMPHL + / + &NAMSPNG + / + &NAMSPSDT + / + &NAMSTA + / + &NAMSTOPH + / + &NAMSWE + / + &NAMTESTVAR + / + &NAMTHLIM + / + &NAMTOPH + ETCVIM=5000., + ETNEBU=5000., + ETPLUI=5000., + XDRMTK=6.0D-7, + XDRMTP=800., + XDRMUK=3.0D-7, + XDRMUP=800., + / + &NAMTRAJP + / + &NAMTRANS + / + &NAMTRANS0 + / + &NAMTS + / + &NAMVAR + / + &NAMVARBC + / + &NAMVARBC_AIREP + / + &NAMVARBC_ALLSKY + / + &NAMVARBC_GBRAD + / + &NAMVARBC_RAD + / + &NAMVARBC_SFCOBS + / + &NAMVARBC_TCWV + / + &NAMVARBC_TO3 + / + &NAMVAREPS + / + &NAMVDF + / + &NAMVDOZ + / + &NAMVOLCANO + / + &NAMVRTL + / + &NAMVV0 + / + &NAMVV1 + / + &NAMVWRK + / + &NAMWAVELETJB + / + &NAMXFU + LXCLP=.TRUE., + LXCLS=.TRUE., + LXFU=.TRUE., + LXNEBPA=.TRUE., + LXNEBTT=.TRUE., + LXNUVCLS=.TRUE., + LXPLS=.TRUE., + LXPLSG=.TRUE., + LXQCLS=.TRUE., + LXR=.TRUE., + LXSOIL=.FALSE., + LXTHW=.TRUE., + LXTRT=.TRUE., + LXTTCLS=.TRUE., + LXXDIAGH=.TRUE., + LXXGST=.TRUE., + NFRRAZ=72, + NRAZTS(0)=0, + / + &NAM_CANAPE + / + &NAM_DISTRIBUTED_VECTORS + / + &NAPHLC + / + &NEMCT0 + / + &NEMDIM + / + &NEMDYN + / + &NEMELBC0A + LESPCPL=.TRUE., + NBICNHX=2, + NBICOP=2, + NBICOT=2, + NBICOU=2, + NBICPD=2, + NBICVD=2, + NECRIPL=1, + / + &NEMELBC0B + NEFRSPCPL=1, + NEK0=20, + NEK1=30, + NEN1=4, + NEN2=8, + SPNUDDIV=0.01, + SPNUDQ=0., + SPNUDT=0.01, + SPNUDVOR=0.01, + TEFRCL=3600., + / + &NEMFPEZO + / + &NEMGEO + / + &NEMJK + / + &NEMVAR + / + &NEMWAVELET + / + &NAETLDIAG + / + &NAMMETHOX + / + &NAMSPP + / + &NAMACV + / + &NAMFPOBJ + / + &NAMNORGWD + / + &NAMTRAJ + / + &NAMSATSIM + / + &NAMDVISI + / + &NAMNUDGLH + / + &NAMPERTPAR + / +FIN +/bin/cat fort.4 + +/bin/cat <<FIN > EXSEG1.nam + &NAM_DIAG_ISBAN + LPGD=.TRUE., + LSURF_MISC_BUDGET=.TRUE., + / + &NAM_DIAG_SURFN + LCOEF=.TRUE., + LSURF_BUDGET=.TRUE., + N2M=2, + / + &NAM_ISBAN + CSCOND='NP89', + / + &NAM_REPROD_OPER + LREPROD_OPER=.TRUE., + / + &NAM_SEAFLUXN + CSEA_FLUX='ECUME', + LPWG=.FALSE., + LPRECIP=.FALSE., + LPWEBB=.FALSE., + / + &NAM_SSON + CROUGH='Z01D', + XFRACZ0=5., + LDSV=.FALSE., + / + &NAM_SURF_ATM + XRIMAX=0.2, + LNOSOF=.TRUE., + / + &NAM_SURF_CSTS + XZ0SN=0.01, + XZ0HSN=0.001, + XEMISSN=0.99, + / + &NAM_WRITE_DIAG_SURFN + LPROVAR_TO_DIAG=.FALSE., + LSELECT=.TRUE., +CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS', + / + &NAM_WRITE_SURF_ATM + LNOWRITE_TEXFILE=.TRUE., + / +FIN +/bin/cat EXSEG1.nam + +# ***************************************** +# * Acquisition du fichier de demarrage * +# ***************************************** + +echo +for hh in 0 1 2 3 4 5 6 ; do + N=`expr $hh / 1 ` + set -x + ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N} + set +x +done +set -x +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx +ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin . +ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim +ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx +ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025 +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat . +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat . +ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat . +set +x +tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz + +# *************** +# * Chargement * +# *************** + +echo +set -x +\ln -s $LOADIR/MASTERODB MASTER +set +x +if ldd MASTER | grep openmpi > /dev/null; then + #On est sur PC + MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}') + MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC" + GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1 + export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions + export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions +else + #On est sur HPC + #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD" + NNODES=$SLURM_JOB_NUM_NODES + MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES)) + MPI_TASKS=$SLURM_NTASKS + MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --" + export OMP_STACKSIZE=4G + export KMP_STACKSIZE=4G + export KMP_MONITOR_STACKSIZE=4G + export DR_HOOK=1 + export DR_HOOK_IGNORE_SIGNALS=-1 + export DR_HOOK_SILENT=1 + export DR_HOOK_SHOW_PROCESS_OPTIONS=0 + export MPL_MBX_SIZE=2048000000 + export EC_PROFILE_HEAP=0 + export EC_PROFILE_MEM=0 + export EC_MPI_ATEXIT=0 + export EC_MEMINFO=0 + export OPENBLAS_NUM_THREADS=1 + export MKL_CBWR="AUTO,STRICT" + export MKL_NUM_THREADS=1 + export MKL_DEBUG_CPU_TYPE=5 + export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions +fi +echo $MPIRUN +set +x +if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi + +# *************** +# * Execution * +# *************** + +echo +echo OMP_NUM_THREADS=$OMP_NUM_THREADS +set -x +ulimit -s unlimited +$MPIRUN $PWD/MASTER >lola +set +x +echo +##if [ -f lola ] ; then +## echo;echo Standard output :;echo;cat lola +##fi +##if [ -f stderr.* ] ; then +## for file in stderr.* ; do +## echo;echo $file :;cat $file +## done +##fi +##if [ -f stdout.* ] ; then +##echo;echo stdout :;echo;cat stdout.* +##fi +##if [ -a NODE.001_01 ] ; then +## for file in NODE* ; do +## echo;echo Listing $file;echo +## cat $file +## done +##fi +##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then +### Top 25 for each MPI task : +## for file in drhook.prof.* ; do +## echo;echo $file :;head -38 $file +## done +##fi +#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl + +# ******************* +# * Sauvegardes * +# ******************* + +ls +#if [ -f PFFPOS000+0000 ] ; then +# cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID +#fi +cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/ +/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001* +/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00* +/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz) + +# **************** +# * Epilogue * +# **************** + +ls -ltr | grep -v "\->" +echo Wait_queue : +ls -ltr $TMPWAIT +cd $TMPDIR +\rm -rf rundir.$$ +\rm -rf wait_queue.$$ +date +set +x diff --git a/tools/conf_tests/small_3D_alt9/aro48t3.sh b/tools/conf_tests/small_3D_alt9/aro48t3.sh new file mode 100755 index 0000000000000000000000000000000000000000..17f57ddd295284e51821673472c1e856382967d1 --- /dev/null +++ b/tools/conf_tests/small_3D_alt9/aro48t3.sh @@ -0,0 +1,1208 @@ +#!/bin/bash +#SBATCH -n 4 +#SBATCH --mem=20000 +#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR +#SBATCH -t 00:10:00 +#SBATCH -N 1 +#SBATCH -p normal256 + +#The MYLIB varibale must contain the gmkpack pack name +#The TESTDIR variable must contain the test directory +#Results will be stored in the local directory + +#Other environment varaibles that can be set: +#OUTPUTDIR + +date + +OUTPUTDIR=${OUTPUTDIR:-$PWD} +case=riette2 +#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script +rekchemin=$TESTDIR + +NPROC=4 +NSTRIN=$NPROC +NSTROUT=1 +NPRTRW_NPRTRV="" +NPRTRW_NPRTRV=" NPRTRW=$NPROC, + NPRTRV=1," +export OMP_NUM_THREADS=1 + +#MYLIB=48t1_main.01%jpdup + +export DR_HOOK=1 +#export DR_HOOK_IGNORE_SIGNALS=-1 +export DR_HOOK_NOT_MPI=1 +export DR_HOOK_SILENT=1 +export DR_HOOK_OPT= + +export EC_PROFILE_HEAP=0 +export EC_PROFILE_MEM=0 +export EC_MPI_ATEXIT=0 +export DR_HOOK_SHOW_PROCESS_OPTIONS=0 +export EC_MEMINFO=0 +export TVSEARCHPATH=$SOURCE + +HOMEPACK=${HOMEPACK:=$HOME/pack} +SOURCE=$HOMEPACK/$MYLIB/src/local +LOADIR=$HOMEPACK/$MYLIB/bin + +TMPDIR=${TMPDIR:=$HOME/tmp} +TMPLOC=$TMPDIR/rundir.$$ +TMPWAIT=$TMPDIR/wait_queue.$$ +mkdir $TMPWAIT +mkdir $TMPLOC +cd $TMPLOC + +export RTTOV_COEFDIR=$PWD + +# ************************** +# * Saisie des NAMELISTS * +# ************************** + +CNMEXP='FPOS' + +echo +/bin/cat <<FIN > fort.4 + &NACIETEO + / + &NACOBS + / + &NACTAN + / + &NACTEX + / + &NACVEG + / + &NADOCK + / + &NAEAEM7 + / + &NAEAER + / + &NAECOAPHY + / + &NAEPHLI + / + &NAEPHY + / + &NAERAD + LRRTM=.TRUE., + LSRTM=.FALSE., + NAER=1, + NICEOPT=3, + NLIQOPT=3, + NOVLP=6, + NOZOCL=2, + NRADFR=18, + NRADIP=3, + NRADLP=2, + NSW=6, + RLWINHF=1, + RRE2DE=0.64952, + RSWINHF=1, + / + &NAERCLI + / + &NAEVOL + / + &NAIMPO + / + &NALORI + / + &NAMAFN + GFP_CLSG%CLNAME='SURFACCGRAUPEL', + GFP_CLSP%CLNAME='SURFACCPLUIE', + GFP_CLSS%CLNAME='SURFACCNEIGE', + GFP_SFIS%IBITS=16, + GFP_ST%CLNAME='SURFTEMPERATURE', + GFP_ST%IANO=0, + GFP_ST%IBITS=12, + GFP_X10U%CLNAME='CLSVENT.ZONAL', + GFP_X10U%IANO=0, + GFP_X10U%IBITS=12, + GFP_X10V%CLNAME='CLSVENT.MERIDIEN', + GFP_X10V%IANO=0, + GFP_X10V%IBITS=12, + GFP_X2RH%CLNAME='CLSHUMI.RELATIVE', + GFP_X2RH%IANO=0, + GFP_X2RH%IBITS=12, + GFP_X2T%CLNAME='CLSTEMPERATURE', + GFP_X2T%IANO=1, + GFP_XCCC%IBITS=8, + GFP_XHCC%IBITS=8, + GFP_XLCC%IBITS=8, + GFP_XLSG%CLNAME='SURFINSGRAUPEL', + GFP_XLSP%CLNAME='SURFINSPLUIE', + GFP_XLSS%CLNAME='SURFINSNEIGE', + GFP_XMCC%IBITS=8, + GFP_XN2T%IBITS=12, + GFP_XTCC%IBITS=8, + GFP_XUGST%CLNAME='CLSU.RAF60M.XFU', + GFP_XUGST%IANO=0, + GFP_XUGST%IBITS=12, + GFP_XVGST%CLNAME='CLSV.RAF60M.XFU', + GFP_XVGST%IANO=0, + GFP_XVGST%IBITS=12, + GFP_XX2T%IBITS=12, + GFP_XXDIAGH%IBITS=12, + TFP_ABS%ZFK=32., + TFP_CLF%IBITS=6, + TFP_EDR%CLNAME='EDR', + TFP_EDR%IBITS=16, + TFP_EDR%IGRIB=136, + TFP_GR%IBITS=12, + TFP_HL%IBITS=12, + TFP_HTB%IBITS=16, + TFP_HTB%LLGP=.TRUE., + TFP_HU%IBITS=12, + TFP_MSAT9C2%IBITS=12, + TFP_MSAT9C6%IBITS=12, + TFP_MSLNH%IBITS=12, + TFP_PV%ZFK=64., + TFP_RCLS%IBITS=12, + TFP_RR%IBITS=12, + TFP_SN%IBITS=12, + TFP_T%IBITS=12, + TFP_TCLS%IBITS=12, + TFP_TH%IBITS=12, + TFP_THPW%IBITS=12, + TFP_THV%IBITS=12, + TFP_TN%IBITS=12, + TFP_TWV%IBITS=12, + TFP_TX%IBITS=12, + TFP_U%IBITS=12, + TFP_V%IBITS=12, + TFP_VOR%ZFK=32., + TFP_VV%ZFK=32., + / + &NAMARG + CNMEXP='${CNMEXP}', + LECMWF=.FALSE., + LELAM=.TRUE., + LSLAG=.TRUE., + NCONF=1, + NSUPERSEDE=1, + / + &NAMARPHY + LKFBCONV=.FALSE., + LKFBD=.FALSE., + LKFBS=.FALSE., + LMFSHAL=.TRUE., + LMICRO=.TRUE., + LMPA=.TRUE., + LMSE=.TRUE., + LTURB=.TRUE., + / + &NAMCA + / + &NAMCAPE + / + &NAMCFU + LCUMFU=.TRUE., + LFPLS=.TRUE., + LFPLSG=.TRUE., + LFR=.TRUE., + LFRRC=.TRUE., + LFSF=.TRUE., + LNEBPAR=.TRUE., + LNEBTT=.TRUE., + LRAYD=.TRUE., + LRAYS=.TRUE., + / + &NAMCHEM + / + &NAMCHET + / + &NAMCHK + / + &NAMCLA + / + &NAMCLDP + / + &NAMCLI + / + &NAMCLOP15 + / + &NAMCLTC + / + &NAMCOK + / + &NAMCOM + / + &NAMCOSJO + / + &NAMCOUPLO4 + / + &NAMCT0 + CFPNCF='ECHFP', + CNPPATH=' ', + LAROME=.TRUE., + LNHEE=.TRUE., + LSCREEN_OPENMP=.FALSE., + LSPRT=.TRUE., + LTWOTL=.TRUE., + NFPOS=1, + NFRSDI=18, + NSDITS(0)=0, + NFRHIS=72, + NHISTS(0)=0, + NFRPOS=72, + NPOSTS(0)=0, + NFRSFXHIS=72, + NSFXHISTS(0)=0, + NFRDHFD=72, + NDHFDTS(0)=0, + / + &NAMCT1 + LRFILAF=.FALSE., + N1HIS=1, + N1POS=1, + N1RES=0, + N1SDI=1, + N1SFXHIS=1, + N1GDI=0, + / + &NAMCUMF + / + &NAMCUMFS + / + &NAMCVER + / + &NAMCVMNH + / + &NAMDDH + LDDH_OMP=.TRUE., + LHDDOP=.TRUE., + LHDHKS=.TRUE., + LHDEFD=.TRUE., + LFLEXDIA=.TRUE., + BDEDDH(1,1)=3, + BDEDDH(2,1)=1, + BDEDDH(3,1)=358.8 + BDEDDH(4,1)=45.1 + BDEDDH(5,1)=360.3 + BDEDDH(6,1)=44.5 + / + &NAMDFI + / + &NAMDIM + NPROMA=-50, + / + &NAMDIMO + / + &NAMDIM_TRAJ + / + &NAMDPHY + / + &NAMDPRECIPS + / + &NAMDYN + LADVF=.TRUE., + LQMPD=.FALSE., + LQMT=.FALSE., + LQMVD=.FALSE., + LRHDI_LASTITERPC=.TRUE., + NITMP=4, + NSITER=1, + NSPDLAG=3, + NSVDLAG=3, + NTLAG=3, + NVLAG=3, + NWLAG=3, + RDAMPDIV=20., + RDAMPPD=20., + RDAMPQ=0., + RDAMPT=0., + RDAMPVD=20., + RDAMPVOR=20., + REPS1=0., + REPS2=0., + REPSM1=0., + REPSM2=0., + REPSP1=0., + SDRED=1., + SIPR=90000., + SITR=350., + SITRA=100., + SLHDA0=0.25, + SLHDD00=0.000065, + VESL=0.05, + XIDT=0., + ZSLHDP1=1.7, + ZSLHDP3=0.6, + / + &NAMDYNA + LCOMADH=.TRUE., + LCOMADV=.FALSE., + LCOMAD_GFL=.TRUE., + LCOMAD_SP=.TRUE., + LCOMAD_SPD=.TRUE., + LCOMAD_SVD=.TRUE., + LCOMAD_T=.TRUE., + LCOMAD_W=.TRUE., + LGWADV=.TRUE., + LNESC=.TRUE., + LPC_CHEAP=.TRUE., + LPC_FULL=.TRUE., + LRDBBC=.FALSE., + LSETTLS=.FALSE., + LSETTLST=.TRUE., + LSLHD_GFL=.TRUE., + LSLHD_OLD=.FALSE., + LSLHD_SPD=.FALSE., + LSLHD_SVD=.FALSE., + LSLHD_T=.FALSE., + LSLHD_W=.FALSE., + ND4SYS=2, + NDLNPR=1, + NPDVAR=2, + NVDVAR=4, + SLHDEPSH=0.08, + SLHDKMAX=6, + / + &NAMDYNCORE + / + &NAMEMIS_CONF + / + &NAMENKF + / + &NAMFA + CMODEL='OUTPUTID', + LEXTERN=.TRUE., + LSUPPDATE=.FALSE., + NBITCS=-1, + NBITPG=-1, + NSTRON=-1, + / + &NAMFAINIT + JPXTRO=2000, + / + &NAMFPC + CFP2DF(1)='SURFPRESSION', + CFP2DF(2)='MSL_NHPRESSURE', + CFP2DF(3)='SURFTOT.WAT.VAPO', + CFP2DF(4)='SURFISOTPW0.MALT', + CFP2DF(5)='SURFCAPE.POS.F00', + CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS', + CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS', + CFP2DF(8)='SURFREFLECT.MAX', + CFP2DF(9)='SURFISOTPW1.MALT', + CFP2DF(10)='SURFISOTPW2.MALT', + CFP3DF(1)='GEOPOTENTIEL', + CFP3DF(2)='TEMPERATURE', + CFP3DF(3)='VENT_ZONAL', + CFP3DF(4)='VENT_MERIDIEN', + CFP3DF(5)='HUMI_RELATIVE', + CFP3DF(6)='THETA_PRIM_W', + CFP3DF(7)='PRESSURE', + CFP3DF(8)='ABS_VORTICITY', + CFP3DF(9)='VITESSE_VERTICALE', + CFP3DF(10)='TEMPE_POTENT', + CFP3DF(11)='POT_VORTICIT', + CFP3DF(12)='SIM_REFLECTI', + CFP3DF(13)='RAIN', + CFP3DF(14)='SNOW', + CFP3DF(15)='GRAUPEL', + CFP3DF(16)='ICE_CRYSTAL', + CFP3DF(17)='CLOUD_WATER', + CFP3DF(18)='VERT.VELOCIT', + CFP3DF(19)='DIVERGENCE', + CFP3DF(20)='THETA_VIRTUA', + CFP3DF(21)='TKE', + CFP3DF(22)='CLOUD_FRACTI', + CFP3DF(23)='ISOT_ALTIT', + CFP3DF(24)='EDR', + CFPCFU(1)='SURFTENS.TOTA.ZO', + CFPCFU(2)='SURFTENS.TOTA.ME', + CFPCFU(3)='SURFACCPLUIE', + CFPCFU(4)='SURFACCNEIGE', + CFPCFU(5)='SURFACCGRAUPEL', + CFPCFU(6)='SOMMFLU.RAY.SOLA', + CFPCFU(7)='SURFFLU.RAY.SOLA', + CFPCFU(8)='SOMMFLU.RAY.THER', + CFPCFU(9)='SURFFLU.RAY.THER', + CFPCFU(10)='SURFFLU.LAT.MTOT', + CFPCFU(11)='SURFFLU.MTOTA.NE', + CFPCFU(12)='SURFFLU.CHA.SENS', + CFPCFU(13)='SURFRAYT SOLA DE', + CFPCFU(14)='SURFRAYT THER DE', + CFPCFU(15)='SURFRAYT SOL CL', + CFPCFU(16)='SURFRAYT THER CL', + CFPCFU(17)='SURFRAYT DIR SUR', + CFPDOM(1)='FRANGP0025', + CFPFMT='LALON', + CFPPHY(1)='SURFTEMPERATURE', + CFPPHY(2)='INTSURFGEOPOTENT', + CFPPHY(3)='SURFRESERV.NEIGE', + CFPXFU(1)='CLSTEMPERATURE', + CFPXFU(2)='CLSHUMI.RELATIVE', + CFPXFU(3)='CLSVENT.ZONAL', + CFPXFU(4)='CLSVENT.MERIDIEN', + CFPXFU(5)='SURFNEBUL.TOTALE', + CFPXFU(6)='SURFNEBUL.HAUTE', + CFPXFU(7)='SURFNEBUL.MOYENN', + CFPXFU(8)='SURFNEBUL.BASSE', + CFPXFU(9)='CLSMAXI.TEMPERAT', + CFPXFU(10)='CLSMINI.TEMPERAT', + CFPXFU(11)='CLPMHAUT.MOD.XFU', + CFPXFU(12)='SURFDIAGHAIL', + LCRITSNOWTEMP=.FALSE., + LFPCAPEX=.TRUE., + LFPMOIS=.TRUE., + LFPPACKING=.FALSE., + LWIDER_DOM=.TRUE., + L_READ_MODEL_DATE=.TRUE., + NFITI=1, + NFITV=1, + NFPCAPE=5, + NFPCLI=1, + NFPGRIB=1, + NFPINPHY=4, + NITERPV=8, + RENTRA=0.0001, + RFP3H(1)=10., + RFP3H(2)=20., + RFP3H(3)=35., + RFP3H(4)=50., + RFP3H(5)=75., + RFP3H(6)=100., + RFP3H(7)=150., + RFP3H(8)=200., + RFP3H(9)=250., + RFP3H(10)=375., + RFP3H(11)=500., + RFP3H(12)=625., + RFP3H(13)=750., + RFP3H(14)=875., + RFP3H(15)=1000., + RFP3H(16)=1125., + RFP3H(17)=1250., + RFP3H(18)=1375., + RFP3H(19)=1500., + RFP3H(20)=1750., + RFP3H(21)=2000., + RFP3H(22)=2250., + RFP3H(23)=2500., + RFP3H(24)=2750., + RFP3H(25)=3000., + RFP3I(1)=-273.15, + RFP3I(2)=-263.15, + RFP3I(3)=-261.15, + RFP3I(4)=-253.15, + RFP3P(1)=10000., + RFP3P(2)=12500., + RFP3P(3)=15000., + RFP3P(4)=17500., + RFP3P(5)=20000., + RFP3P(6)=22500., + RFP3P(7)=25000., + RFP3P(8)=27500., + RFP3P(9)=30000., + RFP3P(10)=35000., + RFP3P(11)=40000., + RFP3P(12)=45000., + RFP3P(13)=50000., + RFP3P(14)=55000., + RFP3P(15)=60000., + RFP3P(16)=65000., + RFP3P(17)=70000., + RFP3P(18)=75000., + RFP3P(19)=80000., + RFP3P(20)=85000., + RFP3P(21)=90000., + RFP3P(22)=92500., + RFP3P(23)=95000., + RFP3P(24)=100000., + RFP3PV(1)=0.0000015, + RFP3PV(2)=0.000002, + RFPCD2=5., + RFPCSAB=50., + RFPVCAP=7000., + / + &NAMFPD + NLAT(1)=41, + NLON(1)=41, + RLONC(1)=-0.71, + RLATC(1)=44.8, + RDELX(1)=0.025, + RDELY(1)=0.025, + / + &NAMFPDY2 + / + &NAMFPDYF + / + &NAMFPDYH + / + &NAMFPDYI + / + &NAMFPDYP + / + &NAMFPDYS + / + &NAMFPDYT + / + &NAMFPDYV + / + &NAMFPF + NFMAX(1)=60, + NFMAX(2)=80, + / + &NAMFPG + NFPDISTRIB=1, + / + &NAMFPIOS + / + &NAMFPMOVE + / + &NAMFPPHY + / + &NAMFPSC2 + NFPROMA=-50, + / + &NAMFPSC2_DEP + NFPROMA_DEP=-50, + / + &NAMGEM + / + &NAMGFL + NGFL_EZDIAG=4, + YEZDIAG_NL(1)%CNAME='EZDIAG01', + YEZDIAG_NL(1)%LREQOUT=.FALSE., + YEZDIAG_NL(2)%CNAME='EZDIAG02', + YEZDIAG_NL(2)%LREQOUT=.FALSE., + YEZDIAG_NL(3)%CNAME='EZDIAG03', + YEZDIAG_NL(3)%LREQOUT=.FALSE., + YEZDIAG_NL(4)%CNAME='INPRRTOT3D', + YEZDIAG_NL(4)%LREQOUT=.TRUE., + YG_NL%LQM=.TRUE., + YG_NL%LSLHD=.TRUE., + YG_NL%NCOUPLING=-1, + YG_NL%NREQIN=1, + YG_NL%REFVALC=0., + YIRAD_NL%LGP=.TRUE., + YI_NL%LQM=.TRUE., + YI_NL%LSLHD=.TRUE., + YI_NL%NCOUPLING=-1, + YI_NL%NREQIN=1, + YI_NL%REFVALC=0., + YLRAD_NL%LGP=.TRUE., + YL_NL%LQM=.TRUE., + YL_NL%LSLHD=.TRUE., + YL_NL%NCOUPLING=-1, + YL_NL%NREQIN=1, + YL_NL%REFVALC=0., + YQ_NL%LCOMAD=.TRUE., + YQ_NL%LQM=.TRUE., + YQ_NL%LSLHD=.FALSE., + YQ_NL%NREQIN=1, + YR_NL%LQM=.TRUE., + YR_NL%LSLHD=.TRUE., + YR_NL%NCOUPLING=-1, + YR_NL%NREQIN=1, + YR_NL%REFVALC=0., + YS_NL%LQM=.TRUE., + YS_NL%LSLHD=.TRUE., + YS_NL%NCOUPLING=-1, + YS_NL%NREQIN=1, + YS_NL%REFVALC=0., + YTKE_NL%NCOUPLING=0, + YTKE_NL%NREQIN=1, + / + &NAMGRIB + / + &NAMGWD + / + &NAMGWDIAG + / + &NAMGWWMS + / + &NAMIAU + ALPHAIAU=0.5, + LIAU=.FALSE., + TSTARTIAU=1800, + TSTOPIAU=5340, + / + &NAMICE + / + &NAMINI + LDFI=.FALSE., + / + &NAMINTFLEX + / + &NAMIOMI + / + &NAMIOS + / + &NAMIO_SERV + NIO_SERV_BUF_MAXSIZE=20, + NIO_SERV_METHOD=2, + NMSG_LEVEL_CLIENT=0, + NMSG_LEVEL_SERVER=0, + NPROCESS_LEVEL=5, + NPROC_IO=0, + / + &NAMJBCODES + / + &NAMJFH + / + &NAMJG + / + &NAMLCZ + / + &NAMLSFORC + / + &NAMMARS + / + &NAMMCC + / + &NAMMCUF + / + &NAMMKODB + / + &NAMMODERR + / + &NAMMTS + / + &NAMMWAVE + / + &NAMNPROF + / + &NAMNUD + / + &NAMOBS + / + &NAMONEDVAR + / + &NAMOOPS + / + &NAMOPH + CFNHWF='ECHIS', + LINC=.TRUE., + NTIMEFMT=1, + / + &NAMOPTCMEM + / + &NAMPAR0 + LOPT_SCALAR=.TRUE., + NPRINTLEV=1, + LMPOFF=.FALSE., + MBX_SIZE=2048000000, + MP_TYPE=2, + NOUTPUT=1, + NPROC=$NPROC, +$NPRTRW_NPRTRV + / + &NAMPAR1 + LEQ_REGIONS=.FALSE., + LSLONDEM=.TRUE., + LSPLIT=.TRUE., + LSYNC_SLCOM=.FALSE., + LSYNC_TRANS=.FALSE., + L_GATHERV_WRGP=.FALSE., + NCOMBFLEN=1800000, + NSTRIN=$NSTRIN, + NSTROUT=$NSTROUT, + / + &NAMPARAR + CFRAC_ICE_ADJUST='S', + CFRAC_ICE_SHALLOW_MF='S', + CMICRO='OLD3', + LOCND2=.TRUE., + CSEDIM='STAT', + CSNOWRIMING='M90', + LCONVHG=.TRUE., + LCRFLIMIT=.TRUE., + LCRIAUTI=.TRUE., + LEVLIMIT=.TRUE., + LFEEDBACKT=.TRUE., + LFPREC3D=.TRUE., + LNULLWETG=.TRUE., + LNULLWETH=.TRUE., + LOLSMC=.TRUE., + LOSEDIC=.TRUE., + LOSIGMAS=.TRUE., + LOSUBG_COND=.TRUE., + LSEDIM_AFTER=.FALSE., + LWETGPOST=.TRUE., + LWETHPOST=.TRUE., + NMAXITER_MICRO=1, + NPRINTFR=10000, + NPTP=1, + RCRIAUTC=0.001, + RCRIAUTI=0.0002, + RT0CRIAUTI=-5., + VSIGQSAT=0.02, + XFRACM90=0.1, + XMRSTEP=0.00005, + XSPLIT_MAXCFL=0.8, + XTSTEP_TS=0., + / + &NAMPHMSE + LPGDFWR=.FALSE., + / + &NAMPHY + LAERODES=.TRUE., + LAEROLAN=.TRUE., + LAEROSEA=.TRUE., + LAEROSOO=.TRUE., + LEDR=.TRUE., + LMPHYS=.TRUE., + LO3ABC=.TRUE., + LRAYFM=.TRUE., + / + &NAMPHY0 + ALMAV=300., + BEDIFV=0.05, + ECMNP=3000., + GCCSV=0., + GCVADS=0.8, + GCVALFA=0.000045, + GCVBETA=0.2, + GCVMLT=0.00016, + GCVNU=0.000025, + GCVPSI=1., + GCVPSIE=1., + GDDEVA=0.25, + GDDSDE=0.5, + GWDCD=6., + HUCOE=0.5, + HUTIL=1.8, + QSSC=400., + QSSUSC=0.75, + QSSUSS=0.4, + QSSUSV=250., + QSUSXC=0.0002, + QSUSXS=0.0003, + QXRAL=130., + QXRDEL=0.49, + QXRHX=0.99, + QXRR=0.25, + RCVEVAP=0.25, + REFLKUO=5000., + REVGSL=15., + SCO=-20., + TDDGP=0.8, + TENTR=0.0000025, + TENTRX=0.00008, + TUDGP=0.8, + UHDIFV=0.0008, + USURIC=0.175, + USURICE=0.5, + USURICL=1., + USURID=0.1, + USURIDE=0.25, + VZ0CM=0.00015, + XMAXLM=5000., + XMINLM=10., + / + &NAMPHY1 + ALBMIN=0.65, + ALCRIN=0.75, + GCGEL=0.00003, + GCGELS=0.00005, + GNEIMX=1.8, + GNEIMXS=1.8, + RCTVEG(3)=0.000012, + RCTVEG(4)=0.00001, + / + &NAMPHY2 + FACRAF=3.8, + HTKERAF=20., + LMULAF=.TRUE., + LRAFTKE=.TRUE., + LRAFTUR=.TRUE., + XDAMP=1., + XMULAF=-1.85, + / + &NAMPHY3 + / + &NAMPHYDS + / + &NAMPONG + / + &NAMPPC + / + &NAMPPVI + / + &NAMPRE + / + &NAMRAD15 + / + &NAMRADCMEM + / + &NAMRCF + / + &NAMRCOEF + / + &NAMRES + / + &NAMRGRI + / + &NAMRINC + / + &NAMRIP + TSTEP=50., + CSTOP='h2', + / + &NAMRIP0 + / + &NAMRLX + / + &NAMSATS + LPARTIAL_COEF_FILES=.TRUE., + / + &NAMSCC + / + &NAMSCEN + / + &NAMSCM + / + &NAMSEKF + / + &NAMSENS + / + &NAMSFXCMP + CFLDNAME(1)='????????????????', + NBBITS(1)=24, + / + &NAMSIMPHL + / + &NAMSPNG + / + &NAMSPSDT + / + &NAMSTA + / + &NAMSTOPH + / + &NAMSWE + / + &NAMTESTVAR + / + &NAMTHLIM + / + &NAMTOPH + ETCVIM=5000., + ETNEBU=5000., + ETPLUI=5000., + XDRMTK=6.0D-7, + XDRMTP=800., + XDRMUK=3.0D-7, + XDRMUP=800., + / + &NAMTRAJP + / + &NAMTRANS + / + &NAMTRANS0 + / + &NAMTS + / + &NAMVAR + / + &NAMVARBC + / + &NAMVARBC_AIREP + / + &NAMVARBC_ALLSKY + / + &NAMVARBC_GBRAD + / + &NAMVARBC_RAD + / + &NAMVARBC_SFCOBS + / + &NAMVARBC_TCWV + / + &NAMVARBC_TO3 + / + &NAMVAREPS + / + &NAMVDF + / + &NAMVDOZ + / + &NAMVOLCANO + / + &NAMVRTL + / + &NAMVV0 + / + &NAMVV1 + / + &NAMVWRK + / + &NAMWAVELETJB + / + &NAMXFU + LXCLP=.TRUE., + LXCLS=.TRUE., + LXFU=.TRUE., + LXNEBPA=.TRUE., + LXNEBTT=.TRUE., + LXNUVCLS=.TRUE., + LXPLS=.TRUE., + LXPLSG=.TRUE., + LXQCLS=.TRUE., + LXR=.TRUE., + LXSOIL=.FALSE., + LXTHW=.TRUE., + LXTRT=.TRUE., + LXTTCLS=.TRUE., + LXXDIAGH=.TRUE., + LXXGST=.TRUE., + NFRRAZ=72, + NRAZTS(0)=0, + / + &NAM_CANAPE + / + &NAM_DISTRIBUTED_VECTORS + / + &NAPHLC + / + &NEMCT0 + / + &NEMDIM + / + &NEMDYN + / + &NEMELBC0A + LESPCPL=.TRUE., + NBICNHX=2, + NBICOP=2, + NBICOT=2, + NBICOU=2, + NBICPD=2, + NBICVD=2, + NECRIPL=1, + / + &NEMELBC0B + NEFRSPCPL=1, + NEK0=20, + NEK1=30, + NEN1=4, + NEN2=8, + SPNUDDIV=0.01, + SPNUDQ=0., + SPNUDT=0.01, + SPNUDVOR=0.01, + TEFRCL=3600., + / + &NEMFPEZO + / + &NEMGEO + / + &NEMJK + / + &NEMVAR + / + &NEMWAVELET + / + &NAETLDIAG + / + &NAMMETHOX + / + &NAMSPP + / + &NAMACV + / + &NAMFPOBJ + / + &NAMNORGWD + / + &NAMTRAJ + / + &NAMSATSIM + / + &NAMDVISI + / + &NAMNUDGLH + / + &NAMPERTPAR + / +FIN +/bin/cat fort.4 + +/bin/cat <<FIN > EXSEG1.nam + &NAM_DIAG_ISBAN + LPGD=.TRUE., + LSURF_MISC_BUDGET=.TRUE., + / + &NAM_DIAG_SURFN + LCOEF=.TRUE., + LSURF_BUDGET=.TRUE., + N2M=2, + / + &NAM_ISBAN + CSCOND='NP89', + / + &NAM_REPROD_OPER + LREPROD_OPER=.TRUE., + / + &NAM_SEAFLUXN + CSEA_FLUX='ECUME', + LPWG=.FALSE., + LPRECIP=.FALSE., + LPWEBB=.FALSE., + / + &NAM_SSON + CROUGH='Z01D', + XFRACZ0=5., + LDSV=.FALSE., + / + &NAM_SURF_ATM + XRIMAX=0.2, + LNOSOF=.TRUE., + / + &NAM_SURF_CSTS + XZ0SN=0.01, + XZ0HSN=0.001, + XEMISSN=0.99, + / + &NAM_WRITE_DIAG_SURFN + LPROVAR_TO_DIAG=.FALSE., + LSELECT=.TRUE., +CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS', + / + &NAM_WRITE_SURF_ATM + LNOWRITE_TEXFILE=.TRUE., + / +FIN +/bin/cat EXSEG1.nam + +# ***************************************** +# * Acquisition du fichier de demarrage * +# ***************************************** + +echo +for hh in 0 1 2 3 4 5 6 ; do + N=`expr $hh / 1 ` + set -x + ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N} + set +x +done +set -x +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx +ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin . +ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim +ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx +ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025 +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat . +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat . +ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat . +set +x +tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz + +# *************** +# * Chargement * +# *************** + +echo +set -x +\ln -s $LOADIR/MASTERODB MASTER +set +x +if ldd MASTER | grep openmpi > /dev/null; then + #On est sur PC + MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}') + MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC" + GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1 + export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions + export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions +else + #On est sur HPC + #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD" + NNODES=$SLURM_JOB_NUM_NODES + MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES)) + MPI_TASKS=$SLURM_NTASKS + MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --" + export OMP_STACKSIZE=4G + export KMP_STACKSIZE=4G + export KMP_MONITOR_STACKSIZE=4G + export DR_HOOK=1 + export DR_HOOK_IGNORE_SIGNALS=-1 + export DR_HOOK_SILENT=1 + export DR_HOOK_SHOW_PROCESS_OPTIONS=0 + export MPL_MBX_SIZE=2048000000 + export EC_PROFILE_HEAP=0 + export EC_PROFILE_MEM=0 + export EC_MPI_ATEXIT=0 + export EC_MEMINFO=0 + export OPENBLAS_NUM_THREADS=1 + export MKL_CBWR="AUTO,STRICT" + export MKL_NUM_THREADS=1 + export MKL_DEBUG_CPU_TYPE=5 + export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions +fi +echo $MPIRUN +set +x +if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi + +# *************** +# * Execution * +# *************** + +echo +echo OMP_NUM_THREADS=$OMP_NUM_THREADS +set -x +ulimit -s unlimited +$MPIRUN $PWD/MASTER >lola +set +x +echo +##if [ -f lola ] ; then +## echo;echo Standard output :;echo;cat lola +##fi +##if [ -f stderr.* ] ; then +## for file in stderr.* ; do +## echo;echo $file :;cat $file +## done +##fi +##if [ -f stdout.* ] ; then +##echo;echo stdout :;echo;cat stdout.* +##fi +##if [ -a NODE.001_01 ] ; then +## for file in NODE* ; do +## echo;echo Listing $file;echo +## cat $file +## done +##fi +##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then +### Top 25 for each MPI task : +## for file in drhook.prof.* ; do +## echo;echo $file :;head -38 $file +## done +##fi +#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl + +# ******************* +# * Sauvegardes * +# ******************* + +ls +#if [ -f PFFPOS000+0000 ] ; then +# cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID +#fi +cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/ +/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001* +/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00* +/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz) + +# **************** +# * Epilogue * +# **************** + +ls -ltr | grep -v "\->" +echo Wait_queue : +ls -ltr $TMPWAIT +cd $TMPDIR +\rm -rf rundir.$$ +\rm -rf wait_queue.$$ +date +set +x diff --git a/tools/conf_tests/small_3D_np1/aro48t3.sh b/tools/conf_tests/small_3D_np1/aro48t3.sh new file mode 100755 index 0000000000000000000000000000000000000000..a833e9977afcafae3b60e863f478557e7d97e7be --- /dev/null +++ b/tools/conf_tests/small_3D_np1/aro48t3.sh @@ -0,0 +1,1207 @@ +#!/bin/bash +#SBATCH -n 1 +#SBATCH --mem=20000 +#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR +#SBATCH -t 00:10:00 +#SBATCH -N 1 +#SBATCH -p normal256 + +#The MYLIB variable must contain the gmkpack pack name +#The TESTDIR variable must contain the test directory +#Results will be stored in the local directory + +#Other environment varaibles that can be set: +#OUTPUTDIR + +date + +OUTPUTDIR=${OUTPUTDIR:-$PWD} +case=riette2 +#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script +rekchemin=$TESTDIR + +NPROC=1 +NSTRIN=$NPROC +NSTROUT=1 +NPRTRW_NPRTRV="" +NPRTRW_NPRTRV=" NPRTRW=$NPROC, + NPRTRV=1," +export OMP_NUM_THREADS=1 + +#MYLIB=48t1_main.01%jpdup + +export DR_HOOK=1 +#export DR_HOOK_IGNORE_SIGNALS=-1 +export DR_HOOK_NOT_MPI=1 +export DR_HOOK_SILENT=1 +export DR_HOOK_OPT= + +export EC_PROFILE_HEAP=0 +export EC_PROFILE_MEM=0 +export EC_MPI_ATEXIT=0 +export DR_HOOK_SHOW_PROCESS_OPTIONS=0 +export EC_MEMINFO=0 +export TVSEARCHPATH=$SOURCE + +HOMEPACK=${HOMEPACK:=$HOME/pack} +SOURCE=$HOMEPACK/$MYLIB/src/local +LOADIR=$HOMEPACK/$MYLIB/bin + +TMPDIR=${TMPDIR:=$HOME/tmp} +TMPLOC=$TMPDIR/rundir.$$ +TMPWAIT=$TMPDIR/wait_queue.$$ +mkdir $TMPWAIT +mkdir $TMPLOC +cd $TMPLOC + +export RTTOV_COEFDIR=$PWD + +# ************************** +# * Saisie des NAMELISTS * +# ************************** + +CNMEXP='FPOS' + +echo +/bin/cat <<FIN > fort.4 + &NACIETEO + / + &NACOBS + / + &NACTAN + / + &NACTEX + / + &NACVEG + / + &NADOCK + / + &NAEAEM7 + / + &NAEAER + / + &NAECOAPHY + / + &NAEPHLI + / + &NAEPHY + / + &NAERAD + LRRTM=.TRUE., + LSRTM=.FALSE., + NAER=1, + NICEOPT=3, + NLIQOPT=3, + NOVLP=6, + NOZOCL=2, + NRADFR=18, + NRADIP=3, + NRADLP=2, + NSW=6, + RLWINHF=1, + RRE2DE=0.64952, + RSWINHF=1, + / + &NAERCLI + / + &NAEVOL + / + &NAIMPO + / + &NALORI + / + &NAMAFN + GFP_CLSG%CLNAME='SURFACCGRAUPEL', + GFP_CLSP%CLNAME='SURFACCPLUIE', + GFP_CLSS%CLNAME='SURFACCNEIGE', + GFP_SFIS%IBITS=16, + GFP_ST%CLNAME='SURFTEMPERATURE', + GFP_ST%IANO=0, + GFP_ST%IBITS=12, + GFP_X10U%CLNAME='CLSVENT.ZONAL', + GFP_X10U%IANO=0, + GFP_X10U%IBITS=12, + GFP_X10V%CLNAME='CLSVENT.MERIDIEN', + GFP_X10V%IANO=0, + GFP_X10V%IBITS=12, + GFP_X2RH%CLNAME='CLSHUMI.RELATIVE', + GFP_X2RH%IANO=0, + GFP_X2RH%IBITS=12, + GFP_X2T%CLNAME='CLSTEMPERATURE', + GFP_X2T%IANO=1, + GFP_XCCC%IBITS=8, + GFP_XHCC%IBITS=8, + GFP_XLCC%IBITS=8, + GFP_XLSG%CLNAME='SURFINSGRAUPEL', + GFP_XLSP%CLNAME='SURFINSPLUIE', + GFP_XLSS%CLNAME='SURFINSNEIGE', + GFP_XMCC%IBITS=8, + GFP_XN2T%IBITS=12, + GFP_XTCC%IBITS=8, + GFP_XUGST%CLNAME='CLSU.RAF60M.XFU', + GFP_XUGST%IANO=0, + GFP_XUGST%IBITS=12, + GFP_XVGST%CLNAME='CLSV.RAF60M.XFU', + GFP_XVGST%IANO=0, + GFP_XVGST%IBITS=12, + GFP_XX2T%IBITS=12, + GFP_XXDIAGH%IBITS=12, + TFP_ABS%ZFK=32., + TFP_CLF%IBITS=6, + TFP_EDR%CLNAME='EDR', + TFP_EDR%IBITS=16, + TFP_EDR%IGRIB=136, + TFP_GR%IBITS=12, + TFP_HL%IBITS=12, + TFP_HTB%IBITS=16, + TFP_HTB%LLGP=.TRUE., + TFP_HU%IBITS=12, + TFP_MSAT9C2%IBITS=12, + TFP_MSAT9C6%IBITS=12, + TFP_MSLNH%IBITS=12, + TFP_PV%ZFK=64., + TFP_RCLS%IBITS=12, + TFP_RR%IBITS=12, + TFP_SN%IBITS=12, + TFP_T%IBITS=12, + TFP_TCLS%IBITS=12, + TFP_TH%IBITS=12, + TFP_THPW%IBITS=12, + TFP_THV%IBITS=12, + TFP_TN%IBITS=12, + TFP_TWV%IBITS=12, + TFP_TX%IBITS=12, + TFP_U%IBITS=12, + TFP_V%IBITS=12, + TFP_VOR%ZFK=32., + TFP_VV%ZFK=32., + / + &NAMARG + CNMEXP='${CNMEXP}', + LECMWF=.FALSE., + LELAM=.TRUE., + LSLAG=.TRUE., + NCONF=1, + NSUPERSEDE=1, + / + &NAMARPHY + LKFBCONV=.FALSE., + LKFBD=.FALSE., + LKFBS=.FALSE., + LMFSHAL=.TRUE., + LMICRO=.TRUE., + LMPA=.TRUE., + LMSE=.TRUE., + LTURB=.TRUE., + / + &NAMCA + / + &NAMCAPE + / + &NAMCFU + LCUMFU=.TRUE., + LFPLS=.TRUE., + LFPLSG=.TRUE., + LFR=.TRUE., + LFRRC=.TRUE., + LFSF=.TRUE., + LNEBPAR=.TRUE., + LNEBTT=.TRUE., + LRAYD=.TRUE., + LRAYS=.TRUE., + / + &NAMCHEM + / + &NAMCHET + / + &NAMCHK + / + &NAMCLA + / + &NAMCLDP + / + &NAMCLI + / + &NAMCLOP15 + / + &NAMCLTC + / + &NAMCOK + / + &NAMCOM + / + &NAMCOSJO + / + &NAMCOUPLO4 + / + &NAMCT0 + CFPNCF='ECHFP', + CNPPATH=' ', + LAROME=.TRUE., + LNHEE=.TRUE., + LSCREEN_OPENMP=.FALSE., + LSPRT=.TRUE., + LTWOTL=.TRUE., + NFPOS=1, + NFRSDI=18, + NSDITS(0)=0, + NFRHIS=72, + NHISTS(0)=0, + NFRPOS=72, + NPOSTS(0)=0, + NFRSFXHIS=72, + NSFXHISTS(0)=0, + NFRDHFD=72, + NDHFDTS(0)=0, + / + &NAMCT1 + LRFILAF=.FALSE., + N1HIS=1, + N1POS=1, + N1RES=0, + N1SDI=1, + N1SFXHIS=1, + N1GDI=0, + / + &NAMCUMF + / + &NAMCUMFS + / + &NAMCVER + / + &NAMCVMNH + / + &NAMDDH + LDDH_OMP=.TRUE., + LHDDOP=.TRUE., + LHDHKS=.TRUE., + LHDEFD=.TRUE., + LFLEXDIA=.TRUE., + BDEDDH(1,1)=3, + BDEDDH(2,1)=1, + BDEDDH(3,1)=358.8 + BDEDDH(4,1)=45.1 + BDEDDH(5,1)=360.3 + BDEDDH(6,1)=44.5 + / + &NAMDFI + / + &NAMDIM + NPROMA=-50, + / + &NAMDIMO + / + &NAMDIM_TRAJ + / + &NAMDPHY + / + &NAMDPRECIPS + / + &NAMDYN + LADVF=.TRUE., + LQMPD=.FALSE., + LQMT=.FALSE., + LQMVD=.FALSE., + LRHDI_LASTITERPC=.TRUE., + NITMP=4, + NSITER=1, + NSPDLAG=3, + NSVDLAG=3, + NTLAG=3, + NVLAG=3, + NWLAG=3, + RDAMPDIV=20., + RDAMPPD=20., + RDAMPQ=0., + RDAMPT=0., + RDAMPVD=20., + RDAMPVOR=20., + REPS1=0., + REPS2=0., + REPSM1=0., + REPSM2=0., + REPSP1=0., + SDRED=1., + SIPR=90000., + SITR=350., + SITRA=100., + SLHDA0=0.25, + SLHDD00=0.000065, + VESL=0.05, + XIDT=0., + ZSLHDP1=1.7, + ZSLHDP3=0.6, + / + &NAMDYNA + LCOMADH=.TRUE., + LCOMADV=.FALSE., + LCOMAD_GFL=.TRUE., + LCOMAD_SP=.TRUE., + LCOMAD_SPD=.TRUE., + LCOMAD_SVD=.TRUE., + LCOMAD_T=.TRUE., + LCOMAD_W=.TRUE., + LGWADV=.TRUE., + LNESC=.TRUE., + LPC_CHEAP=.TRUE., + LPC_FULL=.TRUE., + LRDBBC=.FALSE., + LSETTLS=.FALSE., + LSETTLST=.TRUE., + LSLHD_GFL=.TRUE., + LSLHD_OLD=.FALSE., + LSLHD_SPD=.FALSE., + LSLHD_SVD=.FALSE., + LSLHD_T=.FALSE., + LSLHD_W=.FALSE., + ND4SYS=2, + NDLNPR=1, + NPDVAR=2, + NVDVAR=4, + SLHDEPSH=0.08, + SLHDKMAX=6, + / + &NAMDYNCORE + / + &NAMEMIS_CONF + / + &NAMENKF + / + &NAMFA + CMODEL='OUTPUTID', + LEXTERN=.TRUE., + LSUPPDATE=.FALSE., + NBITCS=-1, + NBITPG=-1, + NSTRON=-1, + / + &NAMFAINIT + JPXTRO=2000, + / + &NAMFPC + CFP2DF(1)='SURFPRESSION', + CFP2DF(2)='MSL_NHPRESSURE', + CFP2DF(3)='SURFTOT.WAT.VAPO', + CFP2DF(4)='SURFISOTPW0.MALT', + CFP2DF(5)='SURFCAPE.POS.F00', + CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS', + CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS', + CFP2DF(8)='SURFREFLECT.MAX', + CFP2DF(9)='SURFISOTPW1.MALT', + CFP2DF(10)='SURFISOTPW2.MALT', + CFP3DF(1)='GEOPOTENTIEL', + CFP3DF(2)='TEMPERATURE', + CFP3DF(3)='VENT_ZONAL', + CFP3DF(4)='VENT_MERIDIEN', + CFP3DF(5)='HUMI_RELATIVE', + CFP3DF(6)='THETA_PRIM_W', + CFP3DF(7)='PRESSURE', + CFP3DF(8)='ABS_VORTICITY', + CFP3DF(9)='VITESSE_VERTICALE', + CFP3DF(10)='TEMPE_POTENT', + CFP3DF(11)='POT_VORTICIT', + CFP3DF(12)='SIM_REFLECTI', + CFP3DF(13)='RAIN', + CFP3DF(14)='SNOW', + CFP3DF(15)='GRAUPEL', + CFP3DF(16)='ICE_CRYSTAL', + CFP3DF(17)='CLOUD_WATER', + CFP3DF(18)='VERT.VELOCIT', + CFP3DF(19)='DIVERGENCE', + CFP3DF(20)='THETA_VIRTUA', + CFP3DF(21)='TKE', + CFP3DF(22)='CLOUD_FRACTI', + CFP3DF(23)='ISOT_ALTIT', + CFP3DF(24)='EDR', + CFPCFU(1)='SURFTENS.TOTA.ZO', + CFPCFU(2)='SURFTENS.TOTA.ME', + CFPCFU(3)='SURFACCPLUIE', + CFPCFU(4)='SURFACCNEIGE', + CFPCFU(5)='SURFACCGRAUPEL', + CFPCFU(6)='SOMMFLU.RAY.SOLA', + CFPCFU(7)='SURFFLU.RAY.SOLA', + CFPCFU(8)='SOMMFLU.RAY.THER', + CFPCFU(9)='SURFFLU.RAY.THER', + CFPCFU(10)='SURFFLU.LAT.MTOT', + CFPCFU(11)='SURFFLU.MTOTA.NE', + CFPCFU(12)='SURFFLU.CHA.SENS', + CFPCFU(13)='SURFRAYT SOLA DE', + CFPCFU(14)='SURFRAYT THER DE', + CFPCFU(15)='SURFRAYT SOL CL', + CFPCFU(16)='SURFRAYT THER CL', + CFPCFU(17)='SURFRAYT DIR SUR', + CFPDOM(1)='FRANGP0025', + CFPFMT='LALON', + CFPPHY(1)='SURFTEMPERATURE', + CFPPHY(2)='INTSURFGEOPOTENT', + CFPPHY(3)='SURFRESERV.NEIGE', + CFPXFU(1)='CLSTEMPERATURE', + CFPXFU(2)='CLSHUMI.RELATIVE', + CFPXFU(3)='CLSVENT.ZONAL', + CFPXFU(4)='CLSVENT.MERIDIEN', + CFPXFU(5)='SURFNEBUL.TOTALE', + CFPXFU(6)='SURFNEBUL.HAUTE', + CFPXFU(7)='SURFNEBUL.MOYENN', + CFPXFU(8)='SURFNEBUL.BASSE', + CFPXFU(9)='CLSMAXI.TEMPERAT', + CFPXFU(10)='CLSMINI.TEMPERAT', + CFPXFU(11)='CLPMHAUT.MOD.XFU', + CFPXFU(12)='SURFDIAGHAIL', + LCRITSNOWTEMP=.FALSE., + LFPCAPEX=.TRUE., + LFPMOIS=.TRUE., + LFPPACKING=.FALSE., + LWIDER_DOM=.TRUE., + L_READ_MODEL_DATE=.TRUE., + NFITI=1, + NFITV=1, + NFPCAPE=5, + NFPCLI=1, + NFPGRIB=1, + NFPINPHY=4, + NITERPV=8, + RENTRA=0.0001, + RFP3H(1)=10., + RFP3H(2)=20., + RFP3H(3)=35., + RFP3H(4)=50., + RFP3H(5)=75., + RFP3H(6)=100., + RFP3H(7)=150., + RFP3H(8)=200., + RFP3H(9)=250., + RFP3H(10)=375., + RFP3H(11)=500., + RFP3H(12)=625., + RFP3H(13)=750., + RFP3H(14)=875., + RFP3H(15)=1000., + RFP3H(16)=1125., + RFP3H(17)=1250., + RFP3H(18)=1375., + RFP3H(19)=1500., + RFP3H(20)=1750., + RFP3H(21)=2000., + RFP3H(22)=2250., + RFP3H(23)=2500., + RFP3H(24)=2750., + RFP3H(25)=3000., + RFP3I(1)=-273.15, + RFP3I(2)=-263.15, + RFP3I(3)=-261.15, + RFP3I(4)=-253.15, + RFP3P(1)=10000., + RFP3P(2)=12500., + RFP3P(3)=15000., + RFP3P(4)=17500., + RFP3P(5)=20000., + RFP3P(6)=22500., + RFP3P(7)=25000., + RFP3P(8)=27500., + RFP3P(9)=30000., + RFP3P(10)=35000., + RFP3P(11)=40000., + RFP3P(12)=45000., + RFP3P(13)=50000., + RFP3P(14)=55000., + RFP3P(15)=60000., + RFP3P(16)=65000., + RFP3P(17)=70000., + RFP3P(18)=75000., + RFP3P(19)=80000., + RFP3P(20)=85000., + RFP3P(21)=90000., + RFP3P(22)=92500., + RFP3P(23)=95000., + RFP3P(24)=100000., + RFP3PV(1)=0.0000015, + RFP3PV(2)=0.000002, + RFPCD2=5., + RFPCSAB=50., + RFPVCAP=7000., + / + &NAMFPD + NLAT(1)=41, + NLON(1)=41, + RLONC(1)=-0.71, + RLATC(1)=44.8, + RDELX(1)=0.025, + RDELY(1)=0.025, + / + &NAMFPDY2 + / + &NAMFPDYF + / + &NAMFPDYH + / + &NAMFPDYI + / + &NAMFPDYP + / + &NAMFPDYS + / + &NAMFPDYT + / + &NAMFPDYV + / + &NAMFPF + NFMAX(1)=60, + NFMAX(2)=80, + / + &NAMFPG + NFPDISTRIB=1, + / + &NAMFPIOS + / + &NAMFPMOVE + / + &NAMFPPHY + / + &NAMFPSC2 + NFPROMA=-50, + / + &NAMFPSC2_DEP + NFPROMA_DEP=-50, + / + &NAMGEM + / + &NAMGFL + NGFL_EZDIAG=4, + YEZDIAG_NL(1)%CNAME='EZDIAG01', + YEZDIAG_NL(1)%LREQOUT=.FALSE., + YEZDIAG_NL(2)%CNAME='EZDIAG02', + YEZDIAG_NL(2)%LREQOUT=.FALSE., + YEZDIAG_NL(3)%CNAME='EZDIAG03', + YEZDIAG_NL(3)%LREQOUT=.FALSE., + YEZDIAG_NL(4)%CNAME='INPRRTOT3D', + YEZDIAG_NL(4)%LREQOUT=.TRUE., + YG_NL%LQM=.TRUE., + YG_NL%LSLHD=.TRUE., + YG_NL%NCOUPLING=-1, + YG_NL%NREQIN=1, + YG_NL%REFVALC=0., + YIRAD_NL%LGP=.TRUE., + YI_NL%LQM=.TRUE., + YI_NL%LSLHD=.TRUE., + YI_NL%NCOUPLING=-1, + YI_NL%NREQIN=1, + YI_NL%REFVALC=0., + YLRAD_NL%LGP=.TRUE., + YL_NL%LQM=.TRUE., + YL_NL%LSLHD=.TRUE., + YL_NL%NCOUPLING=-1, + YL_NL%NREQIN=1, + YL_NL%REFVALC=0., + YQ_NL%LCOMAD=.TRUE., + YQ_NL%LQM=.TRUE., + YQ_NL%LSLHD=.FALSE., + YQ_NL%NREQIN=1, + YR_NL%LQM=.TRUE., + YR_NL%LSLHD=.TRUE., + YR_NL%NCOUPLING=-1, + YR_NL%NREQIN=1, + YR_NL%REFVALC=0., + YS_NL%LQM=.TRUE., + YS_NL%LSLHD=.TRUE., + YS_NL%NCOUPLING=-1, + YS_NL%NREQIN=1, + YS_NL%REFVALC=0., + YTKE_NL%NCOUPLING=0, + YTKE_NL%NREQIN=1, + / + &NAMGRIB + / + &NAMGWD + / + &NAMGWDIAG + / + &NAMGWWMS + / + &NAMIAU + ALPHAIAU=0.5, + LIAU=.FALSE., + TSTARTIAU=1800, + TSTOPIAU=5340, + / + &NAMICE + / + &NAMINI + LDFI=.FALSE., + / + &NAMINTFLEX + / + &NAMIOMI + / + &NAMIOS + / + &NAMIO_SERV + NIO_SERV_BUF_MAXSIZE=20, + NIO_SERV_METHOD=2, + NMSG_LEVEL_CLIENT=0, + NMSG_LEVEL_SERVER=0, + NPROCESS_LEVEL=5, + NPROC_IO=0, + / + &NAMJBCODES + / + &NAMJFH + / + &NAMJG + / + &NAMLCZ + / + &NAMLSFORC + / + &NAMMARS + / + &NAMMCC + / + &NAMMCUF + / + &NAMMKODB + / + &NAMMODERR + / + &NAMMTS + / + &NAMMWAVE + / + &NAMNPROF + / + &NAMNUD + / + &NAMOBS + / + &NAMONEDVAR + / + &NAMOOPS + / + &NAMOPH + CFNHWF='ECHIS', + LINC=.TRUE., + NTIMEFMT=1, + / + &NAMOPTCMEM + / + &NAMPAR0 + LOPT_SCALAR=.TRUE., + NPRINTLEV=1, + LMPOFF=.FALSE., + MBX_SIZE=2048000000, + MP_TYPE=2, + NOUTPUT=1, + NPROC=$NPROC, +$NPRTRW_NPRTRV + / + &NAMPAR1 + LEQ_REGIONS=.FALSE., + LSLONDEM=.TRUE., + LSPLIT=.TRUE., + LSYNC_SLCOM=.FALSE., + LSYNC_TRANS=.FALSE., + L_GATHERV_WRGP=.FALSE., + NCOMBFLEN=1800000, + NSTRIN=$NSTRIN, + NSTROUT=$NSTROUT, + / + &NAMPARAR + CFRAC_ICE_ADJUST='S', + CFRAC_ICE_SHALLOW_MF='S', + CMICRO='ICE3', + CSEDIM='STAT', + CSNOWRIMING='M90', + LCONVHG=.TRUE., + LCRFLIMIT=.TRUE., + LCRIAUTI=.TRUE., + LEVLIMIT=.TRUE., + LFEEDBACKT=.TRUE., + LFPREC3D=.TRUE., + LNULLWETG=.TRUE., + LNULLWETH=.TRUE., + LOLSMC=.TRUE., + LOSEDIC=.TRUE., + LOSIGMAS=.TRUE., + LOSUBG_COND=.TRUE., + LSEDIM_AFTER=.FALSE., + LWETGPOST=.TRUE., + LWETHPOST=.TRUE., + NMAXITER_MICRO=1, + NPRINTFR=10000, + NPTP=1, + RCRIAUTC=0.001, + RCRIAUTI=0.0002, + RT0CRIAUTI=-5., + VSIGQSAT=0.02, + XFRACM90=0.1, + XMRSTEP=0.00005, + XSPLIT_MAXCFL=0.8, + XTSTEP_TS=0., + / + &NAMPHMSE + LPGDFWR=.FALSE., + / + &NAMPHY + LAERODES=.TRUE., + LAEROLAN=.TRUE., + LAEROSEA=.TRUE., + LAEROSOO=.TRUE., + LEDR=.TRUE., + LMPHYS=.TRUE., + LO3ABC=.TRUE., + LRAYFM=.TRUE., + / + &NAMPHY0 + ALMAV=300., + BEDIFV=0.05, + ECMNP=3000., + GCCSV=0., + GCVADS=0.8, + GCVALFA=0.000045, + GCVBETA=0.2, + GCVMLT=0.00016, + GCVNU=0.000025, + GCVPSI=1., + GCVPSIE=1., + GDDEVA=0.25, + GDDSDE=0.5, + GWDCD=6., + HUCOE=0.5, + HUTIL=1.8, + QSSC=400., + QSSUSC=0.75, + QSSUSS=0.4, + QSSUSV=250., + QSUSXC=0.0002, + QSUSXS=0.0003, + QXRAL=130., + QXRDEL=0.49, + QXRHX=0.99, + QXRR=0.25, + RCVEVAP=0.25, + REFLKUO=5000., + REVGSL=15., + SCO=-20., + TDDGP=0.8, + TENTR=0.0000025, + TENTRX=0.00008, + TUDGP=0.8, + UHDIFV=0.0008, + USURIC=0.175, + USURICE=0.5, + USURICL=1., + USURID=0.1, + USURIDE=0.25, + VZ0CM=0.00015, + XMAXLM=5000., + XMINLM=10., + / + &NAMPHY1 + ALBMIN=0.65, + ALCRIN=0.75, + GCGEL=0.00003, + GCGELS=0.00005, + GNEIMX=1.8, + GNEIMXS=1.8, + RCTVEG(3)=0.000012, + RCTVEG(4)=0.00001, + / + &NAMPHY2 + FACRAF=3.8, + HTKERAF=20., + LMULAF=.TRUE., + LRAFTKE=.TRUE., + LRAFTUR=.TRUE., + XDAMP=1., + XMULAF=-1.85, + / + &NAMPHY3 + / + &NAMPHYDS + / + &NAMPONG + / + &NAMPPC + / + &NAMPPVI + / + &NAMPRE + / + &NAMRAD15 + / + &NAMRADCMEM + / + &NAMRCF + / + &NAMRCOEF + / + &NAMRES + / + &NAMRGRI + / + &NAMRINC + / + &NAMRIP + TSTEP=50., + CSTOP='h2', + / + &NAMRIP0 + / + &NAMRLX + / + &NAMSATS + LPARTIAL_COEF_FILES=.TRUE., + / + &NAMSCC + / + &NAMSCEN + / + &NAMSCM + / + &NAMSEKF + / + &NAMSENS + / + &NAMSFXCMP + CFLDNAME(1)='????????????????', + NBBITS(1)=24, + / + &NAMSIMPHL + / + &NAMSPNG + / + &NAMSPSDT + / + &NAMSTA + / + &NAMSTOPH + / + &NAMSWE + / + &NAMTESTVAR + / + &NAMTHLIM + / + &NAMTOPH + ETCVIM=5000., + ETNEBU=5000., + ETPLUI=5000., + XDRMTK=6.0D-7, + XDRMTP=800., + XDRMUK=3.0D-7, + XDRMUP=800., + / + &NAMTRAJP + / + &NAMTRANS + / + &NAMTRANS0 + / + &NAMTS + / + &NAMVAR + / + &NAMVARBC + / + &NAMVARBC_AIREP + / + &NAMVARBC_ALLSKY + / + &NAMVARBC_GBRAD + / + &NAMVARBC_RAD + / + &NAMVARBC_SFCOBS + / + &NAMVARBC_TCWV + / + &NAMVARBC_TO3 + / + &NAMVAREPS + / + &NAMVDF + / + &NAMVDOZ + / + &NAMVOLCANO + / + &NAMVRTL + / + &NAMVV0 + / + &NAMVV1 + / + &NAMVWRK + / + &NAMWAVELETJB + / + &NAMXFU + LXCLP=.TRUE., + LXCLS=.TRUE., + LXFU=.TRUE., + LXNEBPA=.TRUE., + LXNEBTT=.TRUE., + LXNUVCLS=.TRUE., + LXPLS=.TRUE., + LXPLSG=.TRUE., + LXQCLS=.TRUE., + LXR=.TRUE., + LXSOIL=.FALSE., + LXTHW=.TRUE., + LXTRT=.TRUE., + LXTTCLS=.TRUE., + LXXDIAGH=.TRUE., + LXXGST=.TRUE., + NFRRAZ=72, + NRAZTS(0)=0, + / + &NAM_CANAPE + / + &NAM_DISTRIBUTED_VECTORS + / + &NAPHLC + / + &NEMCT0 + / + &NEMDIM + / + &NEMDYN + / + &NEMELBC0A + LESPCPL=.TRUE., + NBICNHX=2, + NBICOP=2, + NBICOT=2, + NBICOU=2, + NBICPD=2, + NBICVD=2, + NECRIPL=1, + / + &NEMELBC0B + NEFRSPCPL=1, + NEK0=20, + NEK1=30, + NEN1=4, + NEN2=8, + SPNUDDIV=0.01, + SPNUDQ=0., + SPNUDT=0.01, + SPNUDVOR=0.01, + TEFRCL=3600., + / + &NEMFPEZO + / + &NEMGEO + / + &NEMJK + / + &NEMVAR + / + &NEMWAVELET + / + &NAETLDIAG + / + &NAMMETHOX + / + &NAMSPP + / + &NAMACV + / + &NAMFPOBJ + / + &NAMNORGWD + / + &NAMTRAJ + / + &NAMSATSIM + / + &NAMDVISI + / + &NAMNUDGLH + / + &NAMPERTPAR + / +FIN +/bin/cat fort.4 + +/bin/cat <<FIN > EXSEG1.nam + &NAM_DIAG_ISBAN + LPGD=.TRUE., + LSURF_MISC_BUDGET=.TRUE., + / + &NAM_DIAG_SURFN + LCOEF=.TRUE., + LSURF_BUDGET=.TRUE., + N2M=2, + / + &NAM_ISBAN + CSCOND='NP89', + / + &NAM_REPROD_OPER + LREPROD_OPER=.TRUE., + / + &NAM_SEAFLUXN + CSEA_FLUX='ECUME', + LPWG=.FALSE., + LPRECIP=.FALSE., + LPWEBB=.FALSE., + / + &NAM_SSON + CROUGH='Z01D', + XFRACZ0=5., + LDSV=.FALSE., + / + &NAM_SURF_ATM + XRIMAX=0.2, + LNOSOF=.TRUE., + / + &NAM_SURF_CSTS + XZ0SN=0.01, + XZ0HSN=0.001, + XEMISSN=0.99, + / + &NAM_WRITE_DIAG_SURFN + LPROVAR_TO_DIAG=.FALSE., + LSELECT=.TRUE., +CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS', + / + &NAM_WRITE_SURF_ATM + LNOWRITE_TEXFILE=.TRUE., + / +FIN +/bin/cat EXSEG1.nam + +# ***************************************** +# * Acquisition du fichier de demarrage * +# ***************************************** + +echo +for hh in 0 1 2 3 4 5 6 ; do + N=`expr $hh / 1 ` + set -x + ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N} + set +x +done +set -x +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx +ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin . +ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim +ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx +ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025 +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat . +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat . +ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat . +set +x +tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz + +# *************** +# * Chargement * +# *************** + +echo +set -x +\ln -s $LOADIR/MASTERODB MASTER +set +x +if ldd MASTER | grep openmpi > /dev/null; then + #On est sur PC + MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}') + MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC" + GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1 + export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions + export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions +else + #On est sur HPC + #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD" + NNODES=$SLURM_JOB_NUM_NODES + MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES)) + MPI_TASKS=$SLURM_NTASKS + MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --" + export OMP_STACKSIZE=4G + export KMP_STACKSIZE=4G + export KMP_MONITOR_STACKSIZE=4G + export DR_HOOK=1 + export DR_HOOK_IGNORE_SIGNALS=-1 + export DR_HOOK_SILENT=1 + export DR_HOOK_SHOW_PROCESS_OPTIONS=0 + export MPL_MBX_SIZE=2048000000 + export EC_PROFILE_HEAP=0 + export EC_PROFILE_MEM=0 + export EC_MPI_ATEXIT=0 + export EC_MEMINFO=0 + export OPENBLAS_NUM_THREADS=1 + export MKL_CBWR="AUTO,STRICT" + export MKL_NUM_THREADS=1 + export MKL_DEBUG_CPU_TYPE=5 + export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions +fi +echo $MPIRUN +set +x +if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi + +# *************** +# * Execution * +# *************** + +echo +echo OMP_NUM_THREADS=$OMP_NUM_THREADS +set -x +ulimit -s unlimited +$MPIRUN $PWD/MASTER >lola +set +x +echo +##if [ -f lola ] ; then +## echo;echo Standard output :;echo;cat lola +##fi +##if [ -f stderr.* ] ; then +## for file in stderr.* ; do +## echo;echo $file :;cat $file +## done +##fi +##if [ -f stdout.* ] ; then +##echo;echo stdout :;echo;cat stdout.* +##fi +##if [ -a NODE.001_01 ] ; then +## for file in NODE* ; do +## echo;echo Listing $file;echo +## cat $file +## done +##fi +##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then +### Top 25 for each MPI task : +## for file in drhook.prof.* ; do +## echo;echo $file :;head -38 $file +## done +##fi +#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl + +# ******************* +# * Sauvegardes * +# ******************* + +ls +#if [ -f PFFPOS000+0000 ] ; then +# cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID +#fi +cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/ +/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001* +/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00* +/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz) + +# **************** +# * Epilogue * +# **************** + +ls -ltr | grep -v "\->" +echo Wait_queue : +ls -ltr $TMPWAIT +cd $TMPDIR +\rm -rf rundir.$$ +\rm -rf wait_queue.$$ +date +set +x diff --git a/tools/conf_tests/small_3D_np2/aro48t3.sh b/tools/conf_tests/small_3D_np2/aro48t3.sh new file mode 100755 index 0000000000000000000000000000000000000000..1ac4893258e7cacee0c355d797df31896c182137 --- /dev/null +++ b/tools/conf_tests/small_3D_np2/aro48t3.sh @@ -0,0 +1,1207 @@ +#!/bin/bash +#SBATCH -n 2 +#SBATCH --mem=20000 +#SBATCH --export=MYLIB,HOME,HOMEPACK,TMPDIR,OUTPUTDIR,TESTDIR +#SBATCH -t 00:10:00 +#SBATCH -N 1 +#SBATCH -p normal256 + +#The MYLIB varibale must contain the gmkpack pack name +#The TESTDIR variable must contain the test directory +#Results will be stored in the local directory + +#Other environment varaibles that can be set: +#OUTPUTDIR + +date + +OUTPUTDIR=${OUTPUTDIR:-$PWD} +case=riette2 +#rekchemin="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" #Resources for the run must be in the same directory as this script +rekchemin=$TESTDIR + +NPROC=2 +NSTRIN=$NPROC +NSTROUT=1 +NPRTRW_NPRTRV="" +NPRTRW_NPRTRV=" NPRTRW=$NPROC, + NPRTRV=1," +export OMP_NUM_THREADS=1 + +#MYLIB=48t1_main.01%jpdup + +export DR_HOOK=1 +#export DR_HOOK_IGNORE_SIGNALS=-1 +export DR_HOOK_NOT_MPI=1 +export DR_HOOK_SILENT=1 +export DR_HOOK_OPT= + +export EC_PROFILE_HEAP=0 +export EC_PROFILE_MEM=0 +export EC_MPI_ATEXIT=0 +export DR_HOOK_SHOW_PROCESS_OPTIONS=0 +export EC_MEMINFO=0 +export TVSEARCHPATH=$SOURCE + +HOMEPACK=${HOMEPACK:=$HOME/pack} +SOURCE=$HOMEPACK/$MYLIB/src/local +LOADIR=$HOMEPACK/$MYLIB/bin + +TMPDIR=${TMPDIR:=$HOME/tmp} +TMPLOC=$TMPDIR/rundir.$$ +TMPWAIT=$TMPDIR/wait_queue.$$ +mkdir $TMPWAIT +mkdir $TMPLOC +cd $TMPLOC + +export RTTOV_COEFDIR=$PWD + +# ************************** +# * Saisie des NAMELISTS * +# ************************** + +CNMEXP='FPOS' + +echo +/bin/cat <<FIN > fort.4 + &NACIETEO + / + &NACOBS + / + &NACTAN + / + &NACTEX + / + &NACVEG + / + &NADOCK + / + &NAEAEM7 + / + &NAEAER + / + &NAECOAPHY + / + &NAEPHLI + / + &NAEPHY + / + &NAERAD + LRRTM=.TRUE., + LSRTM=.FALSE., + NAER=1, + NICEOPT=3, + NLIQOPT=3, + NOVLP=6, + NOZOCL=2, + NRADFR=18, + NRADIP=3, + NRADLP=2, + NSW=6, + RLWINHF=1, + RRE2DE=0.64952, + RSWINHF=1, + / + &NAERCLI + / + &NAEVOL + / + &NAIMPO + / + &NALORI + / + &NAMAFN + GFP_CLSG%CLNAME='SURFACCGRAUPEL', + GFP_CLSP%CLNAME='SURFACCPLUIE', + GFP_CLSS%CLNAME='SURFACCNEIGE', + GFP_SFIS%IBITS=16, + GFP_ST%CLNAME='SURFTEMPERATURE', + GFP_ST%IANO=0, + GFP_ST%IBITS=12, + GFP_X10U%CLNAME='CLSVENT.ZONAL', + GFP_X10U%IANO=0, + GFP_X10U%IBITS=12, + GFP_X10V%CLNAME='CLSVENT.MERIDIEN', + GFP_X10V%IANO=0, + GFP_X10V%IBITS=12, + GFP_X2RH%CLNAME='CLSHUMI.RELATIVE', + GFP_X2RH%IANO=0, + GFP_X2RH%IBITS=12, + GFP_X2T%CLNAME='CLSTEMPERATURE', + GFP_X2T%IANO=1, + GFP_XCCC%IBITS=8, + GFP_XHCC%IBITS=8, + GFP_XLCC%IBITS=8, + GFP_XLSG%CLNAME='SURFINSGRAUPEL', + GFP_XLSP%CLNAME='SURFINSPLUIE', + GFP_XLSS%CLNAME='SURFINSNEIGE', + GFP_XMCC%IBITS=8, + GFP_XN2T%IBITS=12, + GFP_XTCC%IBITS=8, + GFP_XUGST%CLNAME='CLSU.RAF60M.XFU', + GFP_XUGST%IANO=0, + GFP_XUGST%IBITS=12, + GFP_XVGST%CLNAME='CLSV.RAF60M.XFU', + GFP_XVGST%IANO=0, + GFP_XVGST%IBITS=12, + GFP_XX2T%IBITS=12, + GFP_XXDIAGH%IBITS=12, + TFP_ABS%ZFK=32., + TFP_CLF%IBITS=6, + TFP_EDR%CLNAME='EDR', + TFP_EDR%IBITS=16, + TFP_EDR%IGRIB=136, + TFP_GR%IBITS=12, + TFP_HL%IBITS=12, + TFP_HTB%IBITS=16, + TFP_HTB%LLGP=.TRUE., + TFP_HU%IBITS=12, + TFP_MSAT9C2%IBITS=12, + TFP_MSAT9C6%IBITS=12, + TFP_MSLNH%IBITS=12, + TFP_PV%ZFK=64., + TFP_RCLS%IBITS=12, + TFP_RR%IBITS=12, + TFP_SN%IBITS=12, + TFP_T%IBITS=12, + TFP_TCLS%IBITS=12, + TFP_TH%IBITS=12, + TFP_THPW%IBITS=12, + TFP_THV%IBITS=12, + TFP_TN%IBITS=12, + TFP_TWV%IBITS=12, + TFP_TX%IBITS=12, + TFP_U%IBITS=12, + TFP_V%IBITS=12, + TFP_VOR%ZFK=32., + TFP_VV%ZFK=32., + / + &NAMARG + CNMEXP='${CNMEXP}', + LECMWF=.FALSE., + LELAM=.TRUE., + LSLAG=.TRUE., + NCONF=1, + NSUPERSEDE=1, + / + &NAMARPHY + LKFBCONV=.FALSE., + LKFBD=.FALSE., + LKFBS=.FALSE., + LMFSHAL=.TRUE., + LMICRO=.TRUE., + LMPA=.TRUE., + LMSE=.TRUE., + LTURB=.TRUE., + / + &NAMCA + / + &NAMCAPE + / + &NAMCFU + LCUMFU=.TRUE., + LFPLS=.TRUE., + LFPLSG=.TRUE., + LFR=.TRUE., + LFRRC=.TRUE., + LFSF=.TRUE., + LNEBPAR=.TRUE., + LNEBTT=.TRUE., + LRAYD=.TRUE., + LRAYS=.TRUE., + / + &NAMCHEM + / + &NAMCHET + / + &NAMCHK + / + &NAMCLA + / + &NAMCLDP + / + &NAMCLI + / + &NAMCLOP15 + / + &NAMCLTC + / + &NAMCOK + / + &NAMCOM + / + &NAMCOSJO + / + &NAMCOUPLO4 + / + &NAMCT0 + CFPNCF='ECHFP', + CNPPATH=' ', + LAROME=.TRUE., + LNHEE=.TRUE., + LSCREEN_OPENMP=.FALSE., + LSPRT=.TRUE., + LTWOTL=.TRUE., + NFPOS=1, + NFRSDI=18, + NSDITS(0)=0, + NFRHIS=72, + NHISTS(0)=0, + NFRPOS=72, + NPOSTS(0)=0, + NFRSFXHIS=72, + NSFXHISTS(0)=0, + NFRDHFD=72, + NDHFDTS(0)=0, + / + &NAMCT1 + LRFILAF=.FALSE., + N1HIS=1, + N1POS=1, + N1RES=0, + N1SDI=1, + N1SFXHIS=1, + N1GDI=0, + / + &NAMCUMF + / + &NAMCUMFS + / + &NAMCVER + / + &NAMCVMNH + / + &NAMDDH + LDDH_OMP=.TRUE., + LHDDOP=.TRUE., + LHDHKS=.TRUE., + LHDEFD=.TRUE., + LFLEXDIA=.TRUE., + BDEDDH(1,1)=3, + BDEDDH(2,1)=1, + BDEDDH(3,1)=358.8 + BDEDDH(4,1)=45.1 + BDEDDH(5,1)=360.3 + BDEDDH(6,1)=44.5 + / + &NAMDFI + / + &NAMDIM + NPROMA=-50, + / + &NAMDIMO + / + &NAMDIM_TRAJ + / + &NAMDPHY + / + &NAMDPRECIPS + / + &NAMDYN + LADVF=.TRUE., + LQMPD=.FALSE., + LQMT=.FALSE., + LQMVD=.FALSE., + LRHDI_LASTITERPC=.TRUE., + NITMP=4, + NSITER=1, + NSPDLAG=3, + NSVDLAG=3, + NTLAG=3, + NVLAG=3, + NWLAG=3, + RDAMPDIV=20., + RDAMPPD=20., + RDAMPQ=0., + RDAMPT=0., + RDAMPVD=20., + RDAMPVOR=20., + REPS1=0., + REPS2=0., + REPSM1=0., + REPSM2=0., + REPSP1=0., + SDRED=1., + SIPR=90000., + SITR=350., + SITRA=100., + SLHDA0=0.25, + SLHDD00=0.000065, + VESL=0.05, + XIDT=0., + ZSLHDP1=1.7, + ZSLHDP3=0.6, + / + &NAMDYNA + LCOMADH=.TRUE., + LCOMADV=.FALSE., + LCOMAD_GFL=.TRUE., + LCOMAD_SP=.TRUE., + LCOMAD_SPD=.TRUE., + LCOMAD_SVD=.TRUE., + LCOMAD_T=.TRUE., + LCOMAD_W=.TRUE., + LGWADV=.TRUE., + LNESC=.TRUE., + LPC_CHEAP=.TRUE., + LPC_FULL=.TRUE., + LRDBBC=.FALSE., + LSETTLS=.FALSE., + LSETTLST=.TRUE., + LSLHD_GFL=.TRUE., + LSLHD_OLD=.FALSE., + LSLHD_SPD=.FALSE., + LSLHD_SVD=.FALSE., + LSLHD_T=.FALSE., + LSLHD_W=.FALSE., + ND4SYS=2, + NDLNPR=1, + NPDVAR=2, + NVDVAR=4, + SLHDEPSH=0.08, + SLHDKMAX=6, + / + &NAMDYNCORE + / + &NAMEMIS_CONF + / + &NAMENKF + / + &NAMFA + CMODEL='OUTPUTID', + LEXTERN=.TRUE., + LSUPPDATE=.FALSE., + NBITCS=-1, + NBITPG=-1, + NSTRON=-1, + / + &NAMFAINIT + JPXTRO=2000, + / + &NAMFPC + CFP2DF(1)='SURFPRESSION', + CFP2DF(2)='MSL_NHPRESSURE', + CFP2DF(3)='SURFTOT.WAT.VAPO', + CFP2DF(4)='SURFISOTPW0.MALT', + CFP2DF(5)='SURFCAPE.POS.F00', + CFP2DF(6)='C002_METEOSAT_09_SEVIRI.POS', + CFP2DF(7)='C006_METEOSAT_09_SEVIRI.POS', + CFP2DF(8)='SURFREFLECT.MAX', + CFP2DF(9)='SURFISOTPW1.MALT', + CFP2DF(10)='SURFISOTPW2.MALT', + CFP3DF(1)='GEOPOTENTIEL', + CFP3DF(2)='TEMPERATURE', + CFP3DF(3)='VENT_ZONAL', + CFP3DF(4)='VENT_MERIDIEN', + CFP3DF(5)='HUMI_RELATIVE', + CFP3DF(6)='THETA_PRIM_W', + CFP3DF(7)='PRESSURE', + CFP3DF(8)='ABS_VORTICITY', + CFP3DF(9)='VITESSE_VERTICALE', + CFP3DF(10)='TEMPE_POTENT', + CFP3DF(11)='POT_VORTICIT', + CFP3DF(12)='SIM_REFLECTI', + CFP3DF(13)='RAIN', + CFP3DF(14)='SNOW', + CFP3DF(15)='GRAUPEL', + CFP3DF(16)='ICE_CRYSTAL', + CFP3DF(17)='CLOUD_WATER', + CFP3DF(18)='VERT.VELOCIT', + CFP3DF(19)='DIVERGENCE', + CFP3DF(20)='THETA_VIRTUA', + CFP3DF(21)='TKE', + CFP3DF(22)='CLOUD_FRACTI', + CFP3DF(23)='ISOT_ALTIT', + CFP3DF(24)='EDR', + CFPCFU(1)='SURFTENS.TOTA.ZO', + CFPCFU(2)='SURFTENS.TOTA.ME', + CFPCFU(3)='SURFACCPLUIE', + CFPCFU(4)='SURFACCNEIGE', + CFPCFU(5)='SURFACCGRAUPEL', + CFPCFU(6)='SOMMFLU.RAY.SOLA', + CFPCFU(7)='SURFFLU.RAY.SOLA', + CFPCFU(8)='SOMMFLU.RAY.THER', + CFPCFU(9)='SURFFLU.RAY.THER', + CFPCFU(10)='SURFFLU.LAT.MTOT', + CFPCFU(11)='SURFFLU.MTOTA.NE', + CFPCFU(12)='SURFFLU.CHA.SENS', + CFPCFU(13)='SURFRAYT SOLA DE', + CFPCFU(14)='SURFRAYT THER DE', + CFPCFU(15)='SURFRAYT SOL CL', + CFPCFU(16)='SURFRAYT THER CL', + CFPCFU(17)='SURFRAYT DIR SUR', + CFPDOM(1)='FRANGP0025', + CFPFMT='LALON', + CFPPHY(1)='SURFTEMPERATURE', + CFPPHY(2)='INTSURFGEOPOTENT', + CFPPHY(3)='SURFRESERV.NEIGE', + CFPXFU(1)='CLSTEMPERATURE', + CFPXFU(2)='CLSHUMI.RELATIVE', + CFPXFU(3)='CLSVENT.ZONAL', + CFPXFU(4)='CLSVENT.MERIDIEN', + CFPXFU(5)='SURFNEBUL.TOTALE', + CFPXFU(6)='SURFNEBUL.HAUTE', + CFPXFU(7)='SURFNEBUL.MOYENN', + CFPXFU(8)='SURFNEBUL.BASSE', + CFPXFU(9)='CLSMAXI.TEMPERAT', + CFPXFU(10)='CLSMINI.TEMPERAT', + CFPXFU(11)='CLPMHAUT.MOD.XFU', + CFPXFU(12)='SURFDIAGHAIL', + LCRITSNOWTEMP=.FALSE., + LFPCAPEX=.TRUE., + LFPMOIS=.TRUE., + LFPPACKING=.FALSE., + LWIDER_DOM=.TRUE., + L_READ_MODEL_DATE=.TRUE., + NFITI=1, + NFITV=1, + NFPCAPE=5, + NFPCLI=1, + NFPGRIB=1, + NFPINPHY=4, + NITERPV=8, + RENTRA=0.0001, + RFP3H(1)=10., + RFP3H(2)=20., + RFP3H(3)=35., + RFP3H(4)=50., + RFP3H(5)=75., + RFP3H(6)=100., + RFP3H(7)=150., + RFP3H(8)=200., + RFP3H(9)=250., + RFP3H(10)=375., + RFP3H(11)=500., + RFP3H(12)=625., + RFP3H(13)=750., + RFP3H(14)=875., + RFP3H(15)=1000., + RFP3H(16)=1125., + RFP3H(17)=1250., + RFP3H(18)=1375., + RFP3H(19)=1500., + RFP3H(20)=1750., + RFP3H(21)=2000., + RFP3H(22)=2250., + RFP3H(23)=2500., + RFP3H(24)=2750., + RFP3H(25)=3000., + RFP3I(1)=-273.15, + RFP3I(2)=-263.15, + RFP3I(3)=-261.15, + RFP3I(4)=-253.15, + RFP3P(1)=10000., + RFP3P(2)=12500., + RFP3P(3)=15000., + RFP3P(4)=17500., + RFP3P(5)=20000., + RFP3P(6)=22500., + RFP3P(7)=25000., + RFP3P(8)=27500., + RFP3P(9)=30000., + RFP3P(10)=35000., + RFP3P(11)=40000., + RFP3P(12)=45000., + RFP3P(13)=50000., + RFP3P(14)=55000., + RFP3P(15)=60000., + RFP3P(16)=65000., + RFP3P(17)=70000., + RFP3P(18)=75000., + RFP3P(19)=80000., + RFP3P(20)=85000., + RFP3P(21)=90000., + RFP3P(22)=92500., + RFP3P(23)=95000., + RFP3P(24)=100000., + RFP3PV(1)=0.0000015, + RFP3PV(2)=0.000002, + RFPCD2=5., + RFPCSAB=50., + RFPVCAP=7000., + / + &NAMFPD + NLAT(1)=41, + NLON(1)=41, + RLONC(1)=-0.71, + RLATC(1)=44.8, + RDELX(1)=0.025, + RDELY(1)=0.025, + / + &NAMFPDY2 + / + &NAMFPDYF + / + &NAMFPDYH + / + &NAMFPDYI + / + &NAMFPDYP + / + &NAMFPDYS + / + &NAMFPDYT + / + &NAMFPDYV + / + &NAMFPF + NFMAX(1)=60, + NFMAX(2)=80, + / + &NAMFPG + NFPDISTRIB=1, + / + &NAMFPIOS + / + &NAMFPMOVE + / + &NAMFPPHY + / + &NAMFPSC2 + NFPROMA=-50, + / + &NAMFPSC2_DEP + NFPROMA_DEP=-50, + / + &NAMGEM + / + &NAMGFL + NGFL_EZDIAG=4, + YEZDIAG_NL(1)%CNAME='EZDIAG01', + YEZDIAG_NL(1)%LREQOUT=.FALSE., + YEZDIAG_NL(2)%CNAME='EZDIAG02', + YEZDIAG_NL(2)%LREQOUT=.FALSE., + YEZDIAG_NL(3)%CNAME='EZDIAG03', + YEZDIAG_NL(3)%LREQOUT=.FALSE., + YEZDIAG_NL(4)%CNAME='INPRRTOT3D', + YEZDIAG_NL(4)%LREQOUT=.TRUE., + YG_NL%LQM=.TRUE., + YG_NL%LSLHD=.TRUE., + YG_NL%NCOUPLING=-1, + YG_NL%NREQIN=1, + YG_NL%REFVALC=0., + YIRAD_NL%LGP=.TRUE., + YI_NL%LQM=.TRUE., + YI_NL%LSLHD=.TRUE., + YI_NL%NCOUPLING=-1, + YI_NL%NREQIN=1, + YI_NL%REFVALC=0., + YLRAD_NL%LGP=.TRUE., + YL_NL%LQM=.TRUE., + YL_NL%LSLHD=.TRUE., + YL_NL%NCOUPLING=-1, + YL_NL%NREQIN=1, + YL_NL%REFVALC=0., + YQ_NL%LCOMAD=.TRUE., + YQ_NL%LQM=.TRUE., + YQ_NL%LSLHD=.FALSE., + YQ_NL%NREQIN=1, + YR_NL%LQM=.TRUE., + YR_NL%LSLHD=.TRUE., + YR_NL%NCOUPLING=-1, + YR_NL%NREQIN=1, + YR_NL%REFVALC=0., + YS_NL%LQM=.TRUE., + YS_NL%LSLHD=.TRUE., + YS_NL%NCOUPLING=-1, + YS_NL%NREQIN=1, + YS_NL%REFVALC=0., + YTKE_NL%NCOUPLING=0, + YTKE_NL%NREQIN=1, + / + &NAMGRIB + / + &NAMGWD + / + &NAMGWDIAG + / + &NAMGWWMS + / + &NAMIAU + ALPHAIAU=0.5, + LIAU=.FALSE., + TSTARTIAU=1800, + TSTOPIAU=5340, + / + &NAMICE + / + &NAMINI + LDFI=.FALSE., + / + &NAMINTFLEX + / + &NAMIOMI + / + &NAMIOS + / + &NAMIO_SERV + NIO_SERV_BUF_MAXSIZE=20, + NIO_SERV_METHOD=2, + NMSG_LEVEL_CLIENT=0, + NMSG_LEVEL_SERVER=0, + NPROCESS_LEVEL=5, + NPROC_IO=0, + / + &NAMJBCODES + / + &NAMJFH + / + &NAMJG + / + &NAMLCZ + / + &NAMLSFORC + / + &NAMMARS + / + &NAMMCC + / + &NAMMCUF + / + &NAMMKODB + / + &NAMMODERR + / + &NAMMTS + / + &NAMMWAVE + / + &NAMNPROF + / + &NAMNUD + / + &NAMOBS + / + &NAMONEDVAR + / + &NAMOOPS + / + &NAMOPH + CFNHWF='ECHIS', + LINC=.TRUE., + NTIMEFMT=1, + / + &NAMOPTCMEM + / + &NAMPAR0 + LOPT_SCALAR=.TRUE., + NPRINTLEV=1, + LMPOFF=.FALSE., + MBX_SIZE=2048000000, + MP_TYPE=2, + NOUTPUT=1, + NPROC=$NPROC, +$NPRTRW_NPRTRV + / + &NAMPAR1 + LEQ_REGIONS=.FALSE., + LSLONDEM=.TRUE., + LSPLIT=.TRUE., + LSYNC_SLCOM=.FALSE., + LSYNC_TRANS=.FALSE., + L_GATHERV_WRGP=.FALSE., + NCOMBFLEN=1800000, + NSTRIN=$NSTRIN, + NSTROUT=$NSTROUT, + / + &NAMPARAR + CFRAC_ICE_ADJUST='S', + CFRAC_ICE_SHALLOW_MF='S', + CMICRO='ICE3', + CSEDIM='STAT', + CSNOWRIMING='M90', + LCONVHG=.TRUE., + LCRFLIMIT=.TRUE., + LCRIAUTI=.TRUE., + LEVLIMIT=.TRUE., + LFEEDBACKT=.TRUE., + LFPREC3D=.TRUE., + LNULLWETG=.TRUE., + LNULLWETH=.TRUE., + LOLSMC=.TRUE., + LOSEDIC=.TRUE., + LOSIGMAS=.TRUE., + LOSUBG_COND=.TRUE., + LSEDIM_AFTER=.FALSE., + LWETGPOST=.TRUE., + LWETHPOST=.TRUE., + NMAXITER_MICRO=1, + NPRINTFR=10000, + NPTP=1, + RCRIAUTC=0.001, + RCRIAUTI=0.0002, + RT0CRIAUTI=-5., + VSIGQSAT=0.02, + XFRACM90=0.1, + XMRSTEP=0.00005, + XSPLIT_MAXCFL=0.8, + XTSTEP_TS=0., + / + &NAMPHMSE + LPGDFWR=.FALSE., + / + &NAMPHY + LAERODES=.TRUE., + LAEROLAN=.TRUE., + LAEROSEA=.TRUE., + LAEROSOO=.TRUE., + LEDR=.TRUE., + LMPHYS=.TRUE., + LO3ABC=.TRUE., + LRAYFM=.TRUE., + / + &NAMPHY0 + ALMAV=300., + BEDIFV=0.05, + ECMNP=3000., + GCCSV=0., + GCVADS=0.8, + GCVALFA=0.000045, + GCVBETA=0.2, + GCVMLT=0.00016, + GCVNU=0.000025, + GCVPSI=1., + GCVPSIE=1., + GDDEVA=0.25, + GDDSDE=0.5, + GWDCD=6., + HUCOE=0.5, + HUTIL=1.8, + QSSC=400., + QSSUSC=0.75, + QSSUSS=0.4, + QSSUSV=250., + QSUSXC=0.0002, + QSUSXS=0.0003, + QXRAL=130., + QXRDEL=0.49, + QXRHX=0.99, + QXRR=0.25, + RCVEVAP=0.25, + REFLKUO=5000., + REVGSL=15., + SCO=-20., + TDDGP=0.8, + TENTR=0.0000025, + TENTRX=0.00008, + TUDGP=0.8, + UHDIFV=0.0008, + USURIC=0.175, + USURICE=0.5, + USURICL=1., + USURID=0.1, + USURIDE=0.25, + VZ0CM=0.00015, + XMAXLM=5000., + XMINLM=10., + / + &NAMPHY1 + ALBMIN=0.65, + ALCRIN=0.75, + GCGEL=0.00003, + GCGELS=0.00005, + GNEIMX=1.8, + GNEIMXS=1.8, + RCTVEG(3)=0.000012, + RCTVEG(4)=0.00001, + / + &NAMPHY2 + FACRAF=3.8, + HTKERAF=20., + LMULAF=.TRUE., + LRAFTKE=.TRUE., + LRAFTUR=.TRUE., + XDAMP=1., + XMULAF=-1.85, + / + &NAMPHY3 + / + &NAMPHYDS + / + &NAMPONG + / + &NAMPPC + / + &NAMPPVI + / + &NAMPRE + / + &NAMRAD15 + / + &NAMRADCMEM + / + &NAMRCF + / + &NAMRCOEF + / + &NAMRES + / + &NAMRGRI + / + &NAMRINC + / + &NAMRIP + TSTEP=50., + CSTOP='h2', + / + &NAMRIP0 + / + &NAMRLX + / + &NAMSATS + LPARTIAL_COEF_FILES=.TRUE., + / + &NAMSCC + / + &NAMSCEN + / + &NAMSCM + / + &NAMSEKF + / + &NAMSENS + / + &NAMSFXCMP + CFLDNAME(1)='????????????????', + NBBITS(1)=24, + / + &NAMSIMPHL + / + &NAMSPNG + / + &NAMSPSDT + / + &NAMSTA + / + &NAMSTOPH + / + &NAMSWE + / + &NAMTESTVAR + / + &NAMTHLIM + / + &NAMTOPH + ETCVIM=5000., + ETNEBU=5000., + ETPLUI=5000., + XDRMTK=6.0D-7, + XDRMTP=800., + XDRMUK=3.0D-7, + XDRMUP=800., + / + &NAMTRAJP + / + &NAMTRANS + / + &NAMTRANS0 + / + &NAMTS + / + &NAMVAR + / + &NAMVARBC + / + &NAMVARBC_AIREP + / + &NAMVARBC_ALLSKY + / + &NAMVARBC_GBRAD + / + &NAMVARBC_RAD + / + &NAMVARBC_SFCOBS + / + &NAMVARBC_TCWV + / + &NAMVARBC_TO3 + / + &NAMVAREPS + / + &NAMVDF + / + &NAMVDOZ + / + &NAMVOLCANO + / + &NAMVRTL + / + &NAMVV0 + / + &NAMVV1 + / + &NAMVWRK + / + &NAMWAVELETJB + / + &NAMXFU + LXCLP=.TRUE., + LXCLS=.TRUE., + LXFU=.TRUE., + LXNEBPA=.TRUE., + LXNEBTT=.TRUE., + LXNUVCLS=.TRUE., + LXPLS=.TRUE., + LXPLSG=.TRUE., + LXQCLS=.TRUE., + LXR=.TRUE., + LXSOIL=.FALSE., + LXTHW=.TRUE., + LXTRT=.TRUE., + LXTTCLS=.TRUE., + LXXDIAGH=.TRUE., + LXXGST=.TRUE., + NFRRAZ=72, + NRAZTS(0)=0, + / + &NAM_CANAPE + / + &NAM_DISTRIBUTED_VECTORS + / + &NAPHLC + / + &NEMCT0 + / + &NEMDIM + / + &NEMDYN + / + &NEMELBC0A + LESPCPL=.TRUE., + NBICNHX=2, + NBICOP=2, + NBICOT=2, + NBICOU=2, + NBICPD=2, + NBICVD=2, + NECRIPL=1, + / + &NEMELBC0B + NEFRSPCPL=1, + NEK0=20, + NEK1=30, + NEN1=4, + NEN2=8, + SPNUDDIV=0.01, + SPNUDQ=0., + SPNUDT=0.01, + SPNUDVOR=0.01, + TEFRCL=3600., + / + &NEMFPEZO + / + &NEMGEO + / + &NEMJK + / + &NEMVAR + / + &NEMWAVELET + / + &NAETLDIAG + / + &NAMMETHOX + / + &NAMSPP + / + &NAMACV + / + &NAMFPOBJ + / + &NAMNORGWD + / + &NAMTRAJ + / + &NAMSATSIM + / + &NAMDVISI + / + &NAMNUDGLH + / + &NAMPERTPAR + / +FIN +/bin/cat fort.4 + +/bin/cat <<FIN > EXSEG1.nam + &NAM_DIAG_ISBAN + LPGD=.TRUE., + LSURF_MISC_BUDGET=.TRUE., + / + &NAM_DIAG_SURFN + LCOEF=.TRUE., + LSURF_BUDGET=.TRUE., + N2M=2, + / + &NAM_ISBAN + CSCOND='NP89', + / + &NAM_REPROD_OPER + LREPROD_OPER=.TRUE., + / + &NAM_SEAFLUXN + CSEA_FLUX='ECUME', + LPWG=.FALSE., + LPRECIP=.FALSE., + LPWEBB=.FALSE., + / + &NAM_SSON + CROUGH='Z01D', + XFRACZ0=5., + LDSV=.FALSE., + / + &NAM_SURF_ATM + XRIMAX=0.2, + LNOSOF=.TRUE., + / + &NAM_SURF_CSTS + XZ0SN=0.01, + XZ0HSN=0.001, + XEMISSN=0.99, + / + &NAM_WRITE_DIAG_SURFN + LPROVAR_TO_DIAG=.FALSE., + LSELECT=.TRUE., +CSELECT(1)='T2M','HU2M','XX','YY','DX','DY','SST','Z0SEA','TS_WATER','Z0WATER','TG1','TG2','TG3','WG1','WG2','WG3','WGI1','WGI2','WGI3','WR','WSN_VEG1','RSN_VEG1','ASN_VEG','TSRAD_NAT','RESA','TROOF1','TROOF2','TROOF3','TROOF4','TROOF5','WS_ROOF','TROAD1','TROAD2','TROAD3','TROAD4','TROAD5','WS_ROAD','TWALL1','TWALL2','TWALL3','TWALL4','TWALL5','TI_BLD','T_WIN1','TI_ROAD','WSN_RF1','RSN_RF1','TSN_RF1','ASN_RF','WSN_RD1','RSN_RD1','TSN_RD1','ASN_RD','TCANYON','QCANYON','STORAGE_TYPE','MASDEV','VERSION','BUG','DIM_FULL','DTCUR','LAT0','LON0','RPK','BETA','LATORI','LONORI','IMAX','JMAX','RW_PRECIP','BUDC','SEA_OCEAN','SEA_SBL','WAT_SBL','SN_VEG_N','SN_VEG','LSNOW_FRAC_T','GLACIER','TEMPARP','NLITTER','NLITTLEVS','NSOILCARB','ISBA_CANOPY','SN_RF_N','SN_RF','SN_RD_N','SN_RD','SN_RD_TYP','SN_RF_TYP','TEB_CANOPY','STORAGETYPE','CARTESIAN','GRID_TYPE','SN_VEG_TYP','RESPSL','ROAD_DIR','WALL_OPT','LAI','VEG','RSMIN','DG2','_FBUF_SIZE','_FBUF_DIM1','_FBUF_DIM2','_FBUF_NAME','_FBUF_TYPE','_FBUF_MASK','LCPL_GCM','HANDLE_SIC','SSS', + / + &NAM_WRITE_SURF_ATM + LNOWRITE_TEXFILE=.TRUE., + / +FIN +/bin/cat EXSEG1.nam + +# ***************************************** +# * Acquisition du fichier de demarrage * +# ***************************************** + +echo +for hh in 0 1 2 3 4 5 6 ; do + N=`expr $hh / 1 ` + set -x + ln -s $rekchemin/data/aro/$case/ELSCFFCSTALBC000${N}_l15 ELSCF${CNMEXP}ALBC00${N} + set +x +done +set -x +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT_l15 ICMSH${CNMEXP}INIT +ln -s $rekchemin/data/aro/$case/ICMSHFCSTINIT.sfx ICMSH${CNMEXP}INIT.sfx +ln -s $rekchemin/data/surfex/v8/ecoclimapI_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_eu_covers_param.bin . +ln -s $rekchemin/data/surfex/v8/ecoclimapII_af_covers_param.bin . +ln -s $rekchemin/data/aro/$case/Const.Clim Const.Clim +ln -s $rekchemin/data/aro/$case/Const.Clim.sfx Const.Clim.sfx +ln -s $rekchemin/data/aro/$case/const.clim.FRANGP0025 const.clim.FRANGP0025 +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_9_seviri.dat . +ln -s $rekchemin/data/rttov12/rtcoef_meteosat_10_seviri.dat . +ln -s $rekchemin/data/rttov12/sccldcoef_meteosat_9_seviri.dat . +set +x +tar xfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz + +# *************** +# * Chargement * +# *************** + +echo +set -x +\ln -s $LOADIR/MASTERODB MASTER +set +x +if ldd MASTER | grep openmpi > /dev/null; then + #On est sur PC + MPILIB=$(ldd MASTER | grep openmpi | tail -1 | awk '{print $3}' | awk -F "/" '{print $(NF-2)}') + MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep openmpi| tail -1 | awk '{print $3}'))))/bin/orterun --oversubscribe -np $NPROC" + GRIB_API=$(dirname $(dirname $(ldd MASTER | grep grib_api | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + ECCODES=$(dirname $(dirname $(ldd MASTER | grep eccodes | head -1 | awk '{print $3}') 2>/dev/null) 2>/dev/null) + export GRIB_SAMPLES_PATH=$GRIB_API/share/grib_api/ifs_samples/grib1 + export GRIB_DEFINITION_PATH=$GRIB_API/share/grib_api/definitions + export ECCODES_SAMPLES_PATH=$ECCODES/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=$rekchemin/data/eccodes_extras_definitions:$ECCODES/share/eccodes/definitions +else + #On est sur HPC + #MPIRUN="$(echo $(dirname $(dirname $(ldd MASTER | grep libmpi| tail -1 | awk '{print $3}'))))/bin/mpirun -wdir $PWD" + NNODES=$SLURM_JOB_NUM_NODES + MPITASKS_PER_NODE=$((SLURM_NTASKS/SLURM_JOB_NUM_NODES)) + MPI_TASKS=$SLURM_NTASKS + MPIRUN="/opt/softs/mpiauto/mpiauto -np $MPI_TASKS -nnp $MPITASKS_PER_NODE --" + export OMP_STACKSIZE=4G + export KMP_STACKSIZE=4G + export KMP_MONITOR_STACKSIZE=4G + export DR_HOOK=1 + export DR_HOOK_IGNORE_SIGNALS=-1 + export DR_HOOK_SILENT=1 + export DR_HOOK_SHOW_PROCESS_OPTIONS=0 + export MPL_MBX_SIZE=2048000000 + export EC_PROFILE_HEAP=0 + export EC_PROFILE_MEM=0 + export EC_MPI_ATEXIT=0 + export EC_MEMINFO=0 + export OPENBLAS_NUM_THREADS=1 + export MKL_CBWR="AUTO,STRICT" + export MKL_NUM_THREADS=1 + export MKL_DEBUG_CPU_TYPE=5 + export ECCODES_SAMPLES_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/ifs_samples/grib1 + export ECCODES_DEFINITION_PATH=/opt/softs/libraries/ICC_2018.5.274/eccodes-2.17.0/share/eccodes/definitions +fi +echo $MPIRUN +set +x +if [ ! -f MASTER ] ; then echo No executable MASTER;exit 1;fi + +# *************** +# * Execution * +# *************** + +echo +echo OMP_NUM_THREADS=$OMP_NUM_THREADS +set -x +ulimit -s unlimited +$MPIRUN $PWD/MASTER >lola +set +x +echo +##if [ -f lola ] ; then +## echo;echo Standard output :;echo;cat lola +##fi +##if [ -f stderr.* ] ; then +## for file in stderr.* ; do +## echo;echo $file :;cat $file +## done +##fi +##if [ -f stdout.* ] ; then +##echo;echo stdout :;echo;cat stdout.* +##fi +##if [ -a NODE.001_01 ] ; then +## for file in NODE* ; do +## echo;echo Listing $file;echo +## cat $file +## done +##fi +##if [ $(find . -name "drhook.prof.*" | wc -l) -ne 0 ] ; then +### Top 25 for each MPI task : +## for file in drhook.prof.* ; do +## echo;echo $file :;head -38 $file +## done +##fi +#cat drhook.prof.* | perl -w $HOME/bin/drhook_merge_walltime_max.pl + +# ******************* +# * Sauvegardes * +# ******************* + +ls +#if [ -f PFFPOS000+0000 ] ; then +# cp PFFPOS000+0000 $WAIT_QUEUE/PFFPOS000+0000.$PBS_JOBID +#fi +cp lola NODE.001_01 ICMSHFPOS+00* DHFDLFPOS+00* $OUTPUTDIR/ +/bin/rm fort.4 EXSEG1.nam lola ICMSHFPOS+0000* PFFPOSFRANGP0025+0000* ICMSHFPOS+0001* +/bin/rm PFFPOSFRANGP0025+0001* ICMSHFPOS+0002* ECHIS PFFPOSFRANGP0025+0002* DHFDLFPOS+00* +/bin/rm ECHFP NODE.001_01 ifs.stat $(tar tfz $rekchemin/data/rtm/radiation_params.47r1_light.tgz) + +# **************** +# * Epilogue * +# **************** + +ls -ltr | grep -v "\->" +echo Wait_queue : +ls -ltr $TMPWAIT +cd $TMPDIR +\rm -rf rundir.$$ +\rm -rf wait_queue.$$ +date +set +x