Skip to content
Snippets Groups Projects
Commit c890f783 authored by RODIER Quentin's avatar RODIER Quentin
Browse files

Quentin 13/12/2023: adapt interface for using TPFILE for namelist reading (from MNH)

parent 9d4d59c9
No related branches found
No related tags found
No related merge requests found
MODULE MODE_POSNAM_PHY MODULE MODE_POSNAM_PHY
IMPLICIT NONE IMPLICIT NONE
CONTAINS CONTAINS
SUBROUTINE POSNAM_PHY(KUNITNML, CDNAML, LDNEEDNAM, LDFOUND, KLUOUT) SUBROUTINE POSNAM_PHY(TFILENAM, CDNAML, LDNEEDNAM, LDFOUND)
!Wrapper to call the AROME version of posnam !Wrapper to call the AROME version of posnam
USE MODD_IO, ONLY: TFILEDATA
IMPLICIT NONE IMPLICIT NONE
INTEGER, INTENT(IN) :: KUNITNML !< Logical unit to access the namelist TYPE(TFILEDATA), INTENT(IN) :: TFILENAM !< Namelist file
CHARACTER(LEN=*), INTENT(IN) :: CDNAML !< Namelist name CHARACTER(LEN=*), INTENT(IN) :: CDNAML !< Namelist name
LOGICAL, INTENT(IN) :: LDNEEDNAM !< True to abort if namelist is absent LOGICAL, INTENT(IN) :: LDNEEDNAM !< True to abort if namelist is absent
LOGICAL, INTENT(OUT) :: LDFOUND !< True if namelist has been found LOGICAL, INTENT(OUT) :: LDFOUND !< True if namelist has been found
INTEGER, INTENT(IN) :: KLUOUT !< Logical unit for output
#include "posnam.intfb.h" #include "posnam.intfb.h"
CALL POSNAM(KUNITNML, CDNAML) CALL POSNAM(TFILENAM%NLU, CDNAML)
LDFOUND=.TRUE. !Posnam aborts if not found LDFOUND=.TRUE. !Posnam aborts if not found
END SUBROUTINE POSNAM_PHY END SUBROUTINE POSNAM_PHY
......
...@@ -61,7 +61,7 @@ USE YOMCT0 ,ONLY : LELAM ...@@ -61,7 +61,7 @@ USE YOMCT0 ,ONLY : LELAM
USE MODD_BUDGET, ONLY : TBUCONF_ASSOCIATE, TBUCONF USE MODD_BUDGET, ONLY : TBUCONF_ASSOCIATE, TBUCONF
USE MODI_INI_PHYEX, ONLY: INI_PHYEX USE MODI_INI_PHYEX, ONLY: INI_PHYEX
USE MODD_IO, ONLY : TFILEDATA
! ------------------------------------------------------------------ ! ------------------------------------------------------------------
IMPLICIT NONE IMPLICIT NONE
...@@ -72,7 +72,7 @@ TYPE(MODEL_GENERAL_CONF_TYPE),INTENT(INOUT):: YDML_GCONF ...@@ -72,7 +72,7 @@ TYPE(MODEL_GENERAL_CONF_TYPE),INTENT(INOUT):: YDML_GCONF
TYPE(TDYNA), INTENT(IN) :: YDDYNA TYPE(TDYNA), INTENT(IN) :: YDDYNA
TYPE(MODEL_PHYSICS_MF_TYPE),INTENT(INOUT):: YDML_PHY_MF TYPE(MODEL_PHYSICS_MF_TYPE),INTENT(INOUT):: YDML_PHY_MF
INTEGER(KIND=JPIM),INTENT(IN) :: KULOUT INTEGER(KIND=JPIM),INTENT(IN) :: KULOUT
TYPE(TFILEDATA) :: TPFILE
! ------------------------------------------------------------------ ! ------------------------------------------------------------------
...@@ -115,7 +115,8 @@ IF(LMFSHAL.OR.LEDKF) THEN ...@@ -115,7 +115,8 @@ IF(LMFSHAL.OR.LEDKF) THEN
ELSE ELSE
CSCONV='NONE' CSCONV='NONE'
ENDIF ENDIF
CALL INI_PHYEX(PHYEX%MISC%CPROGRAM, NULNAM, .TRUE., KULOUT, 0, 1, & TPFILE%NLU = NULNAM
CALL INI_PHYEX(PHYEX%MISC%CPROGRAM, TPFILE, .TRUE., KULOUT, 0, 1, &
ZTSTEP, ZDZMIN, & ZTSTEP, ZDZMIN, &
CMICRO, CSCONV, CTURB, & CMICRO, CSCONV, CTURB, &
KPRINT=2, & KPRINT=2, &
......
SUBROUTINE INI_PHYEX(HPROGRAM, KUNITNML, LDNEEDNAM, KLUOUT, KFROM, KTO, & SUBROUTINE INI_PHYEX(HPROGRAM, TPFILE, LDNEEDNAM, KLUOUT, KFROM, KTO, &
&PTSTEP, PDZMIN, & &PTSTEP, PDZMIN, &
&CMICRO, CSCONV, CTURB, & &CMICRO, CSCONV, CTURB, &
&LDCHANGEMODEL, LDDEFAULTVAL, LDREADNAM, LDCHECK, KPRINT, LDINIT, & &LDCHANGEMODEL, LDDEFAULTVAL, LDREADNAM, LDCHECK, KPRINT, LDINIT, &
...@@ -48,6 +48,7 @@ USE MODD_PARAM_LIMA_WARM, ONLY: PARAM_LIMA_WARM ...@@ -48,6 +48,7 @@ USE MODD_PARAM_LIMA_WARM, ONLY: PARAM_LIMA_WARM
USE MODD_PARAM_LIMA_COLD, ONLY: PARAM_LIMA_COLD USE MODD_PARAM_LIMA_COLD, ONLY: PARAM_LIMA_COLD
USE MODD_PARAM_LIMA_MIXED, ONLY: PARAM_LIMA_MIXED USE MODD_PARAM_LIMA_MIXED, ONLY: PARAM_LIMA_MIXED
USE MODD_NSV, ONLY: TNSV, NSV_ASSOCIATE USE MODD_NSV, ONLY: TNSV, NSV_ASSOCIATE
USE MODD_IO, ONLY: TFILEDATA
! !
USE MODE_INI_CST, ONLY: INI_CST USE MODE_INI_CST, ONLY: INI_CST
USE MODE_INI_RAIN_ICE, ONLY: INI_RAIN_ICE USE MODE_INI_RAIN_ICE, ONLY: INI_RAIN_ICE
...@@ -86,7 +87,7 @@ USE MODE_MSG, ONLY: PRINT_MSG, NVERB_FATAL ...@@ -86,7 +87,7 @@ USE MODE_MSG, ONLY: PRINT_MSG, NVERB_FATAL
IMPLICIT NONE IMPLICIT NONE
CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM !< Current program CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM !< Current program
INTEGER, INTENT(IN) :: KUNITNML !< Logical unit to access the namelist TYPE(TFILEDATA), INTENT(IN) :: TPFILE !< Namelist file
LOGICAL, INTENT(IN) :: LDNEEDNAM !< True to abort if namelist is absent LOGICAL, INTENT(IN) :: LDNEEDNAM !< True to abort if namelist is absent
INTEGER, INTENT(IN) :: KLUOUT !< Logical unit for outputs INTEGER, INTENT(IN) :: KLUOUT !< Logical unit for outputs
INTEGER, INTENT(IN) :: KFROM !< Old model number INTEGER, INTENT(IN) :: KFROM !< Old model number
...@@ -163,10 +164,10 @@ IF(CMICRO=='ICE3' .OR. CMICRO=='ICE4' .OR. CMICRO=='LIMA') THEN ...@@ -163,10 +164,10 @@ IF(CMICRO=='ICE3' .OR. CMICRO=='ICE4' .OR. CMICRO=='LIMA') THEN
ENDIF ENDIF
ENDIF ENDIF
CALL PARAM_ICEN_INIT(HPROGRAM, KUNITNML, LDNEEDNAM, KLUOUT, & CALL PARAM_ICEN_INIT(HPROGRAM, TPFILE, LDNEEDNAM, KLUOUT, &
&LDDEFAULTVAL, LDREADNAM, LDCHECK, KPRINT) &LDDEFAULTVAL, LDREADNAM, LDCHECK, KPRINT)
IF(CMICRO=='LIMA') THEN IF(CMICRO=='LIMA') THEN
CALL PARAM_LIMA_INIT(HPROGRAM, KUNITNML, LDNEEDNAM, KLUOUT, & CALL PARAM_LIMA_INIT(HPROGRAM, TPFILE, LDNEEDNAM, KLUOUT, &
&LDDEFAULTVAL, LDREADNAM, LDCHECK, KPRINT) &LDDEFAULTVAL, LDREADNAM, LDCHECK, KPRINT)
ENDIF ENDIF
...@@ -217,7 +218,7 @@ IF(CSCONV=='EDKF') THEN ...@@ -217,7 +218,7 @@ IF(CSCONV=='EDKF') THEN
IF(LLCHANGEMODEL) CALL PARAM_MFSHALL_GOTO_MODEL(KFROM, KTO) IF(LLCHANGEMODEL) CALL PARAM_MFSHALL_GOTO_MODEL(KFROM, KTO)
IF(PRESENT(PHYEX_IN)) PARAM_MFSHALLN=PHYEX_IN%PARAM_MFSHALLN IF(PRESENT(PHYEX_IN)) PARAM_MFSHALLN=PHYEX_IN%PARAM_MFSHALLN
CALL PARAM_MFSHALLN_INIT(HPROGRAM, KUNITNML, LDNEEDNAM, KLUOUT, & CALL PARAM_MFSHALLN_INIT(HPROGRAM, TPFILE, LDNEEDNAM, KLUOUT, &
&LDDEFAULTVAL, LDREADNAM, LDCHECK, KPRINT) &LDDEFAULTVAL, LDREADNAM, LDCHECK, KPRINT)
IF(LLINIT) THEN IF(LLINIT) THEN
CALL INI_MFSHALL() CALL INI_MFSHALL()
...@@ -233,7 +234,7 @@ IF(.TRUE.) THEN !Placeholder for configuration without cloud scheme or a differe ...@@ -233,7 +234,7 @@ IF(.TRUE.) THEN !Placeholder for configuration without cloud scheme or a differe
IF(LLCHANGEMODEL) CALL NEB_GOTO_MODEL(KFROM, KTO) IF(LLCHANGEMODEL) CALL NEB_GOTO_MODEL(KFROM, KTO)
IF(PRESENT(PHYEX_IN)) NEBN=PHYEX_IN%NEBN IF(PRESENT(PHYEX_IN)) NEBN=PHYEX_IN%NEBN
CALL NEBN_INIT(HPROGRAM, KUNITNML, LDNEEDNAM, KLUOUT, & CALL NEBN_INIT(HPROGRAM, TPFILE, LDNEEDNAM, KLUOUT, &
&LDDEFAULTVAL, LDREADNAM, LDCHECK, KPRINT) &LDDEFAULTVAL, LDREADNAM, LDCHECK, KPRINT)
IF(LLINIT) THEN IF(LLINIT) THEN
!Nothing to do, everything is read from namelist !Nothing to do, everything is read from namelist
...@@ -255,7 +256,7 @@ IF(CTURB=='TKEL') THEN ...@@ -255,7 +256,7 @@ IF(CTURB=='TKEL') THEN
CSTURB=PHYEX_IN%CSTURB CSTURB=PHYEX_IN%CSTURB
ENDIF ENDIF
CALL TURBN_INIT(HPROGRAM, KUNITNML, LDNEEDNAM, KLUOUT, & CALL TURBN_INIT(HPROGRAM, TPFILE, LDNEEDNAM, KLUOUT, &
&LDDEFAULTVAL, LDREADNAM, LDCHECK, KPRINT) &LDDEFAULTVAL, LDREADNAM, LDCHECK, KPRINT)
IF(LLINIT) THEN IF(LLINIT) THEN
CALL INI_TURB(HPROGRAM) CALL INI_TURB(HPROGRAM)
......
...@@ -30,5 +30,6 @@ TYPE TFILEDATA ...@@ -30,5 +30,6 @@ TYPE TFILEDATA
INTEGER :: NMODEL = 0 !Model number corresponding to the file (field not always set) INTEGER :: NMODEL = 0 !Model number corresponding to the file (field not always set)
INTEGER,DIMENSION(3) :: NMNHVERSION = (/0,0,0/) !MesoNH version used to create the file INTEGER,DIMENSION(3) :: NMNHVERSION = (/0,0,0/) !MesoNH version used to create the file
! !
INTEGER :: NLU = -1 ! logical unit number
END TYPE TFILEDATA END TYPE TFILEDATA
ENDMODULE MODD_IO ENDMODULE MODD_IO
...@@ -3,33 +3,33 @@ IMPLICIT NONE ...@@ -3,33 +3,33 @@ IMPLICIT NONE
PRIVATE PRIVATE
PUBLIC :: POSNAM_PHY PUBLIC :: POSNAM_PHY
CONTAINS CONTAINS
SUBROUTINE POSNAM_PHY(KULNAM, CDNAML, LDNEEDNAM, LDFOUND, KLUOUT) SUBROUTINE POSNAM_PHY(TFILENAM, CDNAML, LDNEEDNAM, LDFOUND)
!To position namelist file at correct place for reading namelists !To position namelist file at correct place for reading namelists
!Code adapted from different sources (ECMWF, ARPIFS, MESO-NH) !Code adapted from different sources (ECMWF, ARPIFS, MESO-NH)
USE MODE_MSG, ONLY: NVERB_FATAL, NVERB_WARNING, PRINT_MSG USE MODE_MSG, ONLY: NVERB_FATAL, NVERB_WARNING, PRINT_MSG
USE MODD_IO, ONLY: TFILEDATA
IMPLICIT NONE IMPLICIT NONE
INTEGER, INTENT(IN) :: KULNAM !< Logical unit to access the namelist TYPE(TFILEDATA), INTENT(IN) :: TFILENAM !< Namelist file
CHARACTER(LEN=*), INTENT(IN) :: CDNAML !< Namelist name CHARACTER(LEN=*), INTENT(IN) :: CDNAML !< Namelist name
LOGICAL, INTENT(IN) :: LDNEEDNAM !< True to abort if namelist is absent LOGICAL, INTENT(IN) :: LDNEEDNAM !< True to abort if namelist is absent
LOGICAL, INTENT(OUT) :: LDFOUND !< True if namelist has been found LOGICAL, INTENT(OUT) :: LDFOUND !< True if namelist has been found
INTEGER, INTENT(IN) :: KLUOUT !< Logical unit for output
INTEGER :: IVERB, ILEN, ISTATUS, ISCAN, IND INTEGER :: IVERB, ILEN, ISTATUS, ISCAN, IND
CHARACTER(LEN=120) :: CLINE CHARACTER(LEN=120) :: CLINE
CHARACTER(LEN=1) :: CLTEST CHARACTER(LEN=1) :: CLTEST
REWIND(KULNAM) REWIND(TFILENAM%NLU)
ILEN=LEN(CDNAML) ILEN=LEN(CDNAML)
LDFOUND=.TRUE. LDFOUND=.TRUE.
ISTATUS=0 ISTATUS=0
ISCAN=0 ISCAN=0
CLINE=' ' CLINE=' '
DO WHILE(ISTATUS==0 .AND. ISCAN==0) DO WHILE(ISTATUS==0 .AND. ISCAN==0)
READ(KULNAM,'(A)',IOSTAT=ISTATUS) CLINE READ(TFILENAM%NLU,'(A)',IOSTAT=ISTATUS) CLINE
IF(ISTATUS<=-1) THEN IF(ISTATUS<=-1) THEN
!End of file !End of file
LDFOUND=.FALSE. LDFOUND=.FALSE.
...@@ -54,7 +54,7 @@ DO WHILE(ISTATUS==0 .AND. ISCAN==0) ...@@ -54,7 +54,7 @@ DO WHILE(ISTATUS==0 .AND. ISCAN==0)
ENDIF ENDIF
ENDIF ENDIF
ENDDO ENDDO
BACKSPACE(KULNAM) BACKSPACE(TFILENAM%NLU)
END SUBROUTINE POSNAM_PHY END SUBROUTINE POSNAM_PHY
......
MODULE MODI_INI_PHYEX MODULE MODI_INI_PHYEX
IMPLICIT NONE IMPLICIT NONE
INTERFACE INTERFACE
SUBROUTINE INI_PHYEX(HPROGRAM, KUNITNML, LDNEEDNAM, KLUOUT, KFROM, KTO, & SUBROUTINE INI_PHYEX(HPROGRAM, TPFILE, LDNEEDNAM, KLUOUT, KFROM, KTO, &
&PTSTEP, PDZMIN, & &PTSTEP, PDZMIN, &
&CMICRO, CSCONV, CTURB, & &CMICRO, CSCONV, CTURB, &
&LDCHANGEMODEL, LDDEFAULTVAL, LDREADNAM, LDCHECK, KPRINT, LDINIT, & &LDCHANGEMODEL, LDDEFAULTVAL, LDREADNAM, LDCHECK, KPRINT, LDINIT, &
...@@ -17,11 +17,12 @@ USE MODD_PARAM_MFSHALL_N,ONLY: PARAM_MFSHALL_t ...@@ -17,11 +17,12 @@ USE MODD_PARAM_MFSHALL_N,ONLY: PARAM_MFSHALL_t
USE MODD_TURB_N, ONLY: TURB_t USE MODD_TURB_N, ONLY: TURB_t
USE MODD_CTURB, ONLY: CSTURB_t USE MODD_CTURB, ONLY: CSTURB_t
USE MODD_NEB_N, ONLY: NEB_t USE MODD_NEB_N, ONLY: NEB_t
USE MODD_IO, ONLY: TFILEDATA
! !
IMPLICIT NONE IMPLICIT NONE
CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM !< Current program CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM !< Current program
INTEGER, INTENT(IN) :: KUNITNML !< Logical unit to access the namelist TYPE(TFILEDATA), INTENT(IN) :: TPFILE !< Logical unit to access the namelist
LOGICAL, INTENT(IN) :: LDNEEDNAM !< True to abort if namelist is absent LOGICAL, INTENT(IN) :: LDNEEDNAM !< True to abort if namelist is absent
INTEGER, INTENT(IN) :: KLUOUT !< Logical unit for outputs INTEGER, INTENT(IN) :: KLUOUT !< Logical unit for outputs
INTEGER, INTENT(IN) :: KFROM !< Old model number INTEGER, INTENT(IN) :: KFROM !< Old model number
......
...@@ -41,6 +41,7 @@ SUBROUTINE INIT_PHYEX(PTSTEP, PDZMIN, PHYEX) ...@@ -41,6 +41,7 @@ SUBROUTINE INIT_PHYEX(PTSTEP, PDZMIN, PHYEX)
! !
USE MODD_PHYEX, ONLY: PHYEX_t USE MODD_PHYEX, ONLY: PHYEX_t
USE MODI_INI_PHYEX, ONLY: INI_PHYEX USE MODI_INI_PHYEX, ONLY: INI_PHYEX
USE MODD_IO, ONLY: TFILEDATA
USE print_control_mod, ONLY : lunout USE print_control_mod, ONLY : lunout
! !
IMPLICIT NONE IMPLICIT NONE
...@@ -55,7 +56,8 @@ CHARACTER(LEN=4) :: CSCONV ...@@ -55,7 +56,8 @@ CHARACTER(LEN=4) :: CSCONV
CHARACTER(LEN=4) :: CTURB CHARACTER(LEN=4) :: CTURB
INTEGER :: K INTEGER :: K
LOGICAL :: LREADNAM, LOPENED LOGICAL :: LREADNAM, LOPENED
INTEGER :: IUNITNML, ILUN INTEGER :: ILUN
TYPE(TFILEDATA) :: TPFILE
! !
!General configuration, cannot be modified by namelist !General configuration, cannot be modified by namelist
CPROGRAM='LMDZ' CPROGRAM='LMDZ'
...@@ -67,17 +69,17 @@ CTURB='TKEL' ...@@ -67,17 +69,17 @@ CTURB='TKEL'
!If the namelist file exists, we use it !If the namelist file exists, we use it
INQUIRE(FILE='phyex.nam', EXIST=LREADNAM) INQUIRE(FILE='phyex.nam', EXIST=LREADNAM)
IF(LREADNAM) THEN IF(LREADNAM) THEN
IUNITNML=-1 TPFILE%NLU=-1
DO ILUN=1,100 DO ILUN=1,100
INQUIRE(UNIT=ILUN, OPENED=LOPENED) INQUIRE(UNIT=ILUN, OPENED=LOPENED)
IF (.NOT. LOPENED) THEN IF (.NOT. LOPENED) THEN
IUNITNML=ILUN TPFILE%NLU=ILUN
EXIT EXIT
END IF END IF
END DO END DO
OPEN(ACTION='read', FILE='phyex.nam', UNIT=IUNITNML) OPEN(ACTION='read', FILE='phyex.nam', UNIT=TPFILE%NLU)
ENDIF ENDIF
CALL INI_PHYEX(HPROGRAM=CPROGRAM, KUNITNML=IUNITNML, LDNEEDNAM=.FALSE., & CALL INI_PHYEX(HPROGRAM=CPROGRAM, TPFILE=TPFILE, LDNEEDNAM=.FALSE., &
&KLUOUT=lunout, KFROM=0, KTO=1, & &KLUOUT=lunout, KFROM=0, KTO=1, &
&PTSTEP=PTSTEP, PDZMIN=PDZMIN, & &PTSTEP=PTSTEP, PDZMIN=PDZMIN, &
&CMICRO=CMICRO, CSCONV=CSCONV, CTURB=CTURB, & &CMICRO=CMICRO, CSCONV=CSCONV, CTURB=CTURB, &
......
...@@ -5,6 +5,7 @@ USE GETDATA_ICE_ADJUST_MOD ...@@ -5,6 +5,7 @@ USE GETDATA_ICE_ADJUST_MOD
USE COMPUTE_DIFF USE COMPUTE_DIFF
USE MODI_ICE_ADJUST USE MODI_ICE_ADJUST
USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
USE MODD_IO, ONLY: TFILEDATA
USE MODD_PHYEX, ONLY: PHYEX_t USE MODD_PHYEX, ONLY: PHYEX_t
USE STACK_MOD USE STACK_MOD
USE OMP_LIB USE OMP_LIB
...@@ -58,6 +59,7 @@ INTEGER :: IBL, JLON, JLEV ...@@ -58,6 +59,7 @@ INTEGER :: IBL, JLON, JLEV
TYPE(DIMPHYEX_t) :: D, D0 TYPE(DIMPHYEX_t) :: D, D0
TYPE(PHYEX_t) :: PHYEX TYPE(PHYEX_t) :: PHYEX
TYPE(TFILEDATA) :: TPFILE
LOGICAL :: LLCHECK LOGICAL :: LLCHECK
LOGICAL :: LLCHECKDIFF LOGICAL :: LLCHECKDIFF
LOGICAL :: LLDIFF LOGICAL :: LLDIFF
...@@ -316,9 +318,10 @@ CMICRO='ICE3' ...@@ -316,9 +318,10 @@ CMICRO='ICE3'
CSCONV='NONE' CSCONV='NONE'
CTURB='TKEL' CTURB='TKEL'
PTSTEP = 50.000000000000000 PTSTEP = 50.000000000000000
TPFILE%NLU=0
!Default values !Default values
CALL INI_PHYEX(CPROGRAM, 0, .TRUE., IULOUT, 0, 1, & CALL INI_PHYEX(CPROGRAM, TPFILE, .TRUE., IULOUT, 0, 1, &
&PTSTEP, ZDZMIN, & &PTSTEP, ZDZMIN, &
&CMICRO, CSCONV, CTURB, & &CMICRO, CSCONV, CTURB, &
&LDDEFAULTVAL=.TRUE., LDREADNAM=.FALSE., LDCHECK=.FALSE., KPRINT=0, LDINIT=.FALSE., & &LDDEFAULTVAL=.TRUE., LDREADNAM=.FALSE., LDCHECK=.FALSE., KPRINT=0, LDINIT=.FALSE., &
...@@ -363,7 +366,7 @@ PHYEX%NEBN%CFRAC_ICE_ADJUST='S' ! Ice/liquid partition rule to use in adjustment ...@@ -363,7 +366,7 @@ PHYEX%NEBN%CFRAC_ICE_ADJUST='S' ! Ice/liquid partition rule to use in adjustment
PHYEX%NEBN%CFRAC_ICE_SHALLOW_MF='S' ! Ice/liquid partition rule to use in shallow_mf PHYEX%NEBN%CFRAC_ICE_SHALLOW_MF='S' ! Ice/liquid partition rule to use in shallow_mf
!Param initialisation !Param initialisation
CALL INI_PHYEX(CPROGRAM, 0, .TRUE., IULOUT, 0, 1, & CALL INI_PHYEX(CPROGRAM, TPFILE, .TRUE., IULOUT, 0, 1, &
&PTSTEP, ZDZMIN, & &PTSTEP, ZDZMIN, &
&CMICRO, CSCONV, CTURB, & &CMICRO, CSCONV, CTURB, &
&LDDEFAULTVAL=.FALSE., LDREADNAM=.FALSE., LDCHECK=.TRUE., KPRINT=2, LDINIT=.TRUE., & &LDDEFAULTVAL=.FALSE., LDREADNAM=.FALSE., LDCHECK=.TRUE., KPRINT=2, LDINIT=.TRUE., &
......
...@@ -5,6 +5,7 @@ USE GETDATA_RAIN_ICE_MOD ...@@ -5,6 +5,7 @@ USE GETDATA_RAIN_ICE_MOD
USE COMPUTE_DIFF USE COMPUTE_DIFF
USE MODI_RAIN_ICE USE MODI_RAIN_ICE
USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
USE MODD_IO, ONLY: TFILEDATA
USE MODD_PHYEX, ONLY: PHYEX_t USE MODD_PHYEX, ONLY: PHYEX_t
USE STACK_MOD USE STACK_MOD
USE OMP_LIB USE OMP_LIB
...@@ -51,6 +52,7 @@ INTEGER :: IBL, JLON, JLEV ...@@ -51,6 +52,7 @@ INTEGER :: IBL, JLON, JLEV
TYPE(DIMPHYEX_t) :: D, D0 TYPE(DIMPHYEX_t) :: D, D0
TYPE(PHYEX_t) :: PHYEX TYPE(PHYEX_t) :: PHYEX
TYPE(TFILEDATA) :: TPFILE
LOGICAL :: LLCHECK LOGICAL :: LLCHECK
LOGICAL :: LLCHECKDIFF LOGICAL :: LLCHECKDIFF
LOGICAL :: LLDIFF LOGICAL :: LLDIFF
...@@ -318,9 +320,10 @@ CMICRO='ICE3' ...@@ -318,9 +320,10 @@ CMICRO='ICE3'
CSCONV='NONE' CSCONV='NONE'
CTURB='TKEL' CTURB='TKEL'
PTSTEP = 25.0000000000000 PTSTEP = 25.0000000000000
TPFILE%NLU=0
!Default values !Default values
CALL INI_PHYEX(CPROGRAM, 0, .TRUE., IULOUT, 0, 1, & CALL INI_PHYEX(CPROGRAM, TPFILE, .TRUE., IULOUT, 0, 1, &
&PTSTEP, ZDZMIN, & &PTSTEP, ZDZMIN, &
&CMICRO, CSCONV, CTURB, & &CMICRO, CSCONV, CTURB, &
&LDDEFAULTVAL=.TRUE., LDREADNAM=.FALSE., LDCHECK=.FALSE., KPRINT=0, LDINIT=.FALSE., & &LDDEFAULTVAL=.TRUE., LDREADNAM=.FALSE., LDCHECK=.FALSE., KPRINT=0, LDINIT=.FALSE., &
...@@ -358,7 +361,7 @@ PHYEX%PARAM_ICEN%CSUBG_RR_EVAP='NONE' ...@@ -358,7 +361,7 @@ PHYEX%PARAM_ICEN%CSUBG_RR_EVAP='NONE'
PHYEX%PARAM_ICEN%CSUBG_PR_PDF='SIGM' PHYEX%PARAM_ICEN%CSUBG_PR_PDF='SIGM'
!Param initialisation !Param initialisation
CALL INI_PHYEX(CPROGRAM, 0, .TRUE., IULOUT, 0, 1, & CALL INI_PHYEX(CPROGRAM, TPFILE, .TRUE., IULOUT, 0, 1, &
&PTSTEP, ZDZMIN, & &PTSTEP, ZDZMIN, &
&CMICRO, CSCONV, CTURB, & &CMICRO, CSCONV, CTURB, &
&LDDEFAULTVAL=.FALSE., LDREADNAM=.FALSE., LDCHECK=.TRUE., KPRINT=2, LDINIT=.TRUE., & &LDDEFAULTVAL=.FALSE., LDREADNAM=.FALSE., LDCHECK=.TRUE., KPRINT=2, LDINIT=.TRUE., &
......
...@@ -363,7 +363,7 @@ subroutine init_rain_ice_old(kulout) ...@@ -363,7 +363,7 @@ subroutine init_rain_ice_old(kulout)
use modd_rain_ice_descr_n, only: rain_ice_descr_goto_model use modd_rain_ice_descr_n, only: rain_ice_descr_goto_model
use modd_cloudpar_n, only: cloudpar_goto_model use modd_cloudpar_n, only: cloudpar_goto_model
use modd_param_ice_n use modd_param_ice_n
use modd_io, only: tfiledata
use mode_ini_rain_ice use mode_ini_rain_ice
use mode_ini_cst use mode_ini_cst
...@@ -379,6 +379,7 @@ subroutine init_rain_ice_old(kulout) ...@@ -379,6 +379,7 @@ subroutine init_rain_ice_old(kulout)
character(len=4) :: c_micro character(len=4) :: c_micro
integer :: isplitr integer :: isplitr
type(tfiledata) :: tpfile
call ini_cst call ini_cst
...@@ -388,8 +389,8 @@ subroutine init_rain_ice_old(kulout) ...@@ -388,8 +389,8 @@ subroutine init_rain_ice_old(kulout)
call param_ice_goto_model(1, 1) call param_ice_goto_model(1, 1)
call rain_ice_descr_goto_model(1, 1) call rain_ice_descr_goto_model(1, 1)
call rain_ice_param_goto_model(1, 1) call rain_ice_param_goto_model(1, 1)
tpfile%nlu = 0
call param_icen_init('AROME ', 0, .false., kulout, & call param_icen_init('AROME ', tpfile, .false., kulout, &
&.true., .false., .false., 0) &.true., .false., .false., 0)
call tbuconf_associate call tbuconf_associate
......
...@@ -5,6 +5,7 @@ USE GETDATA_SHALLOW_MOD ...@@ -5,6 +5,7 @@ USE GETDATA_SHALLOW_MOD
USE COMPUTE_DIFF USE COMPUTE_DIFF
USE MODI_SHALLOW_MF USE MODI_SHALLOW_MF
USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
USE MODD_IO, ONLY: TFILEDATA
USE MODD_PHYEX, ONLY: PHYEX_t USE MODD_PHYEX, ONLY: PHYEX_t
USE STACK_MOD USE STACK_MOD
USE OMP_LIB USE OMP_LIB
...@@ -104,6 +105,7 @@ INTEGER :: IBL, JLON, JLEV ...@@ -104,6 +105,7 @@ INTEGER :: IBL, JLON, JLEV
TYPE(DIMPHYEX_t) :: D, D0 TYPE(DIMPHYEX_t) :: D, D0
TYPE(PHYEX_t) :: PHYEX TYPE(PHYEX_t) :: PHYEX
TYPE(TFILEDATA) :: TPFILE
LOGICAL :: LLCHECK LOGICAL :: LLCHECK
LOGICAL :: LLCHECKDIFF LOGICAL :: LLCHECKDIFF
LOGICAL :: LLDIFF LOGICAL :: LLDIFF
...@@ -407,9 +409,10 @@ CMICRO='NONE' ...@@ -407,9 +409,10 @@ CMICRO='NONE'
CSCONV='EDKF' CSCONV='EDKF'
CTURB='TKEL' CTURB='TKEL'
PTSTEP = 25.0000000000000 PTSTEP = 25.0000000000000
TPFILE%NLU=0
!Default values !Default values
CALL INI_PHYEX(CPROGRAM, 0, .TRUE., IULOUT, 0, 1, & CALL INI_PHYEX(CPROGRAM, TPFILE, .TRUE., IULOUT, 0, 1, &
&PTSTEP, ZDZMIN, & &PTSTEP, ZDZMIN, &
&CMICRO, CSCONV, CTURB, & &CMICRO, CSCONV, CTURB, &
&LDDEFAULTVAL=.TRUE., LDREADNAM=.FALSE., LDCHECK=.FALSE., KPRINT=0, LDINIT=.FALSE., & &LDDEFAULTVAL=.TRUE., LDREADNAM=.FALSE., LDCHECK=.FALSE., KPRINT=0, LDINIT=.FALSE., &
...@@ -430,7 +433,7 @@ PHYEX%NEBN%LSUBG_COND=.TRUE. ...@@ -430,7 +433,7 @@ PHYEX%NEBN%LSUBG_COND=.TRUE.
PHYEX%NEBN%CFRAC_ICE_SHALLOW_MF='S' PHYEX%NEBN%CFRAC_ICE_SHALLOW_MF='S'
!Param initialisation !Param initialisation
CALL INI_PHYEX(CPROGRAM, 0, .TRUE., IULOUT, 0, 1, & CALL INI_PHYEX(CPROGRAM, TPFILE, .TRUE., IULOUT, 0, 1, &
&PTSTEP, ZDZMIN, & &PTSTEP, ZDZMIN, &
&CMICRO, CSCONV, CTURB, & &CMICRO, CSCONV, CTURB, &
&LDDEFAULTVAL=.FALSE., LDREADNAM=.FALSE., LDCHECK=.TRUE., KPRINT=2, LDINIT=.TRUE., & &LDDEFAULTVAL=.FALSE., LDREADNAM=.FALSE., LDCHECK=.TRUE., KPRINT=2, LDINIT=.TRUE., &
......
...@@ -5,6 +5,7 @@ USE GETDATA_TURB_MOD ...@@ -5,6 +5,7 @@ USE GETDATA_TURB_MOD
USE COMPUTE_DIFF USE COMPUTE_DIFF
USE MODI_TURB USE MODI_TURB
USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t USE MODD_DIMPHYEX, ONLY: DIMPHYEX_t
USE MODD_IO, ONLY: TFILEDATA
USE MODD_PHYEX, ONLY: PHYEX_t USE MODD_PHYEX, ONLY: PHYEX_t
USE STACK_MOD USE STACK_MOD
USE OMP_LIB USE OMP_LIB
...@@ -113,6 +114,7 @@ INTEGER :: NPROMA, NGPBLKS, NFLEVG ...@@ -113,6 +114,7 @@ INTEGER :: NPROMA, NGPBLKS, NFLEVG
INTEGER :: IBL, JLON, JLEV INTEGER :: IBL, JLON, JLEV
TYPE(DIMPHYEX_t) :: D, D0 TYPE(DIMPHYEX_t) :: D, D0
TYPE(TFILEDATA) :: TPFILE
TYPE(PHYEX_t) :: PHYEX TYPE(PHYEX_t) :: PHYEX
LOGICAL :: LLCHECK LOGICAL :: LLCHECK
LOGICAL :: LLCHECKDIFF LOGICAL :: LLCHECKDIFF
...@@ -425,9 +427,10 @@ CMICRO='ICE3' ...@@ -425,9 +427,10 @@ CMICRO='ICE3'
CSCONV='NONE' CSCONV='NONE'
CTURB='TKEL' CTURB='TKEL'
PTSTEP = 25.0000000000000 PTSTEP = 25.0000000000000
TPFILE%NLU=0
!Default values !Default values
CALL INI_PHYEX(CPROGRAM, 0, .TRUE., IULOUT, 0, 1, & CALL INI_PHYEX(CPROGRAM, TPFILE, .TRUE., IULOUT, 0, 1, &
&PTSTEP, ZDZMIN, & &PTSTEP, ZDZMIN, &
&CMICRO, CSCONV, CTURB, & &CMICRO, CSCONV, CTURB, &
&LDDEFAULTVAL=.TRUE., LDREADNAM=.FALSE., LDCHECK=.FALSE., KPRINT=0, LDINIT=.FALSE., & &LDDEFAULTVAL=.TRUE., LDREADNAM=.FALSE., LDCHECK=.FALSE., KPRINT=0, LDINIT=.FALSE., &
...@@ -471,7 +474,7 @@ PHYEX%TURBN%XLINI=0.1 !This line should not exist to reproduce operational setup ...@@ -471,7 +474,7 @@ PHYEX%TURBN%XLINI=0.1 !This line should not exist to reproduce operational setup
!was done (erroneously) with XLINI=0.1 !was done (erroneously) with XLINI=0.1
!Param initialisation !Param initialisation
CALL INI_PHYEX(CPROGRAM, 0, .TRUE., IULOUT, 0, 1, & CALL INI_PHYEX(CPROGRAM, TPFILE, .TRUE., IULOUT, 0, 1, &
&PTSTEP, ZDZMIN, & &PTSTEP, ZDZMIN, &
&CMICRO, CSCONV, CTURB, & &CMICRO, CSCONV, CTURB, &
&LDDEFAULTVAL=.FALSE., LDREADNAM=.FALSE., LDCHECK=.TRUE., KPRINT=2, LDINIT=.TRUE., & &LDDEFAULTVAL=.FALSE., LDREADNAM=.FALSE., LDCHECK=.TRUE., KPRINT=2, LDINIT=.TRUE., &
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment