From ef87d0be86c9140abe4a571378ef535e1a38c09e Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Mon, 9 Oct 2017 16:58:22 +0200 Subject: [PATCH] Philippe 09/10/2017: IO: use PRINT_MSG with NVERB_FATAL to replace (some) "callabortstop" --- src/MNH/advection_metsv.f90 | 7 +- src/MNH/aircraft_balloon_evol.f90 | 5 +- src/MNH/c2r2_adjust.f90 | 6 +- src/MNH/eddyUV_fluxn.f90 | 32 ++---- src/MNH/elec_trid.f90 | 9 +- src/MNH/elec_tridz.f90 | 9 +- src/MNH/ini_aircraft_balloon.f90 | 15 +-- src/MNH/ini_budget.f90 | 11 +- src/MNH/ini_cpl.f90 | 8 +- src/MNH/ini_lb.f90 | 176 ++++++------------------------ src/MNH/ini_modeln.f90 | 2 +- src/MNH/ini_posprofilern.f90 | 9 +- src/MNH/ini_prog_var.f90 | 56 +++------- src/MNH/ini_segn.f90 | 19 +--- src/MNH/ini_spectren.f90 | 4 +- src/MNH/ini_surfstationn.f90 | 11 +- src/MNH/khko_notadjust.f90 | 11 +- src/MNH/ls_coupling.f90 | 8 +- src/MNH/mnhread_zs_dummyn.f90 | 3 +- src/MNH/phys_paramn.f90 | 2 +- src/MNH/pressure.f90 | 12 +- src/MNH/pressurez.f90 | 5 +- src/MNH/prognos.f90 | 24 ++-- src/MNH/read_dummy_gr_fieldn.f90 | 34 ++---- src/MNH/read_exsegn.f90 | 143 ++++++------------------ src/MNH/trid.f90 | 9 +- src/MNH/tridz.f90 | 9 +- src/MNH/write_seriesn.f90 | 78 +++++-------- 28 files changed, 203 insertions(+), 514 deletions(-) diff --git a/src/MNH/advection_metsv.f90 b/src/MNH/advection_metsv.f90 index 607b0940a..6d1e3cebb 100644 --- a/src/MNH/advection_metsv.f90 +++ b/src/MNH/advection_metsv.f90 @@ -148,11 +148,12 @@ USE MODD_BUDGET USE MODD_IO_ll, ONLY: TFILEDATA USE MODD_TYPE_DATE, ONLY: DATE_TIME ! -USE MODE_ll USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL USE MODE_FM USE MODE_FMWRIT USE MODE_IO_ll +USE MODE_ll +USE MODE_MSG ! USE MODI_CONTRAV USE MODI_PPM_RHODJ @@ -408,9 +409,7 @@ IF (( (ZCFLU_MAX>=3.) .AND. (.NOT.L1D) ) .OR. & WRITE(ILUOUT,*) ' +---------------------------------------------------+' WRITE(ILUOUT,*) ' | MODEL STOPS |' WRITE(ILUOUT,*) ' +---------------------------------------------------+' - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','ADVECTION_METSV','') END IF ! ! diff --git a/src/MNH/aircraft_balloon_evol.f90 b/src/MNH/aircraft_balloon_evol.f90 index 27fb7547c..85d29d190 100644 --- a/src/MNH/aircraft_balloon_evol.f90 +++ b/src/MNH/aircraft_balloon_evol.f90 @@ -181,6 +181,7 @@ USE MODD_PARAM_LIMA, ONLY: XALPHAR_L=>XALPHAR,XNUR_L=>XNUR,XALPHAS_L=>XALPHAS,XN USE MODE_ll USE MODE_IO_ll USE MODE_GRIDPROJ +USE MODE_MSG ! USE MODI_WATER_SUM USE MODI_TEMPORAL_DIST @@ -717,9 +718,7 @@ IF ( TPFLYER%FLY) THEN WRITE(ILUOUT,*) 'neither initial ALTITUDE or PRESsure is given' WRITE(ILUOUT,*) 'Check your INI_BALLOON routine' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','AIRCRAFT_BALLOON_EVOL','') END IF END IF ! diff --git a/src/MNH/c2r2_adjust.f90 b/src/MNH/c2r2_adjust.f90 index 0cf366da5..d9f0f1bfb 100644 --- a/src/MNH/c2r2_adjust.f90 +++ b/src/MNH/c2r2_adjust.f90 @@ -168,7 +168,7 @@ USE MODI_BUDGET USE MODE_FIELD USE MODE_FM USE MODE_FMWRIT -USE MODE_IO_ll +USE MODE_MSG ! IMPLICIT NONE ! @@ -259,9 +259,7 @@ IF (ANY(PRCS(:,:,:)+PRVS(:,:,:) < 0.) .AND. NVERB>5) THEN WRITE(ILUOUT,*) ' location of minimum:', MINLOC(PRCS(:,:,:)+PRVS(:,:,:)) WRITE(ILUOUT,*) ' value of minimum :', MINVAL(PRCS(:,:,:)+PRVS(:,:,:)) !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','C2R2_ADJUST','') END IF ! WHERE ( PRCS(:,:,:)+PRVS(:,:,:) < 0.) diff --git a/src/MNH/eddyUV_fluxn.f90 b/src/MNH/eddyUV_fluxn.f90 index df001982b..5ee01d390 100644 --- a/src/MNH/eddyUV_fluxn.f90 +++ b/src/MNH/eddyUV_fluxn.f90 @@ -13,12 +13,10 @@ ! INTERFACE ! - SUBROUTINE EDDYUV_FLUX_n (KMI,HLUOUT,KTCOUNT,PVM,PTHM,PRHODJ,PRHODREF,PPABSM,PRVS,PVU_FLUX_M) + SUBROUTINE EDDYUV_FLUX_n (KMI,KTCOUNT,PVM,PTHM,PRHODJ,PRHODREF,PPABSM,PRVS,PVU_FLUX_M) ! ! INTEGER, INTENT(IN) :: KMI ! Model index -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for - ! model n INTEGER, INTENT(IN) :: KTCOUNT ! iteration count ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PVM @@ -38,7 +36,7 @@ END INTERFACE END MODULE MODI_EDDYUV_FLUX_n ! ############################################################################################# - SUBROUTINE EDDYUV_FLUX_n (KMI,HLUOUT,KTCOUNT,PVM,PTHM,PRHODJ,PRHODREF,PPABSM,PRVS,PVU_FLUX_M) + SUBROUTINE EDDYUV_FLUX_n (KMI,KTCOUNT,PVM,PTHM,PRHODJ,PRHODREF,PPABSM,PRVS,PVU_FLUX_M) ! ############################################################################################# !!! !! @@ -104,14 +102,12 @@ USE MODD_LUNIT_n USE MODI_TEMPORAL_DIST USE MODD_LATZ_EDFLX ! -USE MODE_IO_ll ! For call abort +USE MODE_MSG ! IMPLICIT NONE ! 0.01 Arguments declarations ! INTEGER, INTENT(IN) :: KMI ! Model index -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for - ! model n INTEGER, INTENT(IN) :: KTCOUNT ! iteration count ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PRHODJ ! dry density of @@ -157,12 +153,12 @@ REAL :: ZFHMW,ZPHI0 REAL :: JNEG REAL :: JNEG2 INTEGER :: JIDIFF -INTEGER :: ILUOUT INTEGER :: JP INTEGER :: JNI ! Nb of point where neg Pv gradiebnt depiected INTEGER :: JNB ! nb of areas of pv gradioent neg INTEGER :: JPI ! loop index INTEGER :: IRESP +CHARACTER(LEN=100) :: YMSG ! !------------------------------------------------------------------------- ! @@ -177,7 +173,6 @@ IKE=IKU-JPVEXT IIU = SIZE(XXHAT) IJU = SIZE(XYHAT) -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) ! allocation of temporary array ! --------------------------------------------------------- ! 1D arrays X direction @@ -329,17 +324,11 @@ DO JK=IKB,IKE ! Test of JI_MIN_IMAX value IF ((JI_MAX(JP) > IIE) .OR. (JI_MAX(JP)<JI_MIN(JP)) & .OR. (JI_MAX(JP)<IIB)) THEN - WRITE(ILUOUT,*) "PB WITH JI_MAX, WONGG VALUE IN EDDYUV_FLUX" - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','EDDYUV_FLUX_n','wrong value of JI_MAX') END IF ! IF ((JI_MIN(JP) > IIE) .OR. (JI_MIN(JP)<IIB)) THEN - WRITE(ILUOUT,*) "PB WITH JI_MIN, WORNG VALUE IN EDDYUV_FLUX" - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','EDDYUV_FLUX_n','wrong value of JI_MIN') END IF JIDIFF=JI_MAX(JP) - JI_MIN(JP) @@ -380,12 +369,9 @@ DO JK=IKB,IKE ! ! Control of ZKVU value - IF (ZKVU(JI,IJB,JK) < 0.0 ) THEN - WRITE(ILUOUT,FMT=*) "PB KUV<0" - WRITE(ILUOUT,FMT=*) JI,JK - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + IF (ZKVU(JI,IJB,JK) < 0.0 ) THEN + WRITE(YMSG,*) 'ZKVU(',JI,',',IJB,',',JK,') < 0.0' + CALL PRINT_MSG(NVERB_FATAL,'GEN','EDDYUV_FLUX_n',YMSG) ENDIF END DO ! end of loot JI diff --git a/src/MNH/elec_trid.f90 b/src/MNH/elec_trid.f90 index 3a54b8f4e..380a38de3 100644 --- a/src/MNH/elec_trid.f90 +++ b/src/MNH/elec_trid.f90 @@ -190,6 +190,7 @@ USE MODD_PARAMETERS USE MODE_ll USE MODE_IO_ll USE MODE_FM +USE MODE_MSG ! !JUAN USE MODE_REPRO_SUM @@ -622,9 +623,7 @@ IF (KIFAXX(10) /= IIMAX_ll) THEN &' OPERATOR REQUIRES THAT KIMAX MUST BE FACTORIZABLE' ,/,& & ' AS A PRODUCT OF POWERS OF 2, 3 AND 5.')") !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','ELEC_TRID','') END IF ! IF (HLBCX(1) /= 'CYCL') THEN @@ -656,9 +655,7 @@ IF (.NOT. L2D) THEN &' OPERATOR REQUIRES THAT KJMAX MUST BE FACTORIZABLE' ,/,& & ' AS A PRODUCT OF POWERS OF 2, 3 AND 5.')") !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','ELEC_TRID','') END IF ! ! 8.3 top boundary conditions diff --git a/src/MNH/elec_tridz.f90 b/src/MNH/elec_tridz.f90 index 1fb058770..7cf604d13 100644 --- a/src/MNH/elec_tridz.f90 +++ b/src/MNH/elec_tridz.f90 @@ -199,6 +199,7 @@ 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 ! @@ -750,9 +751,7 @@ IF (KIFAXX(10) /= IIMAX_ll) THEN &' OPERATOR REQUIRES THAT KIMAX MUST BE FACTORIZABLE' ,/,& & ' AS A PRODUCT OF POWERS OF 2, 3 AND 5.')") !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','ELEC_TRIDZ','') END IF ! IF (HLBCX(1) /= 'CYCL') THEN @@ -784,9 +783,7 @@ IF (.NOT. L2D) THEN &' OPERATOR REQUIRES THAT KJMAX MUST BE FACTORIZABLE' ,/,& & ' AS A PRODUCT OF POWERS OF 2, 3 AND 5.')") !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','ELEC_TRIDZ','') END IF ! ! 8.3 top boundary conditions diff --git a/src/MNH/ini_aircraft_balloon.f90 b/src/MNH/ini_aircraft_balloon.f90 index 06ef3f5a0..2fb8a7241 100644 --- a/src/MNH/ini_aircraft_balloon.f90 +++ b/src/MNH/ini_aircraft_balloon.f90 @@ -94,11 +94,12 @@ USE MODD_IO_ll, ONLY : TFILEDATA USE MODD_PARAM_n, ONLY : CCLOUD USE MODD_PARAMETERS ! -USE MODE_ll USE MODE_FIELD, ONLY : TFIELDDATA, TYPEREAL USE MODE_GRIDPROJ USE MODE_IO_ll +USE MODE_ll USE MODE_MODELN_HANDLER +USE MODE_MSG ! USE MODI_INI_BALLOON USE MODI_INI_AIRCRAFT @@ -590,9 +591,7 @@ IF (TPFLYER%LAT==XUNDEF .OR.TPFLYER%LON==XUNDEF) THEN WRITE(ILUOUT,*) 'TPBALLOON%LON=',TPFLYER%LON WRITE(ILUOUT,*) 'Check your INI_BALLOON routine' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_AIRCRAFT_BALLOON','') END IF ! CALL SM_XYHAT(PLATOR,PLONOR, & @@ -634,9 +633,7 @@ IF ( ANY(TPFLYER%SEGLAT(:)==XUNDEF) .OR. ANY(TPFLYER%SEGLON(:)==XUNDEF) ) THEN WRITE(ILUOUT,*) 'TPAIRCRAFT%SEGLON=',TPFLYER%SEGLON WRITE(ILUOUT,*) 'Check your INI_AIRCRAFT routine' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_AIRCRAFT_BALLOON','') END IF ! ALLOCATE(TPFLYER%SEGX(TPFLYER%SEG+1)) @@ -654,9 +651,7 @@ IF ( ANY(TPFLYER%SEGTIME(:)==XUNDEF) ) THEN WRITE(ILUOUT,*) 'TPAIRCRAFT%SEGTIME=',TPFLYER%SEGTIME WRITE(ILUOUT,*) 'Check your INI_AIRCRAFT routine' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_AIRCRAFT_BALLOON','') END IF ! ! diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90 index 1643b0cc3..647b79fc9 100644 --- a/src/MNH/ini_budget.f90 +++ b/src/MNH/ini_budget.f90 @@ -12,7 +12,7 @@ MODULE MODI_INI_BUDGET ! ###################### INTERFACE - SUBROUTINE INI_BUDGET(KLUOUT, HLUOUT,PTSTEP,KSV,KRR, & + SUBROUTINE INI_BUDGET(KLUOUT,PTSTEP,KSV,KRR, & ONUMDIFU,ONUMDIFTH,ONUMDIFSV, & OHORELAX_UVWTH,OHORELAX_RV,OHORELAX_RC,OHORELAX_RR, & OHORELAX_RI,OHORELAX_RS, OHORELAX_RG, OHORELAX_RH,OHORELAX_TKE, & @@ -20,7 +20,6 @@ INTERFACE HRAD,HDCONV,HSCONV,HTURB,HTURBDIM,HCLOUD ) ! INTEGER, INTENT(IN) :: KLUOUT ! Logical unit number for prints -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name of output listing REAL, INTENT(IN) :: PTSTEP ! time step INTEGER, INTENT(IN) :: KSV ! number of scalar variables INTEGER, INTENT(IN) :: KRR ! number of moist variables @@ -72,7 +71,7 @@ END MODULE MODI_INI_BUDGET ! ! ! ################################################################# - SUBROUTINE INI_BUDGET(KLUOUT, HLUOUT,PTSTEP,KSV,KRR, & + SUBROUTINE INI_BUDGET(KLUOUT,PTSTEP,KSV,KRR, & ONUMDIFU,ONUMDIFTH,ONUMDIFSV, & OHORELAX_UVWTH,OHORELAX_RV,OHORELAX_RC,OHORELAX_RR, & OHORELAX_RI,OHORELAX_RS, OHORELAX_RG, OHORELAX_RH,OHORELAX_TKE, & @@ -180,6 +179,7 @@ USE MODD_PARAM_LIMA, ONLY : OWARM=>LWARM, OCOLD=>LCOLD, OSEDI=>LSEDI, & ! USE MODE_ll USE MODE_IO_ll +USE MODE_MSG ! IMPLICIT NONE ! @@ -187,7 +187,6 @@ IMPLICIT NONE ! ! INTEGER, INTENT(IN) :: KLUOUT ! Logical unit number for prints -CHARACTER (LEN=*), INTENT(IN) :: HLUOUT ! name of output listing REAL, INTENT(IN) :: PTSTEP ! time step INTEGER, INTENT(IN) :: KSV ! number of scalar variables INTEGER, INTENT(IN) :: KRR ! number of moist variables @@ -2585,9 +2584,7 @@ IF (CBUTYPE=='MASK') THEN END IF IF (GERROR) THEN !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_BUDGET','') ENDIF !------------------------------------------------------------------------------- !* 5. ALLOCATE MEMORY FOR BUDGET STORAGE ARRAYS diff --git a/src/MNH/ini_cpl.f90 b/src/MNH/ini_cpl.f90 index 610310756..adf7e31b1 100644 --- a/src/MNH/ini_cpl.f90 +++ b/src/MNH/ini_cpl.f90 @@ -438,9 +438,7 @@ IF (ICPLEND==NCPL_NBR .AND. NCPL_TIMES(NCPL_NBR,1) < KSTOP) THEN CALL SM_PRINT_TIME(TDTCUR,HLUOUT,YTITLE) WRITE(ILUOUT,*) 'XSEGLEN = ', XSEGLEN !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_CPL','') END IF ! save the right number of useful coupling files NCPL_NBR = ICPLEND - NCPL_CUR + 1 @@ -475,9 +473,7 @@ IF ( (IIMAX/=KIMAX_ll) .OR. (IJMAX/=KJMAX_ll) & WRITE(ILUOUT,*) 'AND IN THE COUPLING FILE :',TCPLFILE(NCPL_CUR)%TZFILE%CNAME WRITE(ILUOUT,*) IIMAX,'*',IJMAX,'*',IKMAX !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_CPL','') END IF ! !* 3.2 Initialize the large scale sources diff --git a/src/MNH/ini_lb.f90 b/src/MNH/ini_lb.f90 index 018de6791..54f92d9a8 100644 --- a/src/MNH/ini_lb.f90 +++ b/src/MNH/ini_lb.f90 @@ -150,7 +150,7 @@ USE MODD_PARAM_n USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG,TYPEREAL USE MODE_FM USE MODE_FMREAD -USE MODE_IO_ll, ONLY: CLOSE_ll +USE MODE_MSG ! USE MODD_RAIN_C2R2_DESCR, ONLY: C2R2NAMES USE MODD_ICE_C1R3_DESCR, ONLY: C1R3NAMES @@ -327,11 +327,8 @@ CASE('READ') PLBXTKEM(:,:,:) = PLBXTKEMM(:,:,:) PLBYTKEM(:,:,:) = PLBYTKEMM(:,:,:) ELSE - WRITE ( ILUOUT,*) 'PB TO INITIALIZE LBXTKES AND LBYTKES ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize LBXTKES and LBYTKES') ENDIF ELSE CALL IO_READ_FIELD(TPINIFILE,'HORELAX_TKE',GHORELAX_TKE) @@ -435,11 +432,8 @@ IF(KSIZELBXR_ll > 0 ) THEN PLBXRM(:,:,:,IRR)=PLBXRMM(:,:,:,IRR) WRITE(ILUOUT,*) 'PLBXRS will be initialized to 0 for LBXR'//YC(JRR)//'M' ELSE - WRITE(ILUOUT,*) 'Pb to initialize PLBXRM for LBXR'//YC(JRR)//'M' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize PLBXRM for LBXR'//YC(JRR)//'M') ENDIF ELSE TZFIELD%CMNHNAME = 'LBXR'//YC(JRR)//'M' @@ -456,11 +450,8 @@ IF(KSIZELBXR_ll > 0 ) THEN PLBYRM(:,:,:,IRR)=PLBYRMM(:,:,:,IRR) WRITE(ILUOUT,*) 'PLBYRS will be initialized to 0 for LBYR'//YC(JRR)//'M' ELSE - WRITE(ILUOUT,*) 'Pb to initialize PLBYRM for LBYR'//YC(JRR)//'M' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize PLBYRM for LBYR'//YC(JRR)//'M') ENDIF ELSE TZFIELD%CMNHNAME = 'LBYR'//YC(JRR)//'M' @@ -530,11 +521,8 @@ IF (NSV_USER>0) THEN PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'PLXYSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialze PLBXSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize PLBXSVM') ENDIF END IF END IF @@ -552,11 +540,8 @@ IF (NSV_USER>0) THEN PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'PLBYSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialze PLBYSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize PLBYSVM') ENDIF END IF END IF @@ -591,11 +576,8 @@ IF (NSV_C2R2END>=NSV_C2R2BEG) THEN PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'C2R2 PLBXSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize C2R2 PLBXSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize C2R2 PLBXSVM') ENDIF END IF END IF @@ -613,11 +595,8 @@ IF (NSV_C2R2END>=NSV_C2R2BEG) THEN PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'C2R2 PLBYSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize C2R2 PLBYSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize C2R2 PLBYSVM') ENDIF END IF END IF @@ -652,11 +631,8 @@ IF (NSV_C1R3END>=NSV_C1R3BEG) THEN PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'C1R3 PLBXSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize C1R3 PLBXSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize C1R3 PLBXSVM') ENDIF END IF END IF @@ -674,11 +650,8 @@ IF (NSV_C1R3END>=NSV_C1R3BEG) THEN PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'C1R3 PLBYSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize C1R3 PLBYSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize C1R3 PLBYSVM') ENDIF END IF END IF @@ -717,11 +690,8 @@ IF (CCLOUD=='LIMA' ) THEN PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'CCN PLBXSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize CCN PLBXSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize CCN PLBXSVM') ENDIF END IF END IF @@ -739,11 +709,8 @@ IF (CCLOUD=='LIMA' ) THEN PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'CCN PLBYSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize CCN PLBYSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize CCN PLBYSVM') ENDIF END IF END IF @@ -779,11 +746,8 @@ IF (CCLOUD=='LIMA' ) THEN PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'IFN PLBXSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize IFN' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize IFN') ENDIF END IF END IF @@ -801,11 +765,8 @@ IF (CCLOUD=='LIMA' ) THEN PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'IFN PLBYSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize IFN' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize IFN') ENDIF END IF END IF @@ -841,11 +802,8 @@ IF (NSV_ELECEND>=NSV_ELECBEG) THEN PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'ELEC PLBXSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize ELEC PLBXSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize ELEC PLBXSVM') ENDIF END IF END IF @@ -862,11 +820,8 @@ IF (NSV_ELECEND>=NSV_ELECBEG) THEN PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'ELEC PLBYSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize ELEC PLBYSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize ELEC PLBYSVM') ENDIF END IF END IF @@ -901,11 +856,8 @@ IF (NSV_CHGSEND>=NSV_CHGSBEG) THEN PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'Chemical PLBXSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize gas phase Chemical PLBXSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize gas phase chemical PLBXSVM') ENDIF END IF END IF @@ -923,11 +875,8 @@ IF (NSV_CHGSEND>=NSV_CHGSBEG) THEN PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'Chemical PLBYSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize gas phase Chemical PLBYSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize gas phase chemical PLBYSVM') ENDIF END IF END IF @@ -962,11 +911,8 @@ IF (NSV_CHACEND>=NSV_CHACBEG) THEN PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'Chemical PLBXSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize aqueous phase chemical PLBXSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize aqueous phase chemical PLBXSVM') ENDIF END IF END IF @@ -984,11 +930,8 @@ IF (NSV_CHACEND>=NSV_CHACBEG) THEN PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'Chemical PLBYSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize aqueous phase chemical PLBYSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize aqueous phase chemical PLBYSVM') ENDIF END IF END IF @@ -1023,11 +966,8 @@ IF (NSV_CHICEND>=NSV_CHICBEG) THEN PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'Ice phase chemical PLBXSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize ice phase chemical PLBXSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize ice phase chemical PLBXSVM') ENDIF END IF END IF @@ -1045,11 +985,8 @@ IF (NSV_CHICEND>=NSV_CHICBEG) THEN PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'Ice phase chemical PLBYSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize Ice phase chemical PLBYSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize ice phase chemical PLBYSVM') ENDIF END IF END IF @@ -1084,11 +1021,8 @@ IF (NSV_AEREND>=NSV_AERBEG) THEN PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'Aerosol PLBXSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize Aerosol PLBXSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize aerosol PLBXSVM') ENDIF END IF END IF @@ -1106,11 +1040,8 @@ IF (NSV_AEREND>=NSV_AERBEG) THEN PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'Aerosol PLBYSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize Aerosol PLBYSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize aerosol PLBYSVM') ENDIF END IF END IF @@ -1145,11 +1076,8 @@ IF (NSV_AERDEPEND>=NSV_AERDEPBEG) THEN PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'Aerosol PLBXSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize Aerosol PLBXSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize aerosol PLBXSVM') ENDIF END IF END IF @@ -1167,11 +1095,8 @@ IF (NSV_AERDEPEND>=NSV_AERDEPBEG) THEN PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'Aerosol PLBYSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize Aerosol PLBYSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize aerosol PLBYSVM') ENDIF END IF END IF @@ -1206,11 +1131,8 @@ IF (NSV_DSTEND>=NSV_DSTBEG) THEN PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'Dust PLBXSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize dust PLBXSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize dust PLBXSVM') ENDIF END IF END IF @@ -1228,11 +1150,8 @@ IF (NSV_DSTEND>=NSV_DSTBEG) THEN PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'Dust PLBYSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize dust PLBYSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize dust PLBYSVM') ENDIF END IF END IF @@ -1267,11 +1186,8 @@ IF (NSV_DSTDEPEND>=NSV_DSTDEPBEG) THEN PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'Dust Desposition PLBXSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize dust PLBXSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize dust PLBXSVM') ENDIF END IF END IF @@ -1291,9 +1207,7 @@ IF (NSV_DSTDEPEND>=NSV_DSTDEPBEG) THEN ELSE WRITE(ILUOUT,*) 'Pb to initialize dust PLBYSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize dust PLBYSVM') ENDIF END IF END IF @@ -1328,11 +1242,8 @@ IF (NSV_SLTEND>=NSV_SLTBEG) THEN PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'Sea Salt PLBXSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize sea salt PLBXSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize sea salt PLBXSVM') ENDIF END IF END IF @@ -1350,11 +1261,8 @@ IF (NSV_SLTEND>=NSV_SLTBEG) THEN PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'Sea Salt PLBYSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize sea salt PLBYSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize sea salt PLBYSVM') ENDIF END IF END IF @@ -1557,11 +1465,8 @@ IF (NSV_LNOXEND>=NSV_LNOXBEG) THEN PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'Linox PLBXSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize Linox PLBXSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize linox PLBXSVM') ENDIF END IF END IF @@ -1579,11 +1484,8 @@ IF (NSV_LNOXEND>=NSV_LNOXBEG) THEN PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'Linox PLBYSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize Linox PLBYSVM ' !calla bortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize linox PLBYSVM') ENDIF END IF END IF @@ -1618,11 +1520,8 @@ IF (NSV_LGEND>=NSV_LGBEG) THEN PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'lagrangian PLBXSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize lagrangian PLBXSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize lagrangian PLBXSVM') ENDIF END IF END IF @@ -1640,11 +1539,8 @@ IF (NSV_LGEND>=NSV_LGBEG) THEN PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV) WRITE(ILUOUT,*) 'lagrangian PLBYSVM will be initialized to 0' ELSE - WRITE(ILUOUT,*) 'Pb to initialize lagrangian PLBYSVM ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize lagrangian PLBYSVM') ENDIF END IF END IF diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index 1ba26445a..831cd6bea 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -1493,7 +1493,7 @@ ENDIF ! --------------------------- ! IF ( CBUTYPE /= "NONE" .AND. NBUMOD == KMI ) THEN - CALL INI_BUDGET(ILUOUT, HLUOUT,XTSTEP,NSV,NRR, & + CALL INI_BUDGET(ILUOUT,XTSTEP,NSV,NRR, & LNUMDIFU,LNUMDIFTH,LNUMDIFSV, & LHORELAX_UVWTH,LHORELAX_RV, LHORELAX_RC,LHORELAX_RR, & LHORELAX_RI,LHORELAX_RS,LHORELAX_RG, LHORELAX_RH,LHORELAX_TKE, & diff --git a/src/MNH/ini_posprofilern.f90 b/src/MNH/ini_posprofilern.f90 index 0608f5764..e641527c7 100644 --- a/src/MNH/ini_posprofilern.f90 +++ b/src/MNH/ini_posprofilern.f90 @@ -88,9 +88,10 @@ USE MODD_CONF USE MODD_GRID USE MODD_RADIATIONS_n, ONLY: NAER ! -USE MODE_ll -USE MODE_IO_ll USE MODE_GRIDPROJ +USE MODE_IO_ll +USE MODE_ll +USE MODE_MSG ! USE MODI_INI_PROFILER_N ! @@ -271,9 +272,7 @@ IF ( ANY(TPROFILER%LAT(:)==XUNDEF) .OR. ANY(TPROFILER%LON(:)==XUNDEF) ) THEN WRITE(ILUOUT,*) 'either LATitude or LONgitude segment' WRITE(ILUOUT,*) 'definiton is not complete.' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_INTERP_PROFILER_n','') END IF ! TPROFILER%STEP = MAX ( PTSTEP, TPROFILER%STEP ) diff --git a/src/MNH/ini_prog_var.f90 b/src/MNH/ini_prog_var.f90 index 572032f2a..778cf9472 100644 --- a/src/MNH/ini_prog_var.f90 +++ b/src/MNH/ini_prog_var.f90 @@ -103,6 +103,7 @@ END MODULE MODI_INI_PROG_VAR ! USE MODD_CONF ! declaration modules USE MODD_CONF_n +USE MODD_DIM_n USE MODD_DYN_n USE MODD_IO_ll, ONLY: TFILEDATA USE MODD_TURB_n @@ -125,13 +126,13 @@ USE MODI_PGDFILTER USE MODI_CH_INIT_SCHEME_n USE MODI_CH_AER_INIT_SOA ! -USE MODE_POS USE MODE_FIELD, ONLY : TFIELDDATA,TYPEREAL USE MODE_FM +USE MODE_FMREAD USE MODE_IO_ll USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST -USE MODE_FMREAD -USE MODD_DIM_n +USE MODE_MSG +USE MODE_POS ! IMPLICIT NONE ! @@ -233,44 +234,29 @@ IF(PRESENT(HCHEMFILE)) THEN ! CALL IO_READ_FIELD(TZCHEMFILE,'IMAX',IIMAX,IRESP) IF (IRESP/=0) THEN - WRITE(ILUOUT,FMT=9000) - WRITE(ILUOUT,*) 'IMAX',' NOT FOUND IN THE CHEM FILE ',HCHEMFILE !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_PROG_VAR','IMAX not found in the CHEM file '//TRIM(HCHEMFILE)) END IF !IRESP ! CALL IO_READ_FIELD(TZCHEMFILE,'JMAX',IJMAX,IRESP) IF (IRESP/=0) THEN - WRITE(ILUOUT,FMT=9000) - WRITE(ILUOUT,*) 'JMAX','NOT FOUND IN THE CHEM FILE ',HCHEMFILE !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_PROG_VAR','JMAX not found in the CHEM file '//TRIM(HCHEMFILE)) END IF !IRESP ! CALL IO_READ_FIELD(TZCHEMFILE,'KMAX',IKMAX,IRESP) IF (IRESP/=0) THEN - WRITE(ILUOUT,FMT=9000) - WRITE(ILUOUT,*) 'KMAX','NOT FOUND IN THE CHEM FILE ',HCHEMFILE !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_PROG_VAR','KMAX not found in the CHEM file '//TRIM(HCHEMFILE)) END IF !IRESP IF ( (IIMAX/=(IIU_ll-2*JPHEXT)) .OR. (IJMAX/=(IJU_ll-2*JPHEXT)) & .OR. (IKMAX/=(IKU-2*JPVEXT)) ) THEN - WRITE(ILUOUT,FMT=9000) WRITE(ILUOUT,*) 'THE GRIDS ARE DIFFERENT IN THE OUTPUT FILE :' WRITE(ILUOUT,*) IIU_ll-2*JPHEXT,'*',IJU_ll-2*JPHEXT,'*',IKU-2*JPVEXT WRITE(ILUOUT,*) 'AND IN THE CHEM FILE :',HCHEMFILE WRITE(ILUOUT,*) IIMAX,'*',IJMAX,'*',IKMAX !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_PROG_VAR','') END IF ! IIMAX IF (.NOT.LDUST) THEN ! Read scalars in chem file @@ -325,11 +311,7 @@ IF(PRESENT(HCHEMFILE)) THEN WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN - WRITE(ILUOUT,FMT=9000) - WRITE(ILUOUT,*) TRIM(TZFIELD%CMNHNAME),' NOT FOUND IN THE CHEM FILE ',HCHEMFILE - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_PROG_VAR',TRIM(TZFIELD%CMNHNAME)//' not found in the CHEM file '//TRIM(HCHEMFILE)) END IF !IRESP END DO !JMOD ELSE ! IMOMENTS diff 1 @@ -344,9 +326,8 @@ IF(PRESENT(HCHEMFILE)) THEN WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN - WRITE(ILUOUT,FMT=9000) - WRITE(ILUOUT,*) TRIM(TZFIELD%CMNHNAME),' NOT FOUND IN THE CHEM FILE ',HCHEMFILE - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_PROG_VAR',TRIM(TZFIELD%CMNHNAME)//& + ' not found in the CHEM file '//TRIM(HCHEMFILE)) END IF !IRESP END DO ! JMOM END DO !JMOD @@ -379,11 +360,7 @@ IF(PRESENT(HCHEMFILE)) THEN WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN - WRITE(ILUOUT,FMT=9000) - WRITE(ILUOUT,*) TRIM(TZFIELD%CMNHNAME),' NOT FOUND IN THE CHEM FILE ',HCHEMFILE - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_PROG_VAR',TRIM(TZFIELD%CMNHNAME)//' not found in the CHEM file '//TRIM(HCHEMFILE)) END IF !IRESP END DO !JMOD ELSE ! IMOMENTS @@ -398,9 +375,7 @@ IF(PRESENT(HCHEMFILE)) THEN WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN - WRITE(ILUOUT,FMT=9000) - WRITE(ILUOUT,*) TRIM(TZFIELD%CMNHNAME),' NOT FOUND IN THE CHEM FILE ',HCHEMFILE - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_PROG_VAR',TRIM(TZFIELD%CMNHNAME)//' not found in the CHEM file '//TRIM(HCHEMFILE)) END IF !IRESP END DO ! JMOM END DO !JMOD @@ -421,8 +396,7 @@ IF(PRESENT(HCHEMFILE)) THEN WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN - WRITE(ILUOUT,FMT=9000) - WRITE(ILUOUT,*) TRIM(TZFIELD%CMNHNAME),'NOT FOUND IN THE CHEM FILE ',HCHEMFILE + CALL PRINT_MSG(NVERB_WARNING,'GEN','INI_PROG_VAR',TRIM(TZFIELD%CMNHNAME)//' not found in the CHEM file '//TRIM(HCHEMFILE)) !callabortstop !CALL ABORT ! STOP @@ -494,7 +468,5 @@ NSIZELBXSV_ll =SIZE(XLBXSVM,1) NSIZELBYSV_ll =SIZE(XLBYSVM,2) ! !------------------------------------------------------------------------------- -9000 FORMAT(/,'FATAL ERROR IN INI_PROG_VAR : ',/, & - '--------------------------------------' ) ! END SUBROUTINE INI_PROG_VAR diff --git a/src/MNH/ini_segn.f90 b/src/MNH/ini_segn.f90 index ec0e858ad..7ce7b8a22 100644 --- a/src/MNH/ini_segn.f90 +++ b/src/MNH/ini_segn.f90 @@ -306,12 +306,8 @@ ELSE IF (CPROGRAM=='DIAG ') THEN ! ------------------- ! ELSE - WRITE(UNIT=ILUOUT,FMT=*) 'INI_SEG_n should not be called for CPROGRAM=',CPROGRAM - WRITE(UNIT=ILUOUT,FMT=*) '-> STOP' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_SEG_n','should not be called for CPROGRAM='//TRIM(CPROGRAM)) ENDIF ! !------------------------------------------------------------------------------- @@ -332,11 +328,8 @@ IF (GFOUND) THEN READ(UNIT=ILUSEG,NML=NAM_LUNITn) CALL UPDATE_NAM_LUNITn IF (LEN_TRIM(CINIFILEPGD)==0 .AND. CSURF=='EXTE') THEN - WRITE(ILUOUT,*) 'Error in namelist NAM_LUNITn : you need to specify CINIFILEPGD' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_SEG_n','error in namelist NAM_LUNITn: you need to specify CINIFILEPGD') ENDIF END IF @@ -426,9 +419,7 @@ IF (CPROGRAM=='MESONH' .OR. CPROGRAM=='SPAWN ') THEN WRITE(ILUOUT,*) 'You can not use it as initial file, only as coupling file' WRITE(ILUOUT,*) 'Run PREP_REAL_CASE with LCOUPLING=.FALSE.' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_SEG_n','') ENDIF ENDIF END IF @@ -438,9 +429,7 @@ END IF IF (IRESP /= 0) THEN WRITE(ILUOUT,FMT=9002) 'STORAGE_TYPE',IRESP !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_SEG_n','') END IF IF (KMI == 1) THEN ! Read the geometry kind diff --git a/src/MNH/ini_spectren.f90 b/src/MNH/ini_spectren.f90 index 34c6e4f93..2e3fe3424 100644 --- a/src/MNH/ini_spectren.f90 +++ b/src/MNH/ini_spectren.f90 @@ -238,9 +238,7 @@ IF (XALZBOT>=XZHAT(IKU) .AND. LVE_RELAX) THEN WRITE(ILUOUT,FMT=*) " but bottom of layer XALZBOT(",XALZBOT,")" WRITE(ILUOUT,FMT=*) " is upper than model top (",XZHAT(IKU),")" !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_SPECTRE_n','') END IF IF (LVE_RELAX) THEN IF (XALZBOT>=XZHAT(IKU-4) ) THEN diff --git a/src/MNH/ini_surfstationn.f90 b/src/MNH/ini_surfstationn.f90 index eba99ef5f..ae8952c81 100644 --- a/src/MNH/ini_surfstationn.f90 +++ b/src/MNH/ini_surfstationn.f90 @@ -87,9 +87,10 @@ USE MODD_DYN_n USE MODD_CONF USE MODD_GRID ! -USE MODE_ll -USE MODE_IO_ll USE MODE_GRIDPROJ +USE MODE_IO_ll +USE MODE_ll +USE MODE_MSG ! USE MODI_INI_STATION_N ! @@ -262,11 +263,9 @@ IF ( ANY(TSTATION%LAT(:)==XUNDEF) .OR. ANY(TSTATION%LON(:)==XUNDEF) ) THEN WRITE(ILUOUT,*) 'Error in station position ' WRITE(ILUOUT,*) 'either LATitude or LONgitude segment' WRITE(ILUOUT,*) 'or I and J segment' - WRITE(ILUOUT,*) 'definiton is not complete.' + WRITE(ILUOUT,*) 'definition is not complete.' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_SURFSTATION_n','') END IF ! TSTATION%STEP = MAX ( PTSTEP, TSTATION%STEP ) diff --git a/src/MNH/khko_notadjust.f90 b/src/MNH/khko_notadjust.f90 index 1f7fcfa24..9d0e422ef 100644 --- a/src/MNH/khko_notadjust.f90 +++ b/src/MNH/khko_notadjust.f90 @@ -115,6 +115,7 @@ USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL USE MODE_FM USE MODE_FMWRIT USE MODE_IO_ll +USE MODE_MSG ! USE MODI_BUDGET USE MODI_PROGNOS @@ -225,9 +226,7 @@ IF (ANY(PRCS(:,:,:)+PRVS(:,:,:) < 0.) .AND. NVERB>5) THEN WRITE(ILUOUT,*) ' location of minimum:', MINLOC(PRCS(:,:,:)+PRVS(:,:,:)) WRITE(ILUOUT,*) ' value of minimum :', MINVAL(PRCS(:,:,:)+PRVS(:,:,:)) !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','KHKO_NOTADJUST','') END IF ! ZACT(:,:,:) = PCCS(:,:,:) @@ -304,7 +303,7 @@ IF( INUCT >= 1 ) THEN ENDDO ! !Evaporation/Condensation/activation - CALL PROGNOS(HLUOUT,PTSTEP,ZZDZ,ZZLV,ZZCPH,ZPRES,ZRHOD, & + CALL PROGNOS(PTSTEP,ZZDZ,ZZLV,ZZCPH,ZPRES,ZRHOD, & ZRR,ZTT,ZRV,ZRC,ZS0,ZCCN,ZCCL) ! !1D array to 3D array @@ -361,9 +360,7 @@ IF (ANY(PRCS(:,:,:)+PRVS(:,:,:) < 0.) .AND. NVERB>5) THEN WRITE(*,*) 'KHKO_NOTADJUST: negative values of total water (reset to zero)' WRITE(*,*) ' location of minimum:', MINLOC(PRCS(:,:,:)+PRVS(:,:,:)) WRITE(*,*) ' value of minimum :', MINVAL(PRCS(:,:,:)+PRVS(:,:,:)) - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','KHKO_NOTADJUST','') END IF ! !number of activated aerosols diff --git a/src/MNH/ls_coupling.f90 b/src/MNH/ls_coupling.f90 index 2f69dec70..833ab5a44 100644 --- a/src/MNH/ls_coupling.f90 +++ b/src/MNH/ls_coupling.f90 @@ -181,7 +181,6 @@ END MODULE MODI_LS_COUPLING !------------------------------------------------------------------------------ ! !* 0. DECLARATIONS -USE MODE_FM ! ------------ USE MODD_PARAMETERS USE MODD_CTURB @@ -193,8 +192,11 @@ USE MODD_PASPOL #endif USE MODD_CH_MNHC_n ! +USE MODE_FM USE MODE_FMREAD USE MODE_IO_ll +USE MODE_MSG +! USE MODI_INI_LS USE MODI_INI_LB ! @@ -294,9 +296,7 @@ IF ( (IIMAX/=KIMAX_ll) .OR. (IJMAX/=KJMAX_ll) & WRITE(ILUOUT,*) 'AND IN THE COUPLING FILE :',TCPLFILE(NCPL_CUR)%TZFILE%CNAME WRITE(ILUOUT,*) IIMAX,'*',IJMAX,'*',IKMAX !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','LS_COUPLING','') END IF ! !* 1.2 Read new scalar Large Scale fields and update sources diff --git a/src/MNH/mnhread_zs_dummyn.f90 b/src/MNH/mnhread_zs_dummyn.f90 index cd9e6339a..a22453d05 100644 --- a/src/MNH/mnhread_zs_dummyn.f90 +++ b/src/MNH/mnhread_zs_dummyn.f90 @@ -65,7 +65,6 @@ USE MODD_GRID_n, ONLY : XZS USE MODD_GR_FIELD_n, ONLY : XSSO_STDEV, XSSO_ANISOTROPY, XSSO_DIRECTION, XSSO_SLOPE, & XAVG_ZS, XSIL_ZS, XMIN_ZS, XMAX_ZS USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_LUNIT_n, ONLY : CLUOUT USE MODD_PARAM_n, ONLY : CSURF ! USE MODI_READ_DUMMY_GR_FIELD_n @@ -146,7 +145,7 @@ CALL IO_READ_FIELD(TPINIFILE,'SSO_STDEV',XSSO_STDEV(:,:)) !* 3. Dummy fields ! ------------ ! -CALL READ_DUMMY_GR_FIELD_n(TPINIFILE,CLUOUT,1,IIU,1,IJU,.TRUE.) +CALL READ_DUMMY_GR_FIELD_n(TPINIFILE,1,IIU,1,IJU,.TRUE.) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/phys_paramn.f90 b/src/MNH/phys_paramn.f90 index 1b573403b..f8816f40c 100644 --- a/src/MNH/phys_paramn.f90 +++ b/src/MNH/phys_paramn.f90 @@ -1196,7 +1196,7 @@ IF (IMI==1) THEN ! On calcule les flus turb. comme preconise par PP IF ( LTH_FLX ) CALL EDDY_FLUX_n(IMI,KTCOUNT,XVT,XTHT,XRHODJ,XRTHS,XVTH_FLUX_M,XWTH_FLUX_M) ! ! Momentum eddy fluxes - IF ( LUV_FLX ) CALL EDDYUV_FLUX_n(IMI,CLUOUT,KTCOUNT,XVT,XTHT,XRHODJ,XRHODREF,XPABSM,XRVS,XVU_FLUX_M) + IF ( LUV_FLX ) CALL EDDYUV_FLUX_n(IMI,KTCOUNT,XVT,XTHT,XRHODJ,XRHODREF,XPABSM,XRVS,XVU_FLUX_M) ELSE ! TEST pour maille infèrieure à 20km ? diff --git a/src/MNH/pressure.f90 b/src/MNH/pressure.f90 index c6a6cb443..4357eb147 100644 --- a/src/MNH/pressure.f90 +++ b/src/MNH/pressure.f90 @@ -13,7 +13,7 @@ MODULE MODI_PRESSURE ! INTERFACE ! - SUBROUTINE PRESSURE(OCLOSE_OUT,HFMFILE,HLUOUT, & + SUBROUTINE PRESSURE(HLUOUT, & 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,10 +23,6 @@ INTERFACE ! IMPLICIT NONE ! -LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous - ! file opening -CHARACTER(LEN=*), INTENT(IN) :: HFMFILE ! Name of the output - ! FM-file CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for ! model n CHARACTER (LEN=*), DIMENSION(:), INTENT(IN) :: HLBCX ! x-direction LBC type @@ -108,7 +104,7 @@ END INTERFACE ! END MODULE MODI_PRESSURE ! ###################################################################### - SUBROUTINE PRESSURE(OCLOSE_OUT,HFMFILE,HLUOUT, & + SUBROUTINE PRESSURE(HLUOUT, & 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, & @@ -237,10 +233,6 @@ IMPLICIT NONE ! !* 0.1 declarations of arguments ! -LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous - ! file opening -CHARACTER(LEN=*), INTENT(IN) :: HFMFILE ! Name of the output - ! FM-file CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for ! model n CHARACTER (LEN=*), DIMENSION(:), INTENT(IN) :: HLBCX ! x-direction LBC type diff --git a/src/MNH/pressurez.f90 b/src/MNH/pressurez.f90 index bc0de8e2c..e714f89d1 100644 --- a/src/MNH/pressurez.f90 +++ b/src/MNH/pressurez.f90 @@ -247,6 +247,7 @@ USE MODI_BUDGET USE MODD_ARGSLIST_ll, ONLY : LIST_ll USE MODE_ll USE MODE_FM +USE MODE_MSG !JUANZ USE MODI_SUM_ll , ONLY : GMAXLOC_ll USE MODD_DYN_n , ONLY : LRES, XRES @@ -392,9 +393,7 @@ IF ( ( MIN(IIMAX_ll,IJMAX_ll) < NPROC ) .AND. ( HPRESOPT /= 'ZRESI' ) ) THEN WRITE(UNIT=ILUOUT,FMT=*) 'ERROR IN PRESSUREZ:: YOU WANT TO USE TO MANY PROCESSOR WITHOUT CPRESOPT="ZRESI" ' WRITE(UNIT=ILUOUT,FMT=*) 'MIN(IIMAX_ll,IJMAX_ll)=',MIN(IIMAX_ll,IJMAX_ll),' < NPROC =', NPROC WRITE(UNIT=ILUOUT,FMT=*) 'YOU HAVE TO SET CPRESOPT="ZRESI => JOB ABORTED ' - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','PRESSUREZ','') ENDIF CALL GET_PHYSICAL_ll(IIB,IJB,IIE,IJE) CALL GET_DIM_EXT_ll('B',IIU,IJU) diff --git a/src/MNH/prognos.f90 b/src/MNH/prognos.f90 index baa284470..8ed96911c 100644 --- a/src/MNH/prognos.f90 +++ b/src/MNH/prognos.f90 @@ -8,10 +8,8 @@ ! INTERFACE ! -SUBROUTINE PROGNOS(HLUOUT,PDT,PDZ,PLV,PCPH,PPRES,PRHOD,PRR,PTT,PRV,PRC,PS0,PCN,PCL) +SUBROUTINE PROGNOS(PDT,PDZ,PLV,PCPH,PPRES,PRHOD,PRR,PTT,PRV,PRC,PS0,PCN,PCL) ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for - ! model n REAL, INTENT(IN) :: PDT REAL, DIMENSION(:), INTENT(IN) :: PPRES REAL, DIMENSION(:), INTENT(IN) :: PDZ @@ -33,7 +31,7 @@ END INTERFACE END MODULE MODI_PROGNOS ! ! ################################################################################### - SUBROUTINE PROGNOS(HLUOUT,PDT,PDZ,PLV,PCPH,PPRES,PRHOD,PRR,PTT,PRV,PRC,PS0,PCN,PCL) + SUBROUTINE PROGNOS(PDT,PDZ,PLV,PCPH,PPRES,PRHOD,PRR,PTT,PRV,PRC,PS0,PCN,PCL) ! ################################################################################### ! !!**** * - compute pseudo-prognostic of supersaturation according to Thouron @@ -65,10 +63,13 @@ END MODULE MODI_PROGNOS !* 0. DECLARATIONS ! USE MODD_CST -USE MODD_RAIN_C2R2_KHKO_PARAM USE MODD_PARAM_C2R2 -USE MODI_GAMMA +USE MODD_RAIN_C2R2_KHKO_PARAM +! USE MODE_IO_ll +USE MODE_MSG +! +USE MODI_GAMMA ! IMPLICIT NONE ! @@ -76,8 +77,6 @@ IMPLICIT NONE ! ! ! -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Output-listing name for - ! model n REAL, INTENT(IN) :: PDT REAL, DIMENSION(:), INTENT(IN) :: PPRES REAL, DIMENSION(:), INTENT(IN) :: PDZ @@ -109,7 +108,8 @@ REAL, DIMENSION(SIZE(PRHOD,1)) :: ZFLAG_ACT !Flag for activation ! INTEGER :: IRESP ! Return code of FM routines INTEGER :: ILUOUT ! Logical unit of output listing - +CHARACTER(LEN=100) :: YMSG +! !minimum radius of cloud droplet AER_RAD=1.0E-6 ! @@ -195,10 +195,8 @@ ZRVSAT2(:)=(XMV / XMD)*ZZW1(:)/(PPRES(:)-ZZW1(:)) ZTT2_TEMP(:)=PPRES(:)*((((XMV / XMD)/ZRVSAT2(:))+1.0)**(-1D0)) !ZTT2<--T' de es(T') IF (MINVAL(ZTT2_TEMP).LT.0.0) THEN - PRINT*,'ZTT2_TEMP',MINVAL(ZTT2_TEMP),MINLOC(ZTT2_TEMP) - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + WRITE(YMSG,*) 'ZTT2_TEMP',MINVAL(ZTT2_TEMP),MINLOC(ZTT2_TEMP) + CALL PRINT_MSG(NVERB_FATAL,'GEN','PROGNOS',YMSG) ENDIF ! ZTT2_TEMP(:)=LOG(ZZW1(:)/610.8) diff --git a/src/MNH/read_dummy_gr_fieldn.f90 b/src/MNH/read_dummy_gr_fieldn.f90 index 2a65668c5..b10f715d3 100644 --- a/src/MNH/read_dummy_gr_fieldn.f90 +++ b/src/MNH/read_dummy_gr_fieldn.f90 @@ -14,16 +14,13 @@ MODULE MODI_READ_DUMMY_GR_FIELD_n ! INTERFACE ! - SUBROUTINE READ_DUMMY_GR_FIELD_n(TPINIFILE,HLUOUT, & - KIINF,KISUP,KJINF,KJSUP, & - OREAD_ALL ) + SUBROUTINE READ_DUMMY_GR_FIELD_n(TPINIFILE,KIINF,KISUP,KJINF,KJSUP,OREAD_ALL) ! USE MODD_IO_ll, ONLY : TFILEDATA ! !* 0.1 declarations of arguments ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Name for output-listing of nested models INTEGER, INTENT(IN) :: KIINF,KISUP ! Lower and upper Dimensions in x direction for working window INTEGER, INTENT(IN) :: KJINF,KJSUP ! Lower and upper dimensions in y direction for working window LOGICAL, INTENT(IN) :: OREAD_ALL ! Flag to read the entire 2D fields in the file. @@ -40,11 +37,9 @@ END MODULE MODI_READ_DUMMY_GR_FIELD_n ! ! ! -! ####################################################################### - SUBROUTINE READ_DUMMY_GR_FIELD_n(TPINIFILE,HLUOUT, & - KIINF,KISUP,KJINF,KJSUP, & - OREAD_ALL ) -! ####################################################################### +! ############################################################################# + SUBROUTINE READ_DUMMY_GR_FIELD_n(TPINIFILE,KIINF,KISUP,KJINF,KJSUP,OREAD_ALL) +! ############################################################################# ! !!**** *READ_DUMMY_GR_FIELD_n* - routine to read dummy surface fields !! @@ -83,21 +78,19 @@ END MODULE MODI_READ_DUMMY_GR_FIELD_n !* 0. DECLARATIONS ! USE MODD_DUMMY_GR_FIELD_n -USE MODE_FIELD, ONLY : TFIELDDATA,TYPEINT,TYPEREAL +USE MODE_FIELD, ONLY : TFIELDDATA,TYPEINT,TYPEREAL USE MODD_GRID_n -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_PARAMETERS +USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_PARAMETERS, ONLY : JPHEXT, NMNHNAMELGTMAX ! USE MODE_FMREAD -USE MODE_FM -USE MODE_IO_ll +USE MODE_MSG ! IMPLICIT NONE ! !* 0.1 declarations of arguments ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file -CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! Name for output-listing of nested models INTEGER, INTENT(IN) :: KIINF,KISUP ! Lower and upper Dimensions in x direction for working window INTEGER, INTENT(IN) :: KJINF,KJSUP ! Lower and upper dimensions in y direction for working window LOGICAL, INTENT(IN) :: OREAD_ALL ! Flag to read the entire 2D fields in the file. @@ -108,7 +101,6 @@ INTEGER :: IRESP ! File management CHARACTER (LEN=NMNHNAMELGTMAX) :: YRECFM ! variables CHARACTER (LEN=20 ) :: YSTRING20 ! string CHARACTER (LEN=3 ) :: YSTRING03 ! string -INTEGER :: ILUOUT ! Unit number for prints INTEGER :: JDUMMY ! Loop index for cover data ! INTEGER :: IMASDEV ! masdev used for creation of input FM file @@ -124,8 +116,6 @@ TYPE(TFIELDDATA) :: TZFIELD ! !------------------------------------------------------------------------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) -! !* 1.. TEST MASDEV VERSION OF INPUT FILE ! --------------------------------- ! @@ -185,9 +175,7 @@ IF (IMASDEV>=40) THEN ! IF (IRESP/=0) THEN !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_DUMMY_GR_FIELD_n','problem when reading DUMMY_GR_NBR') ENDIF ELSE NDUMMY_GR_NBR = 0 @@ -217,9 +205,7 @@ DO JDUMMY=1,NDUMMY_GR_NBR ! IF (IRESP/=0) THEN !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'IO','READ_DUMMY_GR_FIELD_n','problem when reading '//TRIM(TZFIELD%CMNHNAME)) ENDIF XDUMMY_GR_FIELDS(:,:,JDUMMY) = ZWORK(IIINF:IISUP,IJINF:IJSUP) ! diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90 index fdea69147..9f2ed142f 100644 --- a/src/MNH/read_exsegn.f90 +++ b/src/MNH/read_exsegn.f90 @@ -800,9 +800,7 @@ SELECT CASE ( CCLOUD ) WRITE(UNIT=ILUOUT,FMT=*) 'SET CSUBG_AUCV TO "CLFR" or "NONE" OR CCLOUD TO "ICE3"' ! !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF ! CASE ( 'ICE3' ) @@ -872,9 +870,7 @@ SELECT CASE ( CCLOUD ) &" SCHEME BUT YOU DIDNT FILL CORRECTLY NAM_PARAM_C2R2", & &" YOU HAVE TO FILL HPARAM_CCN and HINI_CCN ")') !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF IF (HCLOUD == 'NONE') THEN CGETCLOUD = 'SKIP' @@ -891,9 +887,7 @@ SELECT CASE ( CCLOUD ) &" SCHEME BUT YOU WERE USING THE ICE3 SCHEME PREVIOUSLY.",/, & &" AS THIS IS A LITTLE BIT STUPID IT IS NOT AUTHORIZED !!!")') !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF ELSE CGETCLOUD = 'READ' ! This is automatically done @@ -949,9 +943,7 @@ SELECT CASE ( CCLOUD ) WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT YET AVAILABLE.' WRITE(UNIT=ILUOUT,FMT=*) 'SET LSUBG_COND TO FALSE OR CCLOUD TO "REVE", "KESS"' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF ! IF ( CEFRADL /= 'C2R2') THEN @@ -1034,9 +1026,7 @@ SELECT CASE ( CCLOUD ) WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT YET AVAILABLE. SET LSUBG_COND ' WRITE(UNIT=ILUOUT,FMT=*) 'TO FALSE OR CCLOUD TO "REVE", "KESS" ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF ! IF ( XALPHAC /= 3.0 .OR. XNUC /= 2.0) THEN @@ -1057,27 +1047,21 @@ SELECT CASE ( CCLOUD ) WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT YET AVAILABLE. SET LUSECHEM ' WRITE(UNIT=ILUOUT,FMT=*) 'TO FALSE OR CCLOUD TO "ICE3" ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF IF (LDUST ) THEN WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE BOTH LIMA MICROPHYS. SCHEME AND DUSTS ' WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT YET AVAILABLE. SET LDUST ' WRITE(UNIT=ILUOUT,FMT=*) 'TO FALSE OR CCLOUD TO "ICE3" ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF IF (LSALT ) THEN WRITE(UNIT=ILUOUT,FMT=*) 'YOU WANT TO USE BOTH LIMA MICROPHYS. SCHEME AND SEA SALTS ' WRITE(UNIT=ILUOUT,FMT=*) 'THIS IS NOT YET AVAILABLE. SET LSALT ' WRITE(UNIT=ILUOUT,FMT=*) 'TO FALSE OR CCLOUD TO "ICE3" ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF ! END SELECT @@ -1114,9 +1098,7 @@ IF (LUSECHAQ.AND.(.NOT.LUSECHEM)) THEN WRITE(UNIT=ILUOUT,FMT=*) 'SET LUSECHEM TO TRUE IF YOU WANT REALLY USE CHEMISTRY' WRITE(UNIT=ILUOUT,FMT=*) 'OR SET LUSECHAQ TO FALSE IF YOU DO NOT WANT USE IT' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF IF (LUSECHAQ.AND.(.NOT.LUSERC).AND.CPROGRAM=='MESONH') THEN WRITE(UNIT=ILUOUT,FMT=9003) KMI @@ -1163,9 +1145,7 @@ IF (LUSECHIC.AND.(.NOT.LUSECHAQ)) THEN WRITE(UNIT=ILUOUT,FMT=*) 'SET LUSECHAQ TO TRUE IF YOU WANT REALLY USE CLOUD CHEMISTRY' WRITE(UNIT=ILUOUT,FMT=*) 'OR SET LUSECHIC TO FALSE IF YOU DO NOT WANT USE IT' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF IF ((LUSECHIC).AND.(LCH_RET_ICE)) THEN WRITE(UNIT=ILUOUT,FMT=9003) KMI @@ -1423,9 +1403,7 @@ IF(NMODEL_CLOUD==KMI .AND. CTURBLEN_CLOUD/='NONE') THEN & "LENGTH COMPUTATION: XCEI_MIN=",E9.3,", XCEI_MAX=",E9.3)')& XCEI_MIN,XCEI_MAX !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF END IF ! @@ -1644,9 +1622,7 @@ IF (LDUST) THEN WRITE(UNIT=ILUOUT,FMT='("ERROR: WET DEPOSITION OF DUST IS ONLY CODED FOR THE",/,& & "MICROPHYSICAL SCHEME as ICE3, ICE4, KESS, KHKO and C2R2")') !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF IF (ODEPOS_DST(KMI) ) THEN @@ -1665,9 +1641,7 @@ IF (LDUST) THEN WRITE(UNIT=ILUOUT,FMT=9003) KMI WRITE(UNIT=ILUOUT,FMT='("DUST MODES MUST BE BETWEEN 1 and 3 ")') !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF IF(.NOT.ALLOCATED(CDUSTNAMES)) THEN IMOMENTS = (NSV_DSTEND - NSV_DSTBEG +1 )/NMODE_DST @@ -1729,9 +1703,7 @@ IF (LSALT) THEN WRITE(UNIT=ILUOUT,FMT='("ERROR: WET DEPOSITION OF SEA SALT AEROSOLS IS ONLY CODED FOR THE",/,& & "MICROPHYSICAL SCHEME as ICE3, ICE4, KESS, KHKO and C2R2")') !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF IF (ODEPOS_SLT(KMI) ) THEN @@ -1749,9 +1721,7 @@ IF (LSALT) THEN WRITE(UNIT=ILUOUT,FMT=9003) KMI WRITE(UNIT=ILUOUT,FMT='("SALT MODES MUST BE BETWEEN 1 and 3 ")') !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF IF(.NOT.ALLOCATED(CSALTNAMES)) THEN IMOMENTS = (NSV_SLTEND - NSV_SLTBEG +1 )/NMODE_SLT @@ -1812,9 +1782,7 @@ IF (LORILAM) THEN WRITE(UNIT=ILUOUT,FMT='("ERROR: WET DEPOSITION OF ORILAM AEROSOLS IS ONLY CODED FOR THE",/,& & "MICROPHYSICAL SCHEME as ICE3, ICE4, KESS, KHKO and C2R2")') !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF IF (ODEPOS_AER(KMI) ) THEN @@ -1929,18 +1897,14 @@ IF( CRAD == 'ECMW' .AND. CPROGRAM=='MESONH' ) THEN WRITE(UNIT=ILUOUT,FMT=*) 'the SMSH parametrisation of LW optical properties for cloud ice' WRITE(UNIT=ILUOUT,FMT=*) '(COPILW) can not be used with RRTM radiation scheme' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') ENDIF IF(CLW == 'MORC' .AND. COPWLW == 'LILI') THEN WRITE(UNIT=ILUOUT,FMT=9003) KMI WRITE(UNIT=ILUOUT,FMT=*) 'the LILI parametrisation of LW optical properties for cloud water' WRITE(UNIT=ILUOUT,FMT=*) '(COPWLW) can not be used with MORC radiation scheme' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') ENDIF IF( .NOT. LSUBG_COND) THEN WRITE(UNIT=ILUOUT,FMT=9000) KMI @@ -1967,9 +1931,7 @@ IF( CRAD == 'ECMW' .AND. CPROGRAM=='MESONH' ) THEN WRITE(UNIT=ILUOUT,FMT=*) 'XDTRAD_CLONLY = XDTRAD and LCLEAR_SKY = FALSE' ! !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF ! IF( XDTRAD_CLONLY > XDTRAD ) THEN @@ -1978,9 +1940,7 @@ IF( CRAD == 'ECMW' .AND. CPROGRAM=='MESONH' ) THEN &" XDTRAD SHOULD BE LARGER THAN XDTRAD_CLONLY ")') ! !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF ! IF(( XDTRAD < XTSTEP ).OR. ( XDTRAD_CLONLY < XTSTEP )) THEN @@ -1989,9 +1949,7 @@ IF( CRAD == 'ECMW' .AND. CPROGRAM=='MESONH' ) THEN &" IS MORE FREQUENT THAN THE TIME STEP SO ADJUST XDTRAD OR XDTRAD_CLONLY ")') ! !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF END IF ! @@ -2017,9 +1975,7 @@ IF ( (CDCONV /= 'KAFR') .AND. & &"CONVECTIVE TRANSPORT OF TRACERS BUT IT CAN ONLY",& &"BE USED FOR THE KAIN FRITSCH SCHEME ")') !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF ! SELECT CASE ( CDCONV ) @@ -2090,9 +2046,7 @@ SELECT CASE ( CSCONV ) &"IT IS NOT POSSIBLE")') ! !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF END SELECT ! @@ -2124,18 +2078,14 @@ IF (KMI == 1) THEN WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE A 1D MODEL VERSION WITH NON-CYCL",& & "CLBCX OR CLBCY VALUES")') !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF IF (L2D.AND.(CLBCY(1)/='CYCL'.AND.CLBCY(2)/='CYCL')) THEN WRITE(UNIT=ILUOUT,FMT=9003) KMI WRITE(UNIT=ILUOUT,FMT='("YOU WANT TO USE A 2D MODEL VERSION WITH NON-CYCL",& & " CLBCY VALUES")') !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF ! IF ( (.NOT. LCARTESIAN) .AND. ( LCORIO) .AND. (.NOT. LGEOST_UV_FRC) ) THEN @@ -2170,9 +2120,7 @@ IF ( HEQNSYS /= CEQNSYS ) THEN WRITE(ILUOUT,FMT=*) 'FOR THE RUN YOU PLAN TO USE ',CEQNSYS WRITE(ILUOUT,FMT=*) 'THIS CAN LEAD TO A NUMERICAL EXPLOSION IN THE FIRST TIME STEPS' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF ! ! 3.9 Numerical schemes @@ -2183,9 +2131,7 @@ IF ( (CUVW_ADV_SCHEME == 'CEN4TH') .AND. & WRITE(UNIT=ILUOUT,FMT='("CEN4TH SCHEME HAS TO BE USED WITH ",& &"CTEMP_SCHEME = LEFR of RKC4 ONLY")') !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF ! IF ( (CUVW_ADV_SCHEME == 'WENO_K') .AND. LNUMDIFU ) THEN @@ -2242,9 +2188,7 @@ IF ( LFORCING ) THEN WRITE(ILUOUT,FMT=*) 'TOGETHER WITH A GEOSTROPHIC FORCING' WRITE(ILUOUT,FMT=*) 'CHECK SWITCHES: LRELAX_UV_FRC, LGEOST_UV_FRC' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP 1 + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF ! IF ( CRELAX_HEIGHT_TYPE.NE."FIXE" .AND. CRELAX_HEIGHT_TYPE.NE."THGR" ) THEN @@ -2252,9 +2196,7 @@ IF ( LFORCING ) THEN WRITE(ILUOUT,FMT=*) 'CRELAX_HEIGHT_TYPE MUST BE EITHER "FIXE" OR "THGR"' WRITE(ILUOUT,FMT=*) 'BUT IT IS "', CRELAX_HEIGHT_TYPE, '"' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP 1 + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF ! IF ( .NOT.LCORIO .AND. LGEOST_UV_FRC ) THEN @@ -2262,17 +2204,13 @@ IF ( LFORCING ) THEN WRITE(ILUOUT,FMT=*) 'YOU CANNOT HAVE A GEOSTROPHIC FORCING WITHOUT' WRITE(ILUOUT,FMT=*) 'ACTIVATING LCORIOLIS OPTION' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP 1 + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF ! IF ( LPGROUND_FRC ) THEN WRITE(ILUOUT,FMT=*) 'SURFACE PRESSURE FORCING NOT YET IMPLEMENTED' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP 1 + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF ! END IF @@ -2283,9 +2221,7 @@ IF (LTRANS .AND. .NOT. LFLAT ) THEN WRITE(ILUOUT,FMT=*) 'BUT NOT IN THE FLAT TERRAIN CASE:' WRITE(ILUOUT,FMT=*) 'THIS IS NOT ALLOWED ACTUALLY' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP 1 + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF ! !* 4.4 Check the coherence between the LUSERn and LHORELAX @@ -2530,9 +2466,7 @@ IF ((LHORELAX_UVWTH .OR. LHORELAX_SVPP .OR. & WRITE(ILUOUT,FMT=*) "NRIMY=",NRIMY WRITE(ILUOUT,FMT=*) "L2D=",L2D !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF ! IF ((LHORELAX_UVWTH .OR. LHORELAX_SVPP .OR. & @@ -2555,9 +2489,7 @@ IF ((LHORELAX_UVWTH .OR. LHORELAX_SVPP .OR. & WRITE(ILUOUT,FMT=*) 'FOR A NESTED MODEL BUT THE COUPLING IS ALREADY DONE' WRITE(ILUOUT,FMT=*) 'BY THE GRID NESTING. CHANGE LHORELAX TO FALSE' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF ! IF (KMI==1) THEN @@ -2760,9 +2692,7 @@ IF ( CPRESOPT == 'ZRESI' .AND. CSPLIT /= 'BSPLITTING' ) THEN WRITE(UNIT=ILUOUT,FMT='("Paralleliez in Z solver CPRESOPT=ZRESI need also CSPLIT=BSPLITTING ")') WRITE(ILUOUT,FMT=*) ' ERROR you have to set also CSPLIT=BSPLITTING ' !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF ! IF ( LEN_TRIM(HINIFILEPGD)>0 ) THEN @@ -2778,8 +2708,7 @@ IF ( LEN_TRIM(HINIFILEPGD)>0 ) THEN WRITE(ILUOUT,FMT=*) '###############' WRITE(ILUOUT,FMT=*) !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT + CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_EXSEG_n','') END IF ELSE CINIFILEPGD = '' diff --git a/src/MNH/trid.f90 b/src/MNH/trid.f90 index d64ef5c73..19578b710 100644 --- a/src/MNH/trid.f90 +++ b/src/MNH/trid.f90 @@ -177,6 +177,7 @@ USE MODD_PARAMETERS USE MODE_ll USE MODE_IO_ll USE MODE_FM +USE MODE_MSG ! !JUAN USE MODE_REPRO_SUM @@ -593,9 +594,7 @@ IF (KIFAXX(10) /= IIMAX_ll) THEN &' OPERATOR REQUIRES THAT KIMAX MUST BE FACTORIZABLE' ,/,& & ' AS A PRODUCT OF POWERS OF 2, 3 AND 5.')") !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','TRID','') END IF ! IF (HLBCX(1) /= 'CYCL') THEN @@ -627,9 +626,7 @@ IF (.NOT. L2D) THEN &' OPERATOR REQUIRES THAT KJMAX MUST BE FACTORIZABLE' ,/,& & ' AS A PRODUCT OF POWERS OF 2, 3 AND 5.')") !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','TRID','') END IF ! ! diff --git a/src/MNH/tridz.f90 b/src/MNH/tridz.f90 index 192770486..9815bef4b 100644 --- a/src/MNH/tridz.f90 +++ b/src/MNH/tridz.f90 @@ -185,6 +185,7 @@ 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 !JUAN @@ -714,9 +715,7 @@ IF (KIFAXX(10) /= IIMAX_ll) THEN &' OPERATOR REQUIRES THAT KIMAX MUST BE FACTORIZABLE' ,/,& & ' AS A PRODUCT OF POWERS OF 2, 3 AND 5.')") !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','TRIDZ','') END IF ! IF (HLBCX(1) /= 'CYCL') THEN @@ -748,9 +747,7 @@ IF (.NOT. L2D) THEN &' OPERATOR REQUIRES THAT KJMAX MUST BE FACTORIZABLE' ,/,& & ' AS A PRODUCT OF POWERS OF 2, 3 AND 5.')") !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','TRIDZ','') END IF ! ! diff --git a/src/MNH/write_seriesn.f90 b/src/MNH/write_seriesn.f90 index 8730b9316..0ae22bb9c 100644 --- a/src/MNH/write_seriesn.f90 +++ b/src/MNH/write_seriesn.f90 @@ -71,15 +71,17 @@ END MODULE MODI_WRITE_SERIES_n !* 0. Declaration ! -------------- ! +USE MODD_IO_ll, ONLY: NGEN_VERB,TFILEDATA +USE MODD_PARAMETERS USE MODD_SERIES USE MODD_SERIES_n -USE MODD_CONF, ONLY: NVERB -USE MODD_PARAMETERS -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODI_WRITE_DIACHRO -USE MODI_GATHER_ll -USE MODE_ll +! USE MODE_IO_ll +USE MODE_ll +USE MODE_MSG +! +USE MODI_GATHER_ll +USE MODI_WRITE_DIACHRO ! IMPLICIT NONE ! @@ -108,19 +110,18 @@ REAL, DIMENSION(:,:), ALLOCATABLE :: ZVAR2D,ZWORK2D REAL, DIMENSION(:,:,:), ALLOCATABLE :: ZVAR3D,ZVAR3D_ll REAL, DIMENSION(:,:,:,:,:,:), ALLOCATABLE :: ZSERIES3_ll INTEGER :: IKMAX -INTEGER :: ILUOUT ! Logical unit number for output-listing INTEGER :: IRESP ! Return code of FM-routines INTEGER :: INFO_ll ! Return code of FM-routines INTEGER :: ISER,INAV REAL :: ZSIZEHB LOGICAL :: GICP,GJCP,GKCP ! compression flags along the 3 directions +CHARACTER(LEN=100) :: YMSG !---------------------------------------------------------------------------- ! !* 1. INITIALIZATION ! -------------- ! -CALL FMLOOK_ll(HLUOUT,HLUOUT,ILUOUT,IRESP) -IF (NVERB>=5) WRITE(ILUOUT,*) 'WRITE_SERIESn: beginning' +IF (NGEN_VERB>=NVERB_DEBUG) CALL PRINT_MSG(NVERB_DEBUG,'GEN','WRITE_SERIES_n','beginning') ! CALL GET_INDICE_ll (IIB,IJB,IIE,IJE) IKMAX=SIZE(XSSERIES2,3) @@ -134,11 +135,9 @@ IIB_ll = 1 + JPHEXT IIE_ll = IIMAX_ll + JPHEXT ! IF (LDOSERIES .AND. (NSNBSTEPT.NE. NSCOUNTD)) THEN - WRITE(ILUOUT,*) 'WRITE_SERIESn: NSNBSTEPT .NE. NSCOUNTD ',NSNBSTEPT,NSCOUNTD !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + WRITE(YMSG,*) 'WRITE_SERIESn: NSNBSTEPT .NE. NSCOUNTD ',NSNBSTEPT,NSCOUNTD + CALL PRINT_MSG(NVERB_FATAL,'GEN','WRITE_SERIES_n',YMSG) END IF ! ISER=1 @@ -159,11 +158,8 @@ ELSE END IF CALL REDUCESUM_ll(ZVAR2D,IINFO_ll) IF (IINFO_ll /=0 ) THEN - WRITE(ILUOUT,FMT='("WRITE_SERIES: PB in REDUCESUM FOR SERIES1")') !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','WRITE_SERIES_n','problem in REDUCESUM for SERIES1') END IF ! ISIZEHB=(NIBOXH-NIBOXL+1)*(NJBOXH-NJBOXL+1) @@ -174,11 +170,9 @@ IF (LMASKLANDSEA) THEN ZSIZEHB=ISIZEHB CALL REDUCESUM_ll(ZSIZEHB,IINFO_ll) IF (IINFO_ll /=0 ) THEN - WRITE(ILUOUT,*) 'WRITE_SERIES: PB in REDUCESUM for SERIES1 SIZEHB-LAND',ISIZEHB + WRITE(YMSG,*) 'problem in REDUCESUM for SERIES1 SIZEHB-LAND',ISIZEHB !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','WRITE_SERIES_n',YMSG) END IF XSSERIES1(1,1,1,1:NSNBSTEPT,1,INAV+1:2*INAV)=ZVAR2D(:,INAV+1:2*INAV)/MAX(ZSIZEHB,1.) ! @@ -186,11 +180,9 @@ IF (LMASKLANDSEA) THEN ZSIZEHB=ISIZEHB CALL REDUCESUM_ll(ZSIZEHB,IINFO_ll) IF (IINFO_ll /=0 ) THEN - WRITE(ILUOUT,*) 'WRITE_SERIES: PB in REDUCESUM for SERIES1 SIZEHB-SEA',ISIZEHB + WRITE(YMSG,*) 'problem in REDUCESUM for SERIES1 SIZEHB-SEA',ISIZEHB !call abortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','WRITE_SERIES_n',YMSG) END IF XSSERIES1(1,1,1,1:NSNBSTEPT,1,2*INAV+1:NAVER1)=ZVAR2D(:,2*INAV+1:NAVER1)/MAX(ZSIZEHB,1.) END IF @@ -217,11 +209,9 @@ IF (LWMINMAX) THEN END IF CALL GATHERALL_FIELD_ll('XY',ZVAR3D,ZVAR3D_ll,IINFO_ll) IF (IINFO_ll /=0 ) THEN - WRITE(ILUOUT,FMT='("WRITE_SERIES:PB FOR SERIES1(max)-GATHER")') + WRITE(YMSG,*) 'problem for SERIES1(max)-GATHER',ISIZEHB !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','WRITE_SERIES_n',YMSG) END IF DO JT=1,NSNBSTEPT XSSERIES1(1,1,1,JT,1,ISB1)=MAXVAL(ZVAR3D_ll(:,:,JT)) @@ -237,11 +227,8 @@ IF (LWMINMAX) THEN END IF CALL GATHERALL_FIELD_ll('XY',ZVAR3D,ZVAR3D_ll,IINFO_ll) IF (IINFO_ll /=0 ) THEN - WRITE(ILUOUT,FMT='("WRITE_SERIES:PB FOR SERIES1(min)-GATHER")') !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','WRITE_SERIES_n','problem for SERIES1(min)-GATHER') END IF DO JT=1,NSNBSTEPT XSSERIES1(1,1,1,JT,1,ISB1)=MINVAL(ZVAR3D_ll(:,:,JT)) @@ -276,11 +263,8 @@ ELSE END IF CALL REDUCESUM_ll(ZVAR3D,IINFO_ll) IF (IINFO_ll /=0 ) THEN - WRITE(UNIT=ILUOUT,FMT='("WRITE_SERIES:PB FOR SERIES2-SUM")') !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','WRITE_SERIES_n','problem for SERIES2-SUM') END IF ! ISIZEHB=(NIBOXH-NIBOXL+1)*(NJBOXH-NJBOXL+1) @@ -291,22 +275,18 @@ IF (LMASKLANDSEA) THEN ZSIZEHB=ISIZEHB CALL REDUCESUM_ll(ZSIZEHB,IINFO_ll) IF (IINFO_ll /=0 ) THEN - WRITE(ILUOUT,*) 'WRITE_SERIES: PB in REDUCESUM for SERIES2 SIZEHB-LAND',ISIZEHB + WRITE(YMSG,*) 'problem in REDUCESUM for SERIES2 SIZEHB-LAND',ISIZEHB !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','WRITE_SERIES_n',YMSG) END IF XSSERIES2(1,1,1:IKMAX,1:NSNBSTEPT,1,INAV+1:2*INAV)=ZVAR3D(:,:,INAV+1:2*INAV)/MAX(ZSIZEHB,1.) ISIZEHB=COUNT(LINBOXS(:,:)) ZSIZEHB=ISIZEHB CALL REDUCESUM_ll(ZSIZEHB,IINFO_ll) IF (IINFO_ll /=0 ) THEN - WRITE(ILUOUT,*) 'WRITE_SERIES: PB in REDUCESUM for SERIES2 SIZEHB-SEA',ISIZEHB + WRITE(YMSG,*) 'problem in REDUCESUM for SERIES2 SIZEHB-SEA',ISIZEHB !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','WRITE_SERIES_n',YMSG) ENDIF XSSERIES2(1,1,1:IKMAX,1:NSNBSTEPT,1,2*INAV+1:NSTEMP_SERIE2)=ZVAR3D(:,:,2*INAV+1:NSTEMP_SERIE2)/MAX(ZSIZEHB,1.) END IF @@ -352,11 +332,9 @@ DO JS=1,NBJSLICE END IF CALL SUM_DIM1_ll(ZVAR3D,ZWORK2D,INFO_ll) IF (IINFO_ll /=0 ) THEN - WRITE(ILUOUT,FMT='("WRITE_SERIES:PB FOR SERIES3-JS,JJ:",I3,I3)') JS,JJ + WRITE(YMSG,FMT='("problem for SERIES3-JS,JJ:",I3,I3)') JS,JJ !callabortstop - CALL CLOSE_ll(HLUOUT,IOSTAT=IRESP) - CALL ABORT - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','WRITE_SERIES_n',YMSG) END IF DO JT=1,NSNBSTEPT DO JI=IIB_ll,IIE_ll @@ -383,6 +361,6 @@ DO JS=1,NBJSLICE END DO DEALLOCATE(ZVAR3D,ZWORK2D,ZSERIES3_ll) ! -IF (NVERB>=5) WRITE(ILUOUT,*) 'WRITE_SERIESn: end' +IF (NGEN_VERB>=NVERB_DEBUG) CALL PRINT_MSG(NVERB_DEBUG,'GEN','WRITE_SERIES_n','end') !---------------------------------------------------------------------------- END SUBROUTINE WRITE_SERIES_n -- GitLab