diff --git a/src/MNH/prep_surf_mnh.f90 b/src/MNH/prep_surf_mnh.f90 index 41b2517e82ab245e22b95ee51f74844aac4402aa..452a44938e026350027e73988bfdfcfbe1df07a8 100644 --- a/src/MNH/prep_surf_mnh.f90 +++ b/src/MNH/prep_surf_mnh.f90 @@ -12,19 +12,20 @@ MODULE MODI_PREP_SURF_MNH ! ############################# INTERFACE - SUBROUTINE PREP_SURF_MNH(HATMFILE,HATMFILETYPE) + SUBROUTINE PREP_SURF_MNH(HATMFILE,HATMFILETYPE,OINIFILEOPEN) ! -CHARACTER(LEN=28), INTENT(IN) :: HATMFILE ! name of the Atmospheric file -CHARACTER(LEN=6), INTENT(IN) :: HATMFILETYPE! type of the Atmospheric file +CHARACTER(LEN=28),INTENT(IN) :: HATMFILE ! name of the Atmospheric file +CHARACTER(LEN=6), INTENT(IN) :: HATMFILETYPE! type of the Atmospheric file +LOGICAL, OPTIONAL,INTENT(IN) :: OINIFILEOPEN! Open the INI file here (or not) ! END SUBROUTINE PREP_SURF_MNH ! END INTERFACE END MODULE MODI_PREP_SURF_MNH ! -! ####################################################### - SUBROUTINE PREP_SURF_MNH(HATMFILE,HATMFILETYPE) -! ####################################################### +! ############################################################ + SUBROUTINE PREP_SURF_MNH(HATMFILE,HATMFILETYPE,OINIFILEOPEN) +! ############################################################ ! !!**** *PREP_SURF_MNH* - calls surface field preparation !! @@ -56,6 +57,7 @@ USE MODD_LUNIT_n, ONLY : CINIFILE, TINIFILE USE MODD_MNH_SURFEX_n USE MODD_TIME_n, ONLY : TDTCUR ! +USE MODE_FM, ONLY : IO_FILE_OPEN_ll USE MODE_PREP_CTL, ONLY : PREP_CTL ! USE MODI_INIT_PGD_SURF_ATM @@ -68,8 +70,9 @@ IMPLICIT NONE !* 0.1 Declarations of arguments ! ------------------------- ! -CHARACTER(LEN=28), INTENT(IN) :: HATMFILE ! name of the Atmospheric file -CHARACTER(LEN=6), INTENT(IN) :: HATMFILETYPE! type of the Atmospheric file +CHARACTER(LEN=28),INTENT(IN) :: HATMFILE ! name of the Atmospheric file +CHARACTER(LEN=6), INTENT(IN) :: HATMFILETYPE! type of the Atmospheric file +LOGICAL, OPTIONAL,INTENT(IN) :: OINIFILEOPEN! Open the INI file here (or not) ! !* 0.2 Declarations of local variables ! ------------------------------- @@ -99,6 +102,10 @@ CALL INIT_PGD_SURF_ATM(YSURF_CUR,'MESONH','PRE',HATMFILE,YATMFILETYPE, & TDTCUR%TDATE%YEAR, TDTCUR%TDATE%MONTH, & TDTCUR%TDATE%DAY, TDTCUR%TIME ) CALL PREP_SURF_ATM(YSURF_CUR,'MESONH',HATMFILE,YATMFILETYPE,HATMFILE,YATMFILETYPE,YLCTL) +IF (PRESENT(OINIFILEOPEN)) THEN + !This is done here because model dimensions were not known before this call (for PREP_SURFEX) + IF (OINIFILEOPEN) CALL IO_FILE_OPEN_ll(TINIFILE) +END IF CALL WRITE_SURF_ATM_n(YSURF_CUR,'MESONH','PRE',.FALSE.) CALL WRITE_DIAG_SURF_ATM_n(YSURF_CUR,'MESONH','PRE') ! diff --git a/src/MNH/prep_surfex.f90 b/src/MNH/prep_surfex.f90 index 9e98c8a6630b37acd91e2f26f894bb29bcf41fca..f588034fb55c86b61cc37ceba81fd85ff247bc8f 100644 --- a/src/MNH/prep_surfex.f90 +++ b/src/MNH/prep_surfex.f90 @@ -57,6 +57,7 @@ USE MODE_MODELN_HANDLER USE MODE_SPLITTINGZ_ll ! USE MODI_OPEN_PRC_FILES +USE MODI_PREP_SURF_MNH USE MODI_READ_ALL_NAMELISTS USE MODI_VERSION ! @@ -180,11 +181,10 @@ CALL READ_ALL_NAMELISTS(YSURF_CUR,'MESONH','PRE',.FALSE.) CALL GOTO_SURFEX(1) ! CALL IO_FILE_ADD2LIST(TINIFILE,TRIM(CINIFILE),'PREPSURFEX','WRITE',KLFITYPE=1,KLFIVERB=1) -! -CALL IO_FILE_OPEN_ll(TINIFILE) +!The open is done later in PREP_SURF_MNH when domain dimensions are known ! TFILE_SURFEX => TINIFILE -CALL PREP_SURF_MNH(YATMFILE,YATMFILETYPE) +CALL PREP_SURF_MNH(YATMFILE,YATMFILETYPE,OINIFILEOPEN=.TRUE.) NULLIFY(TFILE_SURFEX) ! !------------------------------------------------------------------------------- diff --git a/src/MNH/write_hgrid.f90 b/src/MNH/write_hgrid.f90 index 27ae4046daca74c2f44f92d0312ccf36c3aba09f..86fbeaea8de6206fa63e51e97db82749aab8c31f 100644 --- a/src/MNH/write_hgrid.f90 +++ b/src/MNH/write_hgrid.f90 @@ -87,7 +87,7 @@ TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File to write !* 1. TEST ON MODEL INDEX ! ------------------- ! KMI may be 0 -IF (KMI<0 .OR. KMI>JPMODELMAX) CALL PRINT_MSG(NVERB_FATAL,'GEN','WRITE_HGRID_n','KMI<0 .OR. KMI>JPMODELMAX') +IF (KMI<0 .OR. KMI>JPMODELMAX) CALL PRINT_MSG(NVERB_FATAL,'GEN','WRITE_HGRID','KMI<0 .OR. KMI>JPMODELMAX') IF (KMI/=0) THEN CALL WRITE_HGRID_n(TPFILE) RETURN