diff --git a/src/MNH/diag.f90 b/src/MNH/diag.f90 index b30e6d7152495833d006232aed90701c02c7c3df..a6882d355b897b1f72c57794df96abed1b43aacd 100644 --- a/src/MNH/diag.f90 +++ b/src/MNH/diag.f90 @@ -85,87 +85,78 @@ !* 0. DECLARATIONS ! ------------ ! -USE MODD_VAR_ll -! -USE MODD_DYN +USE MODD_ADV_n +USE MODD_AIRCRAFT_BALLOON +USE MODD_BUDGET USE MODD_CONF -USE MODD_GRID, ONLY: XLONORI,XLATORI -USE MODD_LUNIT -USE MODD_PARAMETERS -! -USE MODD_DIAG_FLAG -USE MODD_STO_FILE -! USE MODD_CONF_n +USE MODD_DEEP_CONVECTION_n +USE MODD_DIAG_FLAG USE MODD_DIM_n +USE MODD_DYN USE MODD_DYN_n -USE MODD_ADV_n -USE MODD_DEEP_CONVECTION_n USE MODD_FIELD_n +USE MODD_GR_FIELD_n +USE MODD_GRID, ONLY: XLONORI,XLATORI USE MODD_GRID_n -USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG +USE MODD_IO_ll, ONLY: LIOCDF4,LLFIOUT,NIO_VERB,NVERB_DEBUG,TFILEDATA,TFILE_SURFEX USE MODD_LBC_n -USE MODD_PARAM_n +USE MODD_LES +USE MODD_LES_BUDGET +USE MODD_LUNIT, ONLY: TLUOUT0,TOUTDATAFILE +USE MODD_LUNIT_n +USE MODD_MNH_SURFEX_n +USE MODD_NESTING, ONLY: CDAD_NAME +USE MODD_NSV +USE MODD_OUT_n +USE MODD_PARAMETERS USE MODD_PARAM_KAFR_n +USE MODD_PARAM_LIMA, ONLY: LLIMA_DIAG +USE MODD_PARAM_MFSHALL_n +USE MODD_PARAM_n USE MODD_PARAM_RAD_n +USE MODD_PROFILER_n +USE MODD_RADAR USE MODD_RADIATIONS_n -USE MODD_TURB_n -USE MODD_PARAM_MFSHALL_n USE MODD_REF_n -USE MODD_LUNIT_n -USE MODD_OUT_n -USE MODD_TIME_n -USE MODD_NESTING, ONLY: CDAD_NAME -USE MODD_NSV -USE MODD_AIRCRAFT_BALLOON +USE MODD_STATION_n +USE MODD_STO_FILE USE MODD_TIME -USE MODD_GR_FIELD_n -USE MODD_LES -USE MODD_LES_BUDGET -USE MODD_BUDGET -USE MODD_RADAR -USE MODD_PARAM_LIMA, ONLY : LLIMA_DIAG -USE MODD_IO_ll, ONLY: LIOCDF4,LLFIOUT,TFILEDATA,TFILE_SURFEX -! -USE MODN_DIAG_BLANK -! -USE MODI_PHYS_PARAM_n -USE MODI_WRITE_LFIFM1_FOR_DIAG -USE MODI_WRITE_LFIFM1_FOR_DIAG_SUPP -USE MODI_COMPUTE_R00 -USE MODI_WRITE_LFIFMN_FORDIACHRO_n -USE MODI_AIRCRAFT_BALLOON -USE MODI_WRITE_AIRCRAFT_BALLOON +USE MODD_TIME_n +USE MODD_TURB_n +USE MODD_VAR_ll ! -USE MODE_POS -USE MODE_TIME USE MODE_FM -USE MODE_FMWRIT, ONLY : IO_WRITE_HEADER +USE MODE_FMREAD +USE MODE_FMWRIT, ONLY: IO_WRITE_HEADER USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST,IO_FILE_PRINT_LIST +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST,IO_FILE_PRINT_LIST USE MODE_ll +USE MODE_MNH_TIMING USE MODE_MODELN_HANDLER USE MODE_MSG +USE MODE_POS +USE MODE_TIME ! -USE MODD_AIRCRAFT_BALLOON -USE MODD_PROFILER_n -USE MODD_STATION_n -USE MODE_MNH_TIMING -USE MODE_FMREAD -USE MODN_CONFZ -! -USE MODI_MNHGET_SURF_PARAM_n -! -USE MODI_VERSION +USE MODI_AIRCRAFT_BALLOON +USE MODI_COMPUTE_R00 +USE MODI_DIAG_SURF_ATM_N USE MODI_INIT_MNH USE MODI_MENU_DIACHRO -USE MODI_WRITE_SURF_ATM_N -USE MODI_DIAG_SURF_ATM_N +USE MODI_MNHGET_SURF_PARAM_n +USE MODI_PHYS_PARAM_n +USE MODI_VERSION +USE MODI_WRITE_AIRCRAFT_BALLOON USE MODI_WRITE_DIAG_SURF_ATM_N -USE MODD_MNH_SURFEX_n -! -USE MODN_CONF, ONLY : JPHEXT , NHALO -USE MODN_CONFIO, ONLY : NAM_CONFIO +USE MODI_WRITE_LFIFM1_FOR_DIAG +USE MODI_WRITE_LFIFM1_FOR_DIAG_SUPP +USE MODI_WRITE_LFIFMN_FORDIACHRO_n +USE MODI_WRITE_SURF_ATM_N +! +USE MODN_CONFIO, ONLY: NAM_CONFIO +USE MODN_CONF, ONLY: JPHEXT,NHALO +USE MODN_CONFZ +USE MODN_DIAG_BLANK ! IMPLICIT NONE ! @@ -203,7 +194,6 @@ REAL, DIMENSION(:,:,:,:),ALLOCATABLE :: ZWETDEPAER ! TYPE(TFILEDATA),POINTER :: TZDIACFILE => NULL() TYPE(TFILEDATA),POINTER :: TZNMLFILE => NULL() !Namelist file -TYPE(TFILEDATA),POINTER :: TZOUTFILE => NULL() ! NAMELIST/NAM_DIAG/ CISO, LVAR_RS, LVAR_LS, & NCONV_KF, NRAD_3D, CRAD_SAT, NRTTOVINFO, LRAD_SUBG_COND, & @@ -441,11 +431,10 @@ IF ( LEN_TRIM(CINIFILE)==0 ) THEN ENDIF ! INPRAR = 24 +2*(4+NRR+NSV) -COUTFMFILE=TRIM(CINIFILE)//YSUFFIX ! -CALL IO_FILE_ADD2LIST(TZOUTFILE,TRIM(CINIFILE)//YSUFFIX,'DIAG','WRITE',KLFINPRAR=INPRAR,KLFITYPE=1,KLFIVERB=NVERB) +CALL IO_FILE_ADD2LIST(TOUTDATAFILE,TRIM(CINIFILE)//YSUFFIX,'DIAG','WRITE',KLFINPRAR=INPRAR,KLFITYPE=1,KLFIVERB=NVERB) ! -CALL IO_FILE_OPEN_ll(TZOUTFILE) +CALL IO_FILE_OPEN_ll(TOUTDATAFILE) ! CALL SECOND_MNH2(ZTIME2) ZSTART=ZTIME2-ZTIME1 @@ -491,7 +480,7 @@ ENDIF ! !* 4.0 Stores the fields in MESONH files if necessary ! -CALL WRITE_LFIFM1_FOR_DIAG(TZOUTFILE,CDAD_NAME(1)) +CALL WRITE_LFIFM1_FOR_DIAG(TOUTDATAFILE,CDAD_NAME(1)) ! WRITE(ILUOUT0,*) ' ' WRITE(ILUOUT0,*) 'DIAG AFTER WRITE_LFIFM1_FOR_DIAG' @@ -675,7 +664,7 @@ ZCHEM=0. XTIME_LES=0. XTIME_LES_BU_PROCESS=0. XTIME_BU_PROCESS=0. -CALL PHYS_PARAM_n(1,TZOUTFILE,GCLOSE_OUT, & +CALL PHYS_PARAM_n(1,TOUTDATAFILE,GCLOSE_OUT, & ZRAD,ZSHADOWS,ZDCONV,ZGROUND,ZMAFL,ZDRAG, & ZTURB,ZTRACER, ZTIME_BU,ZWETDEPAER,GMASKkids,GCLOUD_ONLY) WRITE(ILUOUT0,*) 'DIAG AFTER PHYS_PARAM1' @@ -699,7 +688,7 @@ ZTIME1=ZTIME2 ! IF (CSURF=='EXTE') THEN CALL GOTO_SURFEX(1) - TFILE_SURFEX => TZOUTFILE + TFILE_SURFEX => TOUTDATAFILE CALL WRITE_SURF_ATM_n(YSURF_CUR,'MESONH','ALL',.FALSE.) CALL DIAG_SURF_ATM_n(YSURF_CUR%IM%DGEI, YSURF_CUR%FM%DGF, YSURF_CUR%DGL, YSURF_CUR%IM%DGI, & YSURF_CUR%SM%DGS, YSURF_CUR%DGU, YSURF_CUR%TM%DGT, YSURF_CUR%WM%DGW, & @@ -718,7 +707,7 @@ ZTIME1=ZTIME2 ! !* 7.0 Stores other fields in MESONH files if necessary ! -CALL WRITE_LFIFM1_FOR_DIAG_SUPP(TZOUTFILE) +CALL WRITE_LFIFM1_FOR_DIAG_SUPP(TOUTDATAFILE) WRITE(ILUOUT0,*) ' ' WRITE(ILUOUT0,*) 'DIAG AFTER WRITE_LFIFM1_FOR_DIAG_SUPP' ! @@ -729,7 +718,7 @@ ZTIME1=ZTIME2 ! !* 8.0 Initial positions computation (back into simulation segments) ! -IF (LTRAJ .AND. JF/=1) CALL COMPUTE_R00(TZOUTFILE) +IF (LTRAJ .AND. JF/=1) CALL COMPUTE_R00(TOUTDATAFILE) ! CALL SECOND_MNH2(ZTIME2) ZTRAJ =ZTIME2-ZTIME1 @@ -742,7 +731,7 @@ DEALLOCATE(GMASKkids) DEALLOCATE(ZWETDEPAER) IF (GCLOSE_OUT) THEN GCLOSE_OUT=.FALSE. - CALL IO_FILE_CLOSE_ll(TZOUTFILE) + CALL IO_FILE_CLOSE_ll(TOUTDATAFILE) END IF ! CALL IO_FILE_CLOSE_ll(TLUOUT) diff --git a/src/MNH/mnhget_desfmn.f90 b/src/MNH/mnhget_desfmn.f90 index 68e10f405c5f002da98164a9b56bdd9ab199f21b..189bbb76259fe05ebcfc8987ca415da48ab083a5 100644 --- a/src/MNH/mnhget_desfmn.f90 +++ b/src/MNH/mnhget_desfmn.f90 @@ -60,7 +60,7 @@ END MODULE MODI_MNHGET_DESFM_n ! USE MODD_CONF, ONLY : CPROGRAM USE MODD_LUNIT_n, ONLY : CINIFILE -USE MODD_LUNIT, ONLY : CLUOUT0, COUTFMFILE, CPGDFILE +USE MODD_LUNIT, ONLY : CLUOUT0, CPGDFILE, TOUTDATAFILE ! USE MODE_FM USE MODE_ll @@ -120,8 +120,7 @@ ELSE IF (HACTION=='WRITE') THEN CPROGRAM == 'ZOOMPG' .OR. CPROGRAM =='DIAG ' ) THEN KLUDES = 0 ELSE - YDESFM=ADJUSTL(ADJUSTR(COUTFMFILE)//'.des') - CALL FMLOOK_ll(YDESFM,YLUOUT,KLUDES,IRESP) + KLUDES = TOUTDATAFILE%TDESFILE%NLU END IF END IF ! diff --git a/src/MNH/mnhinit_io_surfn.f90 b/src/MNH/mnhinit_io_surfn.f90 index 8a05a19942e5709a1f24a44f78ead33bddbf7969..7b8bd695424a434fac01deafebc105def5790882 100644 --- a/src/MNH/mnhinit_io_surfn.f90 +++ b/src/MNH/mnhinit_io_surfn.f90 @@ -59,28 +59,25 @@ END MODULE MODI_MNHINIT_IO_SURF_n !* 0. DECLARATIONS ! ------------ ! +USE MODD_CONF, ONLY: CPROGRAM +USE MODD_DIM_n, ONLY: NIMAX, NJMAX, NIMAX_ll, NJMAX_ll +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_n, ONLY: CINIFILE,CINIFILEPGD,CMASK_SURFEX, TLUOUT +USE MODD_MNH_SURFEX_n +USE MODD_PARAMETERS, ONLY: JPHEXT ! -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_CONF, ONLY : CPROGRAM -USE MODD_LUNIT_n, ONLY : CINIFILE,CINIFILEPGD,CMASK_SURFEX, TLUOUT -USE MODD_LUNIT, ONLY : CLUOUT0, COUTFMFILE, CPGDFILE, TLUOUT0 -! -USE MODD_DIM_n, ONLY : NIMAX, NJMAX, NIMAX_ll, NJMAX_ll -USE MODD_PARAMETERS, ONLY : JPHEXT -! -USE MODE_ll USE MODE_IO_ll USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME +USE MODE_ll USE MODE_MODELN_HANDLER ! USE MODI_GET_1D_MASK -USE MODI_GET_TYPE_DIM_N USE MODI_GET_SURF_MASK_N -USE MODD_MNH_SURFEX_n +USE MODI_GET_TYPE_DIM_N ! IMPLICIT NONE ! @@ -133,7 +130,11 @@ IF (HACTION=='READ ') THEN CALL IO_FILE_FIND_BYNAME(TRIM(CPGDFILE),TPINFILE,IRESP) END SELECT ELSE IF (HACTION=='WRITE') THEN - COUTFILE=COUTFMFILE + IF (ASSOCIATED(TOUTDATAFILE)) THEN + COUTFILE = TOUTDATAFILE%CNAME + ELSE + COUTFILE = '' + END IF END IF ! !* 3. initialisation of 2D arrays diff --git a/src/MNH/mnhopen_aux_io_surf.f90 b/src/MNH/mnhopen_aux_io_surf.f90 index 778187f8f59dbfb289ebccbcf73352ab980402c4..bfb22b75ff7280bed8c92799eb58554628597f7e 100644 --- a/src/MNH/mnhopen_aux_io_surf.f90 +++ b/src/MNH/mnhopen_aux_io_surf.f90 @@ -57,16 +57,15 @@ END MODULE MODI_MNHOPEN_AUX_IO_SURF ! ------------ ! ! -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_CONF, ONLY : CPROGRAM -USE MODD_PARAMETERS, ONLY : JPHEXT -USE MODD_LUNIT, ONLY : CLUOUT0, COUTFMFILE, CPGDFILE, TLUOUT0 -USE MODD_LUNIT_n, ONLY : TLUOUT -! -USE MODE_FM, ONLY: IO_FILE_OPEN_ll +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_n, ONLY: TLUOUT +USE MODD_PARAMETERS, ONLY: JPHEXT +! +USE MODE_FM, ONLY: IO_FILE_OPEN_ll USE MODE_FMREAD USE MODE_IO_ll USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST,IO_FILE_FIND_BYNAME @@ -93,6 +92,7 @@ INTEGER :: IIMAX ! number of points in X direction INTEGER :: IJMAX ! number of points in Y direction ! ! +CHARACTER(LEN=28) :: YFILE ! file name INTEGER :: ILU ! 1D physical dimension of XCOVER INTEGER :: ILUOUT REAL, DIMENSION(:), ALLOCATABLE :: ZFULL ! total cover @@ -123,7 +123,13 @@ IF (LEN_TRIM(CACTION)>0) THEN WRITE(ILUOUT,*) 'file ',HFILE,' cannot be opened because another MESONH file is in use' END IF ! -IF (HFILE/=COUTFMFILE .AND. HFILE/=CPGDFILE) THEN +IF (.NOT.ASSOCIATED(TOUTDATAFILE)) THEN + YFILE = '' +ELSE + YFILE = TOUTDATAFILE%CNAME +END IF +! +IF (HFILE/=YFILE .AND. HFILE/=CPGDFILE) 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 17ab524cccee1b52de4fd69adc6973dfabfe90e5..fee3c3d189fbeb3922aecd1f2e2fdaacfcdbd870 100644 --- a/src/MNH/modd_lunit.f90 +++ b/src/MNH/modd_lunit.f90 @@ -47,7 +47,7 @@ IMPLICIT NONE ! CHARACTER(LEN=16),SAVE :: CLUOUT0 ! Name of output_listing file TYPE(TFILEDATA),POINTER :: TLUOUT0 => NULL() ! output_listing file -CHARACTER(LEN=28),SAVE :: COUTFMFILE ! name of the output FM-file being written +TYPE(TFILEDATA),POINTER :: TOUTDATAFILE => NULL() ! output data file being written CHARACTER(LEN=28),SAVE :: CPGDFILE ! name of the PGD file for PREP_REAL_CASE ! END MODULE MODD_LUNIT diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index c6633090e17720f4ad31e3403d1e04a0b05b258d..2843213387c056395631b672848ff6d654dc7f6b 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -291,7 +291,7 @@ USE MODD_LES USE MODD_LES_BUDGET USE MODD_LIMA_PRECIP_SCAVENGING_n USE MODD_LSFIELD_n -USE MODD_LUNIT, ONLY: COUTFMFILE,TLUOUT0 +USE MODD_LUNIT, ONLY: TLUOUT0,TOUTDATAFILE USE MODD_LUNIT_n, ONLY: TDIAFILE,TINIFILE,TINIFILEPGD,TLUOUT USE MODD_MEAN_FIELD USE MODD_MEAN_FIELD_n @@ -925,7 +925,7 @@ IF (IBAK < NBAK_NUMB ) THEN CALL WRITE_DESFM_n(IMI,TZBAKFILE) CALL IO_WRITE_HEADER(TBACKUPN(IBAK)%TFILE) CALL WRITE_LFIFM_n(TBACKUPN(IBAK)%TFILE,TBACKUPN(IBAK)%TFILE%TDADFILE%CNAME) - COUTFMFILE = TZBAKFILE%CNAME + TOUTDATAFILE => TZBAKFILE CALL MNHWRITE_ZS_DUMMY_n(TZBAKFILE) IF (CSURF=='EXTE') THEN TFILE_SURFEX => TZBAKFILE diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90 index a49e987af733d39587960424fda6c20150fecb6f..ecdab0b266dc4142be3b0095df2bc0073b82674a 100644 --- a/src/MNH/prep_ideal_case.f90 +++ b/src/MNH/prep_ideal_case.f90 @@ -345,7 +345,7 @@ USE MODD_CH_AEROSOL,ONLY: LORILAM, CORGANIC, LVARSIGI, LVARSIGJ, LINITPM, XINIR USE MODD_DUST, ONLY: LDUST, NMODE_DST, CRGUNITD, XINISIG, XINIRADIUS, XN0MIN USE MODD_SALT, ONLY: LSALT, NMODE_SLT, CRGUNITS, XINISIG_SLT, XINIRADIUS_SLT, XN0MIN_SLT USE MODD_VAR_ll, ONLY: NPROC -USE MODD_LUNIT, ONLY: TLUOUT0 +USE MODD_LUNIT, ONLY: TLUOUT0, TOUTDATAFILE USE MODD_LUNIT_n USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG,TFILE_OUTPUTLISTING USE MODD_CONF_n @@ -1796,7 +1796,6 @@ IF (CSURF =='EXTE') THEN IF (LEN_TRIM(CPGD_FILE)==0 .OR. .NOT. LREAD_GROUND_PARAM) THEN !* writing of physiographic fields in the file CSTORAGE_TYPE='PG' - COUTFMFILE = CINIFILEPGD ! CALL IO_FILE_ADD2LIST(TZINIFILEPGD,TRIM(CINIFILEPGD),'PREPIDEALCASE','WRITE',KLFINPRAR=NNPRAR,KLFITYPE=NTYPE,KLFIVERB=NVERB) ! @@ -1808,6 +1807,9 @@ IF (CSURF =='EXTE') THEN CALL IO_WRITE_FIELD(TZINIFILEPGD,'L2D', L2D) CALL IO_WRITE_FIELD(TZINIFILEPGD,'PACK',LPACK) CALL WRITE_HGRID(1,TZINIFILEPGD) + ! + TOUTDATAFILE => TZINIFILEPGD + ! TFILE_SURFEX => TZINIFILEPGD CALL WRITE_PGD_SURF_ATM_n(YSURF_CUR,'MESONH') NULLIFY(TFILE_SURFEX) @@ -1817,7 +1819,7 @@ IF (CSURF =='EXTE') THEN ! !* rereading of physiographic fields and definition of prognostic fields !* writing of all surface fields - COUTFMFILE = TINIFILE%CNAME + TOUTDATAFILE => TINIFILE TFILE_SURFEX => TINIFILE CALL PREP_SURF_MNH(' ',' ') NULLIFY(TFILE_SURFEX) diff --git a/src/MNH/prep_nest_pgd.f90 b/src/MNH/prep_nest_pgd.f90 index 6fe5743a6bf16fd6167212db4866426bd69e97f2..5429524f0835a26edd11c0548b0e92a7b9687c5a 100644 --- a/src/MNH/prep_nest_pgd.f90 +++ b/src/MNH/prep_nest_pgd.f90 @@ -99,46 +99,42 @@ !* 0. DECLARATIONS ! ------------ ! -USE MODD_PARAMETERS USE MODD_CONF +USE MODD_CONF_n USE MODD_CST -USE MODD_GRID_n, ONLY : XZSMT -USE MODD_LUNIT +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_MNH_SURFEX_n USE MODD_NESTING -USE MODD_CONF_n -USE MODD_IO_ll, ONLY : NIO_VERB, NVERB_DEBUG, TFILE_SURFEX, TPTR2FILE -! -USE MODI_OPEN_NESTPGD_FILES -USE MODI_RETRIEVE1_NEST_INFO_n -USE MODI_DEFINE_MASK_n -USE MODI_NEST_FIELD_n -USE MODI_NEST_ZSMT_n -USE MODI_READ_HGRID +USE MODD_PARAMETERS +USE MODD_VAR_ll, ONLY: NPROC, IP, NMNH_COMM_WORLD ! -USE MODE_FIELD, ONLY : INI_FIELD_LIST +USE MODE_FIELD, ONLY: INI_FIELD_LIST USE MODE_FM USE MODE_FMREAD USE MODE_FMWRIT USE MODE_IO_ll USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_PRINT_LIST USE MODE_ll -! +USE MODE_MNH_WORLD, ONLY: INIT_NMNH_COMM_WORLD USE MODE_MODELN_HANDLER +USE MODE_MPPDB +USE MODE_SPLITTINGZ_ll, ONLY: INI_PARAZ_ll ! -USE MODI_VERSION -USE MODI_READ_ALL_NAMELISTS +USE MODI_DEFINE_MASK_n USE MODI_INIT_HORGRID_ll_n USE MODI_INIT_PGD_SURF_ATM +USE MODI_NEST_FIELD_n +USE MODI_NEST_ZSMT_n +USE MODI_OPEN_NESTPGD_FILES +USE MODI_READ_ALL_NAMELISTS +USE MODI_READ_HGRID +USE MODI_RETRIEVE1_NEST_INFO_n +USE MODI_VERSION USE MODI_WRITE_PGD_SURF_ATM_N -USE MODD_MNH_SURFEX_n ! -USE MODE_SPLITTINGZ_ll, ONLY : INI_PARAZ_ll -USE MODD_VAR_ll, ONLY : NPROC, IP, NMNH_COMM_WORLD -USE MODE_MNH_WORLD, ONLY : INIT_NMNH_COMM_WORLD -USE MODE_MPPDB -! -USE MODD_DIM_n - IMPLICIT NONE ! !* 0.1 Declaration of local variables @@ -338,7 +334,7 @@ END DO DO JPGD=1,NMODEL CALL GO_TOMODEL_ll(JPGD,IINFO_ll) CPGDFILE = TZFILEPGD(JPGD)%TZFILE%CNAME - COUTFMFILE = TZFILENESTPGD(JPGD)%TZFILE%CNAME + TOUTDATAFILE => TZFILENESTPGD(JPGD)%TZFILE CALL GOTO_MODEL(JPGD) CALL GOTO_SURFEX(JPGD) TFILE_SURFEX => TZFILENESTPGD(JPGD)%TZFILE diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90 index a3fe2ae9c44cfcfac1d4dd4687c04a4f73de4715..792b9404bc9cbbc85ef064f93a8fe11156482238 100644 --- a/src/MNH/prep_real_case.f90 +++ b/src/MNH/prep_real_case.f90 @@ -388,88 +388,84 @@ !* 0. DECLARATIONS ! ------------ ! -USE MODE_GRIDPROJ ! executive modules -USE MODE_GRIDCART -USE MODE_POS +USE MODD_CH_AEROSOL, ONLY: LORILAM, LINITPM, XINIRADIUSI, XINIRADIUSJ, & + XINISIGI, XINISIGJ, XN0IMIN, XN0JMIN, CRGUNIT +USE MODD_CH_MNHC_n, ONLY: LUSECHAQ_n=>LUSECHAQ,LUSECHIC_n=>LUSECHIC, LUSECHEM_n=>LUSECHEM +USE MODD_CONF +USE MODD_CONF_n +USE MODD_CST +USE MODD_DIM_n +USE MODD_DUST, ONLY: LDUST, NMODE_DST, CRGUNITD, XINISIG, XINIRADIUS, XN0MIN +USE MODD_DYN_n, CPRESOPT_n=>CPRESOPT, LRES_n=>LRES, XRES_n=>XRES , NITR_n=>NITR +USE MODD_FIELD_n +USE MODD_GR_FIELD_n +USE MODD_GRID +USE MODD_GRID_n +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_n, ONLY: CINIFILE,TINIFILE,TLUOUT +USE MODD_METRICS_n +USE MODD_MNH_SURFEX_n +USE MODD_NESTING +USE MODD_NSV +USE MODD_PARAMETERS +USE MODD_PARAM_n +USE MODD_PREP_REAL +USE MODD_REF_n +USE MODD_SALT, ONLY: LSALT, NMODE_SLT, CRGUNITS, XINISIG_SLT, XINIRADIUS_SLT, XN0MIN_SLT +USE MODD_TURB_n +! +USE MODE_EXTRAPOL +USE MODE_FIELD USE MODE_FM -USE MODE_FMWRIT, ONLY : IO_WRITE_HEADER +USE MODE_FMREAD +USE MODE_FMWRIT, ONLY: IO_WRITE_HEADER +USE MODE_GRIDCART +USE MODE_GRIDPROJ USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST, IO_FILE_FIND_BYNAME,IO_FILE_PRINT_LIST +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST, IO_FILE_FIND_BYNAME,IO_FILE_PRINT_LIST USE MODE_ll -USE MODE_MSG USE MODE_MODELN_HANDLER -USE MODE_FMREAD -USE MODE_FIELD -USE MODN_CONFZ +USE MODE_MPPDB +USE MODE_MSG +USE MODE_POS +USE MODE_SPLITTINGZ_ll ! -USE MODI_DEFAULT_DESFM_n ! interface modules -USE MODI_OPEN_PRC_FILES -USE MODI_READ_ALL_DATA_MESONH_CASE -USE MODI_READ_ALL_DATA_GRIB_CASE -USE MODI_METRICS -USE MODI_UPDATE_METRICS -USE MODI_SET_REF -USE MODI_VER_PREP_GRIBEX_CASE -USE MODI_VER_PREP_MESONH_CASE -USE MODI_VER_THERMO -USE MODI_VER_DYN -USE MODI_INI_PROG_VAR -USE MODI_ERROR_ON_TEMPERATURE -USE MODI_WRITE_DESFM_n -USE MODI_WRITE_LFIFM_n -USE MODI_PRESSURE_IN_PREP USE MODI_BOUNDARIES +USE MODI_COMPARE_DAD USE MODI_DEALLOCATE_MODEL1 +USE MODI_DEALLOC_PARA_LL +USE MODI_DEFAULT_DESFM_n +USE MODI_ERROR_ON_TEMPERATURE +USE MODI_INI_PROG_VAR +USE MODI_METRICS USE MODI_MNHREAD_ZS_DUMMY_n USE MODI_MNHWRITE_ZS_DUMMY_n -USE MODI_COMPARE_DAD +USE MODI_OPEN_PRC_FILES USE MODI_PREP_SURF_MNH +USE MODI_PRESSURE_IN_PREP +USE MODI_READ_ALL_DATA_GRIB_CASE +USE MODI_READ_ALL_DATA_MESONH_CASE +USE MODI_READ_ALL_NAMELISTS USE MODI_READ_CHEM_DATA_NETCDF_CASE -USE MODI_VER_PREP_NETCDF_CASE -! -USE MODD_CONF ! declaration modules -USE MODD_CONF_n -USE MODD_LUNIT -USE MODD_LUNIT_n -USE MODD_DIM_n -USE MODD_GRID_n -USE MODD_GRID -USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG -USE MODD_METRICS_n -USE MODD_LBC_n -USE MODD_PARAM_n -USE MODD_CST -USE MODD_PARAMETERS -USE MODD_FIELD_n -USE MODD_LSFIELD_n -USE MODD_GR_FIELD_n -USE MODD_NESTING -USE MODD_TURB_n -USE MODD_DYN_n, CPRESOPT_n=>CPRESOPT, LRES_n=>LRES, XRES_n=>XRES , NITR_n=>NITR -USE MODD_REF_n -USE MODD_HURR_CONF -USE MODD_NSV -USE MODD_CH_AEROSOL, ONLY: LORILAM, LINITPM, XINIRADIUSI, XINIRADIUSJ,& - XINISIGI, XINISIGJ, XN0IMIN, XN0JMIN, CRGUNIT -USE MODD_DUST, ONLY: LDUST, NMODE_DST, CRGUNITD, XINISIG, XINIRADIUS, XN0MIN -USE MODD_SALT, ONLY: LSALT, NMODE_SLT, CRGUNITS, XINISIG_SLT, XINIRADIUS_SLT, XN0MIN_SLT -USE MODD_IO_ll, ONLY : GSMONOPROC,TFILEDATA,LIOCDF4,LLFIOUT,TFILE_SURFEX -USE MODD_PREP_REAL -USE MODD_CH_MNHC_n, ONLY: LUSECHAQ_n=>LUSECHAQ,LUSECHIC_n=>LUSECHIC, LUSECHEM_n=>LUSECHEM USE MODI_READ_VER_GRID -USE MODE_MPPDB -USE MODE_SPLITTINGZ_ll -USE MODE_EXTRAPOL -! USE MODI_SECOND_MNH +USE MODI_SET_REF +USE MODI_UPDATE_METRICS +USE MODI_VER_DYN +USE MODI_VER_PREP_GRIBEX_CASE +USE MODI_VER_PREP_MESONH_CASE +USE MODI_VER_PREP_NETCDF_CASE USE MODI_VERSION -USE MODI_DEALLOC_PARA_LL -USE MODI_READ_ALL_NAMELISTS -USE MODD_MNH_SURFEX_n -! -USE MODE_MPPDB +USE MODI_VER_THERMO +USE MODI_WRITE_DESFM_n +USE MODI_WRITE_LFIFM_n ! -USE MODN_CONF, ONLY : JPHEXT , NHALO +USE MODN_CONF, ONLY: JPHEXT , NHALO +USE MODN_CONFZ ! IMPLICIT NONE ! @@ -1078,7 +1074,7 @@ CALL MNHREAD_ZS_DUMMY_n(TZPGDFILE) ! !* writing in the output file ! -COUTFMFILE=TINIFILE%CNAME +TOUTDATAFILE => TINIFILE CALL MNHWRITE_ZS_DUMMY_n(TINIFILE) ! CALL DEALLOCATE_MODEL1(3) diff --git a/src/MNH/prep_surf_mnh.f90 b/src/MNH/prep_surf_mnh.f90 index 13521b5107363c2f6c82f4b482bf4df469336d00..a67b41f79e2488a9e087d96fbd215985da9007f6 100644 --- a/src/MNH/prep_surf_mnh.f90 +++ b/src/MNH/prep_surf_mnh.f90 @@ -50,8 +50,8 @@ END MODULE MODI_PREP_SURF_MNH !------------------------------------------------------------------ ! USE MODD_IO_SURF_MNH, ONLY : COUTFILE -USE MODD_LUNIT, ONLY : COUTFMFILE, TLUOUT0 -USE MODD_LUNIT_n, ONLY : CINIFILE +USE MODD_LUNIT, ONLY : TLUOUT0, TOUTDATAFILE +USE MODD_LUNIT_n, ONLY : CINIFILE, TINIFILE USE MODD_MNH_SURFEX_n USE MODD_TIME_n, ONLY : TDTCUR ! @@ -84,7 +84,7 @@ WRITE(ILUOUT0,*) '***************************************************' ! ! COUTFILE = CINIFILE -COUTFMFILE = CINIFILE +TOUTDATAFILE => TINIFILE ! YATMFILETYPE = HATMFILETYPE IF(YATMFILETYPE=='GRIBEX') YATMFILETYPE='GRIB ' diff --git a/src/MNH/prep_surfex.f90 b/src/MNH/prep_surfex.f90 index 11feb97529863f153478e63d2e45a29f3dfa3646..8fb535c4690f6e998af09c40b8c4d8a604e5bf1f 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,COUTFMFILE, TLUOUT0 +USE MODD_LUNIT, ONLY : CLUOUT0, CPGDFILE, TLUOUT0 USE MODD_LUNIT_n, ONLY : CINIFILE USE MODD_MNH_SURFEX_n USE MODD_PARAMETERS, ONLY : JPMODELMAX,JPHEXT,JPVEXT, NUNDEF, XUNDEF diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90 index 4eca7fe7c04ebb38fdcbec80f8eed0b82f071f65..c598b4fd25b9b159ede18e277723afa97c6fb250 100644 --- a/src/MNH/spawn_model2.f90 +++ b/src/MNH/spawn_model2.f90 @@ -1477,7 +1477,7 @@ ZWRITE = ZTIME2 - ZTIME1 ZTIME1 = ZTIME2 ! TFILE_SURFEX => TZFILE -CALL SPAWN_SURF(HINIFILE,HINIFILEPGD,OSPAWN_SURF) +CALL SPAWN_SURF(HINIFILE,HINIFILEPGD,TZFILE,OSPAWN_SURF) NULLIFY(TFILE_SURFEX) ! CALL SECOND_MNH(ZTIME2) diff --git a/src/MNH/spawn_surf.f90 b/src/MNH/spawn_surf.f90 index f80801dd3c492bb1bbe609bb82f73b6e99ba7981..d549fcf15fb5a5b99dc0f425e1a3e5b605cc1864 100644 --- a/src/MNH/spawn_surf.f90 +++ b/src/MNH/spawn_surf.f90 @@ -14,11 +14,15 @@ MODULE MODI_SPAWN_SURF ! INTERFACE ! - SUBROUTINE SPAWN_SURF (HINIFILE, HINIFILEPGD, OSPAWN_SURF) + SUBROUTINE SPAWN_SURF (HINIFILE, HINIFILEPGD, TPOUTDATAFILE, OSPAWN_SURF) ! -CHARACTER (LEN=*), INTENT(IN) :: HINIFILE ! Input file -CHARACTER (LEN=*), INTENT(IN) :: HINIFILEPGD -LOGICAL, INTENT(IN) :: OSPAWN_SURF ! flag to spawn surface fields +USE MODD_IO_ll, ONLY: TFILEDATA + +! +CHARACTER (LEN=*), INTENT(IN) :: HINIFILE ! Input file +CHARACTER (LEN=*), INTENT(IN) :: HINIFILEPGD +TYPE(TFILEDATA),POINTER,INTENT(IN) :: TPOUTDATAFILE +LOGICAL, INTENT(IN) :: OSPAWN_SURF ! flag to spawn surface fields ! END SUBROUTINE SPAWN_SURF ! @@ -27,9 +31,9 @@ END INTERFACE END MODULE MODI_SPAWN_SURF ! ! -! ####################################################################### - SUBROUTINE SPAWN_SURF (HINIFILE, HINIFILEPGD, OSPAWN_SURF) -! ####################################################################### +! ######################################################################### + SUBROUTINE SPAWN_SURF (HINIFILE, HINIFILEPGD, TPOUTDATAFILE, OSPAWN_SURF) +! ######################################################################### ! !!**** *SPAWN_SURF * - subroutine to call spawning of surface fields !! @@ -72,31 +76,29 @@ END MODULE MODI_SPAWN_SURF !* 0. DECLARATIONS ! ------------ ! -USE MODD_LUNIT, ONLY : CPGDFILE, COUTFMFILE -USE MODD_PARAM_n, ONLY : CSURF -USE MODD_NESTING, ONLY : CMY_NAME, CDAD_NAME USE MODD_CONF, ONLY : NVERB USE MODD_GRID_n, ONLY : XZS -USE MODD_TIME_n, ONLY : TDTCUR +USE MODD_IO_ll, ONLY : TFILEDATA USE MODD_IO_SURF_MNH, ONLY : COUTFILE -! -USE MODI_WRITE_HGRIDn -USE MODI_MNHPUT_ZS_n +USE MODD_LUNIT, ONLY : CPGDFILE, TOUTDATAFILE +USE MODD_MNH_SURFEX_n +USE MODD_NESTING, ONLY : CMY_NAME, CDAD_NAME +USE MODD_PARAM_n, ONLY : CSURF +USE MODD_TIME_n, ONLY : TDTCUR ! USE MODE_ll USE MODE_FMWRIT USE MODE_IO_ll - !JUAN REALZ USE MODE_MODELN_HANDLER - !JUAN REALZ -USE MODI_ZOOM_PGD_SURF_ATM -USE MODI_WRITE_PGD_SURF_ATM_N -USE MODI_WRITE_SURF_ATM_N +! USE MODI_INIT_PGD_SURF_ATM +USE MODI_MNHPUT_ZS_n USE MODI_PREP_SURF_ATM USE MODI_WRITE_DIAG_SURF_ATM_N -USE MODD_MNH_SURFEX_n -! +USE MODI_WRITE_HGRIDn +USE MODI_WRITE_PGD_SURF_ATM_N +USE MODI_WRITE_SURF_ATM_N +USE MODI_ZOOM_PGD_SURF_ATM ! IMPLICIT NONE ! @@ -104,9 +106,10 @@ IMPLICIT NONE ! !* 0.1.2 Declarations of dummy arguments : ! -CHARACTER (LEN=*), INTENT(IN) :: HINIFILE ! Input file -CHARACTER (LEN=*), INTENT(IN) :: HINIFILEPGD -LOGICAL, INTENT(IN) :: OSPAWN_SURF ! flag to spawn surface fields +CHARACTER (LEN=*), INTENT(IN) :: HINIFILE ! Input file +CHARACTER (LEN=*), INTENT(IN) :: HINIFILEPGD +TYPE(TFILEDATA),POINTER,INTENT(IN) :: TPOUTDATAFILE +LOGICAL, INTENT(IN) :: OSPAWN_SURF ! flag to spawn surface fields ! !* 0.1.3 Declarations of local variables : ! @@ -119,7 +122,7 @@ INTEGER :: IINFO_ll IF (CSURF=='EXTE') THEN IF (OSPAWN_SURF) THEN CPGDFILE = CMY_NAME(2) - COUTFMFILE = CMY_NAME(2) + TOUTDATAFILE => TPOUTDATAFILE !Corresponding to file with CNAME = CMY_NAME(2) COUTFILE = CMY_NAME(2) !* spawn PGD fields CALL GOTO_SURFEX(1) diff --git a/src/MNH/zoom_pgd.f90 b/src/MNH/zoom_pgd.f90 index 1252f83bd57d238f7877056ed1c75e6f3d128cc0..01bfaf3c7f2adca5428d0fba3b6824fbe405b9a9 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, COUTFMFILE, CPGDFILE, TLUOUT0 +USE MODD_LUNIT, ONLY : CLUOUT0, CPGDFILE, TLUOUT0, TOUTDATAFILE USE MODD_PARAMETERS, ONLY : XUNDEF, NUNDEF, JPVEXT, JPHEXT, JPMODELMAX USE MODD_PARAM_n, ONLY : CSURF USE MODD_DIM_n, ONLY : NIMAX, NJMAX @@ -216,7 +216,7 @@ IF (CSURF=='EXTE') THEN CALL READ_ALL_NAMELISTS(YSURF_CUR,'MESONH','PRE',.FALSE.) YPGDFILE = CPGDFILE CPGDFILE = YZOOMFILE - COUTFMFILE = YZOOMFILE + TOUTDATAFILE => TZZOOMFILE CALL GOTO_SURFEX(1) CALL ZOOM_PGD_SURF_ATM(YSURF_CUR,'MESONH',YPGDFILE,'MESONH',YZOOMFILE,'MESONH') !