Skip to content
Snippets Groups Projects
Commit 466a1832 authored by WAUTELET Philippe's avatar WAUTELET Philippe
Browse files

Philippe 05/04/2018: IO: PREP_SURFEX: open output file later when domain dimensions are known

parent e192c8dd
No related branches found
No related tags found
No related merge requests found
...@@ -12,19 +12,20 @@ ...@@ -12,19 +12,20 @@
MODULE MODI_PREP_SURF_MNH MODULE MODI_PREP_SURF_MNH
! ############################# ! #############################
INTERFACE 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=28),INTENT(IN) :: HATMFILE ! name of the Atmospheric file
CHARACTER(LEN=6), INTENT(IN) :: HATMFILETYPE! type 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 SUBROUTINE PREP_SURF_MNH
! !
END INTERFACE END INTERFACE
END MODULE MODI_PREP_SURF_MNH 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 !!**** *PREP_SURF_MNH* - calls surface field preparation
!! !!
...@@ -56,6 +57,7 @@ USE MODD_LUNIT_n, ONLY : CINIFILE, TINIFILE ...@@ -56,6 +57,7 @@ USE MODD_LUNIT_n, ONLY : CINIFILE, TINIFILE
USE MODD_MNH_SURFEX_n USE MODD_MNH_SURFEX_n
USE MODD_TIME_n, ONLY : TDTCUR USE MODD_TIME_n, ONLY : TDTCUR
! !
USE MODE_FM, ONLY : IO_FILE_OPEN_ll
USE MODE_PREP_CTL, ONLY : PREP_CTL USE MODE_PREP_CTL, ONLY : PREP_CTL
! !
USE MODI_INIT_PGD_SURF_ATM USE MODI_INIT_PGD_SURF_ATM
...@@ -68,8 +70,9 @@ IMPLICIT NONE ...@@ -68,8 +70,9 @@ IMPLICIT NONE
!* 0.1 Declarations of arguments !* 0.1 Declarations of arguments
! ------------------------- ! -------------------------
! !
CHARACTER(LEN=28), INTENT(IN) :: HATMFILE ! name 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 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 !* 0.2 Declarations of local variables
! ------------------------------- ! -------------------------------
...@@ -99,6 +102,10 @@ CALL INIT_PGD_SURF_ATM(YSURF_CUR,'MESONH','PRE',HATMFILE,YATMFILETYPE, & ...@@ -99,6 +102,10 @@ CALL INIT_PGD_SURF_ATM(YSURF_CUR,'MESONH','PRE',HATMFILE,YATMFILETYPE, &
TDTCUR%TDATE%YEAR, TDTCUR%TDATE%MONTH, & TDTCUR%TDATE%YEAR, TDTCUR%TDATE%MONTH, &
TDTCUR%TDATE%DAY, TDTCUR%TIME ) TDTCUR%TDATE%DAY, TDTCUR%TIME )
CALL PREP_SURF_ATM(YSURF_CUR,'MESONH',HATMFILE,YATMFILETYPE,HATMFILE,YATMFILETYPE,YLCTL) 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_SURF_ATM_n(YSURF_CUR,'MESONH','PRE',.FALSE.)
CALL WRITE_DIAG_SURF_ATM_n(YSURF_CUR,'MESONH','PRE') CALL WRITE_DIAG_SURF_ATM_n(YSURF_CUR,'MESONH','PRE')
! !
......
...@@ -57,6 +57,7 @@ USE MODE_MODELN_HANDLER ...@@ -57,6 +57,7 @@ USE MODE_MODELN_HANDLER
USE MODE_SPLITTINGZ_ll USE MODE_SPLITTINGZ_ll
! !
USE MODI_OPEN_PRC_FILES USE MODI_OPEN_PRC_FILES
USE MODI_PREP_SURF_MNH
USE MODI_READ_ALL_NAMELISTS USE MODI_READ_ALL_NAMELISTS
USE MODI_VERSION USE MODI_VERSION
! !
...@@ -180,11 +181,10 @@ CALL READ_ALL_NAMELISTS(YSURF_CUR,'MESONH','PRE',.FALSE.) ...@@ -180,11 +181,10 @@ CALL READ_ALL_NAMELISTS(YSURF_CUR,'MESONH','PRE',.FALSE.)
CALL GOTO_SURFEX(1) CALL GOTO_SURFEX(1)
! !
CALL IO_FILE_ADD2LIST(TINIFILE,TRIM(CINIFILE),'PREPSURFEX','WRITE',KLFITYPE=1,KLFIVERB=1) CALL IO_FILE_ADD2LIST(TINIFILE,TRIM(CINIFILE),'PREPSURFEX','WRITE',KLFITYPE=1,KLFIVERB=1)
! !The open is done later in PREP_SURF_MNH when domain dimensions are known
CALL IO_FILE_OPEN_ll(TINIFILE)
! !
TFILE_SURFEX => TINIFILE TFILE_SURFEX => TINIFILE
CALL PREP_SURF_MNH(YATMFILE,YATMFILETYPE) CALL PREP_SURF_MNH(YATMFILE,YATMFILETYPE,OINIFILEOPEN=.TRUE.)
NULLIFY(TFILE_SURFEX) NULLIFY(TFILE_SURFEX)
! !
!------------------------------------------------------------------------------- !-------------------------------------------------------------------------------
......
...@@ -87,7 +87,7 @@ TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File to write ...@@ -87,7 +87,7 @@ TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File to write
!* 1. TEST ON MODEL INDEX !* 1. TEST ON MODEL INDEX
! ------------------- ! -------------------
! KMI may be 0 ! 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 IF (KMI/=0) THEN
CALL WRITE_HGRID_n(TPFILE) CALL WRITE_HGRID_n(TPFILE)
RETURN RETURN
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment