diff --git a/src/MNH/adv_forcingn.f90 b/src/MNH/adv_forcingn.f90 index 404c55ac3fc0a01bca8c62aed96a8cfef80fc330..7693be14b2b1c3a0945966babaf2c491dc7ec287 100644 --- a/src/MNH/adv_forcingn.f90 +++ b/src/MNH/adv_forcingn.f90 @@ -71,7 +71,7 @@ END MODULE MODI_ADV_FORCING_n !! TDTADVFRC: date of each advecting-forcing profile !! XUFRC,XVFRC,XWFRC,XTHFRC,XRVFRC: advecting-forcing variables !! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! TLUOUT0 : output-listing !! Module MODD_PARAMETERS: declaration of parameter variables !! JPVEXT: define the number of marginal points out of the !! physical domain along the vertical direction. @@ -101,7 +101,7 @@ USE MODE_FM USE MODE_IO_ll ! USE MODD_DYN -USE MODD_LUNIT +USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS USE MODD_TIME USE MODD_BUDGET @@ -149,12 +149,11 @@ LOGICAL,DIMENSION(SIZE(PTHM,1),SIZE(PTHM,2),SIZE(PTHM,3)) :: GRELAX_MASK_FRC ! M !* 1. PREPARATION OF FORCING ! ---------------------- ! - +ILUOUT0 = TLUOUT0%NLU +! IF (GSFIRSTCALL) THEN ! GSFIRSTCALL = .FALSE. -! - CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) !!* 1.1 printout number of forcing profiles ! WRITE(UNIT=ILUOUT0,FMT='(" THERE ARE ",I2," ADV FORCING FIELDs AT:")') NADVFRC @@ -201,7 +200,6 @@ ELSE IF( .NOT. TEMPORAL_LT ( TPDTCUR, TDTADVFRC(JXP) ) ) THEN JSX_ADV = JSX_ADV +1 JXP= JSX_ADV +1 - CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) WRITE(UNIT=ILUOUT0,FMT='(" THE ADV FORCING FIELDS ARE INTERPOLATED NOW" ,& & " BETWEEN SOUNDING NUMBER ",I2," AND SOUNDING NUMBER ",I2)') JSX_ADV,JXP CALL TEMPORAL_DIST ( TDTADVFRC(JXP)%TDATE%YEAR,TDTADVFRC(JXP)%TDATE%MONTH, & diff --git a/src/MNH/advection_metsv.f90 b/src/MNH/advection_metsv.f90 index 6d1e3cebb7f5849b47060acc176263694a7e23bb..c04932c4c300d3ea82573ef0b1ae5cd97223e158 100644 --- a/src/MNH/advection_metsv.f90 +++ b/src/MNH/advection_metsv.f90 @@ -8,7 +8,7 @@ ! ########################### ! INTERFACE - SUBROUTINE ADVECTION_METSV (HLUOUT, TPFILE, OCLOSE_OUT,HUVW_ADV_SCHEME, & + SUBROUTINE ADVECTION_METSV (TPFILE, OCLOSE_OUT,HUVW_ADV_SCHEME, & HMET_ADV_SCHEME,HSV_ADV_SCHEME, HCLOUD, KSPLIT, & OSPLIT_CFL, PSPLIT_CFL, OCFL_WRIT, & HLBCX, HLBCY, KRR, KSV, TPDTCUR, PTSTEP, & @@ -23,8 +23,6 @@ USE MODD_TYPE_DATE, ONLY: DATE_TIME LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous ! file opening TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for - ! model n CHARACTER(LEN=6), INTENT(IN) :: HMET_ADV_SCHEME, & ! Control of the HSV_ADV_SCHEME, & ! scheme applied HUVW_ADV_SCHEME @@ -66,7 +64,7 @@ END INTERFACE ! END MODULE MODI_ADVECTION_METSV ! ########################################################################## - SUBROUTINE ADVECTION_METSV (HLUOUT, TPFILE, OCLOSE_OUT,HUVW_ADV_SCHEME, & + SUBROUTINE ADVECTION_METSV (TPFILE, OCLOSE_OUT,HUVW_ADV_SCHEME, & HMET_ADV_SCHEME,HSV_ADV_SCHEME, HCLOUD, KSPLIT, & OSPLIT_CFL, PSPLIT_CFL, OCFL_WRIT, & HLBCX, HLBCY, KRR, KSV, TPDTCUR, PTSTEP, & @@ -140,28 +138,28 @@ END MODULE MODI_ADVECTION_METSV !* 0. DECLARATIONS ! ------------ ! -USE MODD_PARAM_n -USE MODD_CONF, ONLY : LNEUTRAL,NHALO,L1D, L2D -USE MODD_CTURB, ONLY : XTKEMIN -USE MODD_CST USE MODD_BUDGET +USE MODD_CST +USE MODD_CTURB, ONLY: XTKEMIN +USE MODD_CONF, ONLY: LNEUTRAL,NHALO,L1D, L2D USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_PARAM_n USE MODD_TYPE_DATE, ONLY: DATE_TIME ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL -USE MODE_FM +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL USE MODE_FMWRIT USE MODE_IO_ll USE MODE_ll USE MODE_MSG ! +USE MODI_ADV_BOUNDARIES +USE MODI_BUDGET USE MODI_CONTRAV +USE MODI_GET_HALO USE MODI_PPM_RHODJ USE MODI_PPM_MET USE MODI_PPM_SCALAR -USE MODI_ADV_BOUNDARIES -USE MODI_BUDGET -USE MODI_GET_HALO ! !------------------------------------------------------------------------------- ! @@ -172,8 +170,6 @@ IMPLICIT NONE LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for synchronous ! file opening TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for - ! model n CHARACTER(LEN=6), INTENT(IN) :: HMET_ADV_SCHEME, & ! Control of the HSV_ADV_SCHEME, & ! scheme applied HUVW_ADV_SCHEME @@ -268,6 +264,8 @@ TYPE(TFIELDDATA) :: TZFIELD !* 0. INITIALIZATION ! -------------- ! +ILUOUT = TLUOUT%NLU +! CALL GET_INDICE_ll(IIB,IJB,IIE,IJE) ! GTKE=(SIZE(PTKET)/=0) @@ -355,8 +353,6 @@ END IF ! !* prints in the output file the maximum CFL ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) -! ZCFLU_MAX = MAX_ll(ZCFLU,IINFO_ll) ZCFLV_MAX = MAX_ll(ZCFLV,IINFO_ll) ZCFLW_MAX = MAX_ll(ZCFLW,IINFO_ll) diff --git a/src/MNH/aircraft_balloon.f90 b/src/MNH/aircraft_balloon.f90 index 56763877d0106cad356b3a7331a128cec080bc11..162d447adb2bf90bb9cac71b35d8ff35a998a143 100644 --- a/src/MNH/aircraft_balloon.f90 +++ b/src/MNH/aircraft_balloon.f90 @@ -14,7 +14,7 @@ MODULE MODI_AIRCRAFT_BALLOON ! INTERFACE ! - SUBROUTINE AIRCRAFT_BALLOON(HLUOUT, PTSTEP, & + SUBROUTINE AIRCRAFT_BALLOON(PTSTEP, & TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, & PMAP, PLONOR, PLATOR, & @@ -22,7 +22,6 @@ INTERFACE PTS, PRHODREF, PCIT, PSEA) ! USE MODD_TYPE_DATE -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! output listing REAL, INTENT(IN) :: PTSTEP ! time step TYPE(DATE_TIME), INTENT(IN) :: TPDTEXP! experiment date and time TYPE(DATE_TIME), INTENT(IN) :: TPDTMOD! model start date and time @@ -58,7 +57,7 @@ END INTERFACE END MODULE MODI_AIRCRAFT_BALLOON ! ! ################################################################### - SUBROUTINE AIRCRAFT_BALLOON(HLUOUT, PTSTEP, & + SUBROUTINE AIRCRAFT_BALLOON(PTSTEP, & TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, & PMAP, PLONOR, PLATOR, & @@ -115,7 +114,6 @@ IMPLICIT NONE !* 0.1 declarations of arguments ! ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! output listing REAL, INTENT(IN) :: PTSTEP ! time step TYPE(DATE_TIME), INTENT(IN) :: TPDTEXP! experiment date and time TYPE(DATE_TIME), INTENT(IN) :: TPDTMOD! model start date and time @@ -154,236 +152,236 @@ IF(.NOT. ALLOCATED(XSVW_FLUX)) & ALLOCATE(XSVW_FLUX(SIZE(PSV,1),SIZE(PSV,2),SIZE(PSV,3),SIZE(PSV,4))) ! IF (TBALLOON1%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TBALLOON1, PSEA ) ENDIF IF (TBALLOON2%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TBALLOON2, PSEA ) ENDIF IF (TBALLOON3%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TBALLOON3, PSEA ) ENDIF IF (TBALLOON4%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TBALLOON4, PSEA ) ENDIF IF (TBALLOON5%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TBALLOON5, PSEA ) ENDIF IF (TBALLOON6%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TBALLOON6, PSEA ) ENDIF IF (TBALLOON7%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TBALLOON7, PSEA ) ENDIF IF (TBALLOON8%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TBALLOON8, PSEA ) ENDIF IF (TBALLOON9%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TBALLOON9, PSEA ) ENDIF ! IF (TAIRCRAFT1%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT1, PSEA ) ENDIF IF (TAIRCRAFT2%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT2, PSEA ) ENDIF IF (TAIRCRAFT3%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT3, PSEA ) ENDIF IF (TAIRCRAFT4%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT4, PSEA ) ENDIF IF (TAIRCRAFT5%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT5, PSEA ) ENDIF IF (TAIRCRAFT6%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT6, PSEA ) ENDIF IF (TAIRCRAFT7%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT7, PSEA ) ENDIF IF (TAIRCRAFT8%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT8, PSEA ) ENDIF IF (TAIRCRAFT9%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT9, PSEA ) ENDIF IF (TAIRCRAFT10%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT10, PSEA ) ENDIF IF (TAIRCRAFT11%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT11, PSEA ) ENDIF IF (TAIRCRAFT12%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT12, PSEA ) ENDIF IF (TAIRCRAFT13%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT13, PSEA ) ENDIF IF (TAIRCRAFT14%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT14, PSEA ) ENDIF IF (TAIRCRAFT15%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT15, PSEA ) ENDIF IF (TAIRCRAFT16%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT16, PSEA ) ENDIF IF (TAIRCRAFT17%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT17, PSEA ) ENDIF IF (TAIRCRAFT18%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT18, PSEA ) ENDIF IF (TAIRCRAFT19%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT19, PSEA ) ENDIF IF (TAIRCRAFT20%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT20, PSEA ) ENDIF IF (TAIRCRAFT21%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT21, PSEA ) ENDIF IF (TAIRCRAFT22%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT22, PSEA ) ENDIF IF (TAIRCRAFT23%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT23, PSEA ) ENDIF IF (TAIRCRAFT24%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT24, PSEA ) ENDIF IF (TAIRCRAFT25%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT25, PSEA ) ENDIF IF (TAIRCRAFT26%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT26, PSEA ) ENDIF IF (TAIRCRAFT27%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT27, PSEA ) ENDIF IF (TAIRCRAFT28%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT28, PSEA ) ENDIF IF (TAIRCRAFT29%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT29, PSEA ) ENDIF IF (TAIRCRAFT30%NMODEL /= 0) THEN -CALL AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & +CALL AIRCRAFT_BALLOON_EVOL(PTSTEP, TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, PMAP, PLONOR, PLATOR, & PU, PV, PW, PP, PTH, PR, PSV, PTKE, PTS, PRHODREF, PCIT, & TAIRCRAFT30, PSEA ) diff --git a/src/MNH/aircraft_balloon_evol.f90 b/src/MNH/aircraft_balloon_evol.f90 index d2b5c32b9789a39fdfa8563c5939b3043477b696..3589097600637337b40af1dda9bee4268b0958c5 100644 --- a/src/MNH/aircraft_balloon_evol.f90 +++ b/src/MNH/aircraft_balloon_evol.f90 @@ -14,7 +14,7 @@ MODULE MODI_AIRCRAFT_BALLOON_EVOL ! INTERFACE ! - SUBROUTINE AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, & + SUBROUTINE AIRCRAFT_BALLOON_EVOL(PTSTEP, & TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, & PMAP, PLONOR, PLATOR, & @@ -24,7 +24,6 @@ INTERFACE USE MODD_TYPE_DATE USE MODD_AIRCRAFT_BALLOON ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! output listing REAL, INTENT(IN) :: PTSTEP ! time step TYPE(DATE_TIME), INTENT(IN) :: TPDTEXP! experiment date and time TYPE(DATE_TIME), INTENT(IN) :: TPDTMOD! model start date and time @@ -60,7 +59,7 @@ END INTERFACE END MODULE MODI_AIRCRAFT_BALLOON_EVOL ! ! ######################################################## - SUBROUTINE AIRCRAFT_BALLOON_EVOL(HLUOUT, PTSTEP, & + SUBROUTINE AIRCRAFT_BALLOON_EVOL(PTSTEP, & TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, & PMAP, PLONOR, PLATOR, & @@ -138,58 +137,53 @@ END MODULE MODI_AIRCRAFT_BALLOON_EVOL !* 0. DECLARATIONS ! ------------ ! -USE MODD_TYPE_DATE -! -USE MODD_PARAMETERS -USE MODD_CST USE MODD_AIRCRAFT_BALLOON -USE MODD_GRID -USE MODD_TIME USE MODD_CONF +USE MODD_CST USE MODD_DIAG_IN_RUN +USE MODD_GRID +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_NESTING +USE MODD_NSV, ONLY : NSV_LIMA_NI,NSV_LIMA_NR,NSV_LIMA_NC +USE MODD_PARAMETERS +USE MODD_PARAM_LIMA, ONLY: XALPHAR_L=>XALPHAR,XNUR_L=>XNUR,XALPHAS_L=>XALPHAS,XNUS_L=>XNUS,& + XALPHAG_L=>XALPHAG,XNUG_L=>XNUG, XALPHAI_L=>XALPHAI,XNUI_L=>XNUI,& + XRTMIN_L=>XRTMIN,XALPHAC_L=>XALPHAC,XNUC_L=>XNUC +USE MODD_PARAM_LIMA_COLD, ONLY: XDI_L=>XDI,XLBEXI_L=>XLBEXI,XLBI_L=>XLBI,XAI_L=>XAI,XBI_L=>XBI,XC_I_L=>XC_I,& + XLBEXS_L=>XLBEXS,XLBS_L=>XLBS,XCCS_L=>XCCS,& + XAS_L=>XAS,XBS_L=>XBS,XCXS_L=>XCXS +USE MODD_PARAM_LIMA_MIXED, ONLY: XDG_L=>XDG,XLBEXG_L=>XLBEXG,XLBG_L=>XLBG,XCCG_L=>XCCG,& + XAG_L=>XAG,XBG_L=>XBG,XCXG_L=>XCXG,XCG_L=>XCG +USE MODD_PARAM_LIMA_WARM, ONLY: XLBEXR_L=>XLBEXR,XLBR_L=>XLBR,XBR_L=>XBR,XAR_L=>XAR,& + XBC_L=>XBC,XAC_L=>XAC +USE MODD_PARAM_n, ONLY: CCLOUD +USE MODD_RAIN_ICE_DESCR, ONLY: XALPHAR_I=>XALPHAR,XNUR_I=>XNUR,XLBEXR_I=>XLBEXR,& + XLBR_I=>XLBR,XCCR_I=>XCCR,XBR_I=>XBR,XAR_I=>XAR,& + XALPHAC_I=>XALPHAC,XNUC_I=>XNUC,& + XLBC_I=>XLBC,XBC_I=>XBC,XAC_I=>XAC,& + XALPHAC2_I=>XALPHAC2,XNUC2_I=>XNUC2,& + XALPHAS_I=>XALPHAS,XNUS_I=>XNUS,XLBEXS_I=>XLBEXS,& + XLBS_I=>XLBS,XCCS_I=>XCCS,XAS_I=>XAS,XBS_I=>XBS,XCXS_I=>XCXS,& + XALPHAG_I=>XALPHAG,XNUG_I=>XNUG,XDG_I=>XDG,XLBEXG_I=>XLBEXG,& + XLBG_I=>XLBG,XCCG_I=>XCCG,XAG_I=>XAG,XBG_I=>XBG,XCXG_I=>XCXG,XCG_I=>XCG,& + XALPHAI_I=>XALPHAI,XNUI_I=>XNUI,XDI_I=>XDI,XLBEXI_I=>XLBEXI,& + XLBI_I=>XLBI,XAI_I=>XAI,XBI_I=>XBI,XC_I_I=>XC_I,& + XRTMIN_I=>XRTMIN,XCONC_LAND,XCONC_SEA +USE MODD_REF_n, ONLY: XRHODREF +USE MODD_TIME USE MODD_TURB_FLUX_AIRCRAFT_BALLOON -USE MODD_PARAM_n, ONLY : CCLOUD -! -USE MODD_RAIN_ICE_DESCR, ONLY: XALPHAR_I=>XALPHAR,XNUR_I=>XNUR,XLBEXR_I=>XLBEXR,& - XLBR_I=>XLBR,XCCR_I=>XCCR,XBR_I=>XBR,XAR_I=>XAR,& - XALPHAC_I=>XALPHAC,XNUC_I=>XNUC,& - XLBC_I=>XLBC,XBC_I=>XBC,XAC_I=>XAC,& - XALPHAC2_I=>XALPHAC2,XNUC2_I=>XNUC2,& - XALPHAS_I=>XALPHAS,XNUS_I=>XNUS,XLBEXS_I=>XLBEXS,& - XLBS_I=>XLBS,XCCS_I=>XCCS,XAS_I=>XAS,XBS_I=>XBS,XCXS_I=>XCXS,& - XALPHAG_I=>XALPHAG,XNUG_I=>XNUG,XDG_I=>XDG,XLBEXG_I=>XLBEXG,& - XLBG_I=>XLBG,XCCG_I=>XCCG,XAG_I=>XAG,XBG_I=>XBG,XCXG_I=>XCXG,XCG_I=>XCG,& - XALPHAI_I=>XALPHAI,XNUI_I=>XNUI,XDI_I=>XDI,XLBEXI_I=>XLBEXI,& - XLBI_I=>XLBI,XAI_I=>XAI,XBI_I=>XBI,XC_I_I=>XC_I,& - XRTMIN_I=>XRTMIN,XCONC_LAND,XCONC_SEA -USE MODE_FSCATTER,ONLY : QEPSW,QEPSI,BHMIE,MOMG,MG -USE MODE_FGAU, ONLY : GAULAG -USE MODD_REF_n, ONLY : XRHODREF -USE MODI_GAMMA, ONLY : GAMMA -USE MODD_PARAM_LIMA_WARM, ONLY: XLBEXR_L=>XLBEXR,XLBR_L=>XLBR,XBR_L=>XBR,XAR_L=>XAR,& - XBC_L=>XBC,XAC_L=>XAC -USE MODD_PARAM_LIMA_COLD, ONLY: XDI_L=>XDI,XLBEXI_L=>XLBEXI,XLBI_L=>XLBI,XAI_L=>XAI,XBI_L=>XBI,XC_I_L=>XC_I,& - XLBEXS_L=>XLBEXS,XLBS_L=>XLBS,XCCS_L=>XCCS,& - XAS_L=>XAS,XBS_L=>XBS,XCXS_L=>XCXS - -USE MODD_PARAM_LIMA_MIXED, ONLY:XDG_L=>XDG,XLBEXG_L=>XLBEXG,XLBG_L=>XLBG,XCCG_L=>XCCG,& - XAG_L=>XAG,XBG_L=>XBG,XCXG_L=>XCXG,XCG_L=>XCG -USE MODD_PARAM_LIMA, ONLY: XALPHAR_L=>XALPHAR,XNUR_L=>XNUR,XALPHAS_L=>XALPHAS,XNUS_L=>XNUS,& - XALPHAG_L=>XALPHAG,XNUG_L=>XNUG, XALPHAI_L=>XALPHAI,XNUI_L=>XNUI,& - XRTMIN_L=>XRTMIN,XALPHAC_L=>XALPHAC,XNUC_L=>XNUC +USE MODD_TYPE_DATE ! -USE MODE_FM, ONLY : FMLOOK_ll -USE MODE_IO_ll +USE MODE_FGAU, ONLY: GAULAG +USE MODE_FSCATTER, ONLY: QEPSW,QEPSI,BHMIE,MOMG,MG USE MODE_GRIDPROJ +USE MODE_IO_ll USE MODE_ll USE MODE_MSG ! -USE MODI_WATER_SUM +USE MODI_GAMMA, ONLY: GAMMA USE MODI_TEMPORAL_DIST -! -USE MODD_NESTING -! -USE MODD_NSV, ONLY : NSV_LIMA_NI,NSV_LIMA_NR,NSV_LIMA_NC +USE MODI_WATER_SUM ! IMPLICIT NONE ! @@ -197,7 +191,6 @@ IMPLICIT NONE !* 0.1 declarations of arguments ! ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! output listing REAL, INTENT(IN) :: PTSTEP ! time step TYPE(DATE_TIME), INTENT(IN) :: TPDTEXP! experiment date and time TYPE(DATE_TIME), INTENT(IN) :: TPDTMOD! model start date and time @@ -353,7 +346,7 @@ IF(.NOT. ALLOCATED(XRCW_FLUX)) & ALLOCATE(XRCW_FLUX(SIZE(PTH,1),SIZE(PTH,2),SIZE(PTH,3))) IF(.NOT. ALLOCATED(XSVW_FLUX)) & ALLOCATE(XSVW_FLUX(SIZE(PSV,1),SIZE(PSV,2),SIZE(PSV,3),SIZE(PSV,4))) -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! ZR = 0. ! diff --git a/src/MNH/anel_balancen.f90 b/src/MNH/anel_balancen.f90 index f986c94a339617d4fb5fa5b8c71ecc138aa918ac..634fb6a63e5678b9b2822f67cd977745da12c081 100644 --- a/src/MNH/anel_balancen.f90 +++ b/src/MNH/anel_balancen.f90 @@ -49,7 +49,6 @@ END MODULE MODI_ANEL_BALANCE_n !! !! EXTERNAL !! -------- -!! FMLOOK : to retrieve a logical unit number associated with a file !! TRID : to compute coefficients for the flat operator !! PRESSURE : to solve the pressure equation and add the pressure term to !! wind @@ -117,7 +116,6 @@ END MODULE MODI_ANEL_BALANCE_n ! USE MODE_ll USE MODE_IO_ll -USE MODE_FM USE MODE_MODELN_HANDLER ! USE MODD_CONF ! declarative modules @@ -130,7 +128,6 @@ USE MODD_REF_n USE MODD_FIELD_n USE MODD_DYN_n USE MODD_LBC_n -USE MODD_LUNIT_n ! USE MODI_TRIDZ ! interface modules USE MODI_PRESSUREZ @@ -149,8 +146,7 @@ REAL, OPTIONAL :: PRESIDUAL ! !* 0.2 Declarations of local variables : ! -INTEGER :: ILUOUT,IRESP ! Logical unit number for output listing and - ! return code +INTEGER :: IRESP ! return code INTEGER :: IIY,IJY ! same variable for Y decomposition INTEGER :: ITCOUNT ! counter value of temporal loop set to 1 ( this ! means that no guess of the pressure is available for @@ -198,8 +194,6 @@ TYPE(LIST_ll), POINTER :: TZFIELDS_ll=>NULL() ! list of fields to exchange !* 1. PROLOGUE : ! -------- ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT,IRESP) - CALL GET_DIM_EXT_ll('Y',IIY,IJY) IF (L2D) THEN ALLOCATE(ZBFY(IIY,IJY,SIZE(XRHODJ,3))) @@ -224,7 +218,7 @@ CALL MPPDB_CHECK3D(XUT,"anel_balancen1-::XUT",PRECISION) ! ------------------------------- ! ! -CALL TRIDZ(CLUOUT0,CLBCX,CLBCY,XMAP,XDXHAT,XDYHAT,ZDXHATM,ZDYHATM,ZRHOM, & +CALL TRIDZ(CLBCX,CLBCY,XMAP,XDXHAT,XDYHAT,ZDXHATM,ZDYHATM,ZRHOM, & ZAF,ZCF,ZTRIGSX,ZTRIGSY,IIFAXX,IIFAXY,XRHODJ,XTHVREF,XZZ,ZBFY,& ZBFB,ZBF_SXP2_YP1_Z) CALL MPPDB_CHECK3D(XRHODJ,"anel_balancen1-after TRIDZ::XRHODJ",PRECISION) @@ -284,14 +278,13 @@ GCLOSE_OUT=.FALSE. YFMFILE='UNUSED' ! IMI = GET_CURRENT_MODEL_INDEX() -CALL PRESSUREZ(CLUOUT, & - CLBCX,CLBCY,CPRESOPT,NITR,LITRADJ,ITCOUNT,XRELAX,IMI, & - XRHODJ,XDXX,XDYY,XDZZ,XDZX,XDZY,ZDXHATM,ZDYHATM,ZRHOM, & - ZAF,ZBFY,ZCF,ZTRIGSX,ZTRIGSY,IIFAXX,IIFAXY, & - IRR,IRRL,IRRI,ZDRYMASST,ZREFMASS,ZMASS_O_PHI0, & - ZTH,ZRR,XRHODREF,XTHVREF,XRVREF,XEXNREF, XLINMASS, & - ZRU,ZRV,ZRW,ZPABST, & - ZBFB,ZBF_SXP2_YP1_Z,PRESIDUAL ) +CALL PRESSUREZ(CLBCX,CLBCY,CPRESOPT,NITR,LITRADJ,ITCOUNT,XRELAX,IMI, & + XRHODJ,XDXX,XDYY,XDZZ,XDZX,XDZY,ZDXHATM,ZDYHATM,ZRHOM, & + ZAF,ZBFY,ZCF,ZTRIGSX,ZTRIGSY,IIFAXX,IIFAXY, & + IRR,IRRL,IRRI,ZDRYMASST,ZREFMASS,ZMASS_O_PHI0, & + ZTH,ZRR,XRHODREF,XTHVREF,XRVREF,XEXNREF, XLINMASS, & + ZRU,ZRV,ZRW,ZPABST, & + ZBFB,ZBF_SXP2_YP1_Z,PRESIDUAL ) ! CALL MPPDB_CHECK3D(XRHODJ,"anel_balancen3.2-after pressurez halo::XRHODJ",PRECISION) CALL MPPDB_CHECK3D(ZRU,"anel_balancen3.2-after pressurez::ZRU",PRECISION) diff --git a/src/MNH/c2r2_adjust.f90 b/src/MNH/c2r2_adjust.f90 index d9f0f1bfb62d082506e3d2268988e01c68552fa1..78cc43ffb75ad734f5431fbf5aaba4915de8cbd7 100644 --- a/src/MNH/c2r2_adjust.f90 +++ b/src/MNH/c2r2_adjust.f90 @@ -14,7 +14,7 @@ ! INTERFACE ! - SUBROUTINE C2R2_ADJUST(KRR, TPFILE, HLUOUT, HRAD, & + SUBROUTINE C2R2_ADJUST(KRR, TPFILE, HRAD, & HTURBDIM, OCLOSE_OUT, OSUBG_COND, PTSTEP, & PRHODJ, PSIGS, PPABST, & PTHS, PRVS, PRCS, PCNUCS, & @@ -24,8 +24,6 @@ USE MODD_IO_ll, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KRR ! Number of moist variables TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for - ! model n CHARACTER*4, INTENT(IN) :: HTURBDIM ! Dimensionality of the ! turbulence scheme CHARACTER*4, INTENT(IN) :: HRAD ! Radiation scheme name @@ -58,7 +56,7 @@ END INTERFACE ! END MODULE MODI_C2R2_ADJUST ! ########################################################################## - SUBROUTINE C2R2_ADJUST(KRR, TPFILE, HLUOUT, HRAD, & + SUBROUTINE C2R2_ADJUST(KRR, TPFILE, HRAD, & HTURBDIM, OCLOSE_OUT, OSUBG_COND, PTSTEP, & PRHODJ, PSIGS, PPABST, & PTHS, PRVS, PRCS, PCNUCS, & @@ -155,18 +153,18 @@ END MODULE MODI_C2R2_ADJUST !* 0. DECLARATIONS ! ------------ ! -USE MODD_PARAMETERS -USE MODD_CST -USE MODD_CONF USE MODD_BUDGET -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_NSV, ONLY : NSV_C2R2BEG +USE MODD_CONF +USE MODD_CST +USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_NSV, ONLY: NSV_C2R2BEG +USE MODD_PARAMETERS ! USE MODI_CONDENS USE MODI_BUDGET ! USE MODE_FIELD -USE MODE_FM USE MODE_FMWRIT USE MODE_MSG ! @@ -177,8 +175,6 @@ IMPLICIT NONE ! INTEGER, INTENT(IN) :: KRR ! Number of moist variables TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for - ! model n CHARACTER*4, INTENT(IN) :: HTURBDIM ! Dimensionality of the ! turbulence scheme CHARACTER*4, INTENT(IN) :: HRAD ! Radiation scheme name @@ -228,7 +224,7 @@ TYPE(TFIELDDATA) :: TZFIELD !* 1. PRELIMINARIES ! ------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ZEPS= XMV / XMD ! IF (OSUBG_COND) THEN diff --git a/src/MNH/change_gribex_var.f90 b/src/MNH/change_gribex_var.f90 index d7e48fda2a125ee18e97feb77d764931af5357e8..9517f7cbaafad1097e2658a7a3b16f7b1e919b32 100644 --- a/src/MNH/change_gribex_var.f90 +++ b/src/MNH/change_gribex_var.f90 @@ -106,7 +106,6 @@ END MODULE MODI_CHANGE_GRIBEX_VAR !! EXTERNAL !! -------- !! -!! function FMLOOK :to retrieve a logical unit number associated with a file !! Module MODI_SHUMAN : interface for Shuman operators !! !! IMPLICIT ARGUMENTS @@ -162,19 +161,18 @@ END MODULE MODI_CHANGE_GRIBEX_VAR !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM -USE MODE_THERMO -! -USE MODI_SHUMAN -USE MODI_WATER_SUM -! -USE MODD_CONF ! declaration modules +USE MODD_CONF USE MODD_CONF_n -USE MODD_LUNIT USE MODD_CST -USE MODD_REF USE MODD_GRID_n +USE MODD_LUNIT, ONLY: CLUOUT0, TLUOUT0 USE MODD_PARAMETERS +USE MODD_REF +! +USE MODE_THERMO +! +USE MODI_SHUMAN +USE MODI_WATER_SUM ! IMPLICIT NONE ! @@ -203,7 +201,7 @@ REAL,DIMENSION(:,:,:), INTENT(OUT),OPTIONAL:: PW_LS ! vertical wind compone ! !* 0.2 Declaration of local variables ! ------------------------------ -INTEGER :: IRESP, ILUOUT0 +! INTEGER :: IIU,IJU,ILU INTEGER :: JL,JRR REAL,DIMENSION(:,:,:), ALLOCATABLE :: ZPFLUX_LS @@ -292,7 +290,7 @@ DO JRR=2,SIZE(PR_LS,4) PR_LS(:,:,:,JRR) = 1. / (1./MAX(PQ_LS(:,:,:,JRR),1.E-12) - 1.) END DO ! -PR_LS(:,:,:,1)=SM_PMR_HU(CLUOUT0,PPMASS_LS(:,:,:), & +PR_LS(:,:,:,1)=SM_PMR_HU(PPMASS_LS(:,:,:), & PT_LS(:,:,:)*(1.+(XRV/XRD-1.)*PQ_LS(:,:,:,1)), & PHU_LS(:,:,:),PR_LS(:,:,:,:),KITERMAX=100) ! @@ -434,7 +432,6 @@ IF (PRESENT(PW_LS)) THEN END IF !------------------------------------------------------------------------------- ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) -WRITE(ILUOUT0,*) 'Routine CHANGE_GRIBEX_VAR completed' +WRITE(TLUOUT0%NLU,*) 'Routine CHANGE_GRIBEX_VAR completed' ! END SUBROUTINE CHANGE_GRIBEX_VAR diff --git a/src/MNH/check_zhat.f90 b/src/MNH/check_zhat.f90 index 6f0db02238df019eae11907fa6f224ab21e103ec..f44d4307f348fa81c732c69530512a5a75d135fa 100644 --- a/src/MNH/check_zhat.f90 +++ b/src/MNH/check_zhat.f90 @@ -42,7 +42,6 @@ END MODULE MODI_CHECK_ZHAT !! EXTERNAL !! -------- !! -!! function FMLOOK :to retrieve a logical unit number associated with a file !! function FMREAD !! !! IMPLICIT ARGUMENTS @@ -77,17 +76,15 @@ END MODULE MODI_CHECK_ZHAT !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM -! -USE MODD_CONF ! declaration modules -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_LUNIT -USE MODD_GRID_n +USE MODD_CONF USE MODD_DIM_n +USE MODD_GRID_n +USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS ! USE MODE_FMREAD -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_FIND_BYNAME +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME ! IMPLICIT NONE ! @@ -115,7 +112,7 @@ TYPE(TFILEDATA),POINTER :: TZFMFILE ! !------------------------------------------------------------------------------- ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) +ILUOUT0 = TLUOUT0%NLU ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/check_zs.f90 b/src/MNH/check_zs.f90 index eb9f489ff4f28b060645c6cac5819ecaa3bc9082..aeb678265dba79126e2e72a7f4d3c6402722cfc7 100644 --- a/src/MNH/check_zs.f90 +++ b/src/MNH/check_zs.f90 @@ -44,7 +44,6 @@ END MODULE MODI_CHECK_ZS !! EXTERNAL !! -------- !! -!! function FMLOOK :to retrieve a logical unit number associated with a file !! function FMREAD !! !! IMPLICIT ARGUMENTS @@ -82,17 +81,16 @@ END MODULE MODI_CHECK_ZS !* 0. DECLARATIONS ! ------------ ! -USE MODD_CONF ! declaration modules -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_LUNIT -USE MODD_GRID_n +USE MODD_CONF USE MODD_DIM_n -USE MODD_PARAMETERS +USE MODD_GRID_n +USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_NESTING +USE MODD_PARAMETERS ! -USE MODE_FM USE MODE_FMREAD -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_FIND_BYNAME +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME ! IMPLICIT NONE ! @@ -126,7 +124,7 @@ INTEGER :: JI,JJ ! loop counters TYPE(TFILEDATA),POINTER :: TZFMFILE !------------------------------------------------------------------------------- ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) +ILUOUT0 = TLUOUT0%NLU ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/clean_conc_ice_c1r3.f90 b/src/MNH/clean_conc_ice_c1r3.f90 index a65b05e559a8a0db9ea4d9d5d0148caee97ec14a..089f07cee815594a7c5a61d3975625a6a32dd93c 100644 --- a/src/MNH/clean_conc_ice_c1r3.f90 +++ b/src/MNH/clean_conc_ice_c1r3.f90 @@ -14,9 +14,7 @@ ! INTERFACE ! - SUBROUTINE CLEAN_CONC_ICE_C1R3 (HLUOUT,PR,PSV) -! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name of the output-listing + SUBROUTINE CLEAN_CONC_ICE_C1R3 (PR,PSV) ! REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PR ! microphysical mixing REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSV ! microphys. concentrations @@ -28,7 +26,7 @@ END INTERFACE END MODULE MODI_CLEAN_CONC_ICE_C1R3 ! ! ############################################## - SUBROUTINE CLEAN_CONC_ICE_C1R3 (HLUOUT,PR,PSV) + SUBROUTINE CLEAN_CONC_ICE_C1R3 (PR,PSV) ! ############################################## ! !!**** *CLEAN_CONC_ICE_C1R3 * - reinitialize the ice crystal @@ -72,24 +70,20 @@ END MODULE MODI_CLEAN_CONC_ICE_C1R3 !* 0. DECLARATIONS ! ------------ ! -USE MODD_ICE_C1R3_DESCR, ONLY : XRTMIN, XCTMIN USE MODD_CONF, ONLY : NVERB -! -USE MODE_FM +USE MODD_ICE_C1R3_DESCR, ONLY : XRTMIN, XCTMIN +USE MODD_LUNIT_n, ONLY : TLUOUT ! IMPLICIT NONE ! !* 0.1 Declarations of dummy arguments : ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name of the output-listing -! REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PR ! microphysical mixing REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSV ! microphys. concentrations ! ! !* 0.2 Declarations of local variables : ! -INTEGER :: IRESP ! Return code of FM routines INTEGER :: ILUOUT ! Logical unit number of output-listing ! !------------------------------------------------------------------------------- @@ -97,7 +91,7 @@ INTEGER :: ILUOUT ! Logical unit number of output-listing !* 1. RETRIEVE LOGICAL UNIT NUMBER ! ---------------------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! !* 2. INITIALIZATION ! -------------- diff --git a/src/MNH/clean_conc_rain_c2r2.f90 b/src/MNH/clean_conc_rain_c2r2.f90 index 47116545632332b6698911d4cb427ad2c1960fab..e65835100976590c691069234510d6d6eb836c58 100644 --- a/src/MNH/clean_conc_rain_c2r2.f90 +++ b/src/MNH/clean_conc_rain_c2r2.f90 @@ -14,9 +14,7 @@ ! INTERFACE ! - SUBROUTINE CLEAN_CONC_RAIN_C2R2 (HLUOUT,PR,PSV) -! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name of the output-listing + SUBROUTINE CLEAN_CONC_RAIN_C2R2 (PR,PSV) ! REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PR ! microphysical mixing REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSV ! microphys. concentrations @@ -28,7 +26,7 @@ END INTERFACE END MODULE MODI_CLEAN_CONC_RAIN_C2R2 ! ! ######################################################## - SUBROUTINE CLEAN_CONC_RAIN_C2R2 (HLUOUT,PR,PSV) + SUBROUTINE CLEAN_CONC_RAIN_C2R2 (PR,PSV) ! ######################################################## ! !!**** *CLEAN_CONC_RAIN_C2R2 * - reinitialize the droplet/raindrop @@ -72,24 +70,20 @@ END MODULE MODI_CLEAN_CONC_RAIN_C2R2 !* 0. DECLARATIONS ! ------------ ! -USE MODD_RAIN_C2R2_DESCR, ONLY : XRTMIN, XCTMIN USE MODD_CONF, ONLY : NVERB -! -USE MODE_FM +USE MODD_LUNIT_n, ONLY : TLUOUT +USE MODD_RAIN_C2R2_DESCR, ONLY : XRTMIN, XCTMIN ! IMPLICIT NONE ! !* 0.1 Declarations of dummy arguments : ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name of the output-listing -! REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PR ! microphysical mixing REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PSV ! microphys. concentrations ! ! !* 0.2 Declarations of local variables : ! -INTEGER :: IRESP ! Return code of FM routines INTEGER :: ILUOUT ! Logical unit number of output-listing ! !------------------------------------------------------------------------------- @@ -97,7 +91,7 @@ INTEGER :: ILUOUT ! Logical unit number of output-listing !* 1. RETRIEVE LOGICAL UNIT NUMBER ! ---------------------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! !* 2. INITIALIZATION ! -------------- diff --git a/src/MNH/compute_exner_from_ground.f90 b/src/MNH/compute_exner_from_ground.f90 index 1d6585317e10f4644b1146d5f95b0238549e43eb..fa0f411277d4488a302306375369461c3a310e77 100644 --- a/src/MNH/compute_exner_from_ground.f90 +++ b/src/MNH/compute_exner_from_ground.f90 @@ -119,11 +119,9 @@ END MODULE MODI_COMPUTE_EXNER_FROM_GROUND3 !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM -! -USE MODD_CONF ! declaration modules -USE MODD_LUNIT +USE MODD_CONF USE MODD_CST +USE MODD_LUNIT USE MODD_PARAMETERS ! USE MODI_SHUMAN @@ -141,7 +139,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PEXNMASS ! Exner function at mass points ! !* 0.2 Declaration of local variables ! ------------------------------ -INTEGER :: ILUOUT0,IRESP +! INTEGER :: IKB,IKU,JK REAL :: ZD1 ! switch for thinshell approximation REAL :: ZGSCPD ! = g/Cpd @@ -156,8 +154,6 @@ IKB=JPVEXT+1 IKU=SIZE(PZFLUX,3) ZGSCPD = XG/XCPD ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) -! !------------------------------------------------------------------------------- ! !* 2. COMPUTATION OF THE EXNER FUNCTION AT FLUX POINTS diff --git a/src/MNH/compute_exner_from_top.f90 b/src/MNH/compute_exner_from_top.f90 index 58278883e3d7b6f196ec49b48f61bdacc8ee40ba..ea2bf803dc188bbd01b0164dff95ada5ad1350a9 100644 --- a/src/MNH/compute_exner_from_top.f90 +++ b/src/MNH/compute_exner_from_top.f90 @@ -117,11 +117,9 @@ END MODULE MODI_COMPUTE_EXNER_FROM_TOP3D !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM -! -USE MODD_CONF ! declaration modules -USE MODD_LUNIT +USE MODD_CONF USE MODD_CST +USE MODD_LUNIT USE MODD_PARAMETERS ! USE MODI_SHUMAN @@ -139,7 +137,7 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PEXNMASS ! Exner function at mass points ! !* 0.2 Declaration of local variables ! ------------------------------ -INTEGER :: ILUOUT0,IRESP +! INTEGER :: IKB,IKE,IKU,JK REAL :: ZD1 ! switch for thinshell approximation REAL :: ZGSCPD ! = g/Cpd @@ -150,8 +148,6 @@ REAL, DIMENSION(SIZE(PZFLUX,1),SIZE(PZFLUX,2),SIZE(PZFLUX,3)) :: ZZM !* 1. INITIALIZATIONS ! --------------- ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) -! IKB=JPVEXT+1 IKE=SIZE(PZFLUX,3)-JPVEXT IKU=SIZE(PZFLUX,3) diff --git a/src/MNH/diag.f90 b/src/MNH/diag.f90 index 8847d6397cb38159c677d5e5e330166dec527152..80aff4d870f53010eb168ff5d4235bfce20c7703 100644 --- a/src/MNH/diag.f90 +++ b/src/MNH/diag.f90 @@ -529,8 +529,8 @@ IF ( LAIRCRAFT_BALLOON ) THEN CALL MNHGET_SURF_PARAM_n (PSEA=ZSEA(:,:),PTOWN=ZTOWN(:,:)) DO ISTEPBAL=1,NTIME_AIRCRAFT_BALLOON,INT(XSTEP_AIRCRAFT_BALLOON) ! - CALL AIRCRAFT_BALLOON(CLUOUT,XSTEP_AIRCRAFT_BALLOON, & - TDTEXP, TDTMOD, TDTCUR, TXDTBAL, & + CALL AIRCRAFT_BALLOON(XSTEP_AIRCRAFT_BALLOON, & + TDTEXP, TDTMOD, TDTCUR, TXDTBAL, & XXHAT, XYHAT, XZZ, XMAP, XLONORI, XLATORI, & XUT, XVT, XWT, XPABST, XTHT, XRT, XSVT, & XTKET, XTSRAD, XRHODREF,XCIT,ZSEA) @@ -547,7 +547,7 @@ IF ( LAIRCRAFT_BALLOON ) THEN CALL IO_WRITE_HEADER(TZDIACFILE) CALL WRITE_LFIFMN_FORDIACHRO_n(TZDIACFILE) CALL WRITE_AIRCRAFT_BALLOON(TZDIACFILE) - CALL MENU_DIACHRO(TZDIACFILE,CLUOUT,'END') + CALL MENU_DIACHRO(TZDIACFILE,'END') CALL IO_FILE_CLOSE_ll(TZDIACFILE) WRITE(ILUOUT0,*) ' ' WRITE(ILUOUT0,*) 'DIAG AFTER CLOSE DIACHRONIC FILE' diff --git a/src/MNH/dry_mass.f90 b/src/MNH/dry_mass.f90 index 3dbda26db39a2fd4a5f3f29c4f0ecc9ff4d0dd36..f020cb3795819578dee7a322db800469a157a539 100644 --- a/src/MNH/dry_mass.f90 +++ b/src/MNH/dry_mass.f90 @@ -12,9 +12,8 @@ MODULE MODI_DRY_MASS ! #################### INTERFACE - SUBROUTINE DRY_MASS(HLUOUT,PTHV,PR,PJ,PPABS,PDRYMASS) + SUBROUTINE DRY_MASS(PTHV,PR,PJ,PPABS,PDRYMASS) ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! output listing REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHV ! virtual potential temperature REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PR ! water mixing ratio REAL, DIMENSION(:,:,:), INTENT(IN) :: PJ ! jacobian @@ -26,7 +25,7 @@ END SUBROUTINE DRY_MASS END INTERFACE END MODULE MODI_DRY_MASS ! ######spl - SUBROUTINE DRY_MASS(HLUOUT,PTHV,PR,PJ,PPABS,PDRYMASS) + SUBROUTINE DRY_MASS(PTHV,PR,PJ,PPABS,PDRYMASS) ! ########################################## ! !!**** *DRY_MASS* - computation of the total dry air mass @@ -117,18 +116,16 @@ END MODULE MODI_DRY_MASS ! ------------ ! USE MODD_CONF ! declaration modules -USE MODD_LUNIT +USE MODD_LUNIT_n, ONLY : TLUOUT USE MODD_CST USE MODD_PARAMETERS ! USE MODE_ll -USE MODE_FM ! IMPLICIT NONE ! !* 0.1 Declaration of arguments ! ------------------------ -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! output listing REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHV ! virtual potential temperature REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PR ! water mixing ratio REAL, DIMENSION(:,:,:), INTENT(IN) :: PJ ! jacobian @@ -138,7 +135,6 @@ REAL, INTENT(OUT) :: PDRYMASS ! dry mass ! !* 0.2 Declaration of local variables ! ------------------------------ -INTEGER :: ILUOUT,IRESP INTEGER :: JRR REAL, DIMENSION(SIZE(PJ,1),SIZE(PJ,2),SIZE(PJ,3)) :: ZRHOD, ZSUMR INTEGER :: IINFO_ll ! return code of parallel routine @@ -166,7 +162,6 @@ PDRYMASS=SUM3D_ll(PJ(:,:,:)*ZRHOD(:,:,:),IINFO_ll) ! !------------------------------------------------------------------------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) -WRITE(ILUOUT,*) 'Routine DRYMASS completed' +WRITE(TLUOUT%NLU,*) 'Routine DRYMASS completed' ! END SUBROUTINE DRY_MASS diff --git a/src/MNH/elec_trid.f90 b/src/MNH/elec_trid.f90 index 380a38de35658f849af505d0b14736da674edd2e..7a8e0ecd00d2e947f6ea3082890cbeb419b96671 100644 --- a/src/MNH/elec_trid.f90 +++ b/src/MNH/elec_trid.f90 @@ -13,14 +13,13 @@ ! INTERFACE ! - SUBROUTINE ELEC_TRID(HLUOUT,HLBCX,HLBCY, & + SUBROUTINE ELEC_TRID(HLBCX,HLBCY, & PMAP,PDXHAT,PDYHAT,PDXHATM,PDYHATM,PRHOM, & PAF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY, & PRHODJ,PTHVREF,PZZ,PBFY,PEPOTFW_TOP ) ! IMPLICIT NONE ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! output listing name CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX ! x-direction LBC type CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY ! y-direction LBC type ! @@ -71,7 +70,7 @@ END INTERFACE END MODULE MODI_ELEC_TRID ! ! ################################################################### - SUBROUTINE ELEC_TRID(HLUOUT,HLBCX,HLBCY, & + SUBROUTINE ELEC_TRID(HLBCX,HLBCY, & PMAP,PDXHAT,PDYHAT,PDXHATM,PDYHATM,PRHOM, & PAF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY, & PRHODJ,PTHVREF,PZZ,PBFY,PEPOTFW_TOP ) @@ -185,11 +184,11 @@ END MODULE MODI_ELEC_TRID ! ------------ USE MODD_CST USE MODD_CONF +USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS ! USE MODE_ll USE MODE_IO_ll -USE MODE_FM USE MODE_MSG ! !JUAN @@ -203,7 +202,6 @@ IMPLICIT NONE ! ! ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! output listing name CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX ! x-direction LBC type CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY ! y-direction LBC type ! @@ -302,7 +300,7 @@ REAL, ALLOCATABLE, DIMENSION(:,:) :: ZRHOM_2D , ZDZM_2D !* 1.1 retrieve a logical unit number ! ------------------------------ ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! !* 1.2 compute loop bounds ! ------------------- diff --git a/src/MNH/elec_tridz.f90 b/src/MNH/elec_tridz.f90 index 7cf604d136b50d2083b1858dd49bea24079a7fa2..dc902daf959b85c911e79a3bb0a2dffaaf00a633 100644 --- a/src/MNH/elec_tridz.f90 +++ b/src/MNH/elec_tridz.f90 @@ -14,7 +14,7 @@ ! INTERFACE ! - SUBROUTINE ELEC_TRIDZ(HLUOUT,HLBCX,HLBCY, & + SUBROUTINE ELEC_TRIDZ(HLBCX,HLBCY, & PMAP,PDXHAT,PDYHAT,PDXHATM,PDYHATM,PRHOM, & PAF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY, & PRHODJ,PTHVREF,PZZ,PBFY,PEPOTFW_TOP, & @@ -22,7 +22,6 @@ INTERFACE ! IMPLICIT NONE ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! output listing name CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX ! x-direction LBC type CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY ! y-direction LBC type ! @@ -79,7 +78,7 @@ END INTERFACE END MODULE MODI_ELEC_TRIDZ ! ! ################################################################### - SUBROUTINE ELEC_TRIDZ(HLUOUT,HLBCX,HLBCY, & + SUBROUTINE ELEC_TRIDZ(HLBCX,HLBCY, & PMAP,PDXHAT,PDYHAT,PDXHATM,PDYHATM,PRHOM, & PAF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY, & PRHODJ,PTHVREF,PZZ,PBFY,PEPOTFW_TOP, & @@ -194,11 +193,11 @@ END MODULE MODI_ELEC_TRIDZ ! ------------ USE MODD_CST USE MODD_CONF +USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS ! USE MODE_ll USE MODE_IO_ll -USE MODE_FM USE MODE_MSG !++cb - Z_SPLITTING USE MODE_SPLITTINGZ_ll , ONLY : GET_DIM_EXTZ_ll,GET_ORZ_ll,LWESTZ_ll,LSOUTHZ_ll @@ -213,7 +212,6 @@ IMPLICIT NONE ! ! ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! output listing name CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX ! x-direction LBC type CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY ! y-direction LBC type ! @@ -328,7 +326,7 @@ REAL, ALLOCATABLE, DIMENSION(:,:) :: ZRHOM_2D , ZDZM_2D !* 1.1 retrieve a logical unit number ! ------------------------------ ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! !* 1.2 compute loop bounds ! ------------------- diff --git a/src/MNH/endstep_budget.f90 b/src/MNH/endstep_budget.f90 index 74bd64b40f275d15f52df2e72c69885310dd9a40..1a6cf88e19c75a8036d8cd5301cf403b1f2b2ddc 100644 --- a/src/MNH/endstep_budget.f90 +++ b/src/MNH/endstep_budget.f90 @@ -14,14 +14,13 @@ ! INTERFACE ! - SUBROUTINE ENDSTEP_BUDGET(TPDIAFILE,HLUOUT,KTCOUNT, & - TPDTCUR,TPDTMOD,PTSTEP,KSV ) + SUBROUTINE ENDSTEP_BUDGET(TPDIAFILE,KTCOUNT, & + TPDTCUR,TPDTMOD,PTSTEP,KSV) ! USE MODD_IO_ll, ONLY: TFILEDATA USE MODD_TYPE_DATE ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name of output listing INTEGER, INTENT(IN) :: KTCOUNT ! temporal loop counter TYPE (DATE_TIME), INTENT(IN) :: TPDTCUR ! Current date and time TYPE (DATE_TIME), INTENT(IN) :: TPDTMOD ! Creation date and time @@ -34,10 +33,10 @@ END INTERFACE ! END MODULE MODI_ENDSTEP_BUDGET ! -! ############################################################### - SUBROUTINE ENDSTEP_BUDGET(TPDIAFILE,HLUOUT,KTCOUNT, & - TPDTCUR,TPDTMOD,PTSTEP,KSV ) -! ############################################################### +! #################################################### + SUBROUTINE ENDSTEP_BUDGET(TPDIAFILE,KTCOUNT, & + TPDTCUR,TPDTMOD,PTSTEP,KSV) +! #################################################### ! !!**** *ENDSTEP_BUDGET* - routine to call the routine write_budget !! @@ -118,7 +117,6 @@ IMPLICIT NONE !* 0.1 Declarations of arguments : ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name of output listing INTEGER, INTENT(IN) :: KTCOUNT ! temporal loop counter TYPE (DATE_TIME), INTENT(IN) :: TPDTCUR ! Current date and time TYPE (DATE_TIME), INTENT(IN) :: TPDTMOD ! Creation date and time @@ -138,7 +136,7 @@ SELECT CASE(CBUTYPE) !* 1.1 storage of the budget fields ! IF( MODULO(KTCOUNT,NBUSTEP*NBUWRNB) == 0 ) THEN - CALL WRITE_BUDGET(TPDIAFILE,HLUOUT,TPDTCUR,TPDTMOD,PTSTEP, KSV ) + CALL WRITE_BUDGET(TPDIAFILE,TPDTCUR,TPDTMOD,PTSTEP, KSV ) ! !* 1.2 resetting the budget arrays to 0. ! @@ -174,7 +172,7 @@ SELECT CASE(CBUTYPE) ! !* 2.1 storage of the budget fields ! - CALL WRITE_BUDGET(TPDIAFILE,HLUOUT,TPDTCUR,TPDTMOD,PTSTEP, KSV) + CALL WRITE_BUDGET(TPDIAFILE,TPDTCUR,TPDTMOD,PTSTEP, KSV) ! !* 2.2 reset the budget fields to 0. ! diff --git a/src/MNH/error_on_temperature.f90 b/src/MNH/error_on_temperature.f90 index 57252d68cb929d4f0d96f8ed4507601e81657450..ee23049bb4ddd46abb6a891c3002eebd655fbd79 100644 --- a/src/MNH/error_on_temperature.f90 +++ b/src/MNH/error_on_temperature.f90 @@ -69,18 +69,16 @@ END MODULE MODI_ERROR_ON_TEMPERATURE !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM -! -USE MODI_COEF_VER_INTERP_LIN -USE MODI_VER_INTERP_LIN -! -USE MODD_CONF ! declaration modules -USE MODD_LUNIT +USE MODD_CONF USE MODD_CST -USE MODD_REF_n USE MODD_FIELD_n, ONLY: XTHT +USE MODD_LUNIT, ONLY: TLUOUT0 +USE MODD_REF_n USE MODD_VER_INTERP_LIN ! +USE MODI_COEF_VER_INTERP_LIN +USE MODI_VER_INTERP_LIN +! IMPLICIT NONE ! !* 0.1 Declaration of arguments @@ -104,7 +102,7 @@ REAL,DIMENSION(:,:,:), ALLOCATABLE:: ZP1,ZT1 ! work arrays REAL,DIMENSION(:,:,:), ALLOCATABLE:: ZP2,ZT2 ! work arrays LOGICAL,DIMENSION(:,:,:), ALLOCATABLE :: GMASK! .T. where pressure level is significant ! -INTEGER :: IRESP, ILUOUT0 +INTEGER :: ILUOUT0 INTEGER :: IIU,IJU,ILU,IKU INTEGER :: JP ! @@ -198,7 +196,7 @@ END DO !* 4. Prints ! ------ ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) +ILUOUT0 = TLUOUT0%NLU ! WRITE(ILUOUT0,*) '' WRITE(ILUOUT0,*) 'Temperature RMS between begin and end of PREP_REAL_CASE :' diff --git a/src/MNH/fast_terms.f90 b/src/MNH/fast_terms.f90 index 3507eda6ff15df634f74b76d5b0188e5ce7b6ab4..3ded9cb76d722c8ce1ef20f405e61adef424ed85 100644 --- a/src/MNH/fast_terms.f90 +++ b/src/MNH/fast_terms.f90 @@ -14,7 +14,7 @@ ! INTERFACE ! - SUBROUTINE FAST_TERMS( KRR, KMI, HLUOUT, HRAD, & + SUBROUTINE FAST_TERMS( KRR, KMI, HRAD, & HTURBDIM, HSCONV, HMF_CLOUD, & OSUBG_COND, PTSTEP, & PRHODJ, PSIGS, PPABST, & @@ -24,8 +24,6 @@ INTERFACE ! INTEGER, INTENT(IN) :: KRR ! Number of moist variables INTEGER, INTENT(IN) :: KMI ! Model index -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for - ! model n CHARACTER*4, INTENT(IN) :: HTURBDIM ! Dimensionality of the ! turbulence scheme CHARACTER(LEN=4), INTENT(IN) :: HSCONV ! Shallow convection scheme @@ -63,7 +61,7 @@ END INTERFACE END MODULE MODI_FAST_TERMS ! ! ########################################################################## - SUBROUTINE FAST_TERMS( KRR, KMI, HLUOUT, HRAD, & + SUBROUTINE FAST_TERMS( KRR, KMI, HRAD, & HTURBDIM, HSCONV, HMF_CLOUD, & OSUBG_COND, PTSTEP, & PRHODJ, PSIGS, PPABST, & @@ -162,15 +160,16 @@ END MODULE MODI_FAST_TERMS !* 0. DECLARATIONS ! ------------ ! -USE MODD_PARAMETERS +USE MODD_BUDGET USE MODD_CST USE MODD_CONF -USE MODD_BUDGET +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_PARAMETERS ! -USE MODI_CONDENS -USE MODI_BUDGET -USE MODE_FM USE MODE_FMWRIT +! +USE MODI_BUDGET +USE MODI_CONDENS USE MODI_GET_HALO ! IMPLICIT NONE @@ -180,8 +179,6 @@ IMPLICIT NONE ! INTEGER, INTENT(IN) :: KRR ! Number of moist variables INTEGER, INTENT(IN) :: KMI ! Model index -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for - ! model n CHARACTER*4, INTENT(IN) :: HTURBDIM ! Dimensionality of the ! turbulence scheme CHARACTER(LEN=4), INTENT(IN) :: HSCONV ! Shallow convection scheme @@ -238,7 +235,8 @@ INTEGER :: ILUOUT ! Logical unit of output listing !* 1. PRELIMINARIES ! ------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU +! ZEPS= XMV / XMD ! IF (OSUBG_COND) THEN diff --git a/src/MNH/free_atm_profile.f90 b/src/MNH/free_atm_profile.f90 index 2ef4e0c92173b3af89ba780c7fc1cc14ce96df44..04db4fdfc6f65d6cfa14e802539a3494d8954cb1 100644 --- a/src/MNH/free_atm_profile.f90 +++ b/src/MNH/free_atm_profile.f90 @@ -60,8 +60,6 @@ END MODULE MODI_FREE_ATM_PROFILE !! EXTERNAL !! -------- !! -!! function FMLOOK : to retrieve a logical unit number associated -!! with a file !! !! IMPLICIT ARGUMENTS !! ------------------ @@ -96,25 +94,21 @@ END MODULE MODI_FREE_ATM_PROFILE !* 0. DECLARATIONS ! ------------ ! -USE MODI_PGDFILTER +USE MODD_CONF +USE MODD_GRID_n +USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_LUNIT, ONLY: TLUOUT0 +USE MODD_PARAMETERS +USE MODD_VER_INTERP_LIN +! USE MODI_COEF_VER_INTERP_LIN +USE MODI_PGDFILTER USE MODI_VER_INTERP_LIN USE MODI_VERT_COORD ! USE MODE_FIELD, ONLY: TFIELDDATA, TYPEINT, TYPEREAL USE MODE_FMWRIT -USE MODE_FM -! -USE MODD_CONF ! declaration modules -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_LUNIT -USE MODD_LUNIT_n -USE MODD_GRID_n -USE MODD_PARAMETERS -USE MODD_VER_INTERP_LIN -!JUAN REALZ USE MODE_MPPDB -!JUAN REALZ ! IMPLICIT NONE ! @@ -165,9 +159,6 @@ INTEGER, DIMENSION(SIZE(PZMASS_MX,1),SIZE(PZMASS_MX,2)) & REAL, DIMENSION(SIZE(PZMASS_MX,1),SIZE(PZMASS_MX,2)) & :: ZK_BL_TOP ! as K_BL_TOP but real INTEGER :: IIMIN, IIMAX, IJMIN, IJMAX - -INTEGER :: IRESP - REAL, DIMENSION(SIZE(PZMASS_MX,1),SIZE(PZMASS_MX,2)) & :: Z2D ! field to be recorded REAL, DIMENSION(SIZE(XZZ,1),SIZE(XZZ,2),SIZE(XZZ,3)) & @@ -176,8 +167,8 @@ REAL, DIMENSION(SIZE(XZZ,1),SIZE(XZZ,2),SIZE(XZZ,3)) & :: ZZMASS ! MESO-NH output mass grid TYPE(TFIELDDATA) :: TZFIELD !------------------------------------------------------------------------------- -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) ! +ILUOUT0 = TLUOUT0%NLU ! IIU=SIZE(PZMASS_MX,1) IJU=SIZE(PZMASS_MX,2) diff --git a/src/MNH/get_sizex_lb.f90 b/src/MNH/get_sizex_lb.f90 index 8e93830ce14a05465b1d8d21c531dbe6622581c5..71d99adcb16c2451345cfa7acdb3e0ae4bc96b2a 100644 --- a/src/MNH/get_sizex_lb.f90 +++ b/src/MNH/get_sizex_lb.f90 @@ -13,12 +13,10 @@ ! INTERFACE ! - SUBROUTINE GET_SIZEX_LB(HLUOUT,KIMAX_ll,KJMAX_ll,KRIMX, & - KISIZEXF,KJSIZEXF,KISIZEXFU,KJSIZEXFU, & - KISIZEX4,KJSIZEX4,KISIZEX2,KJSIZEX2) + SUBROUTINE GET_SIZEX_LB(KIMAX_ll,KJMAX_ll,KRIMX, & + KISIZEXF,KJSIZEXF,KISIZEXFU,KJSIZEXFU, & + KISIZEX4,KJSIZEX4,KISIZEX2,KJSIZEX2 ) ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing - ! of nested models INTEGER, INTENT(IN) :: KIMAX_ll ! Dimensions in x direction ! of the physical domain, INTEGER, INTENT(IN) :: KJMAX_ll ! Dimensions in y direction @@ -39,11 +37,11 @@ END MODULE MODI_GET_SIZEX_LB ! ! ! -! ############################################################# - SUBROUTINE GET_SIZEX_LB(HLUOUT,KIMAX_ll,KJMAX_ll,KRIMX, & - KISIZEXF,KJSIZEXF,KISIZEXFU,KJSIZEXFU, & - KISIZEX4,KJSIZEX4,KISIZEX2,KJSIZEX2) -! ############################################################# +! ################################################################# + SUBROUTINE GET_SIZEX_LB(KIMAX_ll,KJMAX_ll,KRIMX, & + KISIZEXF,KJSIZEXF,KISIZEXFU,KJSIZEXFU, & + KISIZEX4,KJSIZEX4,KISIZEX2,KJSIZEX2 ) +! ################################################################ ! !!**** *GET_SIZEX_LB* - routine to get the size of the West-East LB arrays !! for each sub-domain @@ -95,14 +93,11 @@ END MODULE MODI_GET_SIZEX_LB ! ------------ USE MODD_PARAMETERS USE MODE_ll -USE MODE_FM ! IMPLICIT NONE ! !* 0.1 declarations of arguments ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing - ! of nested models INTEGER, INTENT(IN) :: KIMAX_ll ! Dimensions in x direction ! of the physical domain, INTEGER, INTENT(IN) :: KJMAX_ll ! Dimensions in y direction @@ -121,15 +116,11 @@ INTEGER :: IXOR, IYOR, IXEND, IYEND ! Coordinates of the LB zone ! (in global coordinates) INTEGER :: IXORI, IYORI, IXENDI, IYENDI ! Coordinates of ! the intersection in local coordinates -INTEGER :: ILUOUT,IRESP ! Logical unit number and status code - ! associated with HLUOUT !------------------------------------------------------------------------------- ! !* 1. INITIALIZATIONS ! -------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) -! KISIZEXF=0 KJSIZEXF=0 KISIZEXFU=0 diff --git a/src/MNH/get_sizey_lb.f90 b/src/MNH/get_sizey_lb.f90 index 51491f23abdab5929abc3d5c3cbf36b5e9a716c6..8ae70b88938c752c1252adf7f91e60fa6ce624d9 100644 --- a/src/MNH/get_sizey_lb.f90 +++ b/src/MNH/get_sizey_lb.f90 @@ -13,12 +13,10 @@ ! INTERFACE ! - SUBROUTINE GET_SIZEY_LB(HLUOUT,KIMAX_ll,KJMAX_ll,KRIMY, & - KISIZEYF,KJSIZEYF,KISIZEYFV,KJSIZEYFV, & - KISIZEY4,KJSIZEY4,KISIZEY2,KJSIZEY2) + SUBROUTINE GET_SIZEY_LB(KIMAX_ll,KJMAX_ll,KRIMY, & + KISIZEYF,KJSIZEYF,KISIZEYFV,KJSIZEYFV, & + KISIZEY4,KJSIZEY4,KISIZEY2,KJSIZEY2 ) ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing - ! of nested models INTEGER, INTENT(IN) :: KIMAX_ll ! Dimensions in x direction ! of the physical domain, INTEGER, INTENT(IN) :: KJMAX_ll ! Dimensions in y direction @@ -39,11 +37,11 @@ END MODULE MODI_GET_SIZEY_LB ! ! ! -! ############################################################# - SUBROUTINE GET_SIZEY_LB(HLUOUT,KIMAX_ll,KJMAX_ll,KRIMY, & - KISIZEYF,KJSIZEYF,KISIZEYFV,KJSIZEYFV, & - KISIZEY4,KJSIZEY4,KISIZEY2,KJSIZEY2) -! ############################################################# +! ################################################################ + SUBROUTINE GET_SIZEY_LB(KIMAX_ll,KJMAX_ll,KRIMY, & + KISIZEYF,KJSIZEYF,KISIZEYFV,KJSIZEYFV, & + KISIZEY4,KJSIZEY4,KISIZEY2,KJSIZEY2 ) +! ################################################################ ! !!**** *GET_SIZEY_LB* - routine to get the size of the South-North LB arrays !! for each sub-domain @@ -95,14 +93,11 @@ END MODULE MODI_GET_SIZEY_LB ! ------------ USE MODD_PARAMETERS USE MODE_ll -USE MODE_FM ! IMPLICIT NONE ! !* 0.1 declarations of arguments ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing - ! of nested models INTEGER, INTENT(IN) :: KIMAX_ll ! Dimensions in x direction ! of the physical domain, INTEGER, INTENT(IN) :: KJMAX_ll ! Dimensions in y direction @@ -121,15 +116,11 @@ INTEGER :: IXOR, IYOR, IXEND, IYEND ! Coordinates of the LB zone ! (in global coordinates) INTEGER :: IXORI, IYORI, IXENDI, IYENDI ! Coordinates of ! the intersection in local coordinates -INTEGER :: ILUOUT,IRESP ! Logical unit number and status code - ! associated with HLUOUT !------------------------------------------------------------------------------- ! !* 1. INITIALIZATIONS ! -------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) -! KISIZEYF=0 KJSIZEYF=0 KISIZEYFV=0 diff --git a/src/MNH/gps_zenith_grid.f90 b/src/MNH/gps_zenith_grid.f90 index b56c3b26cecceee2e850c60ffdb256f54551a5be..b954e9acaa678406663945c4ffaa46746f3c75be 100644 --- a/src/MNH/gps_zenith_grid.f90 +++ b/src/MNH/gps_zenith_grid.f90 @@ -78,9 +78,7 @@ END MODULE MODI_GPS_ZENITH_GRID ! ! USE MODD_PARAMETERS -USE MODD_LUNIT USE MODD_CST -USE MODE_FM USE MODD_GR_FIELD_n USE MODD_DIAG_FLAG USE MODD_GRID, ONLY: XLONORI,XLATORI @@ -112,7 +110,6 @@ INTEGER :: IJB,IJE ! Loop limits for coordinate Y INTEGER :: IKB,IKE ! Loop limits for coordinate Z INTEGER :: JK ! Loop variables of control INTEGER :: IIU,IJU,IKU ! Loop variables of model -INTEGER :: ILUOUT0, IRESP ! file unit and return code for output REAL, DIMENSION(:),ALLOCATABLE :: ZXHATM,ZYHATM ! mass-point positions REAL, DIMENSION(:,:,:),ALLOCATABLE :: ZZHATM ! mass level altitude !-------- Physical parameters for the integration ---------------------------- @@ -134,7 +131,6 @@ REAL, DIMENSION(:,:),ALLOCATABLE :: ZGTOP ! gravity of top of mode !* 1. INTIALIZE DIMENSIONS AND ALLOCATE ARRAYS ! ---------------------------------------- ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) CALL GET_INDICE_ll(IIB,IJB,IIE,IJE) IIU = SIZE (PTEMP,1) IJU = SIZE (PTEMP,2) diff --git a/src/MNH/ini_aircraft_balloon.f90 b/src/MNH/ini_aircraft_balloon.f90 index c9cd97b666f826d1e6dc9eecb4e5dcc74308cc3d..466d60dcf55d4940b6dd873f3d35e325eb619d99 100644 --- a/src/MNH/ini_aircraft_balloon.f90 +++ b/src/MNH/ini_aircraft_balloon.f90 @@ -14,7 +14,7 @@ MODULE MODI_INI_AIRCRAFT_BALLOON ! INTERFACE ! - SUBROUTINE INI_AIRCRAFT_BALLOON(TPINIFILE,HLUOUT, & + SUBROUTINE INI_AIRCRAFT_BALLOON(TPINIFILE, & PTSTEP, TPDTSEG, PSEGLEN, & KRR, KSV, KKU, OUSETKE, & PLATOR, PLONOR ) @@ -23,7 +23,6 @@ USE MODD_IO_ll, ONLY : TFILEDATA USE MODD_TYPE_DATE ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE !Initial file -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! output listing REAL, INTENT(IN) :: PTSTEP ! time step TYPE(DATE_TIME), INTENT(IN) :: TPDTSEG ! segment date and time REAL, INTENT(IN) :: PSEGLEN ! segment length @@ -43,7 +42,7 @@ END INTERFACE END MODULE MODI_INI_AIRCRAFT_BALLOON ! ! ############################################################### - SUBROUTINE INI_AIRCRAFT_BALLOON(TPINIFILE,HLUOUT, & + SUBROUTINE INI_AIRCRAFT_BALLOON(TPINIFILE, & PTSTEP, TPDTSEG, PSEGLEN, & KRR, KSV, KKU, OUSETKE, & PLATOR, PLONOR ) @@ -90,11 +89,12 @@ USE MODD_CONF USE MODD_DIAG_FLAG USE MODD_DYN_n USE MODD_GRID -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_LUNIT_n, ONLY : TLUOUT USE MODD_PARAM_n, ONLY : CCLOUD USE MODD_PARAMETERS ! -USE MODE_FIELD, ONLY : TFIELDDATA, TYPEREAL +USE MODE_FIELD, ONLY : TFIELDDATA, TYPEREAL USE MODE_GRIDPROJ USE MODE_IO_ll USE MODE_ll @@ -109,7 +109,6 @@ IMPLICIT NONE !* 0.1 declarations of arguments ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE !Initial file -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! output listing REAL, INTENT(IN) :: PTSTEP ! time step TYPE(DATE_TIME), INTENT(IN) :: TPDTSEG ! segment date and time REAL, INTENT(IN) :: PSEGLEN ! segment length @@ -134,7 +133,7 @@ TYPE(TFIELDDATA) :: TZFIELD !---------------------------------------------------------------------------- ! IMI=GET_CURRENT_MODEL_INDEX() -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU !---------------------------------------------------------------------------- ! !* 1. Default values diff --git a/src/MNH/ini_cpl.f90 b/src/MNH/ini_cpl.f90 index 061adfd1c7f88b8907a4b6a8675e0cc92c6420c0..dd7702eedaa01c1567291383a6dbb86a7e1c9d6a 100644 --- a/src/MNH/ini_cpl.f90 +++ b/src/MNH/ini_cpl.f90 @@ -146,7 +146,6 @@ END MODULE MODI_INI_CPL !! !! EXTERNAL !! -------- -!! FMLOOK : to retrieve a logical unit number !! IO_READ_FIELD: to read data in LFI_FM file !! IO_FILE_CLOSE_ll : to close a FM-file !! INI_LS : to initialize larger scale fields @@ -218,16 +217,20 @@ END MODULE MODI_INI_CPL ! !* 0. DECLARATIONS ! ------------ -USE MODD_PARAMETERS +USE MODD_CH_MNHC_n USE MODD_CONF USE MODD_CTURB USE MODD_DYN -USE MODD_TIME_n -USE MODD_LUNIT_n +USE MODD_LUNIT_n, ONLY: CCPLFILE, TCPLFILE, TLUOUT USE MODD_NSV -USE MODD_CH_MNHC_n +USE MODD_PARAMETERS +USE MODD_TIME_n +! #ifdef MNH_FOREFIRE +! USE MODD_PASPOL +! USE MODD_FOREFIRE +! USE MODD_FOREFIRE_n +! #endif ! -USE MODE_FM USE MODE_FMREAD USE MODE_IO_ll USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST @@ -235,14 +238,9 @@ USE MODE_MSG USE MODD_NESTING USE MODE_TIME ! -USE MODI_TEMPORAL_DIST USE MODI_INI_LS USE MODI_INI_LB -#ifdef MNH_FOREFIRE -USE MODD_PASPOL -USE MODD_FOREFIRE -USE MODD_FOREFIRE_n -#endif +USE MODI_TEMPORAL_DIST ! IMPLICIT NONE ! @@ -341,7 +339,7 @@ LOGICAL :: GLSOURCE ! switch for the source term (for ini_ls and ini_lb) GSKIP(:)=.FALSE. GEND=.FALSE. NCPL_TIMES(:,:) = NUNDEF -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! !------------------------------------------------------------------------------- ! @@ -481,7 +479,7 @@ END IF GLSOURCE=.TRUE. ZLENG = (NCPL_TIMES(NCPL_CUR,1)-2) * PTSTEP ! -CALL INI_LS(TCPLFILE(NCPL_CUR)%TZFILE,HLUOUT,HGETRVM,GLSOURCE,PLSUS,PLSVS,PLSWS,PLSTHS,PLSRVS, & +CALL INI_LS(TCPLFILE(NCPL_CUR)%TZFILE,HGETRVM,GLSOURCE,PLSUS,PLSVS,PLSWS,PLSTHS,PLSRVS, & PDRYMASSS,PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM,PDRYMASST,ZLENG,OSTEADY_DMASS) ! ! @@ -510,7 +508,7 @@ CALL INI_LS(TCPLFILE(NCPL_CUR)%TZFILE,HLUOUT,HGETRVM,GLSOURCE,PLSUS,PLSVS,PLSWS, !END IF GLSOURCE=.TRUE. -CALL INI_LB(TCPLFILE(NCPL_CUR)%TZFILE,HLUOUT,GLSOURCE,KSV, & +CALL INI_LB(TCPLFILE(NCPL_CUR)%TZFILE,GLSOURCE,KSV, & KSIZELBX_ll,KSIZELBXU_ll,KSIZELBY_ll,KSIZELBYV_ll, & KSIZELBXTKE_ll,KSIZELBYTKE_ll, & KSIZELBXR_ll,KSIZELBYR_ll,KSIZELBXSV_ll,KSIZELBYSV_ll, & diff --git a/src/MNH/ini_dynamics.f90 b/src/MNH/ini_dynamics.f90 index c5c85d1c587bbd44706f339613be0b3458098226..e0983710791da5a607e5ff98049e0b7e008131c5 100644 --- a/src/MNH/ini_dynamics.f90 +++ b/src/MNH/ini_dynamics.f90 @@ -6,7 +6,7 @@ MODULE MODI_INI_DYNAMICS ! ######################## INTERFACE -SUBROUTINE INI_DYNAMICS(HLUOUT,PLON,PLAT,PRHODJ,PTHVREF,PMAP,PZZ, & +SUBROUTINE INI_DYNAMICS(PLON,PLAT,PRHODJ,PTHVREF,PMAP,PZZ, & PDXHAT,PDYHAT,PZHAT,HLBCX,HLBCY,PTSTEP, & OVE_RELAX,OVE_RELAX_GRD,OHORELAX_UVWTH,OHORELAX_RV, & OHORELAX_RC,OHORELAX_RR,OHORELAX_RI,OHORELAX_RS,OHORELAX_RG, & @@ -32,7 +32,6 @@ SUBROUTINE INI_DYNAMICS(HLUOUT,PLON,PLAT,PRHODJ,PTHVREF,PMAP,PZZ, & USE MODE_TYPE_ZDIFFU IMPLICIT NONE ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing REAL, DIMENSION(:,:), INTENT(IN) :: PLON,PLAT !Longitude and latitude REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! rho J REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHVREF ! virtual potential @@ -176,7 +175,7 @@ END INTERFACE ! END MODULE MODI_INI_DYNAMICS ! ###################################################################### -SUBROUTINE INI_DYNAMICS(HLUOUT,PLON,PLAT,PRHODJ,PTHVREF,PMAP,PZZ, & +SUBROUTINE INI_DYNAMICS(PLON,PLAT,PRHODJ,PTHVREF,PMAP,PZZ, & PDXHAT,PDYHAT,PZHAT,HLBCX,HLBCY,PTSTEP, & OVE_RELAX,OVE_RELAX_GRD,OHORELAX_UVWTH,OHORELAX_RV, & OHORELAX_RC,OHORELAX_RR,OHORELAX_RI,OHORELAX_RS,OHORELAX_RG, & @@ -284,14 +283,14 @@ SUBROUTINE INI_DYNAMICS(HLUOUT,PLON,PLAT,PRHODJ,PTHVREF,PMAP,PZZ, & USE MODD_CONF USE MODD_CST USE MODD_GRID +USE MODD_LUNIT_n, ONLY: TLUOUT ! -USE MODI_TRID -USE MODI_TRIDZ USE MODI_RELAXDEF +! USE MODI_TRID +USE MODI_TRIDZ USE MODI_ZDIFFUSETUP -USE MODE_ll -USE MODE_FM ! +USE MODE_ll USE MODE_TYPE_ZDIFFU ! IMPLICIT NONE @@ -300,7 +299,6 @@ IMPLICIT NONE ! ! intent in arguments ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing REAL, DIMENSION(:,:), INTENT(IN) :: PLON,PLAT !Longitude and latitude REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! rho J REAL, DIMENSION(:,:,:), INTENT(IN) :: PTHVREF ! virtual potential @@ -443,8 +441,7 @@ REAL, DIMENSION(SIZE(PRHODJ,1),SIZE(PRHODJ,2)) :: ZGAMMA ! Gamma =K(lambda-lambd REAL :: ZMBETA ! -beta REAL :: ZCDR ! to convert degrees in ! radians -INTEGER :: ILUOUT,IRESP ! Logical unit number - ! for output_listing file, and return code +INTEGER :: ILUOUT ! Logical unit number for output_listing file INTEGER :: IIU,IJU ! Upper bounds in x,y directions LOGICAL :: GHORELAX LOGICAL, DIMENSION(7) :: GHORELAXR ! local array of logical @@ -484,11 +481,11 @@ END IF ! --------------------------------- ! IF (.NOT.L1D) THEN -! CALL TRID(HLUOUT,HLBCX,HLBCY, & +! CALL TRID(HLBCX,HLBCY, & ! PMAP,PDXHAT,PDYHAT,PDXHATM,PDYHATM,PRHOM,PAF, & ! PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY, & ! PRHODJ,PTHVREF,PZZ,PBFY) - CALL TRIDZ(HLUOUT,HLBCX,HLBCY, & + CALL TRIDZ(HLBCX,HLBCY, & PMAP,PDXHAT,PDYHAT,PDXHATM,PDYHATM,PRHOM,PAF, & PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY, & PRHODJ,PTHVREF,PZZ,PBFY,PBFB, & @@ -572,7 +569,7 @@ ENDIF ! IF (NVERB >= 10) THEN CALL GET_DIM_EXT_ll ('B',IIU,IJU) - CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) + ILUOUT = TLUOUT%NLU ! WRITE(ILUOUT,*) 'INI_DYNAMICS : Some PCORIOZ values' WRITE(ILUOUT,*) '(1,1) (IIU/2,IJU/2) (IIU,IJU) ' diff --git a/src/MNH/ini_elecn.f90 b/src/MNH/ini_elecn.f90 index aa95cef9a2915f715e2a6aabc87d540828b84164..be332d00c2fb814cc45d7bf8f5df63a407564eaf 100644 --- a/src/MNH/ini_elecn.f90 +++ b/src/MNH/ini_elecn.f90 @@ -83,46 +83,45 @@ END MODULE MODI_INI_ELEC_n !* 0. DECLARATIONS ! ------------ ! -USE MODE_ll -USE MODD_ARGSLIST_ll, ONLY : LIST_ll -USE MODE_IO_ll -USE MODE_FM -USE MODE_FMREAD -! -USE MODD_DIM_n, ONLY : NIMAX_ll, NJMAX_ll -USE MODD_ELEC_DESCR -USE MODD_ELEC_n, ONLY : XRHOM_E, XAF_E, XCF_E, XBFY_E, XBFB_E, XBF_SXP2_YP1_Z_E +USE MODD_CLOUDPAR_n, ONLY : NSPLITR +USE MODD_CONF, ONLY : CEQNSYS,CCONF,CPROGRAM USE MODD_CONF_n, ONLY : NRR -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_PARAMETERS, ONLY : JPVEXT, JPHEXT USE MODD_CST -USE MODD_CONF, ONLY : CEQNSYS,CCONF,CPROGRAM +USE MODD_DIM_n, ONLY : NIMAX_ll, NJMAX_ll USE MODD_DYN -USE MODD_REF -USE MODD_TIME +USE MODD_DYN_n, ONLY : XRHOM, XTRIGSX, XTRIGSY, XAF, XCF, XBFY, XBFB, XDXHATM, & + XDYHATM, NIFAXX, NIFAXY, XBF_SXP2_YP1_Z +USE MODD_ELEC_DESCR USE MODD_ELEC_FLASH +USE MODD_ELEC_n, ONLY : XRHOM_E, XAF_E, XCF_E, XBFY_E, XBFB_E, XBF_SXP2_YP1_Z_E USE MODD_GET_n, ONLY : CGETINPRC, CGETINPRR, CGETINPRS, CGETINPRG, CGETINPRH, & CGETCLOUD, CGETSVT +USE MODD_GRID_n, ONLY : XMAP, XDXHAT, XDYHAT +USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_LBC_n, ONLY : CLBCX, CLBCY +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_PARAM_C2R2, ONLY : LDEPOC +USE MODD_PARAMETERS, ONLY : JPVEXT, JPHEXT +USE MODD_PARAM_ICE, ONLY : LDEPOSC USE MODD_PRECIP_n, ONLY : XINPRR, XACPRR, XINPRS, XACPRS, XINPRG, XACPRG, & XINPRH, XACPRH, XINPRC, XACPRC, XINPRR3D, XEVAP3D,& XINDEP,XACDEP -USE MODD_PARAM_ICE, ONLY : LDEPOSC -USE MODD_PARAM_C2R2, ONLY : LDEPOC -USE MODD_CLOUDPAR_n, ONLY : NSPLITR +USE MODD_REF USE MODD_REF_n, ONLY : XRHODJ, XTHVREF -USE MODD_GRID_n, ONLY : XMAP, XDXHAT, XDYHAT -USE MODD_DYN_n, ONLY : XRHOM, XTRIGSX, XTRIGSY, XAF, XCF, XBFY, XBFB, XDXHATM, & - XDYHATM, NIFAXX, NIFAXY, XBF_SXP2_YP1_Z -USE MODD_LBC_n, ONLY : CLBCX, CLBCY - -USE MODI_ELEC_TRID +USE MODD_TIME +! +USE MODD_ARGSLIST_ll, ONLY : LIST_ll +USE MODE_IO_ll +USE MODE_FMREAD +USE MODE_ll +! +USE MODI_ELEC_TRIDZ USE MODI_INI_CLOUD -USE MODI_INI_PARAM_ELEC -USE MODI_INI_RAIN_ICE_ELEC USE MODI_INI_FIELD_ELEC USE MODI_INI_FLASH_GEOM_ELEC +USE MODI_INI_PARAM_ELEC +USE MODI_INI_RAIN_ICE_ELEC USE MODI_READ_PRECIP_FIELD -USE MODI_ELEC_TRIDZ ! ! IMPLICIT NONE @@ -146,7 +145,6 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PDZY ! metric coefficient dzy ! !* 0.2 declarations of local variables ! -INTEGER :: IRESP ! Return code of FM routines INTEGER :: ILUOUT ! Logical unit number of output-listing ! INTEGER :: IIU ! Upper dimension in x direction (local) @@ -169,7 +167,7 @@ CHARACTER (LEN=3) :: YEQNSYS !* 0. PROLOGUE ! -------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! CALL GET_DIM_EXT_ll('B',IIU,IJU) IKU = SIZE(PZZ,3) @@ -314,7 +312,7 @@ ALLOCATE (XBFB_E(SIZE(XBFB,1),SIZE(XBFB,2),SIZE(XBFB,3))) ALLOCATE (XBF_SXP2_YP1_Z_E(SIZE(XBF_SXP2_YP1_Z,1),SIZE(XBF_SXP2_YP1_Z,2),& SIZE(XBF_SXP2_YP1_Z,3))) ! -CALL ELEC_TRIDZ (HLUOUT,CLBCX,CLBCY, & +CALL ELEC_TRIDZ (CLBCX,CLBCY, & XMAP,XDXHAT,XDYHAT,XDXHATM,XDYHATM,XRHOM_E,XAF_E, & XCF_E,XTRIGSX,XTRIGSY,NIFAXX,NIFAXY, & XRHODJ,XTHVREF,PZZ,XBFY_E,XEPOTFW_TOP, & diff --git a/src/MNH/ini_ice_c1r3.f90 b/src/MNH/ini_ice_c1r3.f90 index fe884be5060238326d4fe794602bab5798f90076..2b87606f03b060c4c072a653154b7546f336f98d 100644 --- a/src/MNH/ini_ice_c1r3.f90 +++ b/src/MNH/ini_ice_c1r3.f90 @@ -98,26 +98,25 @@ END MODULE MODI_INI_ICE_C1R3 !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM USE MODD_CST -USE MODD_LUNIT +USE MODD_ICE_C1R3_DESCR +USE MODD_ICE_C1R3_PARAM +USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS +USE MODD_PARAM_C1R3 USE MODD_PARAM_C2R2, ONLY : XALPHAC,XNUC,XALPHAR,XNUR USe MODD_RAIN_C2R2_DESCR, ONLY : XAR,XBR,XCR,XDR,XF0R,XF1R,XAC,XBC,XCC,XDC, & XLBC,XLBEXC,XLBR,XLBEXR -USE MODD_PARAM_C1R3 -USE MODD_ICE_C1R3_DESCR -USE MODD_ICE_C1R3_PARAM USE MODD_REF ! USE MODI_GAMMA USE MODI_GAMMA_INC -USE MODI_RRCOLSS -USE MODI_RZCOLX -USE MODI_RSCOLRG USE MODI_READ_XKER_RACCS -USE MODI_READ_XKER_SDRYG USE MODI_READ_XKER_RDRYG +USE MODI_READ_XKER_SDRYG +USE MODI_RRCOLSS +USE MODI_RSCOLRG +USE MODI_RZCOLX ! ! IMPLICIT NONE @@ -160,7 +159,6 @@ REAL :: ZFDINFTY ! Factor used to define the "infinite" diameter ! ! INTEGER :: ILUOUT0 ! Logical unit number for output-listing -INTEGER :: IRESP ! Return code of FM-routines LOGICAL :: GFLAG ! Logical flag for printing the constatnts on the output ! listing REAL :: ZCONC_MAX ! Maximal concentration for snow @@ -197,7 +195,7 @@ REAL :: ZFAC_ZRNIC ! Zrnic factor used to decrease Long Kernels ! 1. INTIALIZE OUTPUT LISTING AND COMPUTE KSPLITG FOR EACH MODEL ! ----------------------------------------------------------- ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) +ILUOUT0 = TLUOUT0%NLU ! !* 1.1 Set the graupel maximum fall velocity ! diff --git a/src/MNH/ini_lb.f90 b/src/MNH/ini_lb.f90 index 54f92d9a8265fd80fc4fd9b2da647372092a84c5..7afd3aabba753be544381b6c6743d75d66d3bf8d 100644 --- a/src/MNH/ini_lb.f90 +++ b/src/MNH/ini_lb.f90 @@ -8,7 +8,7 @@ ! INTERFACE ! -SUBROUTINE INI_LB(TPINIFILE,HLUOUT,OLSOURCE,KSV, & +SUBROUTINE INI_LB(TPINIFILE,OLSOURCE,KSV, & KSIZELBX_ll,KSIZELBXU_ll,KSIZELBY_ll,KSIZELBYV_ll, & KSIZELBXTKE_ll,KSIZELBYTKE_ll, & KSIZELBXR_ll,KSIZELBYR_ll,KSIZELBXSV_ll,KSIZELBYSV_ll, & @@ -23,7 +23,6 @@ SUBROUTINE INI_LB(TPINIFILE,HLUOUT,OLSOURCE,KSV, & USE MODD_IO_ll, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing of nested models LOGICAL, INTENT(IN) :: OLSOURCE ! switch for the source term ! Larger Scale fields (source if OLSOURCE=T, fields at time t-dt if OLSOURCE=F) : INTEGER, INTENT(IN) :: KSV ! number of passive variables @@ -66,7 +65,7 @@ END INTERFACE ! END MODULE MODI_INI_LB ! ############################################################ -SUBROUTINE INI_LB(TPINIFILE,HLUOUT,OLSOURCE,KSV, & +SUBROUTINE INI_LB(TPINIFILE,OLSOURCE,KSV, & KSIZELBX_ll,KSIZELBXU_ll,KSIZELBY_ll,KSIZELBYV_ll, & KSIZELBXTKE_ll,KSIZELBYTKE_ll, & KSIZELBXR_ll,KSIZELBYR_ll,KSIZELBXSV_ll,KSIZELBYSV_ll, & @@ -136,30 +135,29 @@ SUBROUTINE INI_LB(TPINIFILE,HLUOUT,OLSOURCE,KSV, & ! !* 0. DECLARATIONS ! - -USE MODD_NSV -USE MODD_CONF +USE MODD_CH_AEROSOL +USE MODD_CH_M9_n, ONLY: CNAMES, CICNAMES USE MODD_CTURB +USE MODD_CONF USE MODD_DUST +USE MODD_ELEC_DESCR, ONLY: CELECNAMES +USE MODD_ICE_C1R3_DESCR, ONLY: C1R3NAMES USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_SALT -USE MODD_CH_AEROSOL +USE MODD_LG, ONLY: CLGNAMES +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_NSV +USE MODD_PARAMETERS, ONLY: JPHEXT,NMNHNAMELGTMAX USE MODD_PARAM_LIMA +USE MODD_PARAM_LIMA_COLD, ONLY: CLIMA_COLD_NAMES +USE MODD_PARAM_LIMA_WARM, ONLY: CLIMA_WARM_NAMES USE MODD_PARAM_n +USE MODD_RAIN_C2R2_DESCR, ONLY: C2R2NAMES +USE MODD_SALT ! USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG,TYPEREAL -USE MODE_FM USE MODE_FMREAD USE MODE_MSG ! -USE MODD_RAIN_C2R2_DESCR, ONLY: C2R2NAMES -USE MODD_ICE_C1R3_DESCR, ONLY: C1R3NAMES -USE MODD_CH_M9_n, ONLY: CNAMES, CICNAMES -USE MODD_LG, ONLY: CLGNAMES -USE MODD_ELEC_DESCR, ONLY: CELECNAMES -USE MODD_PARAMETERS, ONLY: JPHEXT,NMNHNAMELGTMAX -USE MODD_PARAM_LIMA_WARM, ONLY: CLIMA_WARM_NAMES -USE MODD_PARAM_LIMA_COLD, ONLY: CLIMA_COLD_NAMES IMPLICIT NONE ! !* 0.1 declarations of arguments @@ -167,7 +165,6 @@ IMPLICIT NONE ! ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing of nested models LOGICAL, INTENT(IN) :: OLSOURCE ! switch for the source term ! Larger Scale fields (source if OLSOURCE=T, fields at time t-dt if OLSOURCE=F) : INTEGER, INTENT(IN) :: KSV ! number of passive variables @@ -221,7 +218,7 @@ INTEGER :: JSV,JRR ! Loop index for MOIST AND ! additional scalar variables INTEGER :: IRR ! counter for moist variables INTEGER :: IRESP -INTEGER :: ILUOUT ! Logical unit number associated with HLUOUT +INTEGER :: ILUOUT ! Logical unit number associated with TLUOUT LOGICAL :: GHORELAX_UVWTH ! switch for the horizontal relaxation for U,V,W,TH in the FM file LOGICAL :: GHORELAX_TKE ! switch for the horizontal relaxation for tke in the FM file LOGICAL :: GHORELAX_R, GHORELAX_SV ! switch for the horizontal relaxation @@ -248,7 +245,7 @@ ENDIF !* 1. SOME INITIALIZATIONS ! -------------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! ! !------------------------------------------------------------------------------- diff --git a/src/MNH/ini_lima_cold_mixed.f90 b/src/MNH/ini_lima_cold_mixed.f90 index 8054f4171c4b4e40f5f4b471f68480ce69f7e923..05f3c1b7fc91cfb195eee55f795c542eae15e59d 100644 --- a/src/MNH/ini_lima_cold_mixed.f90 +++ b/src/MNH/ini_lima_cold_mixed.f90 @@ -39,27 +39,26 @@ END MODULE MODI_INI_LIMA_COLD_MIXED !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM USE MODD_CST -USE MODD_REF +USE MODD_LUNIT, ONLY: TLUOUT0 +USE MODD_PARAMETERS USE MODD_PARAM_LIMA -USE MODD_PARAM_LIMA_WARM USE MODD_PARAM_LIMA_COLD USE MODD_PARAM_LIMA_MIXED -USE MODD_PARAMETERS -USE MODD_LUNIT +USE MODD_PARAM_LIMA_WARM +USE MODD_REF ! -USE MODI_LIMA_FUNCTIONS USE MODI_GAMMA USE MODI_GAMMA_INC -USE MODI_RRCOLSS -USE MODI_RZCOLX -USE MODI_RSCOLRG +USE MODI_LIMA_FUNCTIONS +USE MODI_READ_XKER_GWETH USE MODI_READ_XKER_RACCS -USE MODI_READ_XKER_SDRYG USE MODI_READ_XKER_RDRYG +USE MODI_READ_XKER_SDRYG USE MODI_READ_XKER_SWETH -USE MODI_READ_XKER_GWETH +USE MODI_RRCOLSS +USE MODI_RSCOLRG +USE MODI_RZCOLX ! IMPLICIT NONE ! @@ -92,7 +91,6 @@ REAL :: ZFDINFTY ! Factor used to define the "infinite" diameter ! ! INTEGER :: ILUOUT0 ! Logical unit number for output-listing -INTEGER :: IRESP ! Return code of FM-routines LOGICAL :: GFLAG ! Logical flag for printing the constatnts on the output ! listing REAL :: ZCONC_MAX ! Maximal concentration for snow @@ -119,8 +117,7 @@ REAL :: ZFAC_ZRNIC ! Zrnic factor used to decrease Long Kernels !------------------------------------------------------------------------------- ! ! -! Initialize output listing -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) +ILUOUT0 = TLUOUT0%NLU ! ! !* 1. CHARACTERISTICS OF THE SPECIES diff --git a/src/MNH/ini_ls.f90 b/src/MNH/ini_ls.f90 index 2862e1f11ae863c13243258f8fe7c13a6f8d17c0..718e918cf4a03ad94bfc2e3a440aa1c4451414ef 100644 --- a/src/MNH/ini_ls.f90 +++ b/src/MNH/ini_ls.f90 @@ -14,7 +14,7 @@ ! INTERFACE ! - SUBROUTINE INI_LS(TPINIFILE,HLUOUT,HGETRVM,OLSOURCE, & + SUBROUTINE INI_LS(TPINIFILE,HGETRVM,OLSOURCE, & PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM, & PDRYMASSS, & PLSUMM,PLSVMM,PLSWMM,PLSTHMM,PLSRVMM,PDRYMASST,PLENG, & @@ -23,7 +23,6 @@ INTERFACE USE MODD_IO_ll, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! Name for output-listing of nested models CHARACTER (LEN=*), INTENT(IN) :: HGETRVM ! GET indicator LOGICAL, INTENT(IN) :: OLSOURCE ! Switch for the source term ! Larger Scale fields (source if OLSOURCE=T, fields at time t-dt if OLSOURCE=F) : @@ -46,7 +45,7 @@ END MODULE MODI_INI_LS ! ! ! ############################################################ - SUBROUTINE INI_LS(TPINIFILE,HLUOUT,HGETRVM,OLSOURCE, & + SUBROUTINE INI_LS(TPINIFILE,HGETRVM,OLSOURCE, & PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM, & PDRYMASSS, & PLSUMM,PLSVMM,PLSWMM,PLSTHMM,PLSRVMM,PDRYMASST,PLENG, & @@ -95,8 +94,8 @@ USE MODD_CONF USE MODD_IO_ll, ONLY: TFILEDATA USE MODD_TIME ! for type DATE_TIME ! -USE MODE_FM USE MODE_FMREAD +USE MODE_MSG ! IMPLICIT NONE ! @@ -105,7 +104,6 @@ IMPLICIT NONE ! ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! Name for output-listing of nested models CHARACTER (LEN=*), INTENT(IN) :: HGETRVM ! GET indicator LOGICAL, INTENT(IN) :: OLSOURCE ! Switch for the source term ! Larger Scale fields (source if OLSOURCE=T, fields at time t-dt if OLSOURCE=F) : @@ -123,8 +121,7 @@ LOGICAL, INTENT(IN), OPTIONAL :: OSTEADY_DMASS ! Md ev ! !* 0.2 declarations of local variables ! -INTEGER :: IRESP -INTEGER :: ILUOUT ! Logical unit number associated with HLUOUT +!NONE ! !------------------------------------------------------------------------------- ! @@ -133,7 +130,7 @@ INTEGER :: ILUOUT ! Logical unit number associated wit !* 1. SOME INITIALIZATIONS ! -------------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +!NONE ! ! !------------------------------------------------------------------------------- @@ -165,17 +162,15 @@ IF (OLSOURCE) THEN PLSVM(:,:,:) = (PLSVM(:,:,:) - PLSVMM(:,:,:)) / PLENG PLSWM(:,:,:) = (PLSWM(:,:,:) - PLSWMM(:,:,:)) / PLENG PLSTHM(:,:,:)= (PLSTHM(:,:,:) - PLSTHMM(:,:,:)) / PLENG - ELSE - WRITE(ILUOUT,*) 'MISSING argument in INI_LS' - STOP + ELSE + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LS','missing argument') ENDIF ! LS-vapor IF (HGETRVM == 'READ') THEN IF (PRESENT(PLSRVMM)) THEN PLSRVM(:,:,:) = (PLSRVM(:,:,:) - PLSRVMM(:,:,:)) / PLENG ELSE - WRITE(ILUOUT,*) 'MISSING argument PLSRVMM in INI_LS' - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LS','missing argument (PLSRVMM)') ENDIF ENDIF ! Dry mass diff --git a/src/MNH/ini_micron.f90 b/src/MNH/ini_micron.f90 index c66a5673d69e143c1b8d3ddc456f38adfac03ad4..064c97c94c3a1d60c577ec00b31914f50e14de51 100644 --- a/src/MNH/ini_micron.f90 +++ b/src/MNH/ini_micron.f90 @@ -286,25 +286,23 @@ END IF ! IF (CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'KHKO') THEN IF (CGETCLOUD=='READ') THEN - CALL CLEAN_CONC_RAIN_C2R2 (CLUOUT,XRT,XSVT(:,:,:,NSV_C2R2BEG:NSV_C2R2END)) + CALL CLEAN_CONC_RAIN_C2R2 (XRT,XSVT(:,:,:,NSV_C2R2BEG:NSV_C2R2END)) ELSE IF (CGETCLOUD=='INI1'.OR.CGETCLOUD=='INI2') THEN - CALL SET_CONC_RAIN_C2R2 (CLUOUT,CGETCLOUD,XRHODREF,& + CALL SET_CONC_RAIN_C2R2 (CGETCLOUD,XRHODREF,& &XRT,XSVT(:,:,:,NSV_C2R2BEG:NSV_C2R2END)) ENDIF IF (CCLOUD == 'C3R5' ) THEN IF (CGETCLOUD=='READ') THEN - CALL CLEAN_CONC_ICE_C1R3 (CLUOUT,XRT,XSVT(:,:,:,NSV_C2R2BEG:NSV_C1R3END)) + CALL CLEAN_CONC_ICE_C1R3 (XRT,XSVT(:,:,:,NSV_C2R2BEG:NSV_C1R3END)) ELSE - CALL SET_CONC_ICE_C1R3 (CLUOUT,XRHODREF,& - &XRT,XSVT(:,:,:,NSV_C2R2BEG:NSV_C1R3END)) + CALL SET_CONC_ICE_C1R3 (XRHODREF,XRT,XSVT(:,:,:,NSV_C2R2BEG:NSV_C1R3END)) ENDIF ENDIF ENDIF ! IF (CCLOUD == 'LIMA') THEN IF (CGETCLOUD/='READ') THEN - CALL SET_CONC_LIMA(CLUOUT,CGETCLOUD,XRHODREF,& - XRT,XSVT(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END)) + CALL SET_CONC_LIMA(CGETCLOUD,XRHODREF,XRT,XSVT(:,:,:,NSV_LIMA_BEG:NSV_LIMA_END)) END IF END IF ! diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index 7b097121f86ba66d6a1052b004e0b68e6fe1041e..4d0fd1eb56e8dfb073599b788e216bc359af2381 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -76,7 +76,6 @@ END MODULE MODI_INI_MODEL_n !! !! EXTERNAL !! -------- -!! FMLOOK : to retrieve a logical unit number associated with a file !! FMREAD : to read a LFIFM file !! FMFREE : to release a logical unit number !! SET_DIM : to initialize dimensions @@ -283,7 +282,7 @@ USE MODE_ll USE MODD_ARGSLIST_ll, ONLY : LIST_ll USE MODE_IO_ll USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST -USE MODE_FM +USE MODE_FM, ONLY: IO_FILE_OPEN_ll USE MODE_FMREAD USE MODE_GATHER_ll USE MODE_MSG @@ -533,7 +532,7 @@ NULLIFY(TZINITHALO3D_ll) !* 1. RETRIEVE LOGICAL UNIT NUMBER ! ---------------------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! CALL IO_READ_FIELD(TPINIFILE,'MASDEV',IMASDEV) !------------------------------------------------------------------------------- @@ -964,8 +963,8 @@ ELSEIF( L2D ) THEN ! 2D case ALLOCATE(XLBYRM(0,0,0,0)) ALLOCATE(XLBYSVM(0,0,0,0)) ! - CALL GET_SIZEX_LB(HLUOUT,NIMAX_ll,NJMAX_ll,NRIMX, & - IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, & + CALL GET_SIZEX_LB(NIMAX_ll,NJMAX_ll,NRIMX, & + IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, & IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2) ! IF ( LHORELAX_UVWTH ) THEN @@ -1028,12 +1027,12 @@ ELSEIF( L2D ) THEN ! 2D case ELSE ! 3D case ! ! - CALL GET_SIZEX_LB(HLUOUT,NIMAX_ll,NJMAX_ll,NRIMX, & - IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, & - IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2) - CALL GET_SIZEY_LB(HLUOUT,NIMAX_ll,NJMAX_ll,NRIMY, & - IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV, & - IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2) + CALL GET_SIZEX_LB(NIMAX_ll,NJMAX_ll,NRIMX, & + IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, & + IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2) + CALL GET_SIZEY_LB(NIMAX_ll,NJMAX_ll,NRIMY, & + IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV, & + IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2) ! ! check if local domain not to small for NRIMX NRIMY ! @@ -1614,7 +1613,7 @@ IF (CCLOUD=='LIMA') CALL INIT_AEROSOL_PROPERTIES ! -------------------------------- ! CALL MPPDB_CHECK3D(XUT,"INI_MODEL_N-before read_field::XUT",PRECISION) -CALL READ_FIELD(TPINIFILE,HLUOUT,IMASDEV, IIU,IJU,IKU,XTSTEP, & +CALL READ_FIELD(TPINIFILE,IMASDEV, IIU,IJU,IKU,XTSTEP, & CGETTKET,CGETRVT,CGETRCT,CGETRRT,CGETRIT,CGETCIT, & CGETRST,CGETRGT,CGETRHT,CGETSVT,CGETSRCT,CGETSIGS,CGETCLDFR, & CGETBL_DEPTH,CGETSBL_DEPTH,CGETPHC,CGETPHR,CUVW_ADV_SCHEME, & @@ -1646,7 +1645,7 @@ CALL READ_FIELD(TPINIFILE,HLUOUT,IMASDEV, IIU,IJU,IKU,XTSTEP, & ! --------------------------- ! ! -CALL SET_REF(KMI,TPINIFILE,HLUOUT, & +CALL SET_REF(KMI,TPINIFILE, & XZZ,XZHAT,ZJ,XDXX,XDYY,CLBCX,CLBCY, & XREFMASS,XMASS_O_PHI0,XLINMASS, & XRHODREF,XTHVREF,XRVREF,XEXNREF,XRHODJ ) @@ -1899,7 +1898,7 @@ IF (LLG .AND. LINIT_LG .AND. CPROGRAM=='MESONH') & !* 16. INITIALIZE THE PARAMETERS FOR THE DYNAMICS ! ------------------------------------------ ! -CALL INI_DYNAMICS(HLUOUT,XLON,XLAT,XRHODJ,XTHVREF,XMAP,XZZ,XDXHAT,XDYHAT, & +CALL INI_DYNAMICS(XLON,XLAT,XRHODJ,XTHVREF,XMAP,XZZ,XDXHAT,XDYHAT, & XZHAT,CLBCX,CLBCY,XTSTEP, & LVE_RELAX,LVE_RELAX_GRD,LHORELAX_UVWTH,LHORELAX_RV, & LHORELAX_RC,LHORELAX_RR,LHORELAX_RI,LHORELAX_RS,LHORELAX_RG, & @@ -2191,27 +2190,27 @@ DEALLOCATE(XSPOWATM) !* 23. BALLOON and AIRCRAFT initializations ! ------------------------------------ ! -CALL INI_AIRCRAFT_BALLOON(TPINIFILE,CLUOUT,XTSTEP, TDTSEG, XSEGLEN, NRR, NSV, & - IKU,CTURB=="TKEL" , & - XLATORI, XLONORI ) +CALL INI_AIRCRAFT_BALLOON(TPINIFILE,XTSTEP, TDTSEG, XSEGLEN, NRR, NSV, & + IKU,CTURB=="TKEL" , & + XLATORI, XLONORI ) ! !------------------------------------------------------------------------------- ! !* 24. STATION initializations ! ----------------------- ! -CALL INI_SURFSTATION_n(CLUOUT,XTSTEP, TDTSEG, XSEGLEN, NRR, NSV, & - CTURB=="TKEL" , & - XLATORI, XLONORI ) +CALL INI_SURFSTATION_n(XTSTEP, TDTSEG, XSEGLEN, NRR, NSV, & + CTURB=="TKEL" , & + XLATORI, XLONORI ) ! !------------------------------------------------------------------------------- ! !* 25. PROFILER initializations ! ------------------------ ! -CALL INI_POSPROFILER_n(CLUOUT,XTSTEP, TDTSEG, XSEGLEN, NRR, NSV, & - CTURB=="TKEL", & - XLATORI, XLONORI ) +CALL INI_POSPROFILER_n(XTSTEP, TDTSEG, XSEGLEN, NRR, NSV, & + CTURB=="TKEL", & + XLATORI, XLONORI ) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/ini_one_wayn.f90 b/src/MNH/ini_one_wayn.f90 index 6ad02eb6c14af831b3765db6cf7ee8be4fd7edbb..922a905605aedef693a66c55a74824f19d11ce3c 100644 --- a/src/MNH/ini_one_wayn.f90 +++ b/src/MNH/ini_one_wayn.f90 @@ -349,7 +349,7 @@ IF ( HCLOUD=="C2R2" .OR. HCLOUD=="KHKO" ) THEN ELSE IF (CCLOUD == "KESS" ) THEN ZINIT_TYPE = "INI2" END IF - CALL SET_CONC_RAIN_C2R2 (HLUOUT,ZINIT_TYPE,XRHODREF,XRT,ZCONCM) + CALL SET_CONC_RAIN_C2R2(ZINIT_TYPE,XRHODREF,XRT,ZCONCM) DO JSV=1,3 CALL SET_LSFIELD_1WAY_ll(ZCONCM(:,:,:,JSV),& &ZTSVM(:,:,:,JSV-1+NSV_C2R2BEG_A(KMI)),KMI) @@ -375,13 +375,13 @@ IF (HCLOUD=="C3R5" ) THEN ELSE IF (CCLOUD == "KESS" ) THEN ZINIT_TYPE = "INI2" END IF - CALL SET_CONC_RAIN_C2R2 (HLUOUT,ZINIT_TYPE,XRHODREF,XRT,ZCONCM) + CALL SET_CONC_RAIN_C2R2(ZINIT_TYPE,XRHODREF,XRT,ZCONCM) DO JSV=1,3 CALL SET_LSFIELD_1WAY_ll(ZCONCM(:,:,:,JSV),& &ZTSVM(:,:,:,JSV-1+NSV_C2R2BEG_A(KMI)),KMI) ENDDO ZINIT_TYPE="INI3" - CALL SET_CONC_ICE_C1R3 (HLUOUT,XRHODREF,XRT,ZCONCM) + CALL SET_CONC_ICE_C1R3 (XRHODREF,XRT,ZCONCM) DO JSV=4,5 CALL SET_LSFIELD_1WAY_ll(ZCONCM(:,:,:,JSV), & ZTSVM(:,:,:,JSV-4+NSV_C1R3BEG_A(KMI)),KMI) @@ -410,7 +410,7 @@ IF (HCLOUD=="LIMA" ) THEN ELSE ZINIT_TYPE = "NONE" END IF - CALL SET_CONC_LIMA (HLUOUT,ZINIT_TYPE,XRHODREF,XRT,ZCONCM) + CALL SET_CONC_LIMA (ZINIT_TYPE,XRHODREF,XRT,ZCONCM) DO JSV=1,NSV_LIMA_A(KMI) CALL SET_LSFIELD_1WAY_ll(ZCONCM(:,:,:,JSV),& &ZTSVM(:,:,:,JSV-1+NSV_LIMA_BEG_A(KMI)),KMI) @@ -440,7 +440,7 @@ IF (OUSECHAQ) THEN IF (.NOT.(LUSECHAQ)) THEN ALLOCATE(ZCHEMM(SIZE(XRHODJ,1),SIZE(XRHODJ,2),SIZE(XRHODJ,3),& NSV_CHEM_A(KMI))) - CALL SET_CHEMAQ_1WAY(HLUOUT,XRHODREF,& + CALL SET_CHEMAQ_1WAY(XRHODREF,& XSVT(:,:,:,NSV_CHEMBEG_A(KDAD):NSV_CHEMEND_A(KDAD)),ZCHEMM) DO JSV=1,NSV_CHEM_A(KMI) CALL SET_LSFIELD_1WAY_ll(ZCHEMM(:,:,:,JSV),& diff --git a/src/MNH/ini_posprofilern.f90 b/src/MNH/ini_posprofilern.f90 index e79b9247232626d5dd0c850003db9f5372a4e1b3..b07057047688e718e3c17cb2f148e4775389c577 100644 --- a/src/MNH/ini_posprofilern.f90 +++ b/src/MNH/ini_posprofilern.f90 @@ -14,13 +14,12 @@ MODULE MODI_INI_POSPROFILER_n ! INTERFACE ! - SUBROUTINE INI_POSPROFILER_n(HLUOUT, & - PTSTEP, TPDTSEG, PSEGLEN, & - KRR, KSV, OUSETKE, & - PLATOR, PLONOR ) + SUBROUTINE INI_POSPROFILER_n(PTSTEP, TPDTSEG, PSEGLEN, & + KRR, KSV, OUSETKE, & + PLATOR, PLONOR ) ! USE MODD_TYPE_DATE -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! output listing +! REAL, INTENT(IN) :: PTSTEP ! time step TYPE(DATE_TIME), INTENT(IN) :: TPDTSEG ! segment date and time REAL, INTENT(IN) :: PSEGLEN ! segment length @@ -38,12 +37,11 @@ END INTERFACE ! END MODULE MODI_INI_POSPROFILER_n ! -! ############################################################### - SUBROUTINE INI_POSPROFILER_n(HLUOUT, & - PTSTEP, TPDTSEG, PSEGLEN, & - KRR, KSV, OUSETKE, & - PLATOR, PLONOR ) -! ############################################################### +! ######################################################## + SUBROUTINE INI_POSPROFILER_n(PTSTEP, TPDTSEG, PSEGLEN, & + KRR, KSV, OUSETKE, & + PLATOR, PLONOR ) +! ######################################################## ! ! !!**** *INI_POSPROFILER_n* - @@ -78,17 +76,17 @@ END MODULE MODI_INI_POSPROFILER_n !* 0. DECLARATIONS ! ------------ ! -USE MODD_PARAMETERS -USE MODD_TYPE_PROFILER -USE MODD_TYPE_DATE -USE MODD_PROFILER_n -USE MODD_GRID_n -USE MODD_DYN_n USE MODD_CONF +USE MODD_DYN_n USE MODD_GRID +USE MODD_GRID_n +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_PARAMETERS +USE MODD_PROFILER_n USE MODD_RADIATIONS_n, ONLY: NAER +USE MODD_TYPE_PROFILER +USE MODD_TYPE_DATE ! -USE MODE_FM, ONLY : FMLOOK_ll USE MODE_GRIDPROJ USE MODE_IO_ll USE MODE_ll @@ -102,7 +100,6 @@ IMPLICIT NONE !* 0.1 declarations of arguments ! ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! output listing REAL, INTENT(IN) :: PTSTEP ! time step TYPE(DATE_TIME), INTENT(IN) :: TPDTSEG ! segment date and time REAL, INTENT(IN) :: PSEGLEN ! segment length @@ -118,11 +115,10 @@ REAL, INTENT(IN) :: PLONOR ! longitude of origine point ! INTEGER :: ISTORE ! number of storage instants INTEGER :: ILUOUT ! logical unit -INTEGER :: IRESP ! return code INTEGER :: IKU ! ! !---------------------------------------------------------------------------- -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU !---------------------------------------------------------------------------- ! !* 1. Default values diff --git a/src/MNH/ini_prog_var.f90 b/src/MNH/ini_prog_var.f90 index b8c91e3b505f22cde6e650b44752ef39c9a229af..1545a64d670890a702d963be1d00e5c72a57a402 100644 --- a/src/MNH/ini_prog_var.f90 +++ b/src/MNH/ini_prog_var.f90 @@ -103,41 +103,42 @@ END MODULE MODI_INI_PROG_VAR ! ------------ ! ! -USE MODD_CONF ! declaration modules +USE MODD_CH_AEROSOL +USE MODD_CH_M9_n, ONLY : NEQ, CNAMES +USE MODD_CH_MNHC_n, ONLY : LUSECHEM, LUSECHAQ, LUSECHIC, LCH_PH +USE MODD_CONF USE MODD_CONF_n USE MODD_DIM_n +USE MODD_DUST USE MODD_DYN_n -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_TURB_n -USE MODD_PARAM_n -USE MODD_LUNIT USE MODD_FIELD_n +USE MODD_IO_ll, ONLY: TFILEDATA USE MODD_LSFIELD_n -USE MODD_PARAMETERS +USE MODD_LUNIT +USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_NSV -USE MODD_CH_M9_n, ONLY : NEQ, CNAMES -USE MODD_CH_MNHC_n, ONLY : LUSECHEM, LUSECHAQ, LUSECHIC, LCH_PH -USE MODD_CH_AEROSOL -USE MODD_DUST +USE MODD_PARAM_n +USE MODD_PARAMETERS USE MODD_SALT +USE MODD_TURB_n ! -USE MODN_DUST -USE MODN_SALT -USE MODN_CH_ORILAM -! -USE MODI_PGDFILTER -USE MODI_CH_INIT_SCHEME_n -USE MODI_CH_AER_INIT_SOA -! +USE MODE_IO_ll +USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST USE MODE_FIELD, ONLY : TFIELDDATA,TYPEREAL USE MODE_FM -USE MODE_MODELN_HANDLER USE MODE_FMREAD -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST +USE MODE_MODELN_HANDLER USE MODE_MSG USE MODE_POS ! +USE MODI_CH_AER_INIT_SOA +USE MODI_CH_INIT_SCHEME_n +USE MODI_PGDFILTER +! +USE MODN_CH_ORILAM +USE MODN_DUST +USE MODN_SALT +! IMPLICIT NONE ! !* 0.1 declaration of arguments @@ -172,7 +173,7 @@ TYPE(TFILEDATA),POINTER :: TZCHEMFILE => NULL() ! get model index IMI = GET_CURRENT_MODEL_INDEX() ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! CALL GET_INDICE_ll (IIB,IJB,IIE,IJE) IIU=SIZE(XWT,1) diff --git a/src/MNH/ini_rain_c2r2.f90 b/src/MNH/ini_rain_c2r2.f90 index a35a5ac6426a30eb231109f451f2e9d1faa0f7f9..51fdf6cb764e8c42716e544be23fa1076a192ecd 100644 --- a/src/MNH/ini_rain_c2r2.f90 +++ b/src/MNH/ini_rain_c2r2.f90 @@ -102,17 +102,15 @@ END MODULE MODI_INI_RAIN_C2R2 ! ------------ ! USE MODD_CST -USE MODD_REF +USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAM_C2R2 +USE MODD_PARAMETERS USE MODD_RAIN_C2R2_DESCR USE MODD_RAIN_C2R2_KHKO_PARAM -USE MODD_PARAMETERS -USE MODD_LUNIT +USE MODD_REF ! -USE MODI_HYPGEO USE MODI_GAMMA -! -USE MODE_FM +USE MODI_HYPGEO ! IMPLICIT NONE ! @@ -153,7 +151,6 @@ REAL :: ZSMIN, ZSMAX ! Minimal and maximal supersaturation used to ! ! INTEGER :: ILUOUT0 ! Logical unit number for output-listing -INTEGER :: IRESP ! Return code of FM-routines LOGICAL :: GFLAG ! Logical flag for printing the constatnts on the output ! listing ! @@ -173,7 +170,7 @@ LOGICAL :: GFLAG ! Logical flag for printing the constatnts on the output ! 1. INTIALIZE OUTPUT LISTING AND COMPUTE KSPLITR FOR EACH MODEL ! ----------------------------------------------------------- ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) +ILUOUT0 = TLUOUT0%NLU ! !* 1.1 Set the raindrop maximum fall velocity ! @@ -579,7 +576,6 @@ XCRER = 1.0/ (ZGAMR(6) * XAR**(2.0/3.0)) ! GFLAG = .TRUE. IF (GFLAG) THEN - CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) WRITE(UNIT=ILUOUT0,FMT='(" Summary of the cloud particule characteristics")') WRITE(UNIT=ILUOUT0,FMT='(" CLOUD")') WRITE(UNIT=ILUOUT0,FMT='(" masse: A=",E13.6," B=",E13.6)') & diff --git a/src/MNH/ini_segn.f90 b/src/MNH/ini_segn.f90 index 6dd30005fe55d8a7316ec818e286651fca2ad0ce..59375f20cbd8e416da9051a0d160952e82c43f3a 100644 --- a/src/MNH/ini_segn.f90 +++ b/src/MNH/ini_segn.f90 @@ -357,7 +357,7 @@ END IF ! YDESFM=TRIM(ADJUSTL(YINIFILE))//'.des' ! -CALL READ_DESFM_n(KMI,YDESFM,HLUOUT,YCONF,GFLAT,GUSERV,GUSERC, & +CALL READ_DESFM_n(KMI,YDESFM,YCONF,GFLAT,GUSERV,GUSERC, & GUSERR,GUSERI,GUSECI,GUSERS,GUSERG,GUSERH,GUSECHEM,GUSECHAQ,& GUSECHIC,GCH_PH,GCH_CONV_LINOX,GSALT,GDEPOS_SLT,GDUST, & GDEPOS_DST, GCHTRANS, GORILAM, & @@ -447,7 +447,7 @@ END IF ! routine which read related informations in the EXSEG descriptor in order to ! check coherence between both informations. ! -CALL READ_EXSEG_n(KMI,YEXSEG,HLUOUT,YCONF,GFLAT,GUSERV,GUSERC, & +CALL READ_EXSEG_n(KMI,YEXSEG,YCONF,GFLAT,GUSERV,GUSERC, & GUSERR,GUSERI,GUSECI,GUSERS,GUSERG,GUSERH,GUSECHEM, & GUSECHAQ,GUSECHIC,GCH_PH, & GCH_CONV_LINOX,GSALT,GDEPOS_SLT,GDUST,GDEPOS_DST,GCHTRANS, & diff --git a/src/MNH/ini_sizen.f90 b/src/MNH/ini_sizen.f90 index 7532ff651d27bb907e39762bd24fe729059072a1..08b4121da1e0ff8bde4e98e1933fac8618bc8817 100644 --- a/src/MNH/ini_sizen.f90 +++ b/src/MNH/ini_sizen.f90 @@ -105,31 +105,25 @@ END MODULE MODI_INI_SIZE_n !* 0. DECLARATIONS ! ------------ ! +USE MODD_CONF, ONLY: CCONF, LCARTESIAN, NVERB, LTHINSHELL, NHALO, CSPLIT, & + L1D, L2D, LPACK +USE MODD_CONFZ, ONLY: NZ_PROC +USE MODD_DIM_n, ONLY: NIMAX_ll, NJMAX_ll, NKMAX +USE MODD_DYN, ONLY: LCORIO +USE MODD_IO_ll, ONLY: GSMONOPROC, TFILEDATA +USE MODD_LBC_n, ONLY: CLBCX, CLBCY +USE MODD_LUNIT_n, ONLY: CLUOUT, CINIFILE, CINIFILEPGD, TLUOUT +USE MODD_NESTING, ONLY: CMY_NAME, CDAD_NAME, NDAD, NDXRATIO_ALL, NDYRATIO_ALL, & + NXOR_ALL, NYOR_ALL, NXEND_ALL,NYEND_ALL USE MODD_PARAMETERS, ONLY: JPMODELMAX, JPHEXT,JPVEXT -USE MODD_CONF, ONLY: CCONF, LCARTESIAN, NVERB, LTHINSHELL, NHALO, CSPLIT, & - L1D, L2D, LPACK -!JUAN Z_SPLITTING -USE MODD_CONFZ, ONLY: NZ_PROC -!JUAN Z_SPLITTING -USE MODD_DYN, ONLY: LCORIO -USE MODD_NESTING, ONLY: CMY_NAME, CDAD_NAME, NDAD, NDXRATIO_ALL, NDYRATIO_ALL, & - NXOR_ALL, NYOR_ALL, NXEND_ALL,NYEND_ALL -USE MODD_DIM_n, ONLY: NIMAX_ll, NJMAX_ll, NKMAX -USE MODD_LBC_n, ONLY: CLBCX, CLBCY -USE MODD_LUNIT_n, ONLY: CLUOUT, CINIFILE,CINIFILEPGD -USE MODD_IO_ll, ONLY : GSMONOPROC, TFILEDATA ! -USE MODE_ll -USE MODE_IO_ll +USE MODE_FM, ONLY: SET_FMPACK_ll USE MODE_FMREAD -USE MODE_FM +USE MODE_IO_ll +USE MODE_ll USE MODE_MSG USE MODE_POS -! -!JUAN USE MODE_SPLITTINGZ_ll -!JUAN -! ! IMPLICIT NONE ! @@ -151,7 +145,7 @@ INTEGER :: IJPHEXT !* 1. RETRIEVE LOGICAL UNIT NUMBER AND INITIALIZE MODD_LUNIT_n ! -------------------------------------------------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU CLUOUT = HLUOUT CINIFILEPGD=HINIFILEPGD ! diff --git a/src/MNH/ini_spectren.f90 b/src/MNH/ini_spectren.f90 index 64af9982fd301435df0be3f67f5d556abb9eab28..788ec923f7cce4b4470a0b6ea9a3bd95f1a698dc 100644 --- a/src/MNH/ini_spectren.f90 +++ b/src/MNH/ini_spectren.f90 @@ -41,101 +41,93 @@ END MODULE MODI_INI_SPECTRE_n ! !* 0. DECLARATIONS ! ------------ -USE MODE_ll -USE MODD_ARGSLIST_ll, ONLY : LIST_ll -USE MODE_IO_ll -USE MODE_FM -USE MODE_FMREAD -USE MODE_GATHER_ll -USE MODE_MSG -USE MODE_TYPE_ZDIFFU ! -USE MODD_NSV -USE MODD_PARAMETERS +USE MODD_ADV_n +USE MODD_BIKHARDT_n +USE MODD_BUDGET +USE MODD_CH_AERO_n, ONLY: XSOLORG,XMI +USE MODD_CH_AEROSOL, ONLY: LORILAM +USE MODD_CH_MNHC_n, ONLY: LUSECHEM, LUSECHAQ, LUSECHIC, LCH_INIT_FIELD, & + CCHEM_INPUT_FILE, LCH_CONV_LINOX, & + XCH_TUV_DOBNEW, LCH_PH +USE MODD_CH_PH_n +USE MODD_CLOUD_MF_n USE MODD_CST USE MODD_CONF +USE MODD_CONF_n +USE MODD_CTURB +USE MODD_CURVCOR_n +USE MODD_DEEP_CONVECTION_n +USE MODD_DIAG_FLAG, ONLY: LCHEMDIAG +USE MODD_DIM_n +USE MODD_DRAGTREE USE MODD_DUST USE MODD_DYN +USE MODD_DYN_n USE MODD_DYNZD +USE MODD_DYNZD_n +USE MODD_ELEC_n, ONLY: XCION_POS_FW, XCION_NEG_FW +USE MODD_FIELD_n USE MODD_FRC -USE MODD_IO_ll, ONLY : LIOCDF4,LLFIOUT,TFILEDATA -USE MODD_REF -USE MODD_SERIES, ONLY: LSERIES -USE MODD_TIME -USE MODD_TURB_CLOUD, ONLY: NMODEL_CLOUD, CTURBLEN_CLOUD,XCEI +USE MODD_FRC_n +USE MODD_GET_n +USE MODD_GRID, ONLY: XLONORI,XLATORI +USE MODD_GRID_n +USE MODD_IO_ll, ONLY: LIOCDF4,LLFIOUT,TFILEDATA +USE MODD_LBC_n +USE MODD_LSFIELD_n +USE MODD_LUNIT_n, ONLY: COUTFILE, TLUOUT +USE MODD_MEAN_FIELD +USE MODD_MEAN_FIELD_n +USE MODD_METRICS_n USE MODD_NESTING +USE MODD_NSV +USE MODD_NUDGING_n, ONLY: LNUDGING +USE MODD_OUT_n +USE MODD_PARAMETERS +USE MODD_PARAM_KAFR_n +USE MODD_PARAM_MFSHALL_n +USE MODD_PARAM_n +USE MODD_PARAM_RAD_n, ONLY: CLW, CAER USE MODD_PASPOL -USE MODD_DRAGTREE -USE MODD_METRICS_n -USE MODD_DYN_n -USE MODD_DYNZD_n -USE MODD_FIELD_n +USE MODD_PASPOL_n USE MODD_PAST_FIELD_n -USE MODD_MEAN_FIELD_n -USE MODD_MEAN_FIELD -USE MODD_ADV_n -USE MODD_LSFIELD_n -USE MODD_GRID_n -USE MODD_GRID, ONLY: XLONORI,XLATORI -USE MODD_TIME_n -USE MODD_REF_n -USE MODD_FRC_n -USE MODD_CURVCOR_n -USE MODD_DIM_n -USE MODD_BUDGET USE MODD_RADIATIONS_n +USE MODD_REF +USE MODD_REF_n +USE MODD_SERIES, ONLY: LSERIES USE MODD_SHADOWS_n -USE MODD_PARAM_RAD_n, ONLY : CLW, CAER -USE MODD_VAR_ll, ONLY : IP -! -USE MODD_STAND_ATM, ONLY : XSTROATM, XSMLSATM, XSMLWATM, XSPOSATM, XSPOWATM -USE MODD_CH_MNHC_n, ONLY : LUSECHEM, LUSECHAQ, LUSECHIC, LCH_INIT_FIELD, & - CCHEM_INPUT_FILE, LCH_CONV_LINOX, & - XCH_TUV_DOBNEW, LCH_PH -USE MODD_CH_PH_n -USE MODD_CH_AEROSOL, ONLY : LORILAM -USE MODD_CH_AERO_n, ONLY : XSOLORG,XMI -USE MODD_PARAM_KAFR_n -USE MODD_PARAM_MFSHALL_n -USE MODD_DEEP_CONVECTION_n -USE MODD_OUT_n -USE MODD_BIKHARDT_n -USE MODD_NUDGING_n, ONLY : LNUDGING -USE MODD_DIAG_FLAG, ONLY : LCHEMDIAG -USE MODD_CLOUD_MF_n -USE MODD_NSV -! -USE MODD_ELEC_n, ONLY : XCION_POS_FW, XCION_NEG_FW - -USE MODD_LUNIT_n -USE MODD_CONF_n -USE MODD_GET_n +USE MODD_SPECTRE +USE MODD_STAND_ATM, ONLY: XSTROATM, XSMLSATM, XSMLWATM, XSPOSATM, XSPOWATM +USE MODD_TIME +USE MODD_TIME_n +USE MODD_TURB_CLOUD, ONLY: NMODEL_CLOUD, CTURBLEN_CLOUD,XCEI USE MODD_TURB_n -USE MODD_CTURB -USE MODD_LBC_n -USE MODD_PASPOL_n +USE MODD_VAR_ll, ONLY: IP ! +USE MODD_ARGSLIST_ll, ONLY: LIST_ll +USE MODE_FMREAD +USE MODE_GATHER_ll +USE MODE_IO_ll +USE MODE_ll +USE MODE_MODELN_HANDLER +USE MODE_MSG +USE MODE_SPLITTINGZ_ll, ONLY: GET_DIM_EXTZ_ll +USE MODE_TYPE_ZDIFFU ! -USE MODI_SET_GRID -USE MODI_METRICS -USE MODI_UPDATE_METRICS -USE MODI_SET_REF -USE MODI_INI_DYNAMICS -USE MODI_INI_CPL USE MODI_INI_BIKHARDT_n +USE MODI_INI_CPL +USE MODI_INI_DYNAMICS USE MODI_INI_ONE_WAY_n +USE MODI_INI_SPAWN_LS_n USE MODI_GET_SIZEX_LB USE MODI_GET_SIZEY_LB -USE MODI_INI_SPAWN_LS_n -USE MODI_UPDATE_NSV -! -USE MODD_PARAM_n -USE MODE_MODELN_HANDLER -USE MODE_SPLITTINGZ_ll , ONLY : GET_DIM_EXTZ_ll - +USE MODI_SET_GRID +USE MODI_METRICS +USE MODI_SET_REF USE MODI_TEMPORAL_DIST - -USE MODD_SPECTRE +USE MODI_UPDATE_METRICS +USE MODI_UPDATE_NSV ! IMPLICIT NONE ! @@ -149,7 +141,6 @@ TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file !* 0.2 declarations of local variables ! INTEGER :: JSV ! Loop index -INTEGER :: IRESP ! Return code of FM routines INTEGER :: ILUOUT ! Logical unit number of output-listing INTEGER :: IIU ! Upper dimension in x direction (local) INTEGER :: IJU ! Upper dimension in y direction (local) @@ -219,7 +210,7 @@ NULLIFY(TZINITHALO3D_ll) !* 1. RETRIEVE LOGICAL UNIT NUMBER ! ---------------------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! !------------------------------------------------------------------------------- ! @@ -437,9 +428,9 @@ ELSEIF( L2D ) THEN ! 2D case ALLOCATE(XLBYRM(0,0,0,0)) ALLOCATE(XLBYSVM(0,0,0,0)) ! - CALL GET_SIZEX_LB(HLUOUT,NIMAX_ll,NJMAX_ll,NRIMX, & - IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, & - IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2) + CALL GET_SIZEX_LB(NIMAX_ll,NJMAX_ll,NRIMX, & + IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, & + IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2) ! IF ( LHORELAX_UVWTH ) THEN NSIZELBX_ll=2*NRIMX+2 @@ -501,12 +492,12 @@ ELSEIF( L2D ) THEN ! 2D case ELSE ! 3D case ! ! - CALL GET_SIZEX_LB(HLUOUT,NIMAX_ll,NJMAX_ll,NRIMX, & - IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, & - IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2) - CALL GET_SIZEY_LB(HLUOUT,NIMAX_ll,NJMAX_ll,NRIMY, & - IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV, & - IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2) + CALL GET_SIZEX_LB(NIMAX_ll,NJMAX_ll,NRIMX, & + IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, & + IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2) + CALL GET_SIZEY_LB(NIMAX_ll,NJMAX_ll,NRIMY, & + IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV, & + IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2) ! ! check if local domain not to small for NRIMX NRIMY ! @@ -782,10 +773,10 @@ END IF ! --------------------------- ! ! -CALL SET_REF(KMI,TPINIFILE,HLUOUT, & - XZZ,XZHAT,ZJ,XDXX,XDYY,CLBCX,CLBCY, & - XREFMASS,XMASS_O_PHI0,XLINMASS, & - XRHODREF,XTHVREF,XRVREF,XEXNREF,XRHODJ ) +CALL SET_REF(KMI,TPINIFILE, & + XZZ,XZHAT,ZJ,XDXX,XDYY,CLBCX,CLBCY, & + XREFMASS,XMASS_O_PHI0,XLINMASS, & + XRHODREF,XTHVREF,XRVREF,XEXNREF,XRHODJ) !------------------------------------------------------------------------------- ! !* 11. INITIALIZE THE SOURCE OF TOTAL DRY MASS Md @@ -804,7 +795,7 @@ END IF IF ((KMI==1).AND.(.NOT. LSTEADYLS)) THEN IF (LSPECTRE_LSU.OR.LSPECTRE_LSV.OR.LSPECTRE_LSW.OR. & LSPECTRE_LSRV.OR.LSPECTRE_LSTH) THEN - CALL INI_CPL(HLUOUT,NSTOP,XTSTEP,LSTEADYLS,CCONF, & + CALL INI_CPL(HLUOUT,NSTOP,XTSTEP,LSTEADYLS,CCONF, & CGETTKET, & CGETRVT,CGETRCT,CGETRRT,CGETRIT, & CGETRST,CGETRGT,CGETRHT,CGETSVT,LCH_INIT_FIELD, & @@ -926,7 +917,7 @@ WRITE(COUTFILE,'(A,".",I1,".",A)') CEXP,KMI,TRIM(ADJUSTL(CSEG)) !* 17. INITIALIZE THE PARAMETERS FOR THE DYNAMICS ! ------------------------------------------ ! -CALL INI_DYNAMICS(HLUOUT,XLON,XLAT,XRHODJ,XTHVREF,XMAP,XZZ,XDXHAT,XDYHAT, & +CALL INI_DYNAMICS(XLON,XLAT,XRHODJ,XTHVREF,XMAP,XZZ,XDXHAT,XDYHAT, & XZHAT,CLBCX,CLBCY,XTSTEP, & LVE_RELAX,LVE_RELAX_GRD,LHORELAX_UVWTH,LHORELAX_RV, & LHORELAX_RC,LHORELAX_RR,LHORELAX_RI,LHORELAX_RS,LHORELAX_RG, & diff --git a/src/MNH/ini_surfstationn.f90 b/src/MNH/ini_surfstationn.f90 index 73c72cf2ec358230745e05712d1f1aeca6f1044f..3fef3cf0a3e5d91d6b4f054a9cf47442469dd73b 100644 --- a/src/MNH/ini_surfstationn.f90 +++ b/src/MNH/ini_surfstationn.f90 @@ -14,15 +14,13 @@ MODULE MODI_INI_SURFSTATION_n ! INTERFACE ! - SUBROUTINE INI_SURFSTATION_n(HLUOUT, & - PTSTEP, TPDTSEG, PSEGLEN, & - KRR, KSV, OUSETKE, & - PLATOR, PLONOR ) + SUBROUTINE INI_SURFSTATION_n(PTSTEP, TPDTSEG, PSEGLEN, & + KRR, KSV, OUSETKE, & + PLATOR, PLONOR ) ! USE MODD_TYPE_DATE -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! output listing REAL, INTENT(IN) :: PTSTEP ! time step -TYPE(DATE_TIME), INTENT(IN):: TPDTSEG ! segment date and time +TYPE(DATE_TIME), INTENT(IN) :: TPDTSEG ! segment date and time REAL, INTENT(IN) :: PSEGLEN ! segment length INTEGER, INTENT(IN) :: KRR ! number of moist variables INTEGER, INTENT(IN) :: KSV ! number of scalar variables @@ -38,12 +36,11 @@ END INTERFACE ! END MODULE MODI_INI_SURFSTATION_n ! -! ############################################################### - SUBROUTINE INI_SURFSTATION_n(HLUOUT, & - PTSTEP, TPDTSEG, PSEGLEN, & - KRR, KSV, OUSETKE, & - PLATOR, PLONOR ) -! ############################################################### +! ######################################################## + SUBROUTINE INI_SURFSTATION_n(PTSTEP, TPDTSEG, PSEGLEN, & + KRR, KSV, OUSETKE, & + PLATOR, PLONOR ) +! ######################################################## ! ! !!**** *INI_SURFSTATION_n* - @@ -79,15 +76,15 @@ END MODULE MODI_INI_SURFSTATION_n !* 0. DECLARATIONS ! ------------ ! -USE MODD_TYPE_DATE -USE MODD_PARAMETERS -USE MODD_STATION_n -USE MODD_GRID_n -USE MODD_DYN_n USE MODD_CONF +USE MODD_DYN_n USE MODD_GRID +USE MODD_GRID_n +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_PARAMETERS +USE MODD_STATION_n +USE MODD_TYPE_DATE ! -USE MODE_FM, ONLY : FMLOOK_ll USE MODE_GRIDPROJ USE MODE_IO_ll USE MODE_ll @@ -101,7 +98,6 @@ IMPLICIT NONE !* 0.1 declarations of arguments ! ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! output listing REAL, INTENT(IN) :: PTSTEP ! time step TYPE(DATE_TIME), INTENT(IN) :: TPDTSEG ! segment date and time REAL, INTENT(IN) :: PSEGLEN ! segment length @@ -117,10 +113,9 @@ REAL, INTENT(IN) :: PLONOR ! longitude of origine point ! INTEGER :: ISTORE ! number of storage instants INTEGER :: ILUOUT ! logical unit -INTEGER :: IRESP ! return code ! !---------------------------------------------------------------------------- -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU !---------------------------------------------------------------------------- ! !* 1. Default values diff --git a/src/MNH/init_for_convlfi.f90 b/src/MNH/init_for_convlfi.f90 index 211f587a73b6920afbab5621bf09fbbb69a5bc12..4521c64b3b86f1fd8821390d8c7051569a56d522 100644 --- a/src/MNH/init_for_convlfi.f90 +++ b/src/MNH/init_for_convlfi.f90 @@ -264,12 +264,12 @@ ALLOCATE(ZJ(IIU,IJU,IKU)) CALL INI_CST ! IF (LCARTESIAN) THEN - CALL SM_GRIDCART(HLUOUT,XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XDXHAT,XDYHAT,XZZ,ZJ) + CALL SM_GRIDCART(XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XDXHAT,XDYHAT,XZZ,ZJ) ELSE ALLOCATE(XLON(IIU,IJU)) ALLOCATE(XLAT(IIU,IJU)) ALLOCATE(XMAP(IIU,IJU)) - CALL SM_GRIDPROJ(HLUOUT,XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XLATORI,XLONORI, & + CALL SM_GRIDPROJ(XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XLATORI,XLONORI, & XMAP,XLAT,XLON,XDXHAT,XDYHAT,XZZ,ZJ) END IF ! diff --git a/src/MNH/init_mnh.f90 b/src/MNH/init_mnh.f90 index dec85eaab3d0b78163a2667a3b43dd2644c63948..cdb20930ca603071ce386fe4fdcfb6b8e3ab6bfa 100644 --- a/src/MNH/init_mnh.f90 +++ b/src/MNH/init_mnh.f90 @@ -86,29 +86,26 @@ USE MODD_IO_ll, ONLY: TFILE_OUTPUTLISTING,TPTR2FILE USE MODD_LBC_n, ONLY: CLBCX,CLBCY ! only for spawning purpose USE MODD_LUNIT USE MODD_LUNIT_n +USE MODD_MNH_SURFEX_n USE MODD_PARAMETERS ! +USE MODE_FIELD +USE MODE_FM, ONLY: IO_FILE_OPEN_ll USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST USE MODE_ll -USE MODE_FM +USE MODE_MODELN_HANDLER +USE MODE_SPLITTINGZ_ll ! USE MODI_INI_CST USE MODI_INI_CTURB -USE MODI_INI_SEG_n USE MODI_INI_MODEL_n -USE MODI_INI_SPECTRE_n +USE MODI_INI_SEG_n USE MODI_INI_SIZE_n USE MODI_INI_SIZE_SPAWN -USE MODI_RESET_EXSEG -USE MODE_MODELN_HANDLER -USE MODI_READ_ALL_NAMELISTS -USE MODD_MNH_SURFEX_n USE MODI_INI_SPECTRE_n -USE MODE_FIELD -!JUAN -USE MODE_SPLITTINGZ_ll -!JUAN +USE MODI_READ_ALL_NAMELISTS +USE MODI_RESET_EXSEG ! IMPLICIT NONE ! @@ -144,7 +141,7 @@ IF (CPROGRAM/='REAL ') THEN TFILE_OUTPUTLISTING => TLUOUT0 ILUOUT0=TLUOUT0%NLU ELSE - CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) + ILUOUT0=TLUOUT0%NLU END IF ! WRITE(UNIT=ILUOUT0,FMT="(50('*'),/,'*',48X,'*',/, & diff --git a/src/MNH/khko_notadjust.f90 b/src/MNH/khko_notadjust.f90 index 9d0e422efa3cc55fa9ef35c9c41816f49492c682..dd82290f25e78e211888c95db4f2771cfa96fa13 100644 --- a/src/MNH/khko_notadjust.f90 +++ b/src/MNH/khko_notadjust.f90 @@ -14,7 +14,7 @@ ! INTERFACE ! - SUBROUTINE KHKO_NOTADJUST(KRR, KTCOUNT, TPFILE, HLUOUT, HRAD, OCLOSE_OUT, & + SUBROUTINE KHKO_NOTADJUST(KRR, KTCOUNT, TPFILE, HRAD, OCLOSE_OUT, & PTSTEP, PRHODJ, PPABSM, PPABST, PRHODREF, PZZ, & PTHT,PRVT,PRCT,PRRT, & PTHS, PRVS, PRCS, PRRS, PCCS, PCNUCS, PSAT, & @@ -25,8 +25,6 @@ USE MODD_IO_ll, ONLY: TFILEDATA INTEGER, INTENT(IN) :: KRR ! Number of moist variables INTEGER, INTENT(IN) :: KTCOUNT ! Number of moist variables TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for - ! model n CHARACTER*4, INTENT(IN) :: HRAD ! Radiation scheme name LOGICAL, INTENT(IN) :: OCLOSE_OUT ! Conditional closure of ! the OUTPUT FM-file @@ -67,7 +65,7 @@ END INTERFACE END MODULE MODI_KHKO_NOTADJUST ! ! ################################################################################ - SUBROUTINE KHKO_NOTADJUST(KRR, KTCOUNT, TPFILE, HLUOUT, HRAD, OCLOSE_OUT, & + SUBROUTINE KHKO_NOTADJUST(KRR, KTCOUNT, TPFILE, HRAD, OCLOSE_OUT, & PTSTEP, PRHODJ, PPABSM, PPABST, PRHODREF, PZZ, & PTHT,PRVT,PRCT,PRRT, & PTHS, PRVS, PRCS, PRRS, PCCS, PCNUCS, PSAT, & @@ -102,17 +100,17 @@ END MODULE MODI_KHKO_NOTADJUST ! !* 0. DECLARATIONS ! -USE MODD_PARAMETERS -USE MODD_CST -USE MODD_CONF USE MODD_BUDGET -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_NSV, ONLY : NSV_C2R2BEG -USE MODD_RAIN_C2R2_DESCR, ONLY : XRTMIN +USE MODD_CONF +USE MODD_CST +USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_NSV, ONLY: NSV_C2R2BEG +USE MODD_PARAMETERS +USE MODD_RAIN_C2R2_DESCR, ONLY: XRTMIN ! -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FM +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL USE MODE_FMWRIT USE MODE_IO_ll USE MODE_MSG @@ -128,8 +126,6 @@ IMPLICIT NONE INTEGER, INTENT(IN) :: KRR ! Number of moist variables INTEGER, INTENT(IN) :: KTCOUNT ! Number of moist variables TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for - ! model n CHARACTER*4, INTENT(IN) :: HRAD ! Radiation scheme name LOGICAL, INTENT(IN) :: OCLOSE_OUT ! Conditional closure of ! the OUTPUT FM-file @@ -200,7 +196,7 @@ TYPE(TFIELDDATA) :: TZFIELD !* 1. PRELIMINARIES ! ------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU CALL GET_INDICE_ll (IIB,IJB,IIE,IJE) IKB=1+JPVEXT IKE=SIZE(PZZ,3) - JPVEXT diff --git a/src/MNH/les_specn.f90 b/src/MNH/les_specn.f90 index 61f4aaa490a4b43f96dbc9e4b94ce58a2f2e3054..548c68dd1733bddb665d2360ddece2842d5c82b0 100644 --- a/src/MNH/les_specn.f90 +++ b/src/MNH/les_specn.f90 @@ -59,22 +59,18 @@ CONTAINS !* 0. DECLARATIONS ! ------------ ! -USE MODD_LES -USE MODD_LES_n -! +USE MODD_CONF USE MODD_CONF_n -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LUNIT_n USE MODD_GRID_n -USE MODD_LBC_n, ONLY : CLBCX, CLBCY -USE MODD_NSV, ONLY : NSV -! -USE MODD_CONF +USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_LBC_n, ONLY: CLBCX, CLBCY +USE MODD_LES +USE MODD_LES_n +USE MODD_NSV, ONLY: NSV ! +USE MODE_LES_DIACHRO USE MODE_ll -USE MODE_FM ! -USE MODE_LES_DIACHRO USE MODI_WRITE_LES_n ! IMPLICIT NONE @@ -86,8 +82,6 @@ TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write ! !* 0.2 declaration of local variables ! -INTEGER :: IRESP, ILUOUT -! INTEGER :: JSV ! scalar loop counter ! CHARACTER(len=5) :: YGROUP @@ -111,8 +105,6 @@ ELSE ISPECTRA_NJ = NSPECTRA_NJ - 1 END IF ! -CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP) -! ALLOCATE( ZSPECTRAX(ISPECTRA_NI,2,NSPECTRA_K,NLES_TIMES) ) ALLOCATE( ZSPECTRAY(ISPECTRA_NJ,2,NSPECTRA_K,NLES_TIMES) ) ! diff --git a/src/MNH/lima_adjust.f90 b/src/MNH/lima_adjust.f90 index 3d86e78dc65e7a2baddeb581b824a0a9dc7bec5d..34eba3ee1d20c66611a46ac75b5618c54b8e7751 100644 --- a/src/MNH/lima_adjust.f90 +++ b/src/MNH/lima_adjust.f90 @@ -4,7 +4,7 @@ ! INTERFACE ! - SUBROUTINE LIMA_ADJUST(KRR, KMI, TPFILE, HLUOUT, HRAD, & + SUBROUTINE LIMA_ADJUST(KRR, KMI, TPFILE, HRAD, & HTURBDIM, OCLOSE_OUT, OSUBG_COND, PTSTEP, & PRHODREF, PRHODJ, PEXNREF, PPABSM, PSIGS, PPABST, & PRT, PRS, PSVT, PSVS, & @@ -15,8 +15,6 @@ USE MODD_IO_ll, ONLY: TFILEDATA INTEGER, INTENT(IN) :: KRR ! Number of moist variables INTEGER, INTENT(IN) :: KMI ! Model index TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for - ! model n CHARACTER*4, INTENT(IN) :: HTURBDIM ! Dimensionality of the ! turbulence scheme CHARACTER*4, INTENT(IN) :: HRAD ! Radiation scheme name @@ -56,7 +54,7 @@ END INTERFACE END MODULE MODI_LIMA_ADJUST ! ! ########################################################################## - SUBROUTINE LIMA_ADJUST(KRR, KMI, TPFILE, HLUOUT, HRAD, & + SUBROUTINE LIMA_ADJUST(KRR, KMI, TPFILE, HRAD, & HTURBDIM, OCLOSE_OUT, OSUBG_COND, PTSTEP, & PRHODREF, PRHODJ, PEXNREF, PPABSM, PSIGS, PPABST, & PRT, PRS, PSVT, PSVS, & @@ -137,25 +135,26 @@ END MODULE MODI_LIMA_ADJUST !* 0. DECLARATIONS ! ------------ ! -USE MODD_PARAMETERS -USE MODD_CST +USE MODD_BUDGET USE MODD_CONF -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_CST +USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_NSV +USE MODD_PARAMETERS USE MODD_PARAM_LIMA -USE MODD_PARAM_LIMA_WARM USE MODD_PARAM_LIMA_COLD USE MODD_PARAM_LIMA_MIXED -USE MODD_NSV -USE MODD_BUDGET -! -USE MODI_CONDENS -USE MODI_BUDGET -USE MODI_LIMA_FUNCTIONS +USE MODD_PARAM_LIMA_WARM ! -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL +USE MODE_FIELD, ONLY : TFIELDDATA, TYPEREAL USE MODE_FM USE MODE_FMWRIT ! +USE MODI_BUDGET +USE MODI_CONDENS +USE MODI_LIMA_FUNCTIONS +! IMPLICIT NONE ! !* 0.1 Declarations of dummy arguments : @@ -164,8 +163,6 @@ IMPLICIT NONE INTEGER, INTENT(IN) :: KRR ! Number of moist variables INTEGER, INTENT(IN) :: KMI ! Model index TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for - ! model n CHARACTER*4, INTENT(IN) :: HTURBDIM ! Dimensionality of the ! turbulence scheme CHARACTER*4, INTENT(IN) :: HRAD ! Radiation scheme name @@ -282,7 +279,7 @@ TYPE(TFIELDDATA) :: TZFIELD !* 1. PRELIMINARIES ! ------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! IIB = 1 + JPHEXT IIE = SIZE(PRHODJ,1) - JPHEXT diff --git a/src/MNH/lochead.f90 b/src/MNH/lochead.f90 index 7fb31cf6c81b7c118361f6710f579ab1a113750c..b1fd1435c89a275e68e00a2a7048475f21a7435f 100644 --- a/src/MNH/lochead.f90 +++ b/src/MNH/lochead.f90 @@ -81,8 +81,9 @@ END MODULE MODI_LOCHEAD !* 0. DECLARATION ! ----------- ! -USE MODD_LUNIT -USE MODE_FM +USE MODD_IO_ll, ONLY : TFILEDATA +! +USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_FIND_BYNAME ! IMPLICIT NONE ! @@ -124,9 +125,13 @@ INTEGER, DIMENSION(1) :: INB1 ! number of lines in local file INTEGER, DIMENSION(1) :: INB2 ! number of columns in local file INTEGER :: JLAT ! loop control INTEGER :: JLON ! loop control +TYPE(TFILEDATA),POINTER :: TZFILE !------------------------------------------------------------------------------- ! -IF (ODATASAVE) CALL FMLOOK_ll(HSAVEDDATAFILE,CLUOUT0,ISAVE,IRESP) +IF (ODATASAVE) THEN + CALL IO_FILE_FIND_BYNAME(HSAVEDDATAFILE,TZFILE,IRESP) + ISAVE = TZFILE%NLU +END IF ! ZDLAT=(PGLBLATMAX-PGLBLATMIN)/KGLBNBLAT ZDLON=(PGLBLONMAX-PGLBLONMIN)/KGLBNBLON diff --git a/src/MNH/ls_coupling.f90 b/src/MNH/ls_coupling.f90 index 6a4f44a7e0580b6d459ed944105648da232ecef4..94bd8dfb0399bdeb3650450339bc81f7b43dfa46 100644 --- a/src/MNH/ls_coupling.f90 +++ b/src/MNH/ls_coupling.f90 @@ -14,7 +14,7 @@ ! INTERFACE ! - SUBROUTINE LS_COUPLING (HLUOUT,PTSTEP, OSTEADY_DMASS, HCONF, & + SUBROUTINE LS_COUPLING (PTSTEP, OSTEADY_DMASS, HCONF, & HGETTKEM, & HGETRVM,HGETRCM,HGETRRM,HGETRIM, & HGETRSM,HGETRGM,HGETRHM,HGETSVM,OCH_INIT_FIELD,KSV, & @@ -29,7 +29,6 @@ INTERFACE PLBXUS,PLBXVS,PLBXWS,PLBXTHS,PLBXTKES,PLBXRS,PLBXSVS, & PLBYUS,PLBYVS,PLBYWS,PLBYTHS,PLBYTKES,PLBYRS,PLBYSVS ) ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Name of the output-listing REAL, INTENT(IN) :: PTSTEP ! Time step LOGICAL, INTENT(IN) :: OSTEADY_DMASS ! Md evolution logical switch ! @@ -93,7 +92,7 @@ END MODULE MODI_LS_COUPLING ! ! ! ###################################################################### - SUBROUTINE LS_COUPLING (HLUOUT,PTSTEP, OSTEADY_DMASS, HCONF, & + SUBROUTINE LS_COUPLING (PTSTEP, OSTEADY_DMASS, HCONF, & HGETTKEM, & HGETRVM,HGETRCM,HGETRRM,HGETRIM, & HGETRSM,HGETRGM,HGETRHM,HGETSVM,OCH_INIT_FIELD, & @@ -206,7 +205,6 @@ IMPLICIT NONE ! ! ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Name of the output-listing REAL, INTENT(IN) :: PTSTEP ! Time step LOGICAL, INTENT(IN) :: OSTEADY_DMASS ! Md evolution logical switch CHARACTER(LEN=*), INTENT(IN) :: HCONF ! configuration var. linked to FMfile @@ -263,7 +261,7 @@ REAL, DIMENSION(:,:,:,:), INTENT(OUT) :: PLBYRS ,PLBYSVS ! in x and y-d !* 0.2 declarations of local variables ! INTEGER :: ILUOUT ! Logical unit number - ! associated with HLUOUT + ! associated with TLUOUT INTEGER :: IRESP REAL :: ZLENG ! Interpolation length INTEGER :: IIMAX,IJMAX,IKMAX ! Dimensions of the physical @@ -289,7 +287,7 @@ IKU=SIZE(PLSTHM,3) ! IF ( (IIMAX/=KIMAX_ll) .OR. (IJMAX/=KJMAX_ll) & .OR. (IKMAX/=(IKU-2*JPVEXT)) ) THEN - CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) + ILUOUT = TLUOUT%NLU WRITE(ILUOUT,FMT=9003) WRITE(ILUOUT,*) 'THE GRIDS ARE DIFFERENT IN THE INITIAL FILE :' WRITE(ILUOUT,*) KIMAX_ll,'*',KJMAX_ll,'*',IKU-2*JPVEXT @@ -304,7 +302,7 @@ END IF GLSOURCE=.TRUE. ZLENG = (NCPL_TIMES(NCPL_CUR,1) - NCPL_TIMES(NCPL_CUR-1,1)) * PTSTEP ! -CALL INI_LS(TCPLFILE(NCPL_CUR)%TZFILE,HLUOUT,HGETRVM,GLSOURCE,PLSUS,PLSVS,PLSWS,PLSTHS,PLSRVS, & +CALL INI_LS(TCPLFILE(NCPL_CUR)%TZFILE,HGETRVM,GLSOURCE,PLSUS,PLSVS,PLSWS,PLSTHS,PLSRVS, & PDRYMASSS,PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM,PDRYMASST,ZLENG,OSTEADY_DMASS) ! @@ -337,7 +335,7 @@ GLSOURCE=.TRUE. #endif !END IF ! -CALL INI_LB(TCPLFILE(NCPL_CUR)%TZFILE,HLUOUT,GLSOURCE,KSV, & +CALL INI_LB(TCPLFILE(NCPL_CUR)%TZFILE,GLSOURCE,KSV, & KSIZELBX_ll,KSIZELBXU_ll,KSIZELBY_ll,KSIZELBYV_ll, & KSIZELBXTKE_ll,KSIZELBYTKE_ll, & KSIZELBXR_ll,KSIZELBYR_ll,KSIZELBXSV_ll,KSIZELBYSV_ll, & diff --git a/src/MNH/mean_prof.f90 b/src/MNH/mean_prof.f90 index fc555cde62c01e3a439160766979cca81aa12bce..0953cddf48d3c707b9485dc50e65ed24a0f9006c 100644 --- a/src/MNH/mean_prof.f90 +++ b/src/MNH/mean_prof.f90 @@ -59,8 +59,6 @@ END MODULE MODI_MEAN_PROF !! !! function ZSECT : to compute the mean of a 3D field at a constant !! altitude -!! function FMLOOK : to retrieve a logical unit number associated -!! with a file !! Module MODI_ZSECT: contains interface for function ZSECT !! !! IMPLICIT ARGUMENTS @@ -94,13 +92,13 @@ END MODULE MODI_MEAN_PROF !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM -USE MODI_ZSECT ! interface module -USE MODD_CONF ! declaration modules -USE MODD_LUNIT +USE MODD_CONF USE MODD_GRID_n +USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS ! +USE MODI_ZSECT +! IMPLICIT NONE ! !* 0.1 Declaration of arguments @@ -120,7 +118,6 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PZ_FREE ! discretization in x,y,z !* 0.2 Declaration of local variables ! ------------------------------ ! -INTEGER :: ILUOUT0, IRESP INTEGER :: ILEVEL,IKB,IKE,ILB,ILE,JK REAL :: ZMIN REAL, DIMENSION(SIZE(PF_FREE,3)) :: ZF_FREE @@ -198,7 +195,6 @@ PF_FREE(:,:,:)=SPREAD(SPREAD(ZF_FREE(:),1,SIZE(PF_FREE,1)),2,SIZE(PF_FREE,2)) ! !------------------------------------------------------------------------------- ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) -WRITE(ILUOUT0,*) 'Routine MEAN_PROF completed' +WRITE(TLUOUT0%NLU,*) 'Routine MEAN_PROF completed' ! END SUBROUTINE MEAN_PROF diff --git a/src/MNH/menu_diachro.f90 b/src/MNH/menu_diachro.f90 index e9c06a9b9e617b05887e95616c1794fb2c8cd081..bdf59ffded01d75e54f71a9a3b33a18003ad34d6 100644 --- a/src/MNH/menu_diachro.f90 +++ b/src/MNH/menu_diachro.f90 @@ -9,7 +9,7 @@ ! MASDEV4_7 diachro 2006/05/18 13:07:25 !----------------------------------------------------------------- ! ################################################## - SUBROUTINE MENU_DIACHRO(TPDIAFILE,HLUOUTDIA,HGROUP) + SUBROUTINE MENU_DIACHRO(TPDIAFILE,HGROUP) ! ################################################## ! !!**** *MENU_DIACHRO* - Creation, ecriture (eventuellement lecture) de @@ -70,7 +70,6 @@ IMPLICIT NONE ! --------------- TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write -CHARACTER(LEN=*), INTENT(IN) :: HLUOUTDIA CHARACTER(LEN=*), INTENT(IN) :: HGROUP ! !* 0.1 Local variables diff --git a/src/MNH/mnhclose_namelist.f90 b/src/MNH/mnhclose_namelist.f90 index d24d727b7b60daa940dd0436c5b3ea5bccb24d17..66da0cbdbb634707f7513db91c5845dbae31ceec 100644 --- a/src/MNH/mnhclose_namelist.f90 +++ b/src/MNH/mnhclose_namelist.f90 @@ -88,14 +88,6 @@ IF (.NOT.ASSOCIATED(TNAM)) CALL PRINT_MSG(NVERB_FATAL,'IO','CLOSE_FILE_MNH','TNA ! CALL PRINT_MSG(NVERB_DEBUG,'IO','MNHCLOSE_NAMELIST','called for '//TRIM(TNAM%CNAME)) ! -SELECT CASE(CPROGRAM) - CASE('REAL ','IDEAL ','DIAG ') - YLUOUT = CLUOUT0 - CASE('MESONH','SPAWN ') - CALL GET_MODEL_NUMBER_ll (IMI) - WRITE(YLUOUT,FMT='(A14,I1,A1)') 'OUTPUT_LISTING',IMI,' ' -END SELECT -! !------------------------------------------------------------------------------- ! !* closes the namelist @@ -105,6 +97,14 @@ IF (TNAM%NLU==KLUNAM) THEN CALL IO_FILE_CLOSE_ll(TNAM) TNAM => NULL() ELSE + SELECT CASE(CPROGRAM) + CASE('REAL ','IDEAL ','DIAG ') + YLUOUT = CLUOUT0 + CASE('MESONH','SPAWN ') + CALL GET_MODEL_NUMBER_ll (IMI) + WRITE(YLUOUT,FMT='(A14,I1,A1)') 'OUTPUT_LISTING',IMI,' ' + END SELECT + ! CALL FMLOOK_ll(YLUOUT,YLUOUT,ILUOUT,IRESP) WRITE(ILUOUT,*) 'Error for closing a namelist file: ' WRITE(ILUOUT,*) 'logical unit ',KLUNAM,' does not correspond to namelist file', TNAM%CNAME diff --git a/src/MNH/mode_gridcart.f90 b/src/MNH/mode_gridcart.f90 index afd145ac16df65965b3545650fec8778198d8388..f4b0104f7078f36bc804f7a18ab99fa24f428dab 100644 --- a/src/MNH/mode_gridcart.f90 +++ b/src/MNH/mode_gridcart.f90 @@ -40,7 +40,6 @@ !-------------------------------------------------------------------------------- ! !* 0. DECLARATIONS -USE MODE_FM ! ------------ ! !------------------------------------------------------------------------------- @@ -53,7 +52,7 @@ CONTAINS ! ------------------- !------------------------------------------------------------------------------- ! ######################################################################### - SUBROUTINE SM_GRIDCART(HLUOUT,PXHAT,PYHAT,PZHAT,PZS,OSLEVE,PLEN1,PLEN2,PZSMT,PDXHAT,PDYHAT,PZZ,PJ) + SUBROUTINE SM_GRIDCART(PXHAT,PYHAT,PZHAT,PZS,OSLEVE,PLEN1,PLEN2,PZSMT,PDXHAT,PDYHAT,PZZ,PJ) ! ######################################################################### ! !!**** *SM_GRIDCART * - routine to compute J @@ -109,6 +108,7 @@ CONTAINS ! USE MODE_ll USE MODD_ARGSLIST_ll, ONLY : LIST1D_ll +USE MODD_LUNIT_n, ONLY : TLUOUT ! USE MODD_PARAMETERS USE MODD_CONF @@ -119,7 +119,6 @@ IMPLICIT NONE ! !* 0.1 Declarations of arguments ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name REAL, DIMENSION(:), INTENT(IN) :: PXHAT,PYHAT,PZHAT ! positions x,y,z in ! the cartesian plane REAL, DIMENSION(:,:), INTENT(IN) :: PZS ! orography @@ -160,7 +159,7 @@ INTEGER :: JI,JJ,JK ! loop index !* 1 RETRIEVE LOGICAL UNIT NUMBERFOR OUTPUT-LISTING AND DIMENSIONS ! -------------------------------------------------------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! IIU = UBOUND(PXHAT,1) IJU = UBOUND(PYHAT,1) diff --git a/src/MNH/mode_gridproj.f90 b/src/MNH/mode_gridproj.f90 index ac5c13f1c53b2e85dbe200699121747a732c1656..0a5ec42aa39ed7ec0d779d2047b8d764da560def 100644 --- a/src/MNH/mode_gridproj.f90 +++ b/src/MNH/mode_gridproj.f90 @@ -46,7 +46,6 @@ !------------------------------------------------------------------------------ ! !* 0. DECLARATIONS -USE MODE_FM USE MODE_MPPDB USE MODD_CONF !------------ @@ -67,7 +66,7 @@ CONTAINS ! -------------------- !------------------------------------------------------------------------------- ! #################################################################### - SUBROUTINE SM_GRIDPROJ(HLUOUT,PXHAT,PYHAT,PZHAT,PZS, & + SUBROUTINE SM_GRIDPROJ(PXHAT,PYHAT,PZHAT,PZS, & OSLEVE,PLEN1,PLEN2,PZSMT,PLATOR,PLONOR, & PMAP,PLAT,PLON,PDXHAT,PDYHAT,PZZ,PJ ) ! #################################################################### @@ -181,6 +180,7 @@ CONTAINS ! USE MODE_ll USE MODD_ARGSLIST_ll, ONLY : LIST_ll, LIST1D_ll +USE MODD_LUNIT_n, ONLY : TLUOUT ! USE MODD_CONF USE MODD_CST @@ -193,7 +193,6 @@ IMPLICIT NONE ! !* 0.1 Declarations of arguments ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Name of output-listing REAL, DIMENSION(:), INTENT(IN) :: PXHAT,PYHAT,PZHAT ! Positions x,y,z in ! the cartesian plane REAL, DIMENSION(:,:), INTENT(IN) :: PZS ! Orography @@ -250,7 +249,7 @@ INTEGER :: JI,JJ,JK ! loop index !* 1. RETRIEVE LOGICAL UNIT NUMBER FOR OUTPUT-LISTING AND DIMENSIONS ! -------------------------------------------------------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! IIU = UBOUND(PXHAT,1) IJU = UBOUND(PYHAT,1) @@ -1540,7 +1539,7 @@ ENDIF ! IF(ITER <= ITERMAX) RETURN ! -CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! WRITE(ILUOUT,*) ' Error in function LATREF2 (module MODE_GRIDPROJ)' WRITE(ILUOUT,*) ' Function fails to converge after ',ITER,' iterations.' diff --git a/src/MNH/mode_les_diachro.f90 b/src/MNH/mode_les_diachro.f90 index ac9dcc16851b4418d5cae367228043000752e5bd..cf635b445e8dffcae7d7b7c97ccae163de731770 100644 --- a/src/MNH/mode_les_diachro.f90 +++ b/src/MNH/mode_les_diachro.f90 @@ -841,7 +841,7 @@ YTITLE(1) = YGROUP ! ---------------------- ! IF (IRESP==0 .AND. ANY(ZWORK6/=XUNDEF)) & -CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6, & +CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6, & ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE., & IIL,IIH,IJL,IJH,IKL,IKH, & PTRAJX=ZTRAJX,PTRAJY=ZTRAJY,PTRAJZ=ZTRAJZ ) @@ -967,7 +967,7 @@ YTITLE(1) = YGROUP ! ! IF (IRESP==0 .AND. ANY(ZWORK6/=XUNDEF)) & -CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6, & +CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6, & ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE., & IIL,IIH,IJL,IJH,IKL,IKH, & PTRAJX=ZTRAJX,PTRAJY=ZTRAJY,PTRAJZ=ZTRAJZ ) @@ -1098,7 +1098,7 @@ YTITLE (:) = YGROUP//HTITLE(:) ! ---------------------- ! IF (IRESP==0 .AND. ANY(ZWORK6/=XUNDEF)) & -CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6, & +CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6, & ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE., & IIL,IIH,IJL,IJH,IKL,IKH, & PTRAJX=ZTRAJX,PTRAJY=ZTRAJY,PTRAJZ=ZTRAJZ ) @@ -1233,7 +1233,7 @@ YTITLE (:) = YGROUP//HTITLE(:) ! ! IF (IRESP==0 .AND. ANY(ZWORK6/=XUNDEF)) & -CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6, & +CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6, & ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE., & IIL,IIH,IJL,IJH,IKL,IKH, & PTRAJX=ZTRAJX,PTRAJY=ZTRAJY,PTRAJZ=ZTRAJZ ) @@ -1348,7 +1348,7 @@ YTITLE(1) = HGROUP ! ---------------------- ! IF (IRESP==0) & -CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6, & +CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6, & ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE., & IIL,IIH,IJL,IJH,IKL,IKH, & PTRAJX=ZTRAJX,PTRAJY=ZTRAJY,PTRAJZ=ZTRAJZ ) @@ -1463,7 +1463,7 @@ YTITLE(1) = HGROUP ! ---------------------- ! IF (IRESP==0) & -CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6, & +CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SSOL",IGRID,ZDATIME, ZWORK6, & ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE., & IIL,IIH,IJL,IJH,IKL,IKH, & PTRAJX=ZTRAJX,PTRAJY=ZTRAJY,PTRAJZ=ZTRAJZ ) @@ -1586,7 +1586,7 @@ END IF ! ---------------------- ! IF (IRESP==0) & -CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6, & +CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6, & ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE., & IIL,IIH,IJL,IJH,IKL,IKH ) ! @@ -1628,7 +1628,7 @@ IF (GAVG) THEN YGROUP = 'T_'//YGROUP END IF ! -CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6, & +CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6, & ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE., & IIL,IIH,IJL,IJH,IKL,IKH ) ! @@ -1730,7 +1730,7 @@ WRITE(YSTRING,FMT="(I6.6)") NINT( XLES_CURRENT_DOMEGAX ) YCOMMENT(:) = " DOMEGAX="//YSTRING//' '//HCOMMENT ! ! -CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6, & +CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6, & ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE., & IIL,IIH,IJL,IJH,IKL,IKH ) ! @@ -1742,7 +1742,7 @@ CALL LES_TIME_AVG(ZTRAJT,ZWORK6,IRESP,ZDATIME) YGROUP = 'T_'//YGROUP ! IF (IRESP==0) & -CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6, & +CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6, & ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE., & IIL,IIH,IJL,IJH,IKL,IKH ) DEALLOCATE(ZWORK6) @@ -1778,7 +1778,7 @@ YTITLE(:) = YGROUP WRITE(YSTRING,FMT="(I6.6)") NINT( XLES_CURRENT_DOMEGAY ) YCOMMENT(:) = " DOMEGAY="//YSTRING//' '//HCOMMENT ! -CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6, & +CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6, & ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE., & IIL,IIH,IJL,IJH,IKL,IKH ) ! @@ -1789,7 +1789,7 @@ CALL LES_TIME_AVG(ZTRAJT,ZWORK6,IRESP,ZDATIME) YGROUP = 'T_'//YGROUP ! IF (IRESP==0) & -CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6, & +CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"SPXY",IGRID,ZDATIME, ZWORK6, & ZTRAJT,YTITLE,YUNIT,YCOMMENT,.FALSE.,.FALSE.,.FALSE., & IIL,IIH,IJL,IJH,IKL,IKH ) ! diff --git a/src/MNH/mode_thermo.f90 b/src/MNH/mode_thermo.f90 index 013132ad528e9597eb36935d41238dbd2e9a14c4..eac5efd6998f33471bf0e7763455563b0d963c55 100644 --- a/src/MNH/mode_thermo.f90 +++ b/src/MNH/mode_thermo.f90 @@ -242,7 +242,7 @@ PFOES(:) = EXP( XALPW - XBETAW/PT(:) - XGAMW*LOG(PT(:)) ) END FUNCTION SM_FOES_1D !------------------------------------------------------------------------------- ! #################################################### - FUNCTION SM_PMR_HU_3D(HLUOUT,PP,PTV,PHU,PR,KITERMAX) RESULT(PMR) + FUNCTION SM_PMR_HU_3D(PP,PTV,PHU,PR,KITERMAX) RESULT(PMR) ! #################################################### ! !!**** *SM_PMR_HU_3D * - function to compute vapor mixing ratio @@ -267,7 +267,6 @@ END FUNCTION SM_FOES_1D !! !! EXTERNAL !! -------- -!! FMLOOK : to retrieve logical unit number !! SM_FOES : to compute saturation vapor pressure !! !! IMPLICIT ARGUMENTS @@ -297,16 +296,13 @@ END FUNCTION SM_FOES_1D ! ------------ ! USE MODD_CST -! -USE MODE_FM +USE MODD_LUNIT_n, ONLY: TLUOUT ! IMPLICIT NONE ! !* 0.1 Declarations of arguments and results ! ! -CHARACTER(LEN=*) :: HLUOUT ! name for output- - ! listing REAL, DIMENSION(:,:,:), INTENT(IN) :: PP ! Pressure ! (Pa) REAL, DIMENSION(:,:,:), INTENT(IN) :: PTV ! Virtual Temperature @@ -337,7 +333,7 @@ INTEGER :: ITER ! iteration number REAL :: ZEPS ! a small number INTEGER, DIMENSION(3) :: IMAXLOC ! localisation of ! a maximum -INTEGER :: ILUOUT,IRESP +INTEGER :: ILUOUT ! logical unit for ! output-listing ! and error code @@ -372,7 +368,7 @@ END DO ! -------------- ! IF ( ANY(ZDT > ZEPS) ) THEN - CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) + ILUOUT = TLUOUT%NLU WRITE(ILUOUT,*) 'ERROR IN FUNCTION SM_PMR_HU (module MODE_THERMO)' WRITE(ILUOUT,*) 'FUNCTION FAILS TO CONVERGE AFTER ', ITER,' ITERATIONS' WRITE(ILUOUT,*) 'EPS = ' , ZEPS @@ -389,7 +385,7 @@ END IF !------------------------------------------------------------------------------- END FUNCTION SM_PMR_HU_3D ! ################################################################ - FUNCTION SM_PMR_HU_1D(HLUOUT,PP,PTV,PHU,PR,KITERMAX) RESULT(PMR) + FUNCTION SM_PMR_HU_1D(PP,PTV,PHU,PR,KITERMAX) RESULT(PMR) ! ################################################################ ! !!**** *SM_PMR_HU_1D * - function to compute vapor mixing ratio @@ -414,7 +410,6 @@ END FUNCTION SM_PMR_HU_3D !! !! EXTERNAL !! -------- -!! FMLOOK : to retrieve logical unit number !! SM_FOES : to compute saturation vapor pressure !! !! IMPLICIT ARGUMENTS @@ -444,16 +439,13 @@ END FUNCTION SM_PMR_HU_3D ! ------------ ! USE MODD_CST -! -USE MODE_FM +USE MODD_LUNIT_n, ONLY: TLUOUT ! IMPLICIT NONE ! !* 0.1 Declarations of arguments and results ! ! -CHARACTER(LEN=*) :: HLUOUT ! name for output- - ! listing REAL, DIMENSION(:), INTENT(IN) :: PP ! Pressure ! (Pa) REAL, DIMENSION(:), INTENT(IN) :: PTV ! Virtual Temperature @@ -517,7 +509,7 @@ END DO ! -------------- ! IF (ANY(ZDT>ZEPS)) THEN - CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) + ILUOUT = TLUOUT%NLU WRITE(ILUOUT,*) 'ERROR IN FUNCTION SM_PMR_HU (module MODE_THERMO)' WRITE(ILUOUT,*) 'FUNCTION FAILS TO CONVERGE AFTER ', ITER,' ITERATIONS' WRITE(ILUOUT,*) 'EPS = ' , ZEPS diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index ef3807e70cacfd36847f7162e0412d984f7ca348..97ea0b1434b45f10ea2e9d63c0408a39276047b4 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -254,168 +254,159 @@ END MODULE MODI_MODEL_n !* 0. DECLARATIONS ! ------------ ! -USE MODE_ll -USE MODE_IO_ll -USE MODE_ELEC_ll -USE MODE_NETCDF -! -USE MODE_FM -USE MODE_IO_WRITE_FIELD -! -USE MODD_TIME -USE MODD_DYN -USE MODD_DYNZD -USE MODD_CONF -USE MODD_NESTING +USE MODD_2D_FRC +USE MODD_ADV_n +USE MODD_AIRCRAFT_BALLOON USE MODD_BAKOUT +USE MODD_BIKHARDT_n +USE MODD_BLANK USE MODD_BUDGET -USE MODD_PARAMETERS -USE MODD_PARAM_ICE, ONLY : LWARM,LSEDIC,LCONVHG,LDEPOSC -USE MODD_FRC -USE MODD_AIRCRAFT_BALLOON -USE MODD_STATION_n -USE MODD_PROFILER_n -USE MODD_PARAM_C2R2, ONLY : NSEDC => LSEDC, NRAIN => LRAIN, NACTIT => LACTIT,LACTTKE,LDEPOC -USE MODD_PARAM_C1R3, ONLY : NSEDI => LSEDI, NHHONI => LHHONI -USE MODD_LES -USE MODD_LES_BUDGET -USE MODD_LUNIT -USE MODD_GRID, ONLY: XLONORI,XLATORI -USE MODD_SERIES, ONLY: LSERIES -USE MODD_TURB_CLOUD, ONLY: NMODEL_CLOUD,CTURBLEN_CLOUD,XCEI -USE MODD_IO_ll, ONLY: LIOCDF4,LLFIOUT,TFILEDATA,TFILE_SURFEX,TFILE_DUMMY -! -USE MODD_SUB_MODEL_n -USE MODD_GET_n +USE MODD_CH_AERO_n, ONLY: XSOLORG, XMI +USE MODD_CH_MNHC_n, ONLY: LUSECHEM,LCH_CONV_LINOX,LUSECHAQ,LUSECHIC, & + LCH_INIT_FIELD +USE MODD_CLOUD_MF_n +USE MODD_CLOUDPAR_n +USE MODD_CONF USE MODD_CONF_n +USE MODD_CST, ONLY: XMD USE MODD_CURVCOR_n +USE MODD_DEEP_CONVECTION_n USE MODD_DIM_n +USE MODD_DUST, ONLY: LDUST +USE MODD_DYN USE MODD_DYN_n +USE MODD_DYNZD USE MODD_DYNZD_n -USE MODD_ADV_n +USE MODD_ELEC_DESCR USE MODD_FIELD_n -USE MODD_PAST_FIELD_n -USE MODD_MEAN_FIELD_n -USE MODD_MEAN_FIELD -USE MODD_LSFIELD_n +USE MODD_FRC +USE MODD_FRC_n +USE MODD_GET_n +USE MODD_GRID, ONLY: XLONORI,XLATORI USE MODD_GRID_n -USE MODD_METRICS_n +USE MODD_ICE_C1R3_DESCR, ONLY: XRTMIN_C1R3=>XRTMIN +USE MODD_IO_ll, ONLY: LIOCDF4,LLFIOUT,TFILEDATA,TFILE_SURFEX,TFILE_DUMMY USE MODD_LBC_n +USE MODD_LES +USE MODD_LES_BUDGET +USE MODD_LIMA_PRECIP_SCAVENGING_n +USE MODD_LSFIELD_n +USE MODD_LUNIT, ONLY: COUTFMFILE,TLUOUT0 +USE MODD_LUNIT_n, ONLY: TDIAFILE,TINIFILE,TINIFILEPGD,TLUOUT +USE MODD_MEAN_FIELD +USE MODD_MEAN_FIELD_n +USE MODD_METRICS_n +USE MODD_MNH_SURFEX_n +USE MODD_NESTING +USE MODD_NSV +USE MODD_NUDGING_n +USE MODD_OUT_n +USE MODD_PARAM_C1R3, ONLY: NSEDI => LSEDI, NHHONI => LHHONI +USE MODD_PARAM_C2R2, ONLY: NSEDC => LSEDC, NRAIN => LRAIN, NACTIT => LACTIT,LACTTKE,LDEPOC +USE MODD_PARAMETERS +USE MODD_PARAM_ICE, ONLY: LWARM,LSEDIC,LCONVHG,LDEPOSC +USE MODD_PARAM_LIMA, ONLY: MSEDC => LSEDC, MWARM => LWARM, MRAIN => LRAIN, LACTI, & + MACTIT => LACTIT, LSCAV, NMOD_CCN, LCOLD, & + MSEDI => LSEDI, MHHONI => LHHONI, NMOD_IFN, LHAIL, & + XRTMIN_LIMA=>XRTMIN +USE MODD_PARAM_MFSHALL_n USE MODD_PARAM_n +USE MODD_PAST_FIELD_n +USE MODD_PRECIP_n +USE MODD_PROFILER_n +USE MODD_RADIATIONS_n, ONLY: XTSRAD,XSCAFLASWD,XDIRFLASWD,XDIRSRFSWD, XAER, XDTHRAD +USE MODD_RAIN_ICE_DESCR, ONLY: XRTMIN USE MODD_REF_n -USE MODD_FRC_n -USE MODD_LUNIT_n -USE MODD_OUT_n +USE MODD_SALT, ONLY: LSALT +USE MODD_SERIES, ONLY: LSERIES +USE MODD_SERIES_n, ONLY: NFREQSERIES +USE MODD_STATION_n +USE MODD_SUB_MODEL_n +USE MODD_TIME USE MODD_TIME_n +USE MODD_TIMEZ +USE MODD_TURB_CLOUD, ONLY: NMODEL_CLOUD,CTURBLEN_CLOUD,XCEI USE MODD_TURB_n -USE MODD_CLOUDPAR_n -USE MODD_PRECIP_n -USE MODD_BIKHARDT_n -USE MODD_DEEP_CONVECTION_n -USE MODD_NSV -USE MODD_RADIATIONS_n, ONLY : XTSRAD,XSCAFLASWD,XDIRFLASWD,XDIRSRFSWD, XAER, XDTHRAD -USE MODD_SERIES_n, ONLY: NFREQSERIES -USE MODD_CH_AERO_n, ONLY: XSOLORG, XMI -USE MODD_CH_MNHC_n, ONLY: LUSECHEM,LCH_CONV_LINOX,LUSECHAQ,LUSECHIC, & - LCH_INIT_FIELD -USE MODD_DUST, ONLY: LDUST -USE MODD_SALT, ONLY: LSALT -USE MODD_CST, ONLY: XMD -USE MODD_NUDGING_n -USE MODD_PARAM_MFSHALL_n -USE MODD_ELEC_DESCR -USE MODD_RAIN_ICE_DESCR, ONLY : XRTMIN -USE MODD_ICE_C1R3_DESCR, ONLY : XRTMIN_C1R3=>XRTMIN -USE MODD_PARAM_LIMA, ONLY : XRTMIN_LIMA=>XRTMIN ! -USE MODD_CLOUD_MF_n -USE MODI_INITIAL_GUESS -USE MODI_MEAN_FIELD -USE MODI_BOUNDARIES +USE MODE_ELEC_ll +USE MODE_FM +USE MODE_GRIDCART +USE MODE_GRIDPROJ +USE MODE_IO_ll +USE MODE_IO_WRITE_FIELD +USE MODE_ll +USE MODE_MNH_TIMING +USE MODE_MODELN_HANDLER +USE MODE_MPPDB +USE MODE_NETCDF +! +USE MODI_ADD_FORECAST_TO_DATE USE MODI_ADVECTION_METSV USE MODI_ADVECTION_UVW USE MODI_ADVECTION_UVW_CEN -USE MODI_GRAVITY_IMPL +USE MODI_ADV_FORCING_n +USE MODI_AER_MONITOR_n +USE MODI_AIRCRAFT_BALLOON +USE MODI_BOUNDARIES +USE MODI_BUDGET_FLAGS +USE MODI_CART_COMPRESS +USE MODI_CH_MONITOR_n +USE MODI_DIAG_SURF_ATM_N USE MODI_DYN_SOURCES -USE MODI_RELAXATION -USE MODI_NUM_DIFF -USE MODI_PHYS_PARAM_n -USE MODI_RAD_BOUND -USE MODI_PRESSUREZ +USE MODI_END_DIAG_IN_RUN USE MODI_ENDSTEP +USE MODI_ENDSTEP_BUDGET USE MODI_EXCHANGE -USE MODI_RESOLVED_CLOUD -USE MODI_RESOLVED_ELEC_n -USE MODI_RELAX2FW_ION +USE MODI_FORCING +USE MODI_FORC_SQUALL_LINE +USE MODI_FORC_WIND +USE MODI_GET_HALO +USE MODI_GRAVITY_IMPL +USE MODI_INI_DIAG_IN_RUN +USE MODI_INI_LG +USE MODI_INI_MEAN_FIELD +USE MODI_INITIAL_GUESS +USE MODI_LES_INI_TIMESTEP_n +USE MODI_LES_N +USE MODI_LIMA_PRECIP_SCAVENGING USE MODI_LS_COUPLING -USE MODI_WRITE_DESFM_n -USE MODI_WRITE_LFIFM_n +USE MODI_MASK_COMPRESS +USE MODI_MEAN_FIELD +USE MODI_MENU_DIACHRO +USE MODI_MNHGET_SURF_PARAM_n USE MODI_MNHWRITE_ZS_DUMMY_n -USE MODI_ENDSTEP_BUDGET -USE MODI_BUDGET_FLAGS -USE MODI_ADD_FORECAST_TO_DATE -USE MODI_FORCING -USE MODI_ADV_FORCING_n -USE MODI_REL_FORCING_n USE MODI_NUDGING -USE MODI_TEMPORAL_DIST -USE MODI_WRITE_LFIFMN_FORDIACHRO_n -USE MODI_MENU_DIACHRO -USE MODI_MASK_COMPRESS -USE MODI_CART_COMPRESS -USE MODI_SHUMAN +USE MODI_NUM_DIFF USE MODI_ONE_WAY_n -USE MODI_TWO_WAY -USE MODI_SPAWN_LS_n -USE MODI_LES_INI_TIMESTEP_n -USE MODI_WRITE_LES_n -USE MODI_AIRCRAFT_BALLOON -USE MODI_WRITE_AIRCRAFT_BALLOON -USE MODI_UPDATE_NSV +USE MODI_PHYS_PARAM_n +USE MODI_PRESSUREZ USE MODI_PROFILER_n +USE MODI_RAD_BOUND +USE MODI_RELAX2FW_ION +USE MODI_RELAXATION +USE MODI_REL_FORCING_n +USE MODI_RESOLVED_CLOUD +USE MODI_RESOLVED_ELEC_n +USE MODI_SERIES_N +USE MODI_SETLB_LG +USE MODI_SET_MASK +USE MODI_SHUMAN +USE MODI_SPAWN_LS_n USE MODI_STATION_n -USE MODI_WRITE_SERIES_n +USE MODI_TEMPORAL_DIST +USE MODI_TURB_CLOUD_INDEX +USE MODI_TWO_WAY +USE MODI_UPDATE_NSV +USE MODI_WRITE_AIRCRAFT_BALLOON +USE MODI_WRITE_DESFM_n +USE MODI_WRITE_DIAG_SURF_ATM_N +USE MODI_WRITE_LES_n +USE MODI_WRITE_LFIFM_n +USE MODI_WRITE_LFIFMN_FORDIACHRO_n USE MODI_WRITE_PROFILER_n +USE MODI_WRITE_SERIES_n USE MODI_WRITE_STATION_n -USE MODI_MNHGET_SURF_PARAM_n -USE MODI_INI_DIAG_IN_RUN -USE MODI_END_DIAG_IN_RUN -USE MODI_TURB_CLOUD_INDEX -USE MODI_INI_LG -USE MODI_INI_MEAN_FIELD -USE MODI_CH_MONITOR_n -USE MODI_AER_MONITOR_n -! -USE MODE_GRIDCART -USE MODE_GRIDPROJ -USE MODE_MODELN_HANDLER -! -USE MODD_2D_FRC -USE MODD_TIMEZ -USE MODE_MNH_TIMING -! -USE MODD_PARAM_LIMA, ONLY : MSEDC => LSEDC, MWARM => LWARM, MRAIN => LRAIN, LACTI, & - MACTIT => LACTIT, LSCAV, NMOD_CCN, LCOLD, & - MSEDI => LSEDI, MHHONI => LHHONI, NMOD_IFN, LHAIL -USE MODD_BLANK -! -USE MODI_FORC_WIND -USE MODI_FORC_SQUALL_LINE -USE MODI_LIMA_PRECIP_SCAVENGING -USE MODD_LIMA_PRECIP_SCAVENGING_n -! -USE MODI_SETLB_LG USE MODI_WRITE_SURF_ATM_N -USE MODI_SET_MASK -USE MODI_DIAG_SURF_ATM_N -USE MODI_WRITE_DIAG_SURF_ATM_N -USE MODI_SERIES_N -USE MODI_LES_N -! -USE MODI_GET_HALO -USE MODE_MPPDB -! -USE MODD_MNH_SURFEX_n ! IMPLICIT NONE ! @@ -623,7 +614,7 @@ IF (KTCOUNT == 1) THEN CALL IO_FILE_OPEN_ll(TDIAFILE) ! CALL IO_WRITE_HEADER(TDIAFILE) - CALL WRITE_DESFM_n(IMI,TRIM(TDIAFILE%CNAME)//'.des',CLUOUT) + CALL WRITE_DESFM_n(IMI,TRIM(TDIAFILE%CNAME)//'.des') CALL WRITE_LFIFMN_FORDIACHRO_n(TDIAFILE) ! !* 1.4 Initialization of the list of fields for the halo updates @@ -856,7 +847,7 @@ IF (IMI/=1 .AND. NDAD(IMI)/=IMI .AND. (ISYNCHRO==1 .OR. NDTRATIO(IMI) == 1) ) TH DPTR_XLBXSVS=>XLBXSVS DPTR_XLBYSVS=>XLBYSVS ! - CALL ONE_WAY_n(NDAD(IMI),CLUOUT,XTSTEP,IMI,KTCOUNT, & + CALL ONE_WAY_n(NDAD(IMI),XTSTEP,IMI,KTCOUNT, & DPTR_XBMX1,DPTR_XBMX2,DPTR_XBMX3,DPTR_XBMX4,DPTR_XBMY1,DPTR_XBMY2,DPTR_XBMY3,DPTR_XBMY4, & DPTR_XBFX1,DPTR_XBFX2,DPTR_XBFX3,DPTR_XBFX4,DPTR_XBFY1,DPTR_XBFY2,DPTR_XBFY3,DPTR_XBFY4, & NDXRATIO_ALL(IMI),NDYRATIO_ALL(IMI),NDTRATIO(IMI), & @@ -931,7 +922,7 @@ IF (IBAK < NBAK_NUMB ) THEN ! CALL IO_FILE_OPEN_ll(TZBAKFILE) ! - CALL WRITE_DESFM_n(IMI,TRIM(TZBAKFILE%CNAME)//'.des',CLUOUT) + CALL WRITE_DESFM_n(IMI,TRIM(TZBAKFILE%CNAME)//'.des') CALL IO_WRITE_HEADER(TBACKUPN(IBAK)%TFILE) CALL WRITE_LFIFM_n(TBACKUPN(IBAK)%TFILE,TBACKUPN(IBAK)%TFILE%TDADFILE%CNAME) COUTFMFILE = TZBAKFILE%CNAME @@ -1094,7 +1085,7 @@ IF (NMODEL>1) THEN DPTR_XDIRSRFSWD=>XDIRSRFSWD DPTR_GMASKkids=>GMASKkids ! - CALL TWO_WAY( CLUOUT,NRR,NSV,KTCOUNT,DPTR_XRHODJ,IMI,XTSTEP, & + CALL TWO_WAY( NRR,NSV,KTCOUNT,DPTR_XRHODJ,IMI,XTSTEP, & DPTR_XUM ,DPTR_XVM ,DPTR_XWM , DPTR_XTHM, DPTR_XRM, DPTR_XTKEM, DPTR_XSVM, & DPTR_XRUS,DPTR_XRVS,DPTR_XRWS,DPTR_XRTHS,DPTR_XRRS,DPTR_XRTKES,DPTR_XRSVS, & DPTR_XINPRC,DPTR_XINPRR,DPTR_XINPRS,DPTR_XINPRG,DPTR_XINPRH,DPTR_XPRCONV,DPTR_XPRSCONV, & @@ -1115,10 +1106,10 @@ ZTIME1 = ZTIME2 XTIME_BU_PROCESS = 0. XTIME_LES_BU_PROCESS = 0. IF (LCARTESIAN) THEN - CALL SM_GRIDCART(CLUOUT,XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XDXHAT,XDYHAT,XZZ,ZJ) + CALL SM_GRIDCART(XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XDXHAT,XDYHAT,XZZ,ZJ) XMAP=1. ELSE - CALL SM_GRIDPROJ(CLUOUT,XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XLATORI,XLONORI, & + CALL SM_GRIDPROJ(XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XLATORI,XLONORI, & XMAP,XLAT,XLON,XDXHAT,XDYHAT,XZZ,ZJ) END IF ! @@ -1384,7 +1375,7 @@ IF (.NOT. LSTEADYLS) THEN ! The next current time reachs a NCPL_CUR=NCPL_CUR+1 ! coupling one, LS sources are refreshed ! - CALL LS_COUPLING(CLUOUT,XTSTEP,GSTEADY_DMASS,CCONF, & + CALL LS_COUPLING(XTSTEP,GSTEADY_DMASS,CCONF, & CGETTKET, & CGETRVT,CGETRCT,CGETRRT,CGETRIT, & CGETRST,CGETRGT,CGETRHT,CGETSVT,LCH_INIT_FIELD, NSV, & @@ -1472,7 +1463,7 @@ XTIME_LES_BU_PROCESS = 0. ! CALL MPPDB_CHECK3DM("before ADVEC_METSV:XU/V/W/TH/TKE/T,XRHODJ",PRECISION,& & XUT, XVT, XWT, XTHT, XTKET,XRHODJ) - CALL ADVECTION_METSV ( CLUOUT, TZBAKFILE, GCLOSE_OUT,CUVW_ADV_SCHEME, & + CALL ADVECTION_METSV ( TZBAKFILE, GCLOSE_OUT,CUVW_ADV_SCHEME, & CMET_ADV_SCHEME, CSV_ADV_SCHEME, CCLOUD, NSPLIT, & LSPLIT_CFL, XSPLIT_CFL, LCFL_WRIT, & CLBCX, CLBCY, NRR, NSV, TDTCUR, XTSTEP, & @@ -1612,8 +1603,7 @@ CALL MPPDB_CHECK3DM("before pressurez:XRU/V/WS",PRECISION,XRUS,XRVS,XRWS) XRVS_PRES = XRVS XRWS_PRES = XRWS ! - CALL PRESSUREZ( CLUOUT, & - CLBCX,CLBCY,CPRESOPT,NITR,LITRADJ,KTCOUNT, XRELAX,IMI, & + CALL PRESSUREZ( CLBCX,CLBCY,CPRESOPT,NITR,LITRADJ,KTCOUNT, XRELAX,IMI, & XRHODJ,XDXX,XDYY,XDZZ,XDZX,XDZY,XDXHATM,XDYHATM,XRHOM, & XAF,XBFY,XCF,XTRIGSX,XTRIGSY,NIFAXX,NIFAXY, & NRR,NRRL,NRRI,XDRYMASST,XREFMASS,XMASS_O_PHI0, & @@ -1735,7 +1725,7 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN CALL MNHGET_SURF_PARAM_n (PSEA=ZSEA(:,:),PTOWN=ZTOWN(:,:)) CALL RESOLVED_CLOUD ( CCLOUD, CACTCCN, CSCONV, CMF_CLOUD, NRR, NSPLITR, & NSPLITG, IMI, KTCOUNT, & - CLBCX,CLBCY,TZBAKFILE, CLUOUT, CRAD, CTURBDIM, & + CLBCX,CLBCY,TZBAKFILE, CRAD, CTURBDIM, & GCLOSE_OUT, LSUBG_COND,LSIGMAS,CSUBG_AUCV,XTSTEP, & XZZ, XRHODJ, XRHODREF, XEXNREF, & XPABST, XTHT,XRT,XSIGS,VSIGQSAT,XMFCONV,XTHM,XRCM, & @@ -1744,15 +1734,15 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN XSRCT, XCLDFR,XCIT, & LSEDIC,KACTIT, KSEDC, KSEDI, KRAIN, KWARM, KHHONI, & LCONVHG, XCF_MF,XRC_MF, XRI_MF, & - XINPRC,XINPRR, XINPRR3D, XEVAP3D, & - XINPRS, XINPRG, XINPRH, XSOLORG , XMI, & - XINDEP, XSUPSAT, XNACT, XNPRO,XSSPRO, & - ZSEA, ZTOWN ) + XINPRC,XINPRR, XINPRR3D, XEVAP3D, & + XINPRS, XINPRG, XINPRH, XSOLORG , XMI, & + XINDEP, XSUPSAT, XNACT, XNPRO,XSSPRO, & + ZSEA, ZTOWN ) DEALLOCATE(ZTOWN) ELSE CALL RESOLVED_CLOUD ( CCLOUD, CACTCCN, CSCONV, CMF_CLOUD, NRR, NSPLITR, & NSPLITG, IMI, KTCOUNT, & - CLBCX,CLBCY,TZBAKFILE, CLUOUT, CRAD, CTURBDIM, & + CLBCX,CLBCY,TZBAKFILE, CRAD, CTURBDIM, & GCLOSE_OUT, LSUBG_COND,LSIGMAS,CSUBG_AUCV, & XTSTEP,XZZ, XRHODJ, XRHODREF, XEXNREF, & XPABST, XTHT,XRT,XSIGS,VSIGQSAT,XMFCONV,XTHM,XRCM, & @@ -1761,10 +1751,10 @@ IF (CCLOUD /= 'NONE' .AND. CELEC == 'NONE') THEN XSRCT, XCLDFR,XCIT, & LSEDIC,KACTIT, KSEDC, KSEDI, KRAIN, KWARM, KHHONI, & LCONVHG, XCF_MF,XRC_MF, XRI_MF, & - XINPRC,XINPRR, XINPRR3D, XEVAP3D, & - XINPRS,XINPRG, XINPRH, & - XSOLORG, XMI,& - XINDEP, XSUPSAT, XNACT, XNPRO,XSSPRO ) + XINPRC,XINPRR, XINPRR3D, XEVAP3D, & + XINPRS,XINPRG, XINPRH, & + XSOLORG, XMI, & + XINDEP, XSUPSAT, XNACT, XNPRO,XSSPRO ) END IF XRTHS_CLD = XRTHS - XRTHS_CLD XRRS_CLD = XRRS - XRRS_CLD @@ -1948,7 +1938,7 @@ XT_STEP_SWA = XT_STEP_SWA + ZTIME2 - ZTIME1 - XTIME_BU_PROCESS ZTIME1 = ZTIME2 ! IF (LFLYER) & - CALL AIRCRAFT_BALLOON(CLUOUT, XTSTEP, & + CALL AIRCRAFT_BALLOON(XTSTEP, & TDTEXP, TDTMOD, TDTSEG, TDTCUR, & XXHAT, XYHAT, XZZ, XMAP, XLONORI, XLATORI, & XUT, XVT, XWT, XPABST, XTHT, XRT, XSVT, XTKET, XTSRAD, & @@ -1961,7 +1951,7 @@ IF (LFLYER) & ! -------------------------------- ! IF (LSTATION) & - CALL STATION_n(CLUOUT, XTSTEP, & + CALL STATION_n(XTSTEP, & TDTEXP, TDTMOD, TDTSEG, TDTCUR, & XXHAT, XYHAT, XZZ, & XUT, XVT, XWT, XTHT, XRT, XSVT, XTKET, XTSRAD, XPABST ) @@ -1972,7 +1962,7 @@ IF (LSTATION) & ! --------------------------------- ! IF (LPROFILER) & - CALL PROFILER_n(CLUOUT, XTSTEP, & + CALL PROFILER_n(XTSTEP, & TDTEXP, TDTMOD, TDTSEG, TDTCUR, & XXHAT, XYHAT, XZZ,XRHODREF, & XUT, XVT, XWT, XTHT, XRT, XSVT, XTKET, XTSRAD, XPABST, & @@ -1999,7 +1989,7 @@ CALL END_DIAG_IN_RUN ZTIME1 = ZTIME2 ! IF (NBUMOD==IMI .AND. CBUTYPE/='NONE') THEN - CALL ENDSTEP_BUDGET(TDIAFILE,CLUOUT,KTCOUNT,TDTCUR,TDTMOD,XTSTEP,NSV) + CALL ENDSTEP_BUDGET(TDIAFILE,KTCOUNT,TDTCUR,TDTMOD,XTSTEP,NSV) END IF ! CALL SECOND_MNH2(ZTIME2) @@ -2042,7 +2032,7 @@ END IF ! IF (OEXIT) THEN ! - IF (LSERIES) CALL WRITE_SERIES_n(TDIAFILE,CLUOUT) + IF (LSERIES) CALL WRITE_SERIES_n(TDIAFILE) CALL WRITE_AIRCRAFT_BALLOON(TDIAFILE) CALL WRITE_STATION_n(TDIAFILE) CALL WRITE_PROFILER_n(TDIAFILE) @@ -2050,7 +2040,7 @@ IF (OEXIT) THEN CALL WRITE_LES_n(TDIAFILE,'A') CALL WRITE_LES_n(TDIAFILE,'E') CALL WRITE_LES_n(TDIAFILE,'H') - CALL MENU_DIACHRO(TDIAFILE,CLUOUT,'END') + CALL MENU_DIACHRO(TDIAFILE,'END') CALL IO_FILE_CLOSE_ll(TDIAFILE) ! CALL IO_FILE_CLOSE_ll(TINIFILE) diff --git a/src/MNH/modules_diachro.f90 b/src/MNH/modules_diachro.f90 index aed84fc7c1e70c94cb22c697c10fd9bc407c629d..a6259e1a48be203a6c876b9590b14544be4bcb2c 100644 --- a/src/MNH/modules_diachro.f90 +++ b/src/MNH/modules_diachro.f90 @@ -14,12 +14,11 @@ ! INTERFACE ! -SUBROUTINE MENU_DIACHRO(TPDIAFILE,HLUOUTDIA,HGROUP) +SUBROUTINE MENU_DIACHRO(TPDIAFILE,HGROUP) USE MODD_IO_ll, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write CHARACTER(LEN=*), INTENT(IN) :: HGROUP -CHARACTER(LEN=*), INTENT(IN) :: HLUOUTDIA ! END SUBROUTINE MENU_DIACHRO ! diff --git a/src/MNH/one_wayn.f90 b/src/MNH/one_wayn.f90 index 22c5a35a32b9c416783b4f3f1d5d31efcb6b4917..e1bf6f18715ab884e5038a703a4d87f4882cf8c2 100644 --- a/src/MNH/one_wayn.f90 +++ b/src/MNH/one_wayn.f90 @@ -14,7 +14,7 @@ ! INTERFACE ! - SUBROUTINE ONE_WAY_n(KDAD,HLUOUT,PTSTEP,KMI,KTCOUNT, & + SUBROUTINE ONE_WAY_n(KDAD,PTSTEP,KMI,KTCOUNT, & PBMX1,PBMX2,PBMX3,PBMX4,PBMY1,PBMY2,PBMY3,PBMY4, & PBFX1,PBFX2,PBFX3,PBFX4,PBFY1,PBFY2,PBFY3,PBFY4, & KDXRATIO,KDYRATIO,KDTRATIO, & @@ -36,7 +36,6 @@ INTERFACE ! ! INTEGER, INTENT(IN) :: KDAD ! Number of the DAD model -CHARACTER (LEN=*),INTENT(IN) :: HLUOUT ! name of the output-listing REAL, INTENT(IN) :: PTSTEP ! Time step INTEGER, INTENT(IN) :: KMI ! model number @@ -93,7 +92,7 @@ END INTERFACE END MODULE MODI_ONE_WAY_n ! ! #################################################################### -SUBROUTINE ONE_WAY_n(KDAD,HLUOUT,PTSTEP,KMI,KTCOUNT, & +SUBROUTINE ONE_WAY_n(KDAD,PTSTEP,KMI,KTCOUNT, & PBMX1,PBMX2,PBMX3,PBMX4,PBMY1,PBMY2,PBMY3,PBMY4, & PBFX1,PBFX2,PBFX3,PBFX4,PBFY1,PBFY2,PBFY3,PBFY4, & KDXRATIO,KDYRATIO,KDTRATIO, & @@ -222,7 +221,6 @@ IMPLICIT NONE ! ! INTEGER, INTENT(IN) :: KDAD ! Number of the DAD model -CHARACTER (LEN=*),INTENT(IN) :: HLUOUT ! name for output-listing REAL, INTENT(IN) :: PTSTEP ! Time step INTEGER, INTENT(IN) :: KMI ! model number INTEGER, INTENT(IN) :: KTCOUNT ! Temporal loop COUNTer @@ -434,7 +432,7 @@ IF (HCLOUD=="C2R2" .OR. HCLOUD=="KHKO") THEN ELSE IF (CCLOUD == "KESS" ) THEN ZINIT_TYPE = "INI2" END IF - CALL SET_CONC_RAIN_C2R2 (HLUOUT,ZINIT_TYPE,XRHODREF,XRT,ZCONCT) + CALL SET_CONC_RAIN_C2R2(ZINIT_TYPE,XRHODREF,XRT,ZCONCT) DO JSV=1,3 CALL SET_LSFIELD_1WAY_ll(ZCONCT(:,:,:,JSV),& &ZTSVT(:,:,:,JSV-1+NSV_C2R2BEG_A(KMI)),KMI) @@ -460,13 +458,13 @@ IF (HCLOUD=="C3R5") THEN ELSE IF (CCLOUD == "KESS" ) THEN ZINIT_TYPE = "INI2" END IF - CALL SET_CONC_RAIN_C2R2 (HLUOUT,ZINIT_TYPE,XRHODREF,XRT,ZCONCT) + CALL SET_CONC_RAIN_C2R2(ZINIT_TYPE,XRHODREF,XRT,ZCONCT) DO JSV=1,3 CALL SET_LSFIELD_1WAY_ll(ZCONCT(:,:,:,JSV),& &ZTSVT(:,:,:,JSV-1+NSV_C2R2BEG_A(KMI)),KMI) ENDDO ZINIT_TYPE="INI3" - CALL SET_CONC_ICE_C1R3 (HLUOUT,XRHODREF,XRT,ZCONCT) + CALL SET_CONC_ICE_C1R3 (XRHODREF,XRT,ZCONCT) DO JSV=4,5 CALL SET_LSFIELD_1WAY_ll(ZCONCT(:,:,:,JSV),& &ZTSVT(:,:,:,JSV-4+NSV_C1R3BEG_A(KMI)),KMI) @@ -493,7 +491,7 @@ IF (HCLOUD=="LIMA" ) THEN ELSE ZINIT_TYPE = "NONE" END IF - CALL SET_CONC_LIMA (HLUOUT,ZINIT_TYPE,XRHODREF,XRT,ZCONCT) + CALL SET_CONC_LIMA (ZINIT_TYPE,XRHODREF,XRT,ZCONCT) DO JSV=1,NSV_LIMA_A(KMI) CALL SET_LSFIELD_1WAY_ll(ZCONCT(:,:,:,JSV),& &ZTSVT(:,:,:,JSV-1+NSV_LIMA_BEG_A(KMI)),KMI) @@ -523,7 +521,7 @@ IF (OUSECHAQ) THEN IF (.NOT.(LUSECHAQ)) THEN ALLOCATE(ZCHEMT(SIZE(XRHODJ,1),SIZE(XRHODJ,2),SIZE(XRHODJ,3),& NSV_CHEM_A(KMI))) - CALL SET_CHEMAQ_1WAY(HLUOUT,XRHODREF,& + CALL SET_CHEMAQ_1WAY(XRHODREF,& XSVT(:,:,:,NSV_CHEMBEG_A(KDAD):NSV_CHEMEND_A(KDAD)),ZCHEMT) DO JSV=1,NSV_CHEM_A(KMI) CALL SET_LSFIELD_1WAY_ll(ZCHEMT(:,:,:,JSV),& diff --git a/src/MNH/open_nestpgd_files.f90 b/src/MNH/open_nestpgd_files.f90 index 8fc74d0b33041bb818e9322436ce2c3893c9b267..f76445939eb97d0def5031f52e098eb34d9d9c41 100644 --- a/src/MNH/open_nestpgd_files.f90 +++ b/src/MNH/open_nestpgd_files.f90 @@ -84,7 +84,7 @@ USE MODD_IO_ll, ONLY : LIOCDF4,LLFIOUT,TFILE_OUTPUTLISTING,TFILEDATA,TPTR2FILE ! USE MODE_IO_ll USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST -USE MODE_FM +USE MODE_FM, ONLY : IO_FILE_OPEN_ll, IO_FILE_CLOSE_ll USE MODE_POS USE MODE_MSG ! @@ -127,7 +127,6 @@ INTEGER :: JPGD ! loop counter LOGICAL :: GADD ! INTEGER :: NHALO_MNH ! -INTEGER :: ILUOUT ! Logical unit number for the EXSPA file TYPE(TFILEDATA),POINTER :: TZDADFILE TYPE(TFILEDATA),POINTER :: TZPRE_NEST_PGD ! @@ -176,7 +175,6 @@ CALL IO_FILE_ADD2LIST(TZPRE_NEST_PGD,TRIM(HPRE_NEST_PGD),'NML','READ') CALL IO_FILE_OPEN_ll(TZPRE_NEST_PGD) IPRE_NEST_PGD = TZPRE_NEST_PGD%NLU !reading of NAM_CONFZ -CALL FMLOOK_ll(HPRE_NEST_PGD,HPRE_NEST_PGD,ILUOUT,IRESP) CALL POSNAM(IPRE_NEST_PGD,'NAM_CONFZ',GFOUND) IF (GFOUND) READ(UNIT=IPRE_NEST_PGD,NML=NAM_CONFZ) ! diff --git a/src/MNH/phys_paramn.f90 b/src/MNH/phys_paramn.f90 index b43b5990b3653b45badb49aa0d6c5534e9aba095..400f590f761a693b65b55817740c209a8a96c72f 100644 --- a/src/MNH/phys_paramn.f90 +++ b/src/MNH/phys_paramn.f90 @@ -726,7 +726,7 @@ CALL SUNPOS_n ( XZENITH, ZCOSZEN, ZSINZEN, ZAZIMSOL ) XLWD(:,:,:)=0.0 XDTHRADSW(:,:,:)=0.0 XDTHRADLW(:,:,:)=0.0 - CALL RADIATIONS ( OCLOSE_OUT, TPFILE, CLUOUT, & + CALL RADIATIONS ( OCLOSE_OUT, TPFILE, & LCLEAR_SKY,OCLOUD_ONLY, NCLEARCOL_TM1,CEFRADL, CEFRADI,COPWSW,COPISW,& COPWLW,COPILW, XFUDG, & NDLON, NFLEV, NRAD_DIAG, NFLUX, NRAD, NAER,NSWB, NSTATM, NRAD_COLNBR,& diff --git a/src/MNH/polar_calc.f90 b/src/MNH/polar_calc.f90 index d38603d2d70bb4f3cdac482ca33d871a9fbd5596..93927876eff7bbb52f073f7170f24329911301d4 100644 --- a/src/MNH/polar_calc.f90 +++ b/src/MNH/polar_calc.f90 @@ -79,13 +79,12 @@ END MODULE MODI_POLAR_CALC !* 0. DECLARATIONS ! ------------ ! -USE MODD_CONF, ONLY: NVERB -USE MODD_CST, ONLY: XPI -USE MODD_LUNIT, ONLY: CLUOUT0 +USE MODD_CONF, ONLY: NVERB +USE MODD_CST, ONLY: XPI USE MODD_DIM_n, ONLY: NIMAX,NJMAX USE MODD_GRID_n, ONLY: XXHAT,XYHAT +USE MODD_LUNIT, ONLY: TLUOUT0 ! -USE MODE_FM USE MODE_ll ! IMPLICIT NONE @@ -107,9 +106,9 @@ REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZVARCYL2 REAL, DIMENSION(SIZE(PVARCYL,1)) :: ZRADIUS REAL :: ZXI0,ZYJ0,ZX00,ZY00,ZXK,ZYK REAL :: ZDELTAX,ZDELTAY,ZDELTAR,ZDPHI,ZPHI +INTEGER :: ILUOUT0 INTEGER :: IIX,IIY INTEGER :: IR,IPHI,IP ! arrays dimensions -INTEGER :: IRET, ILUOUT0 INTEGER :: IIB,IJB,IIE,IJE INTEGER :: JR,JPHI,JP INTEGER,DIMENSION(SIZE(PVARCYL,2)) :: IPBL @@ -119,7 +118,7 @@ INTEGER,DIMENSION(SIZE(PVARCYL,2)) :: IPBL !* 1. INITIALIZATIONS ! --------------- ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRET) +ILUOUT0 = TLUOUT0%NLU ! IR=SIZE(PVARCYL,1) IPHI=SIZE(PVARCYL,2) diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90 index 40df2ddbc9e9982bfb57c9e181f6b1cc35198a09..55fbf54b34866062d46f5aaa5321226427a7f1a7 100644 --- a/src/MNH/prep_ideal_case.f90 +++ b/src/MNH/prep_ideal_case.f90 @@ -459,7 +459,6 @@ INTEGER :: JLOOP,JILOOP,JJLOOP ! Loop indexes INTEGER :: NIB,NJB,NKB ! Begining useful area in x,y,z directions INTEGER :: NIE,NJE ! Ending useful area in x,y directions INTEGER :: NIU,NJU,NKU ! Upper bounds in x,y,z directions -CHARACTER (LEN=32) :: CEXPRE ! name of the EXPRE file CHARACTER (LEN=32) :: CDESFM ! Name of DESFM file CHARACTER(LEN=4) :: CIDEAL ='CSTN' ! kind of idealized fields ! 'CSTN' : Nv=cste case @@ -675,7 +674,6 @@ CALL DEFAULT_EXPRE ! CLUOUT = 'OUTPUT_LISTING1' CLUOUT0 = CLUOUT -CEXPRE = 'PRE_IDEA1.nam' CALL IO_FILE_ADD2LIST(TLUOUT0,CLUOUT0,'OUTPUTLISTING','WRITE') CALL IO_FILE_OPEN_ll(TLUOUT0) NLUOUT = TLUOUT0%NLU @@ -683,13 +681,13 @@ NLUOUT = TLUOUT0%NLU TLUOUT => TLUOUT0 TFILE_OUTPUTLISTING => TLUOUT0 ! -CALL IO_FILE_ADD2LIST(TZEXPREFILE,TRIM(CEXPRE),'NML','READ') +CALL IO_FILE_ADD2LIST(TZEXPREFILE,'PRE_IDEA1.nam','NML','READ') CALL IO_FILE_OPEN_ll(TZEXPREFILE) NLUPRE=TZEXPREFILE%NLU ! !* 3.2 read in NLUPRE the namelist informations ! -WRITE(NLUOUT,FMT=*) 'attempt to read ',TRIM(CEXPRE),' file' +WRITE(NLUOUT,FMT=*) 'attempt to read ',TRIM(TZEXPREFILE%CNAME),' file' CALL POSNAM(NLUPRE,'NAM_REAL_PGD',GFOUND,NLUOUT) IF (GFOUND) READ(UNIT=NLUPRE,NML=NAM_REAL_PGD) ! @@ -1032,9 +1030,9 @@ IF ( L1D) THEN ! 1D case ! ELSEIF( L2D ) THEN ! 2D case (not yet parallelized) ! - CALL GET_SIZEX_LB(CLUOUT,NIMAX_ll,NJMAX_ll,NRIMX, & - IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, & - IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2) + CALL GET_SIZEX_LB(NIMAX_ll,NJMAX_ll,NRIMX, & + IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, & + IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2) NSIZELBY_ll=0 NSIZELBYV_ll=0 NSIZELBYTKE_ll=0 @@ -1116,12 +1114,12 @@ ELSEIF( L2D ) THEN ! 2D case (not yet parallelized) ! ELSE ! 3D case ! - CALL GET_SIZEX_LB(CLUOUT,NIMAX_ll,NJMAX_ll,NRIMX, & - IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, & - IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2) - CALL GET_SIZEY_LB(CLUOUT,NIMAX_ll,NJMAX_ll,NRIMY, & - IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV, & - IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2) + CALL GET_SIZEX_LB(NIMAX_ll,NJMAX_ll,NRIMX, & + IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, & + IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2) + CALL GET_SIZEY_LB(NIMAX_ll,NJMAX_ll,NRIMY, & + IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV, & + IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2) ! IF ( LHORELAX_UVWTH ) THEN NSIZELBX_ll=2*NRIMX+2*JPHEXT @@ -1419,10 +1417,10 @@ IF ( LEN_TRIM(CPGD_FILE) == 0 .OR. .NOT. LREAD_ZS) THEN END IF ! IF (LCARTESIAN) THEN - CALL SM_GRIDCART(CLUOUT,XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XDXHAT,XDYHAT,XZZ,XJ) + CALL SM_GRIDCART(XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XDXHAT,XDYHAT,XZZ,XJ) XMAP=1. ELSE - CALL SM_GRIDPROJ(CLUOUT,XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XLATORI,XLONORI, & + CALL SM_GRIDPROJ(XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XLATORI,XLONORI, & XMAP,XLAT,XLON,XDXHAT,XDYHAT,XZZ,XJ) END IF !* 5.4.1 metrics coefficients and update halos: @@ -1495,10 +1493,10 @@ IF (CIDEAL == 'RSOU') THEN BACKSPACE(NLUPRE) ! because YKIND read again in set_rsou WRITE(NLUOUT,FMT=*) 'CIDEAL="RSOU", ATTEMPT TO PROCESS THE SOUNDING DATA' IF (LGEOSBAL) THEN - CALL SET_RSOU(TZFILE,CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,& + CALL SET_RSOU(TZFILE,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,& LRMV_BL,XJ,LSHIFT,XCORIOZ) ELSE - CALL SET_RSOU(TZFILE,CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,& + CALL SET_RSOU(TZFILE,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,& LRMV_BL,XJ,LSHIFT) END IF ! @@ -1514,10 +1512,10 @@ ELSE IF (CIDEAL == 'CSTN') THEN TDTMOD = TDTCUR WRITE(NLUOUT,FMT=*) 'CIDEAL="CSTN", ATTEMPT TO PROCESS THE SOUNDING DATA' IF (LGEOSBAL) THEN - CALL SET_CSTN(TZFILE,CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,& + CALL SET_CSTN(TZFILE,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,& LRMV_BL,XJ,LSHIFT,XCORIOZ) ELSE - CALL SET_CSTN(TZFILE,CEXPRE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,& + CALL SET_CSTN(TZFILE,TZEXPREFILE,CFUNU,CFUNV,NILOC(1),NJLOC(1),LBOUSS,LPV_PERT,& LRMV_BL,XJ,LSHIFT) END IF ! @@ -1528,7 +1526,7 @@ END IF IF (LFORCING) THEN WRITE(NLUOUT,FMT=*) 'FORCING IS ENABLED, ATTEMPT TO SET FORCING FIELDS' CALL POSKEY(NLUPRE,NLUOUT,'ZFRC ','PFRC') - CALL SET_FRC(CEXPRE) + CALL SET_FRC(TZEXPREFILE) END IF ! !! --------------------------------------------------------------------- @@ -1539,14 +1537,14 @@ IF (L2D_ADV_FRC) THEN WRITE(NLUOUT,FMT=*) 'ADVECTING FORCING USED IS USER MADE, NOT STANDARD ONE ' WRITE(NLUOUT,FMT=*) 'IT IS FOR 2D IDEALIZED WAM STUDY ONLY ' CALL POSKEY(NLUPRE,NLUOUT,'ZFRC_ADV') - CALL SET_ADVFRC(CEXPRE) + CALL SET_ADVFRC(TZEXPREFILE) ENDIF IF (L2D_REL_FRC) THEN WRITE(NLUOUT,FMT=*) 'L2D_REL_FRC IS SET TO TRUE' WRITE(NLUOUT,FMT=*) 'RELAXATION FORCING USED IS USER MADE, NOT STANDARD ONE ' WRITE(NLUOUT,FMT=*) 'IT IS FOR 2D IDEALIZED WAM STUDY ONLY ' CALL POSKEY(NLUPRE,NLUOUT,'ZFRC_REL') - CALL SET_RELFRC(CEXPRE) + CALL SET_RELFRC(TZEXPREFILE) ENDIF !* 5.4 3D Reference state variables : ! @@ -1559,10 +1557,10 @@ CALL UPDATE_METRICS(CLBCX,CLBCY,XDXX,XDYY,XDZX,XDZY,XDZZ) ! !* 5.4.2 3D reference state : ! -CALL SET_REF(0,TZFILEDUMMY,CLUOUT, & - XZZ,XZHAT,XJ,XDXX,XDYY,CLBCX,CLBCY, & - XREFMASS,XMASS_O_PHI0,XLINMASS, & - XRHODREF,XTHVREF,XRVREF,XEXNREF,XRHODJ ) +CALL SET_REF(0,TZFILEDUMMY, & + XZZ,XZHAT,XJ,XDXX,XDYY,CLBCX,CLBCY, & + XREFMASS,XMASS_O_PHI0,XLINMASS, & + XRHODREF,XTHVREF,XRVREF,XEXNREF,XRHODJ) ! ! !* 5.5.1 Absolute pressure : @@ -1570,7 +1568,7 @@ CALL SET_REF(0,TZFILEDUMMY,CLUOUT, & ! !* 5.5.2 Total mass of dry air Md computation : ! -CALL TOTAL_DMASS(CLUOUT,XJ,XRHODREF,XDRYMASST) +CALL TOTAL_DMASS(XJ,XRHODREF,XDRYMASST) ! ! !* 5.6 Complete prognostic variables (multipliy by rhoJ) at time t : @@ -1651,7 +1649,7 @@ END DO ! !* 5.8 Add a perturbation to a basic state : ! -IF(LPERTURB) CALL SET_PERTURB(CEXPRE) +IF(LPERTURB) CALL SET_PERTURB(TZEXPREFILE) ! ! !* 5.9 Anelastic correction and pressure: @@ -1748,7 +1746,7 @@ CALL IO_FILE_OPEN_ll(TINIFILE) ! CALL IO_WRITE_HEADER(TINIFILE) ! -CALL WRITE_DESFM_n(1,CDESFM,CLUOUT) +CALL WRITE_DESFM_n(1,CDESFM) ! CALL WRITE_LFIFM_n(TINIFILE,'') ! There is no DAD model for PREP_IDEAL_CASE ! diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90 index 0b3eb434a93e0f87ea30a0d3bd975d472084eee4..eaef806eaffaad80bc22edaa108a3cba01ea4a34 100644 --- a/src/MNH/prep_real_case.f90 +++ b/src/MNH/prep_real_case.f90 @@ -826,10 +826,10 @@ ALLOCATE(XZZ(SIZE(XXHAT),SIZE(XYHAT),SIZE(XZHAT))) ALLOCATE(ZJ(SIZE(XXHAT),SIZE(XYHAT),SIZE(XZHAT))) ! IF (LCARTESIAN) THEN - CALL SM_GRIDCART(CLUOUT0,XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XDXHAT,XDYHAT,XZZ,ZJ) + CALL SM_GRIDCART(XXHAT,XYHAT,XZHAT,XZS,LSLEVE,XLEN1,XLEN2,XZSMT,XDXHAT,XDYHAT,XZZ,ZJ) XMAP=1. ELSE - CALL SM_GRIDPROJ(CLUOUT0,XXHAT,XYHAT,XZHAT,XZS, & + CALL SM_GRIDPROJ(XXHAT,XYHAT,XZHAT,XZS, & LSLEVE,XLEN1,XLEN2,XZSMT,XLATORI,XLONORI, & XMAP,XLAT,XLON,XDXHAT,XDYHAT,XZZ,ZJ ) END IF @@ -1062,7 +1062,7 @@ IF (YATMFILETYPE=='GRIBEX') THEN END IF ! YDESFM=TRIM(TINIFILE%CNAME)//'.des' -CALL WRITE_DESFM_n(1,YDESFM,CLUOUT0) +CALL WRITE_DESFM_n(1,YDESFM) CALL IO_WRITE_HEADER(TINIFILE,HDAD_NAME=YDAD_NAME) CALL WRITE_LFIFM_n(TINIFILE,YDAD_NAME) ! diff --git a/src/MNH/prep_surf_mnh.f90 b/src/MNH/prep_surf_mnh.f90 index 47067da094a49f5529256f1eb48a77f8db3666ff..13521b5107363c2f6c82f4b482bf4df469336d00 100644 --- a/src/MNH/prep_surf_mnh.f90 +++ b/src/MNH/prep_surf_mnh.f90 @@ -49,19 +49,16 @@ END MODULE MODI_PREP_SURF_MNH !! P.Wautelet : 08/07/2016 : removed MNH_NCWRIT define !------------------------------------------------------------------ ! - -! +USE MODD_IO_SURF_MNH, ONLY : COUTFILE +USE MODD_LUNIT, ONLY : COUTFMFILE, TLUOUT0 USE MODD_LUNIT_n, ONLY : CINIFILE +USE MODD_MNH_SURFEX_n USE MODD_TIME_n, ONLY : TDTCUR -USE MODD_LUNIT, ONLY : CLUOUT0, COUTFMFILE -USE MODD_IO_SURF_MNH, ONLY : COUTFILE -USE MODE_FM ! USE MODI_INIT_PGD_SURF_ATM USE MODI_PREP_SURF_ATM -USE MODI_WRITE_SURF_ATM_N USE MODI_WRITE_DIAG_SURF_ATM_N -USE MODD_MNH_SURFEX_n +USE MODI_WRITE_SURF_ATM_N ! IMPLICIT NONE ! @@ -76,12 +73,11 @@ CHARACTER(LEN=6), INTENT(IN) :: HATMFILETYPE! type of the Atmospheric file ! CHARACTER(LEN=28) :: YPGDFILE =' ' ! name of the pgd file CHARACTER(LEN=6) :: YPGDFILETYPE =' ' ! type of the pgd file -INTEGER :: ILUOUT0 ! logical unit for listing file -INTEGER :: IRESP ! return code in FM routines -CHARACTER(LEN=6) :: YATMFILETYPE ! type of the Atmospheric file +INTEGER :: ILUOUT0 ! logical unit for listing file +CHARACTER(LEN=6) :: YATMFILETYPE ! type of the Atmospheric file !------------------------------------------------------------------ ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) +ILUOUT0 = TLUOUT0%NLU WRITE(ILUOUT0,*) '***************************************************' WRITE(ILUOUT0,*) '***************** EXTERNALIZED SURFACE ************' WRITE(ILUOUT0,*) '***************************************************' diff --git a/src/MNH/pressure.f90 b/src/MNH/pressure.f90 index 4357eb147b084e7c36fd44a7e2e0d72ea90172d6..e3feba7a8b38b602539ea1043fe7c7c91a74294b 100644 --- a/src/MNH/pressure.f90 +++ b/src/MNH/pressure.f90 @@ -13,7 +13,7 @@ MODULE MODI_PRESSURE ! INTERFACE ! - SUBROUTINE PRESSURE(HLUOUT, & + SUBROUTINE PRESSURE( & HLBCX,HLBCY,HPRESOPT,KITR,OITRADJ,KTCOUNT,PRELAX,KMI, & PRHODJ,PDXX,PDYY,PDZZ,PDZX,PDZY,PDXHATM,PDYHATM,PRHOM, & PAF,PBF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY,PPABSM, & @@ -23,8 +23,6 @@ INTERFACE ! IMPLICIT NONE ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for - ! model n CHARACTER (LEN=*), DIMENSION(:), INTENT(IN) :: HLBCX ! x-direction LBC type CHARACTER (LEN=*), DIMENSION(:), INTENT(IN) :: HLBCY ! y-direction LBC type ! @@ -104,7 +102,7 @@ END INTERFACE ! END MODULE MODI_PRESSURE ! ###################################################################### - SUBROUTINE PRESSURE(HLUOUT, & + SUBROUTINE PRESSURE( & HLBCX,HLBCY,HPRESOPT,KITR,OITRADJ,KTCOUNT,PRELAX,KMI, & PRHODJ,PDXX,PDYY,PDZZ,PDZX,PDZY,PDXHATM,PDYHATM,PRHOM, & PAF,PBF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY,PPABSM, & @@ -214,6 +212,7 @@ USE MODD_PARAMETERS USE MODD_BUDGET USE MODD_CONF USE MODD_CST +USE MODD_LUNIT_n, ONLY: TLUOUT USE MODI_MASS_LEAK USE MODI_GDIV USE MODI_FLAT_INV @@ -227,14 +226,11 @@ USE MODI_BUDGET ! USE MODD_ARGSLIST_ll, ONLY : LIST_ll USE MODE_ll -USE MODE_FM ! IMPLICIT NONE ! !* 0.1 declarations of arguments ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for - ! model n CHARACTER (LEN=*), DIMENSION(:), INTENT(IN) :: HLBCX ! x-direction LBC type CHARACTER (LEN=*), DIMENSION(:), INTENT(IN) :: HLBCY ! y-direction LBC type ! @@ -323,7 +319,6 @@ INTEGER :: IJE ! indice J for the last inner mass point along y INTEGER :: IKB ! indice K for the first inner mass point along z INTEGER :: IKE ! indice K for the last inner mass point along z INTEGER :: ILUOUT ! Logical unit of output listing -INTEGER :: IRESP ! Return code of FM routines ! REAL, DIMENSION(SIZE(PPABSM,1),SIZE(PPABSM,2),SIZE(PPABSM,3)) :: ZTHETAV, & ! virtual potential temperature @@ -356,7 +351,7 @@ NULLIFY(TZFIELDS_2_ll) !* 1. PRELIMINARIES ! ------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! CALL GET_PHYSICAL_ll(IIB,IJB,IIE,IJE) CALL GET_DIM_EXT_ll('B',IIU,IJU) diff --git a/src/MNH/pressurez.f90 b/src/MNH/pressurez.f90 index e714f89d10398fa5f19a03e617c5643b22ddac94..73290bade26a81f039eda9ca6a0590498f47d7ca 100644 --- a/src/MNH/pressurez.f90 +++ b/src/MNH/pressurez.f90 @@ -13,7 +13,7 @@ MODULE MODI_PRESSUREZ ! INTERFACE ! - SUBROUTINE PRESSUREZ(HLUOUT, & + SUBROUTINE PRESSUREZ( & HLBCX,HLBCY,HPRESOPT,KITR,OITRADJ,KTCOUNT,PRELAX,KMI, & PRHODJ,PDXX,PDYY,PDZZ,PDZX,PDZY,PDXHATM,PDYHATM,PRHOT, & PAF,PBF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY, & @@ -26,8 +26,6 @@ INTERFACE ! IMPLICIT NONE ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for - ! model n CHARACTER (LEN=*), DIMENSION(:), INTENT(IN) :: HLBCX ! x-direction LBC type CHARACTER (LEN=*), DIMENSION(:), INTENT(IN) :: HLBCY ! y-direction LBC type ! @@ -110,7 +108,7 @@ END INTERFACE ! END MODULE MODI_PRESSUREZ ! ###################################################################### - SUBROUTINE PRESSUREZ(HLUOUT, & + SUBROUTINE PRESSUREZ( & HLBCX,HLBCY,HPRESOPT,KITR,OITRADJ,KTCOUNT,PRELAX,KMI, & PRHODJ,PDXX,PDYY,PDZZ,PDZX,PDZY,PDXHATM,PDYHATM,PRHOT, & PAF,PBF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY, & @@ -226,43 +224,40 @@ END MODULE MODI_PRESSUREZ !* 0. DECLARATIONS ! ------------ ! -USE MODD_PARAMETERS +USE MODD_ARGSLIST_ll, ONLY: LIST_ll USE MODD_BUDGET -USE MODD_CONF USE MODD_CST -USE MODD_REF, ONLY : LBOUSS -USE MODI_MASS_LEAK -USE MODI_GDIV -USE MODI_FLAT_INV -USE MODI_FLAT_INVZ -USE MODI_RICHARDSON +USE MODD_CONF +USE MODD_DYN_n, ONLY: LRES, XRES +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_MPIF +USE MODD_PARAMETERS +USE MODD_REF, ONLY: LBOUSS +USE MODD_VAR_ll, ONLY: MPI_PRECISION, NMNH_COMM_WORLD , NPROC +! +USE MODE_IO_ll, ONLY: CLOSE_ll +USE MODE_ll +USE MODE_MPPDB +USE MODE_MSG +! +USE MODI_BUDGET USE MODI_CONJGRAD USE MODI_CONRESOL USE MODI_CONRESOLZ +USE MODI_FLAT_INV +USE MODI_FLAT_INVZ +USE MODI_GDIV USE MODI_GRADIENT_M -USE MODI_SHUMAN +USE MODI_MASS_LEAK USE MODI_P_ABS -USE MODI_BUDGET -! -USE MODD_ARGSLIST_ll, ONLY : LIST_ll -USE MODE_ll -USE MODE_FM -USE MODE_MSG -!JUANZ +USE MODI_RICHARDSON +USE MODI_SHUMAN USE MODI_SUM_ll , ONLY : GMAXLOC_ll -USE MODD_DYN_n , ONLY : LRES, XRES -USE MODD_MPIF -USE MODD_VAR_ll, ONLY : MPI_PRECISION, NMNH_COMM_WORLD , NPROC -!JUANZ -USE MODE_MPPDB -USE MODE_IO_ll, ONLY: CLOSE_ll ! IMPLICIT NONE ! !* 0.1 declarations of arguments ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for - ! model n CHARACTER (LEN=*), DIMENSION(:), INTENT(IN) :: HLBCX ! x-direction LBC type CHARACTER (LEN=*), DIMENSION(:), INTENT(IN) :: HLBCY ! y-direction LBC type ! @@ -386,7 +381,7 @@ INTEGER :: IIMAX_ll,IJMAX_ll !* 1. PRELIMINARIES ! ------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! CALL GET_GLOBALDIMS_ll (IIMAX_ll,IJMAX_ll) IF ( ( MIN(IIMAX_ll,IJMAX_ll) < NPROC ) .AND. ( HPRESOPT /= 'ZRESI' ) ) THEN diff --git a/src/MNH/profilern.f90 b/src/MNH/profilern.f90 index 84d627190cf4c1260a089b1ece3ba6f702095c1c..041e1f2a189bfad1bb4f72a62e52f0c960890d1d 100644 --- a/src/MNH/profilern.f90 +++ b/src/MNH/profilern.f90 @@ -14,7 +14,7 @@ MODULE MODI_PROFILER_n ! INTERFACE ! - SUBROUTINE PROFILER_n(HLUOUT, PTSTEP, & + SUBROUTINE PROFILER_n(PTSTEP, & TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ,PRHODREF, & PU, PV, PW, PTH, PR, PSV, PTKE, & @@ -22,7 +22,6 @@ INTERFACE ! USE MODD_TYPE_DATE ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! output listing REAL, INTENT(IN) :: PTSTEP ! time step TYPE(DATE_TIME), INTENT(IN) :: TPDTEXP! experiment date and time TYPE(DATE_TIME), INTENT(IN) :: TPDTMOD! model start date and time @@ -54,7 +53,7 @@ END INTERFACE END MODULE MODI_PROFILER_n ! ! ######################################################## - SUBROUTINE PROFILER_n(HLUOUT, PTSTEP, & + SUBROUTINE PROFILER_n(PTSTEP, & TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ,PRHODREF, & PU, PV, PW, PTH, PR, PSV, PTKE, & @@ -112,7 +111,6 @@ USE MODD_DIAG_IN_RUN USE MODD_CONF USE MODD_NSV ! -USE MODE_FM, ONLY : FMLOOK_ll USE MODE_ll ! USE MODI_WATER_SUM @@ -130,7 +128,6 @@ IMPLICIT NONE !* 0.1 declarations of arguments ! ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! output listing REAL, INTENT(IN) :: PTSTEP ! time step TYPE(DATE_TIME), INTENT(IN) :: TPDTEXP! experiment date and time TYPE(DATE_TIME), INTENT(IN) :: TPDTMOD! model start date and time @@ -226,8 +223,6 @@ REAL :: ZRDSRV ! XRD/XRV !* 2. PRELIMINARIES ! ------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) -! !* 2.0 Refractivity coeficients ! ------------------------ ! Bevis et al. (1994) diff --git a/src/MNH/radar_c2r2.f90 b/src/MNH/radar_c2r2.f90 index 1cab50619db0e2d2585d9bcc9ff3f60be950d0b3..2e2703ed3972a05a50e4082d8a9d3676e4d660df 100644 --- a/src/MNH/radar_c2r2.f90 +++ b/src/MNH/radar_c2r2.f90 @@ -90,15 +90,13 @@ END MODULE MODI_RADAR_C2R2 ! USE MODD_CONF USE MODD_CST -USE MODD_REF USE MODD_PARAMETERS -USE MODD_LUNIT USE MODD_PARAM_C2R2 USE MODD_RAIN_C2R2_KHKO_PARAM USE MODD_RAIN_C2R2_DESCR +USE MODD_REF ! USE MODI_GAMMA -USE MODE_FM ! IMPLICIT NONE ! @@ -147,11 +145,6 @@ REAL :: ZFRAC_WATER REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZWLBDR REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZWLBDC ! -INTEGER :: ILUOUT0 ! Logical unit number for output-listing -INTEGER :: IRESP ! Return code of FM-routines -LOGICAL :: GFLAG ! Logical flag for printing the constatnts on the output - ! listing -! !------------------------------------------------------------------------------- ! ! @@ -171,8 +164,6 @@ LOGICAL :: GFLAG ! Logical flag for printing the constatnts on the output ! ----------------------------------------- ! ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) -! PRARE(:,:,:) = 0.0 ! radar reflectivity PVDOP(:,:,:) = 0.0 ! radar Doppler fall speed PHHRE(:,:,:) = 0.0 ! Horizontally polarized radar reflectivity diff --git a/src/MNH/radar_rain_ice.f90 b/src/MNH/radar_rain_ice.f90 index a48ed3c87fea4066b0db85b76df3bcfbefef1283..74759be77a16bb1992568cc5ff9387201fdbe11b 100644 --- a/src/MNH/radar_rain_ice.f90 +++ b/src/MNH/radar_rain_ice.f90 @@ -95,7 +95,6 @@ END MODULE MODI_RADAR_RAIN_ICE ! USE MODD_CST USE MODD_REF -!USE MODD_RAIN_ICE_PARAM USE MODD_RAIN_ICE_DESCR, ONLY: XALPHAR_I=>XALPHAR,XNUR_I=>XNUR,XLBEXR_I=>XLBEXR,& XLBR_I=>XLBR,XCCR_I=>XCCR,XBR_I=>XBR,XAR_I=>XAR,& XALPHAC_I=>XALPHAC,XNUC_I=>XNUC,& @@ -129,7 +128,6 @@ USE MODD_PARAM_n, ONLY : CCLOUD USE MODD_LUNIT ! USE MODE_IO_ll -USE MODE_FM ! IMPLICIT NONE ! @@ -177,8 +175,6 @@ REAL, DIMENSION(SIZE(PTEMP,1),SIZE(PTEMP,2),SIZE(PTEMP,3)) :: ZREFL_MELT_CONV INTEGER :: JLBDA REAL :: ZFRAC_WATER ! -INTEGER :: ILUOUT0 ! Logical unit number for output-listing -INTEGER :: IRESP ! Return code of FM-routines LOGICAL :: GFLAG ! Logical flag for printing the constatnts on the output ! listing ! @@ -213,8 +209,6 @@ REAL :: ZLB,ZLBEX , ZCC,ZCX,ZC,ZD ! ----------------------------------------- ! ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) -! PRARE(:,:,:) = 0.0 ! radar reflectivity PVDOP(:,:,:) = 0.0 ! radar Doppler fall speed PRZDR(:,:,:) = 0.0 ! radar differential reflectivity diff --git a/src/MNH/radiations.f90 b/src/MNH/radiations.f90 index 309da7da1f84fc8cb8771cb0f715fdf0edb39cf5..626e8a58f52cf831bfbed3957db39edd268b682d 100644 --- a/src/MNH/radiations.f90 +++ b/src/MNH/radiations.f90 @@ -9,7 +9,7 @@ ! INTERFACE ! - SUBROUTINE RADIATIONS (OCLOSE_OUT,TPFILE,HLUOUT,OCLEAR_SKY,OCLOUD_ONLY, & + SUBROUTINE RADIATIONS (OCLOSE_OUT,TPFILE,OCLEAR_SKY,OCLOUD_ONLY, & KCLEARCOL_TM1,HEFRADL,HEFRADI,HOPWSW,HOPISW,HOPWLW,HOPILW, & PFUDG, KDLON, KFLEV, KRAD_DIAG, KFLUX, KRAD, KAER, KSWB,KSTATM, & KRAD_COLNBR,PCOSZEN,PSEA, PCORSOL, & @@ -24,8 +24,6 @@ LOGICAL, INTENT(IN) :: OCLOSE_OUT! flag indicating that a FM ! file is opened during this ! time-step TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for - ! model n LOGICAL, INTENT(IN) :: OCLOUD_ONLY! flag for the cloud column ! computations only LOGICAL, INTENT(IN) :: OCLEAR_SKY ! @@ -108,7 +106,7 @@ END INTERFACE END MODULE MODI_RADIATIONS ! ! ############################################################################ - SUBROUTINE RADIATIONS (OCLOSE_OUT,TPFILE,HLUOUT,OCLEAR_SKY,OCLOUD_ONLY, & + SUBROUTINE RADIATIONS (OCLOSE_OUT,TPFILE,OCLEAR_SKY,OCLOUD_ONLY, & KCLEARCOL_TM1,HEFRADL,HEFRADI,HOPWSW,HOPISW,HOPWLW,HOPILW, & PFUDG, KDLON, KFLEV, KRAD_DIAG, KFLUX, KRAD, KAER, KSWB,KSTATM, & KRAD_COLNBR,PCOSZEN,PSEA, PCORSOL, & @@ -217,46 +215,42 @@ END MODULE MODI_RADIATIONS !* 0. DECLARATIONS ! ------------ ! -USE PARKIND1 , ONLY : JPRB +USE PARKIND1, ONLY: JPRB +USE YOESW, ONLY: RTAUA, RPIZA, RCGA ! -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FMWRIT -USE MODE_FM -USE MODE_ll -USE MODI_ECMWF_RADIATION_VERS2 -USE YOESW , ONLY : RTAUA ,RPIZA ,RCGA - -! -USE MODD_TIME +USE MODD_CH_AEROSOL, ONLY: LORILAM USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_DUST, ONLY: LDUST +USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_NSV, ONLY: NSV_C2R2,NSV_C2R2BEG,NSV_C2R2END, & + NSV_C1R3,NSV_C1R3BEG,NSV_C1R3END, & + NSV_DSTBEG, NSV_DSTEND, & + NSV_AERBEG, NSV_AEREND, & + NSV_SLTBEG, NSV_SLTEND, & + NSV_LIMA,NSV_LIMA_BEG,NSV_LIMA_END, & + NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_NI USE MODD_PARAMETERS +USE MODD_PARAM_LIMA +USE MODD_PARAM_n, ONLY: CCLOUD +USE MODD_PARAM_RAD_n, ONLY: CAOP USE MODD_RAIN_ICE_DESCR -USE MODD_NSV, ONLY : NSV_C2R2,NSV_C2R2BEG,NSV_C2R2END, & - NSV_C1R3,NSV_C1R3BEG,NSV_C1R3END, & - NSV_DSTBEG, NSV_DSTEND, & - NSV_AERBEG, NSV_AEREND, & - NSV_SLTBEG, NSV_SLTEND, & - NSV_LIMA,NSV_LIMA_BEG,NSV_LIMA_END, & - NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_NI -USE MODD_PARAM_n, ONLY : CCLOUD +USE MODD_SALT, ONLY: LSALT +USE MODD_TIME ! -USE MODE_THERMO - -USE MODD_DUST, ONLY: LDUST -USE MODD_SALT, ONLY: LSALT -USE MODD_CH_AEROSOL, ONLY: LORILAM -USE MODD_PARAM_RAD_n, ONLY: CAOP USE MODE_DUSTOPT -USE MODE_SALTOPT -USE MODI_AEROOPT_GET -USE MODD_PARAM_LIMA -! +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL +USE MODE_FMWRIT +USE MODE_ll #ifdef MNH_PGI USE MODE_PACK_PGI #endif +USE MODE_SALTOPT +USE MODE_THERMO ! -USE MODI_SUM_ll , ONLY : GMINLOC_ll , MIN_ll +USE MODI_AEROOPT_GET +USE MODI_ECMWF_RADIATION_VERS2 +USE MODI_SUM_ll, ONLY: GMINLOC_ll, MIN_ll ! IMPLICIT NONE ! @@ -266,8 +260,6 @@ LOGICAL, INTENT(IN) :: OCLOSE_OUT! flag indicating that a FM ! file is opened during this ! time-step TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for - ! model n LOGICAL, INTENT(IN) :: OCLOUD_ONLY! flag for the cloud column ! computations only LOGICAL, INTENT(IN) :: OCLEAR_SKY ! @@ -658,7 +650,7 @@ ZDZPABST(:,:,IKU) = ZDZPABST(:,:,IKU-1) ZMINVAL=MIN_ll(ZDZPABST,IINFO_ll) ! IF ( ZMINVAL <= 0.0 ) THEN - CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) + ILUOUT = TLUOUT%NLU IMINLOC=GMINLOC_ll( ZDZPABST ) WRITE(ILUOUT,*) ' radiation.f90 STOP :: SOMETHING WRONG WITH PRESSURE , ZDZPABST <= 0.0 ' WRITE(ILUOUT,*) ' radiation :: ZDZPABST ', ZMINVAL,' located at ', IMINLOC @@ -2612,7 +2604,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN ! IF( KRAD_DIAG >= 1) THEN ! - CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) + ILUOUT = TLUOUT%NLU WRITE(UNIT=ILUOUT,FMT='(/," STORE ADDITIONNAL RADIATIVE FIELDS:", & & " KRAD_DIAG=",I1,/)') KRAD_DIAG DO JK=IKB,IKE diff --git a/src/MNH/read_all_data_grib_case.f90 b/src/MNH/read_all_data_grib_case.f90 index 8ff5fda928da471bcc2a5a722335de8656a34886..0d1fbae8d17379ea72b41a0e119b72718ddc9bef 100644 --- a/src/MNH/read_all_data_grib_case.f90 +++ b/src/MNH/read_all_data_grib_case.f90 @@ -889,7 +889,7 @@ ALLOCATE (ZR_DUM(IIU,IJU,INLEVEL,1)) ALLOCATE (ZRV_LS(IIU,IJU,INLEVEL)) ALLOCATE (ZTEV_LS(IIU,IJU,INLEVEL)) ZTEV_LS(:,:,:) = ZTHV_LS(:,:,:) * ZEXNM_LS(:,:,:) -ZRV_LS(:,:,:) = SM_PMR_HU(CLUOUT0, ZPM_LS(:,:,:), & +ZRV_LS(:,:,:) = SM_PMR_HU(ZPM_LS(:,:,:), & ZTEV_LS(:,:,:),ZH_LS(:,:,:),ZR_DUM(:,:,:,:),KITERMAX=100) IF (HFILE(1:3)=='ATM') THEN XQ_LS(:,:,:,1) = ZRV_LS(:,:,:) / (1. + ZRV_LS(:,:,:)) diff --git a/src/MNH/read_chem_data_netcdf_case.f90 b/src/MNH/read_chem_data_netcdf_case.f90 index b62c8eea55263a1b65c2ee2bf4213300c7854ad5..25b08203f710f9941f27f030d22244f195679e7d 100644 --- a/src/MNH/read_chem_data_netcdf_case.f90 +++ b/src/MNH/read_chem_data_netcdf_case.f90 @@ -56,8 +56,6 @@ END MODULE MODI_READ_CHEM_DATA_NETCDF_CASE !! subroutine HORIBL : horizontal bilinear interpolation !! subroutine XYTOLATLON : projection from conformal to lat,lon !! -!! function FMLOOK_ll : to retrieve the logical unit associated with a file -!! !! Module MODI_READ_VER_GRID : interface for subroutine READ_VER_GRID !! Module MODI_HORIBL : interface for subroutine HORIBL !! Module MODI_XYTOLATLON : interface for subroutine XYTOLATLON @@ -84,45 +82,43 @@ END MODULE MODI_READ_CHEM_DATA_NETCDF_CASE ! !* 0. DECLARATIONS !------------ -USE MODE_FM -USE MODE_IO_ll -USE MODE_TIME -! -USE MODI_READ_HGRID_n -USE MODI_READ_VER_GRID -USE MODI_XYTOLATLON -USE MODI_HORIBL -USE MODI_INI_NSV -USE MODI_CH_INIT_SCHEME_n -USE MODI_CH_AER_INIT_SOA ! +USE MODD_BLANK +USE MODD_CH_AEROSOL, ONLY: CORGANIC, NCARB, NSOA, NSP, LORILAM,& + JPMODE, LVARSIGI, LVARSIGJ,CAERONAMES +USE MODD_CH_M9_n, ONLY: NEQ , CNAMES +USE MODD_CH_MNHC_n, ONLY: LUSECHEM,LUSECHAQ,LUSECHIC,LCH_PH USE MODD_CONF USE MODD_CONF_n USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LUNIT -USE MODD_PARAMETERS +USE MODD_DIM_n USE MODD_GRID USE MODD_GRID_n -USE MODD_DIM_n -USE MODD_PARAM_n, ONLY : CTURB -USE MODD_TIME -USE MODD_TIME_n -USE MODD_CH_MNHC_n, ONLY : LUSECHEM,LUSECHAQ,LUSECHIC,LCH_PH -USE MODD_CH_M9_n, ONLY : NEQ , CNAMES -USE MODD_CH_AEROSOL, ONLY: CORGANIC, NCARB, NSOA, NSP, LORILAM,& - JPMODE, LVARSIGI, LVARSIGJ,CAERONAMES +USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_LUNIT, ONLY: TLUOUT0 +USE MODE_MODELN_HANDLER +USE MODD_NETCDF, ONLY:IDCDF_KIND USE MODD_NSV +USE MODD_PARAMETERS +USE MODD_PARAM_n, ONLY : CTURB USE MODD_PREP_REAL -USE MODE_MODELN_HANDLER -!JUAN REALZ +USE MODD_TIME +USE MODD_TIME_n +! +USE MODE_FM +USE MODE_IO_ll USE MODE_MPPDB -!JUAN REALZ -USE MODI_CH_OPEN_INPUT USE MODE_THERMO +USE MODE_TIME ! -USE MODD_BLANK -USE MODD_NETCDF, ONLY:IDCDF_KIND +USE MODI_CH_AER_INIT_SOA +USE MODI_CH_INIT_SCHEME_n +USE MODI_CH_OPEN_INPUT +USE MODI_HORIBL +USE MODI_INI_NSV +USE MODI_READ_HGRID_n +USE MODI_READ_VER_GRID +USE MODI_XYTOLATLON ! USE NETCDF ! @@ -142,7 +138,6 @@ LOGICAL, INTENT(IN) :: ODUMMY_REAL! flag to interpolate dummy fiel ! ------------------------------ ! General purpose variables INTEGER :: ILUOUT0 ! Unit used for output msg. -INTEGER :: IRESP ! Return code of FM-routines INTEGER :: IRET ! Return code from subroutines INTEGER :: JI,JJ,JK ! Dummy counters INTEGER :: JLOOP1 ! | @@ -218,7 +213,7 @@ IMI = GET_CURRENT_MODEL_INDEX() !* 1. READ PGD FILE ! ------------- ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRET) +ILUOUT0 = TLUOUT0%NLU CALL READ_HGRID_n(TPPGDFILE,YPGD_NAME,YPGD_DAD_NAME,YPGD_TYPE) ! ! 1.1 Domain restriction diff --git a/src/MNH/read_desfmn.f90 b/src/MNH/read_desfmn.f90 index 662a7ae196733e26291954904ba3d2929e4d83d3..b8040166047f76a154c11ef3b4e465589946e80f 100644 --- a/src/MNH/read_desfmn.f90 +++ b/src/MNH/read_desfmn.f90 @@ -13,7 +13,7 @@ ! INTERFACE ! - SUBROUTINE READ_DESFM_n(KMI,HDESFM,HLUOUT,HCONF,OFLAT,OUSERV, & + SUBROUTINE READ_DESFM_n(KMI,HDESFM,HCONF,OFLAT,OUSERV, & OUSERC,OUSERR,OUSERI,OUSECI,OUSERS,OUSERG,OUSERH, & OUSECHEM,OUSECHAQ,OUSECHIC,OCH_PH,OCH_CONV_LINOX,OSALT, & ODEPOS_SLT,ODUST,ODEPOS_DST, OCHTRANS, & @@ -28,7 +28,6 @@ INTERFACE USE MODD_PARAMETERS INTEGER, INTENT(IN) :: KMI ! Model index CHARACTER (LEN=32), INTENT(IN) :: HDESFM ! name of the DESFM file -CHARACTER (LEN=16), INTENT(IN) :: HLUOUT ! Name for outputlisting CHARACTER (LEN=5), INTENT(OUT) :: HCONF ! configuration var. linked to FMfile LOGICAL, INTENT(OUT) :: OFLAT ! Logical for zero orography LOGICAL, INTENT(OUT) :: OUSERV ! use Rv mixing ratio @@ -78,7 +77,7 @@ END INTERFACE ! END MODULE MODI_READ_DESFM_n ! ######################################################################### - SUBROUTINE READ_DESFM_n(KMI,HDESFM,HLUOUT,HCONF,OFLAT,OUSERV, & + SUBROUTINE READ_DESFM_n(KMI,HDESFM,HCONF,OFLAT,OUSERV, & OUSERC,OUSERR,OUSERI,OUSECI,OUSERS,OUSERG,OUSERH, & OUSECHEM,OUSECHAQ,OUSECHIC,OCH_PH,OCH_CONV_LINOX,OSALT, & ODEPOS_SLT,ODUST,ODEPOS_DST, OCHTRANS, & @@ -196,7 +195,8 @@ END MODULE MODI_READ_DESFM_n ! !* 0. DECLARATIONS ! ------------ -USE MODD_IO_ll, ONLY : NVERB_FATAL +USE MODD_IO_ll, ONLY: NVERB_FATAL +USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS ! USE MODN_BACKUP @@ -269,7 +269,6 @@ IMPLICIT NONE ! INTEGER, INTENT(IN) :: KMI ! Model index CHARACTER (LEN=32), INTENT(IN) :: HDESFM ! name of the DESFM file -CHARACTER (LEN=16), INTENT(IN) :: HLUOUT ! Name for outputlisting CHARACTER (LEN=5), INTENT(OUT) :: HCONF ! configuration var. linked to FMfile LOGICAL, INTENT(OUT) :: OFLAT ! Logical for zero orography LOGICAL, INTENT(OUT) :: OUSERV ! use Rv mixing ratio @@ -329,8 +328,8 @@ LOGICAL,DIMENSION(JPMODELMAX),SAVE :: LTEMPDEPOS_AER ! Orilam Moist flag !* 1. READ DESFM FILE ! --------------- ! -CALL FMLOOK_ll(HDESFM,HLUOUT,ILUDES,IRESP) -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +CALL FMLOOK_ll(HDESFM,TLUOUT%CNAME,ILUDES,IRESP) +ILUOUT = TLUOUT%NLU ! ! CALL POSNAM(ILUDES,'NAM_LUNITN',GFOUND) diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90 index 2a991dc100b4c4c184fbd29f20bf2009304a5705..fe5d95a7e4cc887f1e7a09c1914403fd6f3ee2fc 100644 --- a/src/MNH/read_exsegn.f90 +++ b/src/MNH/read_exsegn.f90 @@ -14,7 +14,7 @@ ! INTERFACE ! - SUBROUTINE READ_EXSEG_n(KMI,HEXSEG,HLUOUT,HCONF,OFLAT,OUSERV, & + SUBROUTINE READ_EXSEG_n(KMI,HEXSEG,HCONF,OFLAT,OUSERV, & OUSERC,OUSERR,OUSERI,OUSECI,OUSERS,OUSERG,OUSERH, & OUSECHEM,OUSECHAQ,OUSECHIC,OCH_PH,OCH_CONV_LINOX,OSALT, & ODEPOS_SLT, ODUST,ODEPOS_DST, OCHTRANS, & @@ -29,7 +29,6 @@ INTERFACE HEQNSYS,PTSTEP_ALL,HSTORAGE_TYPE,HINIFILEPGD ) INTEGER, INTENT(IN) :: KMI ! Model index CHARACTER (LEN=*), INTENT(IN) :: HEXSEG ! name of the EXSEG file -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! Name for outputlisting ! The following variables are read by READ_DESFM in DESFM descriptor : CHARACTER (LEN=*), INTENT(IN) :: HCONF ! configuration var. linked to FMfile LOGICAL, INTENT(IN) :: OFLAT ! Logical for zero orography @@ -84,7 +83,7 @@ END MODULE MODI_READ_EXSEG_n ! ! ! ######################################################################### - SUBROUTINE READ_EXSEG_n(KMI,HEXSEG,HLUOUT,HCONF,OFLAT,OUSERV, & + SUBROUTINE READ_EXSEG_n(KMI,HEXSEG,HCONF,OFLAT,OUSERV, & OUSERC,OUSERR,OUSERI,OUSECI,OUSERS,OUSERG,OUSERH, & OUSECHEM,OUSECHAQ,OUSECHIC,OCH_PH,OCH_CONV_LINOX,OSALT, & ODEPOS_SLT, ODUST,ODEPOS_DST, OCHTRANS, & @@ -297,9 +296,10 @@ END MODULE MODI_READ_EXSEG_n USE MODD_PARAMETERS USE MODD_CONF USE MODD_CONFZ -USE MODD_CONF_n, ONLY : CSTORAGE_TYPE -USE MODD_IO_ll, ONLY : NVERB_FATAL -USE MODD_VAR_ll, ONLY: NPROC +USE MODD_CONF_n, ONLY: CSTORAGE_TYPE +USE MODD_IO_ll, ONLY: NVERB_FATAL +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_VAR_ll, ONLY: NPROC ! USE MODN_BACKUP USE MODN_BUDGET @@ -380,7 +380,6 @@ IMPLICIT NONE ! INTEGER, INTENT(IN) :: KMI ! Model index CHARACTER (LEN=*), INTENT(IN) :: HEXSEG ! name of the EXSEG file -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! Name for outputlisting ! The following variables are read by READ_DESFM in DESFM descriptor : CHARACTER (LEN=*), INTENT(IN) :: HCONF ! configuration var. linked to FMfile LOGICAL, INTENT(IN) :: OFLAT ! Logical for zero orography @@ -444,8 +443,8 @@ INTEGER :: IMOMENTS, JMODE, IMODEIDX, JMOM, JSV_NAME, JMOD, I ! CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_EXSEG_n','called for '//TRIM(HEXSEG)) ! -CALL FMLOOK_ll(HEXSEG,HLUOUT,ILUSEG,IRESP) -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +CALL FMLOOK_ll(HEXSEG,TLUOUT%CNAME,ILUSEG,IRESP) +ILUOUT = TLUOUT%NLU ! CALL INIT_NAM_LUNITN CCPLFILE(:)=" " diff --git a/src/MNH/read_field.f90 b/src/MNH/read_field.f90 index 184fea2c23d6925eaee3b5069f7c829fa20b6ab6..b2d858a072ee39c185ca8ce703d990faf1d5d5b4 100644 --- a/src/MNH/read_field.f90 +++ b/src/MNH/read_field.f90 @@ -8,7 +8,7 @@ ! INTERFACE ! - SUBROUTINE READ_FIELD(TPINIFILE,HLUOUT,KMASDEV,KIU,KJU,KKU,PTSTEP, & + SUBROUTINE READ_FIELD(TPINIFILE,KMASDEV,KIU,KJU,KKU,PTSTEP, & HGETTKET,HGETRVT,HGETRCT,HGETRRT,HGETRIT,HGETCIT, & HGETRST,HGETRGT,HGETRHT,HGETSVT,HGETSRCT,HGETSIGS,HGETCLDFR, & HGETBL_DEPTH,HGETSBL_DEPTH,HGETPHC,HGETPHR,HUVW_ADV_SCHEME, & @@ -35,8 +35,6 @@ USE MODD_TIME ! for type DATE_TIME ! ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE !Initial file -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT - ! name for output-listing of nested models INTEGER, INTENT(IN) :: KMASDEV ! version of the input file INTEGER, INTENT(IN) :: KIU, KJU, KKU @@ -128,7 +126,7 @@ END INTERFACE END MODULE MODI_READ_FIELD ! ! ######################################################################## - SUBROUTINE READ_FIELD(TPINIFILE,HLUOUT,KMASDEV,KIU,KJU,KKU,PTSTEP, & + SUBROUTINE READ_FIELD(TPINIFILE,KMASDEV,KIU,KJU,KKU,PTSTEP, & HGETTKET,HGETRVT,HGETRCT,HGETRRT,HGETRIT,HGETCIT, & HGETRST,HGETRGT,HGETRHT,HGETSVT,HGETSRCT,HGETSIGS,HGETCLDFR, & HGETBL_DEPTH,HGETSBL_DEPTH,HGETPHC,HGETPHR,HUVW_ADV_SCHEME, & @@ -258,9 +256,10 @@ USE MODD_FOREFIRE #endif USE MODD_ICE_C1R3_DESCR, ONLY: C1R3NAMES USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_NSV USE MODD_LATZ_EDFLX USE MODD_LG, ONLY: CLGNAMES +USE MODD_LUNIT_N, ONLY: TLUOUT +USE MODD_NSV USE MODD_PARAM_C2R2, ONLY: LSUPSAT ! USE MODD_PARAM_LIMA , ONLY: NMOD_CCN, LSCAV, LAERO_MASS, & @@ -273,7 +272,6 @@ USE MODD_SALT USE MODD_TIME ! for type DATE_TIME ! USE MODE_FIELD, ONLY: TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME,TYPEDATE,TYPEREAL -USE MODE_FM USE MODE_FMREAD USE MODE_IO_ll, ONLY: UPCASE USE MODE_MSG @@ -288,8 +286,6 @@ IMPLICIT NONE ! ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE !Initial file -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT - ! name for output-listing of nested models INTEGER, INTENT(IN) :: KMASDEV ! version of the input file INTEGER, INTENT(IN) :: KIU, KJU, KKU @@ -1129,13 +1125,13 @@ END IF !* 2.2a 3D LS fields ! ! -CALL INI_LS(TPINIFILE,HLUOUT,HGETRVT,GLSOURCE,PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM) +CALL INI_LS(TPINIFILE,HGETRVT,GLSOURCE,PLSUM,PLSVM,PLSWM,PLSTHM,PLSRVM) ! ! !* 2.2b 2D "surfacic" LB fields ! ! -CALL INI_LB(TPINIFILE,HLUOUT,GLSOURCE,ISV, & +CALL INI_LB(TPINIFILE,GLSOURCE,ISV, & KSIZELBX_ll,KSIZELBXU_ll,KSIZELBY_ll,KSIZELBYV_ll, & KSIZELBXTKE_ll,KSIZELBYTKE_ll, & KSIZELBXR_ll,KSIZELBYR_ll,KSIZELBXSV_ll,KSIZELBYSV_ll, & @@ -1486,7 +1482,7 @@ ENDIF IF (NVERB >= 10 .AND. .NOT. L1D) THEN IIUP = SIZE(PUT,1) IJUP = SIZE(PVT,2) - CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) + ILUOUT= TLUOUT%NLU ! WRITE(ILUOUT,FMT=*) 'READ_FIELD: Some PUT values:' WRITE(ILUOUT,FMT=*) '(1,1,JK) (IIU/2,IJU/2,JK) (IIU,IJU,JK) JK ' diff --git a/src/MNH/read_grid_time_mesonh_case.f90 b/src/MNH/read_grid_time_mesonh_case.f90 index b9b3317949ceef0cbaa0b43f2670f850b7f9c148..0f09efecc73547466bc2cf76a91a9d854b0ddb7e 100644 --- a/src/MNH/read_grid_time_mesonh_case.f90 +++ b/src/MNH/read_grid_time_mesonh_case.f90 @@ -40,8 +40,6 @@ END MODULE MODI_READ_GRID_TIME_MESONH_CASE !! EXTERNAL !! -------- !! -!! function FMLOOK :to retrieve a logical unit number associated with a file -!! !! IMPLICIT ARGUMENTS !! ------------------ !! @@ -49,7 +47,7 @@ END MODULE MODI_READ_GRID_TIME_MESONH_CASE !! NVERB : verbosity level for output-listing !! LTHINSHELL !! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! TLUOUT0 : output-listing file !! Module MODD_GRID !! XBETA : rotation of the domain !! XRPK : parameter of projection @@ -93,19 +91,18 @@ END MODULE MODI_READ_GRID_TIME_MESONH_CASE !* 0. DECLARATIONS ! ------------ ! -USE MODD_CONF ! declaration modules +USE MODD_CONF USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LUNIT +USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS USE MODD_PREP_REAL USE MODD_TIME USE MODD_TIME_n ! -USE MODE_FM USE MODE_FMREAD -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_FIND_BYNAME +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME ! USE MODI_DEFAULT_SLEVE USE MODI_READ_HGRID @@ -123,7 +120,7 @@ CHARACTER(LEN=*), INTENT(OUT):: HDAD_NAME! dad name of the FM file !* 0.2 Declaration of local variables ! ------------------------------ REAL :: ZEPS ! a little number -INTEGER :: IRESP ! return-code if problem eraised in FMLOOK +INTEGER :: IRESP ! return-code INTEGER :: ILUOUT0 ! logical number for listing file INTEGER :: IMASDEV ! Masdev version INTEGER :: JL ! loop controls @@ -155,7 +152,7 @@ TYPE(TFILEDATA),POINTER :: TZFMFILE => NULL() !* 1. INITIALIZATIONS ! --------------- ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) +ILUOUT0 = TLUOUT0%NLU ZEPS=1.E-10 ! !PW: TODO: temporary: look for file from its name diff --git a/src/MNH/read_hgrid.f90 b/src/MNH/read_hgrid.f90 index a57ceaa148f819ebdeab695c41e45d4a17b023f3..d2b9555e9b9408627ee89d8de2870534d1e0350b 100644 --- a/src/MNH/read_hgrid.f90 +++ b/src/MNH/read_hgrid.f90 @@ -92,6 +92,7 @@ USE MODD_PGDDIM USE MODD_PGDGRID ! USE MODE_FIELD, ONLY : TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME +USE MODE_FM, ONLY : SET_FMPACK_ll USE MODE_FMREAD USE MODE_GRIDPROJ USE MODE_IO_ll diff --git a/src/MNH/rel_forcingn.f90 b/src/MNH/rel_forcingn.f90 index a6cae41cc8996cf4166e8f89412b446c65246fc1..b63eb705e869818605496cbf874da61e45b6b350 100644 --- a/src/MNH/rel_forcingn.f90 +++ b/src/MNH/rel_forcingn.f90 @@ -96,23 +96,20 @@ END MODULE MODI_REL_FORCING_n !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM -USE MODE_IO_ll -! +USE MODD_2D_FRC +USE MODD_BUDGET USE MODD_DYN -USE MODD_LUNIT +USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS +USE MODD_RELFRC_n ! Modules for time evolving advfrc USE MODD_TIME -USE MODD_BUDGET ! -USE MODI_TEMPORAL_LT -USE MODI_TEMPORAL_DIST -USE MODI_BUDGET +USE MODE_IO_ll ! -USE MODD_RELFRC_n ! Modules for time evolving advfrc -USE MODD_2D_FRC +USE MODI_BUDGET USE MODI_SHUMAN -!USE MODD_FRC +USE MODI_TEMPORAL_DIST +USE MODI_TEMPORAL_LT ! IMPLICIT NONE ! @@ -139,7 +136,6 @@ REAL :: ZDT, ZALPHA ! height and time rate REAL, SAVE :: ZSDTJX ! INTEGER :: ILUOUT0 ! Logical unit number for output-listing -INTEGER :: IRESP ! Return code of FM-routines ! REAL, DIMENSION(SIZE(PRTHS,1),SIZE(PRTHS,2),SIZE(PRTHS,3)) :: ZXADVTHFRC,ZXADVRVFRC REAL, DIMENSION(SIZE(PRTHS,1),SIZE(PRTHS,2),SIZE(PRTHS,3)) :: ZTHREL,ZRVREL @@ -158,7 +154,7 @@ IF (GSFIRSTCALL) THEN ! GSFIRSTCALL = .FALSE. ! - CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) + ILUOUT0 = TLUOUT0%NLU !!* 1.1 printout number of forcing profiles ! WRITE(UNIT=ILUOUT0,FMT='(" THERE ARE ",I2," REL FORCING FIELDs AT:")') NRELFRC @@ -205,7 +201,7 @@ ELSE IF( .NOT. TEMPORAL_LT ( TPDTCUR, TDTRELFRC(JXP) ) ) THEN JSX_REL = JSX_REL +1 JXP= JSX_REL +1 - CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) + ILUOUT0 = TLUOUT0%NLU WRITE(UNIT=ILUOUT0,FMT='(" THE REL FORCING FIELDS ARE INTERPOLATED NOW" ,& & " BETWEEN SOUNDING NUMBER ",I2," AND SOUNDING NUMBER ",I2)') JSX_REL,JXP CALL TEMPORAL_DIST ( TDTRELFRC(JXP)%TDATE%YEAR,TDTRELFRC(JXP)%TDATE%MONTH, & diff --git a/src/MNH/resolved_cloud.f90 b/src/MNH/resolved_cloud.f90 index 6715b10e1a83a46d928a9b29089ecd97ae47468e..fe972ed79552aba10028bec885b67945a7de7ba2 100644 --- a/src/MNH/resolved_cloud.f90 +++ b/src/MNH/resolved_cloud.f90 @@ -10,7 +10,7 @@ INTERFACE SUBROUTINE RESOLVED_CLOUD ( HCLOUD, HACTCCN, HSCONV, HMF_CLOUD, & KRR, KSPLITR, KSPLITG, KMI, KTCOUNT, & - HLBCX, HLBCY, TPFILE, HLUOUT, HRAD, HTURBDIM, & + HLBCX, HLBCY, TPFILE, HRAD, HTURBDIM, & OCLOSE_OUT, OSUBG_COND, OSIGMAS, HSUBG_AUCV, & PTSTEP, PZZ, PRHODJ, PRHODREF, PEXNREF, & PPABST, PTHT, PRT, PSIGS, PSIGQSAT, PMFCONV, & @@ -41,8 +41,6 @@ INTEGER, INTENT(IN) :: KMI ! Model index INTEGER, INTENT(IN) :: KTCOUNT ! Temporal loop counter CHARACTER(LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX,HLBCY ! X and Y-direc. LBC type TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for - ! model n CHARACTER*4, INTENT(IN) :: HRAD ! Radiation scheme name CHARACTER*4, INTENT(IN) :: HTURBDIM ! Dimensionality of the ! turbulence scheme @@ -136,7 +134,7 @@ END MODULE MODI_RESOLVED_CLOUD ! ########################################################################## SUBROUTINE RESOLVED_CLOUD ( HCLOUD, HACTCCN, HSCONV, HMF_CLOUD, & KRR, KSPLITR, KSPLITG, KMI, KTCOUNT, & - HLBCX, HLBCY, TPFILE, HLUOUT, HRAD, HTURBDIM, & + HLBCX, HLBCY, TPFILE, HRAD, HTURBDIM, & OCLOSE_OUT, OSUBG_COND, OSIGMAS, HSUBG_AUCV, & PTSTEP, PZZ, PRHODJ, PRHODREF, PEXNREF, & PPABST, PTHT, PRT, PSIGS, PSIGQSAT, PMFCONV, & @@ -315,8 +313,6 @@ INTEGER, INTENT(IN) :: KMI ! Model index INTEGER, INTENT(IN) :: KTCOUNT ! Temporal loop counter CHARACTER(LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX,HLBCY ! X and Y-direc. LBC type TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for - ! model n CHARACTER*4, INTENT(IN) :: HRAD ! Radiation scheme name CHARACTER*4, INTENT(IN) :: HTURBDIM ! Dimensionality of the ! turbulence scheme @@ -798,7 +794,7 @@ SELECT CASE ( HCLOUD ) !* 4. REVERSIBLE MICROPHYSICAL SCHEME ! ------------------------------- ! - CALL FAST_TERMS ( KRR, KMI, HLUOUT, HRAD, HTURBDIM, & + CALL FAST_TERMS ( KRR, KMI, HRAD, HTURBDIM, & HSCONV, HMF_CLOUD, OSUBG_COND, PTSTEP, & PRHODJ, PSIGS, PPABST, & PCF_MF,PRC_MF, & @@ -822,7 +818,7 @@ SELECT CASE ( HCLOUD ) ! !* 5.2 Perform the saturation adjustment ! - CALL FAST_TERMS ( KRR, KMI, HLUOUT, HRAD, HTURBDIM, & + CALL FAST_TERMS ( KRR, KMI, HRAD, HTURBDIM, & HSCONV, HMF_CLOUD, OSUBG_COND, PTSTEP, & PRHODJ, PSIGS, PPABST, & PCF_MF,PRC_MF, & @@ -855,7 +851,7 @@ SELECT CASE ( HCLOUD ) !* 7.2 Perform the saturation adjustment ! IF (LSUPSAT) THEN - CALL KHKO_NOTADJUST (KRR, KTCOUNT,TPFILE, HLUOUT, HRAD, OCLOSE_OUT, & + CALL KHKO_NOTADJUST (KRR, KTCOUNT,TPFILE, HRAD, OCLOSE_OUT, & PTSTEP, PRHODJ, PPABSM, PPABST, PRHODREF, PZZ, & PTHT,PRT(:,:,:,1),PRT(:,:,:,2),PRT(:,:,:,3), & PTHS,PRS(:,:,:,1),PRS(:,:,:,2),PRS(:,:,:,3), & @@ -863,7 +859,7 @@ SELECT CASE ( HCLOUD ) ZSVS(:,:,:,4), PCLDFR, PSRCS , PNPRO,PSSPRO ) ! ELSE - CALL C2R2_ADJUST ( KRR,TPFILE, HLUOUT, HRAD, & + CALL C2R2_ADJUST ( KRR,TPFILE, HRAD, & HTURBDIM, OCLOSE_OUT, OSUBG_COND, PTSTEP, & PRHODJ, PSIGS, PPABST, & PTHS=PTHS, PRVS=PRS(:,:,:,1), PRCS=PRS(:,:,:,2), & @@ -987,7 +983,7 @@ IF (OWARM .AND. LCOLD) CALL LIMA_MIXED(OSEDI, OHHONI, KSPLITG, PTSTEP, KMI, & ! !* 12.2 Perform the saturation adjustment ! -CALL LIMA_ADJUST(KRR, KMI, TPFILE, HLUOUT, HRAD, & +CALL LIMA_ADJUST(KRR, KMI, TPFILE, HRAD, & HTURBDIM, OCLOSE_OUT, OSUBG_COND, PTSTEP, & PRHODREF, PRHODJ, PEXNREF, PPABST, PSIGS, PPABST, & PRT, PRS, ZSVT, ZSVS, & diff --git a/src/MNH/retrieve2_nest_infon.f90 b/src/MNH/retrieve2_nest_infon.f90 index a0caadd91f70a23e9f3483992e6eca756edcb00e..4f3a0a3f7231fb96ef3aa7e586746476a91a5fa9 100644 --- a/src/MNH/retrieve2_nest_infon.f90 +++ b/src/MNH/retrieve2_nest_infon.f90 @@ -99,31 +99,25 @@ END MODULE MODI_RETRIEVE2_NEST_INFO_n !* 0. DECLARATIONS ! USE MODD_CONF -USE MODD_PARAMETERS +USE MODD_DIM_ll, ONLY: NXOR_ALL, NXEND_ALL, NYOR_ALL, NYEND_ALL, NIMAX_ll, NJMAX_ll +USE MODD_DIM_n, ONLY: NIMAX, NJMAX USE MODD_GRID USE MODD_GRID_n -USE MODD_DIM_n, ONLY : NIMAX, NJMAX -USE MODD_PGDGRID +USE MODD_IO_ll, ONLY: ISNPROC, ISP +USE MODD_LUNIT, ONLY: TLUOUT0 +USE MODD_MPIF +USE MODD_PARAMETERS USE MODD_PGDDIM -USE MODD_LUNIT +USE MODD_PGDGRID +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll +USE MODD_VAR_ll, ONLY: YSPLITTING, NMNH_COMM_WORLD, MPI_PRECISION ! -USE MODE_FM USE MODE_GRIDPROJ USE MODE_MODELN_HANDLER -! -!20131024 USE MODE_MPPDB -USE MODE_TOOLS_ll, ONLY : LEAST_ll, LWEST_ll, LNORTH_ll, LSOUTH_ll -USE MODD_MPIF -USE MODD_DIM_ll, ONLY : NXOR_ALL, NXEND_ALL, NYOR_ALL, NYEND_ALL, NIMAX_ll, NJMAX_ll -USE MODE_SPLITTING_ll, ONLY : SPLIT2 -!USE MODD_VAR_ll, ONLY : NPROC, IP, YSPLITTING, NMNH_COMM_WORLD -USE MODD_VAR_ll, ONLY : YSPLITTING, NMNH_COMM_WORLD, MPI_PRECISION -USE MODD_IO_ll, ONLY : ISNPROC, ISP -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll -USE MODE_NEST_ll, ONLY : GO_TOMODEL_ll -!USE MODE_EXCHANGE_ll -!USE MODD_ARGSLIST_ll, ONLY : LIST1D_ll +USE MODE_NEST_ll, ONLY: GO_TOMODEL_ll +USE MODE_SPLITTING_ll, ONLY: SPLIT2 +USE MODE_TOOLS_ll, ONLY: LEAST_ll, LWEST_ll, LNORTH_ll, LSOUTH_ll ! IMPLICIT NONE ! @@ -141,7 +135,7 @@ INTEGER,INTENT(OUT) :: KDYRATIO ! and its son (next refered as 2) grid ! !* 0.2 declarations of local variables ! -INTEGER :: ILUOUT, IRESP +INTEGER :: ILUOUT INTEGER :: IIU ! relatively to model 1 INTEGER :: IJU ! relatively to model 1 INTEGER :: IIUGLB ! relatively to model 1 @@ -221,7 +215,7 @@ CALL GO_TOMODEL_ll(KMI, IINFO_ll) !IJMAX_C_ll = NYEND_ALL(KMI) - NYOR_ALL(KMI) - JPHEXT !c'est bizarre mais on l'a init comme ca car sinon get_globaldims_ll donne un resultat faux... DEALLOCATE(TZSPLITTING) ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT,IRESP) +ILUOUT = TLUOUT0%NLU !20131008 adapt calculation NPGDIMAX AND NPGDSJMAX and IIU,IJU from retrieve1 ! !IIU=NPGDIMAX+2*JPHEXT !IJU=NPGDJMAX+2*JPHEXT diff --git a/src/MNH/rms_at_z.f90 b/src/MNH/rms_at_z.f90 index 45ff80d9006b6a8ac098657b0177f1b0dbf571a6..8e4ac658f5ce6c95ce53272876589f44d46c432e 100644 --- a/src/MNH/rms_at_z.f90 +++ b/src/MNH/rms_at_z.f90 @@ -71,18 +71,16 @@ END MODULE MODI_RMS_AT_Z !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM -! -USE MODI_COEF_VER_INTERP_LIN -USE MODI_VER_INTERP_LIN -! -USE MODD_CONF ! declaration modules -USE MODD_LUNIT +USE MODD_CONF USE MODD_CST -USE MODD_REF_n USE MODD_FIELD_n +USE MODD_LUNIT, ONLY: TLUOUT0 +USE MODD_REF_n USE MODD_VER_INTERP_LIN ! +USE MODI_COEF_VER_INTERP_LIN +USE MODI_VER_INTERP_LIN +! IMPLICIT NONE ! !* 0.1 Declaration of arguments @@ -172,7 +170,7 @@ END DO !* 4. Prints ! ------ ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) +ILUOUT0 = TLUOUT0%NLU ! WRITE(ILUOUT0,*) '' WRITE(ILUOUT0,*) HTITLE diff --git a/src/MNH/select_std_pgd.f90 b/src/MNH/select_std_pgd.f90 index be1313c5409c0af7ae25b0c6ad3e4ccdc0402c21..3dd7d97b6851cd236e876db509b8a11e27da2346 100644 --- a/src/MNH/select_std_pgd.f90 +++ b/src/MNH/select_std_pgd.f90 @@ -66,7 +66,6 @@ USE MODD_GROUND_PAR ! ! USE MODI_PGD_INDEX -USE MODE_FM ! IMPLICIT NONE ! @@ -83,11 +82,8 @@ REAL, DIMENSION(:,:), INTENT(IN) :: PFIELD ! pgd field ! CHARACTER(LEN=20) :: YFIELD ! -INTEGER :: IRESP, ILUOUT0 !------------------------------------------------------------------------------- ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) -! YFIELD=' ' YFIELD=HFIELD_NAME//YFIELD ! @@ -307,11 +303,6 @@ SELECT CASE (YFIELD) PRINT*, 'IT WILL NOT BE SAVED ON THE PGD FILE.' PRINT*, ' ' -! WRITE(ILUOUT0,FMT=*) ' ' -! WRITE(ILUOUT0,FMT=*) 'The field ',HFIELD_NAME, ' is not yet a standard PGD field.' -! WRITE(ILUOUT0,FMT=*) 'IT WILL NOT BE SAVED ON THE PGD FILE.' -! WRITE(ILUOUT0,FMT=*) ' ' -! END SELECT ! !------------------------------------------------------------------------------- diff --git a/src/MNH/set_advfrc.f90 b/src/MNH/set_advfrc.f90 index f62dd0c8ac2a17fa6ab02fa7c9da04dc806388bb..3330d4648104af1a6e493df4d60cb5647b8b231e 100644 --- a/src/MNH/set_advfrc.f90 +++ b/src/MNH/set_advfrc.f90 @@ -12,17 +12,21 @@ ! INTERFACE ! -SUBROUTINE SET_ADVFRC(HEXPRE) -CHARACTER(LEN=*), INTENT(IN) :: HEXPRE ! name of input data file +SUBROUTINE SET_ADVFRC(TPEXPREFILE) +! +USE MODD_IO_ll, ONLY: TFILEDATA +! +TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file +! END SUBROUTINE SET_ADVFRC ! END INTERFACE ! END MODULE MODI_SETADVFRC ! -! ########################## - SUBROUTINE SET_ADVFRC(HEXPRE) -! ########################## +! ################################## + SUBROUTINE SET_ADVFRC(TPEXPREFILE) +! ################################## ! !!*** *SET_ADVFRC * - to initialize Advective forcing fields for different months !! @@ -76,39 +80,35 @@ END MODULE MODI_SETADVFRC !* 0. DECLARATIONS ! ------------ ! -USE MODD_CST -USE MODD_LUNIT_n -USE MODD_GRID_n +USE MODD_ADVFRC_n USE MODD_CONF +USE MODD_CST +USE MODD_DIM_n USE MODD_FRC USE MODD_GRID +USE MODD_GRID_n +USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT USE MODD_REF -USE MODD_PARAMETERS ! JPHEXT ! -USE MODE_FM USE MODE_IO_ll USE MODE_MSG USE MODE_THERMO ! -USE MODI_HEIGHT_PRESS ! interface modules +USE MODI_HEIGHT_PRESS USE MODI_PRESS_HEIGHT -USE MODI_THETAVPU_THETAVPM -USE MODI_TEMPORAL_LT -USE MODD_DIM_n -! -USE MODI_READ_ASCP USE MODI_READ_ASC_LATPRESS +USE MODI_READ_ASCP +USE MODI_TEMPORAL_LT +USE MODI_THETAVPU_THETAVPM ! -USE MODD_ADVFRC_n - IMPLICIT NONE ! ! !* 0.1 Declarations of arguments : ! -CHARACTER(LEN=*), INTENT(IN) :: HEXPRE ! name of input data file - - +TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file ! !* 0.2 Declarations of local variables : ! @@ -141,7 +141,7 @@ CHARACTER(LEN=6) :: YADV ! choice of zfrc or pfrc print*,"!* 1. PROLOGUE : RETRIEVE LOGICAL UNIT NUMBERS " ! ---------------------------------------- ! -CALL FMLOOK_ll(HEXPRE,CLUOUT,ILUPRE,IRESP) +ILUPRE = TPEXPREFILE%NLU ILUOUT = TLUOUT%NLU ! !------------------------------------------------------------------------------- diff --git a/src/MNH/set_chemaq_1way.f90 b/src/MNH/set_chemaq_1way.f90 index 9b0effa9d321434dc5761b9d313033839ee8c357..bbb1c28edf9785a71ba0505d1d9f25e89eb7426e 100644 --- a/src/MNH/set_chemaq_1way.f90 +++ b/src/MNH/set_chemaq_1way.f90 @@ -10,9 +10,8 @@ ! INTERFACE ! - SUBROUTINE SET_CHEMAQ_1WAY (HLUOUT,PRHODREF,PSVTOLD,PSVTNEW) + SUBROUTINE SET_CHEMAQ_1WAY (PRHODREF,PSVTOLD,PSVTNEW) ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name of the output-listing REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! Reference density ! REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSVTOLD ! chemical concentrations dad model @@ -27,7 +26,7 @@ END INTERFACE END MODULE MODI_SET_CHEMAQ_1WAY ! ! ########################################################### - SUBROUTINE SET_CHEMAQ_1WAY (HLUOUT,PRHODREF,PSVTOLD,PSVTNEW) + SUBROUTINE SET_CHEMAQ_1WAY (PRHODREF,PSVTOLD,PSVTNEW) ! ########################################################### ! !!**** *SET_CHEMAQ_1WAY * - transfer chemical concentrations in gas phase from @@ -78,13 +77,12 @@ END MODULE MODI_SET_CHEMAQ_1WAY !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM +USE MODD_LUNIT_n, ONLY: TLUOUT ! IMPLICIT NONE ! !* 0.1 Declarations of dummy arguments : ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name of the output-listing REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! Reference density ! REAL, DIMENSION(:,:,:,:), INTENT(IN) :: PSVTOLD ! chemical concentrations dad model @@ -102,7 +100,7 @@ INTEGER :: ILUOUT ! Logical unit number of output-listing !* 1. RETRIEVE LOGICAL UNIT NUMBER ! ---------------------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! !* 2. TRANSFER DATA FROM OLD TO NEW ARRAY ! ----------------------------------- diff --git a/src/MNH/set_conc_ice_c1r3.f90 b/src/MNH/set_conc_ice_c1r3.f90 index 4db5b5cafa89c2a2e6d4c85bab9b4b8451d0a0df..78954abd6e2c4dd6055e71928b086c140571eaa5 100644 --- a/src/MNH/set_conc_ice_c1r3.f90 +++ b/src/MNH/set_conc_ice_c1r3.f90 @@ -14,9 +14,8 @@ ! INTERFACE ! - SUBROUTINE SET_CONC_ICE_C1R3 (HLUOUT,PRHODREF,PRT,PSVT) + SUBROUTINE SET_CONC_ICE_C1R3 (PRHODREF,PRT,PSVT) ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name of the output-listing REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! Reference density ! REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRT ! microphysical mixing ratios @@ -31,7 +30,7 @@ END INTERFACE END MODULE MODI_SET_CONC_ICE_C1R3 ! ! ########################################################## - SUBROUTINE SET_CONC_ICE_C1R3 (HLUOUT,PRHODREF,PRT,PSVT) + SUBROUTINE SET_CONC_ICE_C1R3 (PRHODREF,PRT,PSVT) ! ########################################################## ! !!**** *SET_CONC_ICE_C1R3 * - initialize the ice crystal @@ -80,19 +79,17 @@ END MODULE MODI_SET_CONC_ICE_C1R3 !* 0. DECLARATIONS ! ------------ ! +USE MODD_CST, ONLY : XRHOLI +USE MODD_CONF, ONLY : NVERB USE MODD_ICE_C1R3_DESCR, ONLY : XRTMIN, XCTMIN USE MODD_ICE_C1R3_PARAM, ONLY : XCONCI_MAX, XNUC_CON, XEXTT_CON, XEX_CON -USE MODD_CONF, ONLY : NVERB +USE MODD_LUNIT_n, ONLY : TLUOUT USE MODD_RAIN_ICE_DESCR, ONLY : XAI, XBI -USE MODD_CST, ONLY : XRHOLI -! -USE MODE_FM ! IMPLICIT NONE ! !* 0.1 Declarations of dummy arguments : ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name of the output-listing REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! Reference density ! REAL, DIMENSION(:,:,:,:), INTENT(INOUT) :: PRT ! microphysical mixing ratios @@ -109,7 +106,7 @@ INTEGER :: ILUOUT ! Logical unit number of output-listing !* 1. RETRIEVE LOGICAL UNIT NUMBER ! ---------------------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! !* 2. INITIALIZATION ! -------------- diff --git a/src/MNH/set_conc_lima.f90 b/src/MNH/set_conc_lima.f90 index 54f17c858e74d5ccd7480ffa65d33d837b59c75e..dcc096885a801bd30fcb5db0a5f47a5502da19ad 100644 --- a/src/MNH/set_conc_lima.f90 +++ b/src/MNH/set_conc_lima.f90 @@ -4,9 +4,8 @@ ! INTERFACE ! - SUBROUTINE SET_CONC_LIMA (HLUOUT,HGETCLOUD,PRHODREF,PRT,PSVT) + SUBROUTINE SET_CONC_LIMA (HGETCLOUD,PRHODREF,PRT,PSVT) ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name of the output-listing CHARACTER (LEN=4), INTENT(IN) :: HGETCLOUD ! Get indicator REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! Reference density ! @@ -22,7 +21,7 @@ END INTERFACE END MODULE MODI_SET_CONC_LIMA ! ! ########################################################################### - SUBROUTINE SET_CONC_LIMA (HLUOUT,HGETCLOUD,PRHODREF,PRT,PSVT) + SUBROUTINE SET_CONC_LIMA (HGETCLOUD,PRHODREF,PRT,PSVT) ! ########################################################################### ! !!**** *SET_CONC_LIMA * - initialize droplet, raindrop and ice @@ -79,11 +78,12 @@ END MODULE MODI_SET_CONC_LIMA !* 0. DECLARATIONS ! ------------ ! -USE MODD_PARAM_LIMA, ONLY : XRTMIN, XCTMIN, LCOLD, LWARM, LRAIN -USE MODD_PARAM_LIMA_COLD, ONLY : XAI, XBI -USE MODD_NSV, ONLY : NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_CCN_ACTI, NSV_LIMA_NI, NSV_LIMA_IFN_NUCL USE MODD_CST, ONLY : XPI, XRHOLW, XRHOLI USE MODD_CONF, ONLY : NVERB +USE MODD_LUNIT_n, ONLY : TLUOUT +USE MODD_NSV, ONLY : NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_CCN_ACTI, NSV_LIMA_NI, NSV_LIMA_IFN_NUCL +USE MODD_PARAM_LIMA, ONLY : XRTMIN, XCTMIN, LCOLD, LWARM, LRAIN +USE MODD_PARAM_LIMA_COLD, ONLY : XAI, XBI ! USE MODE_FM ! @@ -91,7 +91,6 @@ IMPLICIT NONE ! !* 0.1 Declarations of dummy arguments : ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name of the output-listing CHARACTER (LEN=4), INTENT(IN) :: HGETCLOUD ! Get indicator REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! Reference density ! @@ -110,7 +109,7 @@ REAL :: ZCONCC, ZCONCR, ZCONCI !* 1. RETRIEVE LOGICAL UNIT NUMBER ! ---------------------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! !* 2. INITIALIZATION ! -------------- diff --git a/src/MNH/set_conc_rain_c2r2.f90 b/src/MNH/set_conc_rain_c2r2.f90 index fed953ccce4bc354eddbc7bc6430dfc15c609bac..5c0c0a4650c93b9243f7af4441b8dc7b6ad0493d 100644 --- a/src/MNH/set_conc_rain_c2r2.f90 +++ b/src/MNH/set_conc_rain_c2r2.f90 @@ -14,9 +14,8 @@ ! INTERFACE ! - SUBROUTINE SET_CONC_RAIN_C2R2 (HLUOUT,HGETCLOUD,PRHODREF,PRT,PSVT) + SUBROUTINE SET_CONC_RAIN_C2R2 (HGETCLOUD,PRHODREF,PRT,PSVT) ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name of the output-listing CHARACTER (LEN=4), INTENT(IN) :: HGETCLOUD ! Get indicator REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! Reference density ! @@ -31,9 +30,9 @@ END INTERFACE ! END MODULE MODI_SET_CONC_RAIN_C2R2 ! -! ########################################################################### - SUBROUTINE SET_CONC_RAIN_C2R2 (HLUOUT,HGETCLOUD,PRHODREF,PRT,PSVT) -! ########################################################################### +! ########################################################### + SUBROUTINE SET_CONC_RAIN_C2R2 (HGETCLOUD,PRHODREF,PRT,PSVT) +! ########################################################### ! !!**** *SET_CONC_RAIN_C2R2 * - initialize droplet and raindrop !! concentration for a RESTArt simulation of the C2R2 scheme @@ -90,17 +89,15 @@ END MODULE MODI_SET_CONC_RAIN_C2R2 !* 0. DECLARATIONS ! ------------ ! -USE MODD_RAIN_C2R2_DESCR, ONLY : XRTMIN, XCTMIN +USE MODD_CONF, ONLY : NVERB +USE MODD_LUNIT_n, ONLY : TLUOUT +USE MODD_RAIN_C2R2_DESCR, ONLY : XRTMIN, XCTMIN USE MODD_RAIN_C2R2_KHKO_PARAM, ONLY : XCONCC_INI, XCONCR_PARAM_INI -USE MODD_CONF, ONLY : NVERB -! -USE MODE_FM ! IMPLICIT NONE ! !* 0.1 Declarations of dummy arguments : ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name of the output-listing CHARACTER (LEN=4), INTENT(IN) :: HGETCLOUD ! Get indicator REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODREF ! Reference density ! @@ -123,7 +120,7 @@ REAL :: ZCONCC, ZCONCR !* 1. RETRIEVE LOGICAL UNIT NUMBER ! ---------------------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! !* 2. INITIALIZATION ! -------------- diff --git a/src/MNH/set_cstn.f90 b/src/MNH/set_cstn.f90 index bb079589a93dcb8d955b5dd4cf217f2173e9cbf4..f03f38356b3b3be599fa42167759757df6b8d2e6 100644 --- a/src/MNH/set_cstn.f90 +++ b/src/MNH/set_cstn.f90 @@ -13,12 +13,12 @@ ! INTERFACE ! -SUBROUTINE SET_CSTN(TPFILE,HEXPRE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,ORMV_BL,PJ,OSHIFT,PCORIOZ) +SUBROUTINE SET_CSTN(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,ORMV_BL,PJ,OSHIFT,PCORIOZ) ! USE MODD_IO_ll, ONLY : TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! outpput data file -CHARACTER(LEN=*), INTENT(IN) :: HEXPRE ! name of input data file +TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file CHARACTER(LEN=*), INTENT(IN) :: HFUNU ! type of variation of U ! in y direction CHARACTER(LEN=*), INTENT(IN) :: HFUNV ! type of variation of V @@ -43,7 +43,7 @@ END MODULE MODI_SET_CSTN ! ! ! ################################################################################## - SUBROUTINE SET_CSTN(TPFILE,HEXPRE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,ORMV_BL,PJ,OSHIFT,PCORIOZ) + SUBROUTINE SET_CSTN(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,ORMV_BL,PJ,OSHIFT,PCORIOZ) ! ################################################################################## ! !!**** *SET_CSTN * - routine to initialize mass and wind fields from a Nv=cste @@ -172,32 +172,29 @@ END MODULE MODI_SET_CSTN !* 0. DECLARATIONS ! ------------ ! -USE MODD_CST ! declarative modules -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_LUNIT_n USE MODD_CONF +USE MODD_CST USE MODD_GRID_n +USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_LUNIT_n, ONLY: CLUOUT, TLUOUT +USE MODD_PARAMETERS, ONLY: JPHEXT ! USE MODE_FM -USE MODE_THERMO ! executive modules +USE MODE_THERMO +USE MODE_ll +USE MODE_MPPDB ! -USE MODI_PRESS_HEIGHT ! interface modules +USE MODI_PRESS_HEIGHT USE MODI_SET_MASS -USE MODI_VERT_COORD USE MODI_SHUMAN -! -USE MODE_ll -USE MODD_PARAMETERS, ONLY : JPHEXT -! -USE MODE_MPPDB +USE MODI_VERT_COORD ! IMPLICIT NONE ! -! !* 0.1 Declarations of arguments : ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! outpput data file -CHARACTER(LEN=*), INTENT(IN) :: HEXPRE ! name of input data file +TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file CHARACTER(LEN=*), INTENT(IN) :: HFUNU ! type of variation of U ! in y direction CHARACTER(LEN=*), INTENT(IN) :: HFUNV ! type of variation of V @@ -272,8 +269,8 @@ LOGICAL :: GPROFILE_IN_PROC ! T : initialization profile is in current ! CONSTANTS ! ------------------------------------------------------------ ! -CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP) -CALL FMLOOK_ll(HEXPRE,CLUOUT,ILUPRE,IRESP) +ILUPRE = TPEXPREFILE%NLU +ILUOUT = TLUOUT%NLU ! CALL GET_INDICE_ll(IIB,IJB,IIE,IJE) CALL GET_OR_ll('B',IXOR_ll,IYOR_ll) @@ -414,7 +411,7 @@ ZEXNGRDM= ( ZPGROUND / XP00) ** ZRDSCPD & ZPGRDM = XP00 * ZEXNGRDM ** (1./ZRDSCPD) ZPM(:) = PRESS_HEIGHT(ZZMASS_PROFILE(:),ZTHVM,ZPGRDM,ZTHVM(1),ZZMASS_PROFILE(1)) ! compute P ZTVM(:) = ZTHVM(:) * (ZPM(:) / XP00) ** ZRDSCPD ! compute Tv -ZMRM(:) = SM_PMR_HU(CLUOUT,ZPM(:),ZTVM(:),ZHUM(:), & +ZMRM(:) = SM_PMR_HU(ZPM(:),ZTVM(:),ZHUM(:), & SPREAD(ZMRM(:),2,1)) ! compute vapor ! mixing ratio !------------------------------------------------------------------------------- diff --git a/src/MNH/set_frc.f90 b/src/MNH/set_frc.f90 index bd40fe80eb43d9d7045afee44fc0d2a8ac9e8754..f32526aaa2b7257c966a1ac8e40d0d162f927dd9 100644 --- a/src/MNH/set_frc.f90 +++ b/src/MNH/set_frc.f90 @@ -14,8 +14,12 @@ ! INTERFACE ! -SUBROUTINE SET_FRC(HEXPRE) -CHARACTER(LEN=*), INTENT(IN) :: HEXPRE ! name of input data file +SUBROUTINE SET_FRC(TPEXPREFILE) +! +USE MODD_IO_ll, ONLY: TFILEDATA +! +TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file +! END SUBROUTINE SET_FRC ! END INTERFACE @@ -23,7 +27,7 @@ END INTERFACE END MODULE MODI_SET_FRC ! ! ########################## - SUBROUTINE SET_FRC(HEXPRE) + SUBROUTINE SET_FRC(TPEXPREFILE) ! ########################## ! !!*** *SET_FRC * - to initialize forcing fields from successive soundings @@ -107,6 +111,7 @@ USE MODD_GRID_n USE MODD_CONF USE MODD_FRC USE MODD_GRID +USE MODD_IO_ll, ONLY : TFILEDATA USE MODD_REF USE MODD_PARAMETERS ! @@ -125,7 +130,7 @@ IMPLICIT NONE ! !* 0.1 Declarations of arguments : ! -CHARACTER(LEN=*), INTENT(IN) :: HEXPRE ! name of input data file +TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file ! !* 0.2 Declarations of local variables : ! @@ -171,7 +176,7 @@ REAL :: ZEPS, & ! XRV/XRD-1.0 !* 1. PROLOGUE : RETRIEVE LOGICAL UNIT NUMBERS ! ---------------------------------------- ! -CALL FMLOOK_ll(HEXPRE,CLUOUT,ILUPRE,IRESP) +ILUPRE = TPEXPREFILE%NLU ILUOUT = TLUOUT%NLU ! ZRVSRD = XRV/XRD diff --git a/src/MNH/set_geosbal.f90 b/src/MNH/set_geosbal.f90 index 3a940d163ffa23ac6319e17f3da3facce1ca1837..02dd4a7e12f926c963eadfeb9e37f6c8c8bf0122 100644 --- a/src/MNH/set_geosbal.f90 +++ b/src/MNH/set_geosbal.f90 @@ -257,21 +257,18 @@ END MODULE MODI_SET_GEOSBAL !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM -USE MODE_GATHER_ll -USE MODE_ll -! -USE MODD_PARAMETERS ! declarative modules USE MODD_CONF USE MODD_CST -USE MODD_LUNIT_n -USE MODD_CONF -USE MODD_GRID -USE MODD_GRID_n USE MODD_DIM_n USE MODD_FIELD_n +USE MODD_GRID +USE MODD_GRID_n +USE MODD_PARAMETERS USE MODD_REF ! +USE MODE_GATHER_ll +USE MODE_ll +! USE MODI_SHUMAN ! IMPLICIT NONE @@ -304,9 +301,6 @@ REAL, DIMENSION(SIZE(XZHAT)) :: ZZHATM ! Height of mass model grid levels INTEGER :: IITRREF ! iteration number for the determination of ! the thetav field -INTEGER :: IRESP ! FM return code -INTEGER :: ILUOUT ! Logical unit number for - ! output-listing REAL,DIMENSION(:,:),ALLOCATABLE :: ZGAMMA,ZGAMMA_ll ! K(lambda-lambda0) -beta REAL :: ZGAMMALOC REAL, DIMENSION(SIZE(XXHAT),SIZE(XYHAT),SIZE(XZHAT)) :: ZTHV3D ! Potential @@ -344,8 +338,6 @@ REAL, DIMENSION(:,:), ALLOCATABLE ::ZTHVREF2D ! CONSTANTS ! ------------------------------------------------------------ ! -CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP) -! ZRVSRD = XRV / XRD ZRADSDG = XPI/180. ! diff --git a/src/MNH/set_grid.f90 b/src/MNH/set_grid.f90 index 7a6ff658a151838ddc5686ad04caf467026d18ec..ae740c0445d11600e3f4e950e7e29b261f3d28c7 100644 --- a/src/MNH/set_grid.f90 +++ b/src/MNH/set_grid.f90 @@ -168,7 +168,6 @@ END MODULE MODI_SET_GRID !! EXTERNAL !! -------- !! FMREAD : to read data in LFIFM file -!! FMLOOK : to retrieve a logical unit number !! !! Module MODE_GRIDPROJ : contains conformal projection routines !! SM_GRIDPROJ : to compute some grid variables in case of conformal @@ -238,26 +237,26 @@ END MODULE MODI_SET_GRID ! !* 0. DECLARATIONS ! ------------ -USE MODE_FM -USE MODD_PARAMETERS +USE MODD_BUDGET USE MODD_CONF USE MODD_CONF_n -USE MODD_GRID -USE MODD_IO_ll, ONLY:TFILEDATA,TOUTBAK -USE MODD_BUDGET USE MODD_DYN +USE MODD_GRID +USE MODD_IO_ll, ONLY: TFILEDATA,TOUTBAK +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_OUT_n, ONLY: OUT_MODEL +USE MODD_PARAMETERS USE MODD_NESTING ! +USE MODE_FIELD, ONLY: TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME +USE MODE_FM +USE MODE_FMREAD USE MODE_GATHER_ll USE MODE_GRIDCART USE MODE_GRIDPROJ -USE MODE_TIME -USE MODE_ll -! -USE MODE_FIELD, ONLY : TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME -USE MODE_FMREAD -USE MODD_OUT_n, ONLY : OUT_MODEL USE MODE_IO_MANAGE_STRUCT +USE MODE_ll +USE MODE_TIME ! IMPLICIT NONE ! @@ -442,9 +441,9 @@ CALL IO_READ_FIELD(TPINIFILE,'DTSEG',TDTSEG) !* 2.1 Spatial grid ! IF (LCARTESIAN) THEN - CALL SM_GRIDCART(HLUOUT,PXHAT,PYHAT,PZHAT,PZS,OSLEVE,PLEN1,PLEN2,PZSMT,PDXHAT,PDYHAT,PZZ,PJ) + CALL SM_GRIDCART(PXHAT,PYHAT,PZHAT,PZS,OSLEVE,PLEN1,PLEN2,PZSMT,PDXHAT,PDYHAT,PZZ,PJ) ELSE - CALL SM_GRIDPROJ(HLUOUT,PXHAT,PYHAT,PZHAT,PZS,OSLEVE,PLEN1,PLEN2,PZSMT,PLATORI,PLONORI, & + CALL SM_GRIDPROJ(PXHAT,PYHAT,PZHAT,PZS,OSLEVE,PLEN1,PLEN2,PZSMT,PLATORI,PLONORI, & PMAP,PLAT,PLON,PDXHAT,PDYHAT,PZZ,PJ) END IF ! @@ -474,7 +473,7 @@ TPOUTPUTN => OUT_MODEL(KMI)%TOUTPUTN !* 3. PRINT ON OUTPUT-LISTING ! ----------------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU IF (NVERB >= 10) THEN IIUP = SIZE(PXHAT) IJUP = SIZE(PYHAT) diff --git a/src/MNH/set_perturb.f90 b/src/MNH/set_perturb.f90 index 5e08a8b86c1b6a5256f04ac5cd515a518ec3b8fc..1d28b26530ae9554eccfde929eb33e03ad7dac87 100644 --- a/src/MNH/set_perturb.f90 +++ b/src/MNH/set_perturb.f90 @@ -13,8 +13,12 @@ ! INTERFACE ! -SUBROUTINE SET_PERTURB(HEXPRE) -CHARACTER(LEN=*), INTENT(IN) :: HEXPRE ! name of input data file +SUBROUTINE SET_PERTURB(TPEXPREFILE) +! +USE MODD_IO_ll, ONLY: TFILEDATA +! +TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file +! END SUBROUTINE SET_PERTURB ! END INTERFACE @@ -22,7 +26,7 @@ END INTERFACE END MODULE MODI_SET_PERTURB ! ! ############################## - SUBROUTINE SET_PERTURB(HEXPRE) + SUBROUTINE SET_PERTURB(TPEXPREFILE) ! ############################## ! !!**** *SET_PERTURB* - add a perturbation to a larger scale state field @@ -100,30 +104,32 @@ END MODULE MODI_SET_PERTURB !* 0. DECLARATIONS ! ------------ ! -USE MODD_PARAMETERS ! declarative modules USE MODD_CST USE MODD_CONF -USE MODD_GRID_n -USE MODD_FIELD_n USE MODD_DIM_n +USE MODD_FIELD_n +USE MODD_GRID_n +USE MODD_IO_ll, ONLY: TFILEDATA USE MODD_LBC_n +USE MODD_LUNIT_n, ONLY: CLUOUT, TLUOUT +USE MODD_PARAMETERS USE MODD_REF_n -USE MODD_LUNIT_n ! -USE MODE_POS USE MODE_FM -USE MODE_ll USE MODE_GATHER_ll -USE MODI_SCATTER +USE MODE_ll +USE MODE_MPPDB +USE MODE_POS USE MODE_REPRO_SUM +! USE MODI_GET_HALO -USE MODE_MPPDB +USE MODI_SCATTER ! IMPLICIT NONE ! !* 0.1 Declarations of arguments ! -CHARACTER(LEN=*), INTENT(IN) :: HEXPRE ! name of input data file +TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file ! !* 0.2 Declarations of local variables ! @@ -199,8 +205,8 @@ NAMELIST/NAM_PERT_PRE/CPERT_KIND,XAMPLITH, &! Perturbation parameters ! !* 1.1 Retrieve unit numbers and read namelist ! -CALL FMLOOK_ll(HEXPRE,CLUOUT,ILUPRE,IRESP) -CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP) +ILUPRE = TPEXPREFILE%NLU +ILUOUT = TLUOUT%NLU ! CALL POSNAM(ILUPRE,'NAM_PERT_PRE',GFOUND,ILUOUT) IF (GFOUND) READ(UNIT=ILUPRE,NML=NAM_PERT_PRE) diff --git a/src/MNH/set_ref.f90 b/src/MNH/set_ref.f90 index 45f23b24eb5a39c3b859a6d6a6ae6390acc8fe1e..fb95111650bea9ffcd4daae8362d95860e4f52c7 100644 --- a/src/MNH/set_ref.f90 +++ b/src/MNH/set_ref.f90 @@ -13,7 +13,7 @@ MODULE MODI_SET_REF ! INTERFACE ! - SUBROUTINE SET_REF(KMI,TPINIFILE,HLUOUT, & + SUBROUTINE SET_REF(KMI,TPINIFILE, & PZZ,PZHAT,PJ,PDXX,PDYY,HLBCX,HLBCY, & PREFMASS,PMASS_O_PHI0,PLINMASS, & PRHODREF,PTHVREF,PRVREF,PEXNREF,PRHODJ ) @@ -22,8 +22,6 @@ USE MODD_IO_ll, ONLY : TFILEDATA ! INTEGER, INTENT(IN) :: KMI ! Model index TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listings - ! of nested models REAL, DIMENSION(:,:,:), INTENT(IN) :: PZZ ! Height of the w levels ! with orography REAL, DIMENSION(:), INTENT(IN) :: PZHAT ! Height of the w levels @@ -59,7 +57,7 @@ END MODULE MODI_SET_REF ! ! ! ######################################################################### - SUBROUTINE SET_REF(KMI,TPINIFILE,HLUOUT, & + SUBROUTINE SET_REF(KMI,TPINIFILE, & PZZ,PZHAT,PJ,PDXX,PDYY,HLBCX,HLBCY, & PREFMASS,PMASS_O_PHI0,PLINMASS, & PRHODREF,PTHVREF,PRVREF,PEXNREF,PRHODJ ) @@ -157,24 +155,18 @@ END MODULE MODI_SET_REF !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS -USE MODE_FM ! ------------ -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_CONF +USE MODD_CST +USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS USE MODD_REF -USE MODD_CST -USE MODD_CONF -USE MODD_REF, ONLY : LBOUSS ! +USE MODE_FMREAD USE MODE_ll -!JUAN REALZ USE MODE_MPPDB -!JUAN REALZ -! -USE MODE_FMREAD -!JUAN USE MODE_REPRO_SUM -!JUAN ! IMPLICIT NONE ! @@ -182,8 +174,6 @@ IMPLICIT NONE ! INTEGER, INTENT(IN) :: KMI ! Model index TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing - ! of nested models REAL, DIMENSION(:,:,:), INTENT(IN) :: PZZ ! Height of the w levels ! with orography REAL, DIMENSION(:), INTENT(IN) :: PZHAT ! Height of the w levels @@ -214,7 +204,6 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRHODJ ! rhod J ! !* 0.2 declarations of local variables ! -INTEGER :: IRESP INTEGER :: ILUOUT ! Unit number for prints REAL, DIMENSION(SIZE(PZZ,1),SIZE(PZZ,2),SIZE(PZZ,3)) :: ZZM ! height of the mass levels @@ -263,7 +252,7 @@ IKU = SIZE(PEXNREF,3) IKB = 1 + JPVEXT IKE = IKU - JPVEXT ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! !* 2. READ REFERENCE STATE WITHOUT OROGRAPHY IN LFIFM FILE ! ---------------------------------------------------- diff --git a/src/MNH/set_refz.f90 b/src/MNH/set_refz.f90 index f07744d38f9faf8e3d91188ac3221b2523ee7214..a3457ab97605c1f9612eef860db88363059acdcc 100644 --- a/src/MNH/set_refz.f90 +++ b/src/MNH/set_refz.f90 @@ -75,7 +75,6 @@ END MODULE MODI_SET_REFZ !! !! subroutine COMPUTE_EXNER_FROM_TOP : to compute hydrostatic Exner function !! subroutine ZSECT :to compute the mean of a 3D field at a constant altitude -!! function FMLOOK :to retrieve a logical unit number associated with a file !! MZF : Shuman operator !! !! Module MODI_SHUMAN : interface for Shuman operators @@ -128,21 +127,19 @@ END MODULE MODI_SET_REFZ !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM -! -USE MODI_ZSECT ! interface module -USE MODI_SHUMAN -USE MODI_COMPUTE_EXNER_FROM_TOP -USE MODD_CONF ! declaration modules -USE MODD_LUNIT +USE MODD_CONF USE MODD_CST USE MODD_GRID_n -USE MODD_REF +USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS +USE MODD_REF ! -!20131024 mppdb USE MODE_MPPDB ! +USE MODI_COMPUTE_EXNER_FROM_TOP +USE MODI_SHUMAN +USE MODI_ZSECT +! IMPLICIT NONE ! !* 0.1 Declaration of arguments @@ -267,7 +264,7 @@ XRHODREFZ(:)=(XP00*(ZEXNMASSREFZ(:))**(XCPD/XRD-1.)) & XRHODREFZ(1)=XRHODREFZ(2) !------------------------------------------------------------------------------- ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) +ILUOUT0 = TLUOUT0%NLU WRITE(ILUOUT0,*) WRITE(ILUOUT0,*) 'REFERENCE STATE VARIABLES WITHOUT OROGRAPHY' WRITE(ILUOUT0,*) 'level altitude theta rhod pressure' diff --git a/src/MNH/set_relfrc.f90 b/src/MNH/set_relfrc.f90 index 1fb2f63b04763981bcb8c1408e7ecfa57ce511b5..436f71e4fca86e938ba8ee687be09427cf785fc5 100644 --- a/src/MNH/set_relfrc.f90 +++ b/src/MNH/set_relfrc.f90 @@ -12,8 +12,12 @@ ! INTERFACE ! -SUBROUTINE SET_RELFRC(HEXPRE) -CHARACTER(LEN=*), INTENT(IN) :: HEXPRE ! name of input data file +SUBROUTINE SET_RELFRC(TPEXPREFILE) +! +USE MODD_IO_ll, ONLY: TFILEDATA +! +TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file +! END SUBROUTINE SET_RELFRC ! END INTERFACE @@ -21,7 +25,7 @@ END INTERFACE END MODULE MODI_SET_RELFRC ! ! ########################## - SUBROUTINE SET_RELFRC(HEXPRE) + SUBROUTINE SET_RELFRC(TPEXPREFILE) ! ########################## ! !!*** *SET_RELFRC * - to initialize Advective or relaxation forcing fields for different months @@ -76,40 +80,36 @@ END MODULE MODI_SET_RELFRC !* 0. DECLARATIONS ! ------------ ! -USE MODD_CST -USE MODD_LUNIT_n -USE MODD_GRID_n USE MODD_CONF +USE MODD_CST USE MODD_FRC - USE MODD_GRID +USE MODD_GRID_n +USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_LUNIT_n +USE MODD_PARAMETERS, ONLY: JPHEXT USE MODD_REF -USE MODD_PARAMETERS ! JPHEXT +USE MODD_RELFRC_n ! -USE MODE_THERMO USE MODE_FM +USE MODE_IO_ll USE MODE_MSG +USE MODE_THERMO ! -USE MODE_IO_ll -USE MODI_HEIGHT_PRESS ! interface modules -USE MODI_PRESS_HEIGHT -USE MODI_THETAVPU_THETAVPM -USE MODI_TEMPORAL_LT USE MODD_DIM_n -! -USE MODI_READ_ASCP +USE MODI_HEIGHT_PRESS +USE MODI_PRESS_HEIGHT USE MODI_READ_ASC_LATPRESS +USE MODI_READ_ASCP +USE MODI_TEMPORAL_LT +USE MODI_THETAVPU_THETAVPM ! -USE MODD_RELFRC_n - IMPLICIT NONE ! ! !* 0.1 Declarations of arguments : ! -CHARACTER(LEN=*), INTENT(IN) :: HEXPRE ! name of input data file - - +TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file ! !* 0.2 Declarations of local variables : ! @@ -143,7 +143,7 @@ CHARACTER(LEN=6) :: YREL ! choice of zfrc or pfrc print*,"!* 1. PROLOGUE : RETRIEVE LOGICAL UNIT NUMBERS" ! ---------------------------------------- ! -CALL FMLOOK_ll(HEXPRE,CLUOUT,ILUPRE,IRESP) +ILUPRE = TPEXPREFILE%NLU ILUOUT = TLUOUT%NLU ! !------------------------------------------------------------------------------- diff --git a/src/MNH/set_rsou.f90 b/src/MNH/set_rsou.f90 index dd51d3519bb7247e52d3b3ea0b31bc0d26045318..3a895cb007aeac3c4515f4ec94fcff9a8c12e056 100644 --- a/src/MNH/set_rsou.f90 +++ b/src/MNH/set_rsou.f90 @@ -13,13 +13,13 @@ ! INTERFACE ! - SUBROUTINE SET_RSOU(TPFILE,HEXPRE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,& + SUBROUTINE SET_RSOU(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,& ORMV_BL,PJ,OSHIFT,PCORIOZ) ! USE MODD_IO_ll, ONLY : TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! outpput data file -CHARACTER(LEN=*), INTENT(IN) :: HEXPRE ! name of input data file +TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file CHARACTER(LEN=*), INTENT(IN) :: HFUNU ! type of variation of U ! in y direction CHARACTER(LEN=*), INTENT(IN) :: HFUNV ! type of variation of V @@ -42,7 +42,7 @@ END INTERFACE END MODULE MODI_SET_RSOU ! ! ########################################################################### - SUBROUTINE SET_RSOU(TPFILE,HEXPRE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,& + SUBROUTINE SET_RSOU(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,& ORMV_BL,PJ,OSHIFT,PCORIOZ) ! ########################################################################### ! @@ -252,33 +252,31 @@ END MODULE MODI_SET_RSOU !* 0. DECLARATIONS ! ------------ ! -USE MODD_CST ! declarative modules -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_LUNIT_n USE MODD_CONF USE MODD_CONF_n +USE MODD_CST +USE MODD_FIELD_n USE MODD_GRID USE MODD_GRID_n -USE MODD_FIELD_n -USE MODD_PARAM_n, ONLY : CCLOUD -USE MODD_PARAMETERS +USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_LUNIT_n +USE MODD_PARAMETERS, ONLY: JPHEXT +USE MODD_PARAM_n, ONLY: CCLOUD ! -USE MODE_THERMO USE MODE_FM USE MODE_IO_ll USE MODE_ll USE MODE_MSG +USE MODE_THERMO ! -USE MODI_HEIGHT_PRESS ! interface modules +USE MODI_COMPUTE_EXNER_FROM_GROUND +USE MODI_HEIGHT_PRESS USE MODI_PRESS_HEIGHT -USE MODI_THETAVPU_THETAVPM USE MODI_SET_MASS USE MODI_SHUMAN -USE MODI_VERT_COORD +USE MODI_THETAVPU_THETAVPM USE MODI_TH_R_FROM_THL_RT_1D -USE MODI_COMPUTE_EXNER_FROM_GROUND -! -USE MODD_PARAMETERS, ONLY : JPHEXT +USE MODI_VERT_COORD ! IMPLICIT NONE ! @@ -286,7 +284,7 @@ IMPLICIT NONE !* 0.1 Declarations of arguments : ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! outpput data file -CHARACTER(LEN=*), INTENT(IN) :: HEXPRE ! name of input data file +TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file CHARACTER(LEN=*), INTENT(IN) :: HFUNU ! type of variation of U ! in y direction CHARACTER(LEN=*), INTENT(IN) :: HFUNV ! type of variation of V @@ -401,7 +399,7 @@ ZRDSRV = XRD/XRV !* 1.2 Retrieve logical unit numbers ! ! -CALL FMLOOK_ll(HEXPRE,CLUOUT,ILUPRE,IRESP) +ILUPRE = TPEXPREFILE%NLU ILUOUT = TLUOUT%NLU ! !* 1.3 Read data kind in EXPRE file @@ -619,7 +617,7 @@ SELECT CASE(YKIND) ZTV(:)=ZTHV(:) * (ZPRESSM(:) / XP00) ** ZRDSCPD ! ! Compte mixing ratio - ZMR(:)=SM_PMR_HU(CLUOUT,ZPRESSM(:),ZTV(:),ZHU(:),SPREAD(ZMR(:),2,1)) + ZMR(:)=SM_PMR_HU(ZPRESSM(:),ZTV(:),ZHU(:),SPREAD(ZMR(:),2,1)) ! ! Compute height of the mass levels of the RS ZHEIGHTM(:) = HEIGHT_PRESS(ZPRESSM,ZTHV,ZPGROUND,ZTHV(1),ZZGROUND) @@ -685,7 +683,7 @@ SELECT CASE(YKIND) ! ! Compute Tv and the mixing ratio at the mass levels of the RS ZTV(:)=ZTHV(:) * (ZPRESSM(:) / XP00) ** ZRDSCPD - ZMR(:)=SM_PMR_HU(CLUOUT,ZPRESSM(:),ZTV(:),ZHU(:),SPREAD(ZMR(:),2,1)) + ZMR(:)=SM_PMR_HU(ZPRESSM(:),ZTV(:),ZHU(:),SPREAD(ZMR(:),2,1)) ! ! on interpole thetal(=theta quand il n'y a pas d'eau liquide) et r total ZRT(:)=ZMR(:) diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90 index 6ebec55f9287fb0ef7240440006fc87cf6901771..14779a7f527dcdfb1455706d8252eb88319957a4 100644 --- a/src/MNH/spawn_model2.f90 +++ b/src/MNH/spawn_model2.f90 @@ -766,12 +766,12 @@ ENDIF ! LB fields for lbc coupling ! !get the size of the local portion of the LB zone in X and Y direction -CALL GET_SIZEX_LB(CLUOUT,NIMAX_ll,NJMAX_ll,NRIMX, & - IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, & - IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2) -CALL GET_SIZEY_LB(CLUOUT,NIMAX_ll,NJMAX_ll,NRIMY, & - IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV, & - IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2) +CALL GET_SIZEX_LB(NIMAX_ll,NJMAX_ll,NRIMX, & + IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, & + IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2) +CALL GET_SIZEY_LB(NIMAX_ll,NJMAX_ll,NRIMY, & + IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV, & + IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2) !on fait des choses inutiles avec GET_SIZEX_LB, on pourrait utiliser seulement GET_LOCAL_LB_SIZE_X_ll !ILOCLBSIZEX = GET_LOCAL_LB_SIZE_X_ll( NRIMX ) !ILOCLBSIZEY = GET_LOCAL_LB_SIZE_Y_ll( NRIMY ) @@ -1065,12 +1065,12 @@ ZGRID2 = ZTIME2 - ZTIME1 ZTIME1 = ZTIME2 ! IF (LCARTESIAN) THEN - CALL SM_GRIDCART(CLUOUT,XXHAT,XYHAT,XZHAT,ZZS_LS,LSLEVE,XLEN1,XLEN2,ZZSMT_LS,XDXHAT,XDYHAT,ZZZ_LS,ZJ) - CALL SM_GRIDCART(CLUOUT,XXHAT,XYHAT,XZHAT,XZS ,LSLEVE,XLEN1,XLEN2,XZSMT ,XDXHAT,XDYHAT,XZZ ,ZJ) + CALL SM_GRIDCART(XXHAT,XYHAT,XZHAT,ZZS_LS,LSLEVE,XLEN1,XLEN2,ZZSMT_LS,XDXHAT,XDYHAT,ZZZ_LS,ZJ) + CALL SM_GRIDCART(XXHAT,XYHAT,XZHAT,XZS ,LSLEVE,XLEN1,XLEN2,XZSMT ,XDXHAT,XDYHAT,XZZ ,ZJ) ELSE - CALL SM_GRIDPROJ(CLUOUT,XXHAT,XYHAT,XZHAT,ZZS_LS,LSLEVE,XLEN1,XLEN2,ZZSMT_LS,& + CALL SM_GRIDPROJ(XXHAT,XYHAT,XZHAT,ZZS_LS,LSLEVE,XLEN1,XLEN2,ZZSMT_LS,& XLATORI,XLONORI,XMAP,XLAT,XLON,XDXHAT,XDYHAT,ZZZ_LS,ZJ) - CALL SM_GRIDPROJ(CLUOUT,XXHAT,XYHAT,XZHAT,XZS ,LSLEVE,XLEN1,XLEN2,XZSMT ,& + CALL SM_GRIDPROJ(XXHAT,XYHAT,XZHAT,XZS ,LSLEVE,XLEN1,XLEN2,XZSMT ,& XLATORI,XLONORI,XMAP,XLAT,XLON,XDXHAT,XDYHAT,XZZ ,ZJ) END IF ! @@ -1097,9 +1097,9 @@ CALL MPPDB_CHECK3D(XDZY,"spawnmod2-aftrupdate_metrics:XDZY",PRECISION) ! !* 5.5 3D Reference state variables : ! -CALL SET_REF(0,TZFILEDUMMY,CLUOUT, & - XZZ,XZHAT,ZJ,XDXX,XDYY,CLBCX,CLBCY, & - XREFMASS,XMASS_O_PHI0,XLINMASS, & +CALL SET_REF(0,TZFILEDUMMY, & + XZZ,XZHAT,ZJ,XDXX,XDYY,CLBCX,CLBCY, & + XREFMASS,XMASS_O_PHI0,XLINMASS, & XRHODREF,XTHVREF,XRVREF,XEXNREF,XRHODJ) ! CALL SECOND_MNH(ZTIME2) @@ -1213,7 +1213,7 @@ IF (NRR==0) THEN XTHT(:,:,:) = ZTHVT(:,:,:) ELSE IF (NDXRATIO/=1 .OR. NDYRATIO/=1) THEN - XRT(:,:,:,1) = SM_PMR_HU(CLUOUT,XPABST(:,:,:), & + XRT(:,:,:,1) = SM_PMR_HU(XPABST(:,:,:), & ZTHVT(:,:,:)*(XPABST(:,:,:)/XP00)**(XRD/XCPD), & ZHUT(:,:,:),XRT(:,:,:,:),KITERMAX=100 ) END IF @@ -1377,7 +1377,7 @@ ZRHOD(:,:,:)=XPABST(:,:,:)/(XPABST(:,:,:)/XP00)**(XRD/XCPD) & CALL MPPDB_CHECK3D(ZSUMRT,"SPAWN_MOD2:ZSUMRT",PRECISION) !$20140710 until here all ok after UPHALO(XZZ) ! -CALL TOTAL_DMASS(CLUOUT,ZJ,ZRHOD,XDRYMASST) +CALL TOTAL_DMASS(ZJ,ZRHOD,XDRYMASST) ! DEALLOCATE (ZRHOD) DEALLOCATE (ZSUMRT,ZTHVT) @@ -1443,7 +1443,7 @@ CALL IO_FILE_OPEN_ll(TZFILE) ! YDESFM=ADJUSTL(ADJUSTR(CMY_NAME(2))//'.des') ! -CALL WRITE_DESFM_n(2,YDESFM,CLUOUT) +CALL WRITE_DESFM_n(2,YDESFM) ! IF (LBAL_ONLY) THEN ! same relation with its DAD for model2 and for model1 NDXRATIO_ALL(2) = NDXRATIO_ALL(1) diff --git a/src/MNH/spawn_surf.f90 b/src/MNH/spawn_surf.f90 index 9f09b236d54daa39ef020437ad716d2cc544e309..f80801dd3c492bb1bbe609bb82f73b6e99ba7981 100644 --- a/src/MNH/spawn_surf.f90 +++ b/src/MNH/spawn_surf.f90 @@ -73,7 +73,6 @@ END MODULE MODI_SPAWN_SURF ! ------------ ! USE MODD_LUNIT, ONLY : CPGDFILE, COUTFMFILE -USE MODD_LUNIT_n, ONLY : CLUOUT USE MODD_PARAM_n, ONLY : CSURF USE MODD_NESTING, ONLY : CMY_NAME, CDAD_NAME USE MODD_CONF, ONLY : NVERB @@ -86,7 +85,6 @@ USE MODI_MNHPUT_ZS_n ! USE MODE_ll USE MODE_FMWRIT -USE MODE_FM USE MODE_IO_ll !JUAN REALZ USE MODE_MODELN_HANDLER @@ -112,16 +110,10 @@ LOGICAL, INTENT(IN) :: OSPAWN_SURF ! flag to spawn surface fields ! !* 0.1.3 Declarations of local variables : ! -INTEGER :: IRESP ! Return codes in FM routines -INTEGER :: ILUOUT ! Logical unit number for the output listing INTEGER :: IINFO_ll ! !------------------------------------------------------------------------------- ! -CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP) -! -!------------------------------------------------------------------------------- -! !* 7. Surface variables : ! IF (CSURF=='EXTE') THEN diff --git a/src/MNH/stationn.f90 b/src/MNH/stationn.f90 index 9c2ee8fcaa96ab65337177dfffb09684ed255149..27b5a964577a9e90a7604e8cbe83cf40a512d504 100644 --- a/src/MNH/stationn.f90 +++ b/src/MNH/stationn.f90 @@ -14,7 +14,7 @@ MODULE MODI_STATION_n ! INTERFACE ! - SUBROUTINE STATION_n(HLUOUT, PTSTEP, & + SUBROUTINE STATION_n(PTSTEP, & TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, & PU, PV, PW, PTH, PR, PSV, PTKE, & @@ -22,7 +22,6 @@ INTERFACE ! USE MODD_TYPE_DATE ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! output listing REAL, INTENT(IN) :: PTSTEP ! time step TYPE(DATE_TIME), INTENT(IN) :: TPDTEXP! experiment date and time TYPE(DATE_TIME), INTENT(IN) :: TPDTMOD! model start date and time @@ -50,7 +49,7 @@ END INTERFACE END MODULE MODI_STATION_n ! ! ######################################################## - SUBROUTINE STATION_n(HLUOUT, PTSTEP, & + SUBROUTINE STATION_n(PTSTEP, & TPDTEXP, TPDTMOD, TPDTSEG, TPDTCUR, & PXHAT, PYHAT, PZ, & PU, PV, PW, PTH, PR, PSV, PTKE, & @@ -106,7 +105,6 @@ USE MODD_GRID USE MODD_TIME USE MODD_CONF ! -USE MODE_FM USE MODE_ll ! USE MODI_WATER_SUM @@ -120,7 +118,6 @@ IMPLICIT NONE !* 0.1 declarations of arguments ! ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! output listing REAL, INTENT(IN) :: PTSTEP ! time step TYPE(DATE_TIME), INTENT(IN) :: TPDTEXP! experiment date and time TYPE(DATE_TIME), INTENT(IN) :: TPDTMOD! model start date and time @@ -168,7 +165,6 @@ REAL :: ZV_STAT ! horizontal wind speed at station location (along y) REAL :: ZGAM ! rotation between meso-nh base and spherical lat-lon base. ! INTEGER :: IINFO_ll ! return code -INTEGER :: ILUOUT ! logical unit INTEGER :: IRESP ! return code INTEGER :: I ! loop for stations INTEGER :: J ! loop for levels @@ -179,8 +175,6 @@ INTEGER :: J ! loop for levels !* 2. PRELIMINARIES ! ------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) -! !* 2.1 Indices ! ------- ! diff --git a/src/MNH/total_dmass.f90 b/src/MNH/total_dmass.f90 index 0dff9a5545b2d2ce655dbeca2dc782dc565a457c..f54de98b07d17d0421aee447b6f3cc01bae71e77 100644 --- a/src/MNH/total_dmass.f90 +++ b/src/MNH/total_dmass.f90 @@ -14,12 +14,10 @@ ! INTERFACE ! - SUBROUTINE TOTAL_DMASS(HLUOUT,PJ,PRHOD,PDRYMASS) + SUBROUTINE TOTAL_DMASS(PJ,PRHOD,PDRYMASS) ! IMPLICIT NONE ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing - ! of nested models REAL, DIMENSION(:,:,:), INTENT(IN) :: PJ ! Jacobian REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHOD ! dry density ! @@ -36,7 +34,7 @@ END MODULE MODI_TOTAL_DMASS ! ! ! ######################################################################### - SUBROUTINE TOTAL_DMASS(HLUOUT,PJ,PRHOD,PDRYMASS) + SUBROUTINE TOTAL_DMASS(PJ,PRHOD,PDRYMASS) ! ######################################################################### ! !!**** *TOTAL_DMASS* - routine to set reference state for anelastic approximation @@ -86,17 +84,15 @@ END MODULE MODI_TOTAL_DMASS ! !* 0. DECLARATIONS ! ------------ -USE MODE_FM +USE MODD_CONF, ONLY: NVERB +USE MODD_LUNIT_n, ONLY: TLUOUT +! USE MODE_ll ! -USE MODD_CONF, ONLY : NVERB -! IMPLICIT NONE ! !* 0.1 declarations of arguments ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name for output-listing - ! of nested models REAL, DIMENSION(:,:,:), INTENT(IN) :: PJ ! Jacobian REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHOD ! dry density ! @@ -105,9 +101,6 @@ REAL, INTENT(OUT) :: PDRYMASS ! Mass of dry air Md ! !* 0.2 declarations of local variables ! -INTEGER :: IRESP ! File management variable -INTEGER :: ILUOUT ! Unit number for prints -! INTEGER :: IINFO_ll ! Return code of parallel routine ! !------------------------------------------------------------------------------- @@ -123,10 +116,7 @@ PDRYMASS=SUM3D_ll(PJ(:,:,:)*PRHOD(:,:,:),IINFO_ll) ! ----------------------- ! IF(NVERB >= 5) THEN -! - CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) -! - WRITE(ILUOUT,*) 'TOTAL_DMASS: M= ',PDRYMASS + WRITE(TLUOUT%NLU,*) 'TOTAL_DMASS: M= ',PDRYMASS END IF ! !------------------------------------------------------------------------------- diff --git a/src/MNH/trid.f90 b/src/MNH/trid.f90 index 19578b710efa40b196edf4d27a7190d0deffabad..f6a77a1d2f8fb0e8bccca718391f3904690ec4c2 100644 --- a/src/MNH/trid.f90 +++ b/src/MNH/trid.f90 @@ -14,14 +14,13 @@ ! INTERFACE ! - SUBROUTINE TRID(HLUOUT,HLBCX,HLBCY, & + SUBROUTINE TRID(HLBCX,HLBCY, & PMAP,PDXHAT,PDYHAT,PDXHATM,PDYHATM,PRHOM, & PAF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY, & PRHODJ,PTHVREF,PZZ,PBFY ) ! IMPLICIT NONE ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! output listing name CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX ! x-direction LBC type CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY ! y-direction LBC type ! @@ -67,7 +66,7 @@ END INTERFACE END MODULE MODI_TRID ! ! ################################################################### - SUBROUTINE TRID(HLUOUT,HLBCX,HLBCY, & + SUBROUTINE TRID(HLBCX,HLBCY, & PMAP,PDXHAT,PDYHAT,PDXHATM,PDYHATM,PRHOM, & PAF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY, & PRHODJ,PTHVREF,PZZ,PBFY ) @@ -172,11 +171,11 @@ END MODULE MODI_TRID ! ------------ USE MODD_CST USE MODD_CONF +USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS ! USE MODE_ll USE MODE_IO_ll -USE MODE_FM USE MODE_MSG ! !JUAN @@ -190,7 +189,6 @@ IMPLICIT NONE ! ! ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! output listing name CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX ! x-direction LBC type CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY ! y-direction LBC type ! @@ -284,7 +282,7 @@ REAL, ALLOCATABLE, DIMENSION(:,:) :: ZRHOM_2D , ZDZM_2D !* 1.1 retrieve a logical unit number ! ------------------------------ ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! !* 1.2 compute loop bounds ! ------------------- diff --git a/src/MNH/tridz.f90 b/src/MNH/tridz.f90 index 9815bef4bd76cc84de02b84e248e33a05fa94848..7428f6db25aa745c358e2a2d07f0af6b43579e86 100644 --- a/src/MNH/tridz.f90 +++ b/src/MNH/tridz.f90 @@ -13,7 +13,7 @@ ! INTERFACE ! - SUBROUTINE TRIDZ(HLUOUT,HLBCX,HLBCY, & + SUBROUTINE TRIDZ(HLBCX,HLBCY, & PMAP,PDXHAT,PDYHAT,PDXHATM,PDYHATM,PRHOM, & PAF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY, & PRHODJ,PTHVREF,PZZ,PBFY,PBFB,& @@ -21,7 +21,6 @@ INTERFACE ! IMPLICIT NONE ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! output listing name CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX ! x-direction LBC type CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY ! y-direction LBC type ! @@ -73,7 +72,7 @@ END INTERFACE END MODULE MODI_TRIDZ ! ! ################################################################### - SUBROUTINE TRIDZ(HLUOUT,HLBCX,HLBCY, & + SUBROUTINE TRIDZ(HLBCX,HLBCY, & PMAP,PDXHAT,PDYHAT,PDXHATM,PDYHATM,PRHOM, & PAF,PCF,PTRIGSX,PTRIGSY,KIFAXX,KIFAXY, & PRHODJ,PTHVREF,PZZ,PBFY,PBFB,& @@ -180,11 +179,11 @@ END MODULE MODI_TRIDZ ! ------------ USE MODD_CST USE MODD_CONF +USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS ! USE MODE_ll USE MODE_IO_ll -USE MODE_FM USE MODE_MSG !JUAN P1/P2 SPLITTING USE MODE_SPLITTINGZ_ll , ONLY : GET_DIM_EXTZ_ll,GET_ORZ_ll,LWESTZ_ll,LSOUTHZ_ll @@ -202,7 +201,6 @@ IMPLICIT NONE ! ! ! -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! output listing name CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCX ! x-direction LBC type CHARACTER (LEN=4), DIMENSION(2), INTENT(IN) :: HLBCY ! y-direction LBC type ! @@ -311,7 +309,7 @@ REAL, ALLOCATABLE, DIMENSION(:,:) :: ZRHOM_2D , ZDZM_2D !* 1.1 retrieve a logical unit number ! ------------------------------ ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! !* 1.2 compute loop bounds ! ------------------- diff --git a/src/MNH/two_way.f90 b/src/MNH/two_way.f90 index 9053ab92aef76428193ee8ab58810a7198cca207..7d47d81319b1b3685ce3111b1a920e42d7fa6d25 100644 --- a/src/MNH/two_way.f90 +++ b/src/MNH/two_way.f90 @@ -14,14 +14,12 @@ ! INTERFACE ! - SUBROUTINE TWO_WAY ( HLUOUT,KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP, & + SUBROUTINE TWO_WAY ( KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP, & PUM ,PVM, PWM, PTHM, PRM, PTKEM, PSVM, & PRUS,PRVS,PRWS,PRTHS,PRRS,PRTKES,PRSVS, & PINPRC,PINPRR,PINPRS,PINPRG,PINPRH,PPRCONV,PPRSCONV, & PDIRFLASWD,PSCAFLASWD,PDIRSRFSWD,OMASKkids ) ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Name of the output-listing -! INTEGER, INTENT(IN) :: KRR ! Number of moist variables INTEGER, INTENT(IN) :: KSV ! Number of Scalar Variables INTEGER, INTENT(IN) :: KTCOUNT ! Temporal loop COUNTer @@ -54,7 +52,7 @@ END INTERFACE END MODULE MODI_TWO_WAY ! ! ######################################################################## - SUBROUTINE TWO_WAY ( HLUOUT,KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP, & + SUBROUTINE TWO_WAY ( KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP, & PUM ,PVM, PWM, PTHM, PRM, PTKEM, PSVM, & PRUS,PRVS,PRWS,PRTHS,PRRS,PRTKES,PRSVS, & PINPRC,PINPRR,PINPRS,PINPRG,PINPRH,PPRCONV,PPRSCONV, & @@ -121,8 +119,6 @@ IMPLICIT NONE !* 0.1 declarations of arguments ! ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Name of the output-listing -! INTEGER, INTENT(IN) :: KRR ! Number of moist variables INTEGER, INTENT(IN) :: KSV ! Number of Scalar Variables INTEGER, INTENT(IN) :: KTCOUNT ! Temporal loop COUNTer @@ -161,7 +157,7 @@ DO JKID = KMI+1,NMODEL ! min value of the possible kids IF (KMI == NDAD(JKID) .AND. (XWAY(JKID) == 2. ) & .AND. (CCONF == 'RESTA' .OR. (CCONF == 'START' .AND. KTCOUNT /= 1))) THEN CALL GOTO_MODEL(JKID) - CALL TWO_WAY_n (HLUOUT,KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP, & + CALL TWO_WAY_n (KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP, & PUM ,PVM, PWM, PTHM, PRM, PTKEM, PSVM, & PRUS,PRVS,PRWS,PRTHS,PRRS,PRTKES,PRSVS, & PINPRC,PINPRR,PINPRS,PINPRG,PINPRH,PPRCONV,PPRSCONV, & diff --git a/src/MNH/two_wayn.f90 b/src/MNH/two_wayn.f90 index 3ebfd396b164e9179fd56937fc6dc847564d863b..0736f514694d944e519495e8622f6e3af6285bcb 100644 --- a/src/MNH/two_wayn.f90 +++ b/src/MNH/two_wayn.f90 @@ -14,14 +14,12 @@ ! INTERFACE ! - SUBROUTINE TWO_WAY_n (HLUOUT,KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP, & + SUBROUTINE TWO_WAY_n (KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP, & PUM ,PVM, PWM, PTHM, PRM, PTKEM, PSVM, & PRUS,PRVS,PRWS,PRTHS,PRRS,PRTKES,PRSVS, & PINPRC,PINPRR,PINPRS,PINPRG,PINPRH,PPRCONV,PPRSCONV, & PDIRFLASWD,PSCAFLASWD,PDIRSRFSWD,OMASKkids ) ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Name of the output-listing -! INTEGER, INTENT(IN) :: KRR ! Number of moist variables INTEGER, INTENT(IN) :: KSV ! Number of Scalar Variables INTEGER, INTENT(IN) :: KTCOUNT ! Temporal loop COUNTer @@ -51,7 +49,7 @@ END INTERFACE ! END MODULE MODI_TWO_WAY_n ! ####################################################################### - SUBROUTINE TWO_WAY_n (HLUOUT,KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP, & + SUBROUTINE TWO_WAY_n (KRR,KSV,KTCOUNT,PRHODJ,KMI,PTSTEP, & PUM ,PVM, PWM, PTHM, PRM, PTKEM, PSVM, & PRUS,PRVS,PRWS,PRTHS,PRRS,PRTKES,PRSVS, & PINPRC,PINPRR,PINPRS,PINPRG,PINPRH,PPRCONV,PPRSCONV, & @@ -148,8 +146,6 @@ IMPLICIT NONE ! !* 0.1 declarations of arguments ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Name of the output-listing -! INTEGER, INTENT(IN) :: KRR ! Number of moist variables INTEGER, INTENT(IN) :: KSV ! Number of SV (father model) INTEGER, INTENT(IN) :: KTCOUNT ! Temporal loop COUNTer diff --git a/src/MNH/uv_to_zonal_and_merid.f90 b/src/MNH/uv_to_zonal_and_merid.f90 index fd8d80fb094f4125071466df9620514f67ecce1d..a3dabbef2a4defbe0535587b8da644e4f61a63a5 100644 --- a/src/MNH/uv_to_zonal_and_merid.f90 +++ b/src/MNH/uv_to_zonal_and_merid.f90 @@ -102,15 +102,14 @@ END MODULE MODI_UV_TO_ZONAL_AND_MERID3D ! USE MODD_CONF USE MODD_CST -USE MODD_GRID -USE MODD_IO_ll, ONLY: TFILEDATA,NVERB_ERROR,NVERB_INFO,NVERB_WARNING -USE MODD_PARAMETERS USE MODD_DIM_n +USE MODD_GRID USE MODD_GRID_n -USE MODD_LUNIT_n +USE MODD_IO_ll, ONLY: TFILEDATA,NVERB_ERROR,NVERB_INFO,NVERB_WARNING +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_PARAMETERS ! -USE MODE_FIELD, ONLY: TFIELDDATA -USE MODE_FM +USE MODE_FIELD, ONLY: TFIELDDATA USE MODE_FMWRIT USE MODE_MSG ! @@ -137,12 +136,10 @@ REAL, DIMENSION(:,:,:),ALLOCATABLE :: ZWORK3 REAL, DIMENSION(:,:,:),ALLOCATABLE :: ZZC,ZMC ! INTEGER :: IGRID ! grid indicator -INTEGER :: IRESP ! return-code for the file routines INTEGER :: ILUOUT ! logical unit for output listing !----------------------------------------------------------------- ! - -CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! IKU=SIZE(PU,3) ALLOCATE(ZWORK2(SIZE(XLON,1),SIZE(XLON,2))) @@ -278,11 +275,10 @@ END SUBROUTINE UV_TO_ZONAL_AND_MERID3D !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_ll, ONLY: TFILEDATA,NVERB_WARNING -USE MODD_LUNIT_n +USE MODD_IO_ll, ONLY: TFILEDATA,NVERB_WARNING +USE MODD_LUNIT_n, ONLY: TLUOUT ! -USE MODE_FIELD, ONLY: TFIELDDATA -USE MODE_FM +USE MODE_FIELD, ONLY: TFIELDDATA USE MODE_FMWRIT USE MODE_MSG ! @@ -304,12 +300,11 @@ TYPE(TFIELDDATA),DIMENSION(2), OPTIONAL, INTENT(IN) :: TZFIELDS ! Fields charac ! REAL, DIMENSION(SIZE(PU,1),SIZE(PU,2),1) :: ZU3D,ZV3D REAL, DIMENSION(SIZE(PU,1),SIZE(PU,2),1) :: ZZC3D,ZMC3D -INTEGER :: IRESP ! return-code for the file routines INTEGER :: ILUOUT ! logical unit for output listing ! !----------------------------------------------------------------- ! -CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP) +ILUOUT = TLUOUT%NLU ! ZU3D(:,:,1)=PU(:,:) ZV3D(:,:,1)=PV(:,:) diff --git a/src/MNH/ver_dyn.f90 b/src/MNH/ver_dyn.f90 index 4dd02ca40c37cfc3d99cb3071b5d9744763d1415..a97b724b1bea1bcead7760a2c9f3c25c6cceeddc 100644 --- a/src/MNH/ver_dyn.f90 +++ b/src/MNH/ver_dyn.f90 @@ -85,8 +85,6 @@ END MODULE MODI_VER_DYN !! subroutine WGUESS : to initialize vertical momentum !! subroutine ANEL_BALANCE1 : to apply the anelastic correction !! functions MXM ,MYM ,MZM : Shuman operators -!! subroutine FMLOOK : to retrieve a logical unit number associated -!! with a file !! !! !! IMPLICIT ARGUMENTS @@ -138,32 +136,31 @@ END MODULE MODI_VER_DYN !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM -! -USE MODI_COEF_VER_INTERP_LIN ! interface modules -USE MODI_VER_INTERP_LIN -USE MODI_WGUESS -USE MODI_VER_SHIFT -USE MODI_VER_INT_DYN -USE MODI_ANEL_BALANCE_n -USE MODI_SHUMAN -! -USE MODD_CONF ! declaration modules +USE MODD_ARGSLIST_ll, ONLY: LIST_ll +USE MODD_CONF USE MODD_CST -USE MODD_LUNIT -USE MODD_FIELD_n, ONLY: XUT,XVT,XWT,XPABST,XTHT,XRT -USE MODD_LSFIELD_n -USE MODD_LBC_n -USE MODD_REF_n +USE MODD_DIM_n USE MODD_DYN_n +USE MODD_FIELD_n, ONLY: XUT,XVT,XWT,XPABST,XTHT,XRT USE MODD_GRID_n +USE MODD_LBC_n +USE MODD_LSFIELD_n +USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS +USE MODD_REF_n USE MODD_VER_INTERP_LIN -USE MODD_DIM_n -USE MODE_MPPDB -USE MODE_ll +! USE MODE_EXTRAPOL -USE MODD_ARGSLIST_ll, ONLY : LIST_ll +USE MODE_ll +USE MODE_MPPDB +! +USE MODI_ANEL_BALANCE_n +USE MODI_COEF_VER_INTERP_LIN +USE MODI_SHUMAN +USE MODI_VER_INT_DYN +USE MODI_VER_INTERP_LIN +USE MODI_VER_SHIFT +USE MODI_WGUESS ! IMPLICIT NONE ! @@ -211,8 +208,6 @@ INTEGER :: IIB,IIE,IIU INTEGER :: IJB,IJE,IJU INTEGER :: IKB,IKE,IKU INTEGER :: ILBX,ILBY -INTEGER :: IRESP ! return code if problem eraised in FM routines -INTEGER :: ILUOUT0 ! logical unit for output listing for all models ! INTEGER :: IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU ! dimensions of the INTEGER :: IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2 ! West-east LB arrays @@ -231,7 +226,6 @@ IJU=SIZE(PJ,2) IKB=JPVEXT+1 IKE=SIZE(PJ,3)-JPVEXT IKU=SIZE(PJ,3) -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) ! !------------------------------------------------------------------------------- ! @@ -445,12 +439,12 @@ CALL MPPDB_CHECK3D(XLSVM,"VER_DYN5-afterextrapol::XLSVM",PRECISION) ! ! 3D case ! - CALL GET_SIZEX_LB(CLUOUT0,NIMAX_ll,NJMAX_ll,NRIMX, & - IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, & - IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2) - CALL GET_SIZEY_LB(CLUOUT0,NIMAX_ll,NJMAX_ll,NRIMY, & - IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV, & - IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2) + CALL GET_SIZEX_LB(NIMAX_ll,NJMAX_ll,NRIMX, & + IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, & + IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2) + CALL GET_SIZEY_LB(NIMAX_ll,NJMAX_ll,NRIMY, & + IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV, & + IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2) IF ( LHORELAX_UVWTH ) THEN NSIZELBX_ll=2*NRIMX+2*JPHEXT @@ -520,6 +514,6 @@ CALL MPPDB_CHECKLB(XLBYWM,"ver_dyn::XLBYWM::",PRECISION,'LBYV',NRIMY) ! !------------------------------------------------------------------------------- ! -WRITE(ILUOUT0,*) 'Routine VER_DYN completed.' +WRITE(TLUOUT0%NLU,*) 'Routine VER_DYN completed.' ! END SUBROUTINE VER_DYN diff --git a/src/MNH/ver_int_dyn.f90 b/src/MNH/ver_int_dyn.f90 index c32dcfc5e036a9f42c231cc714870c463f69df88..81c2cd1e22206d809bd4088cd1046c72878c4a04 100644 --- a/src/MNH/ver_int_dyn.f90 +++ b/src/MNH/ver_int_dyn.f90 @@ -63,8 +63,6 @@ END MODULE MODI_VER_INT_DYN !! !! function VER_SHIFT : to shift a array of altitudes !! function VER_INTERP : to interpolate one field from one grid to another -!! subroutine FMLOOK : to retrieve a logical unit number associated -!! with a file !! MZF : Shuman operator !! !! Module MODI_SHUMAN : interface for Shuman operators @@ -104,18 +102,17 @@ END MODULE MODI_VER_INT_DYN !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM -! -USE MODI_VER_SHIFT ! interface module -USE MODI_COEF_VER_INTERP_LIN -USE MODI_VER_INTERP_LIN -USE MODI_SHUMAN -USE MODD_CONF ! declaration modules -USE MODD_LUNIT +USE MODD_CONF USE MODD_GRID_n +USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS USE MODD_VER_INTERP_LIN ! +USE MODI_COEF_VER_INTERP_LIN +USE MODI_SHUMAN +USE MODI_VER_INTERP_LIN +USE MODI_VER_SHIFT +! IMPLICIT NONE ! !* 0.1 Declaration of arguments @@ -135,7 +132,6 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRHODVA ! rhodV on MESO-NH A-grid !* 0.2 Declaration of local variables ! ------------------------------ ! -INTEGER ::ILUOUT0, IRESP INTEGER ::IKU ! REAL,DIMENSION(SIZE(PZMASS_MX,1),SIZE(PZMASS_MX,2),SIZE(PZMASS_MX,3)) & @@ -206,7 +202,6 @@ PRHODVA(:,:,:)=VER_INTERP_LIN(ZRHODV_SH(:,:,:),NKLIN(:,:,:),XCOEFLIN(:,:,:)) ! !------------------------------------------------------------------------------- ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) -WRITE(ILUOUT0,*) 'Routine VER_INT_DYN completed' +WRITE(TLUOUT0%NLU,*) 'Routine VER_INT_DYN completed' ! END SUBROUTINE VER_INT_DYN diff --git a/src/MNH/ver_int_thermo.f90 b/src/MNH/ver_int_thermo.f90 index 9c39d1024cabada354aca8f99044fa631b451b3d..1a5fcb6d4fbe9d9c03301675ca64878b42d063c1 100644 --- a/src/MNH/ver_int_thermo.f90 +++ b/src/MNH/ver_int_thermo.f90 @@ -84,8 +84,6 @@ END MODULE MODI_VER_INT_THERMO !! subroutine MEAN_PROF : to compute the shift profiles !! function VER_SHIFT : to shift a array of altitudes !! function VER_INTERP : to interpolate one field from one grid to another -!! function FMLOOK : to retrieve a logical unit number associated -!! with a file !! MZF : Shuman operator !! function SM_FOES : to compute saturation vapor pressure !! function SM_PMR_HU : function to compute vapor mixing ratio from HU @@ -144,33 +142,30 @@ END MODULE MODI_VER_INT_THERMO !* 0. DECLARATIONS ! ------------ ! -USE MODE_THERMO ! executive module -USE MODE_FM -USE MODI_FREE_ATM_PROFILE ! interface module -USE MODI_VER_SHIFT -USE MODI_COEF_VER_INTERP_LIN -USE MODI_VER_INTERP_LIN -USE MODI_SHUMAN -USE MODI_COMPUTE_EXNER_FROM_TOP -USE MODI_RMS_AT_Z -USE MODI_WATER_SUM -! -USE MODD_CONF ! declaration modules +USE MODD_ARGSLIST_ll, ONLY: LIST_ll +USE MODD_CONF USE MODD_CONF_n -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_LUNIT +USE MODD_CST USE MODD_GRID_n +USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_LUNIT, ONLY: CLUOUT0, TLUOUT0 USE MODD_PARAMETERS -USE MODD_CST USE MODD_VER_INTERP_LIN -!JUAN REALZ -USE MODE_MPPDB -USE MODE_EXTRAPOL -!JUAN REALZ -USE MODI_SECOND_MNH ! +USE MODE_EXTRAPOL USE MODE_ll -USE MODD_ARGSLIST_ll, ONLY : LIST_ll +USE MODE_MPPDB +USE MODE_THERMO +! +USE MODI_COEF_VER_INTERP_LIN +USE MODI_COMPUTE_EXNER_FROM_TOP +USE MODI_FREE_ATM_PROFILE +USE MODI_RMS_AT_Z +USE MODI_SECOND_MNH +USE MODI_SHUMAN +USE MODI_VER_INTERP_LIN +USE MODI_VER_SHIFT +USE MODI_WATER_SUM ! IMPLICIT NONE ! @@ -271,7 +266,7 @@ TYPE(LIST_ll), POINTER :: TZFIELDS_ll=>NULL() ! list of fields to exchange ! !------------------------------------------------------------------------------ ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) +ILUOUT0 = TLUOUT0%NLU ! CALL GET_INDICE_ll (IIB,IJB,IIE,IJE) IKB=JPVEXT+1 @@ -499,7 +494,7 @@ IF (NVERB>4) THEN !20131113 check3d CALL MPPDB_CHECK3D(ZTV_SH,"ver_int_thermo5b::ZTV_SH",PRECISION) ! - ZR_SH(:,:,:,1)=SM_PMR_HU(CLUOUT0,ZPMASS_SH(:,:,:),ZTV_SH(:,:,:),ZHU_SH(:,:,:),& + ZR_SH(:,:,:,1)=SM_PMR_HU(ZPMASS_SH(:,:,:),ZTV_SH(:,:,:),ZHU_SH(:,:,:),& ZR_SH(:,:,:,:),KITERMAX=100) CALL RMS_AT_Z(PTHV_MX/(1.+XRV/XRD*PR_MX(:,:,:,1))*(1.+WATER_SUM(PR_MX(:,:,:,:))), & PZS_LS,PZMASS_MX, & @@ -564,7 +559,7 @@ CALL CLEANLIST_ll(TZFIELDS_ll) !20131112 check3d CALL MPPDB_CHECK3D(ZP,"ver_int_thermo6b::ZP",PRECISION) ! -PR(:,:,:,1)=SM_PMR_HU(CLUOUT0,ZP(:,:,:), & +PR(:,:,:,1)=SM_PMR_HU(ZP(:,:,:), & PTHV(:,:,:)*(ZP(:,:,:)/XP00)**(XRD/XCPD), & ZHU(:,:,:),PR(:,:,:,:),KITERMAX=100) CALL ADD3DFIELD_ll(TZFIELDS_ll,PR(:,:,:,1)) diff --git a/src/MNH/ver_interp_to_mixed_grid.f90 b/src/MNH/ver_interp_to_mixed_grid.f90 index 5ddad2079695f8f27904fb4fb21f2dfd4c2f3237..8878143cea0575d895355e564f6c20509eeb7641 100644 --- a/src/MNH/ver_interp_to_mixed_grid.f90 +++ b/src/MNH/ver_interp_to_mixed_grid.f90 @@ -404,7 +404,7 @@ IF (HFILE=='ATM ') THEN ! ZPMASS_MX(:,:,:)=XP00*(ZHEXNMASS_MX(:,:,:))**(XCPD/XRD) + XPMHP_MX(:,:,:) ! - XR_MX(:,:,:,1)=SM_PMR_HU(CLUOUT0,ZPMASS_MX(:,:,:), & + XR_MX(:,:,:,1)=SM_PMR_HU(ZPMASS_MX(:,:,:), & XTHV_MX(:,:,:)*(ZPMASS_MX(:,:,:)/XP00)**(XRD/XCPD), & ZHU_MX(:,:,:),XR_MX(:,:,:,:),KITERMAX=100) ! diff --git a/src/MNH/ver_prep_gribex_case.f90 b/src/MNH/ver_prep_gribex_case.f90 index 4c9d48e96ac01a5accf59e0d6a832ec854d929a5..32268f5586f8ba2152d7df5e837ff279f7491dd5 100644 --- a/src/MNH/ver_prep_gribex_case.f90 +++ b/src/MNH/ver_prep_gribex_case.f90 @@ -39,7 +39,6 @@ END MODULE MODI_VER_PREP_GRIBEX_CASE !! -------- !! !! function MZF -!! function FMLOOK :to retrieve a logical unit number associated with a file !! routine VER_INTERP_TO_MIXED_GRID !! routine CHANGE_GRIBEX_VAR !! @@ -94,24 +93,22 @@ END MODULE MODI_VER_PREP_GRIBEX_CASE !* 0. DECLARATIONS ! ------------ ! -USE MODE_THERMO -USE MODE_FM -! -USE MODI_SHUMAN ! interface modules -USE MODI_CHANGE_GRIBEX_VAR -USE MODI_VER_INTERP_TO_MIXED_GRID -USE MODI_RMS_AT_Z -USE MODI_COMPUTE_EXNER_FROM_TOP -USE MODI_WATER_SUM -! -USE MODD_CONF ! declaration modules +USE MODD_CONF USE MODD_CONF_n -USE MODD_LUNIT USE MODD_CST -USE MODD_PREP_REAL +USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS, ONLY : JPVEXT, XUNDEF +USE MODD_PREP_REAL +! +USE MODE_THERMO ! +USE MODI_CHANGE_GRIBEX_VAR +USE MODI_COMPUTE_EXNER_FROM_TOP +USE MODI_RMS_AT_Z USE MODI_SECOND_MNH +USE MODI_SHUMAN +USE MODI_VER_INTERP_TO_MIXED_GRID +USE MODI_WATER_SUM ! IMPLICIT NONE ! @@ -123,7 +120,7 @@ REAL, INTENT(OUT) :: PDIAG ! diagnostics computing time ! !* 0.2 Declaration of local variables ! ------------------------------ -INTEGER :: IRESP, ILUOUT0 +INTEGER :: ILUOUT0 INTEGER :: IIU,IJU,ILU REAL :: ZTIME1, ZTIME2 REAL,DIMENSION(:,:,:), ALLOCATABLE :: ZTH_LS ! potential temperature @@ -148,7 +145,7 @@ INTEGER :: JSV ! loop counter INTEGER :: JK ! loop counter !------------------------------------------------------------------------------- ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) +ILUOUT0 = TLUOUT0%NLU ! !* 1. CHANGING OF VARIABLES ! --------------------- diff --git a/src/MNH/ver_prep_mesonh_case.f90 b/src/MNH/ver_prep_mesonh_case.f90 index f214972241a06695b306510da73a6b4e96a3d20d..561f2e03f488502e1586b14b59e88a2b03d690ac 100644 --- a/src/MNH/ver_prep_mesonh_case.f90 +++ b/src/MNH/ver_prep_mesonh_case.f90 @@ -37,7 +37,6 @@ END MODULE MODI_VER_PREP_MESONH_CASE !! -------- !! !! function MZF -!! function FMLOOK :to retrieve a logical unit number associated with a file !! routine VER_INTERP_TO_MIXED_GRID !! !! module MODI_SHUMAN @@ -49,7 +48,7 @@ END MODULE MODI_VER_PREP_MESONH_CASE !! Module MODD_CONF : contains configuration variables for all models. !! NVERB : verbosity level for output-listing !! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! TLUOUT0 : output-listing file !! Module MODD_CST : contains physical constants !! XRD : gas constant for dry air !! XRV : gas constant for vapor @@ -89,43 +88,36 @@ END MODULE MODI_VER_PREP_MESONH_CASE !* 0. DECLARATIONS ! ------------ ! -USE MODE_THERMO -USE MODE_FM -! -USE MODI_SHUMAN ! interface modules -USE MODI_VER_INTERP_TO_MIXED_GRID -USE MODI_COMPUTE_EXNER_FROM_GROUND -USE MODI_COMPUTE_EXNER_FROM_TOP -USE MODI_RMS_AT_Z -USE MODI_WATER_SUM -USE MODI_VERT_COORD -! -USE MODD_CONF ! declaration modules -USE MODD_LUNIT +USE MODD_ARGSLIST_ll, ONLY: LIST_ll +USE MODD_CONF USE MODD_CST +USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS USE MODD_PREP_REAL ! -USE MODI_SECOND_MNH USE MODE_ll -! -!20131104 check on 3D VARS USE MODE_MPPDB -!20131112 add update_halo_ll -USE MODE_ll -USE MODD_ARGSLIST_ll, ONLY : LIST_ll +USE MODE_THERMO +! +USE MODI_COMPUTE_EXNER_FROM_GROUND +USE MODI_COMPUTE_EXNER_FROM_TOP +USE MODI_RMS_AT_Z +USE MODI_SECOND_MNH +USE MODI_SHUMAN +USE MODI_VER_INTERP_TO_MIXED_GRID +USE MODI_VERT_COORD +USE MODI_WATER_SUM ! IMPLICIT NONE ! !* 0.1 Declaration of arguments ! ------------------------ ! -! REAL, INTENT(OUT) :: PDIAG ! diagnostics computing time ! !* 0.2 Declaration of local variables ! ------------------------------ -INTEGER :: IRESP, ILUOUT0 +! INTEGER :: IIU,IJU,ILU REAL :: ZTIME1, ZTIME2 REAL,DIMENSION(:,:,:), ALLOCATABLE :: ZHPMASS_LS ! hyd. pressure @@ -384,7 +376,6 @@ DEALLOCATE(XHU_LS) DEALLOCATE(XTHV_LS) !------------------------------------------------------------------------------- ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) -WRITE(ILUOUT0,*) 'Routine VER_PREP_MESONH_CASE completed' +WRITE(TLUOUT0%NLU,*) 'Routine VER_PREP_MESONH_CASE completed' ! END SUBROUTINE VER_PREP_MESONH_CASE diff --git a/src/MNH/ver_prep_netcdf_case.f90 b/src/MNH/ver_prep_netcdf_case.f90 index 1ebc70d519ae3a2b3631161495001ef60fc1bab9..f0aab51cdfdb801116bb0306ff47874b66d33584 100644 --- a/src/MNH/ver_prep_netcdf_case.f90 +++ b/src/MNH/ver_prep_netcdf_case.f90 @@ -28,7 +28,6 @@ END MODULE MODI_VER_PREP_NETCDF_CASE !! -------- !! !! function MZF -!! function FMLOOK :to retrieve a logical unit number associated with a file !! routine VER_INTERP_TO_MIXED_GRID !! routine CHANGE_GRIBEX_VAR !! @@ -42,7 +41,7 @@ END MODULE MODI_VER_PREP_NETCDF_CASE !! Module MODD_CONF1 : contains configuration variables for all models. !! NVERB : verbosity level for output-listing !! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing +!! TLUOUT0 : output-listing file !! Module MODD_CST : contains physical constants !! XRD : gas constant for dry air !! XRV : gas constant for vapor @@ -84,23 +83,22 @@ END MODULE MODI_VER_PREP_NETCDF_CASE !* 0. DECLARATIONS ! ------------ ! +USE MODD_CONF +USE MODD_CONF_n +USE MODD_CST +USE MODD_LUNIT, ONLY: TLUOUT0 +USE MODD_PARAMETERS, ONLY : JPVEXT, XUNDEF +USE MODD_PREP_REAL +! USE MODE_THERMO -USE MODE_FM ! -USE MODI_SHUMAN ! interface modules USE MODI_CHANGE_GRIBEX_VAR -USE MODI_VER_INTERP_TO_MIXED_GRID -USE MODI_RMS_AT_Z USE MODI_COMPUTE_EXNER_FROM_TOP -USE MODI_WATER_SUM +USE MODI_RMS_AT_Z USE MODI_SECOND_MNH -! -USE MODD_CONF ! declaration modules -USE MODD_CONF_n -USE MODD_LUNIT -USE MODD_CST -USE MODD_PREP_REAL -USE MODD_PARAMETERS, ONLY : JPVEXT, XUNDEF +USE MODI_SHUMAN +USE MODI_VER_INTERP_TO_MIXED_GRID +USE MODI_WATER_SUM ! IMPLICIT NONE ! @@ -111,7 +109,7 @@ REAL, INTENT(OUT) :: PDIAG ! diagnostics computing time ! !* 0.2 Declaration of local variables ! ------------------------------ -INTEGER :: IRESP, ILUOUT0 +INTEGER :: ILUOUT0 INTEGER :: IIU,IJU,ILU REAL :: ZTIME1, ZTIME2 REAL,DIMENSION(:,:,:), ALLOCATABLE :: ZTH_LS ! potential temperature @@ -136,7 +134,7 @@ INTEGER :: JSV ! loop counter INTEGER :: JK ! loop counter !------------------------------------------------------------------------------- ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) +ILUOUT0 = TLUOUT0%NLU ! !* 1. CHANGING OF VARIABLES ! --------------------- diff --git a/src/MNH/ver_thermo.f90 b/src/MNH/ver_thermo.f90 index 39ddfc57368aaa313c5d06f85ec7bd8994abbcef..65af6e80fda3864e39dd707d351c1e4a72482e06 100644 --- a/src/MNH/ver_thermo.f90 +++ b/src/MNH/ver_thermo.f90 @@ -84,8 +84,6 @@ END MODULE MODI_VER_THERMO !! subroutine SET_REFZ : to initialize the reference state 1D variables !! subroutine TOTAL_DMASS : to compute the total dry mass !! subroutine SET_REF : to compute rhoJ -!! subroutine FMLOOK : to retrieve a logical unit number associated -!! with a file !! !! Module MODI_VER_INT_THERMO: interface for subroutine VER_INT_THERMO !! Module MODI_SET_REFZ : interface for subroutine SET_REFZ @@ -158,38 +156,34 @@ END MODULE MODI_VER_THERMO !* 0. DECLARATIONS ! ------------ ! -USE MODI_VER_INT_THERMO ! interface modules -USE MODI_SET_REFZ -USE MODI_TOTAL_DMASS -USE MODI_SET_REF -USE MODI_COMPUTE_EXNER_FROM_TOP -USE MODI_WATER_SUM -! -USE MODD_CONF ! declaration modules +USE MODD_ARGSLIST_ll, ONLY: LIST_ll +USE MODD_CONF USE MODD_CONF_n -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_LUNIT USE MODD_CST -USE MODD_FIELD_n, ONLY: XTHT,XRT,XPABST,XDRYMASST -USE MODD_LSFIELD_n USE MODD_DYN_n -USE MODD_REF_n +USE MODD_FIELD_n, ONLY: XTHT,XRT,XPABST,XDRYMASST USE MODD_GRID_n +USE MODD_IO_ll, ONLY: TFILEDATA USE MODD_LBC_n -USE MODD_LUNIT_n +USE MODD_LSFIELD_n +USE MODD_LUNIT, ONLY: CLUOUT0,TLUOUT0 +USE MODD_LUNIT_n, ONLY: CLUOUT USE MODD_PARAMETERS +USE MODD_REF_n ! -! -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FMWRIT -USE MODE_FM USE MODD_DIM_n -USE MODE_MPPDB -USE MODE_ll USE MODE_EXTRAPOL +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL +USE MODE_FMWRIT +USE MODE_ll +USE MODE_MPPDB ! -!20131113 -USE MODD_ARGSLIST_ll, ONLY : LIST_ll +USE MODI_COMPUTE_EXNER_FROM_TOP +USE MODI_SET_REF +USE MODI_SET_REFZ +USE MODI_TOTAL_DMASS +USE MODI_VER_INT_THERMO +USE MODI_WATER_SUM ! IMPLICIT NONE ! @@ -218,7 +212,6 @@ REAL,DIMENSION(:,:,:), INTENT(IN), OPTIONAL :: PLSRV_MX ! large scale vapor mixi ! !* 0.2 Declaration of local variables ! ------------------------------ -INTEGER :: ILUOUT0, IRESP INTEGER :: ILBX,ILBY INTEGER :: IIB,IIE,IIU INTEGER :: IJB,IJE,IJU @@ -341,8 +334,8 @@ ALLOCATE(XRVREF(IIU,IJU,IKU)) ALLOCATE(XEXNREF(IIU,IJU,IKU)) ALLOCATE(XRHODJ(IIU,IJU,IKU)) XRVREF(:,:,:) = 0. -CALL SET_REF(0,TZFILEDUMMY,CLUOUT0,XZZ,XZHAT,PJ,PDXX,PDYY,CLBCX,CLBCY, & - XREFMASS,XMASS_O_PHI0,XLINMASS,XRHODREF,XTHVREF,XRVREF, & +CALL SET_REF(0,TZFILEDUMMY,XZZ,XZHAT,PJ,PDXX,PDYY,CLBCX,CLBCY, & + XREFMASS,XMASS_O_PHI0,XLINMASS,XRHODREF,XTHVREF,XRVREF, & XEXNREF,XRHODJ) CALL MPPDB_CHECK3D(XRHODREF,"VERTHERMO::XRHODREF",PRECISION) @@ -380,7 +373,7 @@ END DO ZRHOD(:,:,:)=XPABST(:,:,:)/(XPABST(:,:,:)/XP00)**(XRD/XCPD) & /(XRD*ZTHV(:,:,:)*(1.+ZSUMRT(:,:,:))) ! -CALL TOTAL_DMASS(CLUOUT0,PJ,ZRHOD,XDRYMASST) +CALL TOTAL_DMASS(PJ,ZRHOD,XDRYMASST) ! !------------------------------------------------------------------------------- ! @@ -389,12 +382,12 @@ CALL TOTAL_DMASS(CLUOUT0,PJ,ZRHOD,XDRYMASST) ! ! 3D case ! - CALL GET_SIZEX_LB(CLUOUT,NIMAX_ll,NJMAX_ll,NRIMX, & - IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, & - IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2) - CALL GET_SIZEY_LB(CLUOUT,NIMAX_ll,NJMAX_ll,NRIMY, & - IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV, & - IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2) + CALL GET_SIZEX_LB(NIMAX_ll,NJMAX_ll,NRIMX, & + IISIZEXF,IJSIZEXF,IISIZEXFU,IJSIZEXFU, & + IISIZEX4,IJSIZEX4,IISIZEX2,IJSIZEX2) + CALL GET_SIZEY_LB(NIMAX_ll,NJMAX_ll,NRIMY, & + IISIZEYF,IJSIZEYF,IISIZEYFV,IJSIZEYFV, & + IISIZEY4,IJSIZEY4,IISIZEY2,IJSIZEY2) IF ( .NOT. PRESENT(PLSTH_MX) ) THEN ALLOCATE(XLSTHM(IIU,IJU,IKU)) @@ -494,7 +487,6 @@ ENDIF ! !------------------------------------------------------------------------------- ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) -WRITE(ILUOUT0,*) 'Routine VER_THERMO completed' +WRITE(TLUOUT0%NLU,*) 'Routine VER_THERMO completed' ! END SUBROUTINE VER_THERMO diff --git a/src/MNH/wguess.f90 b/src/MNH/wguess.f90 index f71ce8d1c155d895c5f3acbc1cb7759d05be1dc7..213bb02b1fba40e628ec8614946ebe338a3b9f41 100644 --- a/src/MNH/wguess.f90 +++ b/src/MNH/wguess.f90 @@ -62,8 +62,6 @@ END MODULE MODI_WGUESS !! EXTERNAL !! -------- !! -!! function FMLOOK :to retrieve a logical unit number associated with a file -!! !! DXF,DYF,MXF,MYF,MZM : Shuman operators !! Module MODI_SHUMAN : interface for Shuman operators !! @@ -72,8 +70,6 @@ END MODULE MODI_WGUESS !! !! Module MODD_CONF : contains configuration variables for all models. !! NVERB : verbosity level for output-listing -!! Module MODD_LUNIT : contains logical unit names for all models -!! CLUOUT0 : name of output-listing !! Module MODD_PARAMETERS !! JPVEXT !! @@ -96,11 +92,8 @@ END MODULE MODI_WGUESS !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM -! USE MODI_SHUMAN ! interface module USE MODD_CONF ! declaration modules -USE MODD_LUNIT USE MODD_PARAMETERS ! IMPLICIT NONE @@ -119,7 +112,6 @@ REAL, DIMENSION(:,:,:), INTENT(OUT) :: PRHODJW ! rhodJw on the MESO-NH grid ! !* 0.2 Declaration of local variables ! ------------------------------ -INTEGER :: ILUOUT0, IRESP INTEGER :: IIU,IJU INTEGER :: IKB,IKU INTEGER :: JK @@ -177,7 +169,5 @@ END DO ! !------------------------------------------------------------------------------- ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) -WRITE(ILUOUT0,*) 'Routine WGUESS completed' ! END SUBROUTINE WGUESS diff --git a/src/MNH/write_aircraft_balloon.f90 b/src/MNH/write_aircraft_balloon.f90 index 37089e8be17c20e57f1fbe5d98eee8ee4a229e31..fc48eb4b99894497b13ceec1b253120afcaea244 100644 --- a/src/MNH/write_aircraft_balloon.f90 +++ b/src/MNH/write_aircraft_balloon.f90 @@ -844,11 +844,11 @@ ALLOCATE (ZWZ6(1,1,IKU,SIZE(TPFLYER%TIME),1,JPROCZ)) ZWZ6 = ZWORKZ6(:,:,:,:,:,:JPROCZ) DEALLOCATE(ZWORKZ6) ! -CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"RSPL",IGRID, TPFLYER%DATIME, ZW6, & +CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"RSPL",IGRID, TPFLYER%DATIME, ZW6, & ZTRAJT,YTITLE,YUNIT,YCOMMENT, & PTRAJX=ZTRAJX, PTRAJY=ZTRAJY, PTRAJZ=ZTRAJZ ) ! -CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUPZ,"CART",IGRIDZ, TPFLYER%DATIME, & +CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUPZ,"CART",IGRIDZ, TPFLYER%DATIME, & ZWZ6,ZTRAJT,YTITLEZ,YUNITZ,YCOMMENTZ, & .TRUE.,.TRUE.,.FALSE., & KIL=1,KIH=1,KJL=1,KJH=1,KKL=1,KKH=IKU ) diff --git a/src/MNH/write_budget.f90 b/src/MNH/write_budget.f90 index 05513dfbc7856908f3bb6cd563bcfc7ecc4b4db9..9b2773a74323d35c3e04e50b7c737d0564600f47 100644 --- a/src/MNH/write_budget.f90 +++ b/src/MNH/write_budget.f90 @@ -15,14 +15,13 @@ ! INTERFACE ! - SUBROUTINE WRITE_BUDGET(TPDIAFILE,HLUOUT,TPDTCUR, & - TPDTMOD,PTSTEP, KSV ) + SUBROUTINE WRITE_BUDGET(TPDIAFILE,TPDTCUR, & + TPDTMOD,PTSTEP, KSV) ! USE MODD_IO_ll, ONLY: TFILEDATA USE MODD_TYPE_DATE ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name of output listing TYPE (DATE_TIME), INTENT(IN) :: TPDTCUR ! Current date and time TYPE (DATE_TIME), INTENT(IN) :: TPDTMOD ! Creation date and time REAL, INTENT(IN) :: PTSTEP ! time step @@ -36,10 +35,10 @@ END MODULE MODI_WRITE_BUDGET ! ! ! -! ################################################################## - SUBROUTINE WRITE_BUDGET(TPDIAFILE,HLUOUT,TPDTCUR, & - TPDTMOD,PTSTEP, KSV ) -! ################################################################## +! ############################################ + SUBROUTINE WRITE_BUDGET(TPDIAFILE,TPDTCUR, & + TPDTMOD,PTSTEP, KSV) +! ############################################ ! !!**** *WRITE_BUDGET* - routine to write a LFIFM file for the budget. !! @@ -136,18 +135,19 @@ END MODULE MODI_WRITE_BUDGET ! !* 0. ! ------------ -USE MODD_IO_ll, ONLY: TFILEDATA USE MODD_BUDGET +USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT ! -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL USE MODE_FMWRIT USE MODE_TIME ! -USE MODI_TEMPORAL_DIST -USE MODI_WRITE_DIACHRO -USE MODI_MENU_DIACHRO USE MODI_END_CART_COMPRESS USE MODI_END_MASK_COMPRESS +USE MODI_MENU_DIACHRO +USE MODI_TEMPORAL_DIST +USE MODI_WRITE_DIACHRO ! ! IMPLICIT NONE @@ -156,7 +156,6 @@ IMPLICIT NONE !* 0.1 Declarations of arguments : ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name of output listing TYPE (DATE_TIME), INTENT(IN) :: TPDTCUR ! Current date and time TYPE (DATE_TIME), INTENT(IN) :: TPDTMOD ! Creation date and time REAL, INTENT(IN) :: PTSTEP ! time step @@ -308,7 +307,7 @@ SELECT CASE (CBUTYPE) WRITE(YGROUP_NAME,FMT="('UU___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(1, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -331,7 +330,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(1) = 2 WRITE(YGROUP_NAME,FMT="('RJX__',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME,'CART', IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME,'CART', IWORKGRID, & ZWORKDATIME, ZWORK, ZWORKTEMP, YBUCOMMENT, & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -380,7 +379,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 3 WRITE(YGROUP_NAME,FMT="('VV___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -402,7 +401,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(1) = 3 WRITE(YGROUP_NAME,FMT="('RJY__',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME,'CART', IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME,'CART', IWORKGRID, & ZWORKDATIME, ZWORK, ZWORKTEMP, YBUCOMMENT, & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -451,7 +450,7 @@ SELECT CASE (CBUTYPE) YWORKCOMMENT(:) = 'Budget of momentum along Z axis' IWORKGRID(:) = 4 WRITE(YGROUP_NAME,FMT="('WW___',I4.4)") NBUTSHIFT - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -473,7 +472,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(1) = 4 WRITE(YGROUP_NAME,FMT="('RJZ__',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME,'CART', IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME,'CART', IWORKGRID, & ZWORKDATIME, ZWORK, ZWORKTEMP, YBUCOMMENT, & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -506,7 +505,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(1) = 1 WRITE(YGROUP_NAME,FMT="('RJS__',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & ZWORKDATIME, ZWORK, ZWORKTEMP, YBUCOMMENT, & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -556,7 +555,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 1 WRITE(YGROUP_NAME,FMT="('TH___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -602,7 +601,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 1 WRITE(YGROUP_NAME,FMT="('TK___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -648,7 +647,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 1 WRITE(YGROUP_NAME,FMT="('RV___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -694,7 +693,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 1 WRITE(YGROUP_NAME,FMT="('RC___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -739,7 +738,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 1 WRITE(YGROUP_NAME,FMT="('RR___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -784,7 +783,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 1 WRITE(YGROUP_NAME,FMT="('RI___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -829,7 +828,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 1 WRITE(YGROUP_NAME,FMT="('RS___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -874,7 +873,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 1 WRITE(YGROUP_NAME,FMT="('RG___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -919,7 +918,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 1 WRITE(YGROUP_NAME,FMT="('RH___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -968,7 +967,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 1 WRITE(YGROUP_NAME,FMT="('SV',I3.3,I4.4)") JSV,NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, 'CART', IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(IP, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -1042,7 +1041,7 @@ SELECT CASE (CBUTYPE) TZFIELD%NDIMS = 6 CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,ZWORKMASK(:,:,:,:,:,:)) WRITE(YRECFM,FMT="('MASK_',I4.4)") NBUTSHIFT - CALL MENU_DIACHRO(TPDIAFILE,HLUOUT,YRECFM) + CALL MENU_DIACHRO(TPDIAFILE,YRECFM) DEALLOCATE(ZWORKMASK) ! !* 3.2 storage of the budgets array @@ -1066,7 +1065,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 2 WRITE(YGROUP_NAME,FMT="('RJX__',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & ZWORKDATIME, ZWORK, ZWORKTEMP, CBUCOMMENT(1, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -1097,7 +1096,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 2 WRITE(YGROUP_NAME,FMT="('UU___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(1, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -1124,7 +1123,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 3 WRITE(YGROUP_NAME,FMT="('RJY__',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & ZWORKDATIME, ZWORK, ZWORKTEMP, CBUCOMMENT(1, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -1153,7 +1152,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 3 WRITE(YGROUP_NAME,FMT="('VV___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(2, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -1180,7 +1179,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 4 WRITE(YGROUP_NAME,FMT="('RJZ__',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & ZWORKDATIME, ZWORK, ZWORKTEMP, CBUCOMMENT(1, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -1209,7 +1208,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 4 WRITE(YGROUP_NAME,FMT="('WW___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(3, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -1236,7 +1235,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 1 WRITE(YGROUP_NAME,FMT="('RJS__',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & ZWORKDATIME, ZWORK, ZWORKTEMP, CBUCOMMENT(1, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -1267,7 +1266,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 1 WRITE(YGROUP_NAME,FMT="('TH___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(4, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -1298,7 +1297,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 1 WRITE(YGROUP_NAME,FMT="('TK___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(5, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -1329,7 +1328,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 1 WRITE(YGROUP_NAME,FMT="('RV___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(6, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -1360,7 +1359,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 1 WRITE(YGROUP_NAME,FMT="('RC___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(7, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -1391,7 +1390,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 1 WRITE(YGROUP_NAME,FMT="('RR___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(8, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -1422,7 +1421,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 1 WRITE(YGROUP_NAME,FMT="('RI___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(9, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -1453,7 +1452,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 1 WRITE(YGROUP_NAME,FMT="('RS___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(10, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -1484,7 +1483,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 1 WRITE(YGROUP_NAME,FMT="('RG___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(11, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -1515,7 +1514,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 1 WRITE(YGROUP_NAME,FMT="('RH___',I4.4)") NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(12, :), & YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & @@ -1549,7 +1548,7 @@ SELECT CASE (CBUTYPE) IWORKGRID(:) = 1 WRITE(YGROUP_NAME,FMT="('SV',I3.3,I4.4)") JSV,NBUTSHIFT ! - CALL WRITE_DIACHRO(TPDIAFILE, HLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & + CALL WRITE_DIACHRO(TPDIAFILE, TLUOUT, YGROUP_NAME, CBUTYPE, IWORKGRID, & ZWORKDATIME, ZWORKT, ZWORKTEMP, CBUCOMMENT(12+JSV,:),& YWORKUNIT, YWORKCOMMENT, & LBU_ICP, LBU_JCP, LBU_KCP, & diff --git a/src/MNH/write_desfmn.f90 b/src/MNH/write_desfmn.f90 index 1fc803357affc2e225c95ee6b8f1220307d83e3b..17bcb859b1b548e5d0e84a89c19eb5247813e046 100644 --- a/src/MNH/write_desfmn.f90 +++ b/src/MNH/write_desfmn.f90 @@ -13,10 +13,9 @@ ! INTERFACE ! -SUBROUTINE WRITE_DESFM_n(KMI,HDESFM,HLUOUT) +SUBROUTINE WRITE_DESFM_n(KMI,HDESFM) INTEGER, INTENT(IN) :: KMI ! Model index CHARACTER (LEN=*), INTENT(IN) :: HDESFM ! name of the DESFM file -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! Name for outputlisting END SUBROUTINE WRITE_DESFM_n ! END INTERFACE @@ -25,7 +24,7 @@ END MODULE MODI_WRITE_DESFM_n ! ! ! ################################################### - SUBROUTINE WRITE_DESFM_n(KMI,HDESFM,HLUOUT) + SUBROUTINE WRITE_DESFM_n(KMI,HDESFM) ! ################################################### ! !!**** *WRITE_DESFM_n * - routine to write a descriptor file ( DESFM ) @@ -152,6 +151,7 @@ USE MODE_FM USE MODD_PARAMETERS USE MODD_CONF USE MODD_DYN_n, ONLY : LHORELAX_SVLIMA +USE MODD_LUNIT_n, ONLY : TLUOUT ! USE MODN_BACKUP USE MODN_CONF @@ -202,13 +202,12 @@ IMPLICIT NONE ! INTEGER, INTENT(IN) :: KMI ! Model index CHARACTER (LEN=*), INTENT(IN) :: HDESFM ! name of the DESFM part -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! Name for outputlisting ! !* 0.2 declarations of local variables ! INTEGER :: IRESP,ILUSEG ! return code of FMLOOK and logical unit number of ! EXSEG file -INTEGER :: ILUOUT ! Logical unit number for output-listing HLUOUT file +INTEGER :: ILUOUT ! Logical unit number for output-listing TLUOUT file ! LOGICAL :: GHORELAX_UVWTH, & GHORELAX_RV, GHORELAX_RC, GHORELAX_RR, & @@ -228,7 +227,7 @@ LOGICAL, DIMENSION(JPSVMAX) :: GHORELAX_SV !* 1. UPDATE DESFM FILE ! ----------------- ! -CALL FMLOOK_ll(HDESFM,HLUOUT,ILUSEG,IRESP) +CALL FMLOOK_ll(HDESFM,TLUOUT%CNAME,ILUSEG,IRESP) ! ! CALL INIT_NAM_LUNITn @@ -411,7 +410,7 @@ IF(CTURB /= 'NONE') WRITE(UNIT=ILUSEG,NML=NAM_TURB) ! IF (NVERB >= 5) THEN ! - CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) + ILUOUT = TLUOUT%NLU ! WRITE(UNIT=ILUOUT,FMT="(/,'DESCRIPTOR OF SEGMENT FOR MODEL ',I2)") KMI WRITE(UNIT=ILUOUT,FMT="( '------------------------------- ' )") diff --git a/src/MNH/write_diachro.f90 b/src/MNH/write_diachro.f90 index d0356b05f209a6991cb36eaf0961acd6a57bb6fb..6b3290ea900db5ce616fd089e5ad5a1a0ecbbc29 100644 --- a/src/MNH/write_diachro.f90 +++ b/src/MNH/write_diachro.f90 @@ -9,7 +9,7 @@ ! MASDEV4_7 diachro 2006/05/18 13:07:25 !----------------------------------------------------------------- ! ################################################################# - SUBROUTINE WRITE_DIACHRO(TPDIAFILE,HLUOUTDIA,HGROUP,HTYPE, & + SUBROUTINE WRITE_DIACHRO(TPDIAFILE,TPLUOUTDIA,HGROUP,HTYPE, & KGRID,PDATIME,PVAR,PTRAJT, & HTITRE,HUNITE,HCOMMENT,OICP,OJCP,OKCP,KIL,KIH,KJL,KJH,KKL,KKH, & PTRAJX,PTRAJY,PTRAJZ,PMASK) @@ -84,7 +84,6 @@ USE MODD_IO_ll, ONLY : TFILEDATA USE MODD_PARAMETERS, ONLY : JPHEXT ! USE MODE_ll -USE MODE_FM USE MODE_FMWRIT USE MODE_IO_ll ! @@ -95,7 +94,7 @@ IMPLICIT NONE !* 0.1 Dummy arguments ! --------------- TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write -CHARACTER(LEN=*), INTENT(IN) :: HLUOUTDIA +TYPE(TFILEDATA), INTENT(IN) :: TPLUOUTDIA CHARACTER(LEN=*), INTENT(IN) :: HGROUP, HTYPE INTEGER,DIMENSION(:), INTENT(IN) :: KGRID REAL,DIMENSION(:,:), INTENT(IN) :: PDATIME @@ -133,6 +132,8 @@ GPACK=LPACK LPACK=.FALSE. YCOMMENT='NOTHING' ! +ILUOUTDIA = TPLUOUTDIA%NLU +! ! BUG ...ca passe que si PRESENT(OICP) sinon OICP non defini ! Question: doit-on mettre condition comme: ! IF(HTYPE == 'CART' .AND. .NOT. PRESENT(OICP) .AND. .NOT. PRESENT(OJCP)) THEN @@ -216,11 +217,6 @@ IF(OKCP)THEN ENDIF ENDIF ! -CALL FMLOOK_ll(HLUOUTDIA,HLUOUTDIA,ILUOUTDIA,IRESP) -IF (NVERB>=5) THEN - WRITE(ILUOUTDIA,*)' WRITE_DIACHRO: ',TRIM(HLUOUTDIA),' IRESP=',IRESP -ENDIF -! IF (NVERB>=5) THEN WRITE(ILUOUTDIA,*)' WRITE_DIACHRO: ',TRIM(TPDIAFILE%CNAME)//'.lfi',' IRESP=',IRESP ENDIF @@ -512,7 +508,7 @@ TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,PDATIME) ! -CALL MENU_DIACHRO(TPDIAFILE,HLUOUTDIA,HGROUP) +CALL MENU_DIACHRO(TPDIAFILE,HGROUP) LPACK=GPACK !----------------------------------------------------------------------------- ! diff --git a/src/MNH/write_les_budgetn.f90 b/src/MNH/write_les_budgetn.f90 index 3f2883415a971aa8e5f02a2b416f7a643a04f17c..2c7932ee6f0278a27320baaa94889a6428bd573a 100644 --- a/src/MNH/write_les_budgetn.f90 +++ b/src/MNH/write_les_budgetn.f90 @@ -68,10 +68,7 @@ USE MODD_LES_n USE MODD_CONF_n USE MODD_LES_BUDGET ! -USE MODD_LUNIT_n -! USE MODE_ll -USE MODE_FM ! USE MODE_LES_DIACHRO ! @@ -87,8 +84,6 @@ CHARACTER(LEN=1), INTENT(IN) :: HLES_AVG ! flag to perform the averages ! !* 0.2 declaration of local variables ! -INTEGER :: IRESP, ILUOUT -! INTEGER :: ILES INTEGER :: ILES_STA INTEGER :: JLES @@ -107,8 +102,6 @@ REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZLES_BUDGET !* Initializations ! --------------- ! -CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP) -! ALLOCATE(ZLES_BUDGET(NLES_K,NLES_TIMES,40)) ALLOCATE(YSUBTITLE(40)) ! diff --git a/src/MNH/write_les_rt_budgetn.f90 b/src/MNH/write_les_rt_budgetn.f90 index 886a85f29ebee20772e6b00f2d60a2ef85cf5493..88a029d3f17860c7ffa604d9c83229249a0c1a6c 100644 --- a/src/MNH/write_les_rt_budgetn.f90 +++ b/src/MNH/write_les_rt_budgetn.f90 @@ -66,10 +66,7 @@ USE MODD_LES USE MODD_LES_n USE MODD_LES_BUDGET ! -USE MODD_LUNIT_n -! USE MODE_ll -USE MODE_FM ! USE MODE_LES_DIACHRO ! @@ -85,8 +82,6 @@ CHARACTER(LEN=1), INTENT(IN) :: HLES_AVG ! flag to perform the averages ! !* 0.2 declaration of local variables ! -INTEGER :: IRESP, ILUOUT -! INTEGER :: ILES INTEGER :: ILES_STA INTEGER :: JLES @@ -105,8 +100,6 @@ REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZLES_BUDGET !* Initializations ! --------------- ! -CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP) -! ALLOCATE(ZLES_BUDGET(NLES_K,NLES_TIMES,40)) ALLOCATE(YSUBTITLE(40)) ! diff --git a/src/MNH/write_les_sv_budgetn.f90 b/src/MNH/write_les_sv_budgetn.f90 index a3270c831db1e544843c7162ffa7bf944fa4cdb0..a028fee300acda8e76fe3eb96f2ad6226cd8be98 100644 --- a/src/MNH/write_les_sv_budgetn.f90 +++ b/src/MNH/write_les_sv_budgetn.f90 @@ -68,10 +68,7 @@ USE MODD_CONF_n USE MODD_LES_BUDGET USE MODD_NSV ! -USE MODD_LUNIT_n -! USE MODE_ll -USE MODE_FM ! USE MODE_LES_DIACHRO ! @@ -86,8 +83,6 @@ CHARACTER(LEN=1), INTENT(IN) :: HLES_AVG ! flag to perform the averages ! !* 0.2 declaration of local variables ! -INTEGER :: IRESP, ILUOUT -! INTEGER :: ILES INTEGER :: ILES_STA INTEGER :: JLES @@ -110,8 +105,6 @@ REAL, DIMENSION(:,:,:,:), ALLOCATABLE :: ZSV_BUDGET !* Initializations ! --------------- ! -CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP) -! ALLOCATE(ZLES_BUDGET(NLES_K,NLES_TIMES,50,NSV)) ALLOCATE(YSUBTITLE(50)) ! diff --git a/src/MNH/write_lesn.f90 b/src/MNH/write_lesn.f90 index 1a01c9d123fa4b6f957188c83921df1bb6f72951..081fe9b234ee206a446b6dc702a98377d4e38e56 100644 --- a/src/MNH/write_lesn.f90 +++ b/src/MNH/write_lesn.f90 @@ -75,10 +75,7 @@ USE MODD_NSV, ONLY : NSV USE MODD_PARAM_ICE, ONLY : LDEPOSC USE MODD_PARAM_C2R2, ONLY : LDEPOC ! -USE MODD_LUNIT_n -! USE MODE_ll -USE MODE_FM ! USE MODE_LES_DIACHRO USE MODE_LES_SPEC_N @@ -100,7 +97,6 @@ CHARACTER(LEN=1), INTENT(IN) :: HLES_AVG ! flag to perform the averages ! !* 0.2 declaration of local variables ! -INTEGER :: IRESP, ILUOUT INTEGER :: IMASK ! INTEGER :: JSV ! scalar loop counter @@ -131,8 +127,6 @@ IF (HLES_AVG=='H' .AND. (CLES_NORM_TYPE=='NONE' & ! IMI = GET_CURRENT_MODEL_INDEX() ! -CALL FMLOOK_ll(CLUOUT,CLUOUT,ILUOUT,IRESP) -! ! !* 1.1 Normalization variables ! ----------------------- diff --git a/src/MNH/write_lfifm1_for_diag.f90 b/src/MNH/write_lfifm1_for_diag.f90 index 74e07c9871c34d685d7fcd58f69cd07379f7871f..24bdb779f5a2b313076d478b61b405b5c89916a2 100644 --- a/src/MNH/write_lfifm1_for_diag.f90 +++ b/src/MNH/write_lfifm1_for_diag.f90 @@ -228,6 +228,7 @@ USE MODI_CALCSOUND USE MODI_FREE_ATM_PROFILE USE MODI_GPS_ZENITH ! +USE MODE_FM, ONLY: IO_FILE_CLOSE_ll,IO_FILE_OPEN_ll USE MODE_GRIDPROJ USE MODE_FIELD USE MODE_FMWRIT diff --git a/src/MNH/write_lfin.f90 b/src/MNH/write_lfin.f90 index aec6fa674f9b973869b8387ee8e3569a0a15a32a..04e74197343343c39de925bdf7370be4eb3f5119 100644 --- a/src/MNH/write_lfin.f90 +++ b/src/MNH/write_lfin.f90 @@ -236,6 +236,7 @@ USE MODD_PARAM_LIMA_WARM, ONLY: CLIMA_WARM_NAMES, CAERO_MASS USE MODD_PARAM_LIMA_COLD, ONLY: CLIMA_COLD_NAMES USE MODD_LIMA_PRECIP_SCAVENGING_n ! +USE MODE_FM, ONLY: IO_FILE_CLOSE_ll USE MODE_FMWRIT USE MODE_ll USE MODD_IO_ll, ONLY: TFILEDATA diff --git a/src/MNH/write_profilern.f90 b/src/MNH/write_profilern.f90 index ae4c1f669931dc7dffd7c12e521cafc45158df1f..3e5cd902fc4ba553c4448cd404feaab437d3cb59 100644 --- a/src/MNH/write_profilern.f90 +++ b/src/MNH/write_profilern.f90 @@ -610,7 +610,7 @@ ALLOCATE (ZW6(1,1,IKU,SIZE(TPROFILER%TIME),1,JPROC)) ZW6 = ZWORK6(:,:,:,:,:,:JPROC) DEALLOCATE(ZWORK6) -CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"CART",IGRID(:JPROC), TPROFILER%DATIME,& +CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"CART",IGRID(:JPROC), TPROFILER%DATIME,& ZW6,ZTRAJT,YTITLE(:JPROC),YUNIT(:JPROC),YCOMMENT(:JPROC), & .TRUE.,.TRUE.,.FALSE., & KIL=1,KIH=1,KJL=1,KJH=1,KKL=1,KKH=IKU ) diff --git a/src/MNH/write_seriesn.f90 b/src/MNH/write_seriesn.f90 index a8bafff888f1ca16496a645a82451c06f16b837d..1ea568bd35941039507495f383824149826be856 100644 --- a/src/MNH/write_seriesn.f90 +++ b/src/MNH/write_seriesn.f90 @@ -15,12 +15,11 @@ IMPLICIT NONE ! INTERFACE ! - SUBROUTINE WRITE_SERIES_n(TPDIAFILE,HLUOUT) + SUBROUTINE WRITE_SERIES_n(TPDIAFILE) ! USE MODD_IO_ll, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name of output listing ! END SUBROUTINE WRITE_SERIES_n ! @@ -28,7 +27,7 @@ END INTERFACE ! END MODULE MODI_WRITE_SERIES_n ! ################### - SUBROUTINE WRITE_SERIES_n (TPDIAFILE,HLUOUT) + SUBROUTINE WRITE_SERIES_n (TPDIAFILE) ! ####################################################################################### ! @@ -71,7 +70,8 @@ END MODULE MODI_WRITE_SERIES_n !* 0. Declaration ! -------------- ! -USE MODD_IO_ll, ONLY: NGEN_VERB,TFILEDATA +USE MODD_IO_ll, ONLY: NGEN_VERB,TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS USE MODD_SERIES USE MODD_SERIES_n @@ -88,7 +88,6 @@ IMPLICIT NONE !* 0.1 declarations of arguments ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name of output listing ! !* 0.2 Local variables ! @@ -241,7 +240,7 @@ ENDIF !* 2.3 Write in diachro file ! GICP=.TRUE. ; GJCP=.TRUE. ; GKCP=.TRUE. -CALL WRITE_DIACHRO(TPDIAFILE,HLUOUT,'TSERIES','CART',NSGRIDD1,XSDATIME(:,1:NSNBSTEPT), & +CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT,'TSERIES','CART',NSGRIDD1,XSDATIME(:,1:NSNBSTEPT), & XSSERIES1(1:1,1:1,1:1,1:NSNBSTEPT,:,:), & XSTRAJT(1:NSNBSTEPT,:),CSTITLE1,CSUNIT1,CSCOMMENT1, & GICP,GJCP,GKCP, & @@ -295,7 +294,7 @@ DEALLOCATE(ZVAR3D) !* 3.2 Write in diachro file ! GICP=.TRUE. ; GJCP=.TRUE. ; GKCP=.FALSE. -CALL WRITE_DIACHRO(TPDIAFILE,HLUOUT,'ZTSERIES','CART',NSGRIDD2,XSDATIME(:,1:NSNBSTEPT), & +CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT,'ZTSERIES','CART',NSGRIDD2,XSDATIME(:,1:NSNBSTEPT), & XSSERIES2(1:1,1:1,1:IKMAX,1:NSNBSTEPT,:,:), & XSTRAJT(1:NSNBSTEPT,:),CSTITLE2,CSUNIT2,CSCOMMENT2, & GICP,GJCP,GKCP, & @@ -353,7 +352,7 @@ DO JS=1,NBJSLICE YSTITLE3S(JT)=ADJUSTL(ADJUSTR(CSTITLE3(JT))//'Y'//YSL//'-'//YSH) END DO GICP=.FALSE. ; GJCP=.TRUE. ; GKCP=.TRUE. - CALL WRITE_DIACHRO(TPDIAFILE,HLUOUT,YGROUP,'CART',NSGRIDD3,XSDATIME(:,1:NSNBSTEPT), & + CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT,YGROUP,'CART',NSGRIDD3,XSDATIME(:,1:NSNBSTEPT), & ZSERIES3_ll(1:IIU_ll,1:1,1:1,1:NSNBSTEPT,1:1,ISB1:ISB2),& XSTRAJT(1:NSNBSTEPT,:),YSTITLE3S,CSUNIT3,CSCOMMENT3, & GICP,GJCP,GKCP, & diff --git a/src/MNH/write_stationn.f90 b/src/MNH/write_stationn.f90 index 271135a13c185f89e8cbf5245b6505f86194e1f3..4c2fc1905f675917d21061b9ba0bc6cd4f6f0358 100644 --- a/src/MNH/write_stationn.f90 +++ b/src/MNH/write_stationn.f90 @@ -670,7 +670,7 @@ ALLOCATE (ZW6(1,1,1,SIZE(TSTATION%TIME),1,JPROC)) ZW6 = ZWORK6(:,:,:,:,:,:JPROC) DEALLOCATE(ZWORK6) ! - CALL WRITE_DIACHRO(TPDIAFILE,CLUOUT0,YGROUP,"CART",IGRID, TSTATION%DATIME,& + CALL WRITE_DIACHRO(TPDIAFILE,TLUOUT0,YGROUP,"CART",IGRID, TSTATION%DATIME,& ZW6,ZTRAJT,YTITLE,YUNIT,YCOMMENT,& .TRUE.,.TRUE.,.FALSE., & KIL=1,KIH=1,KJL=1,KJH=1,KKL=1,KKH=1 ) diff --git a/src/MNH/xytolatlon.f90 b/src/MNH/xytolatlon.f90 index e220f282b86389998abe8e8c18ebdaea66543475..8e1b0cfc78bcbd3576d3eb7dc93be4884d92e2d8 100644 --- a/src/MNH/xytolatlon.f90 +++ b/src/MNH/xytolatlon.f90 @@ -117,11 +117,8 @@ END MODULE MODI_XYTOLATLON !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM -! USE MODD_CST USE MODD_GRID -USE MODD_LUNIT ! IMPLICIT NONE ! @@ -154,11 +151,9 @@ REAL :: ZBETA ! REAL, DIMENSION(SIZE(PXA,1),SIZE(PXA,2)) :: ZATA,ZRO2,ZT2,ZXMI0,ZYMI0 ! -INTEGER :: ILUOUT0 INTEGER :: IRESP ! ! -CALL FMLOOK_ll(CLUOUT0,CLUOUT0,ILUOUT0,IRESP) !-------------------------------------------------------------------------------- ! !* 1. Preliminary calculations for all projections