diff --git a/src/LIB/SURCOUCHE/src/mode_field.f90 b/src/LIB/SURCOUCHE/src/mode_field.f90 index a324cab465814746252b7320300d2e9d44f03f2b..63b1cfb73a6d8e9c67422c3aaa0912df07689d84 100644 --- a/src/LIB/SURCOUCHE/src/mode_field.f90 +++ b/src/LIB/SURCOUCHE/src/mode_field.f90 @@ -3243,16 +3243,18 @@ END SUBROUTINE ERR_INI_FIELD_LIST ! END SUBROUTINE INI_FIELD_LIST ! -SUBROUTINE FIND_FIELD_ID_FROM_MNHNAME(HMNHNAME,KID,KRESP) +SUBROUTINE FIND_FIELD_ID_FROM_MNHNAME(HMNHNAME,KID,KRESP,ONOWARNING) ! CHARACTER(LEN=*), INTENT(IN) :: HMNHNAME !Name of the field to find INTEGER, INTENT(OUT):: KID !Index of the field INTEGER, INTENT(OUT):: KRESP !Return-code +LOGICAL, OPTIONAL, INTENT(IN) :: ONOWARNING !If true, do not print warning ! INTEGER :: IDX,JI INTEGER :: ICOUNT INTEGER,SAVE :: IFIRSTGUESS=1 !Store first field to test CHARACTER(LEN=64) :: YMSG +LOGICAL :: GNOWARNING ! !PW: TODO: possible optimizations: ! * Classement alphanumerique + index vers 1er champ commencant par caractere @@ -3267,6 +3269,12 @@ KRESP = 0 ICOUNT = 0 IDX = IFIRSTGUESS ! +IF (PRESENT(ONOWARNING)) THEN + GNOWARNING = ONOWARNING +ELSE + GNOWARNING = .FALSE. +END IF +! DO ICOUNT = ICOUNT + 1 IF (TRIM(TFIELDLIST(IDX)%CMNHNAME)=='') THEN !Last entry @@ -3284,7 +3292,11 @@ END DO IF (KID==0) THEN !Field not found KRESP = -1 - CALL PRINT_MSG(NVERB_WARNING,'GEN','FIND_FIELD_ID_FROM_MNHNAME','field '//TRIM(HMNHNAME)//' not known') + IF (.NOT.GNOWARNING) THEN + CALL PRINT_MSG(NVERB_WARNING,'GEN','FIND_FIELD_ID_FROM_MNHNAME','field '//TRIM(HMNHNAME)//' not known') + ELSE + CALL PRINT_MSG(NVERB_DEBUG,'GEN','FIND_FIELD_ID_FROM_MNHNAME','field '//TRIM(HMNHNAME)//' not known (not unexpected)') + END IF ELSE IFIRSTGUESS = IDX+1 IF (IFIRSTGUESS>MAXFIELDS) IFIRSTGUESS = 1