From 5dba1a6b03353b2501713bdece9af140ad73cec9 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 8 Dec 2017 11:06:07 +0100 Subject: [PATCH] Philippe 08/12/2017: IO: replace CPGDFILE by TPGDFILE --- src/MNH/mnhget_desfmn.f90 | 42 +++++++-------------------------- src/MNH/mnhinit_io_surfn.f90 | 4 ++-- src/MNH/mnhopen_aux_io_surf.f90 | 12 +++++++--- src/MNH/modd_lunit.f90 | 2 +- src/MNH/prep_ideal_case.f90 | 6 ++--- src/MNH/prep_nest_pgd.f90 | 6 ++--- src/MNH/prep_real_case.f90 | 4 ++-- src/MNH/prep_surfex.f90 | 4 ++-- src/MNH/read_surf_mnh.f90 | 6 ++--- src/MNH/spawn_surf.f90 | 6 ++--- src/MNH/zoom_pgd.f90 | 3 ++- 11 files changed, 38 insertions(+), 57 deletions(-) diff --git a/src/MNH/mnhget_desfmn.f90 b/src/MNH/mnhget_desfmn.f90 index 189bbb762..c99de259c 100644 --- a/src/MNH/mnhget_desfmn.f90 +++ b/src/MNH/mnhget_desfmn.f90 @@ -59,13 +59,8 @@ END MODULE MODI_MNHGET_DESFM_n ! ! USE MODD_CONF, ONLY : CPROGRAM -USE MODD_LUNIT_n, ONLY : CINIFILE -USE MODD_LUNIT, ONLY : CLUOUT0, CPGDFILE, TOUTDATAFILE -! -USE MODE_FM -USE MODE_ll -USE MODE_MODELN_HANDLER -! +USE MODD_LUNIT_n, ONLY : TINIFILE +USE MODD_LUNIT, ONLY : TPGDFILE,TOUTDATAFILE ! IMPLICIT NONE ! @@ -73,45 +68,24 @@ IMPLICIT NONE ! ------------------------- ! CHARACTER(LEN=5), INTENT(IN) :: HACTION ! 'READ ', 'WRITE' -INTEGER, INTENT(OUT) :: KLUDES ! logical unit of .des file +INTEGER, INTENT(OUT) :: KLUDES ! logical unit of .des file ! !* 0.2 Declarations of local variables ! ------------------------------- ! -INTEGER :: IRESP ! IRESP : return-code if a problem appears - ! at the open of the file in LFI routines -INTEGER :: IMI ! model index -! -CHARACTER(LEN=16) :: YLUOUT ! output listing file name -CHARACTER(LEN=32) :: YDESFM ! .des file name -! +!NONE !------------------------------------------------------------------------------- ! +!* 1. Return logical unit of .des files ! -!* 1. initialisation of logical unit of output listing -! -SELECT CASE(CPROGRAM) - CASE('REAL ','IDEAL ','DIAG ','PGD ') - YLUOUT = CLUOUT0 - CASE('MESONH','SPAWN ') - IMI = GET_CURRENT_MODEL_INDEX() - WRITE(YLUOUT,FMT='(A14,I1,A1)') 'OUTPUT_LISTING',IMI,' ' - CASE DEFAULT - YLUOUT = '' -END SELECT -! -!* 2. initialisation of logical units of .des files -! -YDESFM =' ' KLUDES=0 +! IF (HACTION=='READ ') THEN SELECT CASE(CPROGRAM) CASE('MESONH','DIAG ') - YDESFM=ADJUSTL(ADJUSTR(CINIFILE)//'.des') - CALL FMLOOK_ll(YDESFM,YLUOUT,KLUDES,IRESP) + KLUDES = TINIFILE%TDESFILE%NLU CASE('REAL ') - YDESFM=ADJUSTL(ADJUSTR(CPGDFILE)//'.des') - CALL FMLOOK_ll(YDESFM,YLUOUT,KLUDES,IRESP) + KLUDES = TPGDFILE%TDESFILE%NLU CASE('IDEAL ') KLUDES = 0 END SELECT diff --git a/src/MNH/mnhinit_io_surfn.f90 b/src/MNH/mnhinit_io_surfn.f90 index 7b8bd6954..22829442a 100644 --- a/src/MNH/mnhinit_io_surfn.f90 +++ b/src/MNH/mnhinit_io_surfn.f90 @@ -65,7 +65,7 @@ USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE, COUTFILE, NMASK, CMASK, NIU, NJU, NIB, NJB, NIE, NJE, CACTION, & NMASK_ALL, NIU_ALL, NJU_ALL, NIB_ALL, NJB_ALL, & NIE_ALL, NJE_ALL, NHALO -USE MODD_LUNIT, ONLY: CLUOUT0, CPGDFILE, TLUOUT0, TOUTDATAFILE +USE MODD_LUNIT, ONLY: CLUOUT0, TPGDFILE, TLUOUT0, TOUTDATAFILE USE MODD_LUNIT_n, ONLY: CINIFILE,CINIFILEPGD,CMASK_SURFEX, TLUOUT USE MODD_MNH_SURFEX_n USE MODD_PARAMETERS, ONLY: JPHEXT @@ -127,7 +127,7 @@ IF (HACTION=='READ ') THEN CALL IO_FILE_FIND_BYNAME(TRIM(CINIFILE),TPINFILE,IRESP) ENDIF CASE('REAL ','IDEAL ','NESPGD','SPAWN ','ZOOMPG') - CALL IO_FILE_FIND_BYNAME(TRIM(CPGDFILE),TPINFILE,IRESP) + TPINFILE => TPGDFILE END SELECT ELSE IF (HACTION=='WRITE') THEN IF (ASSOCIATED(TOUTDATAFILE)) THEN diff --git a/src/MNH/mnhopen_aux_io_surf.f90 b/src/MNH/mnhopen_aux_io_surf.f90 index bfb22b75f..92c2b2b31 100644 --- a/src/MNH/mnhopen_aux_io_surf.f90 +++ b/src/MNH/mnhopen_aux_io_surf.f90 @@ -61,7 +61,7 @@ USE MODD_CONF, ONLY: CPROGRAM USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE, COUTFILE, NMASK_ALL, CMASK, NIU_ALL, & NJU_ALL, NIB_ALL, NJB_ALL, NIE_ALL, NJE_ALL, CACTION, & NMASK, NIU, NJU, NIB, NJB, NIE, NJE -USE MODD_LUNIT, ONLY: CLUOUT0, CPGDFILE, TLUOUT0, TOUTDATAFILE +USE MODD_LUNIT, ONLY: CLUOUT0, TPGDFILE, TLUOUT0, TOUTDATAFILE USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS, ONLY: JPHEXT ! @@ -92,7 +92,7 @@ INTEGER :: IIMAX ! number of points in X direction INTEGER :: IJMAX ! number of points in Y direction ! ! -CHARACTER(LEN=28) :: YFILE ! file name +CHARACTER(LEN=28) :: YFILE,YPGDFILE ! file names INTEGER :: ILU ! 1D physical dimension of XCOVER INTEGER :: ILUOUT REAL, DIMENSION(:), ALLOCATABLE :: ZFULL ! total cover @@ -129,7 +129,13 @@ ELSE YFILE = TOUTDATAFILE%CNAME END IF ! -IF (HFILE/=YFILE .AND. HFILE/=CPGDFILE) THEN +IF (.NOT.ASSOCIATED(TPGDFILE)) THEN + YPGDFILE = '' +ELSE + YPGDFILE = TPGDFILE%CNAME +END IF +! +IF (HFILE/=YFILE .AND. HFILE/=YPGDFILE) THEN CALL IO_FILE_ADD2LIST(TPINFILE,TRIM(HFILE),'UNKNOWN','READ',KLFITYPE=2,KLFIVERB=5,OOLD=.TRUE.) CALL IO_FILE_OPEN_ll(TPINFILE,KRESP=IRESP,OPARALLELIO=.FALSE.) ! diff --git a/src/MNH/modd_lunit.f90 b/src/MNH/modd_lunit.f90 index fee3c3d18..cea78617a 100644 --- a/src/MNH/modd_lunit.f90 +++ b/src/MNH/modd_lunit.f90 @@ -48,6 +48,6 @@ IMPLICIT NONE CHARACTER(LEN=16),SAVE :: CLUOUT0 ! Name of output_listing file TYPE(TFILEDATA),POINTER :: TLUOUT0 => NULL() ! output_listing file TYPE(TFILEDATA),POINTER :: TOUTDATAFILE => NULL() ! output data file being written -CHARACTER(LEN=28),SAVE :: CPGDFILE ! name of the PGD file for PREP_REAL_CASE +TYPE(TFILEDATA),POINTER :: TPGDFILE => NULL() ! PGD file ! END MODULE MODD_LUNIT diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90 index ecdab0b26..831891e54 100644 --- a/src/MNH/prep_ideal_case.f90 +++ b/src/MNH/prep_ideal_case.f90 @@ -1775,13 +1775,13 @@ IF (CSURF =='EXTE') THEN !* definition of physiographic fields ! computed ... IF (LEN_TRIM(CPGD_FILE)==0 .OR. .NOT. LREAD_GROUND_PARAM) THEN - CPGDFILE = TINIFILE%CNAME + TPGDFILE => TINIFILE CALL PGD_GRID_SURF_ATM(YSURF_CUR%UG, YSURF_CUR%U,YSURF_CUR%GCP,'MESONH',TINIFILE%CNAME,'MESONH',.TRUE.) CALL PGD_SURF_ATM (YSURF_CUR,'MESONH',TINIFILE%CNAME,'MESONH',.TRUE.) - CPGDFILE = CINIFILEPGD + TPGDFILE => TINIFILEPGD ELSE ! ... or read from file. - CPGDFILE = CPGD_FILE + TPGDFILE => TZPGDFILE CALL INIT_PGD_SURF_ATM(YSURF_CUR,'MESONH','PGD', & ' ',' ',& TDTCUR%TDATE%YEAR, TDTCUR%TDATE%MONTH, & diff --git a/src/MNH/prep_nest_pgd.f90 b/src/MNH/prep_nest_pgd.f90 index 5429524f0..c23ec43fa 100644 --- a/src/MNH/prep_nest_pgd.f90 +++ b/src/MNH/prep_nest_pgd.f90 @@ -105,7 +105,7 @@ USE MODD_CST USE MODD_DIM_n USE MODD_IO_ll, ONLY: NIO_VERB, NVERB_DEBUG, TFILE_SURFEX, TPTR2FILE USE MODD_GRID_n, ONLY: XZSMT -USE MODD_LUNIT, ONLY: CPGDFILE,TLUOUT0,TOUTDATAFILE +USE MODD_LUNIT, ONLY: TPGDFILE,TLUOUT0,TOUTDATAFILE USE MODD_MNH_SURFEX_n USE MODD_NESTING USE MODD_PARAMETERS @@ -305,7 +305,7 @@ END DO DO JPGD=1,NMODEL IF (LEN_TRIM(TZFILEPGD(JPGD)%TZFILE%CNAME)>0) THEN CALL GO_TOMODEL_ll(JPGD,IINFO_ll) - CPGDFILE = TZFILEPGD(JPGD)%TZFILE%CNAME + TPGDFILE => TZFILEPGD(JPGD)%TZFILE CALL GOTO_MODEL(JPGD) CALL GOTO_SURFEX(JPGD) CALL INIT_PGD_SURF_ATM(YSURF_CUR,'MESONH','PGD', & @@ -333,7 +333,7 @@ END DO ! DO JPGD=1,NMODEL CALL GO_TOMODEL_ll(JPGD,IINFO_ll) - CPGDFILE = TZFILEPGD(JPGD)%TZFILE%CNAME + TPGDFILE => TZFILEPGD(JPGD)%TZFILE TOUTDATAFILE => TZFILENESTPGD(JPGD)%TZFILE CALL GOTO_MODEL(JPGD) CALL GOTO_SURFEX(JPGD) diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90 index 792b9404b..c848fac7b 100644 --- a/src/MNH/prep_real_case.f90 +++ b/src/MNH/prep_real_case.f90 @@ -405,7 +405,7 @@ USE MODD_HURR_CONF USE MODD_IO_ll, ONLY: GSMONOPROC,TFILEDATA,LIOCDF4,LLFIOUT,NIO_VERB,NVERB_DEBUG,TFILE_SURFEX USE MODD_LBC_n USE MODD_LSFIELD_n -USE MODD_LUNIT, ONLY: CLUOUT0,CPGDFILE,TLUOUT0,TOUTDATAFILE +USE MODD_LUNIT, ONLY: CLUOUT0,TPGDFILE,TLUOUT0,TOUTDATAFILE USE MODD_LUNIT_n, ONLY: CINIFILE,TINIFILE,TLUOUT USE MODD_METRICS_n USE MODD_MNH_SURFEX_n @@ -579,7 +579,7 @@ CALL OPEN_PRC_FILES(TZPRE_REAL1FILE,YATMFILE, YATMFILETYPE,TZATMFILE & ILUOUT0 = TLUOUT0%NLU TLUOUT => TLUOUT0 ! -CPGDFILE = YPGDFILE +TPGDFILE => TZPGDFILE ! CALL IO_FILE_ADD2LIST(TINIFILE,CINIFILE,'PREPREALCASE','WRITE',KLFITYPE=1,KLFIVERB=NVERB) ! diff --git a/src/MNH/prep_surfex.f90 b/src/MNH/prep_surfex.f90 index 8fb535c46..e3ab44721 100644 --- a/src/MNH/prep_surfex.f90 +++ b/src/MNH/prep_surfex.f90 @@ -39,7 +39,7 @@ USE MODD_CONF, ONLY : CPROGRAM,NMASDEV,NBUGFIX,CBIBUSER,& L1D, L2D, LPACK USE MODD_CONF_n, ONLY : CSTORAGE_TYPE USE MODD_IO_ll, ONLY : TFILEDATA, LIOCDF4, LLFIOUT, NIO_VERB, NVERB_DEBUG, TFILE_SURFEX -USE MODD_LUNIT, ONLY : CLUOUT0, CPGDFILE, TLUOUT0 +USE MODD_LUNIT, ONLY : CLUOUT0, TPGDFILE, TLUOUT0 USE MODD_LUNIT_n, ONLY : CINIFILE USE MODD_MNH_SURFEX_n USE MODD_PARAMETERS, ONLY : JPMODELMAX,JPHEXT,JPVEXT, NUNDEF, XUNDEF @@ -114,7 +114,7 @@ CALL OPEN_PRC_FILES(TZPRE_REAL1FILE,YATMFILE, YATMFILETYPE,TZATMFILE & ,YPGDFILE,TZPGDFILE) ILUOUT0 = TLUOUT0%NLU ! -CPGDFILE = YPGDFILE +TPGDFILE => TZPGDFILE ! CALL IO_FILE_ADD2LIST(TZFILE,TRIM(CINIFILE),'PREPSURFEX','WRITE',KLFITYPE=1,KLFIVERB=1) ! diff --git a/src/MNH/read_surf_mnh.f90 b/src/MNH/read_surf_mnh.f90 index 8562c486c..638fdabd2 100644 --- a/src/MNH/read_surf_mnh.f90 +++ b/src/MNH/read_surf_mnh.f90 @@ -1292,7 +1292,7 @@ USE MODE_POS ! USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE USE MODD_CONF, ONLY : LCARTESIAN, CPROGRAM -USE MODD_LUNIT, ONLY : CPGDFILE +USE MODD_LUNIT, ONLY : TPGDFILE ! ! IMPLICIT NONE @@ -1339,8 +1339,8 @@ ELSE IF (HREC=='SNOW_ROOF_TYPE'.AND.IMASDEV<46) THEN ELSE IF (HREC=='PHOTO'.AND.IMASDEV<46) THEN HFIELD='NON' ELSE IF ( HREC=='GRID_TYPE'.AND. (IMASDEV<46 .OR. & - (CPROGRAM=='IDEAL ' .AND. CPGDFILE/=TOUT%CNAME) .OR. & - (CPROGRAM=='SPAWN ' .AND. CPGDFILE/=TOUT%CNAME) .OR. & + (CPROGRAM=='IDEAL ' .AND. .NOT.ASSOCIATED(TPGDFILE,TOUT)) .OR. & + (CPROGRAM=='SPAWN ' .AND. .NOT.ASSOCIATED(TPGDFILE,TOUT)) .OR. & CPROGRAM=='ZOOMPG' )) THEN IF (LCARTESIAN) THEN HFIELD="CARTESIAN " diff --git a/src/MNH/spawn_surf.f90 b/src/MNH/spawn_surf.f90 index d549fcf15..cc27f9cde 100644 --- a/src/MNH/spawn_surf.f90 +++ b/src/MNH/spawn_surf.f90 @@ -80,7 +80,7 @@ USE MODD_CONF, ONLY : NVERB USE MODD_GRID_n, ONLY : XZS USE MODD_IO_ll, ONLY : TFILEDATA USE MODD_IO_SURF_MNH, ONLY : COUTFILE -USE MODD_LUNIT, ONLY : CPGDFILE, TOUTDATAFILE +USE MODD_LUNIT, ONLY : TPGDFILE, TOUTDATAFILE USE MODD_MNH_SURFEX_n USE MODD_NESTING, ONLY : CMY_NAME, CDAD_NAME USE MODD_PARAM_n, ONLY : CSURF @@ -121,7 +121,7 @@ INTEGER :: IINFO_ll ! IF (CSURF=='EXTE') THEN IF (OSPAWN_SURF) THEN - CPGDFILE = CMY_NAME(2) + TPGDFILE => TPOUTDATAFILE !Corresponding to file with CNAME = CMY_NAME(2) TOUTDATAFILE => TPOUTDATAFILE !Corresponding to file with CNAME = CMY_NAME(2) COUTFILE = CMY_NAME(2) !* spawn PGD fields @@ -130,7 +130,7 @@ IF (CSURF=='EXTE') THEN !CALL GO_TOMODEL_ll(1,IINFO_ll) !CALL GOTO_MODEL(1) !JUAN REALZ - CALL ZOOM_PGD_SURF_ATM(YSURF_CUR,'MESONH',HINIFILEPGD,'MESONH',CPGDFILE,'MESONH') + CALL ZOOM_PGD_SURF_ATM(YSURF_CUR,'MESONH',HINIFILEPGD,'MESONH',TPGDFILE%CNAME,'MESONH') CALL MNHPUT_ZS_n !* writing of physiographic fields in the file CALL WRITE_PGD_SURF_ATM_n(YSURF_CUR,'MESONH') diff --git a/src/MNH/zoom_pgd.f90 b/src/MNH/zoom_pgd.f90 index 01bfaf3c7..4c9498550 100644 --- a/src/MNH/zoom_pgd.f90 +++ b/src/MNH/zoom_pgd.f90 @@ -53,7 +53,7 @@ USE MODD_CONF, ONLY : CPROGRAM, NMASDEV, NBUGFIX, CBIBUSER, & L1D, L2D, LPACK USE MODD_IO_ll, ONLY: LIOCDF4,LLFIOUT,NIO_VERB,NVERB_DEBUG,TFILE_OUTPUTLISTING,TFILEDATA -USE MODD_LUNIT, ONLY : CLUOUT0, CPGDFILE, TLUOUT0, TOUTDATAFILE +USE MODD_LUNIT, ONLY : CLUOUT0, TPGDFILE, TLUOUT0, TOUTDATAFILE USE MODD_PARAMETERS, ONLY : XUNDEF, NUNDEF, JPVEXT, JPHEXT, JPMODELMAX USE MODD_PARAM_n, ONLY : CSURF USE MODD_DIM_n, ONLY : NIMAX, NJMAX @@ -94,6 +94,7 @@ INTEGER :: IRESP ! return code for I/O INTEGER :: ILUOUT0 INTEGER :: ILUNAM INTEGER :: IINFO_ll +CHARACTER(LEN=28) :: CPGDFILE ! name of the PGD file CHARACTER(LEN=28) :: YZOOMFILE ! name of the output file CHARACTER(LEN=2) :: YZOOMNBR CHARACTER(LEN=28) :: YMY_NAME,YDAD_NAME -- GitLab