diff --git a/src/LIB/SURCOUCHE/src/fmreadwrit.f90 b/src/LIB/SURCOUCHE/src/fmreadwrit.f90 index 3e2336426bb046115fa5a15b864e8928b90f0996..d811f475f88d6bfe3d0a22511f1763a44df1f35d 100644 --- a/src/LIB/SURCOUCHE/src/fmreadwrit.f90 +++ b/src/LIB/SURCOUCHE/src/fmreadwrit.f90 @@ -256,7 +256,9 @@ END SUBROUTINE TRANSFW MODULE MODE_READWRITE_LFI ! USE MODD_FM +USE MODD_IO_ll USE MODE_FIELD, ONLY : TFIELDDATA +USE MODE_MSG ! IMPLICIT NONE ! @@ -290,6 +292,8 @@ INTEGER :: ILENG INTEGER(KIND=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK ! +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X0','writing '//TRIM(TPFIELD%CMNHNAME)) +! ILENG = 1 ! CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP) @@ -322,6 +326,8 @@ INTEGER :: ILENG INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK ! +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X1','writing '//TRIM(TPFIELD%CMNHNAME)) +! ILENG = SIZE(PFIELD) ! CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP) @@ -365,6 +371,8 @@ ELSE YVARNAME = TRIM(TPFIELD%CMNHNAME) ENDIF ! +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X2','writing '//TRIM(YVARNAME)) +! CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP) ! IF (IRESP==0) THEN @@ -395,6 +403,8 @@ INTEGER :: ILENG INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK ! +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X3','writing '//TRIM(TPFIELD%CMNHNAME)) +! ILENG = SIZE(PFIELD) ! CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP) @@ -427,6 +437,8 @@ INTEGER :: ILENG INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK ! +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_N0','writing '//TRIM(TPFIELD%CMNHNAME)) +! ILENG = 1 ! CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP) @@ -459,6 +471,8 @@ INTEGER :: ILENG, JLOOP INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK ! +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_C0','writing '//TRIM(TPFIELD%CMNHNAME)) +! ILENG=LEN_TRIM(HFIELD) IF (ILENG==0) ILENG=1 ! @@ -524,7 +538,7 @@ CASE(1:JPXKRK) KWORK(2)=ICOMLEN KWORK(3:ICOMLEN+2)=ICOMMENT(1:ICOMLEN) CASE(JPXKRK+1:) - PRINT *,'ERROR: WRITE_PREPARE: comment is too long' + CALL PRINT_MSG(NVERB_WARNING,'IO','WRITE_PREPARE','comment is too long') KRESP = -9999 END SELECT ! diff --git a/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 b/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 index 65ca9d642d2814e5470bdb502816d2d4d420042d..a34f402a91a202552c0b5686d167ec9f54fcc1c6 100644 --- a/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 +++ b/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 @@ -350,6 +350,8 @@ CONTAINS ! INTEGER :: ID ! Index of the field ! + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_X0','writing '//TRIM(HNAME)) + ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,KRESP) ! IF(KRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),HFIPRI,KRESP,PFIELD) @@ -391,6 +393,7 @@ CONTAINS YRECFM = TPFIELD%CMNHNAME YDIR = TPFIELD%CDIR ! + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_X0','writing '//TRIM(YRECFM)) ! !* 1.1 THE NAME OF LFIFM ! @@ -538,6 +541,8 @@ CONTAINS ! INTEGER :: ID ! Index of the field ! + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_X1','writing '//TRIM(HNAME)) + ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,KRESP) ! IF(KRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),HFIPRI,KRESP,PFIELD) @@ -583,6 +588,8 @@ CONTAINS YRECFM = TPFIELD%CMNHNAME YDIR = TPFIELD%CDIR ! + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_X1','writing '//TRIM(YRECFM)) + ! !* 1.1 THE NAME OF LFIFM ! IRESP = 0 @@ -815,6 +822,8 @@ CONTAINS ! INTEGER :: ID ! Index of the field ! + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_X2','writing '//TRIM(HNAME)) + ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,KRESP) ! IF(KRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),HFIPRI,KRESP,PFIELD) @@ -872,6 +881,7 @@ CONTAINS YRECFM = TPFIELD%CMNHNAME YDIR = TPFIELD%CDIR ! + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_X2','writing '//TRIM(YRECFM)) ! !* 1.1 THE NAME OF LFIFM ! @@ -1367,6 +1377,8 @@ CONTAINS ! INTEGER :: ID ! Index of the field ! + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_X3','writing '//TRIM(HNAME)) + ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,KRESP) ! IF(KRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),HFIPRI,KRESP,PFIELD) @@ -1442,6 +1454,8 @@ CONTAINS YRECFM = TPFIELD%CMNHNAME YDIR = TPFIELD%CDIR ! + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_X3','writing '//TRIM(YRECFM)) + ! !* 1.1 THE NAME OF LFIFM ! CALL SECOND_MNH2(T11) @@ -2102,6 +2116,8 @@ CONTAINS ! INTEGER :: ID ! Index of the field ! + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_N0','writing '//TRIM(HNAME)) + ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,KRESP) ! IF(KRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),HFIPRI,KRESP,KFIELD) @@ -2138,6 +2154,8 @@ CONTAINS TYPE(TFILEDATA),POINTER :: TZFILE INTEGER,DIMENSION(1) :: IDIMS ! + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_N0','writing '//TRIM(TPFIELD%CMNHNAME)) + ! IDIMS(1) = 0 ! ! @@ -2464,6 +2482,8 @@ CONTAINS ! INTEGER :: ID ! Index of the field ! + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_L0','writing '//TRIM(HNAME)) + ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,KRESP) ! IF(KRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),HFIPRI,KRESP,OFIELD) @@ -2487,6 +2507,8 @@ CONTAINS !* 0.2 Declarations of local variables ! INTEGER :: IFIELD + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_L0','writing '//TRIM(TPFIELD%CMNHNAME)) + ! ! IF (OFIELD) THEN IFIELD = 1 @@ -2670,6 +2692,8 @@ CONTAINS ! INTEGER :: ID ! Index of the field ! + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_C0','writing '//TRIM(HNAME)) + ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,KRESP) ! IF(KRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),HFIPRI,KRESP,HFIELD) @@ -2699,6 +2723,8 @@ CONTAINS INTEGER :: IRESP INTEGER,DIMENSION(1) :: IDIMS ! + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_C0','writing '//TRIM(TPFIELD%CMNHNAME)) + ! IRESP = 0 ! !------------------------------------------------------------------ diff --git a/src/LIB/SURCOUCHE/src/mode_field.f90 b/src/LIB/SURCOUCHE/src/mode_field.f90 index b63043c960dfc3a69ab50cf57af325948fa85ebf..5a3dfb321f43f1f1fefa281720015208b7709ead 100644 --- a/src/LIB/SURCOUCHE/src/mode_field.f90 +++ b/src/LIB/SURCOUCHE/src/mode_field.f90 @@ -5,7 +5,9 @@ MODULE MODE_FIELD ! USE MODD_CONF, ONLY : CPROGRAM +USE MODD_IO_ll, ONLY : NVERB_DEBUG,NVERB_INFO,NVERB_WARNING,NVERB_ERROR,NVERB_FATAL USE MODD_PARAMETERS +USE MODE_MSG ! IMPLICIT NONE ! @@ -59,16 +61,17 @@ USE MODD_CONF, ONLY: LCARTESIAN,NMODEL INTEGER,INTENT(IN),OPTIONAL :: KMODEL ! INTEGER :: IDX, IMODEL +CHARACTER(LEN=40) :: YMSG ! !F90/95: TFIELDLIST(1) = TFIELDDATA('UT','x_wind','m s-1','XY','X_Y_Z_U component of wind (m/s)',2) !F2003: !TFIELDLIST(1) = TFIELDDATA(CMNHNAME='UT',CSTDNAME='x_wind',CUNITS='m s-1',CDIR='XY',& ! CCOMMENT='X_Y_Z_U component of wind (m/s)',NGRID=2) ! -PRINT *,'PW: INI_FIELD_LIST called' +CALL PRINT_MSG(NVERB_DEBUG,'GEN','INI_FIELD_LIST','called') print *,'PW: nmodel=',nmodel IF (LFIELDLIST_ISINIT) THEN - PRINT *,'ERROR: INI_FIELD_LIST already called' + CALL PRINT_MSG(NVERB_ERROR,'GEN','INI_FIELD_LIST','already called') RETURN END IF LFIELDLIST_ISINIT = .TRUE. @@ -655,7 +658,8 @@ TFIELDLIST(IDX)%NDIMS = 2 ALLOCATE(TFIELDLIST(IDX)%TFIELD_X2D(IMODEL)) IDX = IDX+1 ! -PRINT *,'INFO: INI_FIELD_LIST: number of used fields=',IDX-1,' out of ',MAXFIELDS +WRITE(YMSG,'("number of used fields=",I4," out of ",I4)') IDX-1,MAXFIELDS +CALL PRINT_MSG(NVERB_INFO,'GEN','INI_FIELD_LIST',TRIM(YMSG)) ! #if 0 ! @@ -675,8 +679,8 @@ IDX = IDX+1 ! CONTAINS SUBROUTINE ERR_INI_FIELD_LIST() - PRINT *,'FATAL: INI_FIELD_LIST: IDX>MAXFIELDS (',MAXFIELDS,')' - STOP + WRITE(YMSG,'( "IDX>MAXFIELDS (",I5,")" )') MAXFIELDS + CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_FIELD_LIST',TRIM(YMSG)) END SUBROUTINE ERR_INI_FIELD_LIST ! END SUBROUTINE INI_FIELD_LIST @@ -690,14 +694,14 @@ INTEGER, INTENT(OUT):: KRESP !Return-code INTEGER :: IDX,JI INTEGER :: ICOUNT INTEGER,SAVE :: IFIRSTGUESS=1 !Store first field to test +CHARACTER(LEN=64) :: YMSG ! !PW: TODO: possible optimizations: ! * Classement alphanumerique + index vers 1er champ commencant par caractere ! * Classement dans l'ordre des ecritures + stockage dernier hit + reboucler depuis le debut => DONE ! IF (.NOT.LFIELDLIST_ISINIT) THEN - PRINT *,'FATAL: FIND_FIELD_ID_FROM_MNHNAME: TFIELDLIST not yet initialized' - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','FIND_FIELD_ID_FROM_MNHNAME','TFIELDLIST not yet initialized') END IF ! KID = 0 @@ -722,10 +726,12 @@ END DO IF (KID==0) THEN !Field not found KRESP = -1 - PRINT *,'WARNING: FIND_FIELD_ID_FROM_MNHNAME: field ',TRIM(HMNHNAME),' not known' + CALL PRINT_MSG(NVERB_WARNING,'GEN','FIND_FIELD_ID_FROM_MNHNAME','field '//TRIM(HMNHNAME)//' not known') ELSE IFIRSTGUESS = IDX+1 IF (IFIRSTGUESS>MAXFIELDS) IFIRSTGUESS = 1 + WRITE(YMSG,'( "field ",A16," found after ",I4," attempt(s)" )') TRIM(HMNHNAME),ICOUNT + CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIND_FIELD_ID_FROM_MNHNAME',TRIM(YMSG)) END IF ! END SUBROUTINE FIND_FIELD_ID_FROM_MNHNAME @@ -742,8 +748,10 @@ INTEGER, INTENT(IN) :: KFROM, KTO ! !LOGICAL,SAVE :: GFIRST_CALL=.TRUE. INTEGER :: IID,IRESP +CHARACTER(LEN=64) :: YMSG ! -PRINT *,'PW: FIELDLIST_GOTO_MODEL: ',KFROM,'->',KTO +WRITE(YMSG,'( I4,"->",I4 )') KFROM,KTO +CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIELDLIST_GOTO_MODEL',TRIM(YMSG)) ! ! IF (GFIRST_CALL) THEN ! !This is necessary because the first time this subroutine is called @@ -755,7 +763,7 @@ PRINT *,'PW: FIELDLIST_GOTO_MODEL: ',KFROM,'->',KTO ! END IF ! IF (.NOT.LFIELDLIST_ISINIT) THEN - PRINT *,'WARNING: FIELDLIST_GOTO_MODEL: TFIELDLIST not yet initialized' + CALL PRINT_MSG(NVERB_WARNING,'GEN','FIELDLIST_GOTO_MODEL','TFIELDLIST not yet initialized') RETURN END IF ! @@ -763,21 +771,19 @@ END IF ! IF (KFROM == KTO) THEN IF (.NOT.ALLOCATED(XRHODREFZ)) THEN - PRINT *,'FATAL: INI_FIELD_LIST: XRHODREFZ not yet allocated' - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','FIELDLIST_GOTO_MODEL','XRHODREFZ not yet allocated') END IF CALL FIND_FIELD_ID_FROM_MNHNAME('RHOREFZ',IID,IRESP) TFIELDLIST(IID)%TFIELD_X1D(KFROM)%DATA=>XRHODREFZ ! IF (.NOT.ALLOCATED(XTHVREFZ)) THEN - PRINT *,'FATAL: INI_FIELD_LIST: XTHVREFZ not yet allocated' - STOP + CALL PRINT_MSG(NVERB_FATAL,'GEN','FIELDLIST_GOTO_MODEL','XTHVREFZ not yet allocated') END IF CALL FIND_FIELD_ID_FROM_MNHNAME('THVREFZ',IID,IRESP) TFIELDLIST(IID)%TFIELD_X1D(KFROM)%DATA=>XTHVREFZ ! IF (.NOT.ASSOCIATED(LSLEVE)) THEN - PRINT *,'FATAL: INI_FIELD_LIST: LSLEVE not yet associated' + CALL PRINT_MSG(NVERB_FATAL,'GEN','FIELDLIST_GOTO_MODEL',' LSLEVE not yet associated') STOP END IF CALL FIND_FIELD_ID_FROM_MNHNAME('SLEVE',IID,IRESP) diff --git a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 index 01e960ef53d2685cc8b8ca1dafefdfd6c53f2223..0b4418bfd25de9486e066ce2e9f21ecdf3c5c23d 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 @@ -11,7 +11,10 @@ ! MODULE MODE_IO_MANAGE_STRUCT ! - IMPLICIT NONE +USE MODD_IO_ll +USE MODE_MSG +! +IMPLICIT NONE ! CONTAINS ! @@ -24,7 +27,6 @@ USE MODD_CONF_n USE MODD_DYN, ONLY : XSEGLEN USE MODD_DYN_n, ONLY : DYN_MODEL USE MODD_FMOUT -USE MODD_IO_ll USE MODD_IO_SURF_MNH,ONLY : IO_SURF_MNH_MODEL USE MODD_NESTING, ONLY : CDAD_NAME,NDAD USE MODD_NSV, ONLY: NSV @@ -50,6 +52,8 @@ INTEGER, DIMENSION(:), ALLOCATABLE :: IBAK_STEP, IOUT_STEP CHARACTER (LEN=4) :: YDADNUMBER ! Character string for the DAD model file number ! ! +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_PREPARE_BAKOUT_STRUCT','called') +! DO IMI = 1, NMODEL IBAK_NUMB = 0 IOUT_NUMB = 0 @@ -170,10 +174,7 @@ DO IMI = 1, NMODEL !* Find dad output number ! !Security check (if it happens, this part of the code should be exported outside of the IMI loop) - IF (NDAD(IMI)>IMI) THEN - print *,'ERROR in SET_GRID' - STOP - END IF + IF (NDAD(IMI)>IMI) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_PREPARE_BAKOUT_STRUCT','NDAD(IMI)>IMI') IF (NDAD(IMI) == IMI .OR. IMI == 1) THEN OUT_MODEL(IMI)%TBACKUPN(:)%NOUTDAD = 0 DO IPOS = 1,OUT_MODEL(IMI)%NBAK_NUMB @@ -229,9 +230,7 @@ DO IMI = 1, NMODEL DO IPOS = 1,JPOUTVARMAX IF (COUT_VAR(IMI,IPOS)/='') IVAR = IVAR + 1 END DO - IF (IVAR==0) THEN - PRINT *,'ERROR: no fields chosen for output' - END IF + IF (IVAR==0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_PREPARE_BAKOUT_STRUCT','no fields chosen for output') ALLOCATE(OUT_MODEL(IMI)%TOUTPUTN(1)%NFIELDLIST(IVAR)) !Determine the list of the outputs to do (by field number) IVAR = 1 @@ -242,9 +241,8 @@ DO IMI = 1, NMODEL CALL FIND_FIELD_ID_FROM_MNHNAME(COUT_VAR(IMI,IPOS),IFIELD,IRESP) OUT_MODEL(IMI)%TOUTPUTN(1)%NFIELDLIST(IVAR) = IFIELD IF (IRESP/=0) THEN - PRINT *,'FATAL: unknown field for output: ',TRIM(COUT_VAR(IMI,IPOS)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_PREPARE_BAKOUT_STRUCT','unknown field for output: '//TRIM(COUT_VAR(IMI,IPOS))) !MNH is killed to prevent problems with wrong values in NFIELDLIST - STOP END IF ! IVAR=IVAR+1 @@ -389,11 +387,7 @@ SUBROUTINE FIND_NEXT_AVAIL_SLOT_FLOAT(PTIMES,kIDX) !Find next (starting from KIDX) non 'allocated' element DO WHILE ( PTIMES(KIDX) >= 0. ) KIDX = KIDX + 1 - IF (KIDX > JPOUTMAX) THEN - PRINT *,'Error in SET_GRID when treating backup/output list (JPOUTMAX too small)' - CALL ABORT - STOP - END IF + IF (KIDX > JPOUTMAX) CALL PRINT_MSG(NVERB_FATAL,'IO','FIND_NEXT_AVAIL_SLOT_FLOAT','JPOUTMAX too small') END DO END SUBROUTINE FIND_NEXT_AVAIL_SLOT_FLOAT ! @@ -407,11 +401,7 @@ SUBROUTINE FIND_NEXT_AVAIL_SLOT_INT(KSTEPS,KIDX) !Find next (starting from KIDX) non 'allocated' element DO WHILE ( KSTEPS(IDX) >= 0 ) KIDX = KIDX + 1 - IF (KIDX > JPOUTMAX) THEN - PRINT *,'Error in SET_GRID when treating backup/output list (JPOUTMAX too small)' - CALL ABORT - STOP - END IF + IF (KIDX > JPOUTMAX) CALL PRINT_MSG(NVERB_FATAL,'IO','FIND_NEXT_AVAIL_SLOT_INT','JPOUTMAX too small') END DO END SUBROUTINE FIND_NEXT_AVAIL_SLOT_INT ! @@ -427,7 +417,7 @@ SUBROUTINE FIND_REMOVE_DUPLICATES(KNUMB,KSTEPS) DO JOUT = 1,KNUMB DO JKLOOP = JOUT+1,KNUMB IF ( KSTEPS(JKLOOP) == KSTEPS(JOUT) .AND. KSTEPS(JKLOOP) > 0 ) THEN - print *,'WARNING: found duplicated backup/output step (removed extra one)' + CALL PRINT_MSG(NVERB_INFO,'IO','FIND_REMOVE_DUPLICATES','found duplicated backup/output step (removed extra one)') KSTEPS(JKLOOP) = NNEGUNDEF END IF END DO @@ -483,8 +473,7 @@ SUBROUTINE POPULATE_STRUCT(TPFILE_FIRST,TPFILE_LAST,KSTEPS,HFILETYPE,TPBAKOUTN) TPBAKOUTN(IPOS)%NSTEP = KSTEPS(JOUT) TPBAKOUTN(IPOS)%XTIME = (KSTEPS(JOUT)-1)*DYN_MODEL(IMI)%XTSTEP IF (IPOS>999) THEN - print *,'ERROR in SET_GRID: more than 999 backups/outputs' - STOP + CALL PRINT_MSG(NVERB_FATAL,'IO','POPULATE_STRUCT','more than 999 backups/outputs') END IF IF (.NOT.ASSOCIATED(TPFILE_FIRST)) THEN ALLOCATE(TPFILE_FIRST) @@ -506,15 +495,15 @@ SUBROUTINE POPULATE_STRUCT(TPFILE_FIRST,TPFILE_LAST,KSTEPS,HFILETYPE,TPBAKOUTN) !Set compression if asked TPBAKOUTN(IPOS)%TFILE%LNCCOMPRESS = LOUT_COMPRESS(IMI) IF ( NOUT_COMPRESS_LEVEL(IMI)<0 .OR. NOUT_COMPRESS_LEVEL(IMI)>9 ) THEN - PRINT *,'ERROR: NOUT_COMPRESS_LEVEL must be in the [0..9] range. Value forced to 4' + CALL PRINT_MSG(NVERB_WARNING,'IO','POPULATE_STRUCT',& + 'NOUT_COMPRESS_LEVEL must be in the [0..9] range. Value forced to 4') NOUT_COMPRESS_LEVEL(IMI) = 4 END IF TPBAKOUTN(IPOS)%TFILE%NNCCOMPRESS_LEVEL = NOUT_COMPRESS_LEVEL(IMI) ELSE IF (HFILETYPE=='BACKUP') THEN TPBAKOUTN(IPOS)%TFILE%CNAME=ADJUSTL(ADJUSTR(IO_SURF_MNH_MODEL(IMI)%COUTFILE)//'.'//YNUMBER) ELSE - PRINT *,'Error: unknown filetype (',TRIM(HFILETYPE),')' - CALL ABORT + CALL PRINT_MSG(NVERB_FATAL,'IO','POPULATE_STRUCT','unknown filetype ('//TRIM(HFILETYPE)//')') ENDIF TPBAKOUTN(IPOS)%TFILE%NLFITYPE=1 !1: to be transfered !PW: TODO: set NLFIVERB only when useful (only if LFI file...) @@ -530,16 +519,14 @@ SUBROUTINE POPULATE_STRUCT(TPFILE_FIRST,TPFILE_LAST,KSTEPS,HFILETYPE,TPBAKOUTN) TPBAKOUTN(IPOS)%TFILE%CFORMAT='LFI' IF (HFILETYPE=='BACKUP') TPBAKOUTN(IPOS)%TFILE%NLFINPRAR= 22+2*(4+NRR+NSV) ELSE - PRINT *,'Error: unknown backup/output fileformat' - CALL ABORT + CALL PRINT_MSG(NVERB_FATAL,'IO','POPULATE_STRUCT','unknown backup/output fileformat') ENDIF ! !Create file structures if Z-splitted files IF (NB_PROCIO_W>1) THEN ALLOCATE(TPBAKOUTN(IPOS)%TFILE_IOZ(NB_PROCIO_W)) IF (NB_PROCIO_W>999) THEN - print *,'ERROR in SET_GRID: more than 999 z-levels' - STOP + CALL PRINT_MSG(NVERB_FATAL,'IO','POPULATE_STRUCT','more than 999 z-levels') END IF DO JI = 1,NB_PROCIO_W ALLOCATE(TPFILE_LAST%TFILE_NEXT) @@ -574,8 +561,7 @@ SUBROUTINE POPULATE_STRUCT(TPFILE_FIRST,TPFILE_LAST,KSTEPS,HFILETYPE,TPBAKOUTN) TPBAKOUTN(IPOS)%TFILE_IOZ(JI)%TFILE%CFORMAT='LFI' !TPBAKOUTN(IPOS)%TFILE_IOZ(JI)%TFILE%NLFINPRAR= 0 ELSE - PRINT *,'Error: unknown backup/output fileformat' - CALL ABORT + CALL PRINT_MSG(NVERB_FATAL,'IO','POPULATE_STRUCT','unknown backup/output fileformat') ENDIF END DO END IF @@ -588,14 +574,14 @@ END SUBROUTINE IO_PREPARE_BAKOUT_STRUCT ! SUBROUTINE IO_FILE_FIND_BYNAME(HNAME,TPFILE,KRESP) ! -USE MODD_IO_ll, ONLY: TFILE_FIRST,TFILEDATA -! CHARACTER(LEN=*), INTENT(IN) :: HNAME ! Name of the file to find TYPE(TFILEDATA),POINTER,INTENT(OUT) :: TPFILE ! File structure to return INTEGER, INTENT(OUT) :: KRESP ! Return value ! TYPE(TFILEDATA),POINTER :: TZFILE ! File structure ! +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_FIND_BYNAME','looking for: '//TRIM(HNAME)) +! NULLIFY(TPFILE) KRESP = 0 ! @@ -611,8 +597,10 @@ DO END DO ! IF (.NOT.ASSOCIATED(TPFILE)) THEN - PRINT *,'ERROR: IO_FILE_FIND_BYNAME: file ',TRIM(HNAME),' not found in list' + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_FIND_BYNAME','file '//TRIM(HNAME)//' not found in list') KRESP = -1 !File not found +ELSE + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_FIND_BYNAME',TRIM(HNAME)//' was found') END IF ! END SUBROUTINE IO_FILE_FIND_BYNAME diff --git a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 b/src/LIB/SURCOUCHE/src/mode_netcdf.f90 index ef8ecc012fe78e69a89392fee328e1c867c5f9ea..d39cc750e9566f912c4d8e5c864114855e468c1a 100644 --- a/src/LIB/SURCOUCHE/src/mode_netcdf.f90 +++ b/src/LIB/SURCOUCHE/src/mode_netcdf.f90 @@ -11,8 +11,9 @@ MODULE MODE_NETCDF USE MODD_NETCDF USE NETCDF -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO_ll USE MODE_FIELD, ONLY : TFIELDDATA +USE MODE_MSG IMPLICIT NONE @@ -159,6 +160,8 @@ TYPE(FD_ll), POINTER :: TZFD ! IF (TRIM(TPFILE%CFORMAT)/='NETCDF4' .AND. TRIM(TPFILE%CFORMAT)/='LFICDF4') RETURN ! +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_HEADER_NC4','called') +! TZFD=>GETFD(TRIM(ADJUSTL(TPFILE%CNAME))//'.lfi') ! IF (ISP == TZFD%OWNER) THEN @@ -206,14 +209,16 @@ INTEGER(KIND=IDCDF_KIND),INTENT(IN) :: KVARID ! INTEGER(KIND=IDCDF_KIND) :: STATUS ! +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_ATTR_NC4','called') +! IF(LEN_TRIM(TPFIELD%CSTDNAME)==0 .AND. LEN_TRIM(TPFIELD%CLONGNAME)==0) THEN - PRINT *,'ERROR: IO_WRITE_ATTR_NC4: at least long_name or standard_name must be provided & - &to respect CF-convention for variable ',TRIM(TPFIELD%CMNHNAME) + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_ATTR_NC4','at least long_name or standard_name must be provided & + &to respect CF-convention for variable '//TRIM(TPFIELD%CMNHNAME)) ENDIF ! ! GRID attribute definition IF(TPFIELD%NGRID<0) THEN -! PRINT *,'WARNING: IO_WRITE_ATTR_NC4: TPFIELD%NGRID not set for variable ',TRIM(TPFIELD%CMNHNAME) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_ATTR_NC4','TPFIELD%NGRID not set for variable '//TRIM(TPFIELD%CMNHNAME)) ELSE STATUS = NF90_PUT_ATT(KNCID, KVARID, 'GRID', TPFIELD%NGRID) IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_ATTR_NC4 [NF90_PUT_ATT]') @@ -221,7 +226,7 @@ ENDIF ! ! COMMENT attribute definition IF(LEN_TRIM(TPFIELD%CCOMMENT)==0) THEN -! PRINT *,'WARNING: IO_WRITE_ATTR_NC4: TPFIELD%CCOMMENT not set for variable ',TRIM(TPFIELD%CMNHNAME) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_ATTR_NC4','TPFIELD%CCOMMENT not set for variable '//TRIM(TPFIELD%CMNHNAME)) ELSE STATUS = NF90_PUT_ATT(KNCID, KVARID,'COMMENT', TRIM(TPFIELD%CCOMMENT)) IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_ATTR_NC4 [NF90_PUT_ATT]') @@ -229,7 +234,7 @@ ENDIF ! ! Standard_name attribute definition (CF convention) IF(LEN_TRIM(TPFIELD%CSTDNAME)==0) THEN -! PRINT *,'WARNING: IO_WRITE_ATTR_NC4: TPFIELD%CSTDNAME not set for variable ',TRIM(TPFIELD%CMNHNAME) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_ATTR_NC4','TPFIELD%CSTDNAME not set for variable '//TRIM(TPFIELD%CMNHNAME)) ELSE STATUS = NF90_PUT_ATT(KNCID, KVARID,'standard_name', TRIM(TPFIELD%CSTDNAME)) IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_ATTR_NC4 [NF90_PUT_ATT]') @@ -237,7 +242,7 @@ ENDIF ! ! Long_name attribute definition (CF convention) IF(LEN_TRIM(TPFIELD%CLONGNAME)==0) THEN -! PRINT *,'WARNING: IO_WRITE_ATTR_NC4: TPFIELD%CLONGNAME not set for variable ',TRIM(TPFIELD%CMNHNAME) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_ATTR_NC4','TPFIELD%CLONGNAME not set for variable '//TRIM(TPFIELD%CMNHNAME)) ELSE STATUS = NF90_PUT_ATT(KNCID, KVARID,'long_name', TRIM(TPFIELD%CLONGNAME)) IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_ATTR_NC4 [NF90_PUT_ATT]') @@ -245,7 +250,7 @@ ENDIF ! ! Canonical units attribute definition (CF convention) IF(LEN_TRIM(TPFIELD%CUNITS)==0) THEN -! PRINT *,'WARNING: IO_WRITE_ATTR_NC4: TPFIELD%CUNITS not set for variable ',TRIM(TPFIELD%CMNHNAME) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_ATTR_NC4','TPFIELD%CUNITS not set for variable '//TRIM(TPFIELD%CMNHNAME)) ELSE STATUS = NF90_PUT_ATT(KNCID, KVARID,'units', TRIM(TPFIELD%CUNITS)) IF (STATUS /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_ATTR_NC4 [NF90_PUT_ATT]') @@ -469,6 +474,8 @@ CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME INTEGER(KIND=IDCDF_KIND) :: IVARID INTEGER :: IRESP ! +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X0','writing '//TRIM(TPFIELD%CMNHNAME)) +! IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID @@ -485,7 +492,7 @@ IF (STATUS /= NF90_NOERR) THEN IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_FIELD_NC4_X0[NF90_DEF_VAR]') CALL IO_WRITE_FIELD_ATTR_NC4(TPFIELD,INCID,IVARID) ELSE - PRINT *,'IO_WRITE_FIELD_NC4_X0: ', TRIM(YVARNAME), ' already defined !' + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X0',TRIM(YVARNAME)//' already defined') END IF ! Write the data @@ -558,6 +565,8 @@ INTEGER(KIND=IDCDF_KIND) :: IVARID INTEGER(KIND=IDCDF_KIND), DIMENSION(SIZE(SHAPE(PFIELD))) :: IVDIMS INTEGER :: IRESP ! +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X1','writing '//TRIM(TPFIELD%CMNHNAME)) +! IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID @@ -570,7 +579,7 @@ YVARNAME = str_replace(YVARNAME, '.', '--') STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(PFIELD)==0) THEN - PRINT *,'WARNING: IO_WRITE_FIELD_NC4_X1: ignoring variable with a zero size (',TRIM(YVARNAME),')' + CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_NC4_X1','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') RETURN END IF @@ -591,7 +600,7 @@ IF (STATUS /= NF90_NOERR) THEN END IF CALL IO_WRITE_FIELD_ATTR_NC4(TPFIELD,INCID,IVARID) ELSE - PRINT *,'IO_WRITE_FIELD_NC4_X1: ', TRIM(YVARNAME), ' already defined !' + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X1',TRIM(YVARNAME)//' already defined') END IF ! Write the data @@ -674,24 +683,27 @@ IRESP = 0 IF (PRESENT(KVERTLEVEL)) THEN WRITE(YSUFFIX,'(I4.4)') KVERTLEVEL IF (.NOT.PRESENT(KZFILE)) THEN - PRINT *,'FATAL: IO_WRITE_FIELD_NC4_X2: KZFILE argument not provided' - STOP + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_NC4_X2','KZFILE argument not provided') + RETURN END IF WRITE(YNUMBER,'(I3.3)') KZFILE YVARNAME = TRIM(TPFIELD%CMNHNAME)//YSUFFIX !PW: TODO: try to not do a find (for better perf) CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME)//'.Z'//YNUMBER,TZFILE,IRESP) IF (IRESP/=0) THEN - PRINT *,'FATAL: IO_WRITE_FIELD_NC4_X2: file ',TRIM(TRIM(TPFILE%CNAME)//'.Z'//YNUMBER),' not found in list' - STOP + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_NC4_X2','file '//TRIM(TRIM(TPFILE%CNAME)//'.Z'//YNUMBER)//' not found in list') + RETURN END IF ELSE YVARNAME = TRIM(TPFIELD%CMNHNAME) TZFILE => TPFILE ENDIF - +! +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X2','writing '//TRIM(YVARNAME)) +! ! Get the Netcdf file ID INCID = TZFILE%NNCID +print *,'PW:IO_WRITE_FIELD_NC4_X2: INCID=',INCID, trim(TZFILE%CNAME) ! NetCDF var names can't contain '%' nor '.' YVARNAME = str_replace(YVARNAME, '%', '__') YVARNAME = str_replace(YVARNAME, '.', '--') @@ -700,7 +712,7 @@ YVARNAME = str_replace(YVARNAME, '.', '--') STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(PFIELD)==0) THEN - PRINT *,'WARNING: IO_WRITE_FIELD_NC4_X2: ignoring variable with a zero size (',TRIM(YVARNAME),')' + CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_NC4_X2','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') RETURN END IF @@ -721,7 +733,7 @@ IF (STATUS /= NF90_NOERR) THEN END IF CALL IO_WRITE_FIELD_ATTR_NC4(TPFIELD,INCID,IVARID) ELSE - PRINT *,'IO_WRITE_FIELD_NC4_X2: ', TRIM(YVARNAME), ' already defined !' + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X2',TRIM(YVARNAME)//' already defined') END IF ! Write the data @@ -793,6 +805,9 @@ INTEGER(KIND=IDCDF_KIND) :: IVARID INTEGER(KIND=IDCDF_KIND), DIMENSION(SIZE(SHAPE(PFIELD))) :: IVDIMS INTEGER :: IRESP ! +! +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X3','writing '//TRIM(TPFIELD%CMNHNAME)) +! IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID @@ -805,7 +820,7 @@ YVARNAME = str_replace(YVARNAME, '.', '--') STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(PFIELD)==0) THEN - PRINT *,'WARNING: IO_WRITE_FIELD_NC4_X3: ignoring variable with a zero size (',TRIM(YVARNAME),')' + CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_NC4_X3','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') RETURN END IF @@ -826,7 +841,7 @@ IF (STATUS /= NF90_NOERR) THEN IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_FIELD_NC4_X3[NF90_DEF_VAR]') CALL IO_WRITE_FIELD_ATTR_NC4(TPFIELD,INCID,IVARID) ELSE - PRINT *,'IO_WRITE_FIELD_NC4_X3: ', TRIM(YVARNAME), ' already defined !' + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X3',TRIM(YVARNAME)//' already defined') END IF ! Write the data @@ -1054,6 +1069,8 @@ CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)) :: YVARNAME INTEGER(KIND=IDCDF_KIND) :: IVARID INTEGER :: IRESP ! +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_N0','writing '//TRIM(TPFIELD%CMNHNAME)) +! IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID @@ -1074,7 +1091,7 @@ IF (STATUS /= NF90_NOERR) THEN IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_FIELD_NC4_N0[NF90_DEF_VAR]') CALL IO_WRITE_FIELD_ATTR_NC4(TPFIELD,INCID,IVARID) ELSE - PRINT *,'IO_WRITE_FIELD_NC4_N0: ', TRIM(YVARNAME), ' already defined !' + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_N0',TRIM(YVARNAME)//' already defined') END IF ! Write the data @@ -1268,12 +1285,13 @@ INTEGER(KIND=IDCDF_KIND), DIMENSION(1) :: IVDIMS INTEGER :: IRESP, ILEN CHARACTER(LEN=:),ALLOCATABLE :: YFIELD ! +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_C0','writing '//TRIM(TPFIELD%CMNHNAME)) +! IRESP = 0 !Store the character string in a string of a size multiple of IMULT !This is done to limit the number of dimensions in the netCDF file ILEN = ((LEN_TRIM(HFIELD)+IMULT-1)/IMULT)*IMULT -IF (MOD(ILEN,IMULT)/=0) PRINT *,'ERROR: IO_WRITE_FIELD_NC4_C0: ILEN is not a multiple of IMULT' !If the string is empty, create it anyway with a non-zero size (to prevent problems later) IF (ILEN==0) ILEN = IMULT @@ -1294,7 +1312,7 @@ IF (STATUS /= NF90_NOERR) THEN IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__,'IO_WRITE_FIELD_NC4_C0[NF90_DEF_VAR]') CALL IO_WRITE_FIELD_ATTR_NC4(TPFIELD,INCID,IVARID) ELSE - PRINT *,'IO_WRITE_FIELD_NC4_C0: ', TRIM(YVARNAME), ' already defined !' + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_C0',TRIM(YVARNAME)//' already defined') END IF ALLOCATE(CHARACTER(LEN=ILEN)::YFIELD) diff --git a/src/MNH/goto_model_wrapper.f90 b/src/MNH/goto_model_wrapper.f90 index 0199b28e5d4f837712c951f278bbec8f9556bac0..1d861c630265f76711e56ec16accf36377b5797e 100644 --- a/src/MNH/goto_model_wrapper.f90 +++ b/src/MNH/goto_model_wrapper.f90 @@ -118,6 +118,11 @@ USE MODE_FIELD IMPLICIT NONE INTEGER,INTENT(IN) :: KFROM, KTO ! +CHARACTER(LEN=64) :: YMSG +! +WRITE(YMSG,'( I4,"->",I4 )') KFROM,KTO +CALL PRINT_MSG(NVERB_DEBUG,'GEN','GOTO_MODEL_WRAPPER',TRIM(YMSG)) +! ! All calls to specific modd_*n goto_model routines ! CALL ADV_GOTO_MODEL(KFROM, KTO) diff --git a/src/MNH/modd_conf.f90 b/src/MNH/modd_conf.f90 index 24c36a3c17fd89bd25768de92c28e65aa850c77a..a7a69e6b7df6c0e1672e4dab15f7a4484032d9eb 100644 --- a/src/MNH/modd_conf.f90 +++ b/src/MNH/modd_conf.f90 @@ -105,7 +105,7 @@ CHARACTER(LEN=10),SAVE :: CBIBUSER! CBIBUSER is the name of the user binary libr ! CHARACTER(LEN=6),SAVE :: CPROGRAM ! CPROGRAM is the program currently running: ! ! 'PGD ','ADVPGD','NESPGD','REAL ','IDEAL ' -! ! 'MESONH','SPAWN ','DIAG ' +! ! 'MESONH','SPAWN ','DIAG ','SPEC ' ! INTEGER,SAVE :: NHALO ! Size of the halo for parallel distribution ! diff --git a/src/MNH/prep_nest_pgd.f90 b/src/MNH/prep_nest_pgd.f90 index 878dc061cc3c48cd0ef1a337ab67ecd9aa6683f6..b82bc4d0b52898b6d6b354e3f398674f65d87333 100644 --- a/src/MNH/prep_nest_pgd.f90 +++ b/src/MNH/prep_nest_pgd.f90 @@ -186,7 +186,7 @@ CALL INI_CST ! !------------------------------------------------------------------------------- ! -!* 2. OPENNING OF THE FILES +!* 2. OPENING OF THE FILES ! --------------------- ! NVERB=1