From bbad15cc209f1ffa3a80ab4fd84962c61768fc94 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Wed, 6 Mar 2019 09:44:12 +0100 Subject: [PATCH] Philippe 05/03/2019: IO: rename IO subroutines and modules + restructure IO source files --- LIBTOOLS/tools/lfi2cdf/src/lfi2cdf.f90 | 17 +- LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 | 184 +-- src/LIB/SURCOUCHE/src/io_write_field.f90 | 500 ------ src/LIB/SURCOUCHE/src/modd_io.f90 | 8 +- src/LIB/SURCOUCHE/src/mode_allocbuff.f90 | 22 +- src/LIB/SURCOUCHE/src/mode_field.f90 | 2 +- src/LIB/SURCOUCHE/src/mode_fm.f90 | 34 - src/LIB/SURCOUCHE/src/mode_ga.f90 | 18 +- src/LIB/SURCOUCHE/src/mode_gather.f90 | 68 +- src/LIB/SURCOUCHE/src/mode_init_ll.f90 | 8 +- src/LIB/SURCOUCHE/src/mode_io.f90 | 53 +- src/LIB/SURCOUCHE/src/mode_io_field_read.f90 | 698 ++++----- src/LIB/SURCOUCHE/src/mode_io_field_write.f90 | 1344 +++++++++++------ src/LIB/SURCOUCHE/src/mode_io_file.f90 | 125 +- src/LIB/SURCOUCHE/src/mode_io_file_lfi.f90 | 93 +- src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90 | 124 +- .../SURCOUCHE/src/mode_io_manage_struct.f90 | 129 +- src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 | 188 +-- src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 | 447 +++--- src/LIB/SURCOUCHE/src/mode_io_tools.f90 | 264 ++-- src/LIB/SURCOUCHE/src/mode_io_tools_lfi.f90 | 16 +- src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90 | 246 +-- src/LIB/SURCOUCHE/src/mode_io_write_lfi.f90 | 190 +-- src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 | 599 ++++---- src/LIB/SURCOUCHE/src/mode_lb_ll.f90 | 13 +- src/LIB/SURCOUCHE/src/mode_mppdb.f90 | 11 +- src/LIB/SURCOUCHE/src/mode_msg.f90 | 16 +- src/LIB/SURCOUCHE/src/mode_scatter.f90 | 106 +- src/LIB/SURCOUCHE/src/modi_fm.f90 | 37 - src/LIB/SURCOUCHE/src/modi_io.f90 | 49 - src/LIB/SURCOUCHE/src/modn_confio.f90 | 8 +- src/LIB/SURCOUCHE/src/system_mnh.f90 | 1 - src/MNH/adjust_langlois.f90 | 1 - src/MNH/adv_forcingn.f90 | 16 +- src/MNH/advec_4th_order_aux.f90 | 11 +- src/MNH/advection_metsv.f90 | 29 +- src/MNH/aerozon.f90 | 6 +- src/MNH/aircraft_balloon_evol.f90 | 5 +- src/MNH/anel_balancen.f90 | 1 - src/MNH/budget.f90 | 6 +- src/MNH/c2r2_adjust.f90 | 22 +- src/MNH/call_rttov11.f90 | 17 +- src/MNH/call_rttov8.f90 | 27 +- src/MNH/ch_aer_mod_init.f90 | 44 +- src/MNH/ch_emission_flux0d.f90 | 9 +- src/MNH/ch_field_valuen.f90 | 14 +- src/MNH/ch_init_constn.f90 | 10 +- src/MNH/ch_init_meteo.f90 | 9 +- src/MNH/ch_model0d.f90 | 12 +- src/MNH/ch_open_input.f90 | 16 +- src/MNH/ch_read_chem.f90 | 11 +- src/MNH/ch_surface0d.f90 | 10 +- src/MNH/check_zhat.f90 | 20 +- src/MNH/check_zs.f90 | 24 +- src/MNH/close_file_mnh.f90 | 8 +- src/MNH/compare_dad.f90 | 92 +- src/MNH/compare_with_pgd_domain.f90 | 2 - src/MNH/compute_r00.f90 | 61 +- src/MNH/compute_spectre.f90 | 2 - src/MNH/define_maskn.f90 | 6 +- src/MNH/detect_field_mnh.f90 | 19 +- src/MNH/diag.f90 | 49 +- src/MNH/elec_fieldn.f90 | 7 +- src/MNH/elec_trid.f90 | 5 +- src/MNH/elec_tridz.f90 | 5 +- src/MNH/endstep_budget.f90 | 8 +- src/MNH/fast_terms.f90 | 6 +- src/MNH/flash_geom_elec.f90 | 63 +- src/MNH/forcing.f90 | 21 +- src/MNH/free_atm_profile.f90 | 22 +- src/MNH/gps_zenith.f90 | 18 +- src/MNH/horibl.f90 | 11 +- src/MNH/ice_adjust.f90 | 13 +- src/MNH/ice_adjust_elec.f90 | 9 +- src/MNH/ini_aircraft_balloon.f90 | 27 +- src/MNH/ini_budget.f90 | 12 +- src/MNH/ini_cpl.f90 | 31 +- src/MNH/ini_deep_convection.f90 | 83 +- src/MNH/ini_drag.f90 | 6 +- src/MNH/ini_elec.f90 | 18 +- src/MNH/ini_elecn.f90 | 6 +- src/MNH/ini_field_elec.f90 | 5 +- src/MNH/ini_lb.f90 | 124 +- src/MNH/ini_lesn.f90 | 6 +- src/MNH/ini_ls.f90 | 23 +- src/MNH/ini_micron.f90 | 6 +- src/MNH/ini_modeln.f90 | 46 +- src/MNH/ini_param_elec.f90 | 20 +- src/MNH/ini_posprofilern.f90 | 5 +- src/MNH/ini_prog_var.f90 | 43 +- src/MNH/ini_radiations.f90 | 36 +- src/MNH/ini_radiations_ecmwf.f90 | 1 - src/MNH/ini_rain_ice.f90 | 1 - src/MNH/ini_rain_ice_elec.f90 | 10 +- src/MNH/ini_segn.f90 | 58 +- src/MNH/ini_seriesn.f90 | 5 +- src/MNH/ini_size_spawn.f90 | 69 +- src/MNH/ini_sizen.f90 | 55 +- src/MNH/ini_spectren.f90 | 21 +- src/MNH/ini_surf_rad.f90 | 20 +- src/MNH/ini_surfstationn.f90 | 7 +- src/MNH/init_for_convlfi.f90 | 79 +- src/MNH/init_ground_paramn.f90 | 5 +- src/MNH/init_mnh.f90 | 11 +- src/MNH/khko_notadjust.f90 | 15 +- src/MNH/latlon_to_xy.f90 | 30 +- src/MNH/les_specn.f90 | 6 +- src/MNH/lima.f90 | 10 +- src/MNH/lima_adjust.f90 | 19 +- src/MNH/lima_ccn_activation.f90 | 29 +- src/MNH/lima_nucleation_procs.f90 | 9 +- src/MNH/lima_warm.f90 | 11 +- src/MNH/lima_warm_nucl.f90 | 25 +- src/MNH/lochead.f90 | 10 +- src/MNH/ls_coupling.f90 | 21 +- src/MNH/menu_diachro.f90 | 18 +- src/MNH/mesonh.f90 | 12 +- src/MNH/mnh2lpdm.f90 | 48 +- src/MNH/mnh2lpdm_ech.f90 | 52 +- src/MNH/mnh2lpdm_ini.f90 | 35 +- src/MNH/mnh_surf_grid_io_init.f90 | 26 +- src/MNH/mnhclose_aux_io_surf.f90 | 11 +- src/MNH/mnhclose_namelist.f90 | 4 +- src/MNH/mnhclose_write_cover_tex.f90 | 14 +- src/MNH/mnhend_io_surfn.f90 | 10 +- src/MNH/mnhinit_io_surfn.f90 | 2 - src/MNH/mnhopen_aux_io_surf.f90 | 23 +- src/MNH/mnhopen_namelist.f90 | 12 +- src/MNH/mnhopen_write_cover_tex.f90 | 14 +- src/MNH/mnhread_zs_dummyn.f90 | 36 +- src/MNH/mnhwrite_zs_dummyn.f90 | 32 +- src/MNH/modd_ch_model0d.f90 | 2 +- src/MNH/modd_io_nam.f90 | 6 +- src/MNH/modd_io_surf_mnh.f90 | 6 +- src/MNH/modd_lunit.f90 | 2 +- src/MNH/modd_lunitn.f90 | 4 +- src/MNH/modd_outn.f90 | 6 +- src/MNH/mode_les_diachro.f90 | 20 +- src/MNH/mode_time.f90 | 6 +- src/MNH/modeln.f90 | 54 +- src/MNH/modules_diachro.f90 | 10 +- src/MNH/open_file_mnh.f90 | 12 +- src/MNH/open_nestpgd_files.f90 | 51 +- src/MNH/open_prc_files.f90 | 30 +- src/MNH/paspol.f90 | 12 +- src/MNH/pgd_grid_io_init_mnh.f90 | 34 +- src/MNH/phys_paramn.f90 | 12 +- src/MNH/ppm.f90 | 6 - src/MNH/prandtl.f90 | 20 +- src/MNH/prep_ideal_case.f90 | 80 +- src/MNH/prep_nest_pgd.f90 | 72 +- src/MNH/prep_pgd.f90 | 70 +- src/MNH/prep_real_case.f90 | 42 +- src/MNH/prep_surf_mnh.f90 | 6 +- src/MNH/prep_surfex.f90 | 48 +- src/MNH/pressure_in_prep.f90 | 3 +- src/MNH/prognos.f90 | 5 +- src/MNH/radar_rain_ice.f90 | 6 +- src/MNH/radar_scattering.f90 | 45 +- src/MNH/radar_simulator.f90 | 14 +- src/MNH/radiations.f90 | 106 +- src/MNH/rain_c2r2_khko.f90 | 23 +- src/MNH/rain_ice.f90 | 2 +- src/MNH/rain_ice_red.f90 | 5 +- src/MNH/read_all_data_grib_case.f90 | 14 +- src/MNH/read_all_data_mesonh_case.f90 | 19 +- src/MNH/read_chem_data_netcdf_case.f90 | 12 +- src/MNH/read_desfmn.f90 | 8 +- src/MNH/read_dummy_gr_fieldn.f90 | 20 +- src/MNH/read_exsegn.f90 | 5 +- src/MNH/read_exspa.f90 | 20 +- src/MNH/read_field.f90 | 208 +-- src/MNH/read_grid_time_mesonh_case.f90 | 34 +- src/MNH/read_hgrid.f90 | 53 +- src/MNH/read_hgridn.f90 | 58 +- src/MNH/read_precip_field.f90 | 43 +- src/MNH/read_surf_mnh.f90 | 247 ++- src/MNH/read_ver_grid.f90 | 5 +- src/MNH/rel_forcingn.f90 | 1 - src/MNH/reset_exseg.f90 | 14 +- src/MNH/resolved_cloud.f90 | 4 +- src/MNH/resolved_elecn.f90 | 35 +- src/MNH/retrieve2_nest_infon.f90 | 2 +- src/MNH/series_cloud_elec.f90 | 5 +- src/MNH/seriesn.f90 | 5 +- src/MNH/set_advfrc.f90 | 9 +- src/MNH/set_bogus_vortex.f90 | 7 +- src/MNH/set_conc_lima.f90 | 5 +- src/MNH/set_cstn.f90 | 5 +- src/MNH/set_frc.f90 | 6 +- src/MNH/set_grid.f90 | 61 +- src/MNH/set_mass.f90 | 8 +- src/MNH/set_perturb.f90 | 5 +- src/MNH/set_ref.f90 | 16 +- src/MNH/set_relfrc.f90 | 10 +- src/MNH/set_rsou.f90 | 8 +- src/MNH/set_subdomain.f90 | 39 +- src/MNH/shallow_mf_pack.f90 | 24 +- src/MNH/spawn_field2.f90 | 86 +- src/MNH/spawn_grid2.f90 | 6 +- src/MNH/spawn_model2.f90 | 50 +- src/MNH/spawn_surf.f90 | 10 +- src/MNH/spawn_surf2_rain.f90 | 10 +- src/MNH/spawn_zs.f90 | 5 +- src/MNH/spawning.f90 | 36 +- src/MNH/spectre.f90 | 31 +- src/MNH/spectre_arome.f90 | 14 +- src/MNH/tke_eps_sources.f90 | 20 +- src/MNH/trid.f90 | 5 +- src/MNH/tridz.f90 | 5 +- src/MNH/turb.f90 | 28 +- src/MNH/turb_cloud_index.f90 | 30 +- src/MNH/turb_hor.f90 | 8 +- src/MNH/turb_hor_dyn_corr.f90 | 20 +- src/MNH/turb_hor_splt.f90 | 8 +- src/MNH/turb_hor_sv_flux.f90 | 18 +- src/MNH/turb_hor_thermo_corr.f90 | 18 +- src/MNH/turb_hor_thermo_flux.f90 | 24 +- src/MNH/turb_hor_uv.f90 | 14 +- src/MNH/turb_hor_uw.f90 | 14 +- src/MNH/turb_hor_vw.f90 | 14 +- src/MNH/turb_ver.f90 | 20 +- src/MNH/turb_ver_dyn_flux.f90 | 24 +- src/MNH/turb_ver_sv_flux.f90 | 16 +- src/MNH/turb_ver_thermo_corr.f90 | 18 +- src/MNH/turb_ver_thermo_flux.f90 | 18 +- src/MNH/uv_to_zonal_and_merid.f90 | 34 +- src/MNH/ver_int_thermo.f90 | 4 +- src/MNH/ver_interp_to_mixed_grid.f90 | 2 - src/MNH/ver_thermo.f90 | 16 +- src/MNH/viscosity.f90 | 8 +- src/MNH/write_aircraft_balloon.f90 | 4 +- src/MNH/write_balloonn.f90 | 24 +- src/MNH/write_budget.f90 | 20 +- src/MNH/write_desfmn.f90 | 4 +- src/MNH/write_diachro.f90 | 43 +- src/MNH/write_dummy_gr_fieldn.f90 | 22 +- src/MNH/write_hgrid.f90 | 35 +- src/MNH/write_hgridn.f90 | 38 +- src/MNH/write_lbn.f90 | 134 +- src/MNH/write_les_budgetn.f90 | 8 +- src/MNH/write_les_rt_budgetn.f90 | 8 +- src/MNH/write_les_sv_budgetn.f90 | 8 +- src/MNH/write_lesn.f90 | 8 +- src/MNH/write_lfifm1_for_diag.f90 | 545 ++++--- src/MNH/write_lfifm1_for_diag_supp.f90 | 164 +- src/MNH/write_lfifmn_fordiachron.f90 | 82 +- src/MNH/write_lfin.f90 | 540 +++---- src/MNH/write_profilern.f90 | 8 +- src/MNH/write_seriesn.f90 | 9 +- src/MNH/write_stationn.f90 | 8 +- src/MNH/write_surf_mnh.f90 | 184 +-- src/MNH/write_ts1d.f90 | 23 +- src/MNH/xy_to_latlon.f90 | 30 +- src/MNH/zoom_pgd.f90 | 72 +- src/MNH/zsmt_pgd.f90 | 27 +- 256 files changed, 5909 insertions(+), 6346 deletions(-) delete mode 100644 src/LIB/SURCOUCHE/src/io_write_field.f90 delete mode 100644 src/LIB/SURCOUCHE/src/mode_fm.f90 delete mode 100644 src/LIB/SURCOUCHE/src/modi_fm.f90 delete mode 100644 src/LIB/SURCOUCHE/src/modi_io.f90 diff --git a/LIBTOOLS/tools/lfi2cdf/src/lfi2cdf.f90 b/LIBTOOLS/tools/lfi2cdf/src/lfi2cdf.f90 index 3e0a8b2d7..bb8534b6d 100644 --- a/LIBTOOLS/tools/lfi2cdf/src/lfi2cdf.f90 +++ b/LIBTOOLS/tools/lfi2cdf/src/lfi2cdf.f90 @@ -1,21 +1,22 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- program LFI2CDF USE MODD_CONF, ONLY: CPROGRAM USE MODD_CONFZ, ONLY: NB_PROCIO_R USE MODD_DIM_n, ONLY: NIMAX_ll, NJMAX_ll, NKMAX - USE MODD_IO_ll, ONLY: LVERB_OUTLST, LVERB_STDOUT, NIO_ABORT_LEVEL, NIO_VERB, NGEN_ABORT_LEVEL, NGEN_VERB + USE MODD_IO, ONLY: LVERB_OUTLST, LVERB_STDOUT, NIO_ABORT_LEVEL, NIO_VERB, NGEN_ABORT_LEVEL, NGEN_VERB USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT USE MODD_TIMEZ, ONLY: TIMEZ - USE MODE_IO_ll, ONLY: INITIO_ll, SET_CONFIO_ll USE MODE_FIELD, ONLY: INI_FIELD_LIST + USE MODE_IO, ONLY: IO_Init, IO_Config_set USE mode_options USE MODE_SPLITTINGZ_ll, ONLY: INI_PARAZ_ll USE mode_util + USE MODI_VERSION USE MODN_CONFIO, ONLY: LCDF4, LLFIOUT, LLFIREAD @@ -43,7 +44,7 @@ program LFI2CDF CPROGRAM = 'LFICDF' - CALL INITIO_ll() + CALL IO_Init() CALL VERSION CALL INI_CST @@ -73,17 +74,17 @@ program LFI2CDF LCDF4 = .TRUE. LLFIOUT = .FALSE. LLFIREAD = .TRUE. - CALL SET_CONFIO_ll() + CALL IO_Config_set() ELSE IF (runmode == MODECDF2CDF) THEN LCDF4 = .TRUE. LLFIOUT = .FALSE. LLFIREAD = .FALSE. - CALL SET_CONFIO_ll() + CALL IO_Config_set() ELSE LCDF4 = .TRUE. LLFIOUT = .TRUE. LLFIREAD = .FALSE. - CALL SET_CONFIO_ll() + CALL IO_Config_set() END IF CALL INI_FIELD_LIST(1) diff --git a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 index 7fe27b75a..34c2d8332 100644 --- a/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 +++ b/LIBTOOLS/tools/lfi2cdf/src/mode_util.f90 @@ -1,19 +1,19 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! Modifications: ! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST !----------------------------------------------------------------- MODULE mode_util - USE MODD_IO_ll, ONLY: TFILE_ELT - USE MODD_NETCDF, ONLY: DIMCDF, IDCDF_KIND + USE MODD_IO, ONLY: TFILE_ELT + USE MODD_NETCDF, ONLY: DIMCDF, IDCDF_KIND USE MODD_PARAMETERS, ONLY: NLFIMAXCOMMENTLENGTH, NMNHNAMELGTMAX USE MODE_FIELD - USE MODE_FMREAD - USE MODE_FMWRIT + USE MODE_IO_FIELD_READ + USE MODE_IO_FIELD_WRITE USE mode_options @@ -59,7 +59,7 @@ CONTAINS USE MODD_DIM_n, ONLY: NIMAX_ll, NJMAX_ll, NKMAX USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT, NGRIDUNKNOWN - use mode_io_tools_nc4, only: io_guess_dimids_nc4 + use mode_io_tools_nc4, only: IO_Dimids_guess_nc4 TYPE(TFILE_ELT),DIMENSION(:), INTENT(IN) :: infiles TYPE(TFILE_ELT),DIMENSION(:), INTENT(IN) :: outfiles @@ -242,7 +242,7 @@ CONTAINS ! IF (status == NF90_NOERR) THEN tpreclist(ji)%found = .true. - CALL IO_GET_METADATA_NC4(kcdf_id2,var_id,tpreclist(ji)) + CALL IO_Metadata_get_nc4(kcdf_id2,var_id,tpreclist(ji)) END IF END IF @@ -334,7 +334,7 @@ END DO status = NF90_INQUIRE_VARIABLE(kcdf_id,var_id, name = tpreclist(ji)%name) IF (status /= NF90_NOERR) CALL HANDLE_ERR(status,__LINE__) tpreclist(ji)%found = .TRUE. - CALL IO_GET_METADATA_NC4(kcdf_id,var_id,tpreclist(ji)) + CALL IO_Metadata_get_nc4(kcdf_id,var_id,tpreclist(ji)) END DO END IF @@ -375,13 +375,13 @@ END DO ! Determine TDIMS IF (runmode==MODELFI2CDF) THEN ALLOCATE(tpreclist(ji)%TDIMS(tpreclist(ji)%TFIELD%NDIMS)) - CALL IO_GUESS_DIMIDS_NC4(outfiles(idx_out)%TFILE,tpreclist(ji)%TFIELD,& + CALL IO_Dimids_guess_nc4(outfiles(idx_out)%TFILE,tpreclist(ji)%TFIELD,& tpreclist(ji)%NSIZE,tpreclist(ji)%TDIMS,IRESP) ELSE !If we read netCDF4, we already have all necessary data !Special case for EMIS (only the first band is read/written) -> NDIMS reduced to 2 if(tpreclist(ji)%TFIELD%CMNHNAME=="EMIS") tpreclist(ji)%TFIELD%NDIMS = 2 - CALL IO_FILL_DIMS_NC4(outfiles(idx_out)%TFILE,tpreclist(ji),IRESP) + CALL IO_Dims_fill_nc4(outfiles(idx_out)%TFILE,tpreclist(ji),IRESP) ENDIF IF (IRESP/=0) THEN CALL PRINT_MSG(NVERB_WARNING,'IO','parse_infiles','can not guess dimensions for '//tpreclist(ji)%TFIELD%CMNHNAME// & @@ -409,14 +409,14 @@ END DO ! Determine TDIMS CALL PRINT_MSG(NVERB_DEBUG,'IO','parse_infiles',tpreclist(ji)%TFIELD%CMNHNAME//': try 3D') tpreclist(ji)%TFIELD%NDIMS = 3 !Try with 3D - CALL IO_GUESS_DIMIDS_NC4(outfiles(idx_out)%TFILE,tpreclist(ji)%TFIELD,& + CALL IO_Dimids_guess_nc4(outfiles(idx_out)%TFILE,tpreclist(ji)%TFIELD,& tpreclist(ji)%NSIZE,tpreclist(ji)%TDIMS,IRESP) ! IF (IRESP/=0 .OR. tpreclist(ji)%TDIMS(3)%LEN==1) THEN CALL PRINT_MSG(NVERB_DEBUG,'IO','parse_infiles',tpreclist(ji)%TFIELD%CMNHNAME//': try 2D') !Try again with 2D tpreclist(ji)%TFIELD%NDIMS = 2 - CALL IO_GUESS_DIMIDS_NC4(outfiles(idx_out)%TFILE,tpreclist(ji)%TFIELD,& + CALL IO_Dimids_guess_nc4(outfiles(idx_out)%TFILE,tpreclist(ji)%TFIELD,& tpreclist(ji)%NSIZE,tpreclist(ji)%TDIMS,IRESP) END IF ! @@ -425,7 +425,7 @@ END DO !Try again with 1D tpreclist(ji)%TFIELD%NDIMS = 1 tpreclist(ji)%TFIELD%CDIR = '--' !Assumption... - CALL IO_GUESS_DIMIDS_NC4(outfiles(idx_out)%TFILE,tpreclist(ji)%TFIELD,& + CALL IO_Dimids_guess_nc4(outfiles(idx_out)%TFILE,tpreclist(ji)%TFIELD,& tpreclist(ji)%NSIZE,tpreclist(ji)%TDIMS,IRESP) END IF ! @@ -474,7 +474,7 @@ END DO tpreclist(ji)%TFIELD%CDIR = 'XY' !Assumption END IF - CALL IO_FILL_DIMS_NC4(outfiles(idx_out)%TFILE,tpreclist(ji),IRESP) + CALL IO_Dims_fill_nc4(outfiles(idx_out)%TFILE,tpreclist(ji),IRESP) IF (tpreclist(ji)%NDIMS_FILE>0) THEN IF (tpreclist(ji)%CDIMNAMES_FILE(tpreclist(ji)%NDIMS_FILE)=='time') THEN @@ -623,7 +623,7 @@ END DO SUBROUTINE def_ncdf(infiles,outfiles,KNFILES_OUT) USE MODD_CONF, ONLY: NMNHVERSION - use mode_io_write_nc4, only: io_write_header_nc4 + use mode_io_write_nc4, only: IO_Header_write_nc4 TYPE(TFILE_ELT),DIMENSION(:),INTENT(IN) :: infiles TYPE(TFILE_ELT),DIMENSION(:),INTENT(IN) :: outfiles @@ -666,7 +666,7 @@ END DO kcdf_id = outfiles(ji)%TFILE%NNCID ! global attributes - CALL IO_WRITE_HEADER_NC4(outfiles(ji)%TFILE) + CALL IO_Header_write_nc4(outfiles(ji)%TFILE) ! WRITE(YMNHVERSION,"( I0,'.',I0,'.',I0 )" ) NMNHVERSION(1),NMNHVERSION(2),NMNHVERSION(3) status = NF90_PUT_ATT(kcdf_id,NF90_GLOBAL,'lfi2cdf_version',TRIM(YMNHVERSION)) @@ -737,15 +737,15 @@ END DO CASE (0) ALLOCATE(ITAB1D(1)) IF (tpreclist(ji)%calc) ALLOCATE(ITAB1D2(1)) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB1D(1)) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB1D(1)) CASE (1) ALLOCATE(ITAB1D(IDIMLEN(1))) IF (tpreclist(ji)%calc) ALLOCATE(ITAB1D2(IDIMLEN(1))) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB1D) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB1D) CASE (2) ALLOCATE(ITAB2D(IDIMLEN(1),IDIMLEN(2))) IF (tpreclist(ji)%calc) ALLOCATE(ITAB2D2(IDIMLEN(1),IDIMLEN(2))) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB2D) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB2D) CASE DEFAULT CALL PRINT_MSG(NVERB_WARNING,'IO','fill_files','too many dimensions for ' & //TRIM(tpreclist(ISRC)%name)//' => ignored') @@ -758,13 +758,13 @@ END DO SELECT CASE(IDIMS) CASE (0) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB1D2(1)) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB1D2(1)) ITAB1D(1) = ITAB1D(1) + ITAB1D2(1) CASE (1) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB1D2) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB1D2) ITAB1D(:) = ITAB1D(:) + ITAB1D2(:) CASE (2) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB2D2) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,ITAB2D2) ITAB2D(:,:) = ITAB2D(:,:) + ITAB2D2(:,:) END SELECT END DO @@ -772,15 +772,15 @@ END DO tpreclist(ji)%TFIELD%LTIMEDEP = gtimedep_out(ji) SELECT CASE(IDIMS) CASE (0) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,ITAB1D(1)) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,ITAB1D(1)) DEALLOCATE(ITAB1D) IF (tpreclist(ji)%calc) DEALLOCATE(ITAB1D2) CASE (1) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,ITAB1D) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,ITAB1D) DEALLOCATE(ITAB1D) IF (tpreclist(ji)%calc) DEALLOCATE(ITAB1D2) CASE (2) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,ITAB2D) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,ITAB2D) DEALLOCATE(ITAB2D) IF (tpreclist(ji)%calc) DEALLOCATE(ITAB2D2) END SELECT @@ -793,15 +793,15 @@ END DO SELECT CASE(IDIMS) CASE (0) ALLOCATE(GTAB1D(1)) - CALL IO_READ_FIELD (INFILES(1)%TFILE, tpreclist(ji)%TFIELD,GTAB1D(1)) + CALL IO_Field_read (INFILES(1)%TFILE, tpreclist(ji)%TFIELD,GTAB1D(1)) tpreclist(ji)%TFIELD%LTIMEDEP = gtimedep_out(ji) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,GTAB1D(1)) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,GTAB1D(1)) DEALLOCATE(GTAB1D) CASE (1) ALLOCATE(GTAB1D(IDIMLEN(1))) - CALL IO_READ_FIELD (INFILES(1)%TFILE, tpreclist(ji)%TFIELD,GTAB1D) + CALL IO_Field_read (INFILES(1)%TFILE, tpreclist(ji)%TFIELD,GTAB1D) tpreclist(ji)%TFIELD%LTIMEDEP = gtimedep_out(ji) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,GTAB1D) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,GTAB1D) DEALLOCATE(GTAB1D) CASE DEFAULT CALL PRINT_MSG(NVERB_WARNING,'IO','fill_files','too many dimensions for ' & @@ -826,23 +826,23 @@ END DO CASE (0) ALLOCATE(XTAB1D(1)) IF (tpreclist(ji)%calc) ALLOCATE(XTAB1D2(1)) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB1D(1)) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB1D(1)) CASE (1) ALLOCATE(XTAB1D(IDIMLEN(1))) IF (tpreclist(ji)%calc) ALLOCATE(XTAB1D2(IDIMLEN(1))) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB1D) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB1D) CASE (2) ALLOCATE(XTAB2D(IDIMLEN(1),IDIMLEN(2))) IF (tpreclist(ji)%calc) ALLOCATE(XTAB2D2(IDIMLEN(1),IDIMLEN(2))) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB2D) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB2D) CASE (3) ALLOCATE(XTAB3D(IDIMLEN(1),IDIMLEN(2),IDIMLEN(3))) IF (tpreclist(ji)%calc) ALLOCATE(XTAB3D2(IDIMLEN(1),IDIMLEN(2),IDIMLEN(3))) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB3D) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB3D) CASE (4) ALLOCATE(XTAB4D(IDIMLEN(1),IDIMLEN(2),IDIMLEN(3),IDIMLEN(4))) IF (tpreclist(ji)%calc) ALLOCATE(XTAB4D2(IDIMLEN(1),IDIMLEN(2),IDIMLEN(3),IDIMLEN(4))) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB4D) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB4D) CASE DEFAULT CALL PRINT_MSG(NVERB_WARNING,'IO','fill_files','too many dimensions for ' & //TRIM(tpreclist(ISRC)%name)//' => ignored') @@ -855,19 +855,19 @@ END DO SELECT CASE(IDIMS) CASE (0) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB1D2(1)) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB1D2(1)) XTAB1D(1) = XTAB1D(1) + XTAB1D2(1) CASE (1) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB1D2) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB1D2) XTAB1D(:) = XTAB1D(:) + XTAB1D2(:) CASE (2) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB2D2) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB2D2) XTAB2D(:,:) = XTAB2D(:,:) + XTAB2D2(:,:) CASE (3) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB3D2) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB3D2) XTAB3D(:,:,:) = XTAB3D(:,:,:) + XTAB3D2(:,:,:) CASE (4) - CALL IO_READ_FIELD(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB4D2) + CALL IO_Field_read(INFILES(1)%TFILE,tpreclist(ISRC)%TFIELD,XTAB4D2) XTAB4D(:,:,:,:) = XTAB4D(:,:,:,:) + XTAB4D2(:,:,:,:) END SELECT END DO @@ -875,23 +875,23 @@ END DO tpreclist(ji)%TFIELD%LTIMEDEP = gtimedep_out(ji) SELECT CASE(IDIMS) CASE (0) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,XTAB1D(1)) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,XTAB1D(1)) DEALLOCATE(XTAB1D) IF (tpreclist(ji)%calc) DEALLOCATE(XTAB1D2) CASE (1) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,XTAB1D) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,XTAB1D) DEALLOCATE(XTAB1D) IF (tpreclist(ji)%calc) DEALLOCATE(XTAB1D2) CASE (2) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,XTAB2D) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,XTAB2D) DEALLOCATE(XTAB2D) IF (tpreclist(ji)%calc) DEALLOCATE(XTAB2D2) CASE (3) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,XTAB3D) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,XTAB3D) DEALLOCATE(XTAB3D) IF (tpreclist(ji)%calc) DEALLOCATE(XTAB3D2) CASE (4) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,XTAB4D) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,XTAB4D) DEALLOCATE(XTAB4D) IF (tpreclist(ji)%calc) DEALLOCATE(XTAB4D2) END SELECT @@ -908,9 +908,9 @@ END DO ALLOCATE(CHARACTER(LEN=tpreclist(ji)%NSIZE)::YTAB0D) tpreclist(ji)%TFIELD%LTIMEDEP = gtimedep_in(ji) - CALL IO_READ_FIELD (INFILES(1)%TFILE, tpreclist(ji)%TFIELD,YTAB0D) + CALL IO_Field_read (INFILES(1)%TFILE, tpreclist(ji)%TFIELD,YTAB0D) tpreclist(ji)%TFIELD%LTIMEDEP = gtimedep_out(ji) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,YTAB0D) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,YTAB0D) DEALLOCATE(YTAB0D) @@ -923,9 +923,9 @@ END DO CYCLE END IF tpreclist(ji)%TFIELD%LTIMEDEP = gtimedep_in(ji) - CALL IO_READ_FIELD (INFILES(1)%TFILE, tpreclist(ji)%TFIELD%CMNHNAME,TZDATE) + CALL IO_Field_read (INFILES(1)%TFILE, tpreclist(ji)%TFIELD%CMNHNAME,TZDATE) tpreclist(ji)%TFIELD%LTIMEDEP = gtimedep_out(ji) - CALL IO_WRITE_FIELD(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,TZDATE) + CALL IO_Field_write(outfiles(idx)%TFILE,tpreclist(ji)%TFIELD,TZDATE) CASE default @@ -947,12 +947,12 @@ END DO USE MODD_DIM_n, ONLY: NIMAX_ll, NJMAX_ll, NKMAX USE MODD_GRID, ONLY: XBETA, XRPK, XLAT0, XLON0, XLATORI, XLONORI USE MODD_GRID_n, ONLY: LSLEVE, XXHAT, XYHAT, XZHAT - USE MODD_IO_ll, ONLY: LIOCDF4 + USE MODD_IO, ONLY: LIOCDF4 USE MODD_PARAMETERS, ONLY: JPHEXT USE MODD_PARAMETERS_ll, ONLY: JPHEXT_ll=>JPHEXT, JPVEXT_ll=>JPVEXT USE MODD_TIME_n, ONLY: TDTCUR, TDTMOD - USE MODE_FM, ONLY: IO_FILE_OPEN_ll, IO_FILE_CLOSE_ll + USE MODE_IO_FILE, ONLY: IO_FILE_OPEN, IO_FILE_CLOSE USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST TYPE(TFILE_ELT),DIMENSION(:),INTENT(OUT) :: infiles @@ -981,7 +981,7 @@ END DO ! NetCDF ! CALL IO_FILE_ADD2LIST(INFILES(1)%TFILE,HINFILE,'MNH','READ',HFORMAT='NETCDF4') - CALL IO_FILE_OPEN_ll(INFILES(1)%TFILE) + CALL IO_FILE_OPEN(INFILES(1)%TFILE) nbvar_infile = INFILES(1)%TFILE%NNCNAR ELSE @@ -990,7 +990,7 @@ END DO ! CALL IO_FILE_ADD2LIST(INFILES(1)%TFILE,HINFILE,'MNH','READ', & HFORMAT='LFI',KLFIVERB=0) - CALL IO_FILE_OPEN_ll(INFILES(1)%TFILE) + CALL IO_FILE_OPEN(INFILES(1)%TFILE) ilu = INFILES(1)%TFILE%NLFIFLU @@ -998,54 +998,54 @@ END DO IF (options(OPTLIST)%set) THEN CALL LFILAF(iresp,ilu,lfalse) - CALL IO_FILE_CLOSE_ll(INFILES(1)%TFILE) + CALL IO_FILE_CLOSE(INFILES(1)%TFILE) return END IF END IF ! - !Read problem dimensions and some grid variables (needed to determine domain size and also by IO_FILE_OPEN_ll to create netCDF files) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'JPHEXT',JPHEXT) + !Read problem dimensions and some grid variables (needed to determine domain size and also by IO_FILE_OPEN to create netCDF files) + CALL IO_Field_read(INFILES(1)%TFILE,'JPHEXT',JPHEXT) JPHEXT_ll = JPHEXT JPVEXT_ll = JPVEXT ! ALLOCATE(NIMAX_ll,NJMAX_ll,NKMAX) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'IMAX',NIMAX_ll) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'JMAX',NJMAX_ll) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'KMAX',NKMAX,IRESP2) + CALL IO_Field_read(INFILES(1)%TFILE,'IMAX',NIMAX_ll) + CALL IO_Field_read(INFILES(1)%TFILE,'JMAX',NJMAX_ll) + CALL IO_Field_read(INFILES(1)%TFILE,'KMAX',NKMAX,IRESP2) IF (IRESP2/=0) NKMAX = 0 ! - CALL IO_READ_FIELD(INFILES(1)%TFILE,'PROGRAM',CPROGRAM_ORIG) + CALL IO_Field_read(INFILES(1)%TFILE,'PROGRAM',CPROGRAM_ORIG) ! ALLOCATE(CSTORAGE_TYPE) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'STORAGE_TYPE',CSTORAGE_TYPE) + CALL IO_Field_read(INFILES(1)%TFILE,'STORAGE_TYPE',CSTORAGE_TYPE) ! ALLOCATE(XXHAT(NIMAX_ll+2*JPHEXT)) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'XHAT',XXHAT) + CALL IO_Field_read(INFILES(1)%TFILE,'XHAT',XXHAT) ALLOCATE(XYHAT(NJMAX_ll+2*JPHEXT)) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'YHAT',XYHAT) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'CARTESIAN',LCARTESIAN) + CALL IO_Field_read(INFILES(1)%TFILE,'YHAT',XYHAT) + CALL IO_Field_read(INFILES(1)%TFILE,'CARTESIAN',LCARTESIAN) ! - CALL IO_READ_FIELD(INFILES(1)%TFILE,'LAT0',XLAT0) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'LON0',XLON0) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'BETA',XBETA) + CALL IO_Field_read(INFILES(1)%TFILE,'LAT0',XLAT0) + CALL IO_Field_read(INFILES(1)%TFILE,'LON0',XLON0) + CALL IO_Field_read(INFILES(1)%TFILE,'BETA',XBETA) ! IF (.NOT.LCARTESIAN) THEN - CALL IO_READ_FIELD(INFILES(1)%TFILE,'RPK', XRPK) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'LATORI',XLATORI) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'LONORI',XLONORI) + CALL IO_Field_read(INFILES(1)%TFILE,'RPK', XRPK) + CALL IO_Field_read(INFILES(1)%TFILE,'LATORI',XLATORI) + CALL IO_Field_read(INFILES(1)%TFILE,'LONORI',XLONORI) ENDIF ! IF (TRIM(CPROGRAM_ORIG)/='PGD' .AND. TRIM(CPROGRAM_ORIG)/='NESPGD' .AND. TRIM(CPROGRAM_ORIG)/='ZOOMPG' & .AND. .NOT.(TRIM(CPROGRAM_ORIG)=='REAL' .AND. CSTORAGE_TYPE=='SU') ) THEN !condition to detect PREP_SURFEX ALLOCATE(XZHAT(NKMAX+2*JPVEXT)) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'ZHAT',XZHAT) + CALL IO_Field_read(INFILES(1)%TFILE,'ZHAT',XZHAT) ALLOCATE(LSLEVE) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'SLEVE',LSLEVE) + CALL IO_Field_read(INFILES(1)%TFILE,'SLEVE',LSLEVE) ALLOCATE(TDTMOD) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'DTMOD',TDTMOD,IRESP2) + CALL IO_Field_read(INFILES(1)%TFILE,'DTMOD',TDTMOD,IRESP2) IF(IRESP2/=0) DEALLOCATE(TDTMOD) ALLOCATE(TDTCUR) - CALL IO_READ_FIELD(INFILES(1)%TFILE,'DTCUR',TDTCUR,IRESP2) + CALL IO_Field_read(INFILES(1)%TFILE,'DTCUR',TDTCUR,IRESP2) IF(IRESP2/=0) DEALLOCATE(TDTCUR) END IF ! @@ -1061,7 +1061,7 @@ END DO idx = KNFILES_OUT CALL IO_FILE_ADD2LIST(outfiles(idx)%TFILE,HOUTFILE,'MNH','WRITE', & HFORMAT='NETCDF4',OOLD=.TRUE.) - CALL IO_FILE_OPEN_ll(outfiles(idx)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) + CALL IO_FILE_OPEN(outfiles(idx)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) IF (options(OPTCOMPRESS)%set) THEN outfiles(idx)%tfile%LNCCOMPRESS = .TRUE. @@ -1084,7 +1084,7 @@ END DO CALL IO_FILE_ADD2LIST(outfiles(idx)%TFILE,houtfile,'MNH','WRITE', & HFORMAT='LFI',KLFIVERB=0,OOLD=.TRUE.) LIOCDF4 = .FALSE. !Necessary to open correctly the LFI file - CALL IO_FILE_OPEN_ll(outfiles(idx)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) + CALL IO_FILE_OPEN(outfiles(idx)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) LIOCDF4 = .TRUE. END IF ! @@ -1095,7 +1095,7 @@ END DO idx = KNFILES_OUT CALL IO_FILE_ADD2LIST(outfiles(idx)%TFILE,'dummy_file','MNH','WRITE', & HFORMAT='NETCDF4',OOLD=.TRUE.) - CALL IO_FILE_OPEN_ll(outfiles(idx)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) + CALL IO_FILE_OPEN(outfiles(idx)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) END IF PRINT *,'--> Converted to file: ', TRIM(houtfile) @@ -1103,7 +1103,7 @@ END DO END SUBROUTINE OPEN_FILES SUBROUTINE OPEN_SPLIT_NCFILES_OUT(outfiles,KNFILES_OUT,houtfile,nbvar,options) - USE MODE_FM, ONLY: IO_FILE_OPEN_ll + USE MODE_IO_FILE, ONLY: IO_FILE_OPEN USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST TYPE(TFILE_ELT),DIMENSION(:), INTENT(INOUT) :: outfiles @@ -1150,7 +1150,7 @@ END DO filename = trim(houtfile)//'.'//TRIM(YVARS(ji)) CALL IO_FILE_ADD2LIST(outfiles(ji)%TFILE,filename,'MNH','WRITE', & HFORMAT='NETCDF4') - CALL IO_FILE_OPEN_ll(outfiles(ji)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) + CALL IO_FILE_OPEN(outfiles(ji)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) IF (options(OPTCOMPRESS)%set) THEN outfiles(ji)%tfile%LNCCOMPRESS = .TRUE. @@ -1168,7 +1168,7 @@ END DO END SUBROUTINE OPEN_SPLIT_NCFILES_OUT SUBROUTINE CLOSE_FILES(filelist,KNFILES) - USE MODE_FM, ONLY: IO_FILE_CLOSE_ll + USE MODE_IO_FILE, ONLY: IO_FILE_CLOSE TYPE(TFILE_ELT),DIMENSION(:),INTENT(INOUT) :: filelist INTEGER, INTENT(IN) :: KNFILES @@ -1179,13 +1179,13 @@ END DO CALL PRINT_MSG(NVERB_DEBUG,'IO','CLOSE_FILES','called') DO ji=1,KNFILES - IF (filelist(ji)%TFILE%LOPENED) CALL IO_FILE_CLOSE_ll(filelist(ji)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) + IF (filelist(ji)%TFILE%LOPENED) CALL IO_FILE_CLOSE(filelist(ji)%TFILE,HPROGRAM_ORIG=CPROGRAM_ORIG) END DO END SUBROUTINE CLOSE_FILES - SUBROUTINE IO_GET_METADATA_NC4(KFILE_ID,KVAR_ID,TPREC) + SUBROUTINE IO_Metadata_get_nc4(KFILE_ID,KVAR_ID,TPREC) USE MODD_DIM_n, ONLY: NKMAX USE MODD_PARAMETERS, ONLY: JPVEXT @@ -1198,7 +1198,7 @@ END DO INTEGER(KIND=IDCDF_KIND) :: ISTATUS INTEGER(KIND=IDCDF_KIND),DIMENSION(NF90_MAX_VAR_DIMS) :: IDIMS_ID - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_GET_METADATA_NC4','called') + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Metadata_get_nc4','called') ISTATUS = NF90_INQUIRE_VARIABLE(KFILE_ID,KVAR_ID,NDIMS = TPREC%NDIMS_FILE, & XTYPE = TPREC%NTYPE_FILE, DIMIDS = IDIMS_ID) @@ -1262,12 +1262,12 @@ END DO ISTATUS = NF90_GET_ATT(KFILE_ID,KVAR_ID,'units',TPREC%CUNITS_FILE) IF (ISTATUS /= NF90_NOERR) TPREC%CUNITS_FILE = '' - END SUBROUTINE IO_GET_METADATA_NC4 + END SUBROUTINE IO_Metadata_get_nc4 - SUBROUTINE IO_FILL_DIMS_NC4(TPFILE,TPREC,KRESP) - USE MODD_IO_ll, ONLY: TFILEDATA - use mode_io_tools_nc4, only: getdimcdf, io_find_dim_byname_nc4 + SUBROUTINE IO_Dims_fill_nc4(TPFILE,TPREC,KRESP) + USE MODD_IO, ONLY: TFILEDATA + use mode_io_tools_nc4, only: IO_Dimcdf_get_nc4, IO_Dim_find_byname_nc4 TYPE(TFILEDATA),INTENT(IN) :: TPFILE TYPE(workfield),INTENT(INOUT) :: TPREC @@ -1276,12 +1276,12 @@ END DO INTEGER :: JJ TYPE(DIMCDF),POINTER :: TZDIMPTR - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILL_DIMS_NC4','called') + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Dims_fill_nc4','called') KRESP = 0 IF (TPREC%NDIMS_FILE<TPREC%TFIELD%NDIMS) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILL_DIMS_NC4','less dimensions than expected for '//TRIM(TPREC%TFIELD%CMNHNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dims_fill_nc4','less dimensions than expected for '//TRIM(TPREC%TFIELD%CMNHNAME)// & ' => ignored') TPREC%tbw = .FALSE. TPREC%tbr = .FALSE. @@ -1293,10 +1293,10 @@ END DO DO JJ=1,TPREC%TFIELD%NDIMS !DO JJ=1,TPREC%NDIMS_FILE !NDIMS_FILE can be bigger than NDIMS due to time dimension (it can be ignored here) - CALL IO_FIND_DIM_BYNAME_NC4(TPFILE,TPREC%CDIMNAMES_FILE(JJ),TPREC%TDIMS(JJ),KRESP) + CALL IO_Dim_find_byname_nc4(TPFILE,TPREC%CDIMNAMES_FILE(JJ),TPREC%TDIMS(JJ),KRESP) !If dimension not found => create it IF (KRESP/=0) THEN - TZDIMPTR => GETDIMCDF(TPFILE,TPREC%NDIMSIZES_FILE(JJ)) + TZDIMPTR => IO_Dimcdf_get_nc4(TPFILE,TPREC%NDIMSIZES_FILE(JJ)) TPREC%TDIMS(JJ) = TZDIMPTR KRESP = 0 END IF @@ -1308,6 +1308,6 @@ END DO END IF END DO - END SUBROUTINE IO_FILL_DIMS_NC4 + END SUBROUTINE IO_Dims_fill_nc4 END MODULE mode_util diff --git a/src/LIB/SURCOUCHE/src/io_write_field.f90 b/src/LIB/SURCOUCHE/src/io_write_field.f90 deleted file mode 100644 index 70bca359e..000000000 --- a/src/LIB/SURCOUCHE/src/io_write_field.f90 +++ /dev/null @@ -1,500 +0,0 @@ -!MNH_LIC Copyright 2016-2018 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -! Original version: -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! -MODULE MODE_IO_WRITE_FIELD -! -USE MODD_IO_ll, ONLY: TOUTBAK -USE MODE_FIELD -USE MODE_FMWRIT -! -IMPLICIT NONE -! -CONTAINS -! -SUBROUTINE IO_WRITE_FIELDLIST(TPOUTPUT) -! -USE MODE_MODELN_HANDLER, ONLY : GET_CURRENT_MODEL_INDEX -! -IMPLICIT NONE -! -TYPE(TOUTBAK), INTENT(IN) :: TPOUTPUT !Output structure -! -INTEGER :: IDX -INTEGER :: IMI -INTEGER :: JI -! -IMI = GET_CURRENT_MODEL_INDEX() -! -DO JI = 1,SIZE(TPOUTPUT%NFIELDLIST) - IDX = TPOUTPUT%NFIELDLIST(JI) - SELECT CASE (TFIELDLIST(IDX)%NDIMS) - ! - !0D output - ! - CASE (0) - SELECT CASE (TFIELDLIST(IDX)%NTYPE) - ! - !0D real - ! - CASE (TYPEREAL) - IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X0D) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X0D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X0D(IMI)%DATA) - ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not allowed for 0D logical fields') - END IF - ! - !0D integer - ! - CASE (TYPEINT) - IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_N0D) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_N0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_N0D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_N0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_N0D(IMI)%DATA) - ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not allowed for 0D integer fields') - END IF - ! - !0D logical - ! - CASE (TYPELOG) - IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_L0D) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_L0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_L0D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_L0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_L0D(IMI)%DATA) - ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not allowed for 0D logical fields') - END IF - ! - !0D string - ! - CASE (TYPECHAR) - IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_C0D) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_C0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_C0D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_C0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_C0D(IMI)%DATA) - ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not allowed for 0D character fields') - END IF - ! - !0D date/time - ! - CASE (TYPEDATE) - IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_T0D) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_T0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_T0D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_T0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_T0D(IMI)%DATA) - ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not allowed for 0D date/time fields') - END IF - ! - !0D other types - ! - CASE DEFAULT - PRINT *,'FATAL: IO_WRITE_FIELDLIST: type not yet supported for 0D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END SELECT - ! - !1D output - ! - CASE (1) - SELECT CASE (TFIELDLIST(IDX)%NTYPE) - ! - !1D real - ! - CASE (TYPEREAL) - IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X1D) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X1D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X1D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X1D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X1D(IMI)%DATA) - ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not allowed for 1D real fields') - END IF -! ! -! !1D integer -! ! -! CASE (TYPEINT) -! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_N1D) ) THEN -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_N1D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END IF -! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_N1D(IMI)%DATA) ) THEN -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_N1D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END IF -! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN -! CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_N1D(IMI)%DATA) -! ELSE -! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not allowed for 1D integer fields') -! END IF -! ! -! !1D logical -! ! -! CASE (TYPELOG) -! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_L1D) ) THEN -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_L1D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END IF -! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_L1D(IMI)%DATA) ) THEN -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_L1D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END IF -! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN -! CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_L1D(IMI)%DATA) -! ELSE -! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not allowed for 1D logical fields') -! END IF -! ! -! !1D string -! ! -! CASE (TYPECHAR) -! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_C1D) ) THEN -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_C1D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END IF -! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_C1D(IMI)%DATA) ) THEN -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_C1D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END IF -! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN -! CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_C1D(IMI)%DATA) -! ELSE -! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not allowed for 1D character fields') -! END IF - ! - !1D other types - ! - CASE DEFAULT - PRINT *,'FATAL: IO_WRITE_FIELDLIST: type not yet supported for 1D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END SELECT - ! - !2D output - ! - CASE (2) - SELECT CASE (TFIELDLIST(IDX)%NTYPE) - ! - !2D real - ! - CASE (TYPEREAL) - IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X2D) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X2D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X2D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X2D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X2D(IMI)%DATA) - ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not allowed for 2D real fields') - END IF - ! - !2D integer - ! - CASE (TYPEINT) - IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_N2D) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_N2D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_N2D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_N2D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_N2D(IMI)%DATA) - ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not allowed for 2D integer fields') - END IF - ! - !2D other types - ! - CASE DEFAULT - PRINT *,'FATAL: IO_WRITE_FIELDLIST: type not yet supported for 2D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END SELECT - ! - !3D output - ! - CASE (3) - SELECT CASE (TFIELDLIST(IDX)%NTYPE) - ! - !3D real - ! - CASE (TYPEREAL) - IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X3D) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X3D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X3D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X3D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X3D(IMI)%DATA) - ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not (yet) allowed for 3D real fields') - !PW: TODO?: add missing field in TFIELDLIST? - !CALL IO_WRITE_FIELD_LB(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X3D(IMI)%DATA) - END IF - ! - !3D integer - ! - CASE (TYPEINT) - IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_N3D) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_N3D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_N3D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_N3D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_N3D(IMI)%DATA) - ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not (yet) allowed for 3D integer fields') - !PW: TODO?: add missing field in TFIELDLIST? - !CALL IO_WRITE_FIELD_LB(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_N3D(IMI)%DATA) - END IF - ! - !3D other types - ! - CASE DEFAULT - PRINT *,'FATAL: IO_WRITE_FIELDLIST: type not yet supported for 3D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END SELECT - ! - !4D output - ! - CASE (4) - SELECT CASE (TFIELDLIST(IDX)%NTYPE) - ! - !4D real - ! - CASE (TYPEREAL) - IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X4D) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X4D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X4D(IMI)%DATA) ) THEN - PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X4D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END IF - IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X4D(IMI)%DATA) - ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not (yet) allowed for 4D real fields') - !PW: TODO?: add missing field in TFIELDLIST? - !CALL IO_WRITE_FIELD_LB(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X4D(IMI)%DATA) - END IF - ! - !4D other types - ! - CASE DEFAULT - PRINT *,'FATAL: IO_WRITE_FIELDLIST: type not yet supported for 4D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END SELECT -! ! -! !5D output -! ! -! CASE (5) -! SELECT CASE (TFIELDLIST(IDX)%NTYPE) -! ! -! !5D real -! ! -! CASE (TYPEREAL) -! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X5D) ) THEN -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X5D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END IF -! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X5D(IMI)%DATA) ) THEN -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X5D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END IF -! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN -! CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X5D(IMI)%DATA) -! ELSE -! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not (yet) allowed for 5D real fields') -! !PW: TODO?: add missing field in TFIELDLIST? -! !CALL IO_WRITE_FIELD_LB(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X5D(IMI)%DATA) -! END IF -! ! -! !5D other types -! ! -! CASE DEFAULT -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: type not yet supported for 5D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END SELECT -! ! -! !6D output -! ! -! CASE (6) -! SELECT CASE (TFIELDLIST(IDX)%NTYPE) -! ! -! !6D real -! ! -! CASE (TYPEREAL) -! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X6D) ) THEN -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X6D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END IF -! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X6D(IMI)%DATA) ) THEN -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: TFIELD_X6D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END IF -! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN -! CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X6D(IMI)%DATA) -! ELSE -! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELDLIST','CLBTYPE/=NONE not (yet) allowed for 6D real fields') -! !PW: TODO?: add missing field in TFIELDLIST? -! !CALL IO_WRITE_FIELD_LB(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X6D(IMI)%DATA) -! END IF -! ! -! !6D other types -! ! -! CASE DEFAULT -! PRINT *,'FATAL: IO_WRITE_FIELDLIST: type not yet supported for 4D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) -! STOP -! END SELECT - ! - !Other number of dimensions - ! - CASE DEFAULT - PRINT *,'FATAL: IO_WRITE_FIELDLIST: number of dimensions not yet supported for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) - STOP - END SELECT -END DO -! -END SUBROUTINE IO_WRITE_FIELDLIST -! -! -! -SUBROUTINE IO_WRITE_FIELD_USER(TPOUTPUT) -! -#if 0 -USE MODD_PARAMETERS, ONLY : JPVEXT -USE MODD_DYN_n, ONLY: XTSTEP -USE MODD_FIELD_n, ONLY: XUT, XVT, XRT, XTHT -USE MODD_PRECIP_n, ONLY: XINPRR -#endif -! -IMPLICIT NONE -! -TYPE(TOUTBAK), INTENT(IN) :: TPOUTPUT !Output structure -! -TYPE(TFIELDDATA) :: TZFIELD -! -#if 0 -INTEGER :: IKB -! -IKB=JPVEXT+1 -! -TZFIELD%CMNHNAME = 'UTLOW' -TZFIELD%CSTDNAME = 'x_wind' -TZFIELD%CLONGNAME = '' -TZFIELD%CUNITS = 'm s-1' -TZFIELD%CDIR = 'XY' -TZFIELD%CCOMMENT = 'X_Y_Z_U component of wind at lowest physical level' -TZFIELD%NGRID = 2 -TZFIELD%NTYPE = TYPEREAL -TZFIELD%NDIMS = 2 -TZFIELD%LTIMEDEP = .TRUE. -CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TZFIELD,XUT(:,:,IKB)) -! -TZFIELD%CMNHNAME = 'VTLOW' -TZFIELD%CSTDNAME = 'y_wind' -TZFIELD%CLONGNAME = '' -TZFIELD%CUNITS = 'm s-1' -TZFIELD%CDIR = 'XY' -TZFIELD%CCOMMENT = 'X_Y_Z_V component of wind at lowest physical level' -TZFIELD%NGRID = 3 -TZFIELD%NTYPE = TYPEREAL -TZFIELD%NDIMS = 2 -TZFIELD%LTIMEDEP = .TRUE. -CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TZFIELD,XVT(:,:,IKB)) -! -TZFIELD%CMNHNAME = 'THTLOW' -TZFIELD%CSTDNAME = 'air_potential_temperature' -TZFIELD%CLONGNAME = '' -TZFIELD%CUNITS = 'K' -TZFIELD%CDIR = 'XY' -TZFIELD%CCOMMENT = 'X_Y_Z_potential temperature at lowest physical level' -TZFIELD%NGRID = 1 -TZFIELD%NTYPE = TYPEREAL -TZFIELD%NDIMS = 2 -TZFIELD%LTIMEDEP = .TRUE. -CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TZFIELD,XTHT(:,:,IKB)) -! -TZFIELD%CMNHNAME = 'RVTLOW' -!TZFIELD%CSTDNAME = 'humidity_mixing_ratio' !ratio of the mass of water vapor to the mass of dry air -TZFIELD%CSTDNAME = 'specific_humidity' !mass fraction of water vapor in (moist) air -TZFIELD%CLONGNAME = '' -TZFIELD%CUNITS = 'kg kg-1' -TZFIELD%CDIR = 'XY' -TZFIELD%CCOMMENT = 'X_Y_Z_Vapor mixing Ratio at lowest physical level' -TZFIELD%NGRID = 1 -TZFIELD%NTYPE = TYPEREAL -TZFIELD%NDIMS = 2 -TZFIELD%LTIMEDEP = .TRUE. -CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TZFIELD,XRT(:,:,IKB,1)) -! -TZFIELD%CMNHNAME = 'ACPRRSTEP' -TZFIELD%CSTDNAME = 'rainfall_amount' -TZFIELD%CLONGNAME = '' -TZFIELD%CUNITS = 'kg m-2' -TZFIELD%CDIR = '' -TZFIELD%CCOMMENT = 'X_Y_ACcumulated Precipitation Rain Rate during timestep' -TZFIELD%NGRID = 1 -TZFIELD%NTYPE = TYPEREAL -TZFIELD%NDIMS = 2 -TZFIELD%LTIMEDEP = .TRUE. -!XACPRR is multiplied by 1000. to convert from m to kg m-2 (water density is assumed to be 1000 kg m-3) -CALL IO_WRITE_FIELD(TPOUTPUT%TFILE,TZFIELD,XINPRR*XTSTEP*1.0E3) -#endif -! -END SUBROUTINE IO_WRITE_FIELD_USER -! -END MODULE MODE_IO_WRITE_FIELD diff --git a/src/LIB/SURCOUCHE/src/modd_io.f90 b/src/LIB/SURCOUCHE/src/modd_io.f90 index eaab4a3f0..5d4b5b00e 100644 --- a/src/LIB/SURCOUCHE/src/modd_io.f90 +++ b/src/LIB/SURCOUCHE/src/modd_io.f90 @@ -7,10 +7,10 @@ ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! Philippe Wautelet: 10/01/2019: use NEWUNIT argument of OPEN (removed ISTDOUT, ISTDERR, added NNULLUNIT, CNULLFILE) ! Philippe Wautelet: 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll to allow to disable writes (for bench purposes) -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list !----------------------------------------------------------------- -MODULE MODD_IO_ll +MODULE MODD_IO ! USE MODD_NETCDF, ONLY: IDCDF_KIND, IOCDF, TPTR2DIMCDF USE MODD_PARAMETERS, ONLY: NDIRNAMELGTMAX, NFILENAMELGTMAX @@ -20,7 +20,7 @@ IMPLICIT NONE ! INTEGER, PARAMETER :: NVERB_NO=0, NVERB_FATAL=1, NVERB_ERROR=2, NVERB_WARNING=3, NVERB_INFO=4, NVERB_DEBUG=5 -INTEGER :: NNULLUNIT = -1 ! /dev/null fortran unit, value set in INITIO_ll +INTEGER :: NNULLUNIT = -1 ! /dev/null fortran unit, value set in IO_Init CHARACTER(LEN=*), PARAMETER :: CNULLFILE = "/dev/null" INTEGER, SAVE :: NIO_RANK ! Rank of IO process @@ -137,4 +137,4 @@ TYPE(TFILEDATA),POINTER,SAVE :: TFILE_OUTPUTLISTING => NULL() !Pointer used to !Non existing file which can be used as a dummy target TYPE(TFILEDATA),TARGET, SAVE :: TFILE_DUMMY = TFILEDATA(CNAME="dummy",CDIRNAME=NULL(),TFILES_IOZ=NULL(),TNCCOORDS=NULL()) -END MODULE MODD_IO_ll +END MODULE MODD_IO diff --git a/src/LIB/SURCOUCHE/src/mode_allocbuff.f90 b/src/LIB/SURCOUCHE/src/mode_allocbuff.f90 index b6ba60133..e6d0e9a1a 100644 --- a/src/LIB/SURCOUCHE/src/mode_allocbuff.f90 +++ b/src/LIB/SURCOUCHE/src/mode_allocbuff.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! Modifications: @@ -8,8 +8,8 @@ !----------------------------------------------------------------- MODULE MODE_ALLOCBUFFER_ll -USE MODE_TOOLS_ll, ONLY : GET_GLOBALDIMS_ll -USE MODD_PARAMETERS_ll,ONLY : JPHEXT +USE MODE_TOOLS_ll, ONLY: GET_GLOBALDIMS_ll +USE MODD_PARAMETERS_ll, ONLY: JPHEXT IMPLICIT NONE @@ -51,7 +51,7 @@ END SELECT END SUBROUTINE ALLOCBUFFER_N1 SUBROUTINE ALLOCBUFFER_N2(KTAB_P,KTAB,HDIR,OALLOC) -USE MODD_IO_ll, ONLY : LPACK, L2D +USE MODD_IO, ONLY: LPACK, L2D ! INTEGER,DIMENSION(:,:),POINTER :: KTAB_P INTEGER,DIMENSION(:,:),TARGET,INTENT(IN) :: KTAB @@ -85,7 +85,7 @@ END SELECT END SUBROUTINE ALLOCBUFFER_N2 SUBROUTINE ALLOCBUFFER_N3(KTAB_P,KTAB,HDIR,OALLOC) -USE MODD_IO_ll, ONLY : LPACK, L2D +USE MODD_IO, ONLY: LPACK, L2D ! INTEGER,DIMENSION(:,:,:),POINTER :: KTAB_P INTEGER,DIMENSION(:,:,:),TARGET,INTENT(IN) :: KTAB @@ -179,7 +179,7 @@ END SELECT END SUBROUTINE ALLOCBUFFER_X1 SUBROUTINE ALLOCBUFFER_X2(PTAB_P,PTAB,HDIR,OALLOC, KIMAX_ll, KJMAX_ll) -USE MODD_IO_ll, ONLY : LPACK, L2D +USE MODD_IO, ONLY: LPACK, L2D ! REAL,DIMENSION(:,:),POINTER :: PTAB_P REAL,DIMENSION(:,:),TARGET,INTENT(IN) :: PTAB @@ -229,7 +229,7 @@ END SELECT END SUBROUTINE ALLOCBUFFER_X2 SUBROUTINE ALLOCBUFFER_X3(PTAB_P,PTAB,HDIR,OALLOC) -USE MODD_IO_ll, ONLY : LPACK, L2D +USE MODD_IO, ONLY: LPACK, L2D ! REAL,DIMENSION(:,:,:),POINTER :: PTAB_P REAL,DIMENSION(:,:,:),TARGET,INTENT(IN) :: PTAB @@ -263,7 +263,7 @@ END SELECT END SUBROUTINE ALLOCBUFFER_X3 SUBROUTINE ALLOCBUFFER_X4(PTAB_P,PTAB,HDIR,OALLOC) -USE MODD_IO_ll, ONLY : LPACK, L2D +USE MODD_IO, ONLY: LPACK, L2D ! REAL,DIMENSION(:,:,:,:),POINTER :: PTAB_P REAL,DIMENSION(:,:,:,:),TARGET,INTENT(IN) :: PTAB @@ -299,7 +299,7 @@ END SELECT END SUBROUTINE ALLOCBUFFER_X4 SUBROUTINE ALLOCBUFFER_X5(PTAB_P,PTAB,HDIR,OALLOC) -USE MODD_IO_ll, ONLY : LPACK, L2D +USE MODD_IO, ONLY: LPACK, L2D ! REAL,DIMENSION(:,:,:,:,:),POINTER :: PTAB_P REAL,DIMENSION(:,:,:,:,:),TARGET,INTENT(IN) :: PTAB @@ -337,7 +337,7 @@ END SELECT END SUBROUTINE ALLOCBUFFER_X5 SUBROUTINE ALLOCBUFFER_X6(PTAB_P,PTAB,HDIR,OALLOC) -USE MODD_IO_ll, ONLY : LPACK, L2D +USE MODD_IO, ONLY: LPACK, L2D ! REAL,DIMENSION(:,:,:,:,:,:),POINTER :: PTAB_P REAL,DIMENSION(:,:,:,:,:,:),TARGET,INTENT(IN) :: PTAB diff --git a/src/LIB/SURCOUCHE/src/mode_field.f90 b/src/LIB/SURCOUCHE/src/mode_field.f90 index e0858d4b3..a7bcc64c5 100644 --- a/src/LIB/SURCOUCHE/src/mode_field.f90 +++ b/src/LIB/SURCOUCHE/src/mode_field.f90 @@ -12,7 +12,7 @@ MODULE MODE_FIELD ! USE MODD_CONF, ONLY : CPROGRAM -USE MODD_IO_ll, ONLY : NVERB_DEBUG,NVERB_INFO,NVERB_WARNING,NVERB_ERROR,NVERB_FATAL +USE MODD_IO, ONLY : NVERB_DEBUG, NVERB_INFO, NVERB_WARNING, NVERB_ERROR, NVERB_FATAL USE MODD_PARAMETERS USE MODD_TYPE_DATE, ONLY : DATE_TIME #if defined(MNH_IOCDF4) diff --git a/src/LIB/SURCOUCHE/src/mode_fm.f90 b/src/LIB/SURCOUCHE/src/mode_fm.f90 deleted file mode 100644 index 04252af39..000000000 --- a/src/LIB/SURCOUCHE/src/mode_fm.f90 +++ /dev/null @@ -1,34 +0,0 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -! Author(s): -! -! Modifications: -! D. Gazen April 2016: change error message -! P. Wautelet May 2016 : use NetCDF Fortran module -! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 29/10/2018: better detection of older MNH version numbers -! P. Wautelet 13/12/2018: moved some operations to new mode_io_*_nc4 modules -! P. Wautelet 10/01/2019: use NEWUNIT argument of OPEN + move management -! of NNCID and NLFIFLU to the nc4 and lfi subroutines -! P. Wautelet 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll -! to allow to disable writes (for bench purposes) -! P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST -! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) -! P. Wautelet 19/02/2019: simplification/restructuration/cleaning of open/close subroutines (TBCto be continued) -! P. Wautelet 27/02/2019: use recursive calls to open/close DES files -! P. Wautelet 27/02/2019: remove CLOSE_ll subroutine (from mode_io.f90) -!----------------------------------------------------------------- - -MODULE MODE_FM - -use mode_io_ll -use mode_io_file - -IMPLICIT NONE - -END MODULE MODE_FM diff --git a/src/LIB/SURCOUCHE/src/mode_ga.f90 b/src/LIB/SURCOUCHE/src/mode_ga.f90 index 7457a7f3e..635888394 100644 --- a/src/LIB/SURCOUCHE/src/mode_ga.f90 +++ b/src/LIB/SURCOUCHE/src/mode_ga.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -6,7 +6,8 @@ ! Author: J.Escobar ! ! Modifications: -! P.Wautelet: 14/12/2018: split from fmwrit_ll.f90 +! J. Escobar 05/02/2015: use JPHEXT from MODD_PARAMETERS_ll +! P. Wautelet 14/12/2018: split from fmwrit_ll.f90 !----------------------------------------------------------------- #ifdef MNH_GA MODULE MODE_GA @@ -36,15 +37,12 @@ MODULE MODE_GA SUBROUTINE MNH_INIT_GA(MY_NI,MY_NJ,MY_NK,HRECFM,HRW_MODE) -! -! Modification -! J.Escobar 5/02/2015 : use JPHEXT from MODD_PARAMETERS_ll + USE MODD_IO, ONLY: ISP + USE MODD_PARAMETERS_ll, ONLY: JPHEXT - USE MODE_TOOLS_ll, ONLY : GET_GLOBALDIMS_ll - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_IO_ll, ONLY : ISP - USE MODE_GATHER_ll, ONLY : GET_DOMWRITE_ll - USE MODE_SCATTER_ll, ONLY : GET_DOMREAD_ll + USE MODE_GATHER_ll, ONLY: GET_DOMWRITE_ll + USE MODE_SCATTER_ll, ONLY: GET_DOMREAD_ll + USE MODE_TOOLS_ll, ONLY: GET_GLOBALDIMS_ll IMPLICIT NONE diff --git a/src/LIB/SURCOUCHE/src/mode_gather.f90 b/src/LIB/SURCOUCHE/src/mode_gather.f90 index 756d8dcaa..adf0d7401 100644 --- a/src/LIB/SURCOUCHE/src/mode_gather.f90 +++ b/src/LIB/SURCOUCHE/src/mode_gather.f90 @@ -1,8 +1,15 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- +! Modifications: +! J.Escobar 10/02/2012 : Bug , in MPI_RECV replace MPI_STATUSES_IGNORE +! with MPI_STATUS_IGNORE +! J.Escobar 22/05/2012 : Bug in ISEND with non-contiguous buffer , reintroduce intermediate buffer +! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O +! +!----------------------------------------------------------------- #ifdef MNH_MPI_DOUBLE_PRECISION #define MPI_FLOAT MPI_DOUBLE_PRECISION @@ -12,15 +19,9 @@ MODULE MODE_GATHER_ll -! Modifications: -! J.Escobar 10/02/2012 : Bug , in MPI_RECV replace MPI_STATUSES_IGNORE -! with MPI_STATUS_IGNORE -! J.Escobar 22/05/2012 : Bug in ISEND with non-contiguous buffer , reintroduce intermediate buffer -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! USE MODD_MPIF !JUANZ -USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD +USE MODD_VAR_ll, ONLY: NMNH_COMM_WORLD !JUANZ IMPLICIT NONE @@ -182,8 +183,8 @@ END SUBROUTINE GATHERALL_N2 ! Gather des champs XX (ou YY) ! SUBROUTINE GATHERXX_X1(HDIR,PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC -USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE +USE MODD_IO, ONLY: ISP, ISNPROC +USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:),TARGET,INTENT(IN) :: PSEND @@ -256,7 +257,7 @@ END SUBROUTINE GATHERXX_X1 SUBROUTINE GATHERXX_X2(HDIR,PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:,:),TARGET,INTENT(IN) :: PSEND @@ -319,7 +320,7 @@ END IF END SUBROUTINE GATHERXX_X2 SUBROUTINE GATHERXX_X3(HDIR,PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:,:,:),TARGET,INTENT(IN) :: PSEND @@ -382,7 +383,7 @@ END IF END SUBROUTINE GATHERXX_X3 SUBROUTINE GATHERXX_X4(HDIR,PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:,:,:,:),TARGET,INTENT(IN) :: PSEND @@ -445,7 +446,7 @@ END IF END SUBROUTINE GATHERXX_X4 SUBROUTINE GATHERXX_X5(HDIR,PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:,:,:,:,:),TARGET,INTENT(IN) :: PSEND @@ -508,7 +509,7 @@ END IF END SUBROUTINE GATHERXX_X5 SUBROUTINE GATHERXX_X6(HDIR,PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:,:,:,:,:,:),TARGET,INTENT(IN) :: PSEND @@ -571,7 +572,7 @@ END IF END SUBROUTINE GATHERXX_X6 SUBROUTINE GATHERXX_N1(HDIR,KSEND,KRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR INTEGER,DIMENSION(:),TARGET,INTENT(IN) :: KSEND @@ -636,7 +637,7 @@ END SUBROUTINE GATHERXX_N1 SUBROUTINE GATHERXX_N2(HDIR,KSEND,KRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR INTEGER,DIMENSION(:,:),TARGET,INTENT(IN) :: KSEND @@ -700,7 +701,7 @@ END IF END SUBROUTINE GATHERXX_N2 SUBROUTINE GATHERXX_N3(HDIR,KSEND,KRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR INTEGER,DIMENSION(:,:,:),TARGET,INTENT(IN) :: KSEND @@ -761,7 +762,7 @@ END IF END SUBROUTINE GATHERXX_N3 SUBROUTINE GATHERXX_L1(HDIR,OSEND,ORECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR LOGICAL,DIMENSION(:),TARGET,INTENT(IN) :: OSEND @@ -828,8 +829,8 @@ END SUBROUTINE GATHERXX_L1 ! Gather des champs XY ! SUBROUTINE GATHERXY_X2(PSEND,PRECV,KROOT,KCOMM,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) -USE MODD_IO_ll, ONLY : ISP, ISNPROC -USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE +USE MODD_IO, ONLY: ISP, ISNPROC +USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE REAL,DIMENSION(:,:),TARGET,INTENT(IN) :: PSEND REAL,DIMENSION(:,:),TARGET,INTENT(INOUT):: PRECV @@ -883,7 +884,7 @@ END IF END SUBROUTINE GATHERXY_X2 SUBROUTINE GATHERXY_X3(PSEND,PRECV,KROOT,KCOMM,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC REAL,DIMENSION(:,:,:),TARGET,INTENT(IN) :: PSEND REAL,DIMENSION(:,:,:),TARGET,INTENT(INOUT):: PRECV @@ -926,7 +927,7 @@ END IF END SUBROUTINE GATHERXY_X3 SUBROUTINE GATHERXY_X4(PSEND,PRECV,KROOT,KCOMM,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC REAL,DIMENSION(:,:,:,:),TARGET,INTENT(IN) :: PSEND REAL,DIMENSION(:,:,:,:),TARGET,INTENT(INOUT):: PRECV @@ -969,7 +970,7 @@ END IF END SUBROUTINE GATHERXY_X4 SUBROUTINE GATHERXY_X5(PSEND,PRECV,KROOT,KCOMM,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC REAL,DIMENSION(:,:,:,:,:),TARGET,INTENT(IN) :: PSEND REAL,DIMENSION(:,:,:,:,:),TARGET,INTENT(INOUT):: PRECV @@ -1012,7 +1013,7 @@ END IF END SUBROUTINE GATHERXY_X5 SUBROUTINE GATHERXY_X6(PSEND,PRECV,KROOT,KCOMM,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC REAL,DIMENSION(:,:,:,:,:,:),TARGET,INTENT(IN) :: PSEND REAL,DIMENSION(:,:,:,:,:,:),TARGET,INTENT(INOUT):: PRECV @@ -1055,7 +1056,7 @@ END IF END SUBROUTINE GATHERXY_X6 SUBROUTINE GATHERXY_N2(KSEND,KRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC INTEGER,DIMENSION(:,:),TARGET,INTENT(IN) :: KSEND INTEGER,DIMENSION(:,:),TARGET,INTENT(INOUT):: KRECV @@ -1092,7 +1093,7 @@ END IF END SUBROUTINE GATHERXY_N2 SUBROUTINE GATHERXY_N3(KSEND,KRECV,KROOT,KCOMM,KXOBOX,KXEBOX,KYOBOX,KYEBOX,HINTER) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC INTEGER,DIMENSION(:,:,:),TARGET,INTENT(IN) :: KSEND INTEGER,DIMENSION(:,:,:),TARGET,INTENT(INOUT):: KRECV @@ -1133,7 +1134,7 @@ END IF END SUBROUTINE GATHERXY_N3 SUBROUTINE GATHERBOX_X2(PSEND,PRECV,KROOT,KCOMM,KXOBOX,KXEBOX,KYOBOX,KYEBOX) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC REAL,DIMENSION(:,:),TARGET,INTENT(IN) :: PSEND REAL,DIMENSION(:,:),TARGET,INTENT(INOUT):: PRECV @@ -1176,10 +1177,11 @@ END SUBROUTINE GATHERBOX_X2 SUBROUTINE GET_DOMWRITE_ll(KIP,HTYPE,KXOR,KXEND,KYOR,KYEND,& & KXORBOX,KXENDBOX,KYORBOX,KYENDBOX,HINTER) -USE MODD_VAR_ll, ONLY : TCRRT_PROCONF -USE MODD_STRUCTURE_ll, ONLY : MODELSPLITTING_ll -USE MODE_TOOLS_ll, ONLY : LWEST_ll,LEAST_ll,LSOUTH_ll,LNORTH_ll -IMPLICIT NONE +USE MODD_STRUCTURE_ll, ONLY: MODELSPLITTING_ll +USE MODE_TOOLS_ll, ONLY: LWEST_ll, LEAST_ll, LSOUTH_ll, LNORTH_ll +USE MODD_VAR_ll, ONLY: TCRRT_PROCONF + +IMPLICIT NONE INTEGER, INTENT(IN) :: KIP CHARACTER(LEN=*), INTENT(IN) :: HTYPE diff --git a/src/LIB/SURCOUCHE/src/mode_init_ll.f90 b/src/LIB/SURCOUCHE/src/mode_init_ll.f90 index 257cc2b9c..aa0d0c7c4 100644 --- a/src/LIB/SURCOUCHE/src/mode_init_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_init_ll.f90 @@ -744,15 +744,13 @@ !* 0. DECLARATIONS ! USE MODD_DIM_ll -! USE MODD_STRUCTURE_ll -! USE MODD_VAR_ll, ONLY : NIOUNIT, YOUTPUTFILE - USE MODD_IO_ll, ONLY : ISP + USE MODD_IO, ONLY: ISP #ifdef CPLOASIS - USE MODD_SFX_OASIS, ONLY : LOASIS + USE MODD_SFX_OASIS, ONLY: LOASIS #endif ! #ifdef MNH_GA -USE MODE_GA + USE MODE_GA #endif ! IMPLICIT NONE diff --git a/src/LIB/SURCOUCHE/src/mode_io.f90 b/src/LIB/SURCOUCHE/src/mode_io.f90 index 4ff0f6265..596d631ae 100644 --- a/src/LIB/SURCOUCHE/src/mode_io.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io.f90 @@ -6,13 +6,14 @@ ! Author(s) ! D. Gazen ! Modifications: -! P. Wautelet 01/03/2019: move OPEN_ll to mode_io_file.f90 and SET_FMPACK_ll to here from mode_fm.f90 +! P. Wautelet 01/03/2019: move OPEN_ll to mode_io_file.f90 and IO_Pack_set to here from mode_fm.f90 +! P. Wautelet 05/03/2019: rename IO subroutines and modules ! !----------------------------------------------------------------- -MODULE MODE_IO_ll +MODULE MODE_IO USE MODD_MPIF - USE MODD_VAR_ll, ONLY : NMNH_COMM_WORLD + USE MODD_VAR_ll, ONLY: NMNH_COMM_WORLD USE MODE_MSG @@ -20,30 +21,30 @@ MODULE MODE_IO_ll PRIVATE - LOGICAL,SAVE :: GCONFIO = .FALSE. ! Turn TRUE when SET_CONFIO_ll is called. + LOGICAL,SAVE :: GCONFIO = .FALSE. ! Turn TRUE when IO_Config_set is called. public :: GCONFIO - public :: INITIO_ll, SET_CONFIO_ll - public :: SET_FMPACK_ll + public :: IO_Init, IO_Config_set + public :: IO_Pack_set CONTAINS - SUBROUTINE SET_CONFIO_ll() + SUBROUTINE IO_Config_set() USE MODN_CONFIO, only: LCDF4, LLFIOUT, LLFIREAD !Use MODN_CONFIO namelist variables - CALL SET_CONFIO_INTERN_ll(LCDF4, LLFIOUT, LLFIREAD) - END SUBROUTINE SET_CONFIO_ll + CALL IO_Config_set_intern(LCDF4, LLFIOUT, LLFIREAD) + END SUBROUTINE IO_Config_set - SUBROUTINE SET_CONFIO_INTERN_ll(OIOCDF4, OLFIOUT, OLFIREAD) - USE MODD_IO_ll, ONLY : LIOCDF4, LLFIOUT, LLFIREAD, LIO_ALLOW_NO_BACKUP, LIO_NO_WRITE + SUBROUTINE IO_Config_set_intern(OIOCDF4, OLFIOUT, OLFIREAD) + USE MODD_IO, ONLY: LIOCDF4, LLFIOUT, LLFIREAD, LIO_ALLOW_NO_BACKUP, LIO_NO_WRITE LOGICAL, INTENT(IN) :: OIOCDF4, OLFIOUT, OLFIREAD - CALL PRINT_MSG(NVERB_DEBUG,'IO','SET_CONFIO_ll','called') + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Config_set','called') IF (GCONFIO) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','SET_CONFIO_ll','already called (ignoring this call)') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Config_set','already called (ignoring this call)') ELSE #if defined(MNH_IOCDF4) LIOCDF4 = OIOCDF4 @@ -51,7 +52,7 @@ CONTAINS LLFIREAD = OLFIREAD IF (.NOT.LIOCDF4 .AND. .NOT.LLFIOUT) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','SET_CONFIO_ll','output format forced to netCDF') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Config_set','output format forced to netCDF') LIOCDF4 = .TRUE. END IF #else @@ -63,15 +64,15 @@ CONTAINS ! Set LIO_ALLOW_NO_BACKUP=.true. if writes are disabled (to be coherent) IF (LIO_NO_WRITE) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','SET_CONFIO_ll','file writes are disabled') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Config_set','file writes are disabled') LIO_ALLOW_NO_BACKUP = .true. END IF END IF - END SUBROUTINE SET_CONFIO_INTERN_ll + END SUBROUTINE IO_Config_set_intern - SUBROUTINE INITIO_ll() - USE MODD_IO_ll, only: CNULLFILE, GSMONOPROC, nio_rank, ISNPROC, ISP, NNULLUNIT + SUBROUTINE IO_Init() + use MODD_IO, only: CNULLFILE, GSMONOPROC, nio_rank, ISNPROC, ISP, NNULLUNIT USE MODE_MNH_WORLD, ONLY: INIT_NMNH_COMM_WORLD @@ -80,10 +81,10 @@ CONTAINS INTEGER :: IERR, IOS character(len=256) :: yioerrmsg - CALL PRINT_MSG(NVERB_DEBUG,'IO','INITIO_ll','called') + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Init','called') CALL INIT_NMNH_COMM_WORLD(IERR) - IF (IERR .NE.0) CALL PRINT_MSG(NVERB_FATAL,'IO','INITIO_ll','problem with remapping of NMNH_COMM_WORLD') + IF (IERR .NE.0) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Init','problem with remapping of NMNH_COMM_WORLD') !! Now MPI is initialized for sure @@ -105,13 +106,13 @@ CONTAINS OPEN(NEWUNIT=NNULLUNIT,STATUS='SCRATCH',ACTION='WRITE',IOSTAT=IOS, IOMSG=yioerrmsg) #endif IF (IOS /= 0) THEN - CALL PRINT_MSG(NVERB_FATAL,'IO','INITIO_ll','problem opening /dev/null :'//trim(yioerrmsg)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Init','problem opening /dev/null :'//trim(yioerrmsg)) END IF - END SUBROUTINE INITIO_ll + END SUBROUTINE IO_Init -SUBROUTINE SET_FMPACK_ll(O1D,O2D,OPACK) -USE MODD_IO_ll, ONLY: LPACK, L1D, L2D +SUBROUTINE IO_Pack_set(O1D,O2D,OPACK) +USE MODD_IO, ONLY: LPACK, L1D, L2D USE MODD_VAR_ll, ONLY: IP IMPLICIT NONE @@ -124,6 +125,6 @@ L2D = O2D IF ( IP == 1 ) PRINT *,'INIT L1D,L2D,LPACK = ',L1D,L2D,LPACK -END SUBROUTINE SET_FMPACK_ll +END SUBROUTINE IO_Pack_set -END MODULE MODE_IO_ll +END MODULE MODE_IO diff --git a/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 b/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 index 2efa39b22..5a5fcddb8 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_field_read.f90 @@ -3,6 +3,15 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- +! Modifications: +! J. Escobar 22/08/2005: BUG : missing "GOTO 1000" if read field not found +! J. Escobar 13/01/2015: remove comment on BCAST(IRESP in FMREADX2_ll +! J. Escobar 15/09/2015: WENO5 & JPHEXT <> 1 +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! J. Escobar 17/07/2018: reintroduce needed MPI_BARRIER in IO_Field_read_byfield_X3 +! P. Wautelet 29/01/2019: small bug correction in time measurement in IO_Field_read_byfield_X2 +! P. Wautelet 05/03/2019: rename IO subroutines and modules +!----------------------------------------------------------------- #ifdef MNH_MPI_DOUBLE_PRECISION #define MPI_FLOAT MPI_DOUBLE_PRECISION @@ -10,18 +19,9 @@ #define MPI_FLOAT MPI_REAL #endif -MODULE MODE_FMREAD -! -!Correction : -! J.Escobar : 22/08/2005 : BUG : manque un "GOTO 1000" si champs -! lue non trouvé !!! -! J.Escobar : 13/01/2015 : remove comment on BCAST(IRESP in FMREADX2_ll -! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! J.Escobar : 17/07/2018 : reintroduce needed MPI_BARRIER in IO_READ_FIELD_BYFIELD_X3 -! P.Wautelet: 29/01/2019 : small bug correction in time measurement in IO_READ_FIELD_BYFIELD_X2 -! -USE MODD_IO_ll, ONLY : NVERB_FATAL,NVERB_ERROR,NVERB_WARNING,NVERB_INFO,NVERB_DEBUG,TFILEDATA +MODULE MODE_IO_FIELD_READ +! +USE MODD_IO, ONLY : NVERB_FATAL,NVERB_ERROR,NVERB_WARNING,NVERB_INFO,NVERB_DEBUG,TFILEDATA USE MODD_MPIF ! USE MODE_FIELD @@ -35,36 +35,36 @@ IMPLICIT NONE PRIVATE -INTERFACE IO_READ_FIELD - MODULE PROCEDURE IO_READ_FIELD_BYNAME_X0, IO_READ_FIELD_BYNAME_X1, & - IO_READ_FIELD_BYNAME_X2, IO_READ_FIELD_BYNAME_X3, & - IO_READ_FIELD_BYNAME_X4, IO_READ_FIELD_BYNAME_X5, & - IO_READ_FIELD_BYNAME_X6, & - IO_READ_FIELD_BYNAME_N0, IO_READ_FIELD_BYNAME_N1, & - IO_READ_FIELD_BYNAME_N2, & - IO_READ_FIELD_BYNAME_L0, IO_READ_FIELD_BYNAME_L1, & - IO_READ_FIELD_BYNAME_C0, & - IO_READ_FIELD_BYNAME_T0, & - IO_READ_FIELD_BYFIELD_X0,IO_READ_FIELD_BYFIELD_X1, & - IO_READ_FIELD_BYFIELD_X2,IO_READ_FIELD_BYFIELD_X3, & - IO_READ_FIELD_BYFIELD_X4,IO_READ_FIELD_BYFIELD_X5, & - IO_READ_FIELD_BYFIELD_X6, & - IO_READ_FIELD_BYFIELD_N0,IO_READ_FIELD_BYFIELD_N1, & - IO_READ_FIELD_BYFIELD_N2, & - IO_READ_FIELD_BYFIELD_L0,IO_READ_FIELD_BYFIELD_L1, & - IO_READ_FIELD_BYFIELD_C0, & - IO_READ_FIELD_BYFIELD_T0 -END INTERFACE +public :: IO_Field_read, IO_Field_read_lb -INTERFACE IO_READ_FIELD_LB - MODULE PROCEDURE IO_READ_FIELD_BYNAME_LB, IO_READ_FIELD_BYFIELD_LB +INTERFACE IO_Field_read + MODULE PROCEDURE IO_Field_read_byname_X0, IO_Field_read_byname_X1, & + IO_Field_read_byname_X2, IO_Field_read_byname_X3, & + IO_Field_read_byname_X4, IO_Field_read_byname_X5, & + IO_Field_read_byname_X6, & + IO_Field_read_byname_N0, IO_Field_read_byname_N1, & + IO_Field_read_byname_N2, & + IO_Field_read_byname_L0, IO_Field_read_byname_L1, & + IO_Field_read_byname_C0, & + IO_Field_read_byname_T0, & + IO_Field_read_byfield_X0,IO_Field_read_byfield_X1, & + IO_Field_read_byfield_X2,IO_Field_read_byfield_X3, & + IO_Field_read_byfield_X4,IO_Field_read_byfield_X5, & + IO_Field_read_byfield_X6, & + IO_Field_read_byfield_N0,IO_Field_read_byfield_N1, & + IO_Field_read_byfield_N2, & + IO_Field_read_byfield_L0,IO_Field_read_byfield_L1, & + IO_Field_read_byfield_C0, & + IO_Field_read_byfield_T0 END INTERFACE -PUBLIC IO_READ_FIELD,IO_READ_FIELD_LB +INTERFACE IO_Field_read_lb + MODULE PROCEDURE IO_Field_read_byname_lb, IO_Field_read_byfield_lb +END INTERFACE CONTAINS -SUBROUTINE IO_FILE_READ_CHECK(TPFILE,HSUBR,KRESP) +SUBROUTINE IO_File_read_check(TPFILE,HSUBR,KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HSUBR INTEGER, INTENT(OUT) :: KRESP @@ -92,16 +92,16 @@ IF (TPFILE%CFORMAT/='NETCDF4' .AND. TPFILE%CFORMAT/='LFI' .AND. TPFILE%CFORMAT/= RETURN END IF ! -END SUBROUTINE IO_FILE_READ_CHECK +END SUBROUTINE IO_File_read_check -SUBROUTINE IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) +SUBROUTINE IO_Field_metadata_bcast(TPFILE,TPFIELD) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD ! INTEGER :: IERR ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_BCAST_FIELD_METADATA','called for '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_metadata_bcast','called for '//TRIM(TPFIELD%CMNHNAME)) ! CALL MPI_BCAST(TPFIELD%CMNHNAME, LEN(TPFIELD%CMNHNAME), MPI_CHARACTER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) CALL MPI_BCAST(TPFIELD%CSTDNAME, LEN(TPFIELD%CSTDNAME), MPI_CHARACTER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -114,10 +114,10 @@ CALL MPI_BCAST(TPFIELD%NGRID, 1, MPI_INTEGER, TPFILE%NMA CALL MPI_BCAST(TPFIELD%NTYPE, 1, MPI_INTEGER, TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) CALL MPI_BCAST(TPFIELD%NDIMS, 1, MPI_INTEGER, TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! -END SUBROUTINE IO_BCAST_FIELD_METADATA +END SUBROUTINE IO_Field_metadata_bcast -SUBROUTINE IO_READ_FIELD_BYNAME_X0(TPFILE,HNAME,PFIELD,KRESP) +SUBROUTINE IO_Field_read_byname_X0(TPFILE,HNAME,PFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write @@ -127,19 +127,19 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_X0',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_X0',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_X0 +END SUBROUTINE IO_Field_read_byname_X0 -SUBROUTINE IO_READ_FIELD_BYFIELD_X0(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_byfield_X0(TPFILE,TPFIELD,PFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : ISP,GSMONOPROC +USE MODD_IO, ONLY: ISP,GSMONOPROC ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD @@ -149,37 +149,37 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: IERR INTEGER :: IRESP ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_X0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_X0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_X0',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_X0',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,PFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,PFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,PFIELD,IRESP) END IF END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! ! Broadcast Field CALL MPI_BCAST(PFIELD,1,MPI_FLOAT,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -190,13 +190,13 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_X0 +END SUBROUTINE IO_Field_read_byfield_X0 -SUBROUTINE IO_READ_FIELD_BYNAME_X1(TPFILE,HNAME,PFIELD,KRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) +SUBROUTINE IO_Field_read_byname_X1(TPFILE,HNAME,PFIELD,KRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) ! -USE MODD_IO_ll, ONLY : ISNPROC -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll +USE MODD_IO, ONLY: ISNPROC +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write @@ -209,20 +209,20 @@ TYPE(ZONE_ll),DIMENSION(ISNPROC),OPTIONAL,INTENT(IN) :: TPSPLITTING ! splitting INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_X1',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_X1',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),PFIELD,IRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_X1 +END SUBROUTINE IO_Field_read_byname_X1 -SUBROUTINE IO_READ_FIELD_BYFIELD_X1(TPFILE,TPFIELD,PFIELD,KRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) +SUBROUTINE IO_Field_read_byfield_X1(TPFILE,TPFIELD,PFIELD,KRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) ! -USE MODD_IO_ll, ONLY : ISP,GSMONOPROC,ISNPROC -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll +USE MODD_IO, ONLY: ISP, GSMONOPROC, ISNPROC +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll ! USE MODE_SCATTER_ll USE MODE_ALLOCBUFFER_ll @@ -240,32 +240,32 @@ REAL,DIMENSION(:),POINTER :: ZFIELDP LOGICAL :: GALLOC INTEGER :: IRESP ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_X1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_X1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! GALLOC = .FALSE. IRESP = 0 ZFIELDP => NULL() ! -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_X1',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_X1',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,PFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN CALL ALLOCBUFFER_ll(ZFIELDP,PFIELD,TPFIELD%CDIR,GALLOC, KIMAX_ll, KJMAX_ll) IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ELSE !Not really necessary but useful to suppress alerts with Valgrind @@ -276,8 +276,8 @@ IF (IRESP==0) THEN CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! IF (TPFIELD%CDIR /= 'XX' .AND. TPFIELD%CDIR /='YY') THEN ! Broadcast Field @@ -295,13 +295,13 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_X1 +END SUBROUTINE IO_Field_read_byfield_X1 -SUBROUTINE IO_READ_FIELD_BYNAME_X2(TPFILE,HNAME,PFIELD,KRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) +SUBROUTINE IO_Field_read_byname_X2(TPFILE,HNAME,PFIELD,KRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) ! -USE MODD_IO_ll, ONLY : ISNPROC -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll +USE MODD_IO, ONLY: ISNPROC +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll ! ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -315,27 +315,27 @@ TYPE(ZONE_ll),DIMENSION(ISNPROC),OPTIONAL,INTENT(IN) :: TPSPLITTING ! splitting INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_X2',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_X2',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),PFIELD,IRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_X2 +END SUBROUTINE IO_Field_read_byname_X2 -SUBROUTINE IO_READ_FIELD_BYFIELD_X2(TPFILE,TPFIELD,PFIELD,KRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) +SUBROUTINE IO_Field_read_byfield_X2(TPFILE,TPFIELD,PFIELD,KRESP,KIMAX_ll,KJMAX_ll,TPSPLITTING) ! -USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,ISNPROC,LPACK,L1D,L2D -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll -USE MODD_TIMEZ, ONLY : TIMEZ +USE MODD_IO, ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll +USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll #ifdef MNH_GA USE MODE_GA #endif -USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 +USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 USE MODE_SCATTER_ll ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -357,7 +357,7 @@ REAL(KIND=8),DIMENSION(2) :: T11,T22 REAL,DIMENSION(:,:),POINTER :: ZFIELD_GA #endif ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_X2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_X2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! CALL SECOND_MNH2(T11) GALLOC = .FALSE. @@ -365,7 +365,7 @@ IRESP = 0 ZFIELDP => NULL() ! IHEXTOT = 2*JPHEXT+1 -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_X2',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_X2',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution @@ -377,11 +377,11 @@ IF (IRESP==0) THEN ZFIELDP=>PFIELD(:,:) END IF IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF IF (LPACK .AND. L1D .AND. SIZE(PFIELD,1)==IHEXTOT .AND. SIZE(PFIELD,2)==IHEXTOT) THEN PFIELD(:,:)=SPREAD(SPREAD(PFIELD(JPHEXT+1,JPHEXT+1),DIM=1,NCOPIES=IHEXTOT),DIM=2,NCOPIES=IHEXTOT) @@ -394,11 +394,11 @@ IF (IRESP==0) THEN ! I/O process case CALL ALLOCBUFFER_ll(ZFIELDP,PFIELD,TPFIELD%CDIR,GALLOC, KIMAX_ll, KJMAX_ll) IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ELSE !Not really necessary but useful to suppress alerts with Valgrind @@ -411,8 +411,8 @@ IF (IRESP==0) THEN CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! IF (TPFIELD%CDIR == 'XX' .OR. TPFIELD%CDIR == 'YY') THEN ! XX or YY Scatter Field @@ -467,10 +467,10 @@ IF (PRESENT(KRESP)) KRESP = IRESP CALL SECOND_MNH2(T22) TIMEZ%T_READ2D_ALL=TIMEZ%T_READ2D_ALL + T22 - T11 ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_X2 +END SUBROUTINE IO_Field_read_byfield_X2 -SUBROUTINE IO_READ_FIELD_BYNAME_X3(TPFILE,HNAME,PFIELD,KRESP) +SUBROUTINE IO_Field_read_byname_X3(TPFILE,HNAME,PFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write @@ -480,29 +480,29 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_X3',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_X3',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_X3 +END SUBROUTINE IO_Field_read_byname_X3 -SUBROUTINE IO_READ_FIELD_BYFIELD_X3(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_byfield_X3(TPFILE,TPFIELD,PFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,ISNPROC,LPACK,L1D,L2D -USE MODD_TIMEZ, ONLY : TIMEZ -USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE +USE MODD_IO, ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D +USE MODD_TIMEZ, ONLY: TIMEZ +USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE ! USE MODE_ALLOCBUFFER_ll #ifdef MNH_GA USE MODE_GA #endif -USE MODE_IO_TOOLS, ONLY : IO_FILE -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_FIND_BYNAME -USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 +USE MODE_IO_TOOLS, ONLY: IO_Level2filenumber_get +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_find_byname +USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 USE MODE_SCATTER_ll ! TYPE(TFILEDATA),TARGET, INTENT(IN) :: TPFILE @@ -539,7 +539,7 @@ TYPE(TX_2DP),ALLOCATABLE,DIMENSION(:) :: T_TX2DP REAL,DIMENSION(:,:,:),POINTER :: ZFIELD_GA #endif ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_X3',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_X3',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! CALL SECOND_MNH2(T11) ! @@ -552,7 +552,7 @@ YDIR = TPFIELD%CDIR ! IHEXTOT = 2*JPHEXT+1 ! -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_X3',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_X3',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC .AND. TPFILE%NSUBFILES_IOZ==0 ) THEN ! sequential execution @@ -565,11 +565,11 @@ IF (IRESP==0) THEN ZFIELDP=>PFIELD(:,:,:) END IF IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF IF (LPACK .AND. L1D .AND. SIZE(PFIELD,1)==IHEXTOT .AND. SIZE(PFIELD,2)==IHEXTOT) THEN PFIELD(:,:,:)=SPREAD(SPREAD(PFIELD(JPHEXT+1,JPHEXT+1,:),DIM=1,NCOPIES=IHEXTOT),DIM=2,NCOPIES=IHEXTOT) @@ -581,11 +581,11 @@ IF (IRESP==0) THEN ! I/O process case CALL ALLOCBUFFER_ll(ZFIELDP,PFIELD,YDIR,GALLOC) IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ELSE !Not really necessary but useful to suppress alerts with Valgrind @@ -596,8 +596,8 @@ IF (IRESP==0) THEN CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! IF (YDIR == 'XX' .OR. YDIR =='YY') THEN ! XX or YY Scatter Field @@ -631,7 +631,7 @@ IF (IRESP==0) THEN ALLOCATE(ZSLICE_ll(0,0)) ! to avoid bug on test of size GALLOC_ll = .TRUE. DO JKK=1,IKU_ll - IK_FILE = IO_FILE(JKK,TPFILE%NSUBFILES_IOZ) + IK_FILE = IO_Level2filenumber_get(JKK,TPFILE%NSUBFILES_IOZ) TZFILE => TPFILE%TFILES_IOZ(IK_FILE+1)%TFILE TZFIELD = TPFIELD WRITE(YSUFFIX,'(I4.4)') JKK @@ -652,11 +652,11 @@ IF (IRESP==0) THEN WRITE(YK,'(I4.4)') JKK YRECZSLICE = TRIM(TPFIELD%CMNHNAME)//YK IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) + CALL IO_Field_read_nc4(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) + CALL IO_Field_read_lfi(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) + CALL IO_Field_read_nc4(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) END IF CALL SECOND_MNH2(T1) TIMEZ%T_READ3D_READ=TIMEZ%T_READ3D_READ + T1 - T0 @@ -696,7 +696,7 @@ IF (IRESP==0) THEN NB_REQ=0 DO JKK=JK,JK_MAX IF (TPFILE%NSUBFILES_IOZ .GT. 1 ) THEN - IK_FILE = IO_FILE(JKK,TPFILE%NSUBFILES_IOZ) + IK_FILE = IO_Level2filenumber_get(JKK,TPFILE%NSUBFILES_IOZ) TZFILE => TPFILE%TFILES_IOZ(IK_FILE+1)%TFILE TZFIELD = TPFIELD WRITE(YSUFFIX,'(I4.4)') JKK @@ -718,11 +718,11 @@ IF (IRESP==0) THEN WRITE(YK,'(I4.4)') JKK YRECZSLICE = TRIM(TPFIELD%CMNHNAME)//YK IF (TZFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) + CALL IO_Field_read_nc4(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) ELSE IF (TZFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) + CALL IO_Field_read_lfi(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) ELSE IF (TZFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) + CALL IO_Field_read_nc4(TZFILE,TZFIELD,ZSLICE_ll,IRESP_TMP) END IF CALL SECOND_MNH2(T1) TIMEZ%T_READ3D_READ=TIMEZ%T_READ3D_READ + T1 - T0 @@ -771,7 +771,7 @@ IF (IRESP==0) THEN ! get the file & rank ! IF (TPFILE%NSUBFILES_IOZ .GT. 1 ) THEN - IK_FILE = IO_FILE(JKK,TPFILE%NSUBFILES_IOZ) + IK_FILE = IO_Level2filenumber_get(JKK,TPFILE%NSUBFILES_IOZ) TZFILE => TPFILE%TFILES_IOZ(IK_FILE+1)%TFILE ELSE TZFILE => TPFILE @@ -808,8 +808,8 @@ IF (IRESP==0) THEN DEALLOCATE(REQ_TAB) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! #endif !JUAN BG Z SLICE @@ -827,13 +827,13 @@ CALL MPI_BARRIER(TPFILE%NMPICOMM,IERR) CALL SECOND_MNH2(T22) TIMEZ%T_READ3D_ALL=TIMEZ%T_READ3D_ALL + T22 - T11 ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_X3 +END SUBROUTINE IO_Field_read_byfield_X3 -SUBROUTINE IO_READ_FIELD_BYNAME_X4(TPFILE,HNAME,PFIELD,KRESP) +SUBROUTINE IO_Field_read_byname_X4(TPFILE,HNAME,PFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : ISNPROC -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll +USE MODD_IO, ONLY: ISNPROC +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll ! ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -844,24 +844,24 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_X4',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_X4',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_X4 +END SUBROUTINE IO_Field_read_byname_X4 -SUBROUTINE IO_READ_FIELD_BYFIELD_X4(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_byfield_X4(TPFILE,TPFIELD,PFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,ISNPROC,LPACK,L1D,L2D -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll -USE MODD_TIMEZ, ONLY : TIMEZ +USE MODD_IO, ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll +USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll -USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 +USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 USE MODE_SCATTER_ll ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -875,14 +875,14 @@ LOGICAL :: GALLOC INTEGER :: IRESP INTEGER :: IHEXTOT ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_X4',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_X4',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! GALLOC = .FALSE. IRESP = 0 ZFIELDP => NULL() ! IHEXTOT = 2*JPHEXT+1 -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_X4',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_X4',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution @@ -894,11 +894,11 @@ IF (IRESP==0) THEN ZFIELDP=>PFIELD(:,:,:,:) END IF IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF IF (LPACK .AND. L1D .AND. SIZE(PFIELD,1)==IHEXTOT .AND. SIZE(PFIELD,2)==IHEXTOT) THEN PFIELD(:,:,:,:)=SPREAD(SPREAD(PFIELD(JPHEXT+1,JPHEXT+1,:,:),DIM=1,NCOPIES=IHEXTOT),DIM=2,NCOPIES=IHEXTOT) @@ -910,11 +910,11 @@ IF (IRESP==0) THEN ! I/O process case CALL ALLOCBUFFER_ll(ZFIELDP,PFIELD,TPFIELD%CDIR,GALLOC) IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ELSE !Not really necessary but useful to suppress alerts with Valgrind @@ -925,8 +925,8 @@ IF (IRESP==0) THEN CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! IF (TPFIELD%CDIR == 'XX' .OR. TPFIELD%CDIR == 'YY') THEN ! XX or YY Scatter Field @@ -952,13 +952,13 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_X4 +END SUBROUTINE IO_Field_read_byfield_X4 -SUBROUTINE IO_READ_FIELD_BYNAME_X5(TPFILE,HNAME,PFIELD,KRESP) +SUBROUTINE IO_Field_read_byname_X5(TPFILE,HNAME,PFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : ISNPROC -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll +USE MODD_IO, ONLY: ISNPROC +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll ! ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -969,24 +969,24 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_X5',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_X5',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_X5 +END SUBROUTINE IO_Field_read_byname_X5 -SUBROUTINE IO_READ_FIELD_BYFIELD_X5(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_byfield_X5(TPFILE,TPFIELD,PFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,ISNPROC,LPACK,L1D,L2D -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll -USE MODD_TIMEZ, ONLY : TIMEZ +USE MODD_IO, ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll +USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll -USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 +USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 USE MODE_SCATTER_ll ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -1000,14 +1000,14 @@ LOGICAL :: GALLOC INTEGER :: IRESP INTEGER :: IHEXTOT ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_X5',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_X5',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! GALLOC = .FALSE. IRESP = 0 ZFIELDP => NULL() ! IHEXTOT = 2*JPHEXT+1 -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_X5',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_X5',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution @@ -1019,11 +1019,11 @@ IF (IRESP==0) THEN ZFIELDP=>PFIELD(:,:,:,:,:) END IF IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF IF (LPACK .AND. L1D .AND. SIZE(PFIELD,1)==IHEXTOT .AND. SIZE(PFIELD,2)==IHEXTOT) THEN PFIELD(:,:,:,:,:)=SPREAD(SPREAD(PFIELD(JPHEXT+1,JPHEXT+1,:,:,:),DIM=1,NCOPIES=IHEXTOT),DIM=2,NCOPIES=IHEXTOT) @@ -1035,11 +1035,11 @@ IF (IRESP==0) THEN ! I/O process case CALL ALLOCBUFFER_ll(ZFIELDP,PFIELD,TPFIELD%CDIR,GALLOC) IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ELSE !Not really necessary but useful to suppress alerts with Valgrind @@ -1050,8 +1050,8 @@ IF (IRESP==0) THEN CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! IF (TPFIELD%CDIR == 'XX' .OR. TPFIELD%CDIR == 'YY') THEN ! XX or YY Scatter Field @@ -1077,13 +1077,13 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_X5 +END SUBROUTINE IO_Field_read_byfield_X5 -SUBROUTINE IO_READ_FIELD_BYNAME_X6(TPFILE,HNAME,PFIELD,KRESP) +SUBROUTINE IO_Field_read_byname_X6(TPFILE,HNAME,PFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : ISNPROC -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll +USE MODD_IO, ONLY: ISNPROC +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll ! ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -1094,24 +1094,24 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_X6',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_X6',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_X6 +END SUBROUTINE IO_Field_read_byname_X6 -SUBROUTINE IO_READ_FIELD_BYFIELD_X6(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_byfield_X6(TPFILE,TPFIELD,PFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,ISNPROC,LPACK,L1D,L2D -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll -USE MODD_TIMEZ, ONLY : TIMEZ +USE MODD_IO, ONLY: GSMONOPROC,ISP,ISNPROC,LPACK,L1D,L2D +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll +USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll -USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 +USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 USE MODE_SCATTER_ll ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -1125,34 +1125,34 @@ LOGICAL :: GALLOC INTEGER :: IRESP INTEGER :: IHEXTOT ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_X6',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_X6',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! GALLOC = .FALSE. IRESP = 0 ZFIELDP => NULL() ! IHEXTOT = 2*JPHEXT+1 -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_X6',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_X6',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,PFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN ! I/O process case CALL ALLOCBUFFER_ll(ZFIELDP,PFIELD,TPFIELD%CDIR,GALLOC) IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ELSE !Not really necessary but useful to suppress alerts with Valgrind @@ -1163,8 +1163,8 @@ IF (IRESP==0) THEN CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! IF (TPFIELD%CDIR == 'XX' .OR. TPFIELD%CDIR == 'YY') THEN ! XX or YY Scatter Field @@ -1184,10 +1184,10 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_X6 +END SUBROUTINE IO_Field_read_byfield_X6 -SUBROUTINE IO_READ_FIELD_BYNAME_N0(TPFILE,HNAME,KFIELD,KRESP) +SUBROUTINE IO_Field_read_byname_N0(TPFILE,HNAME,KFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write @@ -1197,19 +1197,19 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_N0',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_N0',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_N0 +END SUBROUTINE IO_Field_read_byname_N0 -SUBROUTINE IO_READ_FIELD_BYFIELD_N0(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_read_byfield_N0(TPFILE,TPFIELD,KFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : ISP,GSMONOPROC +USE MODD_IO, ONLY: ISP,GSMONOPROC ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD @@ -1219,37 +1219,37 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: IERR INTEGER :: IRESP ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_N0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_N0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_N0',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_N0',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,KFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,KFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,KFIELD,IRESP) END IF ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,KFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,KFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,KFIELD,IRESP) END IF END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! CALL MPI_BCAST(KFIELD,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF @@ -1259,10 +1259,10 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_N0 +END SUBROUTINE IO_Field_read_byfield_N0 -SUBROUTINE IO_READ_FIELD_BYNAME_N1(TPFILE,HNAME,KFIELD,KRESP) +SUBROUTINE IO_Field_read_byname_N1(TPFILE,HNAME,KFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write @@ -1272,19 +1272,19 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_N1',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_N1',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_N1 +END SUBROUTINE IO_Field_read_byname_N1 -SUBROUTINE IO_READ_FIELD_BYFIELD_N1(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_read_byfield_N1(TPFILE,TPFIELD,KFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : ISP,GSMONOPROC +USE MODD_IO, ONLY: ISP, GSMONOPROC ! USE MODE_ALLOCBUFFER_ll USE MODE_SCATTER_ll @@ -1299,32 +1299,32 @@ INTEGER :: IRESP INTEGER,DIMENSION(:),POINTER :: IFIELDP LOGICAL :: GALLOC ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_N1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_N1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! GALLOC = .FALSE. IRESP = 0 IFIELDP => NULL() ! -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_N1',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_N1',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,KFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,KFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,KFIELD,IRESP) END IF ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN CALL ALLOCBUFFER_ll(IFIELDP,KFIELD,TPFIELD%CDIR,GALLOC) IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,IFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) END IF ELSE !Not really necessary but useful to suppress alerts with Valgrind @@ -1335,8 +1335,8 @@ IF (IRESP==0) THEN CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! IF (TPFIELD%CDIR /= 'XX' .AND. TPFIELD%CDIR /='YY') THEN ! Broadcast Field @@ -1354,13 +1354,13 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_N1 +END SUBROUTINE IO_Field_read_byfield_N1 -SUBROUTINE IO_READ_FIELD_BYNAME_N2(TPFILE,HNAME,KFIELD,KRESP) +SUBROUTINE IO_Field_read_byname_N2(TPFILE,HNAME,KFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : ISNPROC -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll +USE MODD_IO, ONLY: ISNPROC +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll ! ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -1371,21 +1371,21 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_N2',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_N2',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_N2 +END SUBROUTINE IO_Field_read_byname_N2 -SUBROUTINE IO_READ_FIELD_BYFIELD_N2(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_read_byfield_N2(TPFILE,TPFIELD,KFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,ISNPROC,LPACK,L1D,L2D -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll -USE MODD_TIMEZ, ONLY : TIMEZ +USE MODD_IO, ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L1D, L2D +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll +USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll USE MODE_SCATTER_ll @@ -1401,14 +1401,14 @@ LOGICAL :: GALLOC INTEGER :: IRESP INTEGER :: IHEXTOT ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_N2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_N2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! GALLOC = .FALSE. IRESP = 0 IFIELDP => NULL() ! IHEXTOT = 2*JPHEXT+1 -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_N2',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_N2',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution @@ -1420,11 +1420,11 @@ IF (IRESP==0) THEN IFIELDP=>KFIELD(:,:) END IF IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,IFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) END IF IF (LPACK .AND. L1D .AND. SIZE(KFIELD,1)==IHEXTOT .AND. SIZE(KFIELD,2)==IHEXTOT) THEN KFIELD(:,:)=SPREAD(SPREAD(KFIELD(JPHEXT+1,JPHEXT+1),DIM=1,NCOPIES=IHEXTOT),DIM=2,NCOPIES=IHEXTOT) @@ -1436,11 +1436,11 @@ IF (IRESP==0) THEN ! I/O process case CALL ALLOCBUFFER_ll(IFIELDP,KFIELD,TPFIELD%CDIR,GALLOC) IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,IFIELDP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) END IF ELSE !Not really necessary but useful to suppress alerts with Valgrind @@ -1451,8 +1451,8 @@ IF (IRESP==0) THEN CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! IF (TPFIELD%CDIR == 'XX' .OR. TPFIELD%CDIR == 'YY') THEN ! XX or YY Scatter Field @@ -1481,10 +1481,10 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_N2 +END SUBROUTINE IO_Field_read_byfield_N2 -SUBROUTINE IO_READ_FIELD_BYNAME_L0(TPFILE,HNAME,OFIELD,KRESP) +SUBROUTINE IO_Field_read_byname_L0(TPFILE,HNAME,OFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write @@ -1494,19 +1494,19 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_L0',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_L0',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),OFIELD,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),OFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_L0 +END SUBROUTINE IO_Field_read_byname_L0 -SUBROUTINE IO_READ_FIELD_BYFIELD_L0(TPFILE,TPFIELD,OFIELD,KRESP) +SUBROUTINE IO_Field_read_byfield_L0(TPFILE,TPFIELD,OFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : ISP,GSMONOPROC +USE MODD_IO, ONLY: ISP, GSMONOPROC ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD @@ -1516,37 +1516,37 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: IERR INTEGER :: IRESP ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_L0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_L0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_L0',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_L0',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,OFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,OFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,OFIELD,IRESP) END IF ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,OFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,OFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,OFIELD,IRESP) END IF END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! CALL MPI_BCAST(OFIELD,1,MPI_LOGICAL,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF @@ -1556,10 +1556,10 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_L0 +END SUBROUTINE IO_Field_read_byfield_L0 -SUBROUTINE IO_READ_FIELD_BYNAME_L1(TPFILE,HNAME,OFIELD,KRESP) +SUBROUTINE IO_Field_read_byname_L1(TPFILE,HNAME,OFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write @@ -1569,19 +1569,19 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_L1',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_L1',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),OFIELD,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),OFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_L1 +END SUBROUTINE IO_Field_read_byname_L1 -SUBROUTINE IO_READ_FIELD_BYFIELD_L1(TPFILE,TPFIELD,OFIELD,KRESP) +SUBROUTINE IO_Field_read_byfield_L1(TPFILE,TPFIELD,OFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : ISP,GSMONOPROC +USE MODD_IO, ONLY: ISP, GSMONOPROC ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD @@ -1591,37 +1591,37 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: IERR INTEGER :: IRESP ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_L1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_L1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_L1',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_L1',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,OFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,OFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,OFIELD,IRESP) END IF ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,OFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,OFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,OFIELD,IRESP) END IF END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! CALL MPI_BCAST(OFIELD,SIZE(OFIELD),MPI_LOGICAL,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF @@ -1631,10 +1631,10 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_L1 +END SUBROUTINE IO_Field_read_byfield_L1 -SUBROUTINE IO_READ_FIELD_BYNAME_C0(TPFILE,HNAME,HFIELD,KRESP) +SUBROUTINE IO_Field_read_byname_C0(TPFILE,HNAME,HFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write @@ -1644,19 +1644,19 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_C0',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_C0',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),HFIELD,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),HFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_C0 +END SUBROUTINE IO_Field_read_byname_C0 -SUBROUTINE IO_READ_FIELD_BYFIELD_C0(TPFILE,TPFIELD,HFIELD,KRESP) +SUBROUTINE IO_Field_read_byfield_C0(TPFILE,TPFIELD,HFIELD,KRESP) ! -USE MODD_IO_ll, ONLY : ISP,GSMONOPROC +USE MODD_IO, ONLY: ISP, GSMONOPROC ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD @@ -1666,37 +1666,37 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: IERR INTEGER :: IRESP ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_C0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_C0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_C0',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_C0',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,HFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,HFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,HFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,HFIELD,IRESP) END IF ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,HFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,HFIELD,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,HFIELD,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,HFIELD,IRESP) END IF END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! CALL MPI_BCAST(HFIELD,LEN(HFIELD),MPI_CHARACTER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) END IF @@ -1706,10 +1706,10 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_C0 +END SUBROUTINE IO_Field_read_byfield_C0 -SUBROUTINE IO_READ_FIELD_BYNAME_T0(TPFILE,HNAME,TPDATA,KRESP) +SUBROUTINE IO_Field_read_byname_T0(TPFILE,HNAME,TPDATA,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write @@ -1719,19 +1719,19 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_T0',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_T0',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD(TPFILE,TFIELDLIST(ID),TPDATA,IRESP) +IF(IRESP==0) CALL IO_Field_read(TPFILE,TFIELDLIST(ID),TPDATA,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_T0 +END SUBROUTINE IO_Field_read_byname_T0 -SUBROUTINE IO_READ_FIELD_BYFIELD_T0(TPFILE,TPFIELD,TPDATA,KRESP) +SUBROUTINE IO_Field_read_byfield_T0(TPFILE,TPFIELD,TPDATA,KRESP) ! -USE MODD_IO_ll, ONLY : ISP,GSMONOPROC +USE MODD_IO, ONLY: ISP, GSMONOPROC ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD @@ -1742,29 +1742,29 @@ INTEGER :: IERR INTEGER :: IRESP INTEGER,DIMENSION(3) :: ITDATE ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_T0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_T0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_T0',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_T0',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,TPDATA,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,TPDATA,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,TPDATA,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,TPDATA,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,TPDATA,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,TPDATA,IRESP) END IF ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,TPDATA,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,TPDATA,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,TPDATA,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,TPDATA,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,TPDATA,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,TPDATA,IRESP) END IF ITDATE(1) = TPDATA%TDATE%YEAR ITDATE(2) = TPDATA%TDATE%MONTH @@ -1774,8 +1774,8 @@ IF (IRESP==0) THEN CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! CALL MPI_BCAST(ITDATE, 3,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) CALL MPI_BCAST(TPDATA%TIME,1,MPI_FLOAT, TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -1789,10 +1789,10 @@ IF (IRESP==-111) IRESP = 0 !-111 is not really an error (metadata has changed) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_T0 +END SUBROUTINE IO_Field_read_byfield_T0 -SUBROUTINE IO_READ_FIELD_BYNAME_LB(TPFILE,HNAME,KL3D,KRIM,PLB,KRESP) +SUBROUTINE IO_Field_read_byname_lb(TPFILE,HNAME,KL3D,KRIM,PLB,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of the field to write @@ -1804,26 +1804,26 @@ INTEGER,OPTIONAL, INTENT(OUT) :: KRESP ! return-code INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYNAME_LB',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byname_lb',TRIM(TPFILE%CNAME)//': reading '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! -IF(IRESP==0) CALL IO_READ_FIELD_LB(TPFILE,TFIELDLIST(ID),KL3D,KRIM,PLB,IRESP) +IF(IRESP==0) CALL IO_Field_read_lb(TPFILE,TFIELDLIST(ID),KL3D,KRIM,PLB,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_BYNAME_LB +END SUBROUTINE IO_Field_read_byname_lb -SUBROUTINE IO_READ_FIELD_BYFIELD_LB(TPFILE,TPFIELD,KL3D,KRIM,PLB,KRESP) +SUBROUTINE IO_Field_read_byfield_lb(TPFILE,TPFIELD,KL3D,KRIM,PLB,KRESP) ! -USE MODD_IO_ll, ONLY : ISP,ISNPROC,GSMONOPROC,LPACK,L2D -USE MODD_PARAMETERS_ll,ONLY : JPHEXT -USE MODD_TIMEZ, ONLY : TIMEZ -USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE +USE MODD_IO, ONLY: GSMONOPROC, ISP, ISNPROC, LPACK, L2D +USE MODD_PARAMETERS_ll, ONLY: JPHEXT +USE MODD_TIMEZ, ONLY: TIMEZ +USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE ! -USE MODE_DISTRIB_LB -USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 -USE MODE_TOOLS_ll, ONLY : GET_GLOBALDIMS_ll +USE MODE_DISTRIB_lb +USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 +USE MODE_TOOLS_ll, ONLY: GET_GLOBALDIMS_ll ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD @@ -1854,12 +1854,12 @@ REAL(KIND=8),DIMENSION(2) :: T0,T1,T2,T3 REAL(KIND=8),DIMENSION(2) :: T11,T22 TYPE(TX_3DP),ALLOCATABLE,DIMENSION(:) :: T_TX3DP ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_BYFIELD_LB','reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_byfield_lb','reading '//TRIM(TPFIELD%CMNHNAME)) ! YLBTYPE = TPFIELD%CLBTYPE ! IF (YLBTYPE/='LBX' .AND. YLBTYPE/='LBXU' .AND. YLBTYPE/='LBY' .AND. YLBTYPE/='LBYV') THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_BYFIELD_LB',TRIM(TPFILE%CNAME)//': invalid CLBTYPE (' & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_byfield_lb',TRIM(TPFILE%CNAME)//': invalid CLBTYPE (' & //TRIM(TPFIELD%CLBTYPE)//') for '//TRIM(TPFIELD%CMNHNAME)) RETURN END IF @@ -1870,7 +1870,7 @@ CALL SECOND_MNH2(T11) IRESP = 0 !------------------------------------------------------------------ IHEXTOT = 2*JPHEXT+1 -CALL IO_FILE_READ_CHECK(TPFILE,'IO_READ_FIELD_BYFIELD_LB',IRESP) +CALL IO_File_read_check(TPFILE,'IO_Field_read_byfield_lb',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution @@ -1888,11 +1888,11 @@ IF (IRESP==0) THEN TX3DP => Z3D(:,:,:) END IF IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,TX3DP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,TX3DP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,TX3DP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,TX3DP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,TX3DP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,TX3DP,IRESP) END IF IF (YLBTYPE == 'LBX' .OR. YLBTYPE == 'LBXU') THEN IF (LPACK .AND. L2D) Z3D(:,:,:) = SPREAD(Z3D(:,JPHEXT+1,:),DIM=2,NCOPIES=IHEXTOT) @@ -1920,11 +1920,11 @@ IF (IRESP==0) THEN TX3DP => Z3D(:,:,:) END IF IF (TPFILE%CFORMAT=='NETCDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,TX3DP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,TX3DP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFI') THEN - CALL IO_READ_FIELD_LFI(TPFILE,TPFIELD,TX3DP,IRESP) + CALL IO_Field_read_lfi(TPFILE,TPFIELD,TX3DP,IRESP) ELSE IF (TPFILE%CFORMAT=='LFICDF4') THEN - CALL IO_READ_FIELD_NC4(TPFILE,TPFIELD,TX3DP,IRESP) + CALL IO_Field_read_nc4(TPFILE,TPFIELD,TX3DP,IRESP) END IF IF (YLBTYPE == 'LBX' .OR. YLBTYPE == 'LBXU') THEN IF (LPACK .AND. L2D) Z3D(:,:,:) = SPREAD(Z3D(:,JPHEXT+1,:),DIM=2,NCOPIES=IHEXTOT) @@ -1941,8 +1941,8 @@ IF (IRESP==0) THEN CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) ! !Broadcast header only if IRESP==-111 - !because metadata of field has been modified in IO_READ_FIELD_xxx - IF (IRESP==-111) CALL IO_BCAST_FIELD_METADATA(TPFILE,TPFIELD) + !because metadata of field has been modified in IO_Field_read_xxx + IF (IRESP==-111) CALL IO_Field_metadata_bcast(TPFILE,TPFIELD) ! NB_REQ=0 ALLOCATE(REQ_TAB(ISNPROC-1)) @@ -1954,7 +1954,7 @@ IF (IRESP==0) THEN ALLOCATE(T_TX3DP(ISNPROC-1)) IKU = SIZE(Z3D,3) DO JI = 1,ISNPROC - CALL GET_DISTRIB_LB(YLBTYPE,JI,'FM','READ',KRIM,IIB,IIE,IJB,IJE) + CALL GET_DISTRIB_lb(YLBTYPE,JI,'FM','READ',KRIM,IIB,IIE,IJB,IJE) IF (IIB /= 0) THEN TX3DP=>Z3D(IIB:IIE,IJB:IJE,:) IF (ISP /= JI) THEN @@ -1964,7 +1964,7 @@ IF (IRESP==0) THEN CALL MPI_ISEND(T_TX3DP(NB_REQ)%X,SIZE(TX3DP),MPI_FLOAT,JI-1,99,TPFILE%NMPICOMM,REQ_TAB(NB_REQ),IERR) !CALL MPI_BSEND(T_TX3DP(NB_REQ)%X,SIZE(TX3DP),MPI_FLOAT,JI-1,99,TPFILE%NMPICOMM,IERR) ELSE - CALL GET_DISTRIB_LB(YLBTYPE,JI,'LOC','READ',KRIM,IIB,IIE,IJB,IJE) + CALL GET_DISTRIB_lb(YLBTYPE,JI,'LOC','READ',KRIM,IIB,IIE,IJB,IJE) PLB(IIB:IIE,IJB:IJE,:) = TX3DP(:,:,:) END IF END IF @@ -1986,7 +1986,7 @@ IF (IRESP==0) THEN CALL SECOND_MNH2(T0) !ALLOCATE(REQ_TAB(1)) !REQ_TAB=MPI_REQUEST_NULL - CALL GET_DISTRIB_LB(YLBTYPE,ISP,'LOC','READ',KRIM,IIB,IIE,IJB,IJE) + CALL GET_DISTRIB_lb(YLBTYPE,ISP,'LOC','READ',KRIM,IIB,IIE,IJB,IJE) IF (IIB /= 0) THEN TX3DP=>PLB(IIB:IIE,IJB:IJE,:) CALL MPI_RECV(TX3DP,SIZE(TX3DP),MPI_FLOAT,TPFILE%NMASTER_RANK-1,99,TPFILE%NMPICOMM,STATUS,IERR) @@ -2011,6 +2011,6 @@ IF (PRESENT(KRESP)) KRESP = IRESP CALL SECOND_MNH2(T22) TIMEZ%T_READLB_ALL=TIMEZ%T_READLB_ALL + T22 - T11 ! -END SUBROUTINE IO_READ_FIELD_BYFIELD_LB +END SUBROUTINE IO_Field_read_byfield_lb -END MODULE MODE_FMREAD +END MODULE MODE_IO_FIELD_READ diff --git a/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 b/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 index 41c659421..5eddb048c 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 @@ -4,10 +4,11 @@ !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! Modifications: -! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! Philippe Wautelet: 10/01/2019: do not write scalars in Z-split files -! Philippe Wautelet: 10/01/2019: write header also for Z-split files +! J. Escobar 15/09/2015: WENO5 & JPHEXT <> 1 +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 10/01/2019: do not write scalars in Z-split files +! P. Wautelet 10/01/2019: write header also for Z-split files +! P. Wautelet 05/03/2019: rename IO subroutines and modules !----------------------------------------------------------------- #ifdef MNH_MPI_DOUBLE_PRECISION @@ -18,10 +19,10 @@ #define MNH_SCALARS_IN_SPLITFILES 0 -MODULE MODE_FMWRIT +MODULE MODE_IO_FIELD_WRITE USE MODD_MPIF - USE MODD_IO_ll, ONLY: TFILEDATA + USE MODD_IO, ONLY: TFILEDATA, TOUTBAK USE MODE_FIELD USE MODE_IO_WRITE_LFI @@ -33,41 +34,42 @@ MODULE MODE_FMWRIT PRIVATE - INTERFACE IO_WRITE_FIELD - MODULE PROCEDURE IO_WRITE_FIELD_BYNAME_X0, IO_WRITE_FIELD_BYNAME_X1, & - IO_WRITE_FIELD_BYNAME_X2, IO_WRITE_FIELD_BYNAME_X3, & - IO_WRITE_FIELD_BYNAME_X4, IO_WRITE_FIELD_BYNAME_X5, & - IO_WRITE_FIELD_BYNAME_X6, & - IO_WRITE_FIELD_BYNAME_N0, IO_WRITE_FIELD_BYNAME_N1, & - IO_WRITE_FIELD_BYNAME_N2, IO_WRITE_FIELD_BYNAME_N3, & - IO_WRITE_FIELD_BYNAME_L0, IO_WRITE_FIELD_BYNAME_L1, & - IO_WRITE_FIELD_BYNAME_C0, IO_WRITE_FIELD_BYNAME_C1, & - IO_WRITE_FIELD_BYNAME_T0, & - IO_WRITE_FIELD_BYFIELD_X0,IO_WRITE_FIELD_BYFIELD_X1, & - IO_WRITE_FIELD_BYFIELD_X2,IO_WRITE_FIELD_BYFIELD_X3, & - IO_WRITE_FIELD_BYFIELD_X4,IO_WRITE_FIELD_BYFIELD_X5, & - IO_WRITE_FIELD_BYFIELD_X6, & - IO_WRITE_FIELD_BYFIELD_N0,IO_WRITE_FIELD_BYFIELD_N1, & - IO_WRITE_FIELD_BYFIELD_N2,IO_WRITE_FIELD_BYFIELD_N3, & - IO_WRITE_FIELD_BYFIELD_L0,IO_WRITE_FIELD_BYFIELD_L1, & - IO_WRITE_FIELD_BYFIELD_C0,IO_WRITE_FIELD_BYFIELD_C1, & - IO_WRITE_FIELD_BYFIELD_T0 + public :: IO_Field_write, IO_Field_write_box, IO_Field_write_lb + public :: IO_Header_write + public :: IO_Fieldlist_write, IO_Field_user_write + + INTERFACE IO_Field_write + MODULE PROCEDURE IO_Field_write_byname_X0, IO_Field_write_byname_X1, & + IO_Field_write_byname_X2, IO_Field_write_byname_X3, & + IO_Field_write_byname_X4, IO_Field_write_byname_X5, & + IO_Field_write_byname_X6, & + IO_Field_write_byname_N0, IO_Field_write_byname_N1, & + IO_Field_write_byname_N2, IO_Field_write_byname_N3, & + IO_Field_write_byname_L0, IO_Field_write_byname_L1, & + IO_Field_write_byname_C0, IO_Field_write_byname_C1, & + IO_Field_write_byname_T0, & + IO_Field_write_byfield_X0,IO_Field_write_byfield_X1, & + IO_Field_write_byfield_X2,IO_Field_write_byfield_X3, & + IO_Field_write_byfield_X4,IO_Field_write_byfield_X5, & + IO_Field_write_byfield_X6, & + IO_Field_write_byfield_N0,IO_Field_write_byfield_N1, & + IO_Field_write_byfield_N2,IO_Field_write_byfield_N3, & + IO_Field_write_byfield_L0,IO_Field_write_byfield_L1, & + IO_Field_write_byfield_C0,IO_Field_write_byfield_C1, & + IO_Field_write_byfield_T0 END INTERFACE - INTERFACE IO_WRITE_FIELD_BOX - MODULE PROCEDURE IO_WRITE_FIELD_BOX_BYFIELD_X5 + INTERFACE IO_Field_write_box + MODULE PROCEDURE IO_Field_write_box_byfield_X5 END INTERFACE - INTERFACE IO_WRITE_FIELD_LB - MODULE PROCEDURE IO_WRITE_FIELD_BYNAME_LB, IO_WRITE_FIELD_BYFIELD_LB + INTERFACE IO_Field_write_lb + MODULE PROCEDURE IO_Field_write_byname_lb, IO_Field_write_byfield_lb END INTERFACE - PUBLIC IO_WRITE_FIELD, IO_WRITE_FIELD_BOX, IO_WRITE_FIELD_LB - PUBLIC IO_WRITE_HEADER - CONTAINS - SUBROUTINE FIELD_METADATA_CHECK(TPFIELD,KTYPE,KDIMS,HCALLER) + SUBROUTINE IO_Field_metadata_check(TPFIELD,KTYPE,KDIMS,HCALLER) TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD ! Field to check INTEGER, INTENT(IN) :: KTYPE ! Expected datatype INTEGER, INTENT(IN) :: KDIMS ! Expected number of dimensions @@ -113,10 +115,10 @@ CONTAINS END SELECT ! END SUBROUTINE TYPE_WRITE - END SUBROUTINE FIELD_METADATA_CHECK + END SUBROUTINE IO_Field_metadata_check - SUBROUTINE IO_FILE_WRITE_CHECK(TPFILE,HSUBR,KRESP) + SUBROUTINE IO_File_write_check(TPFILE,HSUBR,KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HSUBR INTEGER, INTENT(OUT) :: KRESP @@ -144,10 +146,10 @@ CONTAINS RETURN END IF ! - END SUBROUTINE IO_FILE_WRITE_CHECK + END SUBROUTINE IO_File_write_check - SUBROUTINE IO_WRITE_SELECT_FORMAT(TPFILE,OLFI,ONC4) + SUBROUTINE IO_Format_write_select(TPFILE,OLFI,ONC4) TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File structure LOGICAL, INTENT(OUT) :: OLFI ! Write in LFI format? LOGICAL, INTENT(OUT) :: ONC4 ! Write in netCDF format? @@ -156,27 +158,27 @@ CONTAINS ONC4 = .FALSE. IF (TPFILE%CFORMAT=='LFI' .OR. TPFILE%CFORMAT=='LFICDF4') OLFI = .TRUE. IF (TPFILE%CFORMAT=='NETCDF4' .OR. TPFILE%CFORMAT=='LFICDF4') ONC4 = .TRUE. - END SUBROUTINE IO_WRITE_SELECT_FORMAT + END SUBROUTINE IO_Format_write_select - SUBROUTINE IO_WRITE_HEADER(TPFILE,HDAD_NAME) + SUBROUTINE IO_Header_write(TPFILE,HDAD_NAME) TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File structure CHARACTER(LEN=*),OPTIONAL,INTENT(IN) :: HDAD_NAME integer :: ifile - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_HEADER_FILE','called for file '//TRIM(TPFILE%CNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Header_write_FILE','called for file '//TRIM(TPFILE%CNAME)) - CALL IO_WRITE_HEADER_ONEFILE(TPFILE,HDAD_NAME) + CALL IO_Header_onefile_write(TPFILE,HDAD_NAME) !Write header also for the Z-split files DO IFILE=1,TPFILE%NSUBFILES_IOZ - CALL IO_WRITE_HEADER_ONEFILE(TPFILE%TFILES_IOZ(IFILE)%TFILE,HDAD_NAME) + CALL IO_Header_onefile_write(TPFILE%TFILES_IOZ(IFILE)%TFILE,HDAD_NAME) END DO - END SUBROUTINE IO_WRITE_HEADER + END SUBROUTINE IO_Header_write - SUBROUTINE IO_WRITE_HEADER_ONEFILE(TPFILE,HDAD_NAME) + SUBROUTINE IO_Header_onefile_write(TPFILE,HDAD_NAME) ! USE MODD_CONF USE MODD_CONF_n, ONLY: CSTORAGE_TYPE @@ -188,23 +190,23 @@ CONTAINS CHARACTER(LEN=:),ALLOCATABLE :: YDAD_NAME INTEGER :: ILEN,ILEN2 ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_HEADER_ONEFILE','called for file '//TRIM(TPFILE%CNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Header_onefile_write','called for file '//TRIM(TPFILE%CNAME)) ! IF ( ASSOCIATED(TPFILE%TDADFILE) .AND. PRESENT(HDAD_NAME) ) THEN IF ( TRIM(TPFILE%TDADFILE%CNAME) /= TRIM(HDAD_NAME) ) THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_HEADER_ONEFILE','TPFILE%TDADFILE%CNAME /= HDAD_NAME') + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Header_onefile_write','TPFILE%TDADFILE%CNAME /= HDAD_NAME') END IF END IF ! - CALL IO_WRITE_HEADER_NC4(TPFILE) + CALL IO_Header_write_nc4(TPFILE) ! - CALL IO_WRITE_FIELD(TPFILE,'MNHVERSION', NMNHVERSION) - CALL IO_WRITE_FIELD(TPFILE,'MASDEV', NMASDEV) - CALL IO_WRITE_FIELD(TPFILE,'BUGFIX', NBUGFIX) - CALL IO_WRITE_FIELD(TPFILE,'BIBUSER', CBIBUSER) - CALL IO_WRITE_FIELD(TPFILE,'PROGRAM', CPROGRAM) - CALL IO_WRITE_FIELD(TPFILE,'STORAGE_TYPE',CSTORAGE_TYPE) - CALL IO_WRITE_FIELD(TPFILE,'MY_NAME', TPFILE%CNAME) + CALL IO_Field_write(TPFILE,'MNHVERSION', NMNHVERSION) + CALL IO_Field_write(TPFILE,'MASDEV', NMASDEV) + CALL IO_Field_write(TPFILE,'BUGFIX', NBUGFIX) + CALL IO_Field_write(TPFILE,'BIBUSER', CBIBUSER) + CALL IO_Field_write(TPFILE,'PROGRAM', CPROGRAM) + CALL IO_Field_write(TPFILE,'STORAGE_TYPE',CSTORAGE_TYPE) + CALL IO_Field_write(TPFILE,'MY_NAME', TPFILE%CNAME) ! IF ( ASSOCIATED(TPFILE%TDADFILE) ) THEN ILEN = LEN_TRIM(TPFILE%TDADFILE%CNAME) @@ -227,18 +229,18 @@ CONTAINS YDAD_NAME(:) = ' ' END IF ELSE - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_HEADER_ONEFILE',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Header_onefile_write',TRIM(TPFILE%CNAME)// & ': TPFILE%TDADFILE not associated and HDAD_NAME not provided') ALLOCATE(CHARACTER(LEN=NFILENAMELGTMAXLFI) :: YDAD_NAME) YDAD_NAME(:) = ' ' ENDIF - CALL IO_WRITE_FIELD(TPFILE,'DAD_NAME',YDAD_NAME) + CALL IO_Field_write(TPFILE,'DAD_NAME',YDAD_NAME) DEALLOCATE(YDAD_NAME) ! - END SUBROUTINE IO_WRITE_HEADER_ONEFILE + END SUBROUTINE IO_Header_onefile_write - SUBROUTINE IO_WRITE_FIELD_BYNAME_X0(TPFILE,HNAME,PFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_X0(TPFILE,HNAME,PFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -252,21 +254,21 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_X0',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_X0',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_X0 + END SUBROUTINE IO_Field_write_byname_X0 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_X0(TPFILE,TPFIELD,PFIELD,KRESP) - USE MODD_IO_ll, ONLY: GSMONOPROC,ISP + SUBROUTINE IO_Field_write_byfield_X0(TPFILE,TPFIELD,PFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP ! - USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME + USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_find_byname ! IMPLICIT NONE ! @@ -298,22 +300,22 @@ CONTAINS IRESP = 0 TZFILE => NULL() ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_X0',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_X0',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEREAL,0,'IO_WRITE_FIELD_BYFIELD_X0') + CALL IO_Field_metadata_check(TPFIELD,TYPEREAL,0,'IO_Field_write_byfield_X0') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_X0',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_X0',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE ! multiprocesses execution IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -324,8 +326,8 @@ CONTAINS DO IK_FILE=1,TPFILE%NSUBFILES_IOZ TZFILE => TPFILE%TFILES_IOZ(IK_FILE)%TFILE IF ( ISP == TZFILE%NMASTER_RANK ) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TZFILE,TPFIELD,PFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TZFILE,TPFIELD,PFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TZFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TZFILE,TPFIELD,PFIELD,IRESP) END IF END DO ENDIF @@ -335,13 +337,13 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_X0',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_X0',YMSG) END IF IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_X0 + END SUBROUTINE IO_Field_write_byfield_X0 - SUBROUTINE IO_WRITE_FIELD_BYNAME_X1(TPFILE,HNAME,PFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_X1(TPFILE,HNAME,PFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -355,23 +357,23 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return-code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_X1',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_X1',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_X1 + END SUBROUTINE IO_Field_write_byname_X1 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_X1(TPFILE,TPFIELD,PFIELD,KRESP) - USE MODD_IO_ll, ONLY: GSMONOPROC,ISP + SUBROUTINE IO_Field_write_byfield_X1(TPFILE,TPFIELD,PFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP ! USE MODE_ALLOCBUFFER_ll USE MODE_GATHER_ll - USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME + USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_find_byname ! IMPLICIT NONE ! @@ -404,18 +406,18 @@ CONTAINS YRECFM = TPFIELD%CMNHNAME YDIR = TPFIELD%CDIR ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_X1',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_X1',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEREAL,1,'IO_WRITE_FIELD_BYFIELD_X1') + CALL IO_Field_metadata_check(TPFIELD,TYPEREAL,1,'IO_Field_write_byfield_X1') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_X1',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_X1',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE ! multiprocesses execution #if ( MNH_INT == 4 ) CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) @@ -423,7 +425,7 @@ CONTAINS CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) #endif IF (ISIZEMAX==0) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X1','ignoring variable with a zero size ('//TRIM(YRECFM)//')') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_write_byfield_X1','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 RETURN END IF @@ -440,8 +442,8 @@ CONTAINS END IF ! IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -451,14 +453,14 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_X1',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_X1',YMSG) END IF IF (GALLOC) DEALLOCATE(ZFIELDP) IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_X1 + END SUBROUTINE IO_Field_write_byfield_X1 - SUBROUTINE IO_WRITE_FIELD_BYNAME_X2(TPFILE,HNAME,PFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_X2(TPFILE,HNAME,PFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -472,28 +474,28 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return-code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_X2',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_X2',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_X2 + END SUBROUTINE IO_Field_write_byname_X2 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_X2(TPFILE,TPFIELD,PFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,L1D,L2D,LPACK - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_TIMEZ, ONLY : TIMEZ + SUBROUTINE IO_Field_write_byfield_X2(TPFILE,TPFIELD,PFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC,ISP,L1D,L2D,LPACK + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll #ifdef MNH_GA USE MODE_GA #endif USE MODE_GATHER_ll - USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 + USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 ! IMPLICIT NONE ! @@ -535,29 +537,29 @@ CONTAINS ! CALL SECOND_MNH2(T11) ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_X2',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_X2',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEREAL,2,'IO_WRITE_FIELD_BYFIELD_X2') + CALL IO_Field_metadata_check(TPFIELD,TYPEREAL,2,'IO_Field_write_byfield_X2') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_X2',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_X2',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution ! IF (LPACK .AND. L1D .AND. YDIR=='XY') THEN IF (LPACK .AND. L1D .AND. SIZE(PFIELD,1)==IHEXTOT .AND. SIZE(PFIELD,2)==IHEXTOT) THEN ZFIELDP=>PFIELD(JPHEXT+1:JPHEXT+1,JPHEXT+1:JPHEXT+1) - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ! ELSE IF (LPACK .AND. L2D .AND. YDIR=='XY') THEN ELSEIF (LPACK .AND. L2D .AND. SIZE(PFIELD,2)==IHEXTOT) THEN ZFIELDP=>PFIELD(:,JPHEXT+1:JPHEXT+1) - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSE ! multiprocesses execution CALL SECOND_MNH2(T0) @@ -567,7 +569,7 @@ CONTAINS CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) #endif IF (ISIZEMAX==0) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X2','ignoring variable with a zero size ('//TRIM(YRECFM)//')') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_write_byfield_X2','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 RETURN END IF @@ -616,8 +618,8 @@ CONTAINS TIMEZ%T_WRIT2D_GATH=TIMEZ%T_WRIT2D_GATH + T1 - T0 ! IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF #ifdef MNH_GA call ga_sync @@ -632,16 +634,16 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_X2',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_X2',YMSG) END IF IF (GALLOC) DEALLOCATE(ZFIELDP) IF (PRESENT(KRESP)) KRESP = IRESP CALL SECOND_MNH2(T22) TIMEZ%T_WRIT2D_ALL=TIMEZ%T_WRIT2D_ALL + T22 - T11 - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_X2 + END SUBROUTINE IO_Field_write_byfield_X2 - SUBROUTINE IO_WRITE_FIELD_BYNAME_X3(TPFILE,HNAME,PFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_X3(TPFILE,HNAME,PFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -655,31 +657,31 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_X3',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_X3',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_X3 + END SUBROUTINE IO_Field_write_byname_X3 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_X3(TPFILE,TPFIELD,PFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC,ISNPROC,ISP,L1D,L2D,LPACK - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_TIMEZ, ONLY : TIMEZ + SUBROUTINE IO_Field_write_byfield_X3(TPFILE,TPFIELD,PFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISNPROC, ISP, L1D, L2D, LPACK + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODD_TIMEZ, ONLY: TIMEZ + USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE ! USE MODE_ALLOCBUFFER_ll - USE MODE_GATHER_ll - USE MODE_IO_TOOLS, ONLY : IO_FILE - USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_FIND_BYNAME - USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 #ifdef MNH_GA USE MODE_GA #endif - USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE + USE MODE_GATHER_ll + USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_find_byname + USE MODE_IO_TOOLS, ONLY: IO_Level2filenumber_get + USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 ! ! !* 0.1 Declarations of arguments @@ -737,31 +739,31 @@ CONTAINS GALLOC_ll = .FALSE. IHEXTOT = 2*JPHEXT+1 ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_X3',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_X3',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! CALL SECOND_MNH2(T11) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEREAL,3,'IO_WRITE_FIELD_BYFIELD_X3') + CALL IO_Field_metadata_check(TPFIELD,TYPEREAL,3,'IO_Field_write_byfield_X3') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_X3',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_X3',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC .AND. TPFILE%NSUBFILES_IOZ==0 ) THEN ! sequential execution ! IF (LPACK .AND. L1D .AND. YDIR=='XY') THEN IF (LPACK .AND. L1D .AND. SIZE(PFIELD,1)==IHEXTOT .AND. SIZE(PFIELD,2)==IHEXTOT) THEN ZFIELDP=>PFIELD(JPHEXT+1:JPHEXT+1,JPHEXT+1:JPHEXT+1,:) - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ! ELSE IF (LPACK .AND. L2D .AND. YDIR=='XY') THEN ELSEIF (LPACK .AND. L2D .AND. SIZE(PFIELD,2)==IHEXTOT) THEN ZFIELDP=>PFIELD(:,JPHEXT+1:JPHEXT+1,:) - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSEIF ( TPFILE%NSUBFILES_IOZ==0 .OR. YDIR=='--' ) THEN ! multiprocesses execution & 1 proc IO #if ( MNH_INT == 4 ) @@ -770,7 +772,7 @@ CONTAINS CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) #endif IF (ISIZEMAX==0) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X3','ignoring variable with a zero size ('//TRIM(YRECFM)//')') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_write_byfield_X3','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 RETURN END IF @@ -794,8 +796,8 @@ CONTAINS END IF ! IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -807,7 +809,7 @@ CONTAINS CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) #endif IF (ISIZEMAX==0) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X3','ignoring variable with a zero size ('//TRIM(YRECFM)//')') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_write_byfield_X3','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 RETURN END IF @@ -839,7 +841,7 @@ CONTAINS ! DO JKK=1,IKU_ll ! - IK_FILE = IO_FILE(JKK,TPFILE%NSUBFILES_IOZ) + IK_FILE = IO_Level2filenumber_get(JKK,TPFILE%NSUBFILES_IOZ) TZFILE => TPFILE%TFILES_IOZ(IK_FILE+1)%TFILE ! IK_RANK = TZFILE%NMASTER_RANK @@ -860,8 +862,8 @@ CONTAINS CALL SECOND_MNH2(T1) TIMEZ%T_WRIT3D_RECV=TIMEZ%T_WRIT3D_RECV + T1 - T0 ! - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) CALL SECOND_MNH2(T2) TIMEZ%T_WRIT3D_WRIT=TIMEZ%T_WRIT3D_WRIT + T2 - T1 END IF @@ -890,7 +892,7 @@ CONTAINS ! get the file & rank to write this level ! IF (TPFILE%NSUBFILES_IOZ .GT. 1 ) THEN - IK_FILE = IO_FILE(JKK,TPFILE%NSUBFILES_IOZ) + IK_FILE = IO_Level2filenumber_get(JKK,TPFILE%NSUBFILES_IOZ) TZFILE => TPFILE%TFILES_IOZ(IK_FILE+1)%TFILE ELSE TZFILE => TPFILE @@ -931,7 +933,7 @@ CONTAINS ! DO JKK=JK,JK_MAX IF (TPFILE%NSUBFILES_IOZ .GT. 1 ) THEN - IK_FILE = IO_FILE(JKK,TPFILE%NSUBFILES_IOZ) + IK_FILE = IO_Level2filenumber_get(JKK,TPFILE%NSUBFILES_IOZ) TZFILE => TPFILE%TFILES_IOZ(IK_FILE+1)%TFILE ELSE TZFILE => TPFILE @@ -960,8 +962,8 @@ CONTAINS END DO CALL SECOND_MNH2(T1) TIMEZ%T_WRIT3D_RECV=TIMEZ%T_WRIT3D_RECV + T1 - T0 - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZSLICE_ll,IRESP,KVERTLEVEL=JKK,KZFILE=IK_FILE+1) CALL SECOND_MNH2(T2) TIMEZ%T_WRIT3D_WRIT=TIMEZ%T_WRIT3D_WRIT + T2 - T1 END IF @@ -986,17 +988,17 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_X3',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_X3',YMSG) END IF IF (GALLOC) DEALLOCATE(ZFIELDP) IF (GALLOC_ll) DEALLOCATE(ZSLICE_ll) IF (PRESENT(KRESP)) KRESP = IRESP CALL SECOND_MNH2(T22) TIMEZ%T_WRIT3D_ALL=TIMEZ%T_WRIT3D_ALL + T22 - T11 - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_X3 + END SUBROUTINE IO_Field_write_byfield_X3 - SUBROUTINE IO_WRITE_FIELD_BYNAME_X4(TPFILE,HNAME,PFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_X4(TPFILE,HNAME,PFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -1010,27 +1012,27 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_X4',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_X4',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_X4 + END SUBROUTINE IO_Field_write_byname_X4 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_X4(TPFILE,TPFIELD,PFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,L1D,L2D,LPACK - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_TIMEZ, ONLY : TIMEZ + SUBROUTINE IO_Field_write_byfield_X4(TPFILE,TPFIELD,PFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP, L1D, L2D, LPACK + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll USE MODE_GATHER_ll - USE MODE_IO_TOOLS, ONLY : IO_FILE,IO_RANK - USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 - USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE + USE MODE_IO_TOOLS, ONLY: IO_Level2filenumber_get + USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 + USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE ! ! !* 0.1 Declarations of arguments @@ -1064,13 +1066,13 @@ CONTAINS ! IHEXTOT = 2*JPHEXT+1 ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_X4',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_X4',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEREAL,4,'IO_WRITE_FIELD_BYFIELD_X4') + CALL IO_Field_metadata_check(TPFIELD,TYPEREAL,4,'IO_Field_write_byfield_X4') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_X4',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_X4',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution @@ -1080,11 +1082,11 @@ CONTAINS ! ELSE IF (LPACK .AND. L2D .AND. YDIR=='XY') THEN ELSEIF (LPACK .AND. L2D .AND. SIZE(PFIELD,2)==IHEXTOT) THEN ZFIELDP=>PFIELD(:,JPHEXT+1:JPHEXT+1,:,:) - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSE #if ( MNH_INT == 4 ) @@ -1093,7 +1095,7 @@ CONTAINS CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) #endif IF (ISIZEMAX==0) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X4','ignoring variable with a zero size ('//TRIM(YRECFM)//')') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_write_byfield_X4','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 RETURN END IF @@ -1116,8 +1118,8 @@ CONTAINS END IF ! IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -1127,14 +1129,14 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_X4',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_X4',YMSG) END IF IF (GALLOC) DEALLOCATE(ZFIELDP) IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_X4 + END SUBROUTINE IO_Field_write_byfield_X4 - SUBROUTINE IO_WRITE_FIELD_BYNAME_X5(TPFILE,HNAME,PFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_X5(TPFILE,HNAME,PFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -1148,27 +1150,27 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_X5',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_X5',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_X5 + END SUBROUTINE IO_Field_write_byname_X5 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_X5(TPFILE,TPFIELD,PFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,L1D,L2D,LPACK - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_TIMEZ, ONLY : TIMEZ + SUBROUTINE IO_Field_write_byfield_X5(TPFILE,TPFIELD,PFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP, L1D, L2D, LPACK + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll USE MODE_GATHER_ll - USE MODE_IO_TOOLS, ONLY : IO_FILE,IO_RANK - USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 - USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE + USE MODE_IO_TOOLS, ONLY: IO_Level2filenumber_get + USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 + USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE ! ! !* 0.1 Declarations of arguments @@ -1202,13 +1204,13 @@ CONTAINS ! IHEXTOT = 2*JPHEXT+1 ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_X5',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_X5',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEREAL,5,'IO_WRITE_FIELD_BYFIELD_X5') + CALL IO_Field_metadata_check(TPFIELD,TYPEREAL,5,'IO_Field_write_byfield_X5') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_X5',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_X5',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution @@ -1218,11 +1220,11 @@ CONTAINS ! ELSE IF (LPACK .AND. L2D .AND. YDIR=='XY') THEN ELSEIF (LPACK .AND. L2D .AND. SIZE(PFIELD,2)==IHEXTOT) THEN ZFIELDP=>PFIELD(:,JPHEXT+1:JPHEXT+1,:,:,:) - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,PFIELD,IRESP) END IF ELSE #if ( MNH_INT == 4 ) @@ -1231,7 +1233,7 @@ CONTAINS CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) #endif IF (ISIZEMAX==0) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X5','ignoring variable with a zero size ('//TRIM(YRECFM)//')') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_write_byfield_X5','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 RETURN END IF @@ -1255,8 +1257,8 @@ CONTAINS END IF ! IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -1266,14 +1268,14 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_X5',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_X5',YMSG) END IF IF (GALLOC) DEALLOCATE(ZFIELDP) IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_X5 + END SUBROUTINE IO_Field_write_byfield_X5 - SUBROUTINE IO_WRITE_FIELD_BYNAME_X6(TPFILE,HNAME,PFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_X6(TPFILE,HNAME,PFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -1287,26 +1289,26 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_X6',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_X6',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),PFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_X6 + END SUBROUTINE IO_Field_write_byname_X6 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_X6(TPFILE,TPFIELD,PFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC, ISP - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_TIMEZ, ONLY : TIMEZ + SUBROUTINE IO_Field_write_byfield_X6(TPFILE,TPFIELD,PFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll USE MODE_GATHER_ll - USE MODE_IO_TOOLS, ONLY : IO_FILE,IO_RANK - USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 - USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE + USE MODE_IO_TOOLS, ONLY: IO_Level2filenumber_get + USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 + USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE ! ! !* 0.1 Declarations of arguments @@ -1340,18 +1342,18 @@ CONTAINS ! IHEXTOT = 2*JPHEXT+1 ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_X6',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_X6',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEREAL,6,'IO_WRITE_FIELD_BYFIELD_X6') + CALL IO_Field_metadata_check(TPFIELD,TYPEREAL,6,'IO_Field_write_byfield_X6') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_X6',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_X6',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,PFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,PFIELD,IRESP) ELSE #if ( MNH_INT == 4 ) CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) @@ -1359,7 +1361,7 @@ CONTAINS CALL MPI_ALLREDUCE(SIZE(PFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) #endif IF (ISIZEMAX==0) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_X6','ignoring variable with a zero size ('//TRIM(YRECFM)//')') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_write_byfield_X6','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 RETURN END IF @@ -1378,8 +1380,8 @@ CONTAINS END IF ! IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -1389,14 +1391,14 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_X6',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_X6',YMSG) END IF IF (GALLOC) DEALLOCATE(ZFIELDP) IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_X6 + END SUBROUTINE IO_Field_write_byfield_X6 - SUBROUTINE IO_WRITE_FIELD_BYNAME_N0(TPFILE,HNAME,KFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_N0(TPFILE,HNAME,KFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -1410,19 +1412,19 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_N0',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_N0',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_N0 + END SUBROUTINE IO_Field_write_byname_N0 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_N0(TPFILE,TPFIELD,KFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC, ISP + SUBROUTINE IO_Field_write_byfield_N0(TPFILE,TPFIELD,KFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP !* 0. DECLARATIONS ! ------------ ! @@ -1447,22 +1449,22 @@ CONTAINS IRESP = 0 TZFILE => NULL() ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_N0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_N0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEINT,0,'IO_WRITE_FIELD_BYFIELD_N0') + CALL IO_Field_metadata_check(TPFIELD,TYPEINT,0,'IO_Field_write_byfield_N0') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_N0',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_N0',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,KFIELD,IRESP) ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,KFIELD,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -1473,8 +1475,8 @@ CONTAINS DO IK_FILE=1,TPFILE%NSUBFILES_IOZ TZFILE => TPFILE%TFILES_IOZ(IK_FILE)%TFILE IF ( ISP == TZFILE%NMASTER_RANK ) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TZFILE,TPFIELD,KFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TZFILE,TPFIELD,KFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TZFILE,TPFIELD,KFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TZFILE,TPFIELD,KFIELD,IRESP) END IF END DO ENDIF @@ -1484,13 +1486,13 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(TPFIELD%CMNHNAME)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_N0',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_N0',YMSG) END IF IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_N0 + END SUBROUTINE IO_Field_write_byfield_N0 - SUBROUTINE IO_WRITE_FIELD_BYNAME_N1(TPFILE,HNAME,KFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_N1(TPFILE,HNAME,KFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -1504,20 +1506,20 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_N1',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_N1',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_N1 + END SUBROUTINE IO_Field_write_byname_N1 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_N1(TPFILE,TPFIELD,KFIELD,KRESP) + SUBROUTINE IO_Field_write_byfield_N1(TPFILE,TPFIELD,KFIELD,KRESP) ! - USE MODD_IO_ll, ONLY : ISP,GSMONOPROC + USE MODD_IO, ONLY: ISP,GSMONOPROC ! USE MODE_ALLOCBUFFER_ll USE MODE_GATHER_ll @@ -1552,18 +1554,18 @@ CONTAINS IRESP = 0 GALLOC = .FALSE. ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_N1',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_N1',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEINT,1,'IO_WRITE_FIELD_BYFIELD_N1') + CALL IO_Field_metadata_check(TPFIELD,TYPEINT,1,'IO_Field_write_byfield_N1') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_N1',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_N1',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,KFIELD,IRESP) ELSE ! multiprocesses execution #if ( MNH_INT == 4 ) CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) @@ -1571,7 +1573,7 @@ CONTAINS CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) #endif IF (ISIZEMAX==0) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_N1','ignoring variable with a zero size ('//TRIM(YRECFM)//')') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_write_byfield_N1','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 RETURN END IF @@ -1588,8 +1590,8 @@ CONTAINS END IF ! IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -1599,15 +1601,15 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_N1',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_N1',YMSG) END IF IF (GALLOC) DEALLOCATE(IFIELDP) IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_N1 + END SUBROUTINE IO_Field_write_byfield_N1 - SUBROUTINE IO_WRITE_FIELD_BYNAME_N2(TPFILE,HNAME,KFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_N2(TPFILE,HNAME,KFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -1621,25 +1623,25 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_N2',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_N2',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_N2 + END SUBROUTINE IO_Field_write_byname_N2 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_N2(TPFILE,TPFIELD,KFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,L1D,L2D,LPACK - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_TIMEZ, ONLY : TIMEZ + SUBROUTINE IO_Field_write_byfield_N2(TPFILE,TPFIELD,KFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP, L1D, L2D, LPACK + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll USE MODE_GATHER_ll - USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 + USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 ! IMPLICIT NONE ! @@ -1677,30 +1679,30 @@ CONTAINS ! IHEXTOT = 2*JPHEXT+1 ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_N2',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_N2',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! CALL SECOND_MNH2(T11) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEINT,2,'IO_WRITE_FIELD_BYFIELD_N2') + CALL IO_Field_metadata_check(TPFIELD,TYPEINT,2,'IO_Field_write_byfield_N2') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_N2',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_N2',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (LPACK .AND. L1D .AND. SIZE(KFIELD,1)==IHEXTOT .AND. SIZE(KFIELD,2)==IHEXTOT) THEN IFIELDP=>KFIELD(JPHEXT+1:JPHEXT+1,JPHEXT+1:JPHEXT+1) - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) ! ELSE IF (LPACK .AND. L2D .AND. YDIR=='XY') THEN ELSEIF (LPACK .AND. L2D .AND. SIZE(KFIELD,2)==IHEXTOT) THEN IFIELDP=>KFIELD(:,JPHEXT+1:JPHEXT+1) - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) ELSE - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,KFIELD,IRESP) END IF ELSE ! multiprocesses execution #if ( MNH_INT == 4 ) @@ -1709,7 +1711,7 @@ CONTAINS CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) #endif IF (ISIZEMAX==0) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_N2','ignoring variable with a zero size ('//TRIM(YRECFM)//')') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_write_byfield_N2','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 RETURN END IF @@ -1736,8 +1738,8 @@ CONTAINS TIMEZ%T_WRIT2D_GATH=TIMEZ%T_WRIT2D_GATH + T1 - T0 ! IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) END IF CALL SECOND_MNH2(T2) TIMEZ%T_WRIT2D_WRIT=TIMEZ%T_WRIT2D_WRIT + T2 - T1 @@ -1749,17 +1751,17 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_N2',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_N2',YMSG) END IF IF (GALLOC) DEALLOCATE(IFIELDP) IF (PRESENT(KRESP)) KRESP = IRESP CALL SECOND_MNH2(T22) TIMEZ%T_WRIT2D_ALL=TIMEZ%T_WRIT2D_ALL + T22 - T11 ! - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_N2 + END SUBROUTINE IO_Field_write_byfield_N2 - SUBROUTINE IO_WRITE_FIELD_BYNAME_N3(TPFILE,HNAME,KFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_N3(TPFILE,HNAME,KFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -1773,24 +1775,24 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_N3',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_N3',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),KFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_N3 + END SUBROUTINE IO_Field_write_byname_N3 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_N3(TPFILE,TPFIELD,KFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC,ISP,L1D,L2D,LPACK - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_TIMEZ, ONLY : TIMEZ + SUBROUTINE IO_Field_write_byfield_N3(TPFILE,TPFIELD,KFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP, L1D, L2D, LPACK + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODD_TIMEZ, ONLY: TIMEZ ! USE MODE_ALLOCBUFFER_ll USE MODE_GATHER_ll - USE MODE_MNH_TIMING, ONLY : SECOND_MNH2 + USE MODE_MNH_TIMING, ONLY: SECOND_MNH2 ! IMPLICIT NONE ! @@ -1827,30 +1829,30 @@ CONTAINS ! IHEXTOT = 2*JPHEXT+1 ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_N3',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_N3',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! CALL SECOND_MNH2(T11) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEINT,3,'IO_WRITE_FIELD_BYFIELD_N3') + CALL IO_Field_metadata_check(TPFIELD,TYPEINT,3,'IO_Field_write_byfield_N3') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_N3',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_N3',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (LPACK .AND. L1D .AND. SIZE(KFIELD,1)==IHEXTOT .AND. SIZE(KFIELD,2)==IHEXTOT) THEN IFIELDP=>KFIELD(JPHEXT+1:JPHEXT+1,JPHEXT+1:JPHEXT+1,:) - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) ! ELSE IF (LPACK .AND. L2D .AND. YDIR=='XY') THEN ELSEIF (LPACK .AND. L2D .AND. SIZE(KFIELD,2)==IHEXTOT) THEN IFIELDP=>KFIELD(:,JPHEXT+1:JPHEXT+1,:) - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) ELSE - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,KFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,KFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,KFIELD,IRESP) END IF ELSE ! multiprocesses execution #if ( MNH_INT == 4 ) @@ -1859,7 +1861,7 @@ CONTAINS CALL MPI_ALLREDUCE(SIZE(KFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) #endif IF (ISIZEMAX==0) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_N3','ignoring variable with a zero size ('//TRIM(YRECFM)//')') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_write_byfield_N3','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 RETURN END IF @@ -1883,8 +1885,8 @@ CONTAINS END IF ! IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,IFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,IFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -1894,17 +1896,17 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_N3',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_N3',YMSG) END IF IF (GALLOC) DEALLOCATE(IFIELDP) IF (PRESENT(KRESP)) KRESP = IRESP CALL SECOND_MNH2(T22) TIMEZ%T_WRIT3D_ALL=TIMEZ%T_WRIT3D_ALL + T22 - T11 ! - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_N3 + END SUBROUTINE IO_Field_write_byfield_N3 - SUBROUTINE IO_WRITE_FIELD_BYNAME_L0(TPFILE,HNAME,OFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_L0(TPFILE,HNAME,OFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -1918,20 +1920,20 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_L0',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_L0',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),OFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),OFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_L0 + END SUBROUTINE IO_Field_write_byname_L0 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_L0(TPFILE,TPFIELD,OFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC, ISP + SUBROUTINE IO_Field_write_byfield_L0(TPFILE,TPFIELD,OFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP ! - USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME + USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_find_byname !* 0. DECLARATIONS ! ------------ ! @@ -1956,22 +1958,22 @@ CONTAINS IRESP = 0 TZFILE => NULL() ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_L0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_L0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPELOG,0,'IO_WRITE_FIELD_BYFIELD_L0') + CALL IO_Field_metadata_check(TPFIELD,TYPELOG,0,'IO_Field_write_byfield_L0') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_L0',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_L0',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,OFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,OFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,OFIELD,IRESP) ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,OFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,OFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,OFIELD,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -1982,8 +1984,8 @@ CONTAINS DO IK_FILE=1,TPFILE%NSUBFILES_IOZ TZFILE => TPFILE%TFILES_IOZ(IK_FILE)%TFILE IF ( ISP == TZFILE%NMASTER_RANK ) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TZFILE,TPFIELD,OFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TZFILE,TPFIELD,OFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TZFILE,TPFIELD,OFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TZFILE,TPFIELD,OFIELD,IRESP) END IF END DO ENDIF @@ -1993,13 +1995,13 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(TPFIELD%CMNHNAME)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_L0',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_L0',YMSG) END IF IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_L0 + END SUBROUTINE IO_Field_write_byfield_L0 - SUBROUTINE IO_WRITE_FIELD_BYNAME_L1(TPFILE,HNAME,OFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_L1(TPFILE,HNAME,OFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -2013,20 +2015,20 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_L1',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_L1',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),OFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),OFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_L1 + END SUBROUTINE IO_Field_write_byname_L1 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_L1(TPFILE,TPFIELD,OFIELD,KRESP) + SUBROUTINE IO_Field_write_byfield_L1(TPFILE,TPFIELD,OFIELD,KRESP) ! - USE MODD_IO_ll, ONLY : ISP,GSMONOPROC + USE MODD_IO, ONLY: ISP, GSMONOPROC ! USE MODE_ALLOCBUFFER_ll USE MODE_GATHER_ll @@ -2061,18 +2063,18 @@ CONTAINS IRESP = 0 GALLOC = .FALSE. ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_L1',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_L1',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPELOG,1,'IO_WRITE_FIELD_BYFIELD_L1') + CALL IO_Field_metadata_check(TPFIELD,TYPELOG,1,'IO_Field_write_byfield_L1') ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_L1',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_L1',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,OFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,OFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,OFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,OFIELD,IRESP) ELSE ! multiprocesses execution #if ( MNH_INT == 4 ) CALL MPI_ALLREDUCE(SIZE(OFIELD),ISIZEMAX,1,MPI_INTEGER,MPI_MAX,TPFILE%NMPICOMM,IRESP) @@ -2080,7 +2082,7 @@ CONTAINS CALL MPI_ALLREDUCE(SIZE(OFIELD),ISIZEMAX,1,MPI_INTEGER8,MPI_MAX,TPFILE%NMPICOMM,IRESP) #endif IF (ISIZEMAX==0) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_WRITE_FIELD_BYFIELD_L1','ignoring variable with a zero size ('//TRIM(YRECFM)//')') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_write_byfield_L1','ignoring variable with a zero size ('//TRIM(YRECFM)//')') IF (PRESENT(KRESP)) KRESP=0 RETURN END IF @@ -2097,8 +2099,8 @@ CONTAINS END IF ! IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,GFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,GFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,GFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,GFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -2108,15 +2110,15 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_L1',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_L1',YMSG) END IF IF (GALLOC) DEALLOCATE(GFIELDP) IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_L1 + END SUBROUTINE IO_Field_write_byfield_L1 - SUBROUTINE IO_WRITE_FIELD_BYNAME_C0(TPFILE,HNAME,HFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_C0(TPFILE,HNAME,HFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -2130,19 +2132,19 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_C0',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_C0',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),HFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),HFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_C0 + END SUBROUTINE IO_Field_write_byname_C0 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_C0(TPFILE,TPFIELD,HFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC, ISP + SUBROUTINE IO_Field_write_byfield_C0(TPFILE,TPFIELD,HFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP ! !* 0. DECLARATIONS ! ------------ @@ -2165,27 +2167,27 @@ CONTAINS ! IRESP = 0 ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_C0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_C0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPECHAR,0,'IO_WRITE_FIELD_BYFIELD_C0') + CALL IO_Field_metadata_check(TPFIELD,TYPECHAR,0,'IO_Field_write_byfield_C0') ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (LEN(HFIELD)==0 .AND. GLFI) THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_C0',& + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_C0',& 'zero-size string not allowed if LFI output for '//TRIM(TPFIELD%CMNHNAME)) END IF ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_C0',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_C0',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,HFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,HFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,HFIELD,IRESP) ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,HFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,HFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,HFIELD,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -2195,13 +2197,13 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(TPFIELD%CMNHNAME)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_C0',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_C0',YMSG) END IF IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_C0 + END SUBROUTINE IO_Field_write_byfield_C0 - SUBROUTINE IO_WRITE_FIELD_BYNAME_C1(TPFILE,HNAME,HFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_C1(TPFILE,HNAME,HFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -2215,19 +2217,19 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_C1',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_C1',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),HFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),HFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_C1 + END SUBROUTINE IO_Field_write_byname_C1 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_C1(TPFILE,TPFIELD,HFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC, ISP + SUBROUTINE IO_Field_write_byfield_C1(TPFILE,TPFIELD,HFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP ! !* 0. DECLARATIONS ! ------------ @@ -2252,13 +2254,13 @@ CONTAINS CHARACTER(LEN=:),ALLOCATABLE :: YMSG CHARACTER(LEN=6) :: YRESP ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_C1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_C1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPECHAR,1,'IO_WRITE_FIELD_BYFIELD_C1') + CALL IO_Field_metadata_check(TPFIELD,TYPECHAR,1,'IO_Field_write_byfield_C1') ! IRESP = 0 ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF(GLFI) THEN ILE=LEN(HFIELD) @@ -2281,16 +2283,16 @@ CONTAINS END IF END IF ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_C1',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_C1',IRESP) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,IFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,HFIELD,IRESP) ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,IFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,HFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,IFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,HFIELD,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -2300,14 +2302,14 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(TPFIELD%CMNHNAME)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_C1',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_C1',YMSG) END IF IF (ALLOCATED(IFIELD)) DEALLOCATE(IFIELD) IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_C1 + END SUBROUTINE IO_Field_write_byfield_C1 - SUBROUTINE IO_WRITE_FIELD_BYNAME_T0(TPFILE,HNAME,TFIELD,KRESP) + SUBROUTINE IO_Field_write_byname_T0(TPFILE,HNAME,TFIELD,KRESP) ! !* 0.1 Declarations of arguments ! @@ -2321,19 +2323,19 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_T0',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_T0',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD(TPFILE,TFIELDLIST(ID),TFIELD,IRESP) + IF(IRESP==0) CALL IO_Field_write(TPFILE,TFIELDLIST(ID),TFIELD,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_T0 + END SUBROUTINE IO_Field_write_byname_T0 - SUBROUTINE IO_WRITE_FIELD_BYFIELD_T0(TPFILE,TPFIELD,TFIELD,KRESP) - USE MODD_IO_ll, ONLY : GSMONOPROC, ISP + SUBROUTINE IO_Field_write_byfield_T0(TPFILE,TPFIELD,TFIELD,KRESP) + USE MODD_IO, ONLY: GSMONOPROC, ISP USE MODD_TYPE_DATE ! !* 0. DECLARATIONS @@ -2355,24 +2357,24 @@ CONTAINS CHARACTER(LEN=:),ALLOCATABLE :: YMSG CHARACTER(LEN=6) :: YRESP ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_T0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_T0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! - CALL FIELD_METADATA_CHECK(TPFIELD,TYPEDATE,0,'IO_WRITE_FIELD_BYFIELD_T0') + CALL IO_Field_metadata_check(TPFIELD,TYPEDATE,0,'IO_Field_write_byfield_T0') ! IRESP = 0 ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_T0',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_T0',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,TFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,TFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,TFIELD,IRESP) ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,TFIELD,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TFIELD,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,TFIELD,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,TFIELD,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -2382,13 +2384,13 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(TPFIELD%CMNHNAME)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_T0',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_T0',YMSG) END IF IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_T0 + END SUBROUTINE IO_Field_write_byfield_T0 - SUBROUTINE IO_WRITE_FIELD_BYNAME_LB(TPFILE,HNAME,KL3D,PLB,KRESP) + SUBROUTINE IO_Field_write_byname_lb(TPFILE,HNAME,KL3D,PLB,KRESP) ! !* 0.1 Declarations of arguments ! @@ -2403,25 +2405,25 @@ CONTAINS INTEGER :: ID ! Index of the field INTEGER :: IRESP ! return_code ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYNAME_LB',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byname_lb',TRIM(TPFILE%CNAME)//': writing '//TRIM(HNAME)) ! CALL FIND_FIELD_ID_FROM_MNHNAME(HNAME,ID,IRESP) ! - IF(IRESP==0) CALL IO_WRITE_FIELD_LB(TPFILE,TFIELDLIST(ID),KL3D,PLB,IRESP) + IF(IRESP==0) CALL IO_Field_write_lb(TPFILE,TFIELDLIST(ID),KL3D,PLB,IRESP) ! IF (PRESENT(KRESP)) KRESP = IRESP ! - END SUBROUTINE IO_WRITE_FIELD_BYNAME_LB + END SUBROUTINE IO_Field_write_byname_lb - SUBROUTINE IO_WRITE_FIELD_BYFIELD_LB(TPFILE,TPFIELD,KL3D,PLB,KRESP) + SUBROUTINE IO_Field_write_byfield_lb(TPFILE,TPFIELD,KL3D,PLB,KRESP) ! - USE MODD_IO_ll, ONLY : GSMONOPROC,ISNPROC,ISP,L1D,L2D,LPACK - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE + USE MODD_IO, ONLY: GSMONOPROC, ISNPROC, ISP, L1D, L2D, LPACK + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE ! - USE MODE_DISTRIB_LB - USE MODE_TOOLS_ll, ONLY : GET_GLOBALDIMS_ll + USE MODE_DISTRIB_lb + USE MODE_TOOLS_ll, ONLY: GET_GLOBALDIMS_ll ! ! !* 0.1 Declarations of arguments @@ -2462,15 +2464,15 @@ CONTAINS ! IRESP = 0 ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BYFIELD_LB',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_byfield_lb',TRIM(YFILEM)//': writing '//TRIM(YRECFM)) ! IF (YLBTYPE/='LBX' .AND. YLBTYPE/='LBXU' .AND. YLBTYPE/='LBY' .AND. YLBTYPE/='LBYV') THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_LB','unknown LBTYPE ('//YLBTYPE//')') + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_lb','unknown LBTYPE ('//YLBTYPE//')') RETURN END IF ! IF (TPFIELD%CDIR/='') THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_BYFIELD_LB','CDIR was set for '//TRIM(YRECFM)) + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_byfield_lb','CDIR was set for '//TRIM(YRECFM)) TPFIELD%CDIR='' END IF ! @@ -2480,19 +2482,19 @@ CONTAINS GOTO 1000 END IF ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BYFIELD_LB',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_byfield_lb',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution IF (LPACK .AND. L2D) THEN TX3DP=>PLB(:,JPHEXT+1:JPHEXT+1,:) - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,TX3DP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TX3DP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,TX3DP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,TX3DP,IRESP) ELSE - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,PLB,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,PLB,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,PLB,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,PLB,IRESP) END IF ELSE IF (ISP == TPFILE%NMASTER_RANK) THEN @@ -2504,13 +2506,13 @@ CONTAINS ALLOCATE(Z3D(IIMAX_ll+2*JPHEXT,(IRIM+JPHEXT)*2,SIZE(PLB,3))) END IF DO JI = 1,ISNPROC - CALL GET_DISTRIB_LB(YLBTYPE,JI,'FM','WRITE',IRIM,IIB,IIE,IJB,IJE) + CALL GET_DISTRIB_lb(YLBTYPE,JI,'FM','WRITE',IRIM,IIB,IIE,IJB,IJE) IF (IIB /= 0) THEN TX3DP=>Z3D(IIB:IIE,IJB:IJE,:) IF (ISP /= JI) THEN CALL MPI_RECV(TX3DP,SIZE(TX3DP),MPI_FLOAT,JI-1,99,TPFILE%NMPICOMM,STATUS,IERR) ELSE - CALL GET_DISTRIB_LB(YLBTYPE,JI,'LOC','WRITE',IRIM,IIB,IIE,IJB,IJE) + CALL GET_DISTRIB_lb(YLBTYPE,JI,'LOC','WRITE',IRIM,IIB,IIE,IJB,IJE) TX3DP = PLB(IIB:IIE,IJB:IJE,:) END IF END IF @@ -2520,15 +2522,15 @@ CONTAINS ELSE TX3DP=>Z3D END IF - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,TX3DP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,TX3DP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,TX3DP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,TX3DP,IRESP) ELSE NB_REQ=0 ALLOCATE(REQ_TAB(1)) ALLOCATE(T_TX3DP(1)) IKU = SIZE(PLB,3) ! Other processes - CALL GET_DISTRIB_LB(YLBTYPE,ISP,'LOC','WRITE',IRIM,IIB,IIE,IJB,IJE) + CALL GET_DISTRIB_lb(YLBTYPE,ISP,'LOC','WRITE',IRIM,IIB,IIE,IJB,IJE) IF (IIB /= 0) THEN TX3DP=>PLB(IIB:IIE,IJB:IJE,:) NB_REQ = NB_REQ + 1 @@ -2553,17 +2555,17 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(YRECFM)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BYFIELD_LB',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_byfield_lb',YMSG) END IF ! IF (ALLOCATED(Z3D)) DEALLOCATE(Z3D) IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BYFIELD_LB + END SUBROUTINE IO_Field_write_byfield_lb - SUBROUTINE IO_WRITE_FIELD_BOX_BYFIELD_X5(TPFILE,TPFIELD,HBUDGET,PFIELD,KXOBOX,KXEBOX,KYOBOX,KYEBOX,KRESP) + SUBROUTINE IO_Field_write_box_byfield_X5(TPFILE,TPFIELD,HBUDGET,PFIELD,KXOBOX,KXEBOX,KYOBOX,KYEBOX,KRESP) ! - USE MODD_IO_ll, ONLY : GSMONOPROC, ISP + USE MODD_IO, ONLY: GSMONOPROC, ISP ! USE MODE_GATHER_ll ! @@ -2590,14 +2592,14 @@ CONTAINS CHARACTER(LEN=:),ALLOCATABLE :: YMSG CHARACTER(LEN=6) :: YRESP ! - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_BOX_BYFIELD_X5',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_box_byfield_X5',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 GALLOC = .FALSE. ! - CALL IO_FILE_WRITE_CHECK(TPFILE,'IO_WRITE_FIELD_BOX_BYFIELD_X5',IRESP) + CALL IO_File_write_check(TPFILE,'IO_Field_write_box_byfield_X5',IRESP) ! - CALL IO_WRITE_SELECT_FORMAT(TPFILE,GLFI,GNC4) + CALL IO_Format_write_select(TPFILE,GLFI,GNC4) ! IF (IRESP==0) THEN IF (GSMONOPROC) THEN ! sequential execution @@ -2608,8 +2610,8 @@ CONTAINS ! take the field as a budget ZFIELDP=>PFIELD END IF - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) ELSE ! multiprocesses execution IF (ISP == TPFILE%NMASTER_RANK) THEN ! Allocate the box @@ -2625,8 +2627,8 @@ CONTAINS & KXOBOX,KXEBOX,KYOBOX,KYEBOX,HBUDGET) ! IF (ISP == TPFILE%NMASTER_RANK) THEN - IF (GLFI) CALL IO_WRITE_FIELD_LFI(TPFILE,TPFIELD,ZFIELDP,IRESP) - IF (GNC4) CALL IO_WRITE_FIELD_NC4(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GLFI) CALL IO_Field_write_lfi(TPFILE,TPFIELD,ZFIELDP,IRESP) + IF (GNC4) CALL IO_Field_write_nc4(TPFILE,TPFIELD,ZFIELDP,IRESP) END IF ! CALL MPI_BCAST(IRESP,1,MPI_INTEGER,TPFILE%NMASTER_RANK-1,TPFILE%NMPICOMM,IERR) @@ -2636,10 +2638,492 @@ CONTAINS IF (IRESP.NE.0) THEN WRITE(YRESP, '( I6 )') IRESP YMSG = 'RESP='//YRESP//' when writing '//TRIM(TPFIELD%CMNHNAME)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_BOX_BYFIELD_X5',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_box_byfield_X5',YMSG) END IF IF (GALLOC) DEALLOCATE(ZFIELDP) IF (PRESENT(KRESP)) KRESP = IRESP - END SUBROUTINE IO_WRITE_FIELD_BOX_BYFIELD_X5 + END SUBROUTINE IO_Field_write_box_byfield_X5 + + +SUBROUTINE IO_Fieldlist_write(TPOUTPUT) +! +USE MODE_MODELN_HANDLER, ONLY: GET_CURRENT_MODEL_INDEX +! +IMPLICIT NONE +! +TYPE(TOUTBAK), INTENT(IN) :: TPOUTPUT !Output structure +! +INTEGER :: IDX +INTEGER :: IMI +INTEGER :: JI +! +IMI = GET_CURRENT_MODEL_INDEX() +! +DO JI = 1,SIZE(TPOUTPUT%NFIELDLIST) + IDX = TPOUTPUT%NFIELDLIST(JI) + SELECT CASE (TFIELDLIST(IDX)%NDIMS) + ! + !0D output + ! + CASE (0) + SELECT CASE (TFIELDLIST(IDX)%NTYPE) + ! + !0D real + ! + CASE (TYPEREAL) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X0D) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X0D(IMI)%DATA) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X0D(IMI)%DATA) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 0D logical fields') + END IF + ! + !0D integer + ! + CASE (TYPEINT) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_N0D) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_N0D(IMI)%DATA) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_N0D(IMI)%DATA) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 0D integer fields') + END IF + ! + !0D logical + ! + CASE (TYPELOG) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_L0D) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_L0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_L0D(IMI)%DATA) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_L0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_L0D(IMI)%DATA) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 0D logical fields') + END IF + ! + !0D string + ! + CASE (TYPECHAR) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_C0D) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_C0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_C0D(IMI)%DATA) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_C0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_C0D(IMI)%DATA) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 0D character fields') + END IF + ! + !0D date/time + ! + CASE (TYPEDATE) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_T0D) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_T0D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_T0D(IMI)%DATA) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_T0D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_T0D(IMI)%DATA) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 0D date/time fields') + END IF + ! + !0D other types + ! + CASE DEFAULT + PRINT *,'FATAL: IO_Fieldlist_write: type not yet supported for 0D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END SELECT + ! + !1D output + ! + CASE (1) + SELECT CASE (TFIELDLIST(IDX)%NTYPE) + ! + !1D real + ! + CASE (TYPEREAL) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X1D) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X1D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X1D(IMI)%DATA) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X1D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X1D(IMI)%DATA) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 1D real fields') + END IF +! ! +! !1D integer +! ! +! CASE (TYPEINT) +! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_N1D) ) THEN +! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N1D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END IF +! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_N1D(IMI)%DATA) ) THEN +! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N1D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END IF +! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN +! CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_N1D(IMI)%DATA) +! ELSE +! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 1D integer fields') +! END IF +! ! +! !1D logical +! ! +! CASE (TYPELOG) +! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_L1D) ) THEN +! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_L1D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END IF +! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_L1D(IMI)%DATA) ) THEN +! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_L1D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END IF +! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN +! CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_L1D(IMI)%DATA) +! ELSE +! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 1D logical fields') +! END IF +! ! +! !1D string +! ! +! CASE (TYPECHAR) +! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_C1D) ) THEN +! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_C1D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END IF +! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_C1D(IMI)%DATA) ) THEN +! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_C1D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END IF +! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN +! CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_C1D(IMI)%DATA) +! ELSE +! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 1D character fields') +! END IF + ! + !1D other types + ! + CASE DEFAULT + PRINT *,'FATAL: IO_Fieldlist_write: type not yet supported for 1D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END SELECT + ! + !2D output + ! + CASE (2) + SELECT CASE (TFIELDLIST(IDX)%NTYPE) + ! + !2D real + ! + CASE (TYPEREAL) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X2D) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X2D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X2D(IMI)%DATA) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X2D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X2D(IMI)%DATA) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 2D real fields') + END IF + ! + !2D integer + ! + CASE (TYPEINT) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_N2D) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N2D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_N2D(IMI)%DATA) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N2D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_N2D(IMI)%DATA) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not allowed for 2D integer fields') + END IF + ! + !2D other types + ! + CASE DEFAULT + PRINT *,'FATAL: IO_Fieldlist_write: type not yet supported for 2D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END SELECT + ! + !3D output + ! + CASE (3) + SELECT CASE (TFIELDLIST(IDX)%NTYPE) + ! + !3D real + ! + CASE (TYPEREAL) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X3D) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X3D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X3D(IMI)%DATA) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X3D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X3D(IMI)%DATA) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not (yet) allowed for 3D real fields') + !PW: TODO?: add missing field in TFIELDLIST? + !CALL IO_Field_write_lb(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X3D(IMI)%DATA) + END IF + ! + !3D integer + ! + CASE (TYPEINT) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_N3D) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N3D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_N3D(IMI)%DATA) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_N3D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_N3D(IMI)%DATA) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not (yet) allowed for 3D integer fields') + !PW: TODO?: add missing field in TFIELDLIST? + !CALL IO_Field_write_lb(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_N3D(IMI)%DATA) + END IF + ! + !3D other types + ! + CASE DEFAULT + PRINT *,'FATAL: IO_Fieldlist_write: type not yet supported for 3D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END SELECT + ! + !4D output + ! + CASE (4) + SELECT CASE (TFIELDLIST(IDX)%NTYPE) + ! + !4D real + ! + CASE (TYPEREAL) + IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X4D) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X4D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X4D(IMI)%DATA) ) THEN + PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X4D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END IF + IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN + CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X4D(IMI)%DATA) + ELSE + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not (yet) allowed for 4D real fields') + !PW: TODO?: add missing field in TFIELDLIST? + !CALL IO_Field_write_lb(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X4D(IMI)%DATA) + END IF + ! + !4D other types + ! + CASE DEFAULT + PRINT *,'FATAL: IO_Fieldlist_write: type not yet supported for 4D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END SELECT +! ! +! !5D output +! ! +! CASE (5) +! SELECT CASE (TFIELDLIST(IDX)%NTYPE) +! ! +! !5D real +! ! +! CASE (TYPEREAL) +! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X5D) ) THEN +! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X5D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END IF +! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X5D(IMI)%DATA) ) THEN +! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X5D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END IF +! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN +! CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X5D(IMI)%DATA) +! ELSE +! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not (yet) allowed for 5D real fields') +! !PW: TODO?: add missing field in TFIELDLIST? +! !CALL IO_Field_write_lb(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X5D(IMI)%DATA) +! END IF +! ! +! !5D other types +! ! +! CASE DEFAULT +! PRINT *,'FATAL: IO_Fieldlist_write: type not yet supported for 5D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END SELECT +! ! +! !6D output +! ! +! CASE (6) +! SELECT CASE (TFIELDLIST(IDX)%NTYPE) +! ! +! !6D real +! ! +! CASE (TYPEREAL) +! IF ( .NOT.ALLOCATED(TFIELDLIST(IDX)%TFIELD_X6D) ) THEN +! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X6D is NOT allocated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END IF +! IF ( .NOT.ASSOCIATED(TFIELDLIST(IDX)%TFIELD_X6D(IMI)%DATA) ) THEN +! PRINT *,'FATAL: IO_Fieldlist_write: TFIELD_X6D%DATA is not associated for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END IF +! IF ( TFIELDLIST(IDX)%CLBTYPE == 'NONE' ) THEN +! CALL IO_Field_write(TPOUTPUT%TFILE,TFIELDLIST(IDX),TFIELDLIST(IDX)%TFIELD_X6D(IMI)%DATA) +! ELSE +! CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Fieldlist_write','CLBTYPE/=NONE not (yet) allowed for 6D real fields') +! !PW: TODO?: add missing field in TFIELDLIST? +! !CALL IO_Field_write_lb(TPOUTPUT%TFILE,TFIELDLIST(IDX),***,TFIELDLIST(IDX)%TFIELD_X6D(IMI)%DATA) +! END IF +! ! +! !6D other types +! ! +! CASE DEFAULT +! PRINT *,'FATAL: IO_Fieldlist_write: type not yet supported for 4D output of ',TRIM(TFIELDLIST(IDX)%CMNHNAME) +! STOP +! END SELECT + ! + !Other number of dimensions + ! + CASE DEFAULT + PRINT *,'FATAL: IO_Fieldlist_write: number of dimensions not yet supported for ',TRIM(TFIELDLIST(IDX)%CMNHNAME) + STOP + END SELECT +END DO +! +END SUBROUTINE IO_Fieldlist_write + + +SUBROUTINE IO_Field_user_write(TPOUTPUT) +! +#if 0 +USE MODD_DYN_n, ONLY: XTSTEP +USE MODD_FIELD_n, ONLY: XUT, XVT, XRT, XTHT +USE MODD_PARAMETERS, ONLY: JPVEXT +USE MODD_PRECIP_n, ONLY: XINPRR +#endif +! +IMPLICIT NONE +! +TYPE(TOUTBAK), INTENT(IN) :: TPOUTPUT !Output structure +! +TYPE(TFIELDDATA) :: TZFIELD +! +#if 0 +INTEGER :: IKB +! +IKB=JPVEXT+1 +! +TZFIELD%CMNHNAME = 'UTLOW' +TZFIELD%CSTDNAME = 'x_wind' +TZFIELD%CLONGNAME = '' +TZFIELD%CUNITS = 'm s-1' +TZFIELD%CDIR = 'XY' +TZFIELD%CCOMMENT = 'X_Y_Z_U component of wind at lowest physical level' +TZFIELD%NGRID = 2 +TZFIELD%NTYPE = TYPEREAL +TZFIELD%NDIMS = 2 +TZFIELD%LTIMEDEP = .TRUE. +CALL IO_Field_write(TPOUTPUT%TFILE,TZFIELD,XUT(:,:,IKB)) +! +TZFIELD%CMNHNAME = 'VTLOW' +TZFIELD%CSTDNAME = 'y_wind' +TZFIELD%CLONGNAME = '' +TZFIELD%CUNITS = 'm s-1' +TZFIELD%CDIR = 'XY' +TZFIELD%CCOMMENT = 'X_Y_Z_V component of wind at lowest physical level' +TZFIELD%NGRID = 3 +TZFIELD%NTYPE = TYPEREAL +TZFIELD%NDIMS = 2 +TZFIELD%LTIMEDEP = .TRUE. +CALL IO_Field_write(TPOUTPUT%TFILE,TZFIELD,XVT(:,:,IKB)) +! +TZFIELD%CMNHNAME = 'THTLOW' +TZFIELD%CSTDNAME = 'air_potential_temperature' +TZFIELD%CLONGNAME = '' +TZFIELD%CUNITS = 'K' +TZFIELD%CDIR = 'XY' +TZFIELD%CCOMMENT = 'X_Y_Z_potential temperature at lowest physical level' +TZFIELD%NGRID = 1 +TZFIELD%NTYPE = TYPEREAL +TZFIELD%NDIMS = 2 +TZFIELD%LTIMEDEP = .TRUE. +CALL IO_Field_write(TPOUTPUT%TFILE,TZFIELD,XTHT(:,:,IKB)) +! +TZFIELD%CMNHNAME = 'RVTLOW' +!TZFIELD%CSTDNAME = 'humidity_mixing_ratio' !ratio of the mass of water vapor to the mass of dry air +TZFIELD%CSTDNAME = 'specific_humidity' !mass fraction of water vapor in (moist) air +TZFIELD%CLONGNAME = '' +TZFIELD%CUNITS = 'kg kg-1' +TZFIELD%CDIR = 'XY' +TZFIELD%CCOMMENT = 'X_Y_Z_Vapor mixing Ratio at lowest physical level' +TZFIELD%NGRID = 1 +TZFIELD%NTYPE = TYPEREAL +TZFIELD%NDIMS = 2 +TZFIELD%LTIMEDEP = .TRUE. +CALL IO_Field_write(TPOUTPUT%TFILE,TZFIELD,XRT(:,:,IKB,1)) +! +TZFIELD%CMNHNAME = 'ACPRRSTEP' +TZFIELD%CSTDNAME = 'rainfall_amount' +TZFIELD%CLONGNAME = '' +TZFIELD%CUNITS = 'kg m-2' +TZFIELD%CDIR = '' +TZFIELD%CCOMMENT = 'X_Y_ACcumulated Precipitation Rain Rate during timestep' +TZFIELD%NGRID = 1 +TZFIELD%NTYPE = TYPEREAL +TZFIELD%NDIMS = 2 +TZFIELD%LTIMEDEP = .TRUE. +!XACPRR is multiplied by 1000. to convert from m to kg m-2 (water density is assumed to be 1000 kg m-3) +CALL IO_Field_write(TPOUTPUT%TFILE,TZFIELD,XINPRR*XTSTEP*1.0E3) +#endif +! +END SUBROUTINE IO_Field_user_write + +END MODULE MODE_IO_FIELD_WRITE -END MODULE MODE_FMWRIT diff --git a/src/LIB/SURCOUCHE/src/mode_io_file.f90 b/src/LIB/SURCOUCHE/src/mode_io_file.f90 index 9aa4c9a07..f6e62e24e 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_file.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_file.f90 @@ -27,18 +27,19 @@ ! to disable writes (for bench purposes) ! P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! (nsubfiles_ioz is now determined in IO_File_add2list) +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 14/02/2019: move UPCASE function to tools.f90 ! P. Wautelet 19/02/2019: simplification/restructuration/cleaning of open/close subroutines (TBCto be continued) ! P. Wautelet 27/02/2019: use recursive calls to open/close DES files ! P. Wautelet 27/02/2019: remove CLOSE_ll subroutine ! P. Wautelet 01/03/2019: move open/close subroutines to mode_io_file.f90 +! P. Wautelet 05/03/2019: rename IO subroutines and modules ! !----------------------------------------------------------------- module mode_io_file -use modd_io_ll, only: tfiledata +use modd_io, only: tfiledata use mode_msg @@ -46,15 +47,7 @@ implicit none private -public :: IO_File_close_ll, IO_File_open_ll - -interface IO_File_close_ll - module procedure IO_File_close -end interface - -interface IO_File_open_ll - module procedure IO_File_open -end interface +public :: IO_File_close, IO_File_open contains @@ -63,10 +56,10 @@ contains recursive SUBROUTINE IO_File_open(TPFILE,KRESP,HPOSITION,HSTATUS,HPROGRAM_ORIG) ! USE MODD_CONF, ONLY: CPROGRAM -USE MODD_IO_ll, ONLY: LIO_NO_WRITE +USE MODD_IO, ONLY: LIO_NO_WRITE ! -USE MODE_IO_ll, ONLY: GCONFIO -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST, IO_FILE_FIND_BYNAME +USE MODE_IO, ONLY: GCONFIO +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list, IO_File_find_byname ! TYPE(TFILEDATA), POINTER, INTENT(INOUT) :: TPFILE ! File structure INTEGER, INTENT(OUT), OPTIONAL :: KRESP ! Return code @@ -102,7 +95,7 @@ END IF TPFILE%LOPENED = .TRUE. ! !Check if file is in filelist -CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME),TZFILE_DUMMY,IRESP) +CALL IO_File_find_byname(TRIM(TPFILE%CNAME),TZFILE_DUMMY,IRESP) IF (IRESP/=0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_open','file '//TRIM(TPFILE%CNAME)//' not in filelist') ! SELECT CASE(TPFILE%CTYPE) @@ -154,11 +147,11 @@ SELECT CASE(TPFILE%CTYPE) !MesoNH files !Remark: 'MNH' is more general than MNHBACKUP and could be in fact a MNHBACKUP file CASE ('MNH', 'MNHBACKUP', 'MNHDIACHRONIC', 'MNHDIAG', 'MNHOUTPUT', 'PGD') - if (.not.GCONFIO) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_open','SET_CONFIO_ll must be called before IO_File_open') + if (.not.GCONFIO) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_open','IO_Config_set must be called before IO_File_open') !Do not open '.des' file if OUTPUT IF(TPFILE%CTYPE/='MNHOUTPUT' .AND. CPROGRAM/='LFICDF') THEN !OOLD=T because the file may already be in the list - CALL IO_FILE_ADD2LIST(TZFILE_DES,TRIM(TPFILE%CNAME)//'.des','DES',TPFILE%CMODE,TPDATAFILE=TPFILE,OOLD=.TRUE.) + CALL IO_File_add2list(TZFILE_DES,TRIM(TPFILE%CNAME)//'.des','DES',TPFILE%CMODE,TPDATAFILE=TPFILE,OOLD=.TRUE.) CALL IO_File_open(TZFILE_DES,HPROGRAM_ORIG=HPROGRAM_ORIG) ENDIF @@ -180,15 +173,11 @@ END SUBROUTINE IO_File_open SUBROUTINE OPEN_ll(TPFILE, KRESP, HMODE, HSTATUS, HPOSITION, HDELIM, HPROGRAM_ORIG) - use modd_io_ll, only: ISNPROC, ISP, LVERB_ALLPRC, nio_rank, NNULLUNIT + use modd_io, only: ISNPROC, ISP, LVERB_ALLPRC, nio_rank, NNULLUNIT use modd_var_ll, only : nmnh_comm_world -#if defined(MNH_IOCDF4) - use mode_io_file_nc4, only: io_create_file_nc4, io_open_file_nc4 -#endif - use mode_io_file_lfi, only: io_create_file_lfi, io_open_file_lfi - USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST, IO_FILE_FIND_BYNAME - use mode_io_tools, only: io_rank + USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list, IO_File_find_byname + use mode_io_tools, only: IO_Rank_master_get use mode_tools, only: upcase TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE @@ -433,19 +422,19 @@ SUBROUTINE OPEN_ll(TPFILE, KRESP, HMODE, HSTATUS, HPOSITION, HDELIM, HPROGRAM_OR CALL PRINT_MSG(NVERB_FATAL,'IO','OPEN_ll','SIZE(TPFILE%TFILES_IOZ) /= TPFILE%NSUBFILES_IOZ for '//TRIM(TPFILE%CNAME)) END IF DO IFILE=1,TPFILE%NSUBFILES_IOZ - IRANK_PROCIO = 1 + IO_RANK(IFILE-1,ISNPROC,TPFILE%NSUBFILES_IOZ) + IRANK_PROCIO = 1 + IO_Rank_master_get( IFILE-1, ISNPROC, TPFILE%NSUBFILES_IOZ ) WRITE(YFILE ,'(".Z",i3.3)') IFILE - CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME)//TRIM(YFILE),TZSPLITFILE,IRESP) + CALL IO_File_find_byname(TRIM(TPFILE%CNAME)//TRIM(YFILE),TZSPLITFILE,IRESP) IF (IRESP/=0) THEN !File not yet in filelist => add it (nothing to do if already in list) IF (ALLOCATED(TPFILE%CDIRNAME)) THEN - CALL IO_FILE_ADD2LIST(TZSPLITFILE,TRIM(TPFILE%CNAME)//TRIM(YFILE),TPFILE%CTYPE,TPFILE%CMODE, & + CALL IO_File_add2list(TZSPLITFILE,TRIM(TPFILE%CNAME)//TRIM(YFILE),TPFILE%CTYPE,TPFILE%CMODE, & HDIRNAME=TPFILE%CDIRNAME, & KLFINPRAR=TPFILE%NLFINPRAR,KLFITYPE=TPFILE%NLFITYPE,KLFIVERB=TPFILE%NLFIVERB, & HFORMAT=TPFILE%CFORMAT) ELSE - CALL IO_FILE_ADD2LIST(TZSPLITFILE,TRIM(TPFILE%CNAME)//TRIM(YFILE),TPFILE%CTYPE,TPFILE%CMODE, & + CALL IO_File_add2list(TZSPLITFILE,TRIM(TPFILE%CNAME)//TRIM(YFILE),TPFILE%CTYPE,TPFILE%CMODE, & KLFINPRAR=TPFILE%NLFINPRAR,KLFITYPE=TPFILE%NLFITYPE,KLFIVERB=TPFILE%NLFIVERB, & HFORMAT=TPFILE%CFORMAT) END IF @@ -474,32 +463,10 @@ SUBROUTINE OPEN_ll(TPFILE, KRESP, HMODE, HSTATUS, HPOSITION, HDELIM, HPROGRAM_OR TZSPLITFILE%NOPEN = TZSPLITFILE%NOPEN + 1 TZSPLITFILE%NOPEN_CURRENT = TZSPLITFILE%NOPEN_CURRENT + 1 -#if defined(MNH_IOCDF4) - IF (TZSPLITFILE%CFORMAT=='NETCDF4' .OR. TZSPLITFILE%CFORMAT=='LFICDF4') THEN - IF (YACTION == 'READ') THEN - ! Open netCDF File for reading - call io_open_file_nc4(tzsplitfile) - END IF - - IF (YACTION == 'WRITE') THEN - ! Create netCDF File for writing - call io_create_file_nc4(TZSPLITFILE, hprogram_orig=HPROGRAM_ORIG) - END IF - END IF -#endif - IF (TZSPLITFILE%CFORMAT=='LFI' .OR. TZSPLITFILE%CFORMAT=='LFICDF4') THEN - SELECT CASE (YACTION) - CASE('READ') - call io_open_file_lfi(tzsplitfile,iresp) - CASE('WRITE') - call io_create_file_lfi(tzsplitfile,iresp) - END SELECT - ENDIF - ! + call IO_File_open_format( tzsplitfile, hprogram_orig=hprogram_orig ) ENDDO END IF - END SELECT TPFILE%NMPICOMM = NMNH_COMM_WORLD @@ -521,15 +488,15 @@ END SUBROUTINE OPEN_ll recursive SUBROUTINE IO_File_close(TPFILE,KRESP,HPROGRAM_ORIG) ! -USE MODD_CONF, ONLY: CPROGRAM -USE MODD_IO_ll, ONLY: NNULLUNIT +use modd_conf, only: cprogram +use modd_io, only: nnullunit -use mode_io_file_lfi, only: io_close_file_lfi +use mode_io_file_lfi, only: IO_File_close_lfi #if defined(MNH_IOCDF4) -use mode_io_file_nc4, only: io_close_file_nc4 -use mode_io_write_nc4, only: io_write_coordvar_nc4 +use mode_io_file_nc4, only: IO_File_close_nc4 +use mode_io_write_nc4, only: IO_Coordvar_write_nc4 #endif -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME +use mode_io_manage_struct, only: IO_File_find_byname ! TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure INTEGER, OPTIONAL, INTENT(OUT) :: KRESP ! Return code @@ -582,7 +549,7 @@ SELECT CASE(TPFILE%CTYPE) CASE ('MNH', 'MNHBACKUP', 'MNHDIACHRONIC', 'MNHDIAG', 'MNHOUTPUT', 'PGD') !Do not close (non-existing) '.des' file if OUTPUT IF(TPFILE%CTYPE/='OUTPUT' .AND. CPROGRAM/='LFICDF') THEN - CALL IO_FILE_FIND_BYNAME(TRIM(TPFILE%CNAME)//'.des',TZFILE_DES,IRESP) + CALL IO_File_find_byname(TRIM(TPFILE%CNAME)//'.des',TZFILE_DES,IRESP) IF (IRESP/=0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_close','file '//TRIM(TPFILE%CNAME)//'.des not in filelist') CALL IO_File_close(TZFILE_DES,KRESP=IRESP,HPROGRAM_ORIG=HPROGRAM_ORIG) ENDIF @@ -590,18 +557,18 @@ SELECT CASE(TPFILE%CTYPE) #if defined(MNH_IOCDF4) !Write coordinates variables in NetCDF file IF (TPFILE%CMODE == 'WRITE' .AND. (TPFILE%CFORMAT=='NETCDF4' .OR. TPFILE%CFORMAT=='LFICDF4')) THEN - CALL IO_WRITE_COORDVAR_NC4(TPFILE,HPROGRAM_ORIG=HPROGRAM_ORIG) + CALL IO_Coordvar_write_nc4(TPFILE,HPROGRAM_ORIG=HPROGRAM_ORIG) END IF #endif if (tpfile%lmaster) then - if (tpfile%cformat == 'LFI' .or. tpfile%cformat == 'LFICDF4') call io_close_file_lfi(tpfile,iresp) + if (tpfile%cformat == 'LFI' .or. tpfile%cformat == 'LFICDF4') call IO_File_close_lfi(tpfile,iresp) #if defined(MNH_IOCDF4) - if (tpfile%cformat == 'NETCDF4' .or. tpfile%cformat == 'LFICDF4') call io_close_file_nc4(tpfile,iresp) + if (tpfile%cformat == 'NETCDF4' .or. tpfile%cformat == 'LFICDF4') call IO_File_close_nc4(tpfile,iresp) #endif end if ! - CALL IO_ADD2TRANSFER_LIST(TPFILE) + CALL IO_Transfer_list_addto(TPFILE) ! SUBFILES: DO JI = 1,TPFILE%NSUBFILES_IOZ TZFILE_IOZ => TPFILE%TFILES_IOZ(JI)%TFILE @@ -616,13 +583,13 @@ SELECT CASE(TPFILE%CTYPE) #if defined(MNH_IOCDF4) !Write coordinates variables in netCDF file IF (TZFILE_IOZ%CMODE == 'WRITE' .AND. (TZFILE_IOZ%CFORMAT=='NETCDF4' .OR. TZFILE_IOZ%CFORMAT=='LFICDF4')) THEN - CALL IO_WRITE_COORDVAR_NC4(TZFILE_IOZ,HPROGRAM_ORIG=HPROGRAM_ORIG) + CALL IO_Coordvar_write_nc4(TZFILE_IOZ,HPROGRAM_ORIG=HPROGRAM_ORIG) END IF #endif IF (TZFILE_IOZ%LMASTER) THEN - if (tzfile_ioz%cformat == 'LFI' .or. tzfile_ioz%cformat == 'LFICDF4') call io_close_file_lfi(tzfile_ioz,iresp) + if (tzfile_ioz%cformat == 'LFI' .or. tzfile_ioz%cformat == 'LFICDF4') call IO_File_close_lfi(tzfile_ioz,iresp) #if defined(MNH_IOCDF4) - if (tzfile_ioz%cformat == 'NETCDF4' .or. tzfile_ioz%cformat == 'LFICDF4') call io_close_file_nc4(tzfile_ioz,iresp) + if (tzfile_ioz%cformat == 'NETCDF4' .or. tzfile_ioz%cformat == 'LFICDF4') call IO_File_close_nc4(tzfile_ioz,iresp) #endif END IF END DO SUBFILES @@ -641,9 +608,9 @@ IF (PRESENT(KRESP)) KRESP=IRESP END SUBROUTINE IO_File_close -subroutine IO_ADD2TRANSFER_LIST(TPFILE) +subroutine IO_Transfer_list_addto(TPFILE) -USE MODD_CONF, ONLY : CPROGRAM +USE MODD_CONF, ONLY: CPROGRAM USE MODI_SYSTEM_MNH @@ -657,7 +624,7 @@ INTEGER, SAVE :: ICPT = 0 YFILEM = TPFILE%CNAME -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_ADD2TRANSFER_LIST','called for '//TRIM(YFILEM)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Transfer_list_addto','called for '//TRIM(YFILEM)) IF (TPFILE%LMASTER .AND. CPROGRAM/='LFICDF') THEN !! Write in pipe @@ -669,24 +636,24 @@ IF (TPFILE%LMASTER .AND. CPROGRAM/='LFICDF') THEN SELECT CASE (TPFILE%NLFITYPE) CASE(:-1,3:) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_ADD2TRANSFER_LIST',TRIM(YFILEM)//': incorrect NLFITYPE') + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Transfer_list_addto',TRIM(YFILEM)//': incorrect NLFITYPE') CASE(0) YCPIO='NIL' CASE(1) YCPIO='MESONH' CASE(2) - CALL PRINT_MSG(NVERB_INFO,'IO','IO_ADD2TRANSFER_LIST','file '//TRIM(YFILEM)//' not transferred') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Transfer_list_addto','file '//TRIM(YFILEM)//' not transferred') END SELECT if (TPFILE%NLFITYPE==0 .or. TPFILE%NLFITYPE==1) then ICPT=ICPT+1 WRITE (YCOMMAND,'(A," ",A," ",A," >> OUTPUT_TRANSFER",I3.3," 2>&1 &")') YTRANS,YCPIO,TRIM(YFILEM),ICPT - CALL PRINT_MSG(NVERB_INFO,'IO','IO_ADD2TRANSFER_LIST','YCOMMAND='//TRIM(YCOMMAND)) + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Transfer_list_addto','YCOMMAND='//TRIM(YCOMMAND)) CALL SYSTEM_MNH(YCOMMAND) end if END IF -end subroutine IO_ADD2TRANSFER_LIST +end subroutine IO_Transfer_list_addto subroutine IO_File_check_format_exist( tpfile ) @@ -750,9 +717,9 @@ end subroutine IO_File_check_format_exist subroutine IO_File_open_format( tpfile, hprogram_orig ) #if defined(MNH_IOCDF4) -use mode_io_file_nc4, only: io_create_file_nc4, io_open_file_nc4 +use mode_io_file_nc4, only: IO_File_create_nc4, IO_File_open_nc4 #endif -use mode_io_file_lfi, only: io_create_file_lfi, io_open_file_lfi +use mode_io_file_lfi, only: IO_File_create_lfi, IO_File_open_lfi type(tfiledata), intent(inout) :: tpfile ! File structure character(len=*), optional, intent(in) :: hprogram_orig !To emulate a file coming from this program @@ -766,9 +733,9 @@ call Print_msg( NVERB_DEBUG, 'IO', 'IO_File_open_format', 'called for '//TRIM(tp IF (TPFILE%CFORMAT=='NETCDF4' .OR. TPFILE%CFORMAT=='LFICDF4') THEN SELECT CASE (TPFILE%CMODE) CASE('READ') - call io_open_file_nc4(tpfile) + call IO_File_open_nc4(tpfile) CASE('WRITE') - call io_create_file_nc4(TPFILE, hprogram_orig=HPROGRAM_ORIG) + call IO_File_create_nc4(TPFILE, hprogram_orig=HPROGRAM_ORIG) END SELECT END IF #endif @@ -776,9 +743,9 @@ call Print_msg( NVERB_DEBUG, 'IO', 'IO_File_open_format', 'called for '//TRIM(tp IF (TPFILE%CFORMAT=='LFI' .OR. TPFILE%CFORMAT=='LFICDF4') THEN SELECT CASE (TPFILE%CMODE) CASE('READ') - call io_open_file_lfi(tpfile,iresp) + call IO_File_open_lfi(tpfile,iresp) CASE('WRITE') - call io_create_file_lfi(tpfile,iresp) + call IO_File_create_lfi(tpfile,iresp) END SELECT END IF diff --git a/src/LIB/SURCOUCHE/src/mode_io_file_lfi.f90 b/src/LIB/SURCOUCHE/src/mode_io_file_lfi.f90 index b79ff2ec1..f8645e9ca 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_file_lfi.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_file_lfi.f90 @@ -3,21 +3,22 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -! Author: P. Wautelet 14/12/2018 +! Author +! P. Wautelet 14/12/2018 ! ! Remarks: some of the code comes from mode_fm.f90 and mode_io.f90 ! (was duplicated in the 2 files) ! -! Modifications: -! Philippe Wautelet: 10/01/2019: use NEWUNIT argument of OPEN -! + move IOFREEFLU and IONEWFLU to mode_io_file_lfi.f90 -! + move management of NNCID and NLFIFLU to the nc4 and lfi subroutines +! Modifications: +! P. Wautelet 10/01/2019: use NEWUNIT argument of OPEN +! + move IO_Flu_dealloc and IO_Flu_alloc to mode_io_file_lfi.f90 +! + move management of NNCID and NLFIFLU to the nc4 and lfi subroutines +! P. Wautelet 05/03/2019: rename IO subroutines and modules ! !----------------------------------------------------------------- module mode_io_file_lfi -use modd_io_ll, only: tfiledata -use modd_netcdf, only: idcdf_kind +use modd_io, only: tfiledata use mode_msg @@ -25,7 +26,7 @@ implicit none private -public :: io_create_file_lfi, io_close_file_lfi, io_open_file_lfi +public :: IO_File_create_lfi, IO_File_close_lfi, IO_File_open_lfi integer, parameter :: JPRESERVED_UNIT = 11 integer, parameter :: JPMAX_UNIT_NUMBER = JPRESERVED_UNIT + 300 @@ -34,10 +35,10 @@ logical,save :: galloc(JPRESERVED_UNIT:JPMAX_UNIT_NUMBER) = .false. contains -subroutine io_create_file_lfi(tpfile, kstatus) - use mode_io_tools, only: io_construct_filename - use mode_io_tools_lfi, only: io_prepare_verbosity_lfi - use mode_io_tools_mnhversion, only: io_set_mnhversion +subroutine IO_File_create_lfi(tpfile, kstatus) + use mode_io_tools, only: IO_Filename_construct + use mode_io_tools_mnhversion, only: IO_Mnhversion_set + use mode_io_tools_lfi, only: IO_Verbosity_prepare_lfi type(tfiledata), intent(inout) :: tpfile integer, intent(inout) :: kstatus @@ -50,22 +51,22 @@ subroutine io_create_file_lfi(tpfile, kstatus) logical :: gnewfi logical :: gnamfi, gfater, gstats - call print_msg(NVERB_DEBUG,'IO','io_create_file_lfi','called for '//trim(tpfile%cname)) + call print_msg(NVERB_DEBUG,'IO','IO_File_create_lfi','called for '//trim(tpfile%cname)) kstatus = 0 if (tpfile%lmaster) then - call io_construct_filename(tpfile, yfilem) + call IO_Filename_construct(tpfile, yfilem) iresou = 0 if ( tpfile%nlfiflu /= -1 ) call print_msg(NVERB_ERROR,'IO', & - 'io_create_file_lfi','file '//trim(yfilem)//'.lfi has already a unit number') - tpfile%nlfiflu = ionewflu() + 'IO_File_create_lfi','file '//trim(yfilem)//'.lfi has already a unit number') + tpfile%nlfiflu = IO_Flu_alloc() gnamfi = .true. yforstatus = 'REPLACE' gfater = .true. - call io_prepare_verbosity_lfi(tpfile, imelev, gstats) + call IO_Verbosity_prepare_lfi(tpfile, imelev, gstats) inumbr = tpfile%nlfiflu inprar = tpfile%nlfinprar @@ -78,14 +79,14 @@ subroutine io_create_file_lfi(tpfile, kstatus) !test if file is newly defined gnewfi = (ininar==0) .or. (imelev<2) if (.not.gnewfi) then - call print_msg(NVERB_INFO,'IO','io_create_file_lfi','file '//trim(yfilem)//'.lfi previously created with LFI') + call print_msg(NVERB_INFO,'IO','IO_File_create_lfi','file '//trim(yfilem)//'.lfi previously created with LFI') endif end if - call io_set_mnhversion(tpfile) -end subroutine io_create_file_lfi + call IO_Mnhversion_set(tpfile) +end subroutine IO_File_create_lfi -subroutine io_close_file_lfi(tpfile, kstatus) +subroutine IO_File_close_lfi(tpfile, kstatus) type(tfiledata), intent(inout) :: tpfile integer, optional, intent(out) :: kstatus @@ -93,29 +94,29 @@ subroutine io_close_file_lfi(tpfile, kstatus) integer(kind=LFI_INT) :: istatus - call print_msg(NVERB_DEBUG,'IO','io_close_file_lfi','called for '//trim(tpfile%cname)) + call print_msg(NVERB_DEBUG,'IO','IO_File_close_lfi','called for '//trim(tpfile%cname)) istatus = 0 if (tpfile%lmaster) then if ( tpfile%nlfiflu /= -1 ) then call lfifer(istatus, tpfile%nlfiflu, YSTATUS) - call iofreeflu(int(tpfile%nlfiflu)) + call IO_Flu_dealloc(int(tpfile%nlfiflu)) tpfile%nlfiflu = -1 else istatus = -1 - call print_msg(NVERB_WARNING, 'IO', 'io_close_file_lfi', 'file '//trim(tpfile%cname)//'.lfi is not opened') + call print_msg(NVERB_WARNING, 'IO', 'IO_File_close_lfi', 'file '//trim(tpfile%cname)//'.lfi is not opened') end if end if if (present(kstatus)) kstatus = int(istatus,kind=kind(kstatus)) -end subroutine io_close_file_lfi +end subroutine IO_File_close_lfi -subroutine io_open_file_lfi(tpfile, kstatus) - use mode_io_tools, only: io_construct_filename - use mode_io_tools_lfi, only: io_prepare_verbosity_lfi - use mode_io_tools_mnhversion, only: io_get_mnhversion +subroutine IO_File_open_lfi(tpfile, kstatus) + use mode_io_tools, only: IO_Filename_construct + use mode_io_tools_mnhversion, only: IO_Mnhversion_get + use mode_io_tools_lfi, only: IO_Verbosity_prepare_lfi type(tfiledata), intent(inout) :: tpfile integer, intent(inout) :: kstatus @@ -129,22 +130,22 @@ subroutine io_open_file_lfi(tpfile, kstatus) logical :: gnewfi logical :: gnamfi, gfater, gstats - call print_msg(NVERB_DEBUG,'IO','io_open_file_lfi','called for '//trim(tpfile%cname)) + call print_msg(NVERB_DEBUG,'IO','IO_File_open_lfi','called for '//trim(tpfile%cname)) kstatus = 0 if (tpfile%lmaster) then - call io_construct_filename(tpfile, yfilem) + call IO_Filename_construct(tpfile, yfilem) iresou = 0 if ( tpfile%nlfiflu /= -1 ) call print_msg(NVERB_ERROR,'IO', & - 'io_open_file_lfi','file '//trim(yfilem)//'.lfi has already a unit number') - tpfile%nlfiflu = ionewflu() + 'IO_File_open_lfi','file '//trim(yfilem)//'.lfi has already a unit number') + tpfile%nlfiflu = IO_Flu_alloc() gnamfi = .true. yforstatus = 'OLD' gfater = .true. - call io_prepare_verbosity_lfi(tpfile, imelev, gstats) + call IO_Verbosity_prepare_lfi(tpfile, imelev, gstats) inumbr = tpfile%nlfiflu inprar = tpfile%nlfinprar @@ -155,14 +156,14 @@ subroutine io_open_file_lfi(tpfile, kstatus) if (iresou/=0) kstatus = int(iresou, kind=kind(kstatus)) end if - call io_get_mnhversion(tpfile) -end subroutine io_open_file_lfi + call IO_Mnhversion_get(tpfile) +end subroutine IO_File_open_lfi -function ionewflu() - use modd_io_ll, only: nnullunit +function IO_Flu_alloc() + use modd_io, only: nnullunit - integer :: ionewflu + integer :: IO_Flu_alloc integer :: ji integer :: ios @@ -174,7 +175,7 @@ function ionewflu() if ( galloc(ji) ) cycle inquire(unit=ji, exist=gexists, opened=gopened, iostat=ios) if (gexists .and. .not. gopened .and. ios == 0) then - ionewflu = ji + IO_Flu_alloc = ji gfound = .true. galloc(ji) = .true. exit @@ -182,21 +183,21 @@ function ionewflu() end do if (.not. gfound) then - call print_msg(NVERB_ERROR,'IO','ionewflu','wrong unit number') - ionewflu = nnullunit !/dev/null Fortran unit + call print_msg(NVERB_ERROR,'IO','IO_Flu_alloc','wrong unit number') + IO_Flu_alloc = nnullunit !/dev/null Fortran unit end if -end function ionewflu +end function IO_Flu_alloc -subroutine iofreeflu(koflu) +subroutine IO_Flu_dealloc(koflu) integer :: koflu if ( (koflu >= JPRESERVED_UNIT) .and. (koflu <= JPMAX_UNIT_NUMBER) ) then galloc(koflu) = .false. else - call print_msg(NVERB_ERROR,'IO','iofreeflu','wrong unit number') + call print_msg(NVERB_ERROR,'IO','IO_Flu_dealloc','wrong unit number') end if -end subroutine iofreeflu +end subroutine IO_Flu_dealloc end module mode_io_file_lfi diff --git a/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90 index 34b375157..fbc563242 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_file_nc4.f90 @@ -3,25 +3,27 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -! Author: P. Wautelet 13/12/2018 +! Author +! P. Wautelet 13/12/2018 ! ! Remarks: some of the code comes from mode_fm.f90 and mode_io.f90 ! (was duplicated in the 2 files) ! -! Modifications: -! Philippe Wautelet: 10/01/2019: use NEWUNIT argument of OPEN -! + move IOFREEFLU and IONEWFLU to mode_io_file_lfi.f90 -! + move management of NNCID and NLFIFLU to the nc4 and lfi subroutines -! Philippe Wautelet: 10/01/2019: replace handle_err by io_handle_err_nc4 for better netCDF error messages +! Modifications: +! P. Wautelet 10/01/2019: use NEWUNIT argument of OPEN +! + move IOFREEFLU and IONEWFLU to mode_io_file_lfi.f90 +! + move management of NNCID and NLFIFLU to the nc4 and lfi subroutines +! P. Wautelet 10/01/2019: replace handle_err by IO_Err_handle_nc4 for better netCDF error messages +! P. Wautelet 05/03/2019: rename IO subroutines and modules ! !----------------------------------------------------------------- #if defined(MNH_IOCDF4) module mode_io_file_nc4 -use modd_io_ll, only: tfiledata +use modd_io, only: tfiledata use modd_netcdf, only: IDCDF_KIND -use mode_io_tools_nc4, only: io_handle_err_nc4, io_set_knowndims_nc4, newiocdf +use mode_io_tools_nc4, only: IO_Err_handle_nc4, IO_Knowndims_set_nc4, IO_Iocdf_alloc_nc4 use mode_msg use NETCDF, only: NF90_CLOBBER, NF90_GLOBAL, NF90_NETCDF4, NF90_NOERR, NF90_NOWRITE, & @@ -32,13 +34,13 @@ implicit none private -public :: io_create_file_nc4, io_close_file_nc4, io_open_file_nc4 +public :: IO_File_create_nc4, IO_File_close_nc4, IO_File_open_nc4 contains -subroutine io_create_file_nc4(tpfile,hprogram_orig) - use mode_io_tools, only: io_construct_filename - use mode_io_tools_mnhversion, only: io_set_mnhversion +subroutine IO_File_create_nc4(tpfile,hprogram_orig) + use mode_io_tools, only: IO_Filename_construct + use mode_io_tools_mnhversion, only: IO_Mnhversion_set type(tfiledata), intent(inout) :: tpfile character(len=*),optional, intent(in) :: hprogram_orig !to emulate a file coming from this program @@ -46,141 +48,141 @@ subroutine io_create_file_nc4(tpfile,hprogram_orig) character(len=:),allocatable :: yfilem ! name of the file integer(kind=IDCDF_KIND) :: istatus - call print_msg(NVERB_DEBUG,'IO','io_create_file_nc4','called for '//trim(tpfile%cname)) + call print_msg(NVERB_DEBUG,'IO','IO_File_create_nc4','called for '//trim(tpfile%cname)) if (tpfile%lmaster) then - call io_construct_filename(tpfile, yfilem) + call IO_Filename_construct(tpfile, yfilem) - tpfile%tncdims => newiocdf() + tpfile%tncdims => IO_Iocdf_alloc_nc4() istatus = NF90_CREATE(adjustl(trim(yfilem))//".nc", ior(NF90_CLOBBER,NF90_NETCDF4), tpfile%nncid) if (istatus /= NF90_NOERR) then - call print_msg(NVERB_FATAL,'IO','io_create_file_nc4','NF90_CREATE for '//trim(yfilem)//'.nc: '//NF90_STRERROR(istatus)) + call print_msg(NVERB_FATAL,'IO','IO_File_create_nc4','NF90_CREATE for '//trim(yfilem)//'.nc: '//NF90_STRERROR(istatus)) end if call io_set_not_cleanly_closed_nc4(tpfile) - call io_set_mnhversion(tpfile) - call io_set_knowndims_nc4(tpfile, hprogram_orig=hprogram_orig) + call IO_Mnhversion_set(tpfile) + call IO_Knowndims_set_nc4(tpfile, hprogram_orig=hprogram_orig) end if -end subroutine io_create_file_nc4 +end subroutine IO_File_create_nc4 -subroutine io_close_file_nc4(tpfile,kstatus) - use mode_io_tools_nc4, only: cleaniocdf +subroutine IO_File_close_nc4(tpfile,kstatus) + use mode_io_tools_nc4, only: IO_Iocdf_dealloc_nc4 type(tfiledata), intent(inout) :: tpfile integer(kind=IDCDF_KIND), optional, intent(out) :: kstatus integer(kind=IDCDF_KIND) :: istatus - call print_msg(NVERB_DEBUG,'IO','io_close_file_nc4','called for '//trim(tpfile%cname)) + call print_msg(NVERB_DEBUG,'IO','IO_File_close_nc4','called for '//trim(tpfile%cname)) istatus = 0 if (tpfile%lmaster ) then if (tpfile%nncid == -1) then - call print_msg(NVERB_WARNING, 'IO', 'io_close_file_nc4', 'file '//trim(tpfile%cname)//'.nc is not opened') + call print_msg(NVERB_WARNING, 'IO', 'IO_File_close_nc4', 'file '//trim(tpfile%cname)//'.nc is not opened') else - if (trim(tpfile%cmode) == 'WRITE') call io_set_cleanly_closed_nc4(tpfile) + if (trim(tpfile%cmode) == 'WRITE') call IO_Cleanly_closed_set_nc4(tpfile) istatus = NF90_CLOSE(tpfile%nncid) if (istatus /= NF90_NOERR) then - call print_msg(NVERB_WARNING, 'IO', 'io_close_file_nc4', 'NF90_CLOSE error: '//trim(NF90_STRERROR(istatus))) + call print_msg(NVERB_WARNING, 'IO', 'IO_File_close_nc4', 'NF90_CLOSE error: '//trim(NF90_STRERROR(istatus))) end if tpfile%nncid = -1 - if (associated(tpfile%tncdims)) call cleaniocdf(tpfile%tncdims) + if (associated(tpfile%tncdims)) call IO_Iocdf_dealloc_nc4(tpfile%tncdims) end if end if if (present(kstatus)) kstatus = istatus -end subroutine io_close_file_nc4 +end subroutine IO_File_close_nc4 -subroutine io_open_file_nc4(tpfile) - use mode_io_tools, only: io_construct_filename - use mode_io_tools_mnhversion, only: io_get_mnhversion +subroutine IO_File_open_nc4(tpfile) + use mode_io_tools, only: IO_Filename_construct + use mode_io_tools_mnhversion, only: IO_Mnhversion_get type(tfiledata), intent(inout) :: tpfile character(len=:),allocatable :: yfilem ! name of the file integer(kind=IDCDF_KIND) :: istatus - call print_msg(NVERB_DEBUG,'IO','io_open_file_nc4','called for '//trim(tpfile%cname)) + call print_msg(NVERB_DEBUG,'IO','IO_File_open_nc4','called for '//trim(tpfile%cname)) if (tpfile%lmaster) then - call io_construct_filename(tpfile, yfilem) + call IO_Filename_construct(tpfile, yfilem) - tpfile%tncdims => newiocdf() + tpfile%tncdims => IO_Iocdf_alloc_nc4() istatus = NF90_OPEN(adjustl(trim(yfilem))//".nc", NF90_NOWRITE, tpfile%nncid) if (istatus /= NF90_NOERR) then - call print_msg(NVERB_FATAL, 'IO', 'io_open_file_nc4', 'NF90_OPEN for '//trim(yfilem)//'.nc: '//NF90_STRERROR(istatus)) + call print_msg(NVERB_FATAL, 'IO', 'IO_File_open_nc4', 'NF90_OPEN for '//trim(yfilem)//'.nc: '//NF90_STRERROR(istatus)) end if istatus = NF90_INQUIRE(tpfile%nncid, nvariables=tpfile%nncnar) if (istatus /= NF90_NOERR) then - call print_msg(NVERB_FATAL,'IO','io_open_file_nc4','NF90_INQUIRE for '//trim(yfilem)//'.nc: '//NF90_STRERROR(istatus)) + call print_msg(NVERB_FATAL,'IO','IO_File_open_nc4','NF90_INQUIRE for '//trim(yfilem)//'.nc: '//NF90_STRERROR(istatus)) end if end if if (trim(tpfile%cmode) == 'READ') then - call io_get_mnhversion(tpfile) - if (tpfile%lmaster) call io_check_cleanly_closed_nc4(tpfile) + call IO_Mnhversion_get(tpfile) + if (tpfile%lmaster) call IO_Cleanly_closed_check_nc4(tpfile) end if -end subroutine io_open_file_nc4 +end subroutine IO_File_open_nc4 -subroutine io_check_cleanly_closed_nc4(tpfile) +subroutine IO_Cleanly_closed_check_nc4(tpfile) type(tfiledata), intent(in) :: tpfile character(len=:), allocatable :: yclean integer(kind=IDCDF_KIND) :: ilen, istatus integer, dimension(3) :: imnhversion - call print_msg(NVERB_DEBUG,'IO','io_check_cleanly_closed_nc4','called for '//trim(tpfile%cname)) + call print_msg(NVERB_DEBUG,'IO','IO_Cleanly_closed_check_nc4','called for '//trim(tpfile%cname)) imnhversion = tpfile%nmnhversion if ( imnhversion(1)<5 .OR. & (imnhversion(1)==5 .AND. imnhversion(2)<4) .OR. & (imnhversion(1)==5 .AND. imnhversion(2)==4 .AND. imnhversion(3)<2) ) then - call print_msg(NVERB_DEBUG,'IO','io_check_cleanly_closed_nc4', & + call print_msg(NVERB_DEBUG,'IO','IO_Cleanly_closed_check_nc4', & 'file '//trim(tpfile%cname)//' is too old (before MNH 5.4.2) to check if cleanly closed') return end if istatus = NF90_INQUIRE_ATTRIBUTE(tpfile%nncid, NF90_GLOBAL, 'MNH_cleanly_closed', len = ilen) if (istatus /= NF90_NOERR) then - call print_msg(NVERB_ERROR,'IO','io_check_cleanly_closed_nc4', & + call print_msg(NVERB_ERROR,'IO','IO_Cleanly_closed_check_nc4', & 'MNH_cleanly_closed attribute not found in file '//trim(tpfile%cname)) else allocate( character(len=ilen) :: yclean ) istatus = NF90_GET_ATT(tpfile%nncid, NF90_GLOBAL, 'MNH_cleanly_closed', yclean) if (istatus /= NF90_NOERR) then - call print_msg(NVERB_WARNING,'IO','io_check_cleanly_closed_nc4', & + call print_msg(NVERB_WARNING,'IO','IO_Cleanly_closed_check_nc4', & 'MNH_cleanly_closed attribute not found in file '//trim(tpfile%cname)) else if (yclean == 'yes') then - call print_msg(NVERB_DEBUG,'IO','io_check_cleanly_closed_nc4', & + call print_msg(NVERB_DEBUG,'IO','IO_Cleanly_closed_check_nc4', & 'file '//trim(tpfile%cname)//' was cleanly closed before opening') else if (yclean == 'no') then - call print_msg(NVERB_ERROR,'IO','io_check_cleanly_closed_nc4', & + call print_msg(NVERB_ERROR,'IO','IO_Cleanly_closed_check_nc4', & 'file '//trim(tpfile%cname)//' was not cleanly closed before opening') else - call print_msg(NVERB_ERROR,'IO','io_check_cleanly_closed_nc4', & + call print_msg(NVERB_ERROR,'IO','IO_Cleanly_closed_check_nc4', & 'invalid MNH_cleanly_closed attribute for file '//trim(tpfile%cname)) end if end if end if -end subroutine io_check_cleanly_closed_nc4 +end subroutine IO_Cleanly_closed_check_nc4 -subroutine io_set_cleanly_closed_nc4(tpfile) +subroutine IO_Cleanly_closed_set_nc4(tpfile) type(tfiledata), intent(in) :: tpfile integer(kind=IDCDF_KIND) :: istatus - call print_msg(NVERB_DEBUG,'IO','io_set_cleanly_closed_nc4','called for '//trim(tpfile%cname)) + call print_msg(NVERB_DEBUG,'IO','IO_Cleanly_closed_set_nc4','called for '//trim(tpfile%cname)) istatus = NF90_PUT_ATT(tpfile%nncid, NF90_GLOBAL, 'MNH_cleanly_closed', 'yes') - if (istatus /= NF90_NOERR) call io_handle_err_nc4(istatus,'io_set_cleanly_closed_nc4','NF90_PUT_ATT','MNH_cleanly_closed') -end subroutine io_set_cleanly_closed_nc4 + if (istatus /= NF90_NOERR) call IO_Err_handle_nc4(istatus,'IO_Cleanly_closed_set_nc4','NF90_PUT_ATT','MNH_cleanly_closed') +end subroutine IO_Cleanly_closed_set_nc4 subroutine io_set_not_cleanly_closed_nc4(tpfile) @@ -191,7 +193,7 @@ subroutine io_set_not_cleanly_closed_nc4(tpfile) call print_msg(NVERB_DEBUG,'IO','io_set_not_cleanly_closed_nc4','called for '//trim(tpfile%cname)) istatus = NF90_PUT_ATT(tpfile%nncid, NF90_GLOBAL, 'MNH_cleanly_closed', 'no') - if (istatus /= NF90_NOERR) call io_handle_err_nc4(istatus,'io_set_not_cleanly_closed_nc4','NF90_PUT_ATT','MNH_cleanly_closed') + if (istatus /= NF90_NOERR) call IO_Err_handle_nc4(istatus,'io_set_not_cleanly_closed_nc4','NF90_PUT_ATT','MNH_cleanly_closed') end subroutine io_set_not_cleanly_closed_nc4 end module mode_io_file_nc4 @@ -199,22 +201,22 @@ end module mode_io_file_nc4 ! ! External dummy subroutines ! -subroutine io_create_file_nc4(a, b) +subroutine IO_File_create_nc4(a, b) use mode_msg integer :: a, b -CALL PRINT_MSG(NVERB_ERROR,'IO','io_create_file_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine io_create_file_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_create_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_File_create_nc4 ! -subroutine io_close_file_nc4(a) +subroutine IO_File_close_nc4(a) use mode_msg integer :: a -CALL PRINT_MSG(NVERB_ERROR,'IO','io_close_file_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine io_close_file_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_close_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_File_close_nc4 ! -subroutine io_open_file_nc4(a) +subroutine IO_File_open_nc4(a) use mode_msg integer :: a -CALL PRINT_MSG(NVERB_ERROR,'IO','io_open_file_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine io_open_file_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_open_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_File_open_nc4 ! #endif diff --git a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 index e3233b76c..8a50caedd 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 @@ -3,31 +3,34 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!! Authors -!! ------- -! -! P. Wautelet : 2016: original version +! Author(s) +! P. Wautelet 2016 ! Modifications: -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! Philippe Wautelet: 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll -! to allow to disable writes (for bench purposes) +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll +! to allow to disable writes (for bench purposes) ! P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! (nsubfiles_ioz is now determined in IO_File_add2list) ! P. Wautelet 18/02/2019: bugfixes for nsubfiles_ioz +! P. Wautelet 05/03/2019: rename IO subroutines and modules !----------------------------------------------------------------- MODULE MODE_IO_MANAGE_STRUCT ! -USE MODD_IO_ll +USE MODD_IO USE MODE_MSG ! IMPLICIT NONE ! +private +! +public :: IO_Bakout_struct_prepare, IO_File_add2list, IO_File_find_byname, IO_Filelist_print +! CONTAINS ! !######################################################################### -SUBROUTINE IO_PREPARE_BAKOUT_STRUCT(KSUP,PTSTEP,PSEGLEN) +SUBROUTINE IO_Bakout_struct_prepare(KSUP,PTSTEP,PSEGLEN) !######################################################################### ! USE MODD_BAKOUT @@ -61,7 +64,7 @@ INTEGER, DIMENSION(:), ALLOCATABLE :: IBAK_STEP, IOUT_STEP CHARACTER (LEN=4) :: YDADNUMBER ! Character string for the DAD model file number ! ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_PREPARE_BAKOUT_STRUCT','called') +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Bakout_struct_prepare','called') ! ! Special case if writes are forced to NO IF (LIO_NO_WRITE) THEN @@ -182,7 +185,7 @@ DO IMI = 1, NMODEL ELSE IERR_LVL = NVERB_ERROR END IF - CALL PRINT_MSG(IERR_LVL,'IO','IO_PREPARE_BAKOUT_STRUCT','no (valid) backup time') + CALL PRINT_MSG(IERR_LVL,'IO','IO_Bakout_struct_prepare','no (valid) backup time') END IF ! IOUT_NUMB = 0 @@ -206,7 +209,7 @@ DO IMI = 1, NMODEL !* Find dad output number ! !Security check (if it happens, this part of the code should be exported outside of the IMI loop) - IF (NDAD(IMI)>IMI) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_PREPARE_BAKOUT_STRUCT','NDAD(IMI)>IMI') + IF (NDAD(IMI)>IMI) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Bakout_struct_prepare','NDAD(IMI)>IMI') IF (NDAD(IMI) == IMI .OR. IMI == 1) THEN OUT_MODEL(IMI)%TBACKUPN(:)%NOUTDAD = 0 DO IPOS = 1,OUT_MODEL(IMI)%NBAK_NUMB @@ -262,7 +265,7 @@ DO IMI = 1, NMODEL DO IPOS = 1,JPOUTVARMAX IF (COUT_VAR(IMI,IPOS)/='') IVAR = IVAR + 1 END DO - IF (IVAR==0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_PREPARE_BAKOUT_STRUCT','no fields chosen for output') + IF (IVAR==0) CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Bakout_struct_prepare','no fields chosen for output') ALLOCATE(OUT_MODEL(IMI)%TOUTPUTN(1)%NFIELDLIST(IVAR)) !Determine the list of the outputs to do (by field number) IVAR = 1 @@ -273,7 +276,7 @@ DO IMI = 1, NMODEL CALL FIND_FIELD_ID_FROM_MNHNAME(COUT_VAR(IMI,IPOS),IFIELD,IRESP) OUT_MODEL(IMI)%TOUTPUTN(1)%NFIELDLIST(IVAR) = IFIELD IF (IRESP/=0) THEN - CALL PRINT_MSG(NVERB_FATAL,'IO','IO_PREPARE_BAKOUT_STRUCT','unknown field for output: '//TRIM(COUT_VAR(IMI,IPOS))) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Bakout_struct_prepare','unknown field for output: '//TRIM(COUT_VAR(IMI,IPOS))) !MNH is killed to prevent problems with wrong values in NFIELDLIST END IF ! @@ -634,9 +637,9 @@ SUBROUTINE POPULATE_STRUCT(TPFILE_FIRST,TPFILE_LAST,KSTEPS,HFILETYPE,TPBAKOUTN) END DO END SUBROUTINE POPULATE_STRUCT ! -END SUBROUTINE IO_PREPARE_BAKOUT_STRUCT +END SUBROUTINE IO_Bakout_struct_prepare ! -SUBROUTINE IO_FILE_ADD2LIST(TPFILE,HNAME,HTYPE,HMODE, & +SUBROUTINE IO_File_add2list(TPFILE,HNAME,HTYPE,HMODE, & HFORM,HACCESS,HFORMAT,HDIRNAME, & KLFINPRAR,KLFITYPE,KLFIVERB,KRECL,KMODEL, & TPDADFILE,TPDATAFILE,OOLD,OSPLIT_IOZ) @@ -674,7 +677,7 @@ INTEGER :: ILFIVERB LOGICAL :: GOLD logical :: gsplit_ioz ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_ADD2LIST','called for '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_File_add2list','called for '//TRIM(HNAME)) ! IMI = GET_CURRENT_MODEL_INDEX() ! @@ -686,57 +689,57 @@ END IF ! IF (ASSOCIATED(TPFILE)) THEN IF (GOLD) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_FILE_ADD2LIST','file '//TRIM(HNAME)//' already associated. Pointer will be overwritten') + CALL PRINT_MSG(NVERB_INFO,'IO','IO_File_add2list','file '//TRIM(HNAME)//' already associated. Pointer will be overwritten') TPFILE => NULL() ELSE - CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_ADD2LIST','file '//TRIM(HNAME)//' already associated') + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_add2list','file '//TRIM(HNAME)//' already associated') END IF END IF ! -CALL IO_FILE_FIND_BYNAME(HNAME,TPFILE,IRESP,OOLD=GOLD) +CALL IO_File_find_byname(HNAME,TPFILE,IRESP,OOLD=GOLD) IF (IRESP==0) THEN !File has been found !Check if really same one (LFI vs netCDF) IF (PRESENT(HFORMAT)) THEN IF ( (HFORMAT=='LFI' .AND. TPFILE%CFORMAT/='NETCDF4') .OR. (HFORMAT=='NETCDF4' .AND. TPFILE%CFORMAT/='LFI') ) THEN - CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_ADD2LIST','file '//TRIM(HNAME)//' already in filelist') + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_add2list','file '//TRIM(HNAME)//' already in filelist') END IF ELSE IF (.NOT.GOLD) THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','file '//TRIM(HNAME)//' already in filelist') + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','file '//TRIM(HNAME)//' already in filelist') ELSE - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_ADD2LIST','file '//TRIM(HNAME)//' already in filelist (not unexpected)') + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_File_add2list','file '//TRIM(HNAME)//' already in filelist (not unexpected)') END IF RETURN END IF END IF ! IF( PRESENT(HFORM) .AND. TRIM(HTYPE)/='SURFACE_DATA') & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_ADD2LIST','optional argument HFORM is not used by '//TRIM(HTYPE)//' files') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_add2list','optional argument HFORM is not used by '//TRIM(HTYPE)//' files') IF(.NOT.PRESENT(HFORM) .AND. TRIM(HTYPE)=='SURFACE_DATA') & - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','optional argument HFORM is necessary for '//TRIM(HTYPE)//' files') + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','optional argument HFORM is necessary for '//TRIM(HTYPE)//' files') IF(PRESENT(HFORM)) THEN IF(HFORM/='FORMATTED' .AND. HFORM/='UNFORMATTED') & - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','HFORM should be FORMATTED or UNFORMATTED and not '//TRIM(HFORM)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','HFORM should be FORMATTED or UNFORMATTED and not '//TRIM(HFORM)) END IF ! IF( PRESENT(HACCESS) .AND. TRIM(HTYPE)/='SURFACE_DATA') & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_ADD2LIST','optional argument HACCESS is not used by '//TRIM(HTYPE)//' files') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_add2list','optional argument HACCESS is not used by '//TRIM(HTYPE)//' files') IF(.NOT.PRESENT(HACCESS) .AND. TRIM(HTYPE)=='SURFACE_DATA') & - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','optional argument HACCESS is necessary for '//TRIM(HTYPE)//' files') + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','optional argument HACCESS is necessary for '//TRIM(HTYPE)//' files') IF(PRESENT(HACCESS)) THEN IF(HACCESS/='DIRECT' .AND. HACCESS/='SEQUENTIAL' .AND. HACCESS/='STREAM') & - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','HACCESS should be DIRECT, SEQUENTIAL or STREAM and not '//TRIM(HACCESS)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','HACCESS should be DIRECT, SEQUENTIAL or STREAM and not '//TRIM(HACCESS)) END IF ! IF (PRESENT(HFORMAT)) THEN IF(CPROGRAM=='LFICDF') THEN IF (HFORMAT/='LFI' .AND. HFORMAT/='NETCDF4') & - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid HFORMAT ('//TRIM(HFORMAT)//')') + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','invalid HFORMAT ('//TRIM(HFORMAT)//')') END IF ELSE IF(CPROGRAM=='LFICDF') & - CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_ADD2LIST','optional argument HFORMAT is necessary for CPROGRAM='//TRIM(CPROGRAM)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_add2list','optional argument HFORMAT is necessary for CPROGRAM='//TRIM(CPROGRAM)) END IF ! IF(PRESENT(KLFINPRAR)) THEN @@ -758,15 +761,15 @@ ELSE END IF ! IF( PRESENT(KRECL) .AND. TRIM(HTYPE)/='SURFACE_DATA' .AND. TRIM(HTYPE)/='TXT') & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_ADD2LIST','optional argument KRECL is not used by '//TRIM(HTYPE)//' files') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_add2list','optional argument KRECL is not used by '//TRIM(HTYPE)//' files') IF(.NOT.PRESENT(KRECL) .AND. TRIM(HTYPE)=='SURFACE_DATA') THEN IF(TRIM(HACCESS)=='DIRECT') & - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','optional argument KRECL is necessary for '//TRIM(HTYPE)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','optional argument KRECL is necessary for '//TRIM(HTYPE)// & ' files in DIRECT access') END IF ! IF (PRESENT(TPDATAFILE) .AND. TRIM(HTYPE)/='DES') & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_ADD2LIST','optional argument TPDATAFILE is not used by '//TRIM(HTYPE)//' files') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_add2list','optional argument TPDATAFILE is not used by '//TRIM(HTYPE)//' files') ! IF (.NOT.ASSOCIATED(TFILE_LAST)) THEN ALLOCATE(TFILE_LAST) @@ -787,7 +790,7 @@ IF (PRESENT(HDIRNAME)) THEN END IF ! IF (TRIM(HMODE)/='READ' .AND. TRIM(HMODE)/='WRITE') THEN - CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_ADD2LIST','unknown mode ('//TRIM(HMODE)//') for file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_add2list','unknown mode ('//TRIM(HMODE)//') for file '//TRIM(HNAME)) END IF ! TPFILE%CMODE = HMODE @@ -819,7 +822,7 @@ SELECT CASE(TPFILE%CTYPE) !Chemistry input files CASE('CHEMINPUT') IF (TRIM(HMODE)/='READ') & !Invalid because not (yet) necessary - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) TPFILE%CACCESS = 'SEQUENTIAL' TPFILE%CFORM = 'FORMATTED' TPFILE%CFORMAT = 'TEXT' @@ -828,7 +831,7 @@ SELECT CASE(TPFILE%CTYPE) !Chemistry tabulation files CASE('CHEMTAB') IF (TRIM(HMODE)/='READ') & !Invalid because not (yet) necessary - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) TPFILE%CACCESS = 'SEQUENTIAL' TPFILE%CFORM = 'FORMATTED' TPFILE%CFORMAT = 'TEXT' @@ -841,14 +844,14 @@ SELECT CASE(TPFILE%CTYPE) TPFILE%CFORMAT = 'TEXT' TPFILE%NRECL = 8*1024 IF (.NOT.PRESENT(TPDATAFILE)) THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','missing TPDATAFILE argument for DES file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','missing TPDATAFILE argument for DES file '//TRIM(HNAME)) ELSE IF (.NOT.ASSOCIATED(TPDATAFILE)) & - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','TPDATAFILE is not associated for DES file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','TPDATAFILE is not associated for DES file '//TRIM(HNAME)) TPFILE%TDATAFILE => TPDATAFILE TPDATAFILE%TDESFILE => TPFILE IF (PRESENT(HDIRNAME)) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_ADD2LIST','HDIRNAME argument ignored for DES file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_add2list','HDIRNAME argument ignored for DES file '//TRIM(HNAME)) IF (ALLOCATED(TPDATAFILE%CDIRNAME)) TPFILE%CDIRNAME = TPDATAFILE%CDIRNAME END IF @@ -856,7 +859,7 @@ SELECT CASE(TPFILE%CTYPE) !GPS files CASE('GPS') IF (TRIM(HMODE)/='WRITE') & !Invalid because not (yet) necessary - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) TPFILE%CACCESS = 'SEQUENTIAL' TPFILE%CFORM = 'FORMATTED' TPFILE%CFORMAT = 'TEXT' @@ -865,7 +868,7 @@ SELECT CASE(TPFILE%CTYPE) !Meteo files CASE('METEO') IF (TRIM(HMODE)/='WRITE') & !Invalid because not (yet) necessary - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) TPFILE%CACCESS = 'SEQUENTIAL' TPFILE%CFORM = 'UNFORMATTED' TPFILE%CFORMAT = 'BINARY' @@ -875,7 +878,7 @@ SELECT CASE(TPFILE%CTYPE) !Namelist files CASE('NML') IF (TRIM(HMODE)/='READ') & !Invalid because not (yet) necessary - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) TPFILE%CACCESS = 'SEQUENTIAL' TPFILE%CFORM = 'FORMATTED' TPFILE%CFORMAT = 'TEXT' @@ -884,7 +887,7 @@ SELECT CASE(TPFILE%CTYPE) !OUTPUTLISTING files CASE('OUTPUTLISTING') IF (TRIM(HMODE)/='WRITE') & !Invalid because not (yet) necessary - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) TPFILE%CACCESS = 'SEQUENTIAL' TPFILE%CFORM = 'FORMATTED' TPFILE%CFORMAT = 'TEXT' @@ -893,7 +896,7 @@ SELECT CASE(TPFILE%CTYPE) !SURFACE_DATA files CASE('SURFACE_DATA') IF (TRIM(HMODE)/='READ') & !Invalid because not (yet) necessary - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_ADD2LIST','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_add2list','invalid mode '//TRIM(HMODE)//' for file '//TRIM(HNAME)) TPFILE%CFORMAT = 'SURFACE_DATA' TPFILE%CFORM = HFORM TPFILE%CACCESS = HACCESS @@ -920,7 +923,7 @@ SELECT CASE(TPFILE%CTYPE) ELSE IF (LIOCDF4) THEN TPFILE%CFORMAT = 'NETCDF4' ELSE - CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_ADD2LIST','invalid format for file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_add2list','invalid format for file '//TRIM(HNAME)) END IF ELSE IF (TRIM(HMODE)=='WRITE') THEN IF (PRESENT(HFORMAT)) THEN @@ -934,7 +937,7 @@ SELECT CASE(TPFILE%CTYPE) TPFILE%CFORMAT = 'LFI' TPFILE%NLFINPRAR = ILFINPRAR ELSE - CALL PRINT_MSG(NVERB_FATAL,'IO','IO_FILE_ADD2LIST','invalid format for file '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_File_add2list','invalid format for file '//TRIM(HNAME)) END IF END IF ! @@ -948,7 +951,7 @@ SELECT CASE(TPFILE%CTYPE) END IF ! IF(PRESENT(TPDADFILE)) THEN - IF (.NOT.ASSOCIATED(TPDADFILE)) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_ADD2LIST', & + IF (.NOT.ASSOCIATED(TPDADFILE)) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_add2list', & 'TPDADFILE provided but not associated for file '//TRIM(HNAME)) TPFILE%TDADFILE => TPDADFILE ELSE @@ -957,7 +960,7 @@ SELECT CASE(TPFILE%CTYPE) CASE default - call print_msg(NVERB_FATAL,'IO','IO_FILE_ADD2LIST','invalid type '//trim(tpfile%ctype)//' for file '//trim(hname)) + call print_msg(NVERB_FATAL,'IO','IO_File_add2list','invalid type '//trim(tpfile%ctype)//' for file '//trim(hname)) END SELECT ! IF(PRESENT(KMODEL)) TPFILE%NMODEL = KMODEL @@ -966,9 +969,9 @@ TPFILE%LOPENED = .FALSE. TPFILE%NOPEN = 0 TPFILE%NCLOSE = 0 ! -END SUBROUTINE IO_FILE_ADD2LIST +END SUBROUTINE IO_File_add2list ! -SUBROUTINE IO_FILE_FIND_BYNAME(HNAME,TPFILE,KRESP,OOLD) +SUBROUTINE IO_File_find_byname(HNAME,TPFILE,KRESP,OOLD) ! USE MODD_PARAMETERS, ONLY: NFILENAMELGTMAX ! @@ -981,7 +984,7 @@ LOGICAL, OPTIONAL, INTENT(IN) :: OOLD ! FALSE if new file (should not be TYPE(TFILEDATA),POINTER :: TZFILE ! File structure LOGICAL :: GOLD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_FIND_BYNAME','looking for '//TRIM(HNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_File_find_byname','looking for '//TRIM(HNAME)) ! NULLIFY(TPFILE) KRESP = 0 @@ -993,10 +996,10 @@ ELSE END IF ! IF (LEN_TRIM(HNAME)>NFILENAMELGTMAX) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_FIND_BYNAME','HNAME length is bigger than NFILENAMELGTMAX for '//TRIM(HNAME)) + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_find_byname','HNAME length is bigger than NFILENAMELGTMAX for '//TRIM(HNAME)) ! IF (.NOT.ASSOCIATED(TFILE_FIRST)) THEN - IF (GOLD) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FILE_FIND_BYNAME','filelist is empty') + IF (GOLD) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_File_find_byname','filelist is empty') ELSE ! TZFILE => TFILE_FIRST @@ -1012,19 +1015,19 @@ ELSE END IF ! IF (.NOT.ASSOCIATED(TPFILE)) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_FIND_BYNAME','file '//TRIM(HNAME)//' not found in list') + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_File_find_byname','file '//TRIM(HNAME)//' not found in list') KRESP = -1 !File not found ELSE IF (GOLD) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_FIND_BYNAME',TRIM(HNAME)//' was found') + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_File_find_byname',TRIM(HNAME)//' was found') ELSE !File should not be found - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_FILE_FIND_BYNAME',TRIM(HNAME)//' was found (unexpected)') + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_File_find_byname',TRIM(HNAME)//' was found (unexpected)') END IF END IF ! -END SUBROUTINE IO_FILE_FIND_BYNAME +END SUBROUTINE IO_File_find_byname ! -SUBROUTINE IO_FILE_PRINT_LIST(TPFILE_FIRST) +SUBROUTINE IO_Filelist_print(TPFILE_FIRST) ! USE MODD_VAR_ll, ONLY : IP ! @@ -1034,7 +1037,7 @@ TYPE(TFILEDATA),POINTER :: TZFILE ! File structure ! IF (IP/=1 .AND. .NOT.LVERB_ALLPRC) RETURN ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FILE_PRINT_LIST','called') +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Filelist_print','called') ! IF (PRESENT(TPFILE_FIRST)) THEN IF (.NOT.ASSOCIATED(TPFILE_FIRST)) RETURN @@ -1060,6 +1063,6 @@ DO WHILE (ASSOCIATED(TZFILE%TFILE_NEXT)) END DO WRITE (*,'(/)') ! -END SUBROUTINE IO_FILE_PRINT_LIST +END SUBROUTINE IO_Filelist_print ! END MODULE MODE_IO_MANAGE_STRUCT diff --git a/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 b/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 index 91e4e0031..991a0c4b4 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_read_lfi.f90 @@ -1,15 +1,17 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -module mode_io_read_lfi ! Modifications: -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! Philippe Wautelet: 21/06/2018: read and write correctly if MNH_REAL=4 -! Philippe Wautelet: 14/12/2018: split fmreadwrit.f90 +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 21/06/2018: read and write correctly if MNH_REAL=4 +! P. Wautelet 14/12/2018: split fmreadwrit.f90 +! P. Wautelet 05/03/2019: rename IO subroutines and modules +!----------------------------------------------------------------- +module mode_io_read_lfi ! -USE MODD_IO_ll +USE MODD_IO USE MODD_PARAMETERS, ONLY: NLFIMAXCOMMENTLENGTH ! USE MODE_FIELD, ONLY : TFIELDDATA @@ -19,26 +21,26 @@ IMPLICIT NONE ! PRIVATE ! +public :: IO_Field_read_lfi +! INTEGER, PARAMETER :: JPXKRK = NLFIMAXCOMMENTLENGTH INTEGER, PARAMETER :: JPXFIE = 1.5E8 ! -INTERFACE IO_READ_FIELD_LFI - MODULE PROCEDURE IO_READ_FIELD_LFI_X0, IO_READ_FIELD_LFI_X1, & - IO_READ_FIELD_LFI_X2, IO_READ_FIELD_LFI_X3, & - IO_READ_FIELD_LFI_X4, IO_READ_FIELD_LFI_X5, & - IO_READ_FIELD_LFI_X6, & - IO_READ_FIELD_LFI_N0, IO_READ_FIELD_LFI_N1, & - IO_READ_FIELD_LFI_N2, & - IO_READ_FIELD_LFI_L0, IO_READ_FIELD_LFI_L1, & - IO_READ_FIELD_LFI_C0, & - IO_READ_FIELD_LFI_T0 -END INTERFACE IO_READ_FIELD_LFI -! -PUBLIC IO_READ_FIELD_LFI +INTERFACE IO_Field_read_lfi + MODULE PROCEDURE IO_Field_read_lfi_X0, IO_Field_read_lfi_X1, & + IO_Field_read_lfi_X2, IO_Field_read_lfi_X3, & + IO_Field_read_lfi_X4, IO_Field_read_lfi_X5, & + IO_Field_read_lfi_X6, & + IO_Field_read_lfi_N0, IO_Field_read_lfi_N1, & + IO_Field_read_lfi_N2, & + IO_Field_read_lfi_L0, IO_Field_read_lfi_L1, & + IO_Field_read_lfi_C0, & + IO_Field_read_lfi_T0 +END INTERFACE IO_Field_read_lfi ! CONTAINS ! -SUBROUTINE IO_READ_FIELD_LFI_X0(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_X0(TPFILE,TPFIELD,PFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -58,11 +60,11 @@ INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD REAL,DIMENSION(1) :: ZFIELD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_X0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_X0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = 1 ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) THEN !TRANSFER_I8_R works with 1D arrays @@ -74,10 +76,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_X0 +END SUBROUTINE IO_Field_read_lfi_X0 ! ! -SUBROUTINE IO_READ_FIELD_LFI_X1(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_X1(TPFILE,TPFIELD,PFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -96,11 +98,11 @@ INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_X1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_X1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(PFIELD) ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) PFIELD = TRANSFER_I8_R(IWORK(IWORK(2)+3:)) ! @@ -108,10 +110,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_X1 +END SUBROUTINE IO_Field_read_lfi_X1 ! ! -SUBROUTINE IO_READ_FIELD_LFI_X2(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_X2(TPFILE,TPFIELD,PFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -130,11 +132,11 @@ INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_X2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_X2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(PFIELD) ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) PFIELD = RESHAPE( TRANSFER_I8_R(IWORK(IWORK(2)+3:)) , SHAPE(PFIELD) ) ! @@ -142,10 +144,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_X2 +END SUBROUTINE IO_Field_read_lfi_X2 ! ! -SUBROUTINE IO_READ_FIELD_LFI_X3(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_X3(TPFILE,TPFIELD,PFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -164,11 +166,11 @@ INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_X3',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_X3',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(PFIELD) ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) PFIELD = RESHAPE( TRANSFER_I8_R(IWORK(IWORK(2)+3:)) , SHAPE(PFIELD) ) ! @@ -176,10 +178,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_X3 +END SUBROUTINE IO_Field_read_lfi_X3 ! ! -SUBROUTINE IO_READ_FIELD_LFI_X4(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_X4(TPFILE,TPFIELD,PFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -198,11 +200,11 @@ INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_X4',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_X4',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(PFIELD) ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) PFIELD = RESHAPE( TRANSFER_I8_R(IWORK(IWORK(2)+3:)) , SHAPE(PFIELD) ) ! @@ -210,10 +212,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_X4 +END SUBROUTINE IO_Field_read_lfi_X4 ! ! -SUBROUTINE IO_READ_FIELD_LFI_X5(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_X5(TPFILE,TPFIELD,PFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -232,11 +234,11 @@ INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_X5',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_X5',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(PFIELD) ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) PFIELD = RESHAPE( TRANSFER_I8_R(IWORK(IWORK(2)+3:)) , SHAPE(PFIELD) ) ! @@ -244,10 +246,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_X5 +END SUBROUTINE IO_Field_read_lfi_X5 ! ! -SUBROUTINE IO_READ_FIELD_LFI_X6(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_X6(TPFILE,TPFIELD,PFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -266,11 +268,11 @@ INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_X6',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_X6',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(PFIELD) ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) PFIELD = RESHAPE( TRANSFER_I8_R(IWORK(IWORK(2)+3:)) , SHAPE(PFIELD) ) ! @@ -278,10 +280,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_X6 +END SUBROUTINE IO_Field_read_lfi_X6 ! ! -SUBROUTINE IO_READ_FIELD_LFI_N0(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_N0(TPFILE,TPFIELD,KFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -300,11 +302,11 @@ INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_N0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_N0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = 1 ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) KFIELD = IWORK(IWORK(2)+3) ! @@ -312,10 +314,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_N0 +END SUBROUTINE IO_Field_read_lfi_N0 ! ! -SUBROUTINE IO_READ_FIELD_LFI_N1(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_N1(TPFILE,TPFIELD,KFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -334,11 +336,11 @@ INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_N1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_N1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(KFIELD) ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) KFIELD(:) = IWORK(IWORK(2)+3:) ! @@ -346,10 +348,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_N1 +END SUBROUTINE IO_Field_read_lfi_N1 ! ! -SUBROUTINE IO_READ_FIELD_LFI_N2(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_N2(TPFILE,TPFIELD,KFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -368,11 +370,11 @@ INTEGER :: ILENG INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_N2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_N2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(KFIELD) ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) KFIELD(:,:) = RESHAPE(IWORK(IWORK(2)+3:),SHAPE(KFIELD)) ! @@ -380,10 +382,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_N2 +END SUBROUTINE IO_Field_read_lfi_N2 ! ! -SUBROUTINE IO_READ_FIELD_LFI_L0(TPFILE,TPFIELD,OFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_L0(TPFILE,TPFIELD,OFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -403,11 +405,11 @@ INTEGER :: IFIELD INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_L0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_L0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = 1 ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) THEN IFIELD = IWORK(IWORK(2)+3) @@ -416,7 +418,7 @@ IF (GGOOD) THEN ELSE IF (IFIELD==1) THEN OFIELD = .TRUE. ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_LFI_L0',TRIM(TPFILE%CNAME)//': invalid value in file for ' & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_lfi_L0',TRIM(TPFILE%CNAME)//': invalid value in file for ' & //TRIM(TPFIELD%CMNHNAME)) OFIELD = .TRUE. IRESP = -112 @@ -427,10 +429,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_L0 +END SUBROUTINE IO_Field_read_lfi_L0 ! ! -SUBROUTINE IO_READ_FIELD_LFI_L1(TPFILE,TPFIELD,OFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_L1(TPFILE,TPFIELD,OFIELD,KRESP) USE MODE_MSG ! IMPLICIT NONE @@ -451,11 +453,11 @@ INTEGER, DIMENSION(SIZE(OFIELD)) :: IFIELD INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_L1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_L1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(OFIELD) ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) THEN IFIELD(:) = IWORK(IWORK(2)+3:) @@ -470,7 +472,7 @@ IF (GGOOD) THEN END IF END DO IF (IRESP==-112) THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_LFI_L1',TRIM(TPFILE%CNAME)//': invalid value(s) in file for ' & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_lfi_L1',TRIM(TPFILE%CNAME)//': invalid value(s) in file for ' & //TRIM(TPFIELD%CMNHNAME)) END IF END IF @@ -479,10 +481,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_L1 +END SUBROUTINE IO_Field_read_lfi_L1 ! ! -SUBROUTINE IO_READ_FIELD_LFI_C0(TPFILE,TPFIELD,HFIELD,KRESP) +SUBROUTINE IO_Field_read_lfi_C0(TPFILE,TPFIELD,HFIELD,KRESP) ! USE MODD_PARAMETERS, ONLY: NFILENAMELGTMAXLFI ! @@ -504,7 +506,7 @@ INTEGER :: ILENG, ILENGMAX, JLOOP INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK LOGICAL :: GGOOD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_C0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_C0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = LEN(HFIELD) ILENGMAX = ILENG @@ -514,11 +516,11 @@ IF (TPFIELD%CMNHNAME=='MY_NAME' .OR. TPFIELD%CMNHNAME=='DAD_NAME') THEN ILENG = MIN(LEN(HFIELD),NFILENAMELGTMAXLFI) ILENGMAX = NFILENAMELGTMAXLFI IF (LEN(HFIELD)<NFILENAMELGTMAXLFI) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_FIELD_LFI_C0',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_read_lfi_C0',TRIM(TPFILE%CNAME)// & ': LEN(HFIELD)<NFILENAMELGTMAXLFI') END IF ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,ILENGMAX,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TPFIELD,ILENGMAX,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) THEN DO JLOOP=1,ILENG @@ -530,10 +532,10 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_READ_FIELD_LFI_C0 +END SUBROUTINE IO_Field_read_lfi_C0 ! ! -SUBROUTINE IO_READ_FIELD_LFI_T0(TPFILE,TPFIELD,TPDATA,KRESP) +SUBROUTINE IO_Field_read_lfi_T0(TPFILE,TPFIELD,TPDATA,KRESP) ! USE MODE_MSG USE MODD_TYPE_DATE @@ -557,7 +559,7 @@ TYPE(TFIELDDATA) :: TZFIELD INTEGER, DIMENSION(3) :: ITDATE ! date array REAL,DIMENSION(1) :: ZTIME ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_LFI_T0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_lfi_T0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) ! TZFIELD = TPFIELD ! @@ -568,7 +570,7 @@ TZFIELD%CCOMMENT = 'YYYYMMDD' ! ILENG=SIZE(ITDATE) ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TZFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TZFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) THEN TPDATA%TDATE%YEAR = IWORK(IWORK(2)+2+1) @@ -590,7 +592,7 @@ TZFIELD%CCOMMENT = 'SECONDS' ! ILENG=1 ! -CALL IO_READ_CHECK_FIELD_LFI(TPFILE,TZFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) +CALL IO_Field_read_check_lfi(TPFILE,TZFIELD,ILENG,IWORK,ITOTAL,IRESP,GGOOD) ! IF (GGOOD) THEN !TRANSFER_I8_R works with 1D arrays @@ -602,10 +604,10 @@ IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! KRESP = IRESP ! -END SUBROUTINE IO_READ_FIELD_LFI_T0 +END SUBROUTINE IO_Field_read_lfi_T0 ! ! -SUBROUTINE IO_READ_CHECK_FIELD_LFI(TPFILE,TPFIELD,KLENG,KWORK,KTOTAL,KRESP,OGOOD) +SUBROUTINE IO_Field_read_check_lfi(TPFILE,TPFIELD,KLENG,KWORK,KTOTAL,KRESP,OGOOD) ! USE MODD_PARAMETERS, ONLY: NGRIDUNKNOWN ! @@ -634,7 +636,7 @@ GOLDMNH = TPFILE%NMNHVERSION(1)<5 .OR. (TPFILE%NMNHVERSION(1)==5 .AND. TPFILE%NM ! YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_CHECK_FIELD_LFI','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_read_check_lfi','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) ! !* 2.a LET'S GET SOME INFORMATION ON THE DESIRED ARTICLE @@ -645,17 +647,17 @@ CALL LFINFO(KRESP,INUMBR,YRECFM,KTOTAL,IPOSEX) IF (KRESP.NE.0) THEN WRITE(YRESP, '( I12 )') KRESP YMSG = 'RESP='//TRIM(ADJUSTL(YRESP))//' in call to LFINFO when reading '//TRIM(TPFIELD%CMNHNAME)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_CHECK_FIELD_LFI',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_check_lfi',YMSG) OGOOD = .FALSE. RETURN ELSEIF (KTOTAL.EQ.0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_CHECK_FIELD_LFI',TRIM(TPFILE%CNAME)//': record length is zero for ' & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_read_check_lfi',TRIM(TPFILE%CNAME)//': record length is zero for ' & //TRIM(TPFIELD%CMNHNAME)) KRESP=-47 OGOOD = .FALSE. RETURN ELSEIF (KTOTAL.GT.JPXFIE) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_CHECK_FIELD_LFI',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_read_check_lfi',TRIM(TPFILE%CNAME)// & ': record length exceeds the maximum value in FM for '//TRIM(TPFIELD%CMNHNAME)) KRESP=-48 OGOOD = .FALSE. @@ -670,7 +672,7 @@ CALL LFILEC(KRESP,INUMBR,YRECFM,KWORK,KTOTAL) IF (KRESP.NE.0) THEN WRITE(YRESP, '( I12 )') KRESP YMSG = 'RESP='//TRIM(ADJUSTL(YRESP))//' in call to LFILEC when reading '//TRIM(TPFIELD%CMNHNAME)//' in '//TRIM(TPFILE%CNAME) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_CHECK_FIELD_LFI',YMSG) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_check_lfi',YMSG) OGOOD = .FALSE. RETURN ENDIF @@ -683,7 +685,7 @@ IROW=KLENG+ICOMLEN+2 IF (KTOTAL.NE.IROW) THEN WRITE(YRECLENGTH_FILE,'(I12)') KTOTAL-2-ICOMLEN WRITE(YRECLENGTH_MEM, '(I12)') KLENG - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_CHECK_FIELD_LFI','wrong field size for '//TRIM(TPFIELD%CMNHNAME) & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_check_lfi','wrong field size for '//TRIM(TPFIELD%CMNHNAME) & //' (expected: '//TRIM(ADJUSTL(YRECLENGTH_MEM))// & ', in file: ' //TRIM(ADJUSTL(YRECLENGTH_FILE))//')') KRESP=-63 @@ -701,21 +703,21 @@ IF (KWORK(1)/=TPFIELD%NGRID) THEN ELSE IERRLEVEL = NVERB_ERROR END IF - CALL PRINT_MSG(IERRLEVEL,'IO','IO_READ_CHECK_FIELD_LFI','expected GRID value ('//TRIM(ADJUSTL(YVAL_MEM))// & + CALL PRINT_MSG(IERRLEVEL,'IO','IO_Field_read_check_lfi','expected GRID value ('//TRIM(ADJUSTL(YVAL_MEM))// & ') is different than found in file ('//TRIM(ADJUSTL(YVAL_FILE))//') for variable '//TRIM(TPFIELD%CMNHNAME)) IF(.NOT.GOLDMNH) THEN !Do not modify probably incorrect grid number (to prevent problems later with other correct files) TPFIELD%NGRID = KWORK(1) KRESP = -111 !Used later to broadcast modified metadata END IF ELSE - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_LFI','expected GRID found in file for field ' & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_check_lfi','expected GRID found in file for field ' & //TRIM(TPFIELD%CMNHNAME)) ENDIF ! YCOMMENT='' SELECT CASE (ICOMLEN) CASE(:-1) - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_CHECK_FIELD_LFI',TRIM(TPFILE%CNAME)//': comment length is negative for ' & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_check_lfi',TRIM(TPFILE%CNAME)//': comment length is negative for ' & //TRIM(TPFIELD%CMNHNAME)) KRESP=-58 OGOOD = .FALSE. @@ -728,23 +730,23 @@ CASE(1:JPXKRK) YCOMMENT(J:J)=CHAR(ICOMMENT(J)) ENDDO CASE(JPXKRK+1:) - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_CHECK_FIELD_LFI',TRIM(TPFILE%CNAME)//': comment is too long in file for ' & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_read_check_lfi',TRIM(TPFILE%CNAME)//': comment is too long in file for ' & //TRIM(TPFIELD%CMNHNAME)) KRESP=-56 RETURN END SELECT ! IF (TRIM(YCOMMENT)/=TRIM(TPFIELD%CCOMMENT)) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_READ_CHECK_FIELD_LFI','expected COMMENT ('//TRIM(TPFIELD%CCOMMENT)// & + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_read_check_lfi','expected COMMENT ('//TRIM(TPFIELD%CCOMMENT)// & ') is different than found ('//TRIM(YCOMMENT)//') in file for field '//TRIM(TPFIELD%CMNHNAME)) TPFIELD%CCOMMENT=TRIM(YCOMMENT) KRESP = -111 !Used later to broadcast modified metadata ELSE - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_LFI','expected COMMENT found in file for field ' & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_check_lfi','expected COMMENT found in file for field ' & //TRIM(TPFIELD%CMNHNAME)) END IF ! -END SUBROUTINE IO_READ_CHECK_FIELD_LFI +END SUBROUTINE IO_Field_read_check_lfi ! ! FUNCTION TRANSFER_I8_R(KFIELDIN) RESULT(PFIELDOUT) diff --git a/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 index 9fb6870ad..2b760b114 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_read_nc4.f90 @@ -3,21 +3,22 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -! Modifications: -! P. Wautelet : may 2016 : use NetCDF Fortran module -! J.Escobar : 14/12/2017 : Correction for MNH_INT=8 -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet : 13/12/2018 : split of mode_netcdf into multiple modules/files -! Philippe Wautelet: 10/01/2019: replace handle_err by io_handle_err_nc4 for better netCDF error messages +! Modifications: +! P. Wautelet may 2016 : use NetCDF Fortran module +! J. Escobar 14/12/2017: correction for MNH_INT=8 +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 13/12/2018: split of mode_netcdf into multiple modules/files +! P. Wautelet 10/01/2019: replace handle_err by IO_Err_handle_nc4 for better netCDF error messages +! P. Wautelet 05/03/2019: rename IO subroutines and modules !----------------------------------------------------------------- #if defined(MNH_IOCDF4) module mode_io_read_nc4 -use modd_io_ll, only: tfiledata +use modd_io, only: tfiledata use modd_netcdf, only: IDCDF_KIND use mode_field, only: tfielddata -use mode_io_tools_nc4, only: cleanmnhname, io_handle_err_nc4 +use mode_io_tools_nc4, only: IO_Mnhname_clean, IO_Err_handle_nc4 use mode_msg use NETCDF, only: NF90_CHAR, NF90_DOUBLE, NF90_FLOAT, NF90_INT, NF90_INT1, NF90_INT64, & @@ -29,23 +30,23 @@ implicit none private -public :: io_read_field_nc4 +public :: IO_Field_read_nc4 -INTERFACE IO_READ_FIELD_NC4 - MODULE PROCEDURE IO_READ_FIELD_NC4_X0,IO_READ_FIELD_NC4_X1, & - IO_READ_FIELD_NC4_X2,IO_READ_FIELD_NC4_X3, & - IO_READ_FIELD_NC4_X4,IO_READ_FIELD_NC4_X5, & - IO_READ_FIELD_NC4_X6, & - IO_READ_FIELD_NC4_N0,IO_READ_FIELD_NC4_N1, & - IO_READ_FIELD_NC4_N2, & - IO_READ_FIELD_NC4_L0,IO_READ_FIELD_NC4_L1, & - IO_READ_FIELD_NC4_C0, & - IO_READ_FIELD_NC4_T0 -END INTERFACE IO_READ_FIELD_NC4 +INTERFACE IO_Field_read_nc4 + MODULE PROCEDURE IO_Field_read_nc4_X0,IO_Field_read_nc4_X1, & + IO_Field_read_nc4_X2,IO_Field_read_nc4_X3, & + IO_Field_read_nc4_X4,IO_Field_read_nc4_X5, & + IO_Field_read_nc4_X6, & + IO_Field_read_nc4_N0,IO_Field_read_nc4_N1, & + IO_Field_read_nc4_N2, & + IO_Field_read_nc4_L0,IO_Field_read_nc4_L1, & + IO_Field_read_nc4_C0, & + IO_Field_read_nc4_T0 +END INTERFACE IO_Field_read_nc4 contains -SUBROUTINE IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,KVARID,KRESP,HCALENDAR) +SUBROUTINE IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,KVARID,KRESP,HCALENDAR) ! USE MODD_PARAMETERS, ONLY: NGRIDUNKNOWN ! @@ -64,7 +65,7 @@ CHARACTER(LEN=12) :: YVAL_FILE, YVAL_MEM CHARACTER(LEN=:),ALLOCATABLE :: YVALUE LOGICAL :: GOLDMNH !if old version of MesoNH (<5.4, old files without complete and correct metadata) ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)//': called for field '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)//': called for field '//TRIM(TPFIELD%CMNHNAME)) ! KRESP = 0 INCID = TPFILE%NNCID @@ -85,7 +86,7 @@ IF (STATUS == NF90_NOERR) THEN IF (IGRID/=TPFIELD%NGRID) THEN WRITE(YVAL_FILE,'(I12)') IGRID WRITE(YVAL_MEM, '(I12)') TPFIELD%NGRID - CALL PRINT_MSG(IERRLEVEL,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(IERRLEVEL,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected GRID value ('//TRIM(ADJUSTL(YVAL_MEM))// & ') is different than found in file ('//TRIM(ADJUSTL(YVAL_FILE))//') for variable '//TRIM(TPFIELD%CMNHNAME)) IF (.NOT.GOLDMNH) THEN !Do not modify probably incorrect grid number (to prevent problems later with other correct files) @@ -93,15 +94,15 @@ IF (STATUS == NF90_NOERR) THEN KRESP = -111 !Used later to broadcast modified metadata END IF ELSE - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected GRID found in file for field '//TRIM(TPFIELD%CMNHNAME)) ENDIF ELSE !no GRID IF (TPFIELD%NGRID==0 .OR. TPFIELD%NGRID==NGRIDUNKNOWN) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': no GRID (as expected) in file for field '//TRIM(TPFIELD%CMNHNAME)) ELSE - CALL PRINT_MSG(IERRLEVEL,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(IERRLEVEL,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected GRID but not found in file for field '//TRIM(TPFIELD%CMNHNAME)) END IF ENDIF @@ -114,26 +115,26 @@ IF (STATUS == NF90_NOERR) THEN STATUS = NF90_GET_ATT(INCID, KVARID, 'comment', YVALUE) IF (LEN_TRIM(TPFIELD%CCOMMENT)==0 .AND. LEN_TRIM(YVALUE)>0) THEN !Expected comment is empty, read comment is not - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': COMMENT found (unexpected) in file for field '//TRIM(TPFIELD%CMNHNAME)) TPFIELD%CCOMMENT=TRIM(YVALUE) ELSE IF (TRIM(YVALUE)/=TRIM(TPFIELD%CCOMMENT)) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected COMMENT ('//TRIM(TPFIELD%CCOMMENT)// & ') is different than found ('//TRIM(YVALUE)//') in file for field '//TRIM(TPFIELD%CMNHNAME)) TPFIELD%CCOMMENT=TRIM(YVALUE) KRESP = -111 !Used later to broadcast modified metadata ELSE - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected COMMENT found in file for field '//TRIM(TPFIELD%CMNHNAME)) END IF DEALLOCATE(YVALUE) ELSE !no COMMENT IF (LEN_TRIM(TPFIELD%CCOMMENT)==0) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': no COMMENT (as expected) in file for field '//TRIM(TPFIELD%CMNHNAME)) ELSE - CALL PRINT_MSG(NVERB_INFO,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected COMMENT but not found in file for field '//TRIM(TPFIELD%CMNHNAME)) END IF END IF @@ -145,22 +146,22 @@ IF (STATUS == NF90_NOERR) THEN ALLOCATE(CHARACTER(LEN=ILEN) :: YVALUE) STATUS = NF90_GET_ATT(INCID, KVARID, 'standard_name', YVALUE) IF (TRIM(YVALUE)/=TRIM(TPFIELD%CSTDNAME)) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected STDNAME ('//TRIM(TPFIELD%CSTDNAME)// & ') is different than found ('//TRIM(YVALUE)//') in file for field '//TRIM(TPFIELD%CMNHNAME)) TPFIELD%CSTDNAME=TRIM(YVALUE) KRESP = -111 !Used later to broadcast modified metadata ELSE - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected STDNAME found in file for field '//TRIM(TPFIELD%CMNHNAME)) END IF DEALLOCATE(YVALUE) ELSE !no STDNAME IF (LEN_TRIM(TPFIELD%CSTDNAME)==0) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': no STDNAME (as expected) in file for field '//TRIM(TPFIELD%CMNHNAME)) ELSE - CALL PRINT_MSG(NVERB_INFO,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected STDNAME but not found in file for field '//TRIM(TPFIELD%CMNHNAME)) END IF END IF @@ -172,22 +173,22 @@ IF (STATUS == NF90_NOERR) THEN ALLOCATE(CHARACTER(LEN=ILEN) :: YVALUE) STATUS = NF90_GET_ATT(INCID, KVARID, 'long_name', YVALUE) IF (TRIM(YVALUE)/=TRIM(TPFIELD%CLONGNAME)) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected LONGNAME ('//TRIM(TPFIELD%CLONGNAME)// & ') is different than found ('//TRIM(YVALUE)//') in file for field '//TRIM(TPFIELD%CMNHNAME)) TPFIELD%CLONGNAME=TRIM(YVALUE) KRESP = -111 !Used later to broadcast modified metadata ELSE - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected LONGNAME found in file for field '//TRIM(TPFIELD%CMNHNAME)) END IF DEALLOCATE(YVALUE) ELSE !no LONGNAME IF (LEN_TRIM(TPFIELD%CLONGNAME)==0) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': no LONGNAME (as expected) in file for field '//TRIM(TPFIELD%CMNHNAME)) ELSE - CALL PRINT_MSG(NVERB_INFO,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected LONGNAME but not found in file for field '//TRIM(TPFIELD%CMNHNAME)) END IF END IF @@ -200,30 +201,30 @@ IF (STATUS == NF90_NOERR) THEN STATUS = NF90_GET_ATT(INCID, KVARID, 'units', YVALUE) IF (TRIM(YVALUE)/=TRIM(TPFIELD%CUNITS)) THEN IF(.NOT.PRESENT(HCALENDAR)) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected UNITS ('//TRIM(TPFIELD%CUNITS)// & ') is different than found ('//TRIM(YVALUE)//') in file for field '//TRIM(TPFIELD%CMNHNAME)) KRESP = -111 !Used later to broadcast modified metadata ELSE - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': UNITS found in file for field '//TRIM(TPFIELD%CMNHNAME)//' (will be analysed later)') END IF TPFIELD%CUNITS=TRIM(YVALUE) ELSE - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected UNITS found in file for field '//TRIM(TPFIELD%CMNHNAME)) END IF DEALLOCATE(YVALUE) ELSE !no UNITS IF (LEN_TRIM(TPFIELD%CUNITS)==0) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': no UNITS (as expected) in file for field '//TRIM(TPFIELD%CMNHNAME)) ELSE IF(.NOT.PRESENT(HCALENDAR)) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected UNITS but not found in file for field '//TRIM(TPFIELD%CMNHNAME)) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected UNITS but not found in file for field '//TRIM(TPFIELD%CMNHNAME)) KRESP = -3 END IF @@ -238,24 +239,24 @@ IF (STATUS == NF90_NOERR) THEN ALLOCATE(CHARACTER(LEN=ILEN) :: YVALUE) STATUS = NF90_GET_ATT(INCID, KVARID, 'calendar', YVALUE) IF (TRIM(YVALUE)/=TRIM(HCALENDAR)) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected CALENDAR ('//TRIM(HCALENDAR)// & ') is different than found ('//TRIM(YVALUE)//') in file for field '//TRIM(TPFIELD%CMNHNAME)) ELSE - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected CALENDAR found in file for field '//TRIM(TPFIELD%CMNHNAME)) END IF DEALLOCATE(YVALUE) ELSE !no CALENDAR - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_READ_CHECK_FIELD_ATTR_NC4',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_attr_read_check_nc4',TRIM(TPFILE%CNAME)// & ': expected CALENDAR but not found in file for field '//TRIM(TPFIELD%CMNHNAME)) END IF ENDIF ! -END SUBROUTINE IO_READ_CHECK_FIELD_ATTR_NC4 +END SUBROUTINE IO_Field_attr_read_check_nc4 -SUBROUTINE IO_READ_FIELD_NC4_X0(TPFILE, TPFIELD, PFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_X0(TPFILE, TPFIELD, PFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD REAL, INTENT(OUT) :: PFIELD @@ -269,22 +270,22 @@ INTEGER(KIND=IDCDF_KIND) :: IDIMS ! number of dimensions CHARACTER(LEN=30) :: YVARNAME INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_X0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X0','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X0','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X0','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X0','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -293,13 +294,13 @@ IF (IDIMS == 0 .AND. (ITYPE == NF90_FLOAT .OR. ITYPE == NF90_DOUBLE) ) THEN ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, PFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X0','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X0','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size or type)') IRESP = -3 END IF @@ -307,10 +308,10 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_X0 +END SUBROUTINE IO_Field_read_nc4_X0 -SUBROUTINE IO_READ_FIELD_NC4_X1(TPFILE, TPFIELD, PFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_X1(TPFILE, TPFIELD, PFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD REAL,DIMENSION(:),INTENT(OUT) :: PFIELD @@ -326,22 +327,22 @@ CHARACTER(LEN=30) :: YVARNAME INTEGER(KIND=IDCDF_KIND) :: IDIMLEN INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_X1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X1','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X1','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X1','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X1','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -349,24 +350,24 @@ IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 IF (IDIMS == 1 .AND. (ITYPE == NF90_FLOAT .OR. ITYPE == NF90_DOUBLE) ) THEN ! Check size of variable before reading STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(1), LEN=IDIMLEN) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X1','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X1','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) IF (IDIMLEN == SIZE(PFIELD)) THEN ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, PFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X1','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X1','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size)') IRESP = -3 END IF ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong number of dimensions or wrong type)') IRESP = -3 END IF @@ -374,10 +375,10 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_X1 +END SUBROUTINE IO_Field_read_nc4_X1 -SUBROUTINE IO_READ_FIELD_NC4_X2(TPFILE, TPFIELD, PFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_X2(TPFILE, TPFIELD, PFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD REAL,DIMENSION(:,:),INTENT(OUT) :: PFIELD @@ -393,22 +394,22 @@ CHARACTER(LEN=30) :: YVARNAME INTEGER(KIND=IDCDF_KIND),DIMENSION(3) :: IDIMLEN INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_X2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X2','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X2','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X2','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X2','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -416,39 +417,39 @@ IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 !Treat special case of a degenerated 3D array (3rd dimension size is 1) IF (IDIMS==3) THEN STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(3), LEN=IDIMLEN(3)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) IF (IDIMLEN(3)==1) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_READ_FIELD_NC4_X2',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_read_nc4_X2',TRIM(TPFILE%CNAME)// & ': reading 3D array with degenerated third dimension in 2D array for '//TRIM(YVARNAME)) IDIMS = 2 ELSE - CALL PRINT_MSG(NVERB_FATAL,'IO','IO_READ_FIELD_NC4_X2',TRIM(TPFILE%CNAME)//': wrong number of dimensions for '//TRIM(YVARNAME)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Field_read_nc4_X2',TRIM(TPFILE%CNAME)//': wrong number of dimensions for '//TRIM(YVARNAME)) END IF END IF IF (IDIMS == 2 .AND. (ITYPE == NF90_FLOAT .OR. ITYPE == NF90_DOUBLE) ) THEN ! Check size of variable before reading STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(1), LEN=IDIMLEN(1)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(2), LEN=IDIMLEN(2)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) IF (IDIMLEN(1) == SIZE(PFIELD,1) .AND. IDIMLEN(2) == SIZE(PFIELD,2)) THEN ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, PFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X2','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X2','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X2',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X2',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size)') IRESP = -3 END IF ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X2',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X2',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong number of dimensions or wrong type)') IRESP = -3 END IF @@ -456,10 +457,10 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_X2 +END SUBROUTINE IO_Field_read_nc4_X2 -SUBROUTINE IO_READ_FIELD_NC4_X3(TPFILE, TPFIELD, PFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_X3(TPFILE, TPFIELD, PFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD REAL,DIMENSION(:,:,:),INTENT(OUT) :: PFIELD @@ -475,22 +476,22 @@ INTEGER(KIND=IDCDF_KIND),DIMENSION(3) :: IDIMLEN CHARACTER(LEN=30) :: YVARNAME INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X3',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_X3',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X3','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X3','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X3','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X3','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -498,28 +499,28 @@ IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 IF (IDIMS == 3 .AND. (ITYPE == NF90_FLOAT .OR. ITYPE == NF90_DOUBLE) ) THEN ! Check size of variable before reading STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(1), LEN=IDIMLEN(1)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X3','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X3','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(2), LEN=IDIMLEN(2)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X3','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X3','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(3), LEN=IDIMLEN(3)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X3','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X3','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) IF (IDIMLEN(1) == SIZE(PFIELD,1) .AND. IDIMLEN(2) == SIZE(PFIELD,2) .AND. IDIMLEN(3) == SIZE(PFIELD,3)) THEN ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, PFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X3','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X3','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X3',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X3',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size)') IRESP = -3 END IF ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X3',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X3',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong number of dimensions or wrong type)') IRESP = -3 END IF @@ -527,10 +528,10 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_X3 +END SUBROUTINE IO_Field_read_nc4_X3 -SUBROUTINE IO_READ_FIELD_NC4_X4(TPFILE, TPFIELD, PFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_X4(TPFILE, TPFIELD, PFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD REAL,DIMENSION(:,:,:,:),INTENT(OUT) :: PFIELD @@ -546,22 +547,22 @@ INTEGER(KIND=IDCDF_KIND),DIMENSION(4) :: IDIMLEN CHARACTER(LEN=30) :: YVARNAME INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X4',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_X4',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X4','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X4','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X4','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X4','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -569,31 +570,31 @@ IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 IF (IDIMS == 4 .AND. (ITYPE == NF90_FLOAT .OR. ITYPE == NF90_DOUBLE) ) THEN ! Check size of variable before reading STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(1), LEN=IDIMLEN(1)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X4','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X4','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(2), LEN=IDIMLEN(2)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X4','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X4','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(3), LEN=IDIMLEN(3)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X4','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X4','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(4), LEN=IDIMLEN(4)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X4','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X4','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) IF ( IDIMLEN(1) == SIZE(PFIELD,1) .AND. IDIMLEN(2) == SIZE(PFIELD,2) .AND. & IDIMLEN(3) == SIZE(PFIELD,3) .AND. IDIMLEN(4) == SIZE(PFIELD,4)) THEN ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, PFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X4','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X4','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X4',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X4',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size)') IRESP = -3 END IF ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X4',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X4',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong number of dimensions or wrong type)') IRESP = -3 END IF @@ -601,10 +602,10 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_X4 +END SUBROUTINE IO_Field_read_nc4_X4 -SUBROUTINE IO_READ_FIELD_NC4_X5(TPFILE, TPFIELD, PFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_X5(TPFILE, TPFIELD, PFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD REAL,DIMENSION(:,:,:,:,:),INTENT(OUT) :: PFIELD @@ -620,22 +621,22 @@ INTEGER(KIND=IDCDF_KIND),DIMENSION(5) :: IDIMLEN CHARACTER(LEN=30) :: YVARNAME INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X5',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_X5',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X5','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X5','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X5','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X5','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -643,15 +644,15 @@ IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 IF (IDIMS == 5 .AND. (ITYPE == NF90_FLOAT .OR. ITYPE == NF90_DOUBLE) ) THEN ! Check size of variable before reading STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(1), LEN=IDIMLEN(1)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X5','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X5','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(2), LEN=IDIMLEN(2)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X5','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X5','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(3), LEN=IDIMLEN(3)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X5','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X5','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(4), LEN=IDIMLEN(4)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X5','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X5','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(5), LEN=IDIMLEN(5)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X5','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X5','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) IF ( IDIMLEN(1) == SIZE(PFIELD,1) .AND. IDIMLEN(2) == SIZE(PFIELD,2) .AND. & IDIMLEN(3) == SIZE(PFIELD,3) .AND. IDIMLEN(4) == SIZE(PFIELD,4) .AND. & @@ -659,18 +660,18 @@ IF (IDIMS == 5 .AND. (ITYPE == NF90_FLOAT .OR. ITYPE == NF90_DOUBLE) ) THEN ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, PFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X5','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X5','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X5',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X5',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size)') IRESP = -3 END IF ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X5',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X5',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong number of dimensions or wrong type)') IRESP = -3 END IF @@ -678,10 +679,10 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_X5 +END SUBROUTINE IO_Field_read_nc4_X5 -SUBROUTINE IO_READ_FIELD_NC4_X6(TPFILE, TPFIELD, PFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_X6(TPFILE, TPFIELD, PFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD REAL,DIMENSION(:,:,:,:,:,:),INTENT(OUT) :: PFIELD @@ -697,22 +698,22 @@ INTEGER(KIND=IDCDF_KIND),DIMENSION(6) :: IDIMLEN CHARACTER(LEN=30) :: YVARNAME INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_X6',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_X6',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X6','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X6','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X6','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X6','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -720,17 +721,17 @@ IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 IF (IDIMS == 6 .AND. (ITYPE == NF90_FLOAT .OR. ITYPE == NF90_DOUBLE) ) THEN ! Check size of variable before reading STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(1), LEN=IDIMLEN(1)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(2), LEN=IDIMLEN(2)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(3), LEN=IDIMLEN(3)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(4), LEN=IDIMLEN(4)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(5), LEN=IDIMLEN(5)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(6), LEN=IDIMLEN(6)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X6','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) IF ( IDIMLEN(1) == SIZE(PFIELD,1) .AND. IDIMLEN(2) == SIZE(PFIELD,2) .AND. & IDIMLEN(3) == SIZE(PFIELD,3) .AND. IDIMLEN(4) == SIZE(PFIELD,4) .AND. & @@ -738,18 +739,18 @@ IF (IDIMS == 6 .AND. (ITYPE == NF90_FLOAT .OR. ITYPE == NF90_DOUBLE) ) THEN ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, PFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_X6','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_X6','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X6',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X6',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size)') IRESP = -3 END IF ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_X6',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_X6',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong number of dimensions or wrong type)') IRESP = -3 END IF @@ -757,10 +758,10 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_X6 +END SUBROUTINE IO_Field_read_nc4_X6 -SUBROUTINE IO_READ_FIELD_NC4_N0(TPFILE, TPFIELD, KFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_N0(TPFILE, TPFIELD, KFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD INTEGER, INTENT(OUT) :: KFIELD @@ -774,22 +775,22 @@ INTEGER(KIND=IDCDF_KIND) :: IDIMS ! number of dimensions CHARACTER(LEN=30) :: YVARNAME INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_N0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_N0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N0','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N0','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N0','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N0','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -799,13 +800,13 @@ IF (IDIMS == 0 .AND. (ITYPE == NF90_INT .OR. ITYPE == NF90_INT64) ) THEN ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, KFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N0','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N0','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_N0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_N0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size or type)') IRESP = -3 END IF @@ -813,10 +814,10 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_N0 +END SUBROUTINE IO_Field_read_nc4_N0 -SUBROUTINE IO_READ_FIELD_NC4_N1(TPFILE, TPFIELD, KFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_N1(TPFILE, TPFIELD, KFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD INTEGER, DIMENSION(:), INTENT(OUT) :: KFIELD @@ -832,22 +833,22 @@ CHARACTER(LEN=30) :: YVARNAME INTEGER(KIND=IDCDF_KIND) :: IDIMLEN INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_N1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_N1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N1','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N1','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N1','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N1','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -856,24 +857,24 @@ IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 IF (IDIMS == 1 .AND. (ITYPE == NF90_INT .OR. ITYPE == NF90_INT64 .OR. ITYPE == NF90_INT1) ) THEN ! Check size of variable before reading STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(1), LEN=IDIMLEN) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N1','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N1','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) IF (IDIMLEN == SIZE(KFIELD)) THEN ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, KFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N1','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N1','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_N1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_N1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size)') IRESP = -3 END IF ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_N1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_N1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong number of dimensions or wrong type)') IRESP = -3 END IF @@ -881,10 +882,10 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_N1 +END SUBROUTINE IO_Field_read_nc4_N1 -SUBROUTINE IO_READ_FIELD_NC4_N2(TPFILE, TPFIELD, KFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_N2(TPFILE, TPFIELD, KFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD INTEGER, DIMENSION(:,:), INTENT(OUT) :: KFIELD @@ -900,22 +901,22 @@ CHARACTER(LEN=30) :: YVARNAME INTEGER(KIND=IDCDF_KIND),DIMENSION(3) :: IDIMLEN INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_N2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_N2',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N2','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N2','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N2','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N2','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -923,13 +924,13 @@ IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 !Treat special case of a degenerated 3D array (3rd dimension size is 1) IF (IDIMS==3) THEN STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(3), LEN=IDIMLEN(3)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) IF (IDIMLEN(3)==1) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_READ_FIELD_NC4_N2',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Field_read_nc4_N2',TRIM(TPFILE%CNAME)// & ': reading 3D array with degenerated third dimension in 2D array for '//TRIM(YVARNAME)) IDIMS = 2 ELSE - CALL PRINT_MSG(NVERB_FATAL,'IO','IO_READ_FIELD_NC4_N2',TRIM(TPFILE%CNAME)//': wrong number of dimensions for '//TRIM(YVARNAME)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Field_read_nc4_N2',TRIM(TPFILE%CNAME)//': wrong number of dimensions for '//TRIM(YVARNAME)) END IF END IF @@ -937,26 +938,26 @@ END IF IF (IDIMS == SIZE(SHAPE(KFIELD)) .AND. (ITYPE == NF90_INT .OR. ITYPE == NF90_INT64 .OR. ITYPE == NF90_INT1) ) THEN ! Check size of variable before reading STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(1), LEN=IDIMLEN(1)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(2), LEN=IDIMLEN(2)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N2','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) IF (IDIMLEN(1) == SIZE(KFIELD,1) .AND. IDIMLEN(2) == SIZE(KFIELD,2)) THEN ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, KFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_N2','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_N2','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_N2',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_N2',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size)') IRESP = -3 END IF ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_N2',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_N2',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong number of dimensions or wrong type)') IRESP = -3 END IF @@ -964,9 +965,9 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_N2 +END SUBROUTINE IO_Field_read_nc4_N2 -SUBROUTINE IO_READ_FIELD_NC4_L0(TPFILE, TPFIELD, OFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_L0(TPFILE, TPFIELD, OFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD LOGICAL, INTENT(OUT) :: OFIELD @@ -981,22 +982,22 @@ CHARACTER(LEN=30) :: YVARNAME INTEGER :: IRESP INTEGER :: IFIELD -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_L0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_L0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_L0','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_L0','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_L0','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_L0','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -1007,7 +1008,7 @@ IF (IDIMS == 0 .AND. (ITYPE == NF90_INT1 .OR. ITYPE == NF90_INT .OR. ITYPE == NF ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, IFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_L0','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_L0','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF @@ -1016,16 +1017,16 @@ IF (IDIMS == 0 .AND. (ITYPE == NF90_INT1 .OR. ITYPE == NF90_INT .OR. ITYPE == NF ELSE IF (IFIELD==1) THEN OFIELD = .TRUE. ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_LFI_L0',TRIM(TPFILE%CNAME)//': invalid value in file for ' & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_L0',TRIM(TPFILE%CNAME)//': invalid value in file for ' & //TRIM(TPFIELD%CMNHNAME)) OFIELD = .TRUE. IRESP = -112 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_L0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_L0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size or type)') IRESP = -3 END IF @@ -1033,10 +1034,10 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_L0 +END SUBROUTINE IO_Field_read_nc4_L0 -SUBROUTINE IO_READ_FIELD_NC4_L1(TPFILE, TPFIELD, OFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_L1(TPFILE, TPFIELD, OFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD LOGICAL,DIMENSION(:),INTENT(OUT) :: OFIELD @@ -1054,22 +1055,22 @@ INTEGER :: IRESP INTEGER :: JI INTEGER,DIMENSION(SIZE(OFIELD)) :: IFIELD -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_L1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_L1',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_L1','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_L1','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_L1','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_L1','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) !Neglect the time dimension (of size 1) IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 @@ -1079,13 +1080,13 @@ IF (TPFIELD%LTIMEDEP) IDIMS=IDIMS-1 IF (IDIMS == 1 .AND. (ITYPE == NF90_INT1 .OR. ITYPE == NF90_INT .OR. ITYPE == NF90_INT64) ) THEN ! Check size of variable before reading STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(1), LEN=IDIMLEN) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_L1','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_L1','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) IF (IDIMLEN == SIZE(OFIELD)) THEN ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, IFIELD) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_L1','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_L1','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF @@ -1100,19 +1101,19 @@ IF (IDIMS == 1 .AND. (ITYPE == NF90_INT1 .OR. ITYPE == NF90_INT .OR. ITYPE == NF END IF END DO IF (IRESP==-112) THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_LFI_L1',TRIM(TPFILE%CNAME)//': invalid value(s) in file for ' & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_L1',TRIM(TPFILE%CNAME)//': invalid value(s) in file for ' & //TRIM(TPFIELD%CMNHNAME)) END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_L1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_L1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size)') IRESP = -3 END IF ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_L1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_L1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong number of dimensions or wrong type)') IRESP = -3 END IF @@ -1120,10 +1121,10 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_L1 +END SUBROUTINE IO_Field_read_nc4_L1 -SUBROUTINE IO_READ_FIELD_NC4_C0(TPFILE, TPFIELD, HFIELD, KRESP) +SUBROUTINE IO_Field_read_nc4_C0(TPFILE, TPFIELD, HFIELD, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(INOUT) :: TPFIELD CHARACTER(LEN=*), INTENT(OUT) :: HFIELD @@ -1140,44 +1141,44 @@ CHARACTER(LEN=:),ALLOCATABLE :: YSTR INTEGER(KIND=IDCDF_KIND) :: IDIMLEN INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_C0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_C0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_C0','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_C0','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS, DIMIDS=IVDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_C0','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_C0','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) IF (IDIMS == 1 .AND. (ITYPE == NF90_CHAR) ) THEN ! Check size of variable before reading STATUS = NF90_INQUIRE_DIMENSION(INCID, IVDIMS(1), LEN=IDIMLEN) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_C0','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_C0','NF90_INQUIRE_DIMENSION',TRIM(YVARNAME)) ! ALLOCATE(CHARACTER(LEN=IDIMLEN)::YSTR) ! Read variable STATUS = NF90_GET_VAR(INCID, IVARID, YSTR) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_C0','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_C0','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF IF (LEN_TRIM(YSTR) > LEN(HFIELD)) & - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_C0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' truncated') + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_C0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' truncated') HFIELD = TRIM(YSTR) DEALLOCATE(YSTR) ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP) + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_C0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_C0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size or type)') IRESP = -3 END IF @@ -1185,9 +1186,9 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_C0 +END SUBROUTINE IO_Field_read_nc4_C0 -SUBROUTINE IO_READ_FIELD_NC4_T0(TPFILE, TPFIELD, TPDATA, KRESP) +SUBROUTINE IO_Field_read_nc4_T0(TPFILE, TPFIELD, TPDATA, KRESP) ! USE MODD_TYPE_DATE ! @@ -1208,32 +1209,32 @@ CHARACTER(LEN=:),ALLOCATABLE :: YSTR INTEGER(KIND=IDCDF_KIND) :: IDIMLEN INTEGER :: IDX,IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_READ_FIELD_NC4_T0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_read_nc4_T0',TRIM(TPFILE%CNAME)//': reading '//TRIM(TPFIELD%CMNHNAME)) IRESP = 0 ! Get the Netcdf file ID INCID = TPFILE%NNCID -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! Get variable ID, NDIMS and TYPE STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_T0','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_T0','NF90_INQ_VARID',TRIM(YVARNAME),IRESP) GOTO 1000 END IF STATUS = NF90_INQUIRE_VARIABLE(INCID, IVARID, XTYPE=ITYPE, NDIMS=IDIMS) -IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_T0','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) +IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_T0','NF90_INQUIRE_VARIABLE',TRIM(YVARNAME)) IF (IDIMS == 0 .AND. (ITYPE == NF90_FLOAT .OR. ITYPE == NF90_DOUBLE) ) THEN ! Read time STATUS = NF90_GET_VAR(INCID, IVARID, TPDATA%TIME) IF (STATUS /= NF90_NOERR) THEN - CALL IO_HANDLE_ERR_NC4(status,'IO_READ_FIELD_NC4_T0','NF90_GET_VAR',TRIM(YVARNAME),IRESP) + CALL IO_Err_handle_nc4(status,'IO_Field_read_nc4_T0','NF90_GET_VAR',TRIM(YVARNAME),IRESP) GOTO 1000 END IF ! Read and check attributes of variable - CALL IO_READ_CHECK_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,IRESP,HCALENDAR='standard') + CALL IO_Field_attr_read_check_nc4(TPFILE,TPFIELD,IVARID,IRESP,HCALENDAR='standard') ! Extract date from UNITS IDX = INDEX(TPFIELD%CUNITS,'since ') READ(TPFIELD%CUNITS(IDX+6 :IDX+9), '( I4.4 )') TPDATA%TDATE%YEAR @@ -1241,14 +1242,14 @@ IF (IDIMS == 0 .AND. (ITYPE == NF90_FLOAT .OR. ITYPE == NF90_DOUBLE) ) THEN READ(TPFIELD%CUNITS(IDX+14:IDX+15),'( I2.2 )') TPDATA%TDATE%DAY ! Simple check (should catch most errors) IF ( TPDATA%TDATE%DAY<1 .OR. TPDATA%TDATE%DAY>31 .OR. TPDATA%TDATE%MONTH<1 .OR. TPDATA%TDATE%MONTH>12 ) THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_T0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_T0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' read date is invalid') IRESP = -3 END IF ! Correct date and time (necessary for example if time is bigger than 86400 s) CALL DATETIME_CORRECTDATE(TPDATA) ELSE - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_READ_FIELD_NC4_T0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4_T0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)// & ' not read (wrong size or type)') IRESP = -3 END IF @@ -1256,7 +1257,7 @@ END IF 1000 CONTINUE KRESP = IRESP -END SUBROUTINE IO_READ_FIELD_NC4_T0 +END SUBROUTINE IO_Field_read_nc4_T0 end module mode_io_read_nc4 @@ -1264,10 +1265,10 @@ end module mode_io_read_nc4 ! ! External dummy subroutines ! -subroutine io_read_field_nc4(a, b, c, d, e, f, g) +subroutine IO_Field_read_nc4(a, b, c, d, e, f, g) use mode_msg integer :: a, b, c, d, e, f, g -CALL PRINT_MSG(NVERB_ERROR,'IO','io_read_field_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine io_read_field_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_read_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_Field_read_nc4 ! #endif diff --git a/src/LIB/SURCOUCHE/src/mode_io_tools.f90 b/src/LIB/SURCOUCHE/src/mode_io_tools.f90 index 9e8dd1fc8..8b666ab46 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_tools.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_tools.f90 @@ -1,69 +1,70 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -! Modifications: -! P. Wautelet : 13/12/2018 : extracted from mode_io.f90 -! P. Wautelet : 14/12/2018 : added io_construct_filename +! Modifications: +! P. Wautelet 13/12/2018: extracted from mode_io.f90 +! P. Wautelet 14/12/2018: added IO_Filename_construct +! P. Wautelet 05/03/2019: rename IO subroutines and modules !----------------------------------------------------------------- module mode_io_tools -use modd_io_ll, only: tfiledata +use modd_io, only: tfiledata implicit none private -public :: io_file, io_rank, io_construct_filename +public :: IO_Level2filenumber_get, IO_Rank_master_get, IO_Filename_construct contains - FUNCTION io_file(k,nb_proc_io) - ! - ! return the file number where to write the K level of data - ! - IMPLICIT NONE - INTEGER(kind=MNH_MPI_RANK_KIND) :: k,nb_proc_io - INTEGER(kind=MNH_MPI_RANK_KIND) :: io_file +FUNCTION IO_Level2filenumber_get(k,nb_proc_io) + ! + ! return the file number where to write the K level of data + ! + IMPLICIT NONE + INTEGER(kind=MNH_MPI_RANK_KIND) :: k,nb_proc_io + INTEGER(kind=MNH_MPI_RANK_KIND) :: IO_Level2filenumber_get - io_file = MOD ((k-1) , nb_proc_io ) + IO_Level2filenumber_get = MOD ((k-1) , nb_proc_io ) - END FUNCTION io_file +END FUNCTION IO_Level2filenumber_get - FUNCTION IO_RANK(IFILE,nb_proc,nb_proc_io,offset_rank) - ! - ! return the proc number which must write the 'IFILE' file - ! - IMPLICIT NONE - INTEGER(kind=MNH_MPI_RANK_KIND) :: IFILE,nb_proc,nb_proc_io - INTEGER(kind=MNH_MPI_RANK_KIND),OPTIONAL :: offset_rank +FUNCTION IO_Rank_master_get(IFILE,nb_proc,nb_proc_io,offset_rank) + ! + ! return the proc number which must write the 'IFILE' file + ! + IMPLICIT NONE + INTEGER(kind=MNH_MPI_RANK_KIND) :: IFILE,nb_proc,nb_proc_io + INTEGER(kind=MNH_MPI_RANK_KIND),OPTIONAL :: offset_rank - INTEGER(kind=MNH_MPI_RANK_KIND) :: IO_RANK + INTEGER(kind=MNH_MPI_RANK_KIND) :: IO_Rank_master_get - INTEGER(kind=MNH_MPI_RANK_KIND) :: ipas,irest + INTEGER(kind=MNH_MPI_RANK_KIND) :: ipas,irest - ipas = nb_proc / nb_proc_io - irest = MOD ( nb_proc , nb_proc_io ) + ipas = nb_proc / nb_proc_io + irest = MOD ( nb_proc , nb_proc_io ) - IF (ipas /= 0 ) THEN - IO_RANK=ipas * IFILE + MIN(IFILE , irest ) - ELSE - IO_RANK=MOD(IFILE , nb_proc ) - ENDIF + IF (ipas /= 0 ) THEN + IO_Rank_master_get=ipas * IFILE + MIN(IFILE , irest ) + ELSE + IO_Rank_master_get=MOD(IFILE , nb_proc ) + ENDIF - ! - ! optional rank to shift for read test - ! - IF (PRESENT(offset_rank)) THEN - IF ( offset_rank .GT.0 ) IO_RANK=MOD(IO_RANK+offset_rank,nb_proc) - IF ( offset_rank .LT.0 ) IO_RANK=MOD(nb_proc-IO_RANK+offset_rank,nb_proc) - ENDIF + ! + ! optional rank to shift for read test + ! + IF (PRESENT(offset_rank)) THEN + IF ( offset_rank .GT.0 ) IO_Rank_master_get=MOD(IO_Rank_master_get+offset_rank,nb_proc) + IF ( offset_rank .LT.0 ) IO_Rank_master_get=MOD(nb_proc-IO_Rank_master_get+offset_rank,nb_proc) + ENDIF - END FUNCTION IO_RANK +END FUNCTION IO_Rank_master_get -subroutine io_construct_filename(tpfile,hfilem) +subroutine IO_Filename_construct(tpfile,hfilem) type(tfiledata), intent(inout) :: tpfile character(len=:), allocatable, intent(out) :: hfilem @@ -77,8 +78,7 @@ subroutine io_construct_filename(tpfile,hfilem) hfilem = trim(tpfile%cname) end if -end subroutine io_construct_filename - +end subroutine IO_Filename_construct end module mode_io_tools @@ -86,7 +86,7 @@ end module mode_io_tools module mode_io_tools_mnhversion -use modd_io_ll, only: tfiledata +use modd_io, only: tfiledata use mode_msg @@ -94,109 +94,107 @@ implicit none private -public :: io_get_mnhversion, io_set_mnhversion +public :: IO_Mnhversion_get, IO_Mnhversion_set contains - subroutine io_get_mnhversion(tpfile) - !Compare MNHVERSION of file with current version and store it in file metadata - use modd_conf, only: nmnhversion - use modd_io_ll, only: tfiledata - use mode_field, only: tfielddata,typeint - use mode_fmread, only: io_read_field - - type(tfiledata), intent(inout) :: tpfile - - character(len=12) :: ymnhversion_file,ymnhversion_curr - integer :: imasdev,ibugfix - integer :: iresp - integer,dimension(3) :: imnhversion - type(tfielddata) :: tzfield - - call print_msg(NVERB_DEBUG,'IO','io_get_mnhversion','called for '//trim(tpfile%cname)) - - if ( trim(tpfile%cmode) /= 'READ' ) & - call print_msg(NVERB_FATAL,'IO','io_get_mnhversion',trim(tpfile%cname)// 'not opened in read mode') - - imnhversion(:) = 0 - !use tzfield because tfieldlist could be not initialised - tzfield%cmnhname = 'MNHVERSION' - tzfield%cstdname = '' - tzfield%clongname = 'MesoNH version' - tzfield%cunits = '' - tzfield%cdir = '--' - tzfield%ccomment = '' - tzfield%ngrid = 0 - tzfield%ntype = TYPEINT - tzfield%ndims = 1 - tzfield%ltimedep = .false. - call io_read_field(tpfile,tzfield,imnhversion,iresp) +subroutine IO_Mnhversion_get(tpfile) +!Compare MNHVERSION of file with current version and store it in file metadata + use modd_conf, only: nmnhversion + use mode_field, only: tfielddata,typeint + use mode_io_field_read, only: IO_Field_read + + type(tfiledata), intent(inout) :: tpfile + + character(len=12) :: ymnhversion_file,ymnhversion_curr + integer :: imasdev,ibugfix + integer :: iresp + integer,dimension(3) :: imnhversion + type(tfielddata) :: tzfield + + call print_msg(NVERB_DEBUG,'IO','IO_Mnhversion_get','called for '//trim(tpfile%cname)) + + if ( trim(tpfile%cmode) /= 'READ' ) & + call print_msg(NVERB_FATAL,'IO','IO_Mnhversion_get',trim(tpfile%cname)// 'not opened in read mode') + + imnhversion(:) = 0 + !use tzfield because tfieldlist could be not initialised + tzfield%cmnhname = 'MNHVERSION' + tzfield%cstdname = '' + tzfield%clongname = 'MesoNH version' + tzfield%cunits = '' + tzfield%cdir = '--' + tzfield%ccomment = '' + tzfield%ngrid = 0 + tzfield%ntype = TYPEINT + tzfield%ndims = 1 + tzfield%ltimedep = .false. + call IO_Field_read(tpfile,tzfield,imnhversion,iresp) + if (iresp/=0) then + tzfield%cmnhname = 'MASDEV' + tzfield%clongname = 'MesoNH version (without bugfix)' + tzfield%ndims = 0 + call IO_Field_read(tpfile,tzfield,imasdev,iresp) if (iresp/=0) then - tzfield%cmnhname = 'MASDEV' - tzfield%clongname = 'MesoNH version (without bugfix)' - tzfield%ndims = 0 - call io_read_field(tpfile,tzfield,imasdev,iresp) - if (iresp/=0) then - call print_msg(NVERB_WARNING,'IO','io_get_mnhversion','unknown MASDEV version for '//trim(tpfile%cname)) - else - if (imasdev<100) then - imnhversion(1)=imasdev/10 - imnhversion(2)=mod(imasdev,10) - else !for example for mnh 4.10 - imnhversion(1)=imasdev/100 - imnhversion(2)=mod(imasdev,100) - end if - end if - ! - tzfield%cmnhname = 'BUGFIX' - tzfield%clongname = 'MesoNH bugfix number' - call io_read_field(tpfile,tzfield,ibugfix,iresp) - if (iresp/=0) then - call print_msg(NVERB_WARNING,'IO','io_get_mnhversion','unknown BUGFIX version for '//trim(tpfile%cname)) - else - imnhversion(3)=ibugfix + call print_msg(NVERB_WARNING,'IO','IO_Mnhversion_get','unknown MASDEV version for '//trim(tpfile%cname)) + else + if (imasdev<100) then + imnhversion(1)=imasdev/10 + imnhversion(2)=mod(imasdev,10) + else !for example for mnh 4.10 + imnhversion(1)=imasdev/100 + imnhversion(2)=mod(imasdev,100) end if end if ! - write(ymnhversion_file,"( I0,'.',I0,'.',I0 )" ) imnhversion(1),imnhversion(2),imnhversion(3) - write(ymnhversion_curr,"( I0,'.',I0,'.',I0 )" ) nmnhversion(1),nmnhversion(2),nmnhversion(3) + tzfield%cmnhname = 'BUGFIX' + tzfield%clongname = 'MesoNH bugfix number' + call IO_Field_read(tpfile,tzfield,ibugfix,iresp) + if (iresp/=0) then + call print_msg(NVERB_WARNING,'IO','IO_Mnhversion_get','unknown BUGFIX version for '//trim(tpfile%cname)) + else + imnhversion(3)=ibugfix + end if + end if + ! + write(ymnhversion_file,"( I0,'.',I0,'.',I0 )" ) imnhversion(1),imnhversion(2),imnhversion(3) + write(ymnhversion_curr,"( I0,'.',I0,'.',I0 )" ) nmnhversion(1),nmnhversion(2),nmnhversion(3) + ! + if ( imnhversion(1)==0 .and. imnhversion(2)==0 .and. imnhversion(3)==0 ) then + call print_msg(NVERB_WARNING,'IO','IO_Mnhversion_get','file '//trim(tpfile%cname)//& + ' was written with an unknown version of MesoNH') + else if ( imnhversion(1)< nmnhversion(1) .or. & + (imnhversion(1)==nmnhversion(1) .and. imnhversion(2)< nmnhversion(2)) .or. & + (imnhversion(1)==nmnhversion(1) .and. imnhversion(2)==nmnhversion(2) .and. imnhversion(3)<nmnhversion(3)) ) then + call print_msg(NVERB_WARNING,'IO','IO_Mnhversion_get','file '//trim(tpfile%cname)//& + ' was written with an older version of MesoNH ('//trim(ymnhversion_file)//& + ' instead of '//trim(ymnhversion_curr)//')') + else if ( imnhversion(1)> nmnhversion(1) .or. & + (imnhversion(1)==nmnhversion(1) .and. imnhversion(2)> nmnhversion(2)) .or. & + (imnhversion(1)==nmnhversion(1) .and. imnhversion(2)==nmnhversion(2) .and. imnhversion(3)>nmnhversion(3)) ) then + call print_msg(NVERB_WARNING,'IO','IO_Mnhversion_get','file '//trim(tpfile%cname)//& + ' was written with a more recent version of MesoNH ('//trim(ymnhversion_file)//& + ' instead of '//trim(ymnhversion_curr)//')') + else + call print_msg(NVERB_DEBUG,'IO','IO_Mnhversion_get','file '//trim(tpfile%cname)//& + ' was written with the same version of MesoNH ('//trim(ymnhversion_curr)//')') + end if ! - if ( imnhversion(1)==0 .and. imnhversion(2)==0 .and. imnhversion(3)==0 ) then - call print_msg(NVERB_WARNING,'IO','io_get_mnhversion','file '//trim(tpfile%cname)//& - ' was written with an unknown version of MesoNH') - else if ( imnhversion(1)< nmnhversion(1) .or. & - (imnhversion(1)==nmnhversion(1) .and. imnhversion(2)< nmnhversion(2)) .or. & - (imnhversion(1)==nmnhversion(1) .and. imnhversion(2)==nmnhversion(2) .and. imnhversion(3)<nmnhversion(3)) ) then - call print_msg(NVERB_WARNING,'IO','io_get_mnhversion','file '//trim(tpfile%cname)//& - ' was written with an older version of MesoNH ('//trim(ymnhversion_file)//& - ' instead of '//trim(ymnhversion_curr)//')') - else if ( imnhversion(1)> nmnhversion(1) .or. & - (imnhversion(1)==nmnhversion(1) .and. imnhversion(2)> nmnhversion(2)) .or. & - (imnhversion(1)==nmnhversion(1) .and. imnhversion(2)==nmnhversion(2) .and. imnhversion(3)>nmnhversion(3)) ) then - call print_msg(NVERB_WARNING,'IO','io_get_mnhversion','file '//trim(tpfile%cname)//& - ' was written with a more recent version of MesoNH ('//trim(ymnhversion_file)//& - ' instead of '//trim(ymnhversion_curr)//')') - else - call print_msg(NVERB_DEBUG,'IO','io_get_mnhversion','file '//trim(tpfile%cname)//& - ' was written with the same version of MesoNH ('//trim(ymnhversion_curr)//')') - end if - ! - tpfile%nmnhversion(:) = imnhversion(:) - end subroutine io_get_mnhversion + tpfile%nmnhversion(:) = imnhversion(:) +end subroutine IO_Mnhversion_get - subroutine io_set_mnhversion(tpfile) - use modd_conf, only: nmnhversion - use modd_io_ll, only: tfiledata +subroutine IO_Mnhversion_set(tpfile) + use modd_conf, only: nmnhversion - type(tfiledata), intent(inout) :: tpfile + type(tfiledata), intent(inout) :: tpfile - call print_msg(NVERB_DEBUG,'IO','io_set_mnhversion','called for '//trim(tpfile%cname)) + call print_msg(NVERB_DEBUG,'IO','IO_Mnhversion_set','called for '//trim(tpfile%cname)) - if ( trim(tpfile%cmode) /= 'WRITE' ) & - call print_msg(NVERB_FATAL,'IO','io_set_mnhversion',trim(tpfile%cname)// 'not opened in write mode') + if ( trim(tpfile%cmode) /= 'WRITE' ) & + call print_msg(NVERB_FATAL,'IO','IO_Mnhversion_set',trim(tpfile%cname)// 'not opened in write mode') - tpfile%nmnhversion(:) = nmnhversion(:) - end subroutine io_set_mnhversion + tpfile%nmnhversion(:) = nmnhversion(:) +end subroutine IO_Mnhversion_set end module mode_io_tools_mnhversion diff --git a/src/LIB/SURCOUCHE/src/mode_io_tools_lfi.f90 b/src/LIB/SURCOUCHE/src/mode_io_tools_lfi.f90 index a55365550..c320a2c7d 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_tools_lfi.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_tools_lfi.f90 @@ -1,24 +1,26 @@ -!MNH_LIC Copyright 2018-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2018-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -! Creation: -! P. Wautelet : 14/12/2018 +! Author(s): +! P. Wautelet : 14/12/2018 +! Modifications: +! P. Wautelet 05/03/2019: rename IO subroutines and modules !----------------------------------------------------------------- module mode_io_tools_lfi -use modd_io_ll, only: tfiledata +use modd_io, only: tfiledata implicit none private -public :: io_prepare_verbosity_lfi +public :: IO_Verbosity_prepare_lfi contains -subroutine io_prepare_verbosity_lfi(tpfile, kmelev, ostats) +subroutine IO_Verbosity_prepare_lfi(tpfile, kmelev, ostats) type(tfiledata), intent(in) :: tpfile integer(kind=LFI_INT), intent(out) :: kmelev logical, intent(out) :: ostats @@ -38,7 +40,7 @@ subroutine io_prepare_verbosity_lfi(tpfile, kmelev, ostats) kmelev = 2 end select -end subroutine io_prepare_verbosity_lfi +end subroutine IO_Verbosity_prepare_lfi end module mode_io_tools_lfi diff --git a/src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90 index b66011fac..638340f23 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_tools_nc4.f90 @@ -3,17 +3,18 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -! Modifications: -! P. Wautelet : may 2016 : use NetCDF Fortran module -! J.Escobar : 14/12/2017 : Correction for MNH_INT=8 -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet : 13/12/2018 : split of mode_netcdf into multiple modules/files -! Philippe Wautelet: 10/01/2019: replace handle_err by io_handle_err_nc4 for better netCDF error messages +! Modifications: +! P. Wautelet may 2016 : use NetCDF Fortran module +! J.Escobar 14/12/2017: correction for MNH_INT=8 +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 13/12/2018: split of mode_netcdf into multiple modules/files +! P. Wautelet 10/01/2019: replace handle_err by IO_Err_handle_nc4 for better netCDF error messages +! P. Wautelet 05/03/2019: rename IO subroutines and modules !----------------------------------------------------------------- #if defined(MNH_IOCDF4) module mode_io_tools_nc4 -use modd_io_ll, only: tfiledata +use modd_io, only: tfiledata use modd_netcdf, only: dimcdf, IDCDF_KIND, iocdf, tdim_dummy use mode_field, only: tfielddata @@ -26,12 +27,13 @@ implicit none private -public :: io_find_dim_byname_nc4, io_guess_dimids_nc4, io_set_knowndims_nc4 -public :: cleaniocdf, cleanmnhname, fillvdims, getdimcdf, getstrdimid, io_handle_err_nc4, newiocdf +public :: IO_Dim_find_byname_nc4, IO_Dimids_guess_nc4, IO_Knowndims_set_nc4 +public :: IO_Iocdf_alloc_nc4, IO_Iocdf_dealloc_nc4, IO_Mnhname_clean +public :: IO_Dimcdf_get_nc4, IO_Strdimid_get_nc4, IO_Vdims_fill_nc4, IO_Err_handle_nc4 contains -SUBROUTINE IO_FIND_DIM_BYNAME_NC4(TPFILE, HDIMNAME, TPDIM, KRESP) +SUBROUTINE IO_Dim_find_byname_nc4(TPFILE, HDIMNAME, TPDIM, KRESP) TYPE(TFILEDATA), INTENT(IN) :: TPFILE CHARACTER(LEN=*), INTENT(IN) :: HDIMNAME TYPE(DIMCDF), INTENT(OUT) :: TPDIM @@ -39,12 +41,12 @@ INTEGER, INTENT(OUT) :: KRESP ! TYPE(DIMCDF), POINTER :: TMP ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_FIND_DIM_BYNAME_NC4','called for dimension name '//TRIM(HDIMNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Dim_find_byname_nc4','called for dimension name '//TRIM(HDIMNAME)) ! KRESP = -2 ! IF(.NOT.ASSOCIATED(TPFILE%TNCDIMS%DIMLIST)) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_FIND_DIM_BYNAME_NC4','DIMLIST not associated for file '//TRIM(TPFILE%CNAME)) + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dim_find_byname_nc4','DIMLIST not associated for file '//TRIM(TPFILE%CNAME)) KRESP = -1 RETURN END IF @@ -60,10 +62,10 @@ DO WHILE(ASSOCIATED(TMP)) TMP => TMP%NEXT END DO ! -END SUBROUTINE IO_FIND_DIM_BYNAME_NC4 +END SUBROUTINE IO_Dim_find_byname_nc4 -SUBROUTINE IO_GUESS_DIMIDS_NC4(TPFILE, TPFIELD, KLEN, TPDIMS, KRESP) +SUBROUTINE IO_Dimids_guess_nc4(TPFILE, TPFIELD, KLEN, TPDIMS, KRESP) ! USE MODE_FIELD, ONLY: TYPECHAR ! @@ -81,7 +83,7 @@ CHARACTER(LEN=32) :: YINT CHARACTER(LEN=2) :: YDIR TYPE(DIMCDF), POINTER :: PTDIM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_GUESS_DIMIDS_NC4','called for '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Dimids_guess_nc4','called for '//TRIM(TPFIELD%CMNHNAME)) ! IGRID = TPFIELD%NGRID YDIR = TPFIELD%CDIR @@ -92,11 +94,11 @@ PTDIM => NULL() ! IF(IGRID<0 .OR. IGRID>8) THEN WRITE(YINT,'( I0 )') IGRID - CALL PRINT_MSG(NVERB_FATAL,'IO','IO_GUESS_DIMIDS_NC4','invalid NGRID ('//TRIM(YINT)//') for field '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Dimids_guess_nc4','invalid NGRID ('//TRIM(YINT)//') for field '//TRIM(TPFIELD%CMNHNAME)) END IF ! IF(IGRID==0 .AND. YDIR/='--' .AND. YDIR/='' ) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4','invalid YDIR ('//TRIM(YDIR)//') with NGRID=0 for field '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4','invalid YDIR ('//TRIM(YDIR)//') with NGRID=0 for field '& //TRIM(TPFIELD%CMNHNAME)) END IF ! @@ -109,16 +111,16 @@ IF (IGRID==0) THEN ILEN = 1 END IF CASE (1) - PTDIM => GETDIMCDF(TPFILE,KLEN) + PTDIM => IO_Dimcdf_get_nc4(TPFILE,KLEN) TPDIMS(1) = PTDIM ILEN = PTDIM%LEN CASE DEFAULT - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4','NGRID=0 and NDIMS>1 not yet supported (field '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4','NGRID=0 and NDIMS>1 not yet supported (field '& //TRIM(TPFIELD%CMNHNAME)//')') END SELECT ELSE IF (TPFIELD%CLBTYPE/='NONE') THEN IF (TPFIELD%NDIMS/=3) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4','CLBTYPE/=NONE and NDIMS/=3 not supported (field '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4','CLBTYPE/=NONE and NDIMS/=3 not supported (field '& //TRIM(TPFIELD%CMNHNAME)//')') END IF ! @@ -129,9 +131,9 @@ ELSE IF (TPFIELD%CLBTYPE/='NONE') THEN TPDIMS(3) = PTDIM ILEN = TPDIMS(2)%LEN * TPDIMS(3)%LEN ISIZE = KLEN/ILEN - IF (MOD(KLEN,ILEN)/=0) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4', & + IF (MOD(KLEN,ILEN)/=0) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4', & 'can not guess 1st dimension for field '//TRIM(TPFIELD%CMNHNAME)) - PTDIM => GETDIMCDF(TPFILE, ISIZE) + PTDIM => IO_Dimcdf_get_nc4(TPFILE, ISIZE) TPDIMS(1) = PTDIM ILEN = ILEN * PTDIM%LEN ELSE IF (TPFIELD%CLBTYPE=='LBY' .OR. TPFIELD%CLBTYPE=='LBYV') THEN @@ -141,13 +143,13 @@ ELSE IF (TPFIELD%CLBTYPE/='NONE') THEN TPDIMS(3) = PTDIM ILEN = TPDIMS(1)%LEN * TPDIMS(3)%LEN ISIZE = KLEN/ILEN - IF (MOD(KLEN,ILEN)/=0) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4', & + IF (MOD(KLEN,ILEN)/=0) CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4', & 'can not guess 2nd dimension for field '//TRIM(TPFIELD%CMNHNAME)) - PTDIM => GETDIMCDF(TPFILE, ISIZE) + PTDIM => IO_Dimcdf_get_nc4(TPFILE, ISIZE) TPDIMS(2) = PTDIM ILEN = ILEN * PTDIM%LEN ELSE - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4','invalid CLBTYPE ('//TPFIELD%CLBTYPE//') for field '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4','invalid CLBTYPE ('//TPFIELD%CLBTYPE//') for field '& //TRIM(TPFIELD%CMNHNAME)) END IF ELSE @@ -162,7 +164,7 @@ ELSE ELSE IF ( YDIR == 'ZZ' ) THEN PTDIM => TPFILE%TNCCOORDS(3,IGRID)%TDIM ELSE IF (JI==TPFIELD%NDIMS) THEN !Guess last dimension - PTDIM => GETDIMCDF(TPFILE, KLEN) + PTDIM => IO_Dimcdf_get_nc4(TPFILE, KLEN) END IF ILEN = PTDIM%LEN TPDIMS(JI) = PTDIM @@ -172,13 +174,13 @@ ELSE ELSE IF (JI==TPFIELD%NDIMS) THEN !Guess last dimension ISIZE = KLEN/ILEN IF (MOD(KLEN,ILEN)/=0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4', & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4', & 'can not guess 2nd and last dimension for field '//TRIM(TPFIELD%CMNHNAME)) EXIT END IF - PTDIM => GETDIMCDF(TPFILE, ISIZE) + PTDIM => IO_Dimcdf_get_nc4(TPFILE, ISIZE) ELSE - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4','can not guess 2nd dimension for field '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4','can not guess 2nd dimension for field '//TRIM(TPFIELD%CMNHNAME)) EXIT END IF ILEN = ILEN * PTDIM%LEN @@ -188,20 +190,20 @@ ELSE IF (JI==TPFIELD%NDIMS .AND. KLEN/ILEN==1 .AND. MOD(KLEN,ILEN)==0) THEN !The last dimension is of size 1 => probably time dimension ISIZE = 1 - PTDIM => GETDIMCDF(TPFILE,ISIZE) + PTDIM => IO_Dimcdf_get_nc4(TPFILE,ISIZE) ELSE PTDIM => TPFILE%TNCCOORDS(3,IGRID)%TDIM END IF ELSE IF (JI==TPFIELD%NDIMS) THEN !Guess last dimension ISIZE = KLEN/ILEN IF (MOD(KLEN,ILEN)/=0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4', & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4', & 'can not guess 3rd and last dimension for field '//TRIM(TPFIELD%CMNHNAME)) EXIT END IF - PTDIM => GETDIMCDF(TPFILE, ISIZE) + PTDIM => IO_Dimcdf_get_nc4(TPFILE, ISIZE) ELSE - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4','can not guess 3rd dimension for field '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4','can not guess 3rd dimension for field '//TRIM(TPFIELD%CMNHNAME)) EXIT END IF ILEN = ILEN * PTDIM%LEN @@ -209,30 +211,30 @@ ELSE ELSE IF (JI==4 .AND. JI==TPFIELD%NDIMS) THEN !Guess last dimension ISIZE = KLEN/ILEN IF (MOD(KLEN,ILEN)/=0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4', & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4', & 'can not guess 4th and last dimension for field '//TRIM(TPFIELD%CMNHNAME)) EXIT END IF - PTDIM => GETDIMCDF(TPFILE, ISIZE) + PTDIM => IO_Dimcdf_get_nc4(TPFILE, ISIZE) ILEN = ILEN * PTDIM%LEN TPDIMS(JI) = PTDIM ELSE - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_GUESS_DIMIDS_NC4','can not guess dimension above 4 for field '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Dimids_guess_nc4','can not guess dimension above 4 for field '& //TRIM(TPFIELD%CMNHNAME)) END IF END DO END IF ! IF (KLEN /= ILEN) THEN - CALL PRINT_MSG(NVERB_INFO,'IO','IO_GUESS_DIMIDS_NC4','can not guess dimensions of field '& + CALL PRINT_MSG(NVERB_INFO,'IO','IO_Dimids_guess_nc4','can not guess dimensions of field '& //TRIM(TPFIELD%CMNHNAME)) KRESP = 1 END IF ! -END SUBROUTINE IO_GUESS_DIMIDS_NC4 +END SUBROUTINE IO_Dimids_guess_nc4 -SUBROUTINE IO_SET_KNOWNDIMS_NC4(TPFILE,HPROGRAM_ORIG) +SUBROUTINE IO_Knowndims_set_nc4(TPFILE,HPROGRAM_ORIG) USE MODD_CONF, ONLY: CPROGRAM USE MODD_CONF_n, ONLY: CSTORAGE_TYPE @@ -246,7 +248,7 @@ CHARACTER(LEN=:),ALLOCATABLE :: YPROGRAM INTEGER :: IIU_ll, IJU_ll, IKU TYPE(IOCDF), POINTER :: PIOCDF -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_SET_KNOWNDIMS_NC4','called for '//TRIM(TPFILE%CNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Knowndims_set_nc4','called for '//TRIM(TPFILE%CNAME)) PIOCDF => TPFILE%TNCDIMS @@ -260,17 +262,17 @@ IIU_ll = NIMAX_ll + 2*JPHEXT IJU_ll = NJMAX_ll + 2*JPHEXT IKU = NKMAX + 2*JPVEXT -IF (.NOT. ASSOCIATED(PIOCDF%DIM_NI)) PIOCDF%DIM_NI => GETDIMCDF(TPFILE, IIU_ll, 'ni') -IF (.NOT. ASSOCIATED(PIOCDF%DIM_NJ)) PIOCDF%DIM_NJ => GETDIMCDF(TPFILE, IJU_ll, 'nj') -IF (.NOT. ASSOCIATED(PIOCDF%DIM_NI_U)) PIOCDF%DIM_NI_U => GETDIMCDF(TPFILE, IIU_ll, 'ni_u') -IF (.NOT. ASSOCIATED(PIOCDF%DIM_NJ_U)) PIOCDF%DIM_NJ_U => GETDIMCDF(TPFILE, IJU_ll, 'nj_u') -IF (.NOT. ASSOCIATED(PIOCDF%DIM_NI_V)) PIOCDF%DIM_NI_V => GETDIMCDF(TPFILE, IIU_ll, 'ni_v') -IF (.NOT. ASSOCIATED(PIOCDF%DIM_NJ_V)) PIOCDF%DIM_NJ_V => GETDIMCDF(TPFILE, IJU_ll, 'nj_v') +IF (.NOT. ASSOCIATED(PIOCDF%DIM_NI)) PIOCDF%DIM_NI => IO_Dimcdf_get_nc4(TPFILE, IIU_ll, 'ni') +IF (.NOT. ASSOCIATED(PIOCDF%DIM_NJ)) PIOCDF%DIM_NJ => IO_Dimcdf_get_nc4(TPFILE, IJU_ll, 'nj') +IF (.NOT. ASSOCIATED(PIOCDF%DIM_NI_U)) PIOCDF%DIM_NI_U => IO_Dimcdf_get_nc4(TPFILE, IIU_ll, 'ni_u') +IF (.NOT. ASSOCIATED(PIOCDF%DIM_NJ_U)) PIOCDF%DIM_NJ_U => IO_Dimcdf_get_nc4(TPFILE, IJU_ll, 'nj_u') +IF (.NOT. ASSOCIATED(PIOCDF%DIM_NI_V)) PIOCDF%DIM_NI_V => IO_Dimcdf_get_nc4(TPFILE, IIU_ll, 'ni_v') +IF (.NOT. ASSOCIATED(PIOCDF%DIM_NJ_V)) PIOCDF%DIM_NJ_V => IO_Dimcdf_get_nc4(TPFILE, IJU_ll, 'nj_v') IF (TRIM(YPROGRAM)/='PGD' .AND. TRIM(YPROGRAM)/='NESPGD' .AND. TRIM(YPROGRAM)/='ZOOMPG' & .AND. .NOT.(TRIM(YPROGRAM)=='REAL' .AND. CSTORAGE_TYPE=='SU') ) THEN !condition to detect PREP_SURFEX - IF (.NOT. ASSOCIATED(PIOCDF%DIM_LEVEL)) PIOCDF%DIM_LEVEL => GETDIMCDF(TPFILE, IKU , 'level') - IF (.NOT. ASSOCIATED(PIOCDF%DIM_LEVEL_W)) PIOCDF%DIM_LEVEL_W => GETDIMCDF(TPFILE, IKU , 'level_w') - IF (.NOT. ASSOCIATED(PIOCDF%DIMTIME)) PIOCDF%DIMTIME => GETDIMCDF(TPFILE, NF90_UNLIMITED, 'time') + IF (.NOT. ASSOCIATED(PIOCDF%DIM_LEVEL)) PIOCDF%DIM_LEVEL => IO_Dimcdf_get_nc4(TPFILE, IKU , 'level') + IF (.NOT. ASSOCIATED(PIOCDF%DIM_LEVEL_W)) PIOCDF%DIM_LEVEL_W => IO_Dimcdf_get_nc4(TPFILE, IKU , 'level_w') + IF (.NOT. ASSOCIATED(PIOCDF%DIMTIME)) PIOCDF%DIMTIME => IO_Dimcdf_get_nc4(TPFILE, NF90_UNLIMITED, 'time') ELSE !PGD and SURFEX files for MesoNH have no vertical levels or time scale !These dimensions are allocated to default values @@ -321,15 +323,15 @@ TPFILE%TNCCOORDS(2,8)%TDIM => PIOCDF%DIM_NJ_V TPFILE%TNCCOORDS(3,8)%TDIM => PIOCDF%DIM_LEVEL_W -END SUBROUTINE IO_SET_KNOWNDIMS_NC4 +END SUBROUTINE IO_Knowndims_set_nc4 -SUBROUTINE CLEANIOCDF(PIOCDF) +SUBROUTINE IO_Iocdf_dealloc_nc4(PIOCDF) TYPE(IOCDF), POINTER :: PIOCDF INTEGER(KIND=IDCDF_KIND) :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','CLEANIOCDF','called') +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Iocdf_dealloc_nc4','called') ! Clean DIMLIST and DIMSTR CALL CLEANLIST(PIOCDF%DIMLIST) @@ -351,10 +353,10 @@ END DO END SUBROUTINE CLEANLIST -END SUBROUTINE CLEANIOCDF +END SUBROUTINE IO_Iocdf_dealloc_nc4 -SUBROUTINE FILLVDIMS(TPFILE, TPFIELD, KSHAPE, KVDIMS) +SUBROUTINE IO_Vdims_fill_nc4(TPFILE, TPFIELD, KSHAPE, KVDIMS) TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD INTEGER(KIND=IDCDF_KIND),DIMENSION(:),INTENT(IN) :: KSHAPE @@ -366,16 +368,16 @@ CHARACTER(LEN=32) :: YINT CHARACTER(LEN=2) :: YDIR TYPE(DIMCDF), POINTER :: PTDIM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','FILLVDIMS','called for '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Vdims_fill_nc4','called for '//TRIM(TPFIELD%CMNHNAME)) ! -IF (SIZE(KSHAPE) < 1 .AND. .NOT.TPFIELD%LTIMEDEP) CALL PRINT_MSG(NVERB_FATAL,'IO','FILLVDIMS','empty KSHAPE') +IF (SIZE(KSHAPE) < 1 .AND. .NOT.TPFIELD%LTIMEDEP) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Vdims_fill_nc4','empty KSHAPE') ! IGRID = TPFIELD%NGRID YDIR = TPFIELD%CDIR ! IF(SIZE(KSHAPE)/=TPFIELD%NDIMS) THEN WRITE(YINT,'( I0,"/",I0 )') SIZE(KSHAPE),TPFIELD%NDIMS - CALL PRINT_MSG(NVERB_FATAL,'IO','FILLVDIMS','SIZE(KSHAPE)/=TPFIELD%NDIMS ('//TRIM(YINT)//') for field ' & + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Vdims_fill_nc4','SIZE(KSHAPE)/=TPFIELD%NDIMS ('//TRIM(YINT)//') for field ' & //TRIM(TPFIELD%CMNHNAME)) END IF ! @@ -389,11 +391,12 @@ END IF ! IF(IGRID<0 .OR. IGRID>8) THEN WRITE(YINT,'( I0 )') IGRID - CALL PRINT_MSG(NVERB_FATAL,'IO','FILLVDIMS','invalid NGRID ('//TRIM(YINT)//') for field '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Vdims_fill_nc4','invalid NGRID ('//TRIM(YINT)//') for field '//TRIM(TPFIELD%CMNHNAME)) END IF ! IF(IGRID==0 .AND. YDIR/='--' .AND. YDIR/='' ) THEN - CALL PRINT_MSG(NVERB_FATAL,'IO','FILLVDIMS','invalid YDIR ('//TRIM(YDIR)//') with NGRID=0 for field '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Vdims_fill_nc4','invalid YDIR ('//TRIM(YDIR)//') with NGRID=0 for field ' & + //TRIM(TPFIELD%CMNHNAME)) END IF ! DO JI=1,SIZE(KSHAPE) @@ -405,34 +408,34 @@ DO JI=1,SIZE(KSHAPE) ELSE IF ( YDIR == 'ZZ' .AND. KSHAPE(1)==TPFILE%TNCCOORDS(3,IGRID)%TDIM%LEN) THEN KVDIMS(1) = TPFILE%TNCCOORDS(3,IGRID)%TDIM%ID ELSE - PTDIM => GETDIMCDF(TPFILE, KSHAPE(1)); KVDIMS(1) = PTDIM%ID + PTDIM => IO_Dimcdf_get_nc4(TPFILE, KSHAPE(1)); KVDIMS(1) = PTDIM%ID END IF ELSE IF (JI == 2) THEN IF ( YDIR == 'XY' .AND. KSHAPE(2)==TPFILE%TNCCOORDS(2,IGRID)%TDIM%LEN) THEN KVDIMS(2) = TPFILE%TNCCOORDS(2,IGRID)%TDIM%ID ELSE - PTDIM => GETDIMCDF(TPFILE, KSHAPE(2)); KVDIMS(2) = PTDIM%ID + PTDIM => IO_Dimcdf_get_nc4(TPFILE, KSHAPE(2)); KVDIMS(2) = PTDIM%ID END IF ELSE IF (JI == 3) THEN IF ( YDIR == 'XY' .AND. KSHAPE(3)==TPFILE%TNCCOORDS(3,IGRID)%TDIM%LEN) THEN KVDIMS(3) = TPFILE%TNCCOORDS(3,IGRID)%TDIM%ID ELSE - PTDIM => GETDIMCDF(TPFILE, KSHAPE(3)); KVDIMS(3) = PTDIM%ID + PTDIM => IO_Dimcdf_get_nc4(TPFILE, KSHAPE(3)); KVDIMS(3) = PTDIM%ID END IF ELSE - PTDIM => GETDIMCDF(TPFILE, KSHAPE(JI)); KVDIMS(JI) = PTDIM%ID + PTDIM => IO_Dimcdf_get_nc4(TPFILE, KSHAPE(JI)); KVDIMS(JI) = PTDIM%ID END IF END DO ! -END SUBROUTINE FILLVDIMS +END SUBROUTINE IO_Vdims_fill_nc4 -FUNCTION GETDIMCDF(TPFILE, KLEN, HDIMNAME) +FUNCTION IO_Dimcdf_get_nc4(TPFILE, KLEN, HDIMNAME) TYPE(TFILEDATA), INTENT(IN) :: TPFILE INTEGER(KIND=IDCDF_KIND),INTENT(IN) :: KLEN CHARACTER(LEN=*), OPTIONAL :: HDIMNAME ! When provided don't search but ! simply create with name HDIMNAME -TYPE(DIMCDF), POINTER :: GETDIMCDF +TYPE(DIMCDF), POINTER :: IO_Dimcdf_get_nc4 TYPE(DIMCDF), POINTER :: TMP INTEGER :: COUNT @@ -442,7 +445,7 @@ INTEGER(KIND=IDCDF_KIND) :: STATUS LOGICAL :: GCHKLEN !Check if KLEN is valid TYPE(IOCDF), POINTER :: PIOCDF -CALL PRINT_MSG(NVERB_DEBUG,'IO','GETDIMCDF','called') +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Dimcdf_get_nc4','called') PIOCDF => TPFILE%TNCDIMS @@ -457,7 +460,7 @@ END IF WRITE(YSUFFIX,'(I0)') KLEN IF (GCHKLEN .AND. KLEN < 1) THEN - CALL PRINT_MSG(NVERB_FATAL,'IO','GETDIMCDF','KLEN='//TRIM(YSUFFIX)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Dimcdf_get_nc4','KLEN='//TRIM(YSUFFIX)) END IF IF (PRESENT(HDIMNAME)) THEN @@ -481,34 +484,34 @@ IF (.NOT. ASSOCIATED(TMP)) THEN TMP%NAME = YDIMNAME TMP%LEN = KLEN STATUS = NF90_DEF_DIM(TPFILE%NNCID, TMP%NAME, KLEN, TMP%ID) - IF (STATUS /= NF90_NOERR) CALL io_handle_err_nc4(status,'GETDIMCDF','NF90_DEF_DIM',trim(TMP%NAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Dimcdf_get_nc4','NF90_DEF_DIM',trim(TMP%NAME)) NULLIFY(TMP%NEXT) TMP%NEXT => PIOCDF%DIMLIST PIOCDF%DIMLIST => TMP -CALL PRINT_MSG(NVERB_DEBUG,'IO','GETDIMCDF','new dimension: '//TRIM(TMP%NAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Dimcdf_get_nc4','new dimension: '//TRIM(TMP%NAME)) END IF -GETDIMCDF => TMP +IO_Dimcdf_get_nc4 => TMP -END FUNCTION GETDIMCDF +END FUNCTION IO_Dimcdf_get_nc4 -FUNCTION GETSTRDIMID(TPFILE,KLEN) +FUNCTION IO_Strdimid_get_nc4(TPFILE,KLEN) TYPE(TFILEDATA), INTENT(IN) :: TPFILE INTEGER(KIND=IDCDF_KIND),INTENT(IN) :: KLEN -INTEGER(KIND=IDCDF_KIND) :: GETSTRDIMID +INTEGER(KIND=IDCDF_KIND) :: IO_Strdimid_get_nc4 TYPE(DIMCDF), POINTER :: TMP TYPE(IOCDF), POINTER :: TZIOCDF CHARACTER(LEN=16) :: YSUFFIX INTEGER(KIND=IDCDF_KIND) :: STATUS -CALL PRINT_MSG(NVERB_DEBUG,'IO','GETSTRDIMID','called') +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Strdimid_get_nc4','called') WRITE(YSUFFIX,'(I0)') KLEN IF (KLEN < 1) THEN - CALL PRINT_MSG(NVERB_FATAL,'IO','GETSTRDIMID','KLEN='//TRIM(YSUFFIX)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Strdimid_get_nc4','KLEN='//TRIM(YSUFFIX)) END IF ! Search string dimension with KLEN length @@ -524,37 +527,36 @@ IF (.NOT. ASSOCIATED(TMP)) THEN TMP%NAME = 'char'//TRIM(YSUFFIX) TMP%LEN = KLEN STATUS = NF90_DEF_DIM(TPFILE%NNCID, TMP%NAME, KLEN, TMP%ID) - IF (STATUS /= NF90_NOERR) CALL io_handle_err_nc4(status,'GETSTRDIMID','NF90_DEF_DIM',trim(TMP%NAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Strdimid_get_nc4','NF90_DEF_DIM',trim(TMP%NAME)) NULLIFY(TMP%NEXT) TMP%NEXT => TPFILE%TNCDIMS%DIMSTR TZIOCDF => TPFILE%TNCDIMS TZIOCDF%DIMSTR => TMP END IF -GETSTRDIMID = TMP%ID +IO_Strdimid_get_nc4 = TMP%ID -END FUNCTION GETSTRDIMID +END FUNCTION IO_Strdimid_get_nc4 -FUNCTION NEWIOCDF() -TYPE(IOCDF), POINTER :: NEWIOCDF +FUNCTION IO_Iocdf_alloc_nc4() +TYPE(IOCDF), POINTER :: IO_Iocdf_alloc_nc4 TYPE(IOCDF), POINTER :: TZIOCDF INTEGER :: IRESP -CALL PRINT_MSG(NVERB_DEBUG,'IO','NEWIOCDF','called') +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Iocdf_alloc_nc4','called') ALLOCATE(TZIOCDF, STAT=IRESP) IF (IRESP > 0) THEN - CALL PRINT_MSG(NVERB_FATAL,'IO','NEWIOCDF','memory allocation error') - STOP + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Iocdf_alloc_nc4','memory allocation error') END IF -NEWIOCDF=>TZIOCDF +IO_Iocdf_alloc_nc4=>TZIOCDF -END FUNCTION NEWIOCDF +END FUNCTION IO_Iocdf_alloc_nc4 -subroutine io_handle_err_nc4(kstatus,hsubr,hncsubr,hvar,kresp) +subroutine IO_Err_handle_nc4(kstatus,hsubr,hncsubr,hvar,kresp) integer(kind=IDCDF_KIND),intent(in) :: kstatus character(len=*), intent(in) :: hsubr character(len=*), intent(in) :: hncsubr @@ -575,10 +577,10 @@ if (kstatus /= NF90_NOERR) then call print_msg(NVERB_ERROR, 'IO',trim(hsubr),trim(hvar)//': '//trim(hncsubr)//': '//trim(NF90_STRERROR(kstatus))) end if end if -end subroutine io_handle_err_nc4 +end subroutine IO_Err_handle_nc4 -SUBROUTINE CLEANMNHNAME(HINNAME,HOUTNAME) +SUBROUTINE IO_Mnhname_clean(HINNAME,HOUTNAME) CHARACTER(LEN=*),INTENT(IN) :: HINNAME CHARACTER(LEN=*),INTENT(OUT) :: HOUTNAME @@ -610,66 +612,66 @@ end module mode_io_tools_nc4 ! ! External dummy subroutines ! -subroutine io_find_dim_byname_nc4(a, b, c, d) +subroutine IO_Dim_find_byname_nc4(a, b, c, d) use mode_msg integer :: a, b, c, d -CALL PRINT_MSG(NVERB_ERROR,'IO','io_find_dim_byname_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine io_find_dim_byname_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Dim_find_byname_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_Dim_find_byname_nc4 ! -subroutine io_guess_dimids_nc4(a, b, c, d) +subroutine IO_Dimids_guess_nc4(a, b, c, d) use mode_msg integer :: a, b, c, d -CALL PRINT_MSG(NVERB_ERROR,'IO','io_guess_dimids_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine io_guess_dimids_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Dimids_guess_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_Dimids_guess_nc4 ! -subroutine io_set_knowndims_nc4(a, b) +subroutine IO_Knowndims_set_nc4(a, b) use mode_msg integer :: a, b, -CALL PRINT_MSG(NVERB_ERROR,'IO','io_set_knowndims_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine io_set_knowndims_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Knowndims_set_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_Knowndims_set_nc4 ! -subroutine cleaniocdf(a) +subroutine IO_Iocdf_dealloc_nc4(a) use mode_msg integer :: a -CALL PRINT_MSG(NVERB_ERROR,'IO','cleaniocdf','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine cleaniocdf +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Iocdf_dealloc_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_Iocdf_dealloc_nc4 ! -subroutine cleanmnhname(a, b) +subroutine IO_Mnhname_clean(a, b) use mode_msg integer :: a, b -CALL PRINT_MSG(NVERB_ERROR,'IO','cleanmnhname','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine cleanmnhname +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Mnhname_clean','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_Mnhname_clean ! -subroutine fillvdims(a, b, c, d) +subroutine IO_Vdims_fill_nc4(a, b, c, d) use mode_msg integer :: a, b, c, d -CALL PRINT_MSG(NVERB_ERROR,'IO','fillvdims','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine fillvdims +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Vdims_fill_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_Vdims_fill_nc4 ! -function getdimcdf(a, b, c) +function IO_Dimcdf_get_nc4(a, b, c) use mode_msg -integer :: getdimcdf +integer :: IO_Dimcdf_get_nc4 integer :: a, b, c -CALL PRINT_MSG(NVERB_ERROR,'IO','getdimcdf','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end function getdimcdf +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Dimcdf_get_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end function IO_Dimcdf_get_nc4 ! -function getstrdimid(a, b) +function IO_Strdimid_get_nc4(a, b) use mode_msg -integer :: getstrdimid +integer :: IO_Strdimid_get_nc4 integer :: a, b -CALL PRINT_MSG(NVERB_ERROR,'IO','getstrdimid','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end function getstrdimid +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Strdimid_get_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end function IO_Strdimid_get_nc4 ! -subroutine io_handle_err_nc4(a, b, c, d, e) +subroutine IO_Err_handle_nc4(a, b, c, d, e) use mode_msg integer :: a, b, c, d, e -CALL PRINT_MSG(NVERB_ERROR,'IO','io_handle_err_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine io_handle_err_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Err_handle_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_Err_handle_nc4 ! -function newiocdf() +function IO_Iocdf_alloc_nc4() use mode_msg -integer :: newiocdf -CALL PRINT_MSG(NVERB_ERROR,'IO','newiocdf','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end function newiocdf() +integer :: IO_Iocdf_alloc_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Iocdf_alloc_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end function IO_Iocdf_alloc_nc4() ! #endif diff --git a/src/LIB/SURCOUCHE/src/mode_io_write_lfi.f90 b/src/LIB/SURCOUCHE/src/mode_io_write_lfi.f90 index 0ec774476..5dc2195e0 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_write_lfi.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_write_lfi.f90 @@ -3,44 +3,46 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -module mode_io_write_lfi ! Modifications: -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! Philippe Wautelet: 21/06/2018: read and write correctly if MNH_REAL=4 -! Philippe Wautelet: 14/12/2018: split fmreadwrit.f90 -! Philippe Wautelet: 11/01/2019: do not write variables with a zero size +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 21/06/2018: read and write correctly if MNH_REAL=4 +! P. Wautelet 14/12/2018: split fmreadwrit.f90 +! P. Wautelet 11/01/2019: do not write variables with a zero size +! P. Wautelet 05/03/2019: rename IO subroutines and modules +!----------------------------------------------------------------- +module mode_io_write_lfi ! -USE MODD_IO_ll +USE MODD_IO USE MODD_PARAMETERS, ONLY: NLFIMAXCOMMENTLENGTH ! -USE MODE_FIELD, ONLY : TFIELDDATA +USE MODE_FIELD, ONLY: TFIELDDATA USE MODE_MSG ! IMPLICIT NONE ! PRIVATE ! +public :: IO_Field_write_lfi +! INTEGER, PARAMETER :: JPXKRK = NLFIMAXCOMMENTLENGTH INTEGER, PARAMETER :: JPXFIE = 1.5E8 ! -INTERFACE IO_WRITE_FIELD_LFI - MODULE PROCEDURE IO_WRITE_FIELD_LFI_X0,IO_WRITE_FIELD_LFI_X1, & - IO_WRITE_FIELD_LFI_X2,IO_WRITE_FIELD_LFI_X3, & - IO_WRITE_FIELD_LFI_X4,IO_WRITE_FIELD_LFI_X5, & - IO_WRITE_FIELD_LFI_X6, & - IO_WRITE_FIELD_LFI_N0,IO_WRITE_FIELD_LFI_N1, & - IO_WRITE_FIELD_LFI_N2,IO_WRITE_FIELD_LFI_N3, & - IO_WRITE_FIELD_LFI_L0,IO_WRITE_FIELD_LFI_L1, & - IO_WRITE_FIELD_LFI_C0, & - IO_WRITE_FIELD_LFI_T0 -END INTERFACE IO_WRITE_FIELD_LFI -! -PUBLIC IO_WRITE_FIELD_LFI +INTERFACE IO_Field_write_lfi + MODULE PROCEDURE IO_Field_write_lfi_X0,IO_Field_write_lfi_X1, & + IO_Field_write_lfi_X2,IO_Field_write_lfi_X3, & + IO_Field_write_lfi_X4,IO_Field_write_lfi_X5, & + IO_Field_write_lfi_X6, & + IO_Field_write_lfi_N0,IO_Field_write_lfi_N1, & + IO_Field_write_lfi_N2,IO_Field_write_lfi_N3, & + IO_Field_write_lfi_L0,IO_Field_write_lfi_L1, & + IO_Field_write_lfi_C0, & + IO_Field_write_lfi_T0 +END INTERFACE IO_Field_write_lfi ! CONTAINS ! ! -SUBROUTINE IO_WRITE_FIELD_LFI_X0(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_X0(TPFILE,TPFIELD,PFIELD,KRESP) ! IMPLICIT NONE ! @@ -58,7 +60,7 @@ INTEGER(KIND=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X0','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_X0','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = 1 ! @@ -68,7 +70,7 @@ IF (IRESP==0) THEN CALL TRANSFER_R_I8( (/PFIELD/) , IWORK(LEN(TPFIELD%CCOMMENT)+3:) ) YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X0','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X0','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,TRIM(TPFIELD%CMNHNAME),IWORK,ITOTAL) ENDIF @@ -77,9 +79,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_X0 +END SUBROUTINE IO_Field_write_lfi_X0 ! -SUBROUTINE IO_WRITE_FIELD_LFI_X1(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_X1(TPFILE,TPFIELD,PFIELD,KRESP) ! IMPLICIT NONE ! @@ -97,12 +99,12 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X1','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_X1','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(PFIELD) ! IF ( ILENG==0 ) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X1','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X1','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') KRESP = 0 RETURN END IF @@ -113,7 +115,7 @@ IF (IRESP==0) THEN CALL TRANSFER_R_I8(PFIELD,IWORK(LEN(TPFIELD%CCOMMENT)+3:)) YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X1','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X1','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -122,9 +124,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_X1 +END SUBROUTINE IO_Field_write_lfi_X1 ! -SUBROUTINE IO_WRITE_FIELD_LFI_X2(TPFILE,TPFIELD,PFIELD,KRESP,KVERTLEVEL,KZFILE) +SUBROUTINE IO_Field_write_lfi_X2(TPFILE,TPFIELD,PFIELD,KRESP,KVERTLEVEL,KZFILE) ! IMPLICIT NONE ! @@ -152,26 +154,26 @@ IRESP=0 ILENG = SIZE(PFIELD) ! IF ( ILENG==0 ) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X2','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X2','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') KRESP = 0 RETURN END IF ! IF (PRESENT(KVERTLEVEL)) THEN IF (.NOT.PRESENT(KZFILE)) THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_LFI_X2','KZFILE argument not provided') + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_lfi_X2','KZFILE argument not provided') RETURN END IF WRITE(YSUFFIX,'(I4.4)') KVERTLEVEL YVARNAME = TRIM(TPFIELD%CMNHNAME)//YSUFFIX - IF (KZFILE>TPFILE%NSUBFILES_IOZ) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_WRITE_FIELD_LFI_X2','KZFILE value too high') + IF (KZFILE>TPFILE%NSUBFILES_IOZ) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Field_write_lfi_X2','KZFILE value too high') TZFILE => TPFILE%TFILES_IOZ(KZFILE)%TFILE ELSE YVARNAME = TRIM(TPFIELD%CMNHNAME) TZFILE => TPFILE ENDIF ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X2','writing '//TRIM(YVARNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_X2','writing '//TRIM(YVARNAME)) ! CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP) ! @@ -179,7 +181,7 @@ IF (IRESP==0) THEN CALL TRANSFER_R_I8(RESHAPE(PFIELD,(/ILENG/)),IWORK(LEN(TPFIELD%CCOMMENT)+3:)) YRECFM=TRIM(YVARNAME) IF( LEN_TRIM(YVARNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X2','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X2','field name was truncated to '& //YRECFM//' for '//TRIM(YVARNAME)) CALL LFIECR(IRESP,TZFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -188,9 +190,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_X2 +END SUBROUTINE IO_Field_write_lfi_X2 ! -SUBROUTINE IO_WRITE_FIELD_LFI_X3(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_X3(TPFILE,TPFIELD,PFIELD,KRESP) ! IMPLICIT NONE ! @@ -208,12 +210,12 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X3','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_X3','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(PFIELD) ! IF ( ILENG==0 ) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X3','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X3','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') KRESP = 0 RETURN END IF @@ -224,7 +226,7 @@ IF (IRESP==0) THEN CALL TRANSFER_R_I8(RESHAPE(PFIELD,(/ILENG/)),IWORK(LEN(TPFIELD%CCOMMENT)+3:)) YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X3','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X3','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -233,9 +235,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_X3 +END SUBROUTINE IO_Field_write_lfi_X3 ! -SUBROUTINE IO_WRITE_FIELD_LFI_X4(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_X4(TPFILE,TPFIELD,PFIELD,KRESP) ! IMPLICIT NONE ! @@ -253,12 +255,12 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X4','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_X4','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(PFIELD) ! IF ( ILENG==0 ) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X4','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X4','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') KRESP = 0 RETURN END IF @@ -269,7 +271,7 @@ IF (IRESP==0) THEN CALL TRANSFER_R_I8(RESHAPE(PFIELD,(/ILENG/)),IWORK(LEN(TPFIELD%CCOMMENT)+3:)) YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X4','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X4','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -278,9 +280,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_X4 +END SUBROUTINE IO_Field_write_lfi_X4 ! -SUBROUTINE IO_WRITE_FIELD_LFI_X5(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_X5(TPFILE,TPFIELD,PFIELD,KRESP) ! IMPLICIT NONE ! @@ -298,12 +300,12 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X5','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_X5','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(PFIELD) ! IF ( ILENG==0 ) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X5','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X5','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') KRESP = 0 RETURN END IF @@ -314,7 +316,7 @@ IF (IRESP==0) THEN CALL TRANSFER_R_I8(RESHAPE(PFIELD,(/ILENG/)),IWORK(LEN(TPFIELD%CCOMMENT)+3:)) YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X5','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X5','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -323,9 +325,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_X5 +END SUBROUTINE IO_Field_write_lfi_X5 ! -SUBROUTINE IO_WRITE_FIELD_LFI_X6(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_X6(TPFILE,TPFIELD,PFIELD,KRESP) ! IMPLICIT NONE ! @@ -343,12 +345,12 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X6','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_X6','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(PFIELD) ! IF ( ILENG==0 ) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X6','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X6','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') KRESP = 0 RETURN END IF @@ -359,7 +361,7 @@ IF (IRESP==0) THEN CALL TRANSFER_R_I8(RESHAPE(PFIELD,(/ILENG/)),IWORK(LEN(TPFIELD%CCOMMENT)+3:)) YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X6','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_X6','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -368,9 +370,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_X6 +END SUBROUTINE IO_Field_write_lfi_X6 ! -SUBROUTINE IO_WRITE_FIELD_LFI_N0(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_N0(TPFILE,TPFIELD,KFIELD,KRESP) ! IMPLICIT NONE ! @@ -388,7 +390,7 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_N0','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_N0','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = 1 ! @@ -398,7 +400,7 @@ IF (IRESP==0) THEN IWORK(LEN(TPFIELD%CCOMMENT)+3)=KFIELD YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_N0','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_N0','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -407,9 +409,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_N0 +END SUBROUTINE IO_Field_write_lfi_N0 ! -SUBROUTINE IO_WRITE_FIELD_LFI_N1(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_N1(TPFILE,TPFIELD,KFIELD,KRESP) ! IMPLICIT NONE ! @@ -427,12 +429,12 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_N1','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_N1','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(KFIELD) ! IF ( ILENG==0 ) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_N1','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_N1','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') KRESP = 0 RETURN END IF @@ -443,7 +445,7 @@ IF (IRESP==0) THEN IWORK(LEN(TPFIELD%CCOMMENT)+3:) = KFIELD(:) YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_N1','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_N1','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -452,9 +454,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_N1 +END SUBROUTINE IO_Field_write_lfi_N1 ! -SUBROUTINE IO_WRITE_FIELD_LFI_N2(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_N2(TPFILE,TPFIELD,KFIELD,KRESP) ! IMPLICIT NONE ! @@ -472,12 +474,12 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_N2','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_N2','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(KFIELD) ! IF ( ILENG==0 ) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_N2','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_N2','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') KRESP = 0 RETURN END IF @@ -488,7 +490,7 @@ IF (IRESP==0) THEN IWORK(LEN(TPFIELD%CCOMMENT)+3:) = RESHAPE( KFIELD(:,:) , (/ SIZE(KFIELD) /) ) YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_N2','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_N2','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -497,9 +499,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_N2 +END SUBROUTINE IO_Field_write_lfi_N2 ! -SUBROUTINE IO_WRITE_FIELD_LFI_N3(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_N3(TPFILE,TPFIELD,KFIELD,KRESP) ! IMPLICIT NONE ! @@ -517,12 +519,12 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_N3','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_N3','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(KFIELD) ! IF ( ILENG==0 ) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_N3','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_N3','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') KRESP = 0 RETURN END IF @@ -533,7 +535,7 @@ IF (IRESP==0) THEN IWORK(LEN(TPFIELD%CCOMMENT)+3:) = RESHAPE( KFIELD(:,:,:) , (/ SIZE(KFIELD) /) ) YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_N3','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_N3','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -542,9 +544,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_N3 +END SUBROUTINE IO_Field_write_lfi_N3 ! -SUBROUTINE IO_WRITE_FIELD_LFI_L0(TPFILE,TPFIELD,OFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_L0(TPFILE,TPFIELD,OFIELD,KRESP) ! IMPLICIT NONE ! @@ -563,7 +565,7 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_L0','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_L0','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = 1 ! @@ -580,7 +582,7 @@ IF (IRESP==0) THEN IWORK(LEN(TPFIELD%CCOMMENT)+3)=IFIELD YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_L0','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_L0','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -589,9 +591,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_L0 +END SUBROUTINE IO_Field_write_lfi_L0 ! -SUBROUTINE IO_WRITE_FIELD_LFI_L1(TPFILE,TPFIELD,OFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_L1(TPFILE,TPFIELD,OFIELD,KRESP) ! IMPLICIT NONE ! @@ -610,12 +612,12 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_L1','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_L1','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG = SIZE(OFIELD) ! IF ( ILENG==0 ) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_L1','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_L1','ignoring variable with a zero size ('//TRIM(TPFIELD%CMNHNAME)//')') KRESP = 0 RETURN END IF @@ -633,7 +635,7 @@ IF (IRESP==0) THEN IWORK(LEN(TPFIELD%CCOMMENT)+3:) = IFIELD(:) YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_L1','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_L1','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -642,9 +644,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_L1 +END SUBROUTINE IO_Field_write_lfi_L1 ! -SUBROUTINE IO_WRITE_FIELD_LFI_C0(TPFILE,TPFIELD,HFIELD,KRESP) +SUBROUTINE IO_Field_write_lfi_C0(TPFILE,TPFIELD,HFIELD,KRESP) ! USE MODD_PARAMETERS, ONLY: NFILENAMELGTMAXLFI ! @@ -664,7 +666,7 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_C0','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_C0','writing '//TRIM(TPFIELD%CMNHNAME)) ! ILENG=LEN(HFIELD) ILENGMAX = ILENG @@ -675,7 +677,7 @@ IF (TPFIELD%CMNHNAME=='MY_NAME' .OR. TPFIELD%CMNHNAME=='DAD_NAME') THEN ILENG = MIN(LEN(HFIELD),NFILENAMELGTMAXLFI) ILENGMAX = NFILENAMELGTMAXLFI IF (LEN_TRIM(HFIELD)>ILENGMAX) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_C0',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_C0',TRIM(TPFILE%CNAME)// & ': MY_NAME was truncated from '//TRIM(HFIELD)//' to '//HFIELD(1:NFILENAMELGTMAXLFI)) END IF ! @@ -691,7 +693,7 @@ IF (IRESP==0) THEN END DO YRECFM=TRIM(TPFIELD%CMNHNAME) IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_C0','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_C0','field name was truncated to '& //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -700,9 +702,9 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_C0 +END SUBROUTINE IO_Field_write_lfi_C0 ! -SUBROUTINE IO_WRITE_FIELD_LFI_T0(TPFILE,TPFIELD,TPDATA,KRESP) +SUBROUTINE IO_Field_write_lfi_T0(TPFILE,TPFIELD,TPDATA,KRESP) ! USE MODD_TYPE_DATE ! @@ -724,7 +726,7 @@ INTEGER, DIMENSION(3) :: ITDATE ! date array INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=LEN_HREC) :: YRECFM ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_T0','writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_lfi_T0','writing '//TRIM(TPFIELD%CMNHNAME)) ! TZFIELD = TPFIELD ! @@ -743,7 +745,7 @@ IF (IRESP==0) THEN IWORK(LEN(TZFIELD%CCOMMENT)+3:)=ITDATE(:) YRECFM=TRIM(TZFIELD%CMNHNAME) IF( LEN_TRIM(TZFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_T0','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_T0','field name was truncated to '& //YRECFM//' for '//TRIM(TZFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -767,7 +769,7 @@ IF (IRESP==0) THEN IWORK(LEN(TZFIELD%CCOMMENT)+3) = TRANSFER(TPDATA%TIME,IWORK(1)) YRECFM=TRIM(TZFIELD%CMNHNAME) IF( LEN_TRIM(TZFIELD%CMNHNAME) > LEN(YRECFM) ) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_T0','field name was truncated to '& + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_lfi_T0','field name was truncated to '& //YRECFM//' for '//TRIM(TZFIELD%CMNHNAME)) CALL LFIECR(IRESP,TPFILE%NLFIFLU,YRECFM,IWORK,ITOTAL) ENDIF @@ -776,7 +778,7 @@ KRESP=IRESP ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) ! -END SUBROUTINE IO_WRITE_FIELD_LFI_T0 +END SUBROUTINE IO_Field_write_lfi_T0 ! SUBROUTINE WRITE_PREPARE(TPFIELD,KLENG,KWORK,KTOTAL,KRESP) ! diff --git a/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 index c6837768f..0fc391c69 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 @@ -3,23 +3,24 @@ !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -! Modifications: -! P. Wautelet : may 2016 : use NetCDF Fortran module -! J.Escobar : 14/12/2017 : Correction for MNH_INT=8 -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet : 13/12/2018 : split of mode_netcdf into multiple modules/files -! Philippe Wautelet: 10/01/2019: replace handle_err by io_handle_err_nc4 for better netCDF error messages -! P. Wautelet : 11/01/2019 : NVERB_INFO->NVERB_WARNING for zero size fields -! P. Wautelet : 01/02/2019 : IO_WRITE_COORDVAR_NC4: bug: use of non-associated pointers (PIOCDF%DIM_Nx_y) +! Modifications: +! P. Wautelet may 2016 : use NetCDF Fortran module +! J. Escobar 14/12/2017: correction for MNH_INT=8 +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 13/12/2018: split of mode_netcdf into multiple modules/files +! P. Wautelet 10/01/2019: replace handle_err by IO_Err_handle_nc4 for better netCDF error messages +! P. Wautelet 11/01/2019: NVERB_INFO->NVERB_WARNING for zero size fields +! P. Wautelet 01/02/2019: IO_Coordvar_write_nc4: bug: use of non-associated pointers (PIOCDF%DIM_Nx_y) +! P. Wautelet 05/03/2019: rename IO subroutines and modules !----------------------------------------------------------------- #if defined(MNH_IOCDF4) module mode_io_write_nc4 -use modd_io_ll, only: gsmonoproc, tfiledata +use modd_io, only: gsmonoproc, tfiledata use modd_netcdf, only: dimcdf, IDCDF_KIND, iocdf use mode_field, only: tfielddata -use mode_io_tools_nc4, only: cleanmnhname, fillvdims, getdimcdf, getstrdimid, io_handle_err_nc4 +use mode_io_tools_nc4, only: IO_Mnhname_clean, IO_Vdims_fill_nc4, IO_Dimcdf_get_nc4, IO_Strdimid_get_nc4, IO_Err_handle_nc4 use mode_msg use NETCDF, only: NF90_CHAR, NF90_DOUBLE, NF90_FLOAT, NF90_INT, NF90_INT1, NF90_INT64, & @@ -31,19 +32,19 @@ implicit none private -public :: io_write_coordvar_nc4, io_write_field_nc4, io_write_header_nc4 +public :: IO_Coordvar_write_nc4, IO_Field_write_nc4, IO_Header_write_nc4 -INTERFACE IO_WRITE_FIELD_NC4 - MODULE PROCEDURE IO_WRITE_FIELD_NC4_X0,IO_WRITE_FIELD_NC4_X1, & - IO_WRITE_FIELD_NC4_X2,IO_WRITE_FIELD_NC4_X3, & - IO_WRITE_FIELD_NC4_X4,IO_WRITE_FIELD_NC4_X5, & - IO_WRITE_FIELD_NC4_X6, & - IO_WRITE_FIELD_NC4_N0,IO_WRITE_FIELD_NC4_N1, & - IO_WRITE_FIELD_NC4_N2,IO_WRITE_FIELD_NC4_N3, & - IO_WRITE_FIELD_NC4_L0,IO_WRITE_FIELD_NC4_L1, & - IO_WRITE_FIELD_NC4_C0,IO_WRITE_FIELD_NC4_C1, & - IO_WRITE_FIELD_NC4_T0 -END INTERFACE IO_WRITE_FIELD_NC4 +INTERFACE IO_Field_write_nc4 + MODULE PROCEDURE IO_Field_write_nc4_X0,IO_Field_write_nc4_X1, & + IO_Field_write_nc4_X2,IO_Field_write_nc4_X3, & + IO_Field_write_nc4_X4,IO_Field_write_nc4_X5, & + IO_Field_write_nc4_X6, & + IO_Field_write_nc4_N0,IO_Field_write_nc4_N1, & + IO_Field_write_nc4_N2,IO_Field_write_nc4_N3, & + IO_Field_write_nc4_L0,IO_Field_write_nc4_L1, & + IO_Field_write_nc4_C0,IO_Field_write_nc4_C1, & + IO_Field_write_nc4_T0 +END INTERFACE IO_Field_write_nc4 integer,parameter :: NSTRINGCHUNKSIZE = 16 !Dimension of the chunks of strings !(to limit the number of dimensions for strings) @@ -53,7 +54,7 @@ integer(kind=IDCDF_KIND),parameter :: DEFLATE = 1 contains -SUBROUTINE IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,KVARID,OEXISTED,KSHAPE,HCALENDAR,OISCOORD) +SUBROUTINE IO_Field_attr_write_nc4(TPFILE,TPFIELD,KVARID,OEXISTED,KSHAPE,HCALENDAR,OISCOORD) ! USE MODD_CONF, ONLY: CPROGRAM, LCARTESIAN USE MODD_CONF_n, ONLY: CSTORAGE_TYPE @@ -73,15 +74,15 @@ INTEGER(KIND=IDCDF_KIND) :: STATUS CHARACTER(LEN=:),ALLOCATABLE :: YCOORDS LOGICAL :: GISCOORD ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_ATTR_NC4','called for field '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_write_nc4','called for field '//TRIM(TPFIELD%CMNHNAME)) ! IF(LEN_TRIM(TPFIELD%CSTDNAME)==0 .AND. LEN_TRIM(TPFIELD%CLONGNAME)==0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_ATTR_NC4','at least long_name or standard_name must be provided & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_attr_write_nc4','at least long_name or standard_name must be provided & &to respect CF-convention for variable '//TRIM(TPFIELD%CMNHNAME)) ENDIF ! IF (TPFIELD%NDIMS>1 .AND. .NOT.PRESENT(KSHAPE)) & - CALL PRINT_MSG(NVERB_FATAL,'IO','IO_WRITE_FIELD_ATTR_NC4','KSHAPE not provided for '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Field_attr_write_nc4','KSHAPE not provided for '//TRIM(TPFIELD%CMNHNAME)) ! IF (PRESENT(OISCOORD)) THEN GISCOORD = OISCOORD @@ -93,55 +94,55 @@ INCID = TPFILE%NNCID ! ! Standard_name attribute definition (CF convention) IF(LEN_TRIM(TPFIELD%CSTDNAME)==0) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_ATTR_NC4','TPFIELD%CSTDNAME not set for variable '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_write_nc4','TPFIELD%CSTDNAME not set for variable '//TRIM(TPFIELD%CMNHNAME)) ELSE STATUS = NF90_PUT_ATT(INCID, KVARID,'standard_name', TRIM(TPFIELD%CSTDNAME)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','standard_name for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','standard_name for ' & //trim(TPFIELD%CMNHNAME)) ENDIF ! ! Long_name attribute definition (CF convention) IF(LEN_TRIM(TPFIELD%CLONGNAME)==0) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_ATTR_NC4','TPFIELD%CLONGNAME not set for variable '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_write_nc4','TPFIELD%CLONGNAME not set for variable '//TRIM(TPFIELD%CMNHNAME)) ELSE STATUS = NF90_PUT_ATT(INCID, KVARID,'long_name', TRIM(TPFIELD%CLONGNAME)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','long_name for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','long_name for ' & //trim(TPFIELD%CMNHNAME)) ENDIF ! ! Canonical units attribute definition (CF convention) IF(LEN_TRIM(TPFIELD%CUNITS)==0) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_ATTR_NC4','TPFIELD%CUNITS not set for variable '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_write_nc4','TPFIELD%CUNITS not set for variable '//TRIM(TPFIELD%CMNHNAME)) ELSE STATUS = NF90_PUT_ATT(INCID, KVARID,'units', TRIM(TPFIELD%CUNITS)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','units for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','units for ' & //trim(TPFIELD%CMNHNAME)) ENDIF ! ! GRID attribute definition IF(TPFIELD%NGRID<0) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_ATTR_NC4','TPFIELD%NGRID not set for variable '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_write_nc4','TPFIELD%NGRID not set for variable '//TRIM(TPFIELD%CMNHNAME)) !Do not write GRID attribute if NGRID=0 ELSE IF (TPFIELD%NGRID>0) THEN STATUS = NF90_PUT_ATT(INCID, KVARID, 'grid', TPFIELD%NGRID) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','grid for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','grid for ' & //trim(TPFIELD%CMNHNAME)) ENDIF ! ! COMMENT attribute definition IF(LEN_TRIM(TPFIELD%CCOMMENT)==0) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_ATTR_NC4','TPFIELD%CCOMMENT not set for variable '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_write_nc4','TPFIELD%CCOMMENT not set for variable '//TRIM(TPFIELD%CMNHNAME)) ELSE STATUS = NF90_PUT_ATT(INCID, KVARID,'comment', TRIM(TPFIELD%CCOMMENT)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','comment for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','comment for ' & //trim(TPFIELD%CMNHNAME)) ENDIF ! ! Calendar (CF convention) IF(PRESENT(HCALENDAR)) THEN - CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_ATTR_NC4','CALENDAR provided for variable '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_attr_write_nc4','CALENDAR provided for variable '//TRIM(TPFIELD%CMNHNAME)) STATUS = NF90_PUT_ATT(INCID, KVARID,'calendar', TRIM(HCALENDAR)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','calendar for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','calendar for ' & //trim(TPFIELD%CMNHNAME)) ENDIF ! @@ -172,14 +173,14 @@ IF (.NOT.GISCOORD) THEN CASE (8) !fw point (=uvw point) YCOORDS='latitude_f longitude_f' CASE DEFAULT - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_ATTR_NC4','invalid NGRID for variable '//TRIM(TPFIELD%CMNHNAME)) + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_attr_write_nc4','invalid NGRID for variable '//TRIM(TPFIELD%CMNHNAME)) END SELECT ! STATUS = NF90_PUT_ATT(INCID, KVARID,'coordinates',YCOORDS) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','coordinates') + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','coordinates') DEALLOCATE(YCOORDS) ELSE - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_ATTR_NC4','coordinates not implemented for variable ' & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_attr_write_nc4','coordinates not implemented for variable ' & //TRIM(TPFIELD%CMNHNAME)) END IF ELSE @@ -190,7 +191,7 @@ ENDIF ! IF(TPFIELD%NTYPE==TYPEINT .AND. TPFIELD%NDIMS>0) THEN IF (TPFIELD%NFILLVALUE>=TPFIELD%NVALIDMIN .AND. TPFIELD%NFILLVALUE<=TPFIELD%NVALIDMAX) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_ATTR_NC4','_FillValue is not outside of valid_min - valid_max'// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_attr_write_nc4','_FillValue is not outside of valid_min - valid_max'// & 'interval for variable '//TRIM(TPFIELD%CMNHNAME)) ! ! Fillvalue (CF/COMODO convention) @@ -199,20 +200,20 @@ IF(TPFIELD%NTYPE==TYPEINT .AND. TPFIELD%NDIMS>0) THEN ! * it cannot be modified if some data has already been written (->check OEXISTED) IF(.NOT.OEXISTED) THEN STATUS = NF90_PUT_ATT(INCID, KVARID,'_FillValue', TPFIELD%NFILLVALUE) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','_FillValue') + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','_FillValue') END IF ! ! Valid_min/max (CF/COMODO convention) STATUS = NF90_PUT_ATT(INCID, KVARID,'valid_min', TPFIELD%NVALIDMIN) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','valid_min') + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','valid_min') ! STATUS = NF90_PUT_ATT(INCID, KVARID,'valid_max',TPFIELD%NVALIDMAX) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','valid_max') + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','valid_max') ENDIF ! IF(TPFIELD%NTYPE==TYPEREAL .AND. TPFIELD%NDIMS>0) THEN IF (TPFIELD%XFILLVALUE>=TPFIELD%XVALIDMIN .AND. TPFIELD%XFILLVALUE<=TPFIELD%XVALIDMAX) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_ATTR_NC4','_FillValue is not outside of valid_min - valid_max'// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_attr_write_nc4','_FillValue is not outside of valid_min - valid_max'// & 'interval for variable '//TRIM(TPFIELD%CMNHNAME)) ! ! Fillvalue (CF/COMODO convention) @@ -225,7 +226,7 @@ IF(TPFIELD%NTYPE==TYPEREAL .AND. TPFIELD%NDIMS>0) THEN ELSE STATUS = NF90_PUT_ATT(INCID, KVARID,'_FillValue', TPFIELD%XFILLVALUE) END IF - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','_FillValue') + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','_FillValue') END IF ! ! Valid_min/max (CF/COMODO convention) @@ -234,20 +235,20 @@ IF(TPFIELD%NTYPE==TYPEREAL .AND. TPFIELD%NDIMS>0) THEN ELSE STATUS = NF90_PUT_ATT(INCID, KVARID,'valid_min', TPFIELD%XVALIDMIN) END IF - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','valid_min') + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','valid_min') ! IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN STATUS = NF90_PUT_ATT(INCID, KVARID,'valid_max', REAL(TPFIELD%XVALIDMAX,KIND=4)) ELSE STATUS = NF90_PUT_ATT(INCID, KVARID,'valid_max',TPFIELD%XVALIDMAX) END IF - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_ATTR_NC4','NF90_PUT_ATT','valid_max') + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_attr_write_nc4','NF90_PUT_ATT','valid_max') ENDIF ! -END SUBROUTINE IO_WRITE_FIELD_ATTR_NC4 +END SUBROUTINE IO_Field_attr_write_nc4 -SUBROUTINE IO_WRITE_FIELD_NC4_X0(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_X0(TPFILE,TPFIELD,PFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -262,7 +263,7 @@ INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_X0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! Get the Netcdf file ID @@ -270,21 +271,21 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (TPFIELD%LTIMEDEP) THEN ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable #if (MNH_REAL == 8) STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_DOUBLE, IVDIMS, IVARID) #else STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X0','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X0','NF90_DEF_VAR',trim(YVARNAME)) DEALLOCATE(IVDIMS) ELSE ! Define the scalar variable @@ -293,24 +294,24 @@ IF (STATUS /= NF90_NOERR) THEN #else STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X0','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X0','NF90_DEF_VAR',trim(YVARNAME)) END IF ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X0','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X0','NF90_PUT_VAR',trim(YVARNAME),IRESP) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_X0 +END SUBROUTINE IO_Field_write_nc4_X0 -SUBROUTINE IO_WRITE_FIELD_NC4_X1(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_X1(TPFILE,TPFIELD,PFIELD,KRESP) ! TYPE(TFILEDATA),TARGET,INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -325,7 +326,7 @@ INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_X1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! Get the Netcdf file ID @@ -333,19 +334,19 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(PFIELD)==0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X1','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X1','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') KRESP = 0 RETURN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -357,30 +358,30 @@ IF (STATUS /= NF90_NOERR) THEN STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) #endif END IF - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X1','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X1','NF90_DEF_VAR',trim(YVARNAME)) ! Add compression if asked for IF (TPFILE%LNCCOMPRESS) THEN STATUS = NF90_DEF_VAR_DEFLATE(INCID, IVARID, SHUFFLE, DEFLATE, TPFILE%NNCCOMPRESS_LEVEL) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X1','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X1','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) END IF ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X1','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X1','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_X1 +END SUBROUTINE IO_Field_write_nc4_X1 -SUBROUTINE IO_WRITE_FIELD_NC4_X2(TPFILE,TPFIELD,PFIELD,KRESP,KVERTLEVEL,KZFILE,OISCOORD) +SUBROUTINE IO_Field_write_nc4_X2(TPFILE,TPFIELD,PFIELD,KRESP,KVERTLEVEL,KZFILE,OISCOORD) ! TYPE(TFILEDATA),TARGET,INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -406,10 +407,10 @@ IRESP = 0 IF (PRESENT(KVERTLEVEL)) THEN WRITE(YSUFFIX,'(I4.4)') KVERTLEVEL IF (.NOT.PRESENT(KZFILE)) THEN - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_NC4_X2','KZFILE argument not provided') + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_nc4_X2','KZFILE argument not provided') RETURN END IF - IF (KZFILE>TPFILE%NSUBFILES_IOZ) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_WRITE_FIELD_NC4_X2','KZFILE value too high') + IF (KZFILE>TPFILE%NSUBFILES_IOZ) CALL PRINT_MSG(NVERB_FATAL,'IO','IO_Field_write_nc4_X2','KZFILE value too high') TZFILE => TPFILE%TFILES_IOZ(KZFILE)%TFILE TZFIELD = TPFIELD TZFIELD%CMNHNAME = TRIM(TZFIELD%CMNHNAME)//YSUFFIX @@ -421,26 +422,26 @@ ELSE TZFIELD = TPFIELD ENDIF ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X2',TRIM(TZFILE%CNAME)//': writing '//TRIM(TZFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_X2',TRIM(TZFILE%CNAME)//': writing '//TRIM(TZFIELD%CMNHNAME)) ! ! Get the Netcdf file ID INCID = TZFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TZFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TZFIELD%CMNHNAME,YVARNAME) ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(PFIELD)==0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X2','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X2','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') KRESP = 0 RETURN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TZFILE, TZFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TZFILE, TZFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable IF (TZFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -452,30 +453,30 @@ IF (STATUS /= NF90_NOERR) THEN STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) #endif END IF - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X2','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X2','NF90_DEF_VAR',trim(YVARNAME)) ! Add compression if asked for IF (TZFILE%LNCCOMPRESS) THEN STATUS = NF90_DEF_VAR_DEFLATE(INCID, IVARID, SHUFFLE, DEFLATE, TZFILE%NNCCOMPRESS_LEVEL) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X2','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X2','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) END IF ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X2',TRIM(TZFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X2',TRIM(TZFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TZFILE,TZFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND),OISCOORD=OISCOORD) +CALL IO_Field_attr_write_nc4(TZFILE,TZFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND),OISCOORD=OISCOORD) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X2','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X2','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_X2 +END SUBROUTINE IO_Field_write_nc4_X2 -SUBROUTINE IO_WRITE_FIELD_NC4_X3(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_X3(TPFILE,TPFIELD,PFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -491,7 +492,7 @@ INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined ! ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X3',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_X3',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! Get the Netcdf file ID @@ -499,19 +500,19 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(PFIELD)==0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X3','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X3','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') KRESP = 0 RETURN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -523,31 +524,31 @@ IF (STATUS /= NF90_NOERR) THEN STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) #endif END IF - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X3','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X3','NF90_DEF_VAR',trim(YVARNAME)) ! Add compression if asked for IF (TPFILE%LNCCOMPRESS) THEN STATUS = NF90_DEF_VAR_DEFLATE(INCID, IVARID, SHUFFLE, DEFLATE, TPFILE%NNCCOMPRESS_LEVEL) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X3','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X3','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) END IF ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X3',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X3',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND)) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND)) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X3','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X3','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_X3 +END SUBROUTINE IO_Field_write_nc4_X3 -SUBROUTINE IO_WRITE_FIELD_NC4_X4(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_X4(TPFILE,TPFIELD,PFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -563,7 +564,7 @@ INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined ! ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X4',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_X4',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! Get the Netcdf file ID @@ -571,19 +572,19 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(PFIELD)==0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X4','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X4','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') KRESP = 0 RETURN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -595,31 +596,31 @@ IF (STATUS /= NF90_NOERR) THEN STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) #endif END IF - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X4','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X4','NF90_DEF_VAR',trim(YVARNAME)) ! Add compression if asked for IF (TPFILE%LNCCOMPRESS) THEN STATUS = NF90_DEF_VAR_DEFLATE(INCID, IVARID, SHUFFLE, DEFLATE, TPFILE%NNCCOMPRESS_LEVEL) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X4','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X4','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) END IF ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X4',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X4',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND)) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND)) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X4','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X4','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_X4 +END SUBROUTINE IO_Field_write_nc4_X4 -SUBROUTINE IO_WRITE_FIELD_NC4_X5(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_X5(TPFILE,TPFIELD,PFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -635,7 +636,7 @@ INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined ! ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X5',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_X5',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! Get the Netcdf file ID @@ -643,19 +644,19 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(PFIELD)==0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X5','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X5','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') KRESP = 0 RETURN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -667,31 +668,31 @@ IF (STATUS /= NF90_NOERR) THEN STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) #endif END IF - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X5','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X5','NF90_DEF_VAR',trim(YVARNAME)) ! Add compression if asked for IF (TPFILE%LNCCOMPRESS) THEN STATUS = NF90_DEF_VAR_DEFLATE(INCID, IVARID, SHUFFLE, DEFLATE, TPFILE%NNCCOMPRESS_LEVEL) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X5','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X5','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) END IF ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X5',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X5',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND)) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND)) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X5','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X5','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_X5 +END SUBROUTINE IO_Field_write_nc4_X5 -SUBROUTINE IO_WRITE_FIELD_NC4_X6(TPFILE,TPFIELD,PFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_X6(TPFILE,TPFIELD,PFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -707,7 +708,7 @@ INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined ! ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_X6',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_X6',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! Get the Netcdf file ID @@ -715,19 +716,19 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(PFIELD)==0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X6','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X6','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') KRESP = 0 RETURN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(PFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable IF (TPFILE%LNCREDUCE_FLOAT_PRECISION) THEN @@ -739,36 +740,37 @@ IF (STATUS /= NF90_NOERR) THEN STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIMS, IVARID) #endif END IF - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X6','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X6','NF90_DEF_VAR',trim(YVARNAME)) ! Add compression if asked for IF (TPFILE%LNCCOMPRESS) THEN STATUS = NF90_DEF_VAR_DEFLATE(INCID, IVARID, SHUFFLE, DEFLATE, TPFILE%NNCCOMPRESS_LEVEL) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X6','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X6','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) END IF ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_X6',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_X6',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND)) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(PFIELD),KIND=IDCDF_KIND)) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, PFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_X6','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_X6','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_X6 +END SUBROUTINE IO_Field_write_nc4_X6 -SUBROUTINE IO_WRITE_FIELD_NC4_N0(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_N0(TPFILE,TPFIELD,KFIELD,KRESP) ! -USE MODD_PARAMETERS_ll, ONLY : JPVEXT #if 0 -USE MODD_PARAMETERS_ll, ONLY : JPHEXT, JPVEXT -USE MODD_IO_ll, ONLY : LPACK,L1D,L2D +USE MODD_IO, ONLY: LPACK,L1D,L2D +USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT +#else +USE MODD_PARAMETERS_ll, ONLY: JPVEXT #endif ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -785,7 +787,7 @@ INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined TYPE(IOCDF), POINTER :: TZIOCDF ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_N0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_N0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! Get the Netcdf file ID @@ -793,21 +795,21 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (TPFIELD%LTIMEDEP) THEN ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable #if ( MNH_INT == 4 ) STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT, IVDIMS, IVARID) #else STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT64, IVDIMS, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N0','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_N0','NF90_DEF_VAR',trim(YVARNAME)) DEALLOCATE(IVDIMS) ELSE ! Define the scalar variable @@ -816,48 +818,49 @@ IF (STATUS /= NF90_NOERR) THEN #else STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT64, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N0','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_N0','NF90_DEF_VAR',trim(YVARNAME)) END IF ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_N0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_N0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, KFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N0','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_N0','NF90_PUT_VAR',trim(YVARNAME),IRESP) ! ! Use IMAX, JMAX, KMAX to define DIM_NI, DIM_NJ, DIM_LEVEL ! /!\ Can only work if IMAX, JMAX or KMAX are written before any array ! #if 0 -IF (YVARNAME == 'IMAX' .AND. .NOT. ASSOCIATED(TPFILE%TNCDIMS%DIM_NI)) TPFILE%TNCDIMS%DIM_NI=>GETDIMCDF(TPFILE%TNCDIMS,KFIELD+2*JPHEXT,'X') +IF (YVARNAME == 'IMAX' .AND. .NOT. ASSOCIATED(TPFILE%TNCDIMS%DIM_NI)) TPFILE%TNCDIMS%DIM_NI=>IO_Dimcdf_get_nc4(TPFILE%TNCDIMS,KFIELD+2*JPHEXT,'X') IF (YVARNAME == 'JMAX' .AND. .NOT. ASSOCIATED(TPFILE%TNCDIMS%DIM_NJ)) THEN IF (LPACK .AND. L2D) THEN - TPFILE%TNCDIMS%DIM_NJ=>GETDIMCDF(TPFILE, 1,'Y') + TPFILE%TNCDIMS%DIM_NJ=>IO_Dimcdf_get_nc4(TPFILE, 1,'Y') ELSE - TPFILE%TNCDIMS%DIM_NJ=>GETDIMCDF(TPFILE, KFIELD+2*JPHEXT, 'Y') + TPFILE%TNCDIMS%DIM_NJ=>IO_Dimcdf_get_nc4(TPFILE, KFIELD+2*JPHEXT, 'Y') END IF END IF #endif IF (YVARNAME == 'KMAX' .AND. .NOT. ASSOCIATED(TPFILE%TNCDIMS%DIM_LEVEL)) THEN TZIOCDF => TPFILE%TNCDIMS - TZIOCDF%DIM_LEVEL=>GETDIMCDF(TPFILE,INT(KFIELD+2*JPVEXT,KIND=IDCDF_KIND),'Z') + TZIOCDF%DIM_LEVEL=>IO_Dimcdf_get_nc4(TPFILE,INT(KFIELD+2*JPVEXT,KIND=IDCDF_KIND),'Z') END IF KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_N0 +END SUBROUTINE IO_Field_write_nc4_N0 -SUBROUTINE IO_WRITE_FIELD_NC4_N1(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_N1(TPFILE,TPFIELD,KFIELD,KRESP) ! -USE MODD_PARAMETERS_ll, ONLY : JPVEXT #if 0 -USE MODD_PARAMETERS_ll, ONLY : JPHEXT, JPVEXT -USE MODD_IO_ll, ONLY : LPACK,L1D,L2D +USE MODD_IO, ONLY: LPACK,L1D,L2D +USE MODD_PARAMETERS_ll, ONLY: JPHEXT, JPVEXT +#else +USE MODD_PARAMETERS_ll, ONLY: JPVEXT #endif ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE @@ -873,7 +876,7 @@ INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_N1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_N1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! Get the Netcdf file ID @@ -881,19 +884,19 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(KFIELD)==0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_N1','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_N1','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') KRESP = 0 RETURN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable #if ( MNH_INT == 4 ) @@ -901,25 +904,25 @@ IF (STATUS /= NF90_NOERR) THEN #else STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT64, IVDIMS, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N1','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_N1','NF90_DEF_VAR',trim(YVARNAME)) ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_N1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_N1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, KFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N1','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_N1','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_N1 +END SUBROUTINE IO_Field_write_nc4_N1 -SUBROUTINE IO_WRITE_FIELD_NC4_N2(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_N2(TPFILE,TPFIELD,KFIELD,KRESP) ! TYPE(TFILEDATA),TARGET,INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -936,26 +939,26 @@ LOGICAL :: GEXISTED !True if variable was already defined ! IRESP = 0 ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_N2',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_N2',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! ! Get the Netcdf file ID INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(KFIELD)==0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_N2','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_N2','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') KRESP = 0 RETURN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable #if ( MNH_INT == 4 ) @@ -963,29 +966,29 @@ IF (STATUS /= NF90_NOERR) THEN #else STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT64, IVDIMS, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N2','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_N2','NF90_DEF_VAR',trim(YVARNAME)) ! Add compression if asked for IF (TPFILE%LNCCOMPRESS) THEN STATUS = NF90_DEF_VAR_DEFLATE(INCID, IVARID, SHUFFLE, DEFLATE, TPFILE%NNCCOMPRESS_LEVEL) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N2','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_N2','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) END IF ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_N2',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_N2',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(KFIELD),KIND=IDCDF_KIND)) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(KFIELD),KIND=IDCDF_KIND)) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, KFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N2','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_N2','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_N2 +END SUBROUTINE IO_Field_write_nc4_N2 -SUBROUTINE IO_WRITE_FIELD_NC4_N3(TPFILE,TPFIELD,KFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_N3(TPFILE,TPFIELD,KFIELD,KRESP) ! TYPE(TFILEDATA),TARGET, INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -1002,26 +1005,26 @@ LOGICAL :: GEXISTED !True if variable was already defined ! IRESP = 0 ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_N3',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_N3',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! ! Get the Netcdf file ID INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(KFIELD)==0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_N3','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_N3','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') KRESP = 0 RETURN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(KFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable #if ( MNH_INT == 4 ) @@ -1029,31 +1032,31 @@ IF (STATUS /= NF90_NOERR) THEN #else STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT64, IVDIMS, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N3','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_N3','NF90_DEF_VAR',trim(YVARNAME)) ! Add compression if asked for IF (TPFILE%LNCCOMPRESS) THEN STATUS = NF90_DEF_VAR_DEFLATE(INCID, IVARID, SHUFFLE, DEFLATE, TPFILE%NNCCOMPRESS_LEVEL) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N3','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_N3','NF90_DEF_VAR_DEFLATE',trim(YVARNAME)) END IF ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_N3',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_N3',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(KFIELD),KIND=IDCDF_KIND)) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED,KSHAPE=INT(SHAPE(KFIELD),KIND=IDCDF_KIND)) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, KFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_N3','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_N3','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_N3 +END SUBROUTINE IO_Field_write_nc4_N3 -SUBROUTINE IO_WRITE_FIELD_NC4_L0(TPFILE,TPFIELD,OFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_L0(TPFILE,TPFIELD,OFIELD,KRESP) ! -USE MODD_PARAMETERS_ll, ONLY : JPVEXT +USE MODD_PARAMETERS_ll, ONLY: JPVEXT ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -1069,7 +1072,7 @@ INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_L0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_L0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! Get the Netcdf file ID @@ -1077,28 +1080,28 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (TPFIELD%LTIMEDEP) THEN ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(OFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(OFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable ! Use of NF90_INT1 datatype (=NF90_BYTE) that is enough to store a boolean STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT1, IVDIMS, IVARID) - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_L0','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_L0','NF90_DEF_VAR',trim(YVARNAME)) DEALLOCATE(IVDIMS) ELSE ! Define the scalar variable ! Use of NF90_INT1 datatype (=NF90_BYTE) that is enough to store a boolean STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT1, IVARID) - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_L0','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_L0','NF90_DEF_VAR',trim(YVARNAME)) END IF ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_L0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_L0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF !Convert LOGICAL to INTEGER (LOGICAL format not supported by netCDF files) @@ -1109,17 +1112,17 @@ ELSE END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, IFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_L0','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_L0','NF90_PUT_VAR',trim(YVARNAME),IRESP) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_L0 +END SUBROUTINE IO_Field_write_nc4_L0 -SUBROUTINE IO_WRITE_FIELD_NC4_L1(TPFILE,TPFIELD,OFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_L1(TPFILE,TPFIELD,OFIELD,KRESP) ! -USE MODD_PARAMETERS_ll, ONLY : JPVEXT +USE MODD_PARAMETERS_ll, ONLY: JPVEXT ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -1135,7 +1138,7 @@ INTEGER(KIND=IDCDF_KIND), DIMENSION(:), ALLOCATABLE :: IVDIMS INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_L1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_L1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! Get the Netcdf file ID @@ -1143,27 +1146,27 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN IF (SIZE(OFIELD)==0) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_L1','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_L1','ignoring variable with a zero size ('//TRIM(YVARNAME)//')') KRESP = 0 RETURN END IF ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(OFIELD),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(OFIELD),KIND=IDCDF_KIND), IVDIMS) ! Define the variable ! Use of NF90_INT1 datatype (=NF90_BYTE) that is enough to store a boolean STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_INT1, IVDIMS, IVARID) - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_L1','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_L1','NF90_DEF_VAR',trim(YVARNAME)) ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_L1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_L1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF !Convert LOGICAL to INTEGER (LOGICAL format not supported by netCDF files) @@ -1174,18 +1177,18 @@ ELSEWHERE END WHERE ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, IFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_L1','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_L1','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF(ALLOCATED(IVDIMS)) DEALLOCATE(IVDIMS) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_L1 +END SUBROUTINE IO_Field_write_nc4_L1 -SUBROUTINE IO_WRITE_FIELD_NC4_C0(TPFILE,TPFIELD,HFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_C0(TPFILE,TPFIELD,HFIELD,KRESP) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD @@ -1201,7 +1204,7 @@ INTEGER :: IRESP, ILEN CHARACTER(LEN=:),ALLOCATABLE :: YFIELD LOGICAL :: GEXISTED !True if variable was already defined ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_C0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_C0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 !Store the character string in a string of a size multiple of NSTRINGCHUNKSIZE @@ -1215,39 +1218,39 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! IF (TPFIELD%LTIMEDEP) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_C0',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_C0',TRIM(TPFILE%CNAME)// & ': time dependent variable not (yet) possible for 0D variable '//TRIM(TPFIELD%CMNHNAME)) ! ! The variable should not already exist but who knows ? STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf string dimensions id - IVDIMS(1) = GETSTRDIMID(TPFILE,INT(ILEN,KIND=IDCDF_KIND)) + IVDIMS(1) = IO_Strdimid_get_nc4(TPFILE,INT(ILEN,KIND=IDCDF_KIND)) ! Define the variable STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_CHAR, IVDIMS, IVARID) - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_C0','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_C0','NF90_DEF_VAR',trim(YVARNAME)) ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_C0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_C0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ALLOCATE(CHARACTER(LEN=ILEN)::YFIELD) YFIELD(1:LEN_TRIM(HFIELD))=TRIM(HFIELD) YFIELD(LEN_TRIM(HFIELD)+1:)=' ' ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, YFIELD) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_C0','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_C0','NF90_PUT_VAR',trim(YVARNAME),IRESP) DEALLOCATE(YFIELD) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_C0 +END SUBROUTINE IO_Field_write_nc4_C0 -SUBROUTINE IO_WRITE_FIELD_NC4_C1(TPFILE,TPFIELD,HFIELD,KRESP) +SUBROUTINE IO_Field_write_nc4_C1(TPFILE,TPFIELD,HFIELD,KRESP) ! Modif ! J.Escobar : 25/04/2018 : missing 'IF ALLOCATED(IVDIMSTMP)' DEALLOCATE !---------------------------------------------------------------- @@ -1268,7 +1271,7 @@ INTEGER(KIND=IDCDF_KIND) :: ILEN, ISIZE INTEGER :: IRESP LOGICAL :: GEXISTED !True if variable was already defined ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_C1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_C1',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 @@ -1280,11 +1283,11 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! IF (TPFIELD%LTIMEDEP) THEN !This is an error (+return) and not a warning because IVDIMSTMP could be of size 2 if LTIMEDEP=T - CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_FIELD_NC4_C1',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_nc4_C1',TRIM(TPFILE%CNAME)// & ': time dependent variable not (yet) possible for '//TRIM(TPFIELD%CMNHNAME)) RETURN END IF @@ -1293,30 +1296,30 @@ END IF STATUS = NF90_INQ_VARID(INCID, YVARNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf string dimensions id - IVDIMS(1) = GETSTRDIMID(TPFILE,ILEN) - CALL FILLVDIMS(TPFILE, TPFIELD, (/ISIZE/), IVDIMSTMP) + IVDIMS(1) = IO_Strdimid_get_nc4(TPFILE,ILEN) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, (/ISIZE/), IVDIMSTMP) IVDIMS(2) = IVDIMSTMP(1) ! Define the variable STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_CHAR, IVDIMS, IVARID) - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_C1','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_C1','NF90_DEF_VAR',trim(YVARNAME)) ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_C1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_C1',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TPFIELD,IVARID,GEXISTED) +CALL IO_Field_attr_write_nc4(TPFILE,TPFIELD,IVARID,GEXISTED) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, HFIELD(1:ISIZE)(1:ILEN), START=(/IONE,IONE/), COUNT=(/ILEN,ISIZE/)) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_C1','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_C1','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF(ALLOCATED(IVDIMSTMP)) DEALLOCATE(IVDIMSTMP) KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_C1 +END SUBROUTINE IO_Field_write_nc4_C1 -SUBROUTINE IO_WRITE_FIELD_NC4_T0(TPFILE,TPFIELD,TPDATA,KRESP) +SUBROUTINE IO_Field_write_nc4_T0(TPFILE,TPFIELD,TPDATA,KRESP) ! USE MODD_TIME_n, ONLY: TDTMOD USE MODD_TYPE_DATE @@ -1340,7 +1343,7 @@ LOGICAL :: GEXISTED !True if variable was already REAL :: ZDELTATIME !Distance in seconds since reference date and time TYPE(DATE_TIME) :: TZREF ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_NC4_T0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Field_write_nc4_T0',TRIM(TPFILE%CNAME)//': writing '//TRIM(TPFIELD%CMNHNAME)) ! IRESP = 0 ! @@ -1351,14 +1354,14 @@ INCID = TPFILE%NNCID ! GEXISTED = .FALSE. ! -CALL CLEANMNHNAME(TPFIELD%CMNHNAME,YVARNAME) +CALL IO_Mnhname_clean(TPFIELD%CMNHNAME,YVARNAME) ! TZFIELD%CMNHNAME = TRIM(YVARNAME) ! ! Model beginning date (TDTMOD%TDATE) is used as the reference date ! Reference time is set to 0. IF (.NOT.ASSOCIATED(TDTMOD)) THEN - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_T0',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_T0',TRIM(TPFILE%CNAME)// & ': '//TRIM(TZFIELD%CMNHNAME)//': DTMOD is not associated and not known. Reference date set to 2000/01/01') TZREF%TDATE%YEAR = 2000 TZREF%TDATE%MONTH = 1 @@ -1373,7 +1376,7 @@ WRITE(YUNITS,'( "seconds since ",I4.4,"-",I2.2,"-",I2.2," 00:00:00 +0:00" )') & TZFIELD%CUNITS = TRIM(YUNITS) ! IF (TPFIELD%LTIMEDEP) & - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_T0',TRIM(TPFILE%CNAME)// & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_T0',TRIM(TPFILE%CNAME)// & ': time dependent variable not (yet) possible for 0D variable '//TRIM(TPFIELD%CMNHNAME)) ! ! The variable should not already exist but who knows ? @@ -1385,21 +1388,21 @@ IF (STATUS /= NF90_NOERR) THEN #else STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_T0','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_T0','NF90_DEF_VAR',trim(YVARNAME)) ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_T0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_T0',TRIM(TPFILE%CNAME)//': '//TRIM(YVARNAME)//' already defined') END IF ! Write metadata -CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TZFIELD,IVARID,GEXISTED,HCALENDAR='standard') +CALL IO_Field_attr_write_nc4(TPFILE,TZFIELD,IVARID,GEXISTED,HCALENDAR='standard') ! ! Compute the temporal distance from reference CALL DATETIME_DISTANCE(TZREF,TPDATA,ZDELTATIME) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, ZDELTATIME) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_T0','NF90_PUT_VAR',trim(YVARNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_T0','NF90_PUT_VAR',trim(YVARNAME),IRESP) IF (IRESP/=0) THEN KRESP = IRESP @@ -1421,19 +1424,19 @@ TZFIELD%CCOMMENT = 'YYYYMMDD' STATUS = NF90_INQ_VARID(INCID, TZFIELD%CMNHNAME, IVARID) IF (STATUS /= NF90_NOERR) THEN ! Get the netcdf dimensions - CALL FILLVDIMS(TPFILE, TPFIELD, INT(SHAPE(ITDATE),KIND=IDCDF_KIND), IVDIMS) + CALL IO_Vdims_fill_nc4(TPFILE, TPFIELD, INT(SHAPE(ITDATE),KIND=IDCDF_KIND), IVDIMS) ! Define the variable STATUS = NF90_DEF_VAR(INCID, TZFIELD%CMNHNAME, NF90_INT, IVDIMS, IVARID) - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_T0','NF90_DEF_VAR',trim(TZFIELD%CMNHNAME)) - CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TZFIELD,IVARID,GEXISTED) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_T0','NF90_DEF_VAR',trim(TZFIELD%CMNHNAME)) + CALL IO_Field_attr_write_nc4(TPFILE,TZFIELD,IVARID,GEXISTED) ELSE - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_T0',TRIM(TPFILE%CNAME)//': '//TRIM(TZFIELD%CMNHNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_T0',TRIM(TPFILE%CNAME)//': '//TRIM(TZFIELD%CMNHNAME)//' already defined') END IF ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, ITDATE) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_T0','NF90_PUT_VAR',trim(TZFIELD%CMNHNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_T0','NF90_PUT_VAR',trim(TZFIELD%CMNHNAME),IRESP) IF (IRESP/=0) THEN KRESP = IRESP @@ -1456,22 +1459,22 @@ IF (STATUS /= NF90_NOERR) THEN #else STATUS = NF90_DEF_VAR(INCID, TZFIELD%CMNHNAME, NF90_FLOAT, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_T0','NF90_DEF_VAR',trim(TZFIELD%CMNHNAME)) - CALL IO_WRITE_FIELD_ATTR_NC4(TPFILE,TZFIELD,IVARID,GEXISTED) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_T0','NF90_DEF_VAR',trim(TZFIELD%CMNHNAME)) + CALL IO_Field_attr_write_nc4(TPFILE,TZFIELD,IVARID,GEXISTED) ELSE GEXISTED = .TRUE. - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_NC4_T0',TRIM(TPFILE%CNAME)//': '//TRIM(TZFIELD%CMNHNAME)//' already defined') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_Field_write_nc4_T0',TRIM(TPFILE%CNAME)//': '//TRIM(TZFIELD%CMNHNAME)//' already defined') END IF ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, TPDATA%TIME) -IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'IO_WRITE_FIELD_NC4_T0','NF90_PUT_VAR',trim(TZFIELD%CMNHNAME),IRESP) +IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'IO_Field_write_nc4_T0','NF90_PUT_VAR',trim(TZFIELD%CMNHNAME),IRESP) #endif KRESP = IRESP -END SUBROUTINE IO_WRITE_FIELD_NC4_T0 +END SUBROUTINE IO_Field_write_nc4_T0 -SUBROUTINE IO_WRITE_COORDVAR_NC4(TPFILE,HPROGRAM_ORIG) +SUBROUTINE IO_Coordvar_write_nc4(TPFILE,HPROGRAM_ORIG) USE MODD_CONF, ONLY: CPROGRAM, LCARTESIAN USE MODD_CONF_n, ONLY: CSTORAGE_TYPE USE MODD_GRID, ONLY: XLATORI, XLONORI @@ -1500,7 +1503,7 @@ REAL,DIMENSION(:,:),POINTER :: ZLAT, ZLON type(dimcdf), pointer :: tzdim_ni, tzdim_nj, tzdim_ni_u, tzdim_nj_u, tzdim_ni_v, tzdim_nj_v TYPE(IOCDF), POINTER :: PIOCDF -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_COORDVAR_NC4','called for '//TRIM(TPFILE%CNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Coordvar_write_nc4','called for '//TRIM(TPFILE%CNAME)) ZXHAT => NULL() ZYHAT => NULL() @@ -1704,33 +1707,33 @@ SUBROUTINE WRITE_HOR_COORD(TDIM,HLONGNAME,HSTDNAME,HAXIS,PSHIFT,KBOUNDLOW,KBOUND #else STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIM, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_HOR_COORD','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_HOR_COORD','NF90_DEF_VAR',trim(YVARNAME)) ELSE CALL PRINT_MSG(NVERB_ERROR,'IO','WRITE_HOR_COORD',TRIM(YVARNAME)//' already defined') END IF ! Write metadata STATUS = NF90_PUT_ATT(INCID, IVARID, 'long_name',HLONGNAME) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','long_name for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','long_name for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID, 'standard_name',HSTDNAME) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','standard_name for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','standard_name for '//trim(YVARNAME)) IF (PRESENT(PCOORDS)) THEN STATUS = NF90_PUT_ATT(INCID, IVARID, 'units','m') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','units for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','units for '//trim(YVARNAME)) END IF STATUS = NF90_PUT_ATT(INCID, IVARID, 'axis',HAXIS) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','axis for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','axis for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID, 'c_grid_axis_shift',PSHIFT) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','c_grid_axis_shift for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','c_grid_axis_shift for ' & //trim(YVARNAME)) WRITE(YRANGE,'( I0,":",I0 )') 1+KBOUNDLOW,ISIZE-KBOUNDHIGH STATUS = NF90_PUT_ATT(INCID, IVARID, 'c_grid_dynamic_range',TRIM(YRANGE)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','c_grid_dynamic_range for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_HOR_COORD','NF90_PUT_ATT','c_grid_dynamic_range for ' & //trim(YVARNAME)) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, ZTAB) - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_HOR_COORD','NF90_PUT_VAR',trim(YVARNAME),IRESP) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_HOR_COORD','NF90_PUT_VAR',trim(YVARNAME),IRESP) END IF IF (GALLOC) DEALLOCATE(ZTAB) @@ -1775,9 +1778,9 @@ SUBROUTINE WRITE_HOR_2DCOORD(PX,PY,HLAT,HLON) ENDIF ! CALL FIND_FIELD_ID_FROM_MNHNAME(HLAT,ID,IRESP) - CALL IO_WRITE_FIELD_NC4_X2(TPFILE,TFIELDLIST(ID),ZTAB1,IRESP,OISCOORD=.TRUE.) + CALL IO_Field_write_nc4_X2(TPFILE,TFIELDLIST(ID),ZTAB1,IRESP,OISCOORD=.TRUE.) CALL FIND_FIELD_ID_FROM_MNHNAME(HLON,ID,IRESP) - CALL IO_WRITE_FIELD_NC4_X2(TPFILE,TFIELDLIST(ID),ZTAB2,IRESP,OISCOORD=.TRUE.) + CALL IO_Field_write_nc4_X2(TPFILE,TFIELDLIST(ID),ZTAB2,IRESP,OISCOORD=.TRUE.) END IF IF (GALLOC1) DEALLOCATE(ZTAB1) @@ -1815,56 +1818,56 @@ SUBROUTINE WRITE_VER_COORD(TDIM,HLONGNAME,HSTDNAME,HCOMPNAME,PSHIFT,KBOUNDLOW,KB #else STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIM, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_DEF_VAR',trim(YVARNAME)) ELSE CALL PRINT_MSG(NVERB_ERROR,'IO','WRITE_VER_COORD',TRIM(YVARNAME)//' already defined') END IF ! Write metadata STATUS = NF90_PUT_ATT(INCID, IVARID, 'long_name',HLONGNAME) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','long_name for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','long_name for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID, 'standard_name',HSTDNAME) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','standard_name for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','standard_name for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID, 'units','m') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','units for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','units for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID, 'axis','Z') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','axis for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','axis for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID, 'positive','up') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','positive for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','positive for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID, 'c_grid_axis_shift',PSHIFT) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','c_grid_axis_shift for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','c_grid_axis_shift for ' & //trim(YVARNAME)) WRITE(YRANGE,'( I0,":",I0 )') 1+KBOUNDLOW,ISIZE-KBOUNDHIGH STATUS = NF90_PUT_ATT(INCID, IVARID, 'c_grid_dynamic_range',TRIM(YRANGE)) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','c_grid_dynamic_range for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','c_grid_dynamic_range for ' & //trim(YVARNAME)) ! IF (GSLEVE) THEN !Remark: ZS, ZSMT and ZTOP in the formula are the same for mass point or flux point STATUS = NF90_PUT_ATT(INCID, IVARID,'formula_terms','s: '//TRIM(YVARNAME)// & ' height: ZTOP oro_ls: ZSMT oro: ZS len1: LEN1 len2: LEN2') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','formula_terms for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','formula_terms for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID, 'formula_definition','z(n,k,j,i)=s(k)'// & '+ oro_ls(j,i)*sinh((height/len1)**1.35-(s(k)/len1)**1.35)/sinh((s(k)/len1)**1.35)'// & '+(oro(j,i)-oro_ls(j,i))*sinh((height/len2)**1.35-(s(k)/len2)**1.35)/sinh((s(k)/len2)**1.35)') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','formula_definition for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','formula_definition for ' & //trim(YVARNAME)) ELSE !Remark: ZS and ZTOP in the formula are the same for mass point or flux point STATUS = NF90_PUT_ATT(INCID, IVARID, 'formula_terms','s: '//TRIM(YVARNAME)//' height: ZTOP orog: ZS') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','formula_terms for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','formula_terms for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID, 'formula_definition','z(n,k,j,i)=s(k)*(height-orog(j,i))/height+orog(j,i)') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','formula_definition for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','formula_definition for ' & //trim(YVARNAME)) ENDIF ! STATUS = NF90_PUT_ATT(INCID, IVARID, 'computed_standard_name',HCOMPNAME) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_ATT','computed_standard_name for ' & + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_ATT','computed_standard_name for ' & //trim(YVARNAME)) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, PCOORDS) - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_VER_COORD','NF90_PUT_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_VER_COORD','NF90_PUT_VAR',trim(YVARNAME)) END SUBROUTINE WRITE_VER_COORD @@ -1899,24 +1902,24 @@ SUBROUTINE WRITE_TIME_COORD(TDIM) #else STATUS = NF90_DEF_VAR(INCID, YVARNAME, NF90_FLOAT, IVDIM, IVARID) #endif - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_TIME_COORD','NF90_DEF_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_TIME_COORD','NF90_DEF_VAR',trim(YVARNAME)) ELSE CALL PRINT_MSG(NVERB_ERROR,'IO','WRITE_TIME_COORD',TRIM(YVARNAME)//' already defined') END IF ! Write metadata STATUS = NF90_PUT_ATT(INCID, IVARID, 'long_name','time axis') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_TIME_COORD','NF90_PUT_ATT','long_name for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_TIME_COORD','NF90_PUT_ATT','long_name for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID, 'standard_name','time') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_TIME_COORD','NF90_PUT_ATT','standard_name for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_TIME_COORD','NF90_PUT_ATT','standard_name for '//trim(YVARNAME)) WRITE(YUNITS,'( "seconds since ",I4.4,"-",I2.2,"-",I2.2," 00:00:00 +0:00" )') & TDTMOD%TDATE%YEAR,TDTMOD%TDATE%MONTH,TDTMOD%TDATE%DAY STATUS = NF90_PUT_ATT(INCID, IVARID, 'units',YUNITS) - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_TIME_COORD','NF90_PUT_ATT','units for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_TIME_COORD','NF90_PUT_ATT','units for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID, 'axis','T') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_TIME_COORD','NF90_PUT_ATT','axis for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_TIME_COORD','NF90_PUT_ATT','axis for '//trim(YVARNAME)) STATUS = NF90_PUT_ATT(INCID, IVARID,'calendar','standard') - IF (STATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_TIME_COORD','NF90_PUT_ATT','calendar for '//trim(YVARNAME)) + IF (STATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_TIME_COORD','NF90_PUT_ATT','calendar for '//trim(YVARNAME)) ! Model beginning date (TDTMOD%TDATE) is used as the reference date ! Reference time is set to 0. @@ -1926,15 +1929,15 @@ SUBROUTINE WRITE_TIME_COORD(TDIM) CALL DATETIME_DISTANCE(TZREF,TDTCUR,ZDELTATIME) ! Write the data STATUS = NF90_PUT_VAR(INCID, IVARID, ZDELTATIME) - IF (status /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(status,'WRITE_TIME_COORD','NF90_PUT_VAR',trim(YVARNAME)) + IF (status /= NF90_NOERR) CALL IO_Err_handle_nc4(status,'WRITE_TIME_COORD','NF90_PUT_VAR',trim(YVARNAME)) END IF END SUBROUTINE WRITE_TIME_COORD -END SUBROUTINE IO_WRITE_COORDVAR_NC4 +END SUBROUTINE IO_Coordvar_write_nc4 -SUBROUTINE IO_WRITE_HEADER_NC4(TPFILE) +SUBROUTINE IO_Header_write_nc4(TPFILE) ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File structure ! @@ -1942,30 +1945,30 @@ INTEGER(KIND=IDCDF_KIND) :: ISTATUS ! IF (TRIM(TPFILE%CFORMAT)/='NETCDF4' .AND. TRIM(TPFILE%CFORMAT)/='LFICDF4') RETURN ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_HEADER_NC4','called for file '//TRIM(TPFILE%CNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_Header_write_nc4','called for file '//TRIM(TPFILE%CNAME)) ! IF (TPFILE%LMASTER) THEN ISTATUS = NF90_PUT_ATT(TPFILE%NNCID, NF90_GLOBAL, 'Conventions', 'CF-1.7 COMODO-1.4') - IF (ISTATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(istatus,'IO_FILE_WRITE_HEADER','NF90_PUT_ATT','Conventions') + IF (ISTATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(istatus,'IO_FILE_WRITE_HEADER','NF90_PUT_ATT','Conventions') #if (MNH_REAL == 8) ISTATUS = NF90_PUT_ATT(TPFILE%NNCID, NF90_GLOBAL, 'MNH_REAL', '8') #else ISTATUS = NF90_PUT_ATT(TPFILE%NNCID, NF90_GLOBAL, 'MNH_REAL', '4') #endif - IF (ISTATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(istatus,'IO_FILE_WRITE_HEADER','NF90_PUT_ATT','MNH_REAL') + IF (ISTATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(istatus,'IO_FILE_WRITE_HEADER','NF90_PUT_ATT','MNH_REAL') #if (MNH_INT == 4) ISTATUS = NF90_PUT_ATT(TPFILE%NNCID, NF90_GLOBAL, 'MNH_INT', '4') #else ISTATUS = NF90_PUT_ATT(TPFILE%NNCID, NF90_GLOBAL, 'MNH_INT', '8') #endif - IF (ISTATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(istatus,'IO_FILE_WRITE_HEADER','NF90_PUT_ATT','MNH_INT') + IF (ISTATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(istatus,'IO_FILE_WRITE_HEADER','NF90_PUT_ATT','MNH_INT') !title !history - CALL IO_APPEND_HISTORY_NC4(TPFILE) + CALL IO_History_append_nc4(TPFILE) !institution @@ -1976,12 +1979,12 @@ IF (TPFILE%LMASTER) THEN !references END IF ! -END SUBROUTINE IO_WRITE_HEADER_NC4 +END SUBROUTINE IO_Header_write_nc4 -SUBROUTINE IO_APPEND_HISTORY_NC4(TPFILE) +SUBROUTINE IO_History_append_nc4(TPFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File structure ! @@ -1995,7 +1998,7 @@ INTEGER,DIMENSION(8) :: IDATETIME ! IF (TRIM(TPFILE%CFORMAT)/='NETCDF4' .AND. TRIM(TPFILE%CFORMAT)/='LFICDF4') RETURN ! -CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_APPEND_HISTORY_NC4','called for file '//TRIM(TPFILE%CNAME)) +CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_History_append_nc4','called for file '//TRIM(TPFILE%CNAME)) ! IF (TPFILE%LMASTER) THEN !Check if history attribute already exists in file and read it @@ -2003,7 +2006,7 @@ IF (TPFILE%LMASTER) THEN IF (ISTATUS == NF90_NOERR) THEN ALLOCATE(CHARACTER(LEN=ILEN_PREV) :: YHISTORY_PREV) ISTATUS = NF90_GET_ATT(TPFILE%NNCID, NF90_GLOBAL, 'history', YHISTORY_PREV) - IF (ISTATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(ISTATUS,'IO_APPEND_HISTORY_NC4','NF90_GET_ATT','history') + IF (ISTATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(ISTATUS,'IO_History_append_nc4','NF90_GET_ATT','history') YHISTORY_PREV = YHISTORY_PREV ELSE ILEN_PREV = 0 @@ -2029,10 +2032,10 @@ IF (TPFILE%LMASTER) THEN YHISTORY = YHISTORY_NEW//NEW_LINE('A')//YHISTORY_PREV END IF ISTATUS = NF90_PUT_ATT(TPFILE%NNCID, NF90_GLOBAL, 'history', YHISTORY ) - IF (ISTATUS /= NF90_NOERR) CALL IO_HANDLE_ERR_NC4(istatus,'IO_APPEND_HISTORY_NC4','NF90_PUT_ATT','history') + IF (ISTATUS /= NF90_NOERR) CALL IO_Err_handle_nc4(istatus,'IO_History_append_nc4','NF90_PUT_ATT','history') END IF -END SUBROUTINE IO_APPEND_HISTORY_NC4 +END SUBROUTINE IO_History_append_nc4 end module mode_io_write_nc4 @@ -2040,22 +2043,22 @@ end module mode_io_write_nc4 ! ! External dummy subroutines ! -subroutine io_write_coordvar_nc4(a, b) +subroutine IO_Coordvar_write_nc4(a, b) use mode_msg integer :: a, b -CALL PRINT_MSG(NVERB_ERROR,'IO','io_write_coordvar_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine io_write_coordvar_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Coordvar_write_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_Coordvar_write_nc4 ! -subroutine io_write_field_nc4(a, b, c, d, e, f, g) +subroutine IO_Field_write_nc4(a, b, c, d, e, f, g) use mode_msg integer :: a, b, c, d, e, f, g -CALL PRINT_MSG(NVERB_ERROR,'IO','io_write_field_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine io_write_field_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Field_write_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_Field_write_nc4 ! -subroutine io_write_header_nc4(a) +subroutine IO_Header_write_nc4(a) use mode_msg integer :: a -CALL PRINT_MSG(NVERB_ERROR,'IO','io_write_header_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') -end subroutine io_write_header_nc4 +CALL PRINT_MSG(NVERB_ERROR,'IO','IO_Header_write_nc4','empty call. Compile with -DMNH_IOCDF4 flag to enable NetCDF') +end subroutine IO_Header_write_nc4 ! #endif diff --git a/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 b/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 index 72b5dc99b..19fcea8e5 100644 --- a/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 +++ b/src/LIB/SURCOUCHE/src/mode_lb_ll.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1999-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- @@ -1666,14 +1666,11 @@ ! ------------ ! USE MODD_CONF -! USE MODD_DIM_n USE MODD_DYN_n - USE MODD_IO_ll, ONLY : ISP,GSMONOPROC -! USE MODE_ll - USE MODE_IO_ll - USE MODE_MPPDB + USE MODD_IO, ONLY: ISP + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODE_DISTRIB_LB - USE MODD_PARAMETERS_ll, ONLY : JPHEXT ! IMPLICIT NONE ! diff --git a/src/LIB/SURCOUCHE/src/mode_mppdb.f90 b/src/LIB/SURCOUCHE/src/mode_mppdb.f90 index 575fb7b8e..ae15313af 100644 --- a/src/LIB/SURCOUCHE/src/mode_mppdb.f90 +++ b/src/LIB/SURCOUCHE/src/mode_mppdb.f90 @@ -610,13 +610,14 @@ CONTAINS SUBROUTINE MPPDB_CHECKLB(PLB,MESSAGE,PRECISION,HLBTYPE,KRIM) - USE MODD_PARAMETERS_ll, ONLY : JPHEXT - USE MODD_VAR_ll , ONLY : MPI_PRECISION , NMNH_COMM_WORLD - USE MODD_IO_ll, ONLY : ISP,ISNPROC,GSMONOPROC,LPACK,L2D - USE MODD_MPIF , ONLY : MPI_INTEGER, MPI_STATUS_IGNORE + USE MODD_IO, ONLY: GSMONOPROC, ISP, ISNPROC, L2D, LPACK + USE MODD_MPIF, ONLY: MPI_INTEGER, MPI_STATUS_IGNORE + USE MODD_PARAMETERS_ll, ONLY: JPHEXT + USE MODD_VAR_ll, ONLY: MPI_PRECISION, NMNH_COMM_WORLD USE MODE_DISTRIB_LB - USE MODE_TOOLS_ll, ONLY : GET_GLOBALDIMS_ll + USE MODE_TOOLS_ll, ONLY: GET_GLOBALDIMS_ll + IMPLICIT NONE REAL, DIMENSION(:,:,:) , TARGET :: PLB diff --git a/src/LIB/SURCOUCHE/src/mode_msg.f90 b/src/LIB/SURCOUCHE/src/mode_msg.f90 index ad5cd4191..27d206a3a 100644 --- a/src/LIB/SURCOUCHE/src/mode_msg.f90 +++ b/src/LIB/SURCOUCHE/src/mode_msg.f90 @@ -10,7 +10,7 @@ !----------------------------------------------------------------- MODULE MODE_MSG ! -USE MODD_IO_ll, ONLY : NVERB_FATAL,NVERB_ERROR,NVERB_WARNING,NVERB_INFO,NVERB_DEBUG +USE MODD_IO, ONLY: NVERB_FATAL, NVERB_ERROR, NVERB_WARNING, NVERB_INFO, NVERB_DEBUG ! IMPLICIT NONE ! @@ -18,18 +18,16 @@ CONTAINS ! SUBROUTINE PRINT_MSG(KVERB,HDOMAIN,HSUBR,HMSG) ! -USE ISO_FORTRAN_ENV, ONLY : ERROR_UNIT, OUTPUT_UNIT +USE ISO_FORTRAN_ENV, ONLY: ERROR_UNIT, OUTPUT_UNIT ! -USE MODD_CONF, ONLY : CPROGRAM -USE MODD_IO_ll, ONLY : NIO_VERB,NIO_ABORT_LEVEL,NGEN_VERB,NGEN_ABORT_LEVEL, & - LVERB_OUTLST, LVERB_STDOUT, LVERB_ALLPRC, TFILE_OUTPUTLISTING -USE MODD_LUNIT, ONLY : TLUOUT0 -USE MODD_VAR_ll, ONLY : IP, NMNH_COMM_WORLD +USE MODD_CONF, ONLY: CPROGRAM +USE MODD_IO, ONLY: NIO_VERB, NIO_ABORT_LEVEL, NGEN_VERB, NGEN_ABORT_LEVEL, & + LVERB_OUTLST, LVERB_STDOUT, LVERB_ALLPRC, TFILE_OUTPUTLISTING +USE MODD_LUNIT, ONLY: TLUOUT0 +USE MODD_VAR_ll, ONLY: IP, NMNH_COMM_WORLD ! use modi_tools_c ! -!USE MODE_FM, ONLY : IO_FILE_CLOSE_ll -! INTEGER, INTENT(IN) :: KVERB !Verbosity level CHARACTER(LEN=*),INTENT(IN) :: HDOMAIN !Domain/category of message CHARACTER(LEN=*),INTENT(IN) :: HSUBR !Subroutine/function name diff --git a/src/LIB/SURCOUCHE/src/mode_scatter.f90 b/src/LIB/SURCOUCHE/src/mode_scatter.f90 index cc933744a..8ee7b755f 100644 --- a/src/LIB/SURCOUCHE/src/mode_scatter.f90 +++ b/src/LIB/SURCOUCHE/src/mode_scatter.f90 @@ -1,16 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for CVS information -!----------------------------------------------------------------- -! $Source$ -! $Name$ -! $Revision$ -! $Date$ -!----------------------------------------------------------------- -!----------------------------------------------------------------- #ifdef MNH_MPI_DOUBLE_PRECISION #define MPI_FLOAT MPI_DOUBLE_PRECISION @@ -32,8 +24,6 @@ IMPLICIT NONE PRIVATE -!INCLUDE 'mpif.h' - INTERFACE SCATTER_XXFIELD MODULE PROCEDURE SCATTERXX_X1,SCATTERXX_X2,SCATTERXX_X3& & ,SCATTERXX_X4,SCATTERXX_X5,SCATTERXX_X6,& @@ -50,10 +40,10 @@ PUBLIC SCATTER_XXFIELD,SCATTER_XYFIELD,GET_DOMREAD_ll CONTAINS SUBROUTINE SCATTERXX_X1(HDIR,PSEND,PRECV,KROOT,KCOMM, TPSPLITTING) -USE MODD_IO_ll, ONLY : ISP, ISNPROC -USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll -USE MODD_PARAMETERS_ll, ONLY : JPHEXT +USE MODD_IO, ONLY: ISP, ISNPROC +USE MODD_PARAMETERS_ll, ONLY: JPHEXT +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll +USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:), TARGET, INTENT(IN) :: PSEND @@ -61,14 +51,11 @@ REAL,DIMENSION(:), INTENT(INOUT):: PRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM TYPE(ZONE_ll), DIMENSION(ISNPROC), OPTIONAL :: TPSPLITTING ! splitting of the domain - -!INCLUDE 'mpif.h' INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE REAL,DIMENSION(:), POINTER :: TX1DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS INTEGER,ALLOCATABLE,DIMENSION(:) :: REQ_TAB INTEGER :: NB_REQ @@ -122,9 +109,9 @@ END IF END SUBROUTINE SCATTERXX_X1 SUBROUTINE SCATTERXX_X2(HDIR,PSEND,PRECV,KROOT,KCOMM, TPSPLITTING) -USE MODD_IO_ll, ONLY : ISP, ISNPROC -USE MODD_STRUCTURE_ll, ONLY : ZONE_ll -USE MODD_PARAMETERS_ll, ONLY : JPHEXT +USE MODD_IO, ONLY: ISP, ISNPROC +USE MODD_PARAMETERS_ll, ONLY: JPHEXT +USE MODD_STRUCTURE_ll, ONLY: ZONE_ll CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:,:), TARGET,INTENT(IN) :: PSEND @@ -133,13 +120,10 @@ INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM TYPE(ZONE_ll), DIMENSION(ISNPROC), OPTIONAL :: TPSPLITTING ! splitting of the domain -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE REAL,DIMENSION(:,:), POINTER :: TX2DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS IF (ISP == KROOT) THEN DO JI = 1,ISNPROC @@ -172,7 +156,7 @@ END IF END SUBROUTINE SCATTERXX_X2 SUBROUTINE SCATTERXX_X3(HDIR,PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:,:,:), TARGET, INTENT(IN) :: PSEND @@ -180,13 +164,10 @@ REAL,DIMENSION(:,:,:), INTENT(INOUT):: PRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE REAL,DIMENSION(:,:,:), POINTER :: TX2DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS IF (ISP == KROOT) THEN DO JI = 1,ISNPROC @@ -212,7 +193,7 @@ END IF END SUBROUTINE SCATTERXX_X3 SUBROUTINE SCATTERXX_X4(HDIR,PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:,:,:,:),TARGET,INTENT(IN) :: PSEND @@ -220,13 +201,10 @@ REAL,DIMENSION(:,:,:,:), INTENT(INOUT):: PRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE REAL,DIMENSION(:,:,:,:), POINTER :: TX2DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS IF (ISP == KROOT) THEN DO JI = 1,ISNPROC @@ -252,7 +230,7 @@ END IF END SUBROUTINE SCATTERXX_X4 SUBROUTINE SCATTERXX_X5(HDIR,PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:,:,:,:,:),TARGET,INTENT(IN) :: PSEND @@ -260,14 +238,11 @@ REAL,DIMENSION(:,:,:,:,:), INTENT(INOUT):: PRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE REAL,DIMENSION(:,:,:,:,:), POINTER :: TX2DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS - + IF (ISP == KROOT) THEN DO JI = 1,ISNPROC CALL GET_DOMREAD_ll(JI,IXO,IXE,IYO,IYE) @@ -292,7 +267,7 @@ END IF END SUBROUTINE SCATTERXX_X5 SUBROUTINE SCATTERXX_X6(HDIR,PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR REAL,DIMENSION(:,:,:,:,:,:),TARGET,INTENT(IN) :: PSEND @@ -300,13 +275,10 @@ REAL,DIMENSION(:,:,:,:,:,:), INTENT(INOUT):: PRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE REAL,DIMENSION(:,:,:,:,:,:), POINTER :: TX2DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS IF (ISP == KROOT) THEN DO JI = 1,ISNPROC @@ -332,7 +304,7 @@ END IF END SUBROUTINE SCATTERXX_X6 SUBROUTINE SCATTERXX_N1(HDIR,KSEND,KRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR INTEGER,DIMENSION(:),TARGET,INTENT(IN) :: KSEND @@ -340,13 +312,10 @@ INTEGER,DIMENSION(:), INTENT(INOUT):: KRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE INTEGER, DIMENSION(:), POINTER :: TI2DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS IF (ISP == KROOT) THEN DO JI = 1,ISNPROC @@ -372,7 +341,7 @@ END IF END SUBROUTINE SCATTERXX_N1 SUBROUTINE SCATTERXX_N2(HDIR,KSEND,KRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC CHARACTER(LEN=*), INTENT(IN) :: HDIR INTEGER, DIMENSION(:,:),TARGET,INTENT(IN) :: KSEND @@ -380,13 +349,10 @@ INTEGER, DIMENSION(:,:), INTENT(INOUT):: KRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE INTEGER, DIMENSION(:,:), POINTER :: TI2DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS IF (ISP == KROOT) THEN DO JI = 1,ISNPROC @@ -412,21 +378,18 @@ END IF END SUBROUTINE SCATTERXX_N2 SUBROUTINE SCATTERXY_X2(PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC -USE MODD_VAR_ll, ONLY : MNH_STATUSES_IGNORE +USE MODD_IO, ONLY: ISP, ISNPROC +USE MODD_VAR_ll, ONLY: MNH_STATUSES_IGNORE REAL,DIMENSION(:,:),TARGET,INTENT(IN) :: PSEND REAL,DIMENSION(:,:), INTENT(INOUT):: PRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE REAL,DIMENSION(:,:), POINTER :: TX2DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS INTEGER,ALLOCATABLE,DIMENSION(:) :: REQ_TAB INTEGER :: NB_REQ @@ -468,20 +431,17 @@ END IF END SUBROUTINE SCATTERXY_X2 SUBROUTINE SCATTERXY_X3(PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC REAL,DIMENSION(:,:,:),TARGET,INTENT(IN) :: PSEND REAL,DIMENSION(:,:,:), INTENT(INOUT):: PRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE REAL,DIMENSION(:,:,:), POINTER :: TX3DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS IF (ISP == KROOT) THEN DO JI = 1,ISNPROC @@ -503,20 +463,17 @@ END IF END SUBROUTINE SCATTERXY_X3 SUBROUTINE SCATTERXY_X4(PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC REAL,DIMENSION(:,:,:,:),TARGET,INTENT(IN) :: PSEND REAL,DIMENSION(:,:,:,:), INTENT(INOUT):: PRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE REAL,DIMENSION(:,:,:,:), POINTER :: TX3DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS IF (ISP == KROOT) THEN DO JI = 1,ISNPROC @@ -538,21 +495,18 @@ END IF END SUBROUTINE SCATTERXY_X4 SUBROUTINE SCATTERXY_X5(PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC REAL,DIMENSION(:,:,:,:,:),TARGET,INTENT(IN) :: PSEND REAL,DIMENSION(:,:,:,:,:), INTENT(INOUT):: PRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE REAL,DIMENSION(:,:,:,:,:), POINTER :: TX3DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS - + IF (ISP == KROOT) THEN DO JI = 1,ISNPROC CALL GET_DOMREAD_ll(JI,IXO,IXE,IYO,IYE) @@ -573,21 +527,18 @@ END IF END SUBROUTINE SCATTERXY_X5 SUBROUTINE SCATTERXY_X6(PSEND,PRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC REAL,DIMENSION(:,:,:,:,:,:),TARGET,INTENT(IN) :: PSEND REAL,DIMENSION(:,:,:,:,:,:), INTENT(INOUT):: PRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE REAL,DIMENSION(:,:,:,:,:,:), POINTER :: TX3DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS - + IF (ISP == KROOT) THEN DO JI = 1,ISNPROC CALL GET_DOMREAD_ll(JI,IXO,IXE,IYO,IYE) @@ -608,20 +559,17 @@ END IF END SUBROUTINE SCATTERXY_X6 SUBROUTINE SCATTERXY_N2(KSEND,KRECV,KROOT,KCOMM) -USE MODD_IO_ll, ONLY : ISP, ISNPROC +USE MODD_IO, ONLY: ISP, ISNPROC INTEGER,DIMENSION(:,:),TARGET,INTENT(IN) :: KSEND INTEGER,DIMENSION(:,:), INTENT(INOUT):: KRECV INTEGER, INTENT(IN) :: KROOT INTEGER, INTENT(IN) :: KCOMM -!INCLUDE 'mpif.h' - INTEGER :: IERR INTEGER :: JI INTEGER :: IXO,IXE,IYO,IYE INTEGER ,DIMENSION(:,:), POINTER :: TI3DP -!INTEGER, DIMENSION(MPI_STATUS_SIZE) :: STATUS IF (ISP == KROOT) THEN DO JI = 1,ISNPROC @@ -643,8 +591,8 @@ END IF END SUBROUTINE SCATTERXY_N2 SUBROUTINE GET_DOMREAD_ll(KIP,KXOR,KXEND,KYOR,KYEND) -USE MODD_VAR_ll, ONLY : TCRRT_PROCONF -USE MODD_STRUCTURE_ll, ONLY : MODELSPLITTING_ll +USE MODD_STRUCTURE_ll, ONLY: MODELSPLITTING_ll +USE MODD_VAR_ll, ONLY: TCRRT_PROCONF IMPLICIT NONE diff --git a/src/LIB/SURCOUCHE/src/modi_fm.f90 b/src/LIB/SURCOUCHE/src/modi_fm.f90 deleted file mode 100644 index c64838a04..000000000 --- a/src/LIB/SURCOUCHE/src/modi_fm.f90 +++ /dev/null @@ -1,37 +0,0 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -! Modifications: -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) -!----------------------------------------------------------------- - -MODULE MODI_FM_ll -! -INTERFACE -! -SUBROUTINE SET_FMPACK_ll(O1D,O2D,OPACK) -LOGICAL, INTENT(IN) :: O1D,O2D,OPACK -END SUBROUTINE SET_FMPACK_ll -! -SUBROUTINE IO_FILE_OPEN_ll(TPFILE,KRESP,HPOSITION,HSTATUS,HPROGRAM_ORIG) -USE MODD_IO_ll, ONLY: TFILEDATA -TYPE(TFILEDATA),POINTER,INTENT(INOUT) :: TPFILE ! File structure -INTEGER, INTENT(OUT), OPTIONAL :: KRESP ! Return code -CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPOSITION -CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HSTATUS -CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program -END SUBROUTINE IO_FILE_OPEN_ll -! -SUBROUTINE IO_FILE_CLOSE_ll(TPFILE,KRESP,HPROGRAM_ORIG) -USE MODD_IO_ll, ONLY: TFILEDATA -TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE ! File structure -INTEGER, INTENT(OUT), OPTIONAL :: KRESP ! Return code -CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program -END SUBROUTINE IO_FILE_CLOSE_ll -! -END INTERFACE -END MODULE MODI_FM_ll diff --git a/src/LIB/SURCOUCHE/src/modi_io.f90 b/src/LIB/SURCOUCHE/src/modi_io.f90 deleted file mode 100644 index b4fee82f8..000000000 --- a/src/LIB/SURCOUCHE/src/modi_io.f90 +++ /dev/null @@ -1,49 +0,0 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier -!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt -!MNH_LIC for details. version 1. -!----------------------------------------------------------------- -! Modifications: -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 06/02/2019: simplify OPEN_ll and do somme assignments at a more logical place -! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) -!----------------------------------------------------------------- - -MODULE MODI_IO_ll -! -INTERFACE - SUBROUTINE INITIO_ll() - END SUBROUTINE INITIO_ll - - SUBROUTINE OPEN_ll(& - TPFILE, & - MODE, & - STATUS, & - IOSTAT, & - POSITION,& - DELIM, & - HPROGRAM_ORIG) - - USE MODD_IO_ll, ONLY : TFILEDATA - - TYPE(TFILEDATA), INTENT(INOUT) :: TPFILE - CHARACTER(len=*),INTENT(IN), OPTIONAL :: MODE - CHARACTER(len=*),INTENT(IN), OPTIONAL :: STATUS - INTEGER, INTENT(OUT) :: IOSTAT - CHARACTER(len=*),INTENT(IN), OPTIONAL :: POSITION - CHARACTER(len=*),INTENT(IN), OPTIONAL :: DELIM - CHARACTER(LEN=*),INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program - END SUBROUTINE OPEN_ll - - SUBROUTINE CLOSE_ll(TPFILE,IOSTAT,HPROGRAM_ORIG) - USE MODD_IO_ll, ONLY : TFILEDATA - - TYPE(TFILEDATA), INTENT(IN) :: TPFILE - INTEGER, INTENT(OUT), OPTIONAL :: IOSTAT - CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: HPROGRAM_ORIG !To emulate a file coming from this program - END SUBROUTINE CLOSE_ll - -END INTERFACE -! -END MODULE MODI_IO_ll diff --git a/src/LIB/SURCOUCHE/src/modn_confio.f90 b/src/LIB/SURCOUCHE/src/modn_confio.f90 index b4a4ea3be..8505a61f9 100644 --- a/src/LIB/SURCOUCHE/src/modn_confio.f90 +++ b/src/LIB/SURCOUCHE/src/modn_confio.f90 @@ -13,7 +13,7 @@ !! ------- ! Define I/O configuration variables that can be set with the NAM_CONFIO namelist !! /!\ These variables must be transmitted to the SURCOUCHE library via the -!! SET_CONFIO_ll subroutine before the FIRST call to IO_FILE_OPEN_ll +!! IO_Config_set subroutine before the FIRST call to IO_FILE_OPEN_ll ! !! !!** IMPLICIT ARGUMENTS @@ -36,9 +36,9 @@ !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_ll, ONLY : LVERB_OUTLST, LVERB_STDOUT, LVERB_ALLPRC, & - NIO_VERB, NIO_ABORT_LEVEL, NGEN_VERB, NGEN_ABORT_LEVEL, & - CIO_DIR, LIO_ALLOW_NO_BACKUP, LIO_NO_WRITE +USE MODD_IO, ONLY : LVERB_OUTLST, LVERB_STDOUT, LVERB_ALLPRC, & + NIO_VERB, NIO_ABORT_LEVEL, NGEN_VERB, NGEN_ABORT_LEVEL, & + CIO_DIR, LIO_ALLOW_NO_BACKUP, LIO_NO_WRITE ! IMPLICIT NONE ! diff --git a/src/LIB/SURCOUCHE/src/system_mnh.f90 b/src/LIB/SURCOUCHE/src/system_mnh.f90 index ccdcc751d..b43981265 100644 --- a/src/LIB/SURCOUCHE/src/system_mnh.f90 +++ b/src/LIB/SURCOUCHE/src/system_mnh.f90 @@ -12,7 +12,6 @@ SUBROUTINE SYSTEM_MNH(HCOMMAND) !! Modifications: !! Philippe Wautelet: 10/01/2019: use NEWUNIT argument of OPEN !! - USE MODE_IO_ll !! !* 0. DECLARATIONS ! ------------ diff --git a/src/MNH/adjust_langlois.f90 b/src/MNH/adjust_langlois.f90 index 57f958bdf..ed6df1d2a 100644 --- a/src/MNH/adjust_langlois.f90 +++ b/src/MNH/adjust_langlois.f90 @@ -118,7 +118,6 @@ USE MODD_BUDGET ! USE MODI_CONDENSATION USE MODI_BUDGET -USE MODE_FMWRIT ! IMPLICIT NONE ! diff --git a/src/MNH/adv_forcingn.f90 b/src/MNH/adv_forcingn.f90 index a4a4038b6..5a8246825 100644 --- a/src/MNH/adv_forcingn.f90 +++ b/src/MNH/adv_forcingn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ##################### MODULE MODI_ADV_FORCING_n @@ -100,21 +100,17 @@ END MODULE MODI_ADV_FORCING_n !* 0. DECLARATIONS ! ------------ ! -USE MODE_DATETIME -USE MODE_FM -USE MODE_IO_ll -! +USE MODD_ADVFRC_n ! Modules for time evolving advfrc +USE MODD_BUDGET USE MODD_DYN USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS USE MODD_TIME -USE MODD_BUDGET ! -USE MODI_BUDGET +USE MODE_DATETIME ! -USE MODD_ADVFRC_n ! Modules for time evolving advfrc +USE MODI_BUDGET USE MODI_SHUMAN -!USE MODD_FRC ! IMPLICIT NONE ! diff --git a/src/MNH/advec_4th_order_aux.f90 b/src/MNH/advec_4th_order_aux.f90 index 6bffab256..190a59d22 100644 --- a/src/MNH/advec_4th_order_aux.f90 +++ b/src/MNH/advec_4th_order_aux.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2005-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ############################### @@ -106,11 +106,10 @@ END MODULE MODI_ADVEC_4TH_ORDER_AUX !* 0. DECLARATIONS ! ------------ ! -USE MODE_ll -! +USE MODD_ARGSLIST_ll, ONLY: HALO2LIST_ll USE MODD_CONF -USE MODD_ARGSLIST_ll, ONLY : HALO2LIST_ll -USE MODE_IO_ll +! +USE MODE_ll ! IMPLICIT NONE ! diff --git a/src/MNH/advection_metsv.f90 b/src/MNH/advection_metsv.f90 index 3ec0b2a5c..485238b02 100644 --- a/src/MNH/advection_metsv.f90 +++ b/src/MNH/advection_metsv.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################### @@ -17,7 +17,7 @@ INTERFACE PRTHS, PRRS, PRTKES, PRSVS, & PRTHS_CLD, PRRS_CLD, PRSVS_CLD, PRTKES_ADV ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_TYPE_DATE, ONLY: DATE_TIME ! LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous @@ -143,19 +143,18 @@ END MODULE MODI_ADVECTION_METSV ! USE MODD_BUDGET USE MODD_CST -USE MODD_CTURB, ONLY: XTKEMIN -USE MODD_CONF, ONLY: LNEUTRAL,NHALO,L1D, L2D -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_CTURB, ONLY: XTKEMIN +USE MODD_CONF, ONLY: LNEUTRAL,NHALO,L1D, L2D +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAM_n -USE MODD_TYPE_DATE, ONLY: DATE_TIME +USE MODD_TYPE_DATE, ONLY: DATE_TIME USE MODD_BLOWSNOW USE MODD_BLOWSNOW_n USE MODD_PARAMETERS ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL -USE MODE_FMWRIT -USE MODE_IO_ll +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll USE MODE_MSG ! @@ -342,7 +341,7 @@ IF (OCLOSE_OUT .AND. OCFL_WRIT .AND. (.NOT. L1D)) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZCFLU) + CALL IO_Field_write(TPFILE,TZFIELD,ZCFLU) ! IF (.NOT. L2D) THEN TZFIELD%CMNHNAME = 'CFLV' @@ -355,7 +354,7 @@ IF (OCLOSE_OUT .AND. OCFL_WRIT .AND. (.NOT. L1D)) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZCFLV) + CALL IO_Field_write(TPFILE,TZFIELD,ZCFLV) END IF ! TZFIELD%CMNHNAME = 'CFLW' @@ -368,7 +367,7 @@ IF (OCLOSE_OUT .AND. OCFL_WRIT .AND. (.NOT. L1D)) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZCFLW) + CALL IO_Field_write(TPFILE,TZFIELD,ZCFLW) ! TZFIELD%CMNHNAME = 'CFL' TZFIELD%CSTDNAME = '' @@ -380,7 +379,7 @@ IF (OCLOSE_OUT .AND. OCFL_WRIT .AND. (.NOT. L1D)) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZCFL) + CALL IO_Field_write(TPFILE,TZFIELD,ZCFL) END IF ! !* prints in the output file the maximum CFL diff --git a/src/MNH/aerozon.f90 b/src/MNH/aerozon.f90 index 04808cb47..41989f6b5 100644 --- a/src/MNH/aerozon.f90 +++ b/src/MNH/aerozon.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -162,8 +162,6 @@ USE MODD_GROUND_PAR USE MODD_PARAM_RAD_n, ONLY: LFIX_DAT ! USE MODE_ll -USE MODE_FM -USE MODE_FMREAD ! USE MODI_SHUMAN USE MODI_INI_RADCONF diff --git a/src/MNH/aircraft_balloon_evol.f90 b/src/MNH/aircraft_balloon_evol.f90 index df4675587..12f4f595d 100644 --- a/src/MNH/aircraft_balloon_evol.f90 +++ b/src/MNH/aircraft_balloon_evol.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -175,7 +175,6 @@ USE MODE_DATETIME USE MODE_FGAU, ONLY: GAULAG USE MODE_FSCATTER, ONLY: QEPSW,QEPSI,BHMIE,MOMG,MG USE MODE_GRIDPROJ -USE MODE_IO_ll USE MODE_ll USE MODE_MSG ! diff --git a/src/MNH/anel_balancen.f90 b/src/MNH/anel_balancen.f90 index ad0f32051..e5aa55cfe 100644 --- a/src/MNH/anel_balancen.f90 +++ b/src/MNH/anel_balancen.f90 @@ -108,7 +108,6 @@ END MODULE MODI_ANEL_BALANCE_n ! ! USE MODE_ll -USE MODE_IO_ll USE MODE_MODELN_HANDLER ! USE MODD_CONF ! declarative modules diff --git a/src/MNH/budget.f90 b/src/MNH/budget.f90 index a4d5256d2..c8fe1b6cb 100644 --- a/src/MNH/budget.f90 +++ b/src/MNH/budget.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !################## @@ -90,8 +90,6 @@ USE MODD_CONF, ONLY : LCHECK USE MODD_NSV, ONLY : NSV USE MODD_LES ! -USE MODE_FM -USE MODE_IO_ll USE MODE_MSG ! USE MODI_LES_BUDGET diff --git a/src/MNH/c2r2_adjust.f90 b/src/MNH/c2r2_adjust.f90 index 29333957d..aeaeaa05e 100644 --- a/src/MNH/c2r2_adjust.f90 +++ b/src/MNH/c2r2_adjust.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -15,7 +15,7 @@ INTERFACE PTHS, PRVS, PRCS, PCNUCS, & PCCS, PSRCS, PCLDFR, PRRS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KRR ! Number of moist variables TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file @@ -152,18 +152,18 @@ END MODULE MODI_C2R2_ADJUST USE MODD_BUDGET USE MODD_CONF USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LUNIT_n, ONLY: TLUOUT -USE MODD_NSV, ONLY: NSV_C2R2BEG +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_NSV, ONLY: NSV_C2R2BEG USE MODD_PARAMETERS ! -USE MODI_CONDENS -USE MODI_BUDGET -! USE MODE_FIELD -USE MODE_FMWRIT +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG ! +USE MODI_CONDENS +USE MODI_BUDGET +! IMPLICIT NONE ! !* 0.1 Declarations of dummy arguments : @@ -423,7 +423,7 @@ IF ( OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZW1) + CALL IO_Field_write(TPFILE,TZFIELD,ZW1) END IF ! ! diff --git a/src/MNH/call_rttov11.f90 b/src/MNH/call_rttov11.f90 index 3a5f6b338..70d452642 100644 --- a/src/MNH/call_rttov11.f90 +++ b/src/MNH/call_rttov11.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################## @@ -12,7 +12,7 @@ INTERFACE PTHT, PRT, PPABST, PZZ, PMFCONV, PCLDFR, PULVLKB, PVLVLKB, & OUSERI, KRTTOVINFO, TPFILE ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KDLON !number of columns where the !radiation calculations are performed @@ -90,23 +90,20 @@ SUBROUTINE CALL_RTTOV11(KDLON, KFLEV, PEMIS, PTSRAD, & USE MODD_CST USE MODD_PARAMETERS USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n USE MODD_DEEP_CONVECTION_n USE MODD_REF_n USE MODD_RADIATIONS_n, ONLY : XSEA ! USE MODN_CONF -! +! USE MODI_DETER_ANGLE USE MODI_PINTER ! USE MODE_FIELD -USE MODE_FMWRIT -USE MODE_FMREAD +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll -USE MODE_FM -USE MODE_IO_ll USE MODE_MSG USE MODE_POS ! @@ -579,7 +576,7 @@ DO JSAT=1,IJSAT ! loop over sensors TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .FALSE. ! PRINT *,'YRECFM='//TRIM(TZFIELD%CMNHNAME) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZBT(:,:,JCH)) + CALL IO_Field_write(TPFILE,TZFIELD,ZBT(:,:,JCH)) END DO DEALLOCATE(chanprof,frequencies,emissivity,calcemis,profiles,cld_profiles) DEALLOCATE(ZBT) diff --git a/src/MNH/call_rttov8.f90 b/src/MNH/call_rttov8.f90 index d8ae1818b..6180ec0f9 100644 --- a/src/MNH/call_rttov8.f90 +++ b/src/MNH/call_rttov8.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -12,7 +12,7 @@ INTERFACE PTHT, PRT, PPABST, PZZ, PMFCONV, PCLDFR, PULVLKB, PVLVLKB, & OUSERI, KRTTOVINFO, TPFILE ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KDLON !number of columns where the !radiation calculations are performed @@ -90,7 +90,7 @@ SUBROUTINE CALL_RTTOV8(KDLON, KFLEV, KSTATM, PEMIS, PTSRAD, PSTATM, & !! ------------ !! USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_GRID_n USE MODD_DEEP_CONVECTION_n @@ -98,18 +98,15 @@ USE MODD_REF_n USE MODD_RADIATIONS_n, ONLY : XSEA ! USE MODN_CONF -! +! USE MODD_RAD_TRANSF -! +! USE MODI_DETER_ANGLE USE MODI_PINTER ! USE MODE_FIELD -USE MODE_FMWRIT -USE MODE_FMREAD +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll -USE MODE_FM -USE MODE_IO_ll USE MODE_MSG USE MODE_POS ! @@ -1582,7 +1579,7 @@ DO JSAT=1,IJSAT ! loop over sensors TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. PRINT *,TZFIELD%CMNHNAME//TZFIELD%CCOMMENT - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZANTMP) + CALL IO_Field_write(TPFILE,TZFIELD,ZANTMP) END IF DEALLOCATE(ZANTMP) ! ----------------------------------------------------------------------------- @@ -1641,7 +1638,7 @@ DO JSAT=1,IJSAT ! loop over sensors PRINT *,TZFIELD%CMNHNAME//TZFIELD%CCOMMENT, & MINVAL(ZTBTMP(:,:,JCH),ZTBTMP(:,:,JCH)/=XUNDEF), & MAXVAL(ZTBTMP(:,:,JCH),ZTBTMP(:,:,JCH)/=XUNDEF) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTBTMP(:,:,JCH)) + CALL IO_Field_write(TPFILE,TZFIELD,ZTBTMP(:,:,JCH)) IF (KRTTOVINFO(3,JSAT) == 4.AND. JCH==3 ) THEN ! AMSU-B TZFIELD%CMNHNAME = TRIM(YBEG)//'_UTH' TZFIELD%CSTDNAME = '' @@ -1670,7 +1667,7 @@ DO JSAT=1,IJSAT ! loop over sensors END IF END DO END DO - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZUTH) + CALL IO_Field_write(TPFILE,TZFIELD,ZUTH) DEALLOCATE(ZUTH) END IF END DO @@ -1737,7 +1734,7 @@ DO JSAT=1,IJSAT ! loop over sensors PRINT *,TZFIELD%CMNHNAME//TZFIELD%CCOMMENT, & MINVAL(ZTEMPK(:,:,:),ZTEMPK(:,:,:)/=XUNDEF), & MAXVAL(ZTEMPK(:,:,:),ZTEMPK(:,:,:)/=XUNDEF) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTEMPK(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZTEMPK(:,:,:)) ! TZFIELD%CMNHNAME = TRIM(YBEG)//'_'//TRIM(YEND)//'JAV' TZFIELD%CSTDNAME = '' @@ -1754,7 +1751,7 @@ DO JSAT=1,IJSAT ! loop over sensors PRINT *,TZFIELD%CMNHNAME//TZFIELD%CCOMMENT, & MINVAL(ZWVAPK(:,:,:),ZWVAPK(:,:,:)/=XUNDEF), & MAXVAL(ZWVAPK(:,:,:),ZWVAPK(:,:,:)/=XUNDEF) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWVAPK(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWVAPK(:,:,:)) END DO DEALLOCATE(ZTEMPKP,ZWVAPKP,ZFIN) ENDIF diff --git a/src/MNH/ch_aer_mod_init.f90 b/src/MNH/ch_aer_mod_init.f90 index 86313a9ed..b5a2409aa 100644 --- a/src/MNH/ch_aer_mod_init.f90 +++ b/src/MNH/ch_aer_mod_init.f90 @@ -1,4 +1,4 @@ -!ORILAM_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!ORILAM_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !ORILAM_LIC This is part of the ORILAM software governed by the CeCILL-C licence !ORILAM_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !ORILAM_LIC for details. @@ -50,11 +50,11 @@ END MODULE MODI_CH_AER_MOD_INIT !! ------------------ USE MODD_CH_AEROSOL USE MODD_GLO -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_UNIFACPARAM ! -USE MODE_FM, ONLY: IO_FILE_OPEN_ll,IO_FILE_CLOSE_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST +USE MODE_IO_FILE, ONLY: IO_File_open,IO_File_close +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_UNIFAC ! ! @@ -84,8 +84,8 @@ TZFILE => NULL() ! Initialize the mineral tabulation IF (CMINERAL == 'NARES') THEN ! .. the file ares.w contains the weights of the model - CALL IO_FILE_ADD2LIST(TZFILE,'ares1A.w','CHEMTAB','READ') - CALL IO_FILE_OPEN_ll(TZFILE) + CALL IO_File_add2list(TZFILE,'ares1A.w','CHEMTAB','READ') + CALL IO_File_open(TZFILE) ILU = TZFILE%NLU READ(ILU,*) I1IA,J1JA,K1KA DO JI=1,I1IA @@ -100,11 +100,11 @@ IF (CMINERAL == 'NARES') THEN DO JJ=1,J1JA+1 READ(ILU,*) (W1JKA(JJ,JK),JK=1,K1KA) ENDDO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ! - CALL IO_FILE_ADD2LIST(TZFILE,'ares1C.w','CHEMTAB','READ') - CALL IO_FILE_OPEN_ll(TZFILE) + CALL IO_File_add2list(TZFILE,'ares1C.w','CHEMTAB','READ') + CALL IO_File_open(TZFILE) ILU = TZFILE%NLU READ(ILU,*) I1IC,J1JC,K1KC DO JI=1,I1IC @@ -119,11 +119,11 @@ IF (CMINERAL == 'NARES') THEN DO JJ=1,J1JC+1 READ(ILU,*) (W1JKC(JJ,JK),JK=1,K1KC) ENDDO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ! - CALL IO_FILE_ADD2LIST(TZFILE,'ares2A.w','CHEMTAB','READ') - CALL IO_FILE_OPEN_ll(TZFILE) + CALL IO_File_add2list(TZFILE,'ares2A.w','CHEMTAB','READ') + CALL IO_File_open(TZFILE) ILU = TZFILE%NLU READ(ILU,*) I2IA,J2JA,K2KA DO JI=1,I2IA @@ -138,11 +138,11 @@ IF (CMINERAL == 'NARES') THEN DO JJ=1,J2JA+1 READ(ILU,*) (W2JKA(JJ,JK),JK=1,K2KA) ENDDO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ! - CALL IO_FILE_ADD2LIST(TZFILE,'ares2B.w','CHEMTAB','READ') - CALL IO_FILE_OPEN_ll(TZFILE) + CALL IO_File_add2list(TZFILE,'ares2B.w','CHEMTAB','READ') + CALL IO_File_open(TZFILE) ILU = TZFILE%NLU READ(ILU,*) I2IB,J2JB,K2KB DO JI=1,I2IB @@ -157,11 +157,11 @@ IF (CMINERAL == 'NARES') THEN DO JJ=1,J2JB+1 READ(ILU,*) (W2JKB(JJ,JK),JK=1,K2KB) ENDDO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ! - CALL IO_FILE_ADD2LIST(TZFILE,'ares2C.w','CHEMTAB','READ') - CALL IO_FILE_OPEN_ll(TZFILE) + CALL IO_File_add2list(TZFILE,'ares2C.w','CHEMTAB','READ') + CALL IO_File_open(TZFILE) ILU = TZFILE%NLU READ(ILU,*) I2IC,J2JC,K2KC DO JI=1,I2IC @@ -176,7 +176,7 @@ IF (CMINERAL == 'NARES') THEN DO JJ=1,J2JC+1 READ(ILU,*) (W2JKC(JJ,JK),JK=1,K2KC) ENDDO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ! END IF @@ -188,8 +188,8 @@ IF (CMINERAL == 'TABUL') THEN IF(.NOT.ALLOCATED(znh)) ALLOCATE(znh(22)) IF(.NOT.ALLOCATED(zni)) ALLOCATE(zni(22)) IF(.NOT.ALLOCATED(zf)) ALLOCATE(zf(16,11,22,22,22,3)) - CALL IO_FILE_ADD2LIST(TZFILE,'AEROMIN_NEW','CHEMTAB','READ') - CALL IO_FILE_OPEN_ll(TZFILE) + CALL IO_File_add2list(TZFILE,'AEROMIN_NEW','CHEMTAB','READ') + CALL IO_File_open(TZFILE) ILU = TZFILE%NLU WRITE(*,*) 'LOADING MINERAL AEROSOL DATA ...' @@ -220,7 +220,7 @@ IF (CMINERAL == 'TABUL') THEN ENDDO ENDDO WRITE(*,*) 'END LOADING' - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ENDIF diff --git a/src/MNH/ch_emission_flux0d.f90 b/src/MNH/ch_emission_flux0d.f90 index 2cbcf2ff6..2795fe267 100644 --- a/src/MNH/ch_emission_flux0d.f90 +++ b/src/MNH/ch_emission_flux0d.f90 @@ -73,15 +73,14 @@ END MODULE MODI_CH_EMISSION_FLUX0D !! !! EXTERNAL !! -------- -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll -USE MODE_IO_ll +USE MODD_IO, ONLY: TFILEDATA +USE MODE_IO_FILE, ONLY: IO_File_close ! USE MODI_CH_OPEN_INPUT !! !! IMPLICIT ARGUMENTS !! ------------------ -USE MODD_CH_M9_n, ONLY: NEQ, CNAMES +USE MODD_CH_M9_n, ONLY: NEQ, CNAMES !! !------------------------------------------------------------------------------ ! @@ -198,7 +197,7 @@ IF (LSFIRSTCALL) THEN ! ! close file ! - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) ! !* 2. MAP DATA ONTO PROGNOSTIC VARIABLES ! --------------------------------------- diff --git a/src/MNH/ch_field_valuen.f90 b/src/MNH/ch_field_valuen.f90 index c20e8e858..22796effc 100644 --- a/src/MNH/ch_field_valuen.f90 +++ b/src/MNH/ch_field_valuen.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !! ############################ @@ -74,8 +74,8 @@ END MODULE MODI_CH_FIELD_VALUE_n !! EXTERNAL !! -------- USE MODI_CH_OPEN_INPUT ! open general purpose ASCII input file -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll +USE MODD_IO, ONLY: TFILEDATA +USE MODE_IO_FILE, ONLY: IO_File_close !! !! IMPLICIT ARGUMENTS !! ------------------ @@ -169,7 +169,7 @@ firstcall: IF (GSFIRSTCALL) THEN END IF ! ! close file - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ! ! check if Z-profile is given in increasing order, otherwise stop @@ -214,7 +214,7 @@ firstcall: IF (GSFIRSTCALL) THEN ENDDO ! ! close file - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ! ! @@ -261,7 +261,7 @@ firstcall: IF (GSFIRSTCALL) THEN ENDDO ! ! close file - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ! ENDIF firstcall diff --git a/src/MNH/ch_init_constn.f90 b/src/MNH/ch_init_constn.f90 index 4d5dc7882..08109e2bf 100644 --- a/src/MNH/ch_init_constn.f90 +++ b/src/MNH/ch_init_constn.f90 @@ -61,8 +61,8 @@ END MODULE MODI_CH_INIT_CONST_n !! EXTERNAL !! -------- USE MODI_CH_OPEN_INPUT ! open the general purpose ASCII input file -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll +USE MODD_IO, ONLY: TFILEDATA +USE MODE_IO_FILE, ONLY: IO_File_close !! !! IMPLICIT ARGUMENTS @@ -151,7 +151,7 @@ DO JI = 1, IMASS END DO ! ! close file -CALL IO_FILE_CLOSE_ll(TZFILE) +CALL IO_File_close(TZFILE) TZFILE => NULL() ! ! @@ -205,7 +205,7 @@ DO JI = 1, IREACT END DO ! ! close file -CALL IO_FILE_CLOSE_ll(TZFILE) +CALL IO_File_close(TZFILE) TZFILE => NULL() ! ! @@ -262,7 +262,7 @@ DO JNREAL = 1, IHENRY END DO ! ! close file -CALL IO_FILE_CLOSE_ll(TZFILE) +CALL IO_File_close(TZFILE) TZFILE => NULL() ! IF (KVERB >= 10) THEN diff --git a/src/MNH/ch_init_meteo.f90 b/src/MNH/ch_init_meteo.f90 index 95191d0f6..d290e5196 100644 --- a/src/MNH/ch_init_meteo.f90 +++ b/src/MNH/ch_init_meteo.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !! ######################### @@ -58,8 +58,7 @@ END MODULE MODI_CH_INIT_METEO !! EXTERNAL !! -------- USE MODI_CH_OPEN_INPUT -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll -USE MODE_IO_ll +USE MODE_IO_FILE, ONLY: IO_File_close !! !! IMPLICIT ARGUMENTS !! ------------------ @@ -138,6 +137,6 @@ END DO ! ! close file ! -CALL IO_FILE_CLOSE_ll(TMETEOFILE) +CALL IO_File_close(TMETEOFILE) ! END SUBROUTINE CH_INIT_METEO diff --git a/src/MNH/ch_model0d.f90 b/src/MNH/ch_model0d.f90 index da17517f3..fbff58f80 100644 --- a/src/MNH/ch_model0d.f90 +++ b/src/MNH/ch_model0d.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################## @@ -81,10 +81,10 @@ USE MODD_CH_M9_n, ONLY: NEQ, NREAC, & ! no. of species & reactions CNAMES, & ! names of chem. species METEOTRANSTYPE ! TYPE of meteo struct variable -USE MODD_CONF, ONLY : CPROGRAM -USE MODD_CH_M9_SCHEME, ONLY : CCSTYPE,TACCS +USE MODD_CONF, ONLY: CPROGRAM +USE MODD_CH_M9_SCHEME, ONLY: CCSTYPE,TACCS -USE MODE_IO_ll +USE MODE_IO, only: IO_Init USE MODE_MODELN_HANDLER !! !! @@ -184,7 +184,7 @@ XCH_TUV_DOBNEW = 320. ! O3 dobson (to be modified) ! !* 1. INITIALISATION ! ------------------- -CALL INITIO_ll() +CALL IO_Init() ! !* 1.1 read namelist and initialize time control variables ! diff --git a/src/MNH/ch_open_input.f90 b/src/MNH/ch_open_input.f90 index 95f17a316..8ffa174d6 100644 --- a/src/MNH/ch_open_input.f90 +++ b/src/MNH/ch_open_input.f90 @@ -11,7 +11,7 @@ INTERFACE !! SUBROUTINE CH_OPEN_INPUT(HCHEM_INPUT_FILE,HKEYWORD,TPFILE,KLUOUT,KVERB) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! IMPLICIT NONE ! @@ -72,10 +72,10 @@ SUBROUTINE CH_OPEN_INPUT(HCHEM_INPUT_FILE,HKEYWORD,TPFILE,KLUOUT,KVERB) !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! -USE MODE_FM, ONLY: IO_FILE_OPEN_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST +USE MODE_IO_FILE, ONLY: IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list ! IMPLICIT NONE ! @@ -91,7 +91,7 @@ INTEGER, INTENT(IN) :: KVERB ! verbosity level ! CHARACTER(LEN=79) :: YIN ! character string for line-by-line read INTEGER :: ILU -INTEGER :: IRESP ! return code from IO_FILE_OPEN_ll +INTEGER :: IRESP ! return code from IO_File_open ! !------------------------------------------------------------------------------- ! @@ -101,13 +101,13 @@ TPFILE => NULL() ! ----------------------- ! IF (KVERB >= 5) WRITE(KLUOUT,*) "CH_OPEN_INPUT: opening file ", HCHEM_INPUT_FILE -CALL IO_FILE_ADD2LIST(TPFILE,HCHEM_INPUT_FILE,'CHEMINPUT','READ',OOLD=.TRUE.) -CALL IO_FILE_OPEN_ll(TPFILE,KRESP=IRESP) +CALL IO_File_add2list(TPFILE,HCHEM_INPUT_FILE,'CHEMINPUT','READ',OOLD=.TRUE.) +CALL IO_File_open(TPFILE,KRESP=IRESP) ILU = TPFILE%NLU ! IF (IRESP /= 0) THEN WRITE(KLUOUT,*) "CH_OPEN_INPUT ERROR: unable to open file", HCHEM_INPUT_FILE - WRITE(KLUOUT,*) " IO_FILE_OPEN_ll return code is: ", IRESP + WRITE(KLUOUT,*) " IO_File_open return code is: ", IRESP WRITE(KLUOUT,*) " the program will be stopped now" ! callabortstop CALL ABORT diff --git a/src/MNH/ch_read_chem.f90 b/src/MNH/ch_read_chem.f90 index 56e358524..fe8e3fbe6 100644 --- a/src/MNH/ch_read_chem.f90 +++ b/src/MNH/ch_read_chem.f90 @@ -60,16 +60,17 @@ END MODULE MODI_CH_READ_CHEM !! !! EXTERNAL !! -------- +USE MODE_IO_FILE, ONLY: IO_File_close +! USE MODI_CH_OPEN_INPUT USE MODI_CH_READ_VECTOR -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll !! !! IMPLICIT ARGUMENTS !! ------------------ -USE MODD_CH_MODEL0D, ONLY: NVERB -USE MODD_CH_M9_n, ONLY: NEQ, CNAMES USE MODD_CH_AEROSOL +USE MODD_CH_M9_n, ONLY: NEQ, CNAMES +USE MODD_CH_MODEL0D, ONLY: NVERB +USE MODD_IO, ONLY: TFILEDATA !! !! EXPLICIT ARGUMENTS !! ------------------ @@ -109,7 +110,7 @@ IF (HFILE(1:14) .EQ. "CHCONTROL1.nam") THEN CALL CH_READ_VECTOR(NEQ, CNAMES, PCONC, 0.0, IIN, 6, NVERB) IF (LORILAM) CALL CH_READ_VECTOR(SIZE(PAERO,1), CAERONAMES, PAERO, 0.0, IIN, 6, NVERB) ! - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) ! ELSE ! diff --git a/src/MNH/ch_surface0d.f90 b/src/MNH/ch_surface0d.f90 index dd3a11ff3..ce3bab6c4 100644 --- a/src/MNH/ch_surface0d.f90 +++ b/src/MNH/ch_surface0d.f90 @@ -252,8 +252,8 @@ CONTAINS ! SUBROUTINE CH_SURFACE0D_SETPARAM ! -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll,IO_FILE_OPEN_ll +USE MODD_IO, ONLY: TFILEDATA +USE MODE_IO_FILE, ONLY: IO_File_close, IO_File_open ! IMPLICIT NONE ! @@ -302,15 +302,15 @@ IF (LSFIRSTCALL) THEN LSFIRSTCALL = .FALSE. CALL CH_OPEN_INPUT("SURFACE.nam", "SURFDATA", TZFILE, 6, NVERB) ISURFIO = TZFILE%NLU - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) ! END IF ! IF (PTSIMUL .GE. TNEXTUPDATE) THEN PRINT *, "updating surface variables from file ",TRIM(TZFILE%CNAME) - CALL IO_FILE_OPEN_ll(TZFILE) + CALL IO_File_open(TZFILE) READ(ISURFIO,NAM_SURF) - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) ! PRINT *, "current setting is:" ! WRITE(*,NAM_SURF) TNEXTUPDATE = PTSIMUL + TVALID diff --git a/src/MNH/check_zhat.f90 b/src/MNH/check_zhat.f90 index ca9094fa9..1f4487567 100644 --- a/src/MNH/check_zhat.f90 +++ b/src/MNH/check_zhat.f90 @@ -75,12 +75,12 @@ END MODULE MODI_CHECK_ZHAT USE MODD_CONF USE MODD_DIM_n USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS ! -USE MODE_FMREAD -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_MANAGE_STRUCT, only: IO_File_find_byname ! IMPLICIT NONE ! @@ -114,16 +114,16 @@ ILUOUT0 = TLUOUT0%NLU !* 1. Reading grid and dimension ! -------------------------- ! -CALL IO_FILE_FIND_BYNAME(TRIM(HFMFILE),TZFMFILE,IRESP) +CALL IO_File_find_byname(TRIM(HFMFILE),TZFMFILE,IRESP) ! -CALL IO_READ_FIELD(TZFMFILE,'KMAX',IKMAX) +CALL IO_Field_read(TZFMFILE,'KMAX',IKMAX) ALLOCATE(ZZHAT(IKMAX+2*JPVEXT)) -CALL IO_READ_FIELD(TZFMFILE,'ZHAT',ZZHAT) -CALL IO_READ_FIELD(TZFMFILE,'THINSHELL',GTHINSHELL) +CALL IO_Field_read(TZFMFILE,'ZHAT',ZZHAT) +CALL IO_Field_read(TZFMFILE,'THINSHELL',GTHINSHELL) IF ( TZFMFILE%NMNHVERSION(1)<4 .OR. (TZFMFILE%NMNHVERSION(1)==4 .AND. TZFMFILE%NMNHVERSION(2)<=6) ) THEN GSLEVE = .FALSE. ELSE - CALL IO_READ_FIELD(TZFMFILE,'SLEVE',GSLEVE) + CALL IO_Field_read(TZFMFILE,'SLEVE',GSLEVE) ENDIF ! !* 2. Check dimensions @@ -171,8 +171,8 @@ END IF ! ------------------------------------- ! IF ( GSLEVE .AND. LSLEVE ) THEN - CALL IO_READ_FIELD(TZFMFILE,'LEN1',ZLEN1) - CALL IO_READ_FIELD(TZFMFILE,'LEN2',ZLEN2) + CALL IO_Field_read(TZFMFILE,'LEN1',ZLEN1) + CALL IO_Field_read(TZFMFILE,'LEN2',ZLEN2) IF (ZLEN1 /= XLEN1 .OR. ZLEN2 /= XLEN2) THEN HDAD_NAME=' ' WRITE (ILUOUT0,*) '********************************************************' diff --git a/src/MNH/check_zs.f90 b/src/MNH/check_zs.f90 index 42b9aaa6f..bab046512 100644 --- a/src/MNH/check_zs.f90 +++ b/src/MNH/check_zs.f90 @@ -81,13 +81,13 @@ END MODULE MODI_CHECK_ZS USE MODD_CONF USE MODD_DIM_n USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_NESTING USE MODD_PARAMETERS ! -USE MODE_FMREAD -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_MANAGE_STRUCT, only: IO_File_find_byname ! IMPLICIT NONE ! @@ -128,9 +128,9 @@ ILUOUT0 = TLUOUT0%NLU !* 1. Reading of aspect ratios and dimensions ! --------------------------------------- ! -CALL IO_FILE_FIND_BYNAME(TRIM(HFMFILE),TZFMFILE,IRESP) +CALL IO_File_find_byname(TRIM(HFMFILE),TZFMFILE,IRESP) ! -CALL IO_READ_FIELD(TZFMFILE,'DXRATIO',IDXRATIO,IRESP) +CALL IO_Field_read(TZFMFILE,'DXRATIO',IDXRATIO,IRESP) IF ( IRESP /= 0 .OR. IDXRATIO == 0 ) THEN WRITE (ILUOUT0,*) '********************************************************' WRITE (ILUOUT0,*) 'resolution ratio in x direction not present in fmfile; no nesting allowed' @@ -139,7 +139,7 @@ IF ( IRESP /= 0 .OR. IDXRATIO == 0 ) THEN RETURN END IF ! -CALL IO_READ_FIELD(TZFMFILE,'DYRATIO',IDYRATIO,IRESP) +CALL IO_Field_read(TZFMFILE,'DYRATIO',IDYRATIO,IRESP) IF ( IRESP /= 0 .OR. IDYRATIO == 0 ) THEN WRITE (ILUOUT0,*) '********************************************************' WRITE (ILUOUT0,*) 'resolution ratio in y direction not present in fmfile; no nesting allowed' @@ -148,7 +148,7 @@ IF ( IRESP /= 0 .OR. IDYRATIO == 0 ) THEN RETURN END IF ! -CALL IO_READ_FIELD(TZFMFILE,'XOR',NXOR_ALL(1),IRESP) +CALL IO_Field_read(TZFMFILE,'XOR',NXOR_ALL(1),IRESP) IF ( IRESP /= 0 ) THEN WRITE (ILUOUT0,*) '********************************************************' WRITE (ILUOUT0,*) 'position XOR not present in fmfile; no nesting allowed' @@ -157,7 +157,7 @@ IF ( IRESP /= 0 ) THEN RETURN END IF ! -CALL IO_READ_FIELD(TZFMFILE,'YOR',NYOR_ALL(1),IRESP) +CALL IO_Field_read(TZFMFILE,'YOR',NYOR_ALL(1),IRESP) IF ( IRESP /= 0 ) THEN WRITE (ILUOUT0,*) '********************************************************' WRITE (ILUOUT0,*) 'resolution YOR not present in fmfile; no nesting allowed' @@ -166,11 +166,11 @@ IF ( IRESP /= 0 ) THEN RETURN END IF ! -CALL IO_READ_FIELD(TZFMFILE,'IMAX',IIMAX) -CALL IO_READ_FIELD(TZFMFILE,'JMAX',IJMAX) +CALL IO_Field_read(TZFMFILE,'IMAX',IIMAX) +CALL IO_Field_read(TZFMFILE,'JMAX',IJMAX) ! ALLOCATE(ZZS(IIMAX+2*JPHEXT,IJMAX+2*JPHEXT)) -CALL IO_READ_FIELD(TZFMFILE,'ZS',ZZS) +CALL IO_Field_read(TZFMFILE,'ZS',ZZS) ! !* 2. Allocate coarse arrays ! ---------------------- @@ -236,7 +236,7 @@ END IF ! IF (LSLEVE) THEN ! - CALL IO_READ_FIELD(TZFMFILE,'ZSMT',ZZS) + CALL IO_Field_read(TZFMFILE,'ZSMT',ZZS) ! !* 5. Average the smooth orographies ! ------------------------------ diff --git a/src/MNH/close_file_mnh.f90 b/src/MNH/close_file_mnh.f90 index 2bb13e611..6d3d87e4b 100644 --- a/src/MNH/close_file_mnh.f90 +++ b/src/MNH/close_file_mnh.f90 @@ -54,12 +54,12 @@ END MODULE MODI_CLOSE_FILE_MNH ! ------------ ! USE MODD_CONF, ONLY: CPROGRAM -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_IO_NAM, ONLY: TFILE USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_LUNIT_n, ONLY: TLUOUT ! -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll +USE MODE_IO_FILE, ONLY: IO_File_close USE MODE_MSG ! IMPLICIT NONE @@ -96,7 +96,7 @@ END SELECT ! IF (ILUOUT==KUNIT) THEN CALL PRINT_MSG(NVERB_DEBUG,'IO','CLOSE_FILE_MNH','called for '//TRIM(TZFILE%CNAME)) - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) RETURN END IF ! @@ -110,7 +110,7 @@ IF (.NOT.ASSOCIATED(TFILE)) CALL PRINT_MSG(NVERB_FATAL,'IO','CLOSE_FILE_MNH','TF CALL PRINT_MSG(NVERB_DEBUG,'IO','CLOSE_FILE_MNH','called for '//TRIM(TFILE%CNAME)) ! IF (TFILE%NLU==KUNIT) THEN - CALL IO_FILE_CLOSE_ll(TFILE) + CALL IO_File_close(TFILE) TFILE => NULL() ELSE WRITE(ILUOUT,*) 'Error for closing a file: ' diff --git a/src/MNH/compare_dad.f90 b/src/MNH/compare_dad.f90 index 8c2662bb7..4efd6a8f4 100644 --- a/src/MNH/compare_dad.f90 +++ b/src/MNH/compare_dad.f90 @@ -43,8 +43,8 @@ END MODULE MODI_COMPARE_DAD !! EXTERNAL !! -------- !! -!! IO_FILE_OPEN_ll : to open a FM-file (DESFM + LFIFM) -!! IO_FILE_CLOSE_ll : to close a FM-file (DESFM + LFIFM) +!! IO_File_open : to open a FM-file (DESFM + LFIFM) +!! IO_File_close : to close a FM-file (DESFM + LFIFM) !! !! !! @@ -58,7 +58,7 @@ END MODULE MODI_COMPARE_DAD !! !! Original O8/04/04 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -66,15 +66,15 @@ END MODULE MODI_COMPARE_DAD ! ! USE MODD_CONF -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LUNIT_n, ONLY: TLUOUT -USE MODD_PARAMETERS, ONLY: JPHEXT,JPVEXT,NMNHNAMELGTMAX +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT, NMNHNAMELGTMAX ! -USE MODE_FIELD, ONLY : TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_GRIDPROJ -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST +USE MODE_IO_MANAGE_STRUCT, ONLY : IO_File_add2list ! ! IMPLICIT NONE @@ -137,12 +137,12 @@ ZLATORI_2=0. !* 2. Read DAD of initial file ! ------------------------ ! -CALL IO_FILE_ADD2LIST(TZDADINIFILE,TRIM(HDADINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) -CALL IO_FILE_OPEN_ll(TZDADINIFILE) +CALL IO_File_add2list(TZDADINIFILE,TRIM(HDADINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) +CALL IO_File_open(TZDADINIFILE) ! -CALL IO_READ_FIELD(TZDADINIFILE,'IMAX',IIMAX_1) -CALL IO_READ_FIELD(TZDADINIFILE,'JMAX',IJMAX_1) -CALL IO_READ_FIELD(TZDADINIFILE,'KMAX',IKMAX_1) +CALL IO_Field_read(TZDADINIFILE,'IMAX',IIMAX_1) +CALL IO_Field_read(TZDADINIFILE,'JMAX',IJMAX_1) +CALL IO_Field_read(TZDADINIFILE,'KMAX',IKMAX_1) ! IIU_1=IIMAX_1 + 2 * JPHEXT IJU_1=IJMAX_1 + 2 * JPHEXT @@ -151,32 +151,32 @@ IKU_1=IKMAX_1 + 2 * JPVEXT ALLOCATE(ZXHAT_1(IIU_1)) ALLOCATE(ZYHAT_1(IJU_1)) ALLOCATE(ZZHAT_1(IKU_1)) -CALL IO_READ_FIELD(TZDADINIFILE,'XHAT',ZXHAT_1) -CALL IO_READ_FIELD(TZDADINIFILE,'YHAT',ZYHAT_1) -CALL IO_READ_FIELD(TZDADINIFILE,'ZHAT',ZZHAT_1) +CALL IO_Field_read(TZDADINIFILE,'XHAT',ZXHAT_1) +CALL IO_Field_read(TZDADINIFILE,'YHAT',ZYHAT_1) +CALL IO_Field_read(TZDADINIFILE,'ZHAT',ZZHAT_1) ! ALLOCATE(ZZS_1(IIU_1,IJU_1)) -CALL IO_READ_FIELD(TZDADINIFILE,'ZS',ZZS_1) +CALL IO_Field_read(TZDADINIFILE,'ZS',ZZS_1) ! -CALL IO_READ_FIELD(TZDADINIFILE,'LON0',ZLON0_1) -CALL IO_READ_FIELD(TZDADINIFILE,'LAT0',ZLAT0_1) -CALL IO_READ_FIELD(TZDADINIFILE,'BETA',ZBETA_1) +CALL IO_Field_read(TZDADINIFILE,'LON0',ZLON0_1) +CALL IO_Field_read(TZDADINIFILE,'LAT0',ZLAT0_1) +CALL IO_Field_read(TZDADINIFILE,'BETA',ZBETA_1) ! IF (.NOT.LCARTESIAN) THEN - CALL IO_READ_FIELD(TZDADINIFILE,'RPK',ZRPK_1) - CALL IO_READ_FIELD(TZDADINIFILE,'LATORI',ZLATORI_1) - CALL IO_READ_FIELD(TZDADINIFILE,'LONORI',ZLONORI_1) + CALL IO_Field_read(TZDADINIFILE,'RPK',ZRPK_1) + CALL IO_Field_read(TZDADINIFILE,'LATORI',ZLATORI_1) + CALL IO_Field_read(TZDADINIFILE,'LONORI',ZLONORI_1) ! IF (TZDADINIFILE%NMNHVERSION(1)<4 .OR. (TZDADINIFILE%NMNHVERSION(1)==4 .AND. TZDADINIFILE%NMNHVERSION(2)<=5) ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('LONORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LONOR' - CALL IO_READ_FIELD(TZDADINIFILE,TZFIELD,ZLONORI_1) + CALL IO_Field_read(TZDADINIFILE,TZFIELD,ZLONORI_1) ! CALL FIND_FIELD_ID_FROM_MNHNAME('LATORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LATOR' - CALL IO_READ_FIELD(TZDADINIFILE,TZFIELD,ZLATORI_1) + CALL IO_Field_read(TZDADINIFILE,TZFIELD,ZLATORI_1) ! ZXHATM = - 0.5 * (ZXHAT_1(1)+ZXHAT_1(2)) ZYHATM = - 0.5 * (ZYHAT_1(1)+ZYHAT_1(2)) @@ -186,19 +186,19 @@ IF (.NOT.LCARTESIAN) THEN END IF ENDIF ! -CALL IO_FILE_CLOSE_ll(TZDADINIFILE) +CALL IO_File_close(TZDADINIFILE) ! !------------------------------------------------------------------------------- ! !* 3. Read DAD of spawning file ! ------------------------ ! -CALL IO_FILE_ADD2LIST(TZDADSPAFILE,TRIM(HDADSPAFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) -CALL IO_FILE_OPEN_ll(TZDADSPAFILE) +CALL IO_File_add2list(TZDADSPAFILE,TRIM(HDADSPAFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) +CALL IO_File_open(TZDADSPAFILE) ! -CALL IO_READ_FIELD(TZDADSPAFILE,'IMAX',IIMAX_2) -CALL IO_READ_FIELD(TZDADSPAFILE,'JMAX',IJMAX_2) -CALL IO_READ_FIELD(TZDADSPAFILE,'KMAX',IKMAX_2) +CALL IO_Field_read(TZDADSPAFILE,'IMAX',IIMAX_2) +CALL IO_Field_read(TZDADSPAFILE,'JMAX',IJMAX_2) +CALL IO_Field_read(TZDADSPAFILE,'KMAX',IKMAX_2) ! IIU_2=IIMAX_2 + 2 * JPHEXT IJU_2=IJMAX_2 + 2 * JPHEXT @@ -207,32 +207,32 @@ IKU_2=IKMAX_2 + 2 * JPVEXT ALLOCATE(ZXHAT_2(IIU_2)) ALLOCATE(ZYHAT_2(IJU_2)) ALLOCATE(ZZHAT_2(IKU_2)) -CALL IO_READ_FIELD(TZDADSPAFILE,'XHAT',ZXHAT_2) -CALL IO_READ_FIELD(TZDADSPAFILE,'YHAT',ZYHAT_2) -CALL IO_READ_FIELD(TZDADSPAFILE,'ZHAT',ZZHAT_2) +CALL IO_Field_read(TZDADSPAFILE,'XHAT',ZXHAT_2) +CALL IO_Field_read(TZDADSPAFILE,'YHAT',ZYHAT_2) +CALL IO_Field_read(TZDADSPAFILE,'ZHAT',ZZHAT_2) ! ALLOCATE(ZZS_2(IIU_2,IJU_2)) -CALL IO_READ_FIELD(TZDADSPAFILE,'ZS',ZZS_2) +CALL IO_Field_read(TZDADSPAFILE,'ZS',ZZS_2) ! -CALL IO_READ_FIELD(TZDADSPAFILE,'LON0',ZLON0_2) -CALL IO_READ_FIELD(TZDADSPAFILE,'LAT0',ZLAT0_2) -CALL IO_READ_FIELD(TZDADSPAFILE,'BETA',ZBETA_2) +CALL IO_Field_read(TZDADSPAFILE,'LON0',ZLON0_2) +CALL IO_Field_read(TZDADSPAFILE,'LAT0',ZLAT0_2) +CALL IO_Field_read(TZDADSPAFILE,'BETA',ZBETA_2) ! IF (.NOT.LCARTESIAN) THEN - CALL IO_READ_FIELD(TZDADSPAFILE,'RPK',ZRPK_2) - CALL IO_READ_FIELD(TZDADSPAFILE,'LATORI',ZLATORI_2) - CALL IO_READ_FIELD(TZDADSPAFILE,'LONORI',ZLONORI_2) + CALL IO_Field_read(TZDADSPAFILE,'RPK',ZRPK_2) + CALL IO_Field_read(TZDADSPAFILE,'LATORI',ZLATORI_2) + CALL IO_Field_read(TZDADSPAFILE,'LONORI',ZLONORI_2) ! IF (TZDADSPAFILE%NMNHVERSION(1)<4 .OR. (TZDADSPAFILE%NMNHVERSION(1)==4 .AND. TZDADSPAFILE%NMNHVERSION(2)<=5)) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('LONORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LONOR' - CALL IO_READ_FIELD(TZDADSPAFILE,TZFIELD,ZLONORI_2) + CALL IO_Field_read(TZDADSPAFILE,TZFIELD,ZLONORI_2) ! CALL FIND_FIELD_ID_FROM_MNHNAME('LATORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LATOR' - CALL IO_READ_FIELD(TZDADSPAFILE,TZFIELD,ZLATORI_2) + CALL IO_Field_read(TZDADSPAFILE,TZFIELD,ZLATORI_2) ! ZXHATM = - 0.5 * (ZXHAT_2(1)+ZXHAT_2(2)) ZYHATM = - 0.5 * (ZYHAT_2(1)+ZYHAT_2(2)) @@ -242,7 +242,7 @@ IF (.NOT.LCARTESIAN) THEN END IF ENDIF ! -CALL IO_FILE_CLOSE_ll(TZDADSPAFILE) +CALL IO_File_close(TZDADSPAFILE) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/compare_with_pgd_domain.f90 b/src/MNH/compare_with_pgd_domain.f90 index 1378b63db..028dc1f80 100644 --- a/src/MNH/compare_with_pgd_domain.f90 +++ b/src/MNH/compare_with_pgd_domain.f90 @@ -79,8 +79,6 @@ END MODULE MODI_COMPARE_WITH_PGD_DOMAIN !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM -USE MODE_IO_ll USE MODE_MSG ! USE MODD_CONF ! declaration modules diff --git a/src/MNH/compute_r00.f90 b/src/MNH/compute_r00.f90 index 2c76d7f39..b3f1d31e7 100644 --- a/src/MNH/compute_r00.f90 +++ b/src/MNH/compute_r00.f90 @@ -10,7 +10,7 @@ INTERFACE SUBROUTINE COMPUTE_R00(TPFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file ! @@ -56,35 +56,32 @@ END MODULE MODI_COMPUTE_R00 !! change of YCOMMENT !! Mai 2016 (G.Delautier) replace LG?M by LG?T !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ -! -USE MODD_FIELD_n +! +USE MODD_CONF USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_FIELD_n +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n -USE MODD_GRID_n -USE MODD_STO_FILE -USE MODD_CONF +USE MODD_NSV, ONLY: NSV_LGBEG, NSV_LGEND USE MODD_PARAMETERS -USE MODD_NSV, ONLY : NSV_LGBEG,NSV_LGEND -! -USE MODI_SHUMAN -! +USE MODD_STO_FILE +USE MODD_TYPE_DATE USE MODD_VAR_ll ! USE MODE_FIELD -USE MODE_FM -USE MODE_FMWRIT -USE MODE_FMREAD -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FIELD_WRITE, only: IO_Field_write +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_ll USE MODE_MSG -USE MODD_TYPE_DATE +! +USE MODI_SHUMAN ! IMPLICIT NONE ! @@ -239,8 +236,8 @@ END IF ! is performed DO JFILECUR=1,NFILES ! - CALL IO_FILE_ADD2LIST(TZTRACFILE,CFILES(NBRFILES(JFILECUR)),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TZTRACFILE) + CALL IO_File_add2list(TZTRACFILE,CFILES(NBRFILES(JFILECUR)),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_open(TZTRACFILE) ! !* 4.1 check if this file is a start instant ! @@ -257,7 +254,7 @@ DO JFILECUR=1,NFILES ! IF (GSTART) THEN ! - CALL IO_READ_FIELD(TZTRACFILE,'DTCUR',TDTCUR_START) + CALL IO_Field_read(TZTRACFILE,'DTCUR',TDTCUR_START) IHOUR = INT(TDTCUR_START%TIME/3600.) ZREMAIN = MOD(TDTCUR_START%TIME,3600.) IMINUTE = INT(ZREMAIN/60.) @@ -265,9 +262,9 @@ DO JFILECUR=1,NFILES WRITE(YDATE,FMT='(1X,I4.4,I2.2,I2.2,2X,I2.2,"H",I2.2,"M", & & F5.2,"S")') TDTCUR_START%TDATE, IHOUR,IMINUTE,ZSECOND ! - CALL IO_READ_FIELD(TZTRACFILE,'THT',ZTH0(:,:,:)) + CALL IO_Field_read(TZTRACFILE,'THT',ZTH0(:,:,:)) ! - CALL IO_READ_FIELD(TZTRACFILE,'RVT',ZRV0(:,:,:)) + CALL IO_Field_read(TZTRACFILE,'RVT',ZRV0(:,:,:)) ZRV0(:,:,:)=ZRV0(:,:,:)*1.E+3 ! ZRV0 in g/kg ! END IF @@ -288,7 +285,7 @@ DO JFILECUR=1,NFILES TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZX00(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZX00(:,:,:)) ! WRITE(TZFIELD%CMNHNAME,'(A2,I2.2)')'Y0',INBR_START TZFIELD%CSTDNAME = '' @@ -301,7 +298,7 @@ DO JFILECUR=1,NFILES TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZY00(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZY00(:,:,:)) ! WRITE(TZFIELD%CMNHNAME,'(A2,I2.2)')'Z0',INBR_START TZFIELD%CSTDNAME = '' @@ -314,7 +311,7 @@ DO JFILECUR=1,NFILES TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZZ00(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZZ00(:,:,:)) END IF ! ! @@ -343,7 +340,7 @@ DO JFILECUR=1,NFILES TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK1(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK1(:,:,:)) ! WRITE(TZFIELD%CMNHNAME,'(A3,I2.2)')'RV0',INBR_START TZFIELD%CSTDNAME = '' @@ -356,7 +353,7 @@ DO JFILECUR=1,NFILES TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK2(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK2(:,:,:)) ENDIF !* 4.4 compute the origin of the particules using one more segment ! @@ -372,17 +369,17 @@ DO JFILECUR=1,NFILES ! TZFIELD%CMNHNAME = 'LGXT' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TZTRACFILE,TZFIELD,ZX0) + CALL IO_Field_read(TZTRACFILE,TZFIELD,ZX0) ZX0(:,:,:)=ZX0(:,:,:)*1.E-3 ! ZX0 in km ! TZFIELD%CMNHNAME = 'LGYT' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TZTRACFILE,TZFIELD,ZY0) + CALL IO_Field_read(TZTRACFILE,TZFIELD,ZY0) ZY0(:,:,:)=ZY0(:,:,:)*1.E-3 ! ZY0 in km ! TZFIELD%CMNHNAME = 'LGZT' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TZTRACFILE,TZFIELD,ZZ0) + CALL IO_Field_read(TZTRACFILE,TZFIELD,ZZ0) ZZ0(:,:,:)=ZZ0(:,:,:)*1.E-3 ! ZZ0 in km ! ! old position of the set of particles @@ -418,7 +415,7 @@ DO JFILECUR=1,NFILES ! !* 4.5 close the input file ! - CALL IO_FILE_CLOSE_ll(TZTRACFILE) + CALL IO_File_close(TZTRACFILE) ! END DO ! diff --git a/src/MNH/compute_spectre.f90 b/src/MNH/compute_spectre.f90 index 6a31130f0..9d5237cac 100644 --- a/src/MNH/compute_spectre.f90 +++ b/src/MNH/compute_spectre.f90 @@ -61,8 +61,6 @@ USE MODD_CONF USE MODE_ll USE MODD_ARGSLIST_ll, ONLY : LIST_ll USE MODD_LUNIT_n, ONLY: TLUOUT -USE MODE_FM -USE MODE_IO_ll USE MODE_MSG USE MODE_SPLITTINGZ_ll ! diff --git a/src/MNH/define_maskn.f90 b/src/MNH/define_maskn.f90 index a22147d55..abd56bf02 100644 --- a/src/MNH/define_maskn.f90 +++ b/src/MNH/define_maskn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################## @@ -63,8 +63,6 @@ USE MODD_LUNIT USE MODD_NESTING USE MODD_NEST_PGD_n ! -USE MODE_FM -USE MODE_IO_ll USE MODE_MSG USE MODE_MODELN_HANDLER ! diff --git a/src/MNH/detect_field_mnh.f90 b/src/MNH/detect_field_mnh.f90 index 1b4fc3b3c..8d94c1c35 100644 --- a/src/MNH/detect_field_mnh.f90 +++ b/src/MNH/detect_field_mnh.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! MASDEV4_7 surfex 2006/05/18 13:07:25 -!----------------------------------------------------------------- ! ##################### MODULE MODI_DETECT_FIELD_MNH ! ##################### @@ -72,15 +67,13 @@ SUBROUTINE DETECT_FIELD_MNH(HPROGRAM,KI,KJ,PFIELD,OITSHERE) ! ! ! -USE MODE_FM +USE MODD_PARAMETERS, ONLY: XUNDEF, JPHEXT +USE MODD_IO_SURF_MNH, ONLY: NMASK, NIU, NJU, NIB, NJB, NIE, NJE +! USE MODE_ll -USE MODE_IO_ll - -USE MODD_PARAMETERS, ONLY : XUNDEF, JPHEXT ! -USE MODD_IO_SURF_MNH, ONLY : NMASK, NIU, NJU, NIB, NJB, NIE, NJE - USE MODI_UNPACK_1D_2D +! IMPLICIT NONE ! !* 0.1 declarations of arguments diff --git a/src/MNH/diag.f90 b/src/MNH/diag.f90 index f05ff2240..1ad4aa373 100644 --- a/src/MNH/diag.f90 +++ b/src/MNH/diag.f90 @@ -88,7 +88,7 @@ !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! V.Vionnet 07/2017 add LWIND_CONTRAV !! 11/2017 (D. Ricard, P. Marquet) add diagnostics for THETAS -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -106,9 +106,9 @@ USE MODD_DYN USE MODD_DYN_n USE MODD_FIELD_n USE MODD_GR_FIELD_n -USE MODD_GRID, ONLY: XLONORI,XLATORI +USE MODD_GRID, ONLY: XLONORI, XLATORI USE MODD_GRID_n -USE MODD_IO_ll, ONLY: CIO_DIR,NIO_VERB,NVERB_DEBUG,TFILEDATA,TFILE_SURFEX +USE MODD_IO, ONLY: CIO_DIR, NIO_VERB, NVERB_DEBUG, TFILEDATA, TFILE_SURFEX USE MODD_LBC_n USE MODD_LES USE MODD_LES_BUDGET @@ -136,11 +136,10 @@ USE MODD_TURB_n USE MODD_VAR_ll ! USE MODE_DATETIME -USE MODE_FM -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_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_FIELD_WRITE, only: IO_Header_write +USE MODE_IO, only: IO_Config_set, IO_Init +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list,IO_Filelist_print USE MODE_ll USE MODE_MNH_TIMING USE MODE_MODELN_HANDLER @@ -245,7 +244,7 @@ CALL GOTO_MODEL(1) CALL VERSION CPROGRAM='DIAG ' ! -CALL INITIO_ll() +CALL IO_Init() CALL SECOND_MNH2(ZTIME1) ZTIME0=ZTIME1 ! @@ -392,8 +391,8 @@ NDXCOARSE=1 !* 1.0 Namelist reading ! ---------------- ! -CALL IO_FILE_ADD2LIST(TZNMLFILE,'DIAG1.nam','NML','READ') -CALL IO_FILE_OPEN_ll(TZNMLFILE) +CALL IO_File_add2list(TZNMLFILE,'DIAG1.nam','NML','READ') +CALL IO_File_open(TZNMLFILE) ILUNAM = TZNMLFILE%NLU ! ! @@ -424,9 +423,9 @@ CALL POSNAM(ILUNAM,'NAM_CONFIO',GFOUND) IF (GFOUND) THEN READ(UNIT=ILUNAM,NML=NAM_CONFIO) END IF -CALL SET_CONFIO_ll() +CALL IO_Config_set() ! -CALL IO_FILE_CLOSE_ll(TZNMLFILE) +CALL IO_File_close(TZNMLFILE) ! CINIFILE = YINIFILE(1) CINIFILEPGD = YINIFILEPGD(1) @@ -459,7 +458,7 @@ ENDIF ! INPRAR = 24 +2*(4+NRR+NSV) ! -CALL IO_FILE_ADD2LIST(TOUTDATAFILE,TRIM(CINIFILE)//YSUFFIX,'MNHDIAG','WRITE',KLFINPRAR=INPRAR,KLFITYPE=1,KLFIVERB=NVERB) +CALL IO_File_add2list(TOUTDATAFILE,TRIM(CINIFILE)//YSUFFIX,'MNHDIAG','WRITE',KLFINPRAR=INPRAR,KLFITYPE=1,KLFIVERB=NVERB) ! CALL SECOND_MNH2(ZTIME2) ZSTART=ZTIME2-ZTIME1 @@ -505,7 +504,7 @@ ENDIF ! !* 4.0 Stores the fields in MESONH files if necessary ! -CALL IO_FILE_OPEN_ll(TOUTDATAFILE) +CALL IO_File_open(TOUTDATAFILE) ! CALL WRITE_LFIFM1_FOR_DIAG(TOUTDATAFILE,CDAD_NAME(1)) ! @@ -522,10 +521,10 @@ ZTIME1=ZTIME2 ! IF ( LAIRCRAFT_BALLOON ) THEN ! - CALL IO_FILE_ADD2LIST(TZDIACFILE,TRIM(CINIFILE)//'BAL','MNHDIACHRONIC','WRITE', & + CALL IO_File_add2list(TZDIACFILE,TRIM(CINIFILE)//'BAL','MNHDIACHRONIC','WRITE', & HDIRNAME=CIO_DIR,KLFINPRAR=INPRAR,KLFITYPE=1,KLFIVERB=NVERB) ! - CALL IO_FILE_OPEN_ll(TZDIACFILE) + CALL IO_File_open(TZDIACFILE) ! WRITE(ILUOUT0,*) ' ' WRITE(ILUOUT0,*) 'DIAG AFTER OPEN DIACHRONIC FILE' @@ -556,11 +555,11 @@ IF ( LAIRCRAFT_BALLOON ) THEN TXDTBAL%TIME=TXDTBAL%TIME + XSTEP_AIRCRAFT_BALLOON CALL DATETIME_CORRECTDATE(TXDTBAL) ENDDO - CALL IO_WRITE_HEADER(TZDIACFILE) + CALL IO_Header_write(TZDIACFILE) CALL WRITE_LFIFMN_FORDIACHRO_n(TZDIACFILE) CALL WRITE_AIRCRAFT_BALLOON(TZDIACFILE) CALL MENU_DIACHRO(TZDIACFILE,'END') - CALL IO_FILE_CLOSE_ll(TZDIACFILE) + CALL IO_File_close(TZDIACFILE) WRITE(ILUOUT0,*) ' ' WRITE(ILUOUT0,*) 'DIAG AFTER CLOSE DIACHRONIC FILE' WRITE(ILUOUT0,*) ' ' @@ -751,12 +750,12 @@ DEALLOCATE(GMASKkids) DEALLOCATE(ZWETDEPAER) IF (GCLOSE_OUT) THEN GCLOSE_OUT=.FALSE. - CALL IO_FILE_CLOSE_ll(TOUTDATAFILE) + CALL IO_File_close(TOUTDATAFILE) END IF ! -CALL IO_FILE_CLOSE_ll(TINIFILE) -IF (LEN_TRIM(CINIFILEPGD)>0) CALL IO_FILE_CLOSE_ll(TINIFILEPGD) -CALL IO_FILE_CLOSE_ll(TLUOUT) +CALL IO_File_close(TINIFILE) +IF (LEN_TRIM(CINIFILEPGD)>0) CALL IO_File_close(TINIFILEPGD) +CALL IO_File_close(TLUOUT) ! CALL SECOND_MNH2(ZTIME2) ZTIME2=ZTIME2-ZTIME0 @@ -802,7 +801,7 @@ ZTIME2=ZTIME2-ZTIME0 !WRITE(ILUOUT0,*) '|---------------------| -------------------|-------------------|' ! ! -IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST() +IF(NIO_VERB>=NVERB_DEBUG) CALL IO_Filelist_print() ! WRITE(ILUOUT0,*) ' ' WRITE(ILUOUT0,*) '***************************** **************' @@ -811,7 +810,7 @@ WRITE(ILUOUT0,*) '**************************** ***************' !WRITE(ILUOUT0,*) ' (see time analysis in ',TRIM(TLUOUT0%CNAME),' )' WRITE(ILUOUT0,*) ' ' ! -CALL IO_FILE_CLOSE_ll(TLUOUT0) +CALL IO_File_close(TLUOUT0) !------------------------------------------------------------------------------- ! !* 10. FINALIZE THE PARALLEL SESSION diff --git a/src/MNH/elec_fieldn.f90 b/src/MNH/elec_fieldn.f90 index 6b7aaf8f3..f39cdc7ab 100644 --- a/src/MNH/elec_fieldn.f90 +++ b/src/MNH/elec_fieldn.f90 @@ -1,8 +1,8 @@ - -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######################## MODULE MODI_ELEC_FIELD_n ! ######################## @@ -58,7 +58,6 @@ USE MODI_GRADIENT_M USE MODD_ARGSLIST_ll, ONLY : LIST_ll ! USE MODE_ll -USE MODE_FM ! ! IMPLICIT NONE diff --git a/src/MNH/elec_trid.f90 b/src/MNH/elec_trid.f90 index e8a95db3b..2a8c5aad1 100644 --- a/src/MNH/elec_trid.f90 +++ b/src/MNH/elec_trid.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ##################### @@ -185,7 +185,6 @@ USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS ! USE MODE_ll -USE MODE_IO_ll USE MODE_MSG ! !JUAN diff --git a/src/MNH/elec_tridz.f90 b/src/MNH/elec_tridz.f90 index 214fc6a88..5c5ce6796 100644 --- a/src/MNH/elec_tridz.f90 +++ b/src/MNH/elec_tridz.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################### @@ -193,7 +193,6 @@ USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS ! USE MODE_ll -USE MODE_IO_ll USE MODE_MSG !++cb - Z_SPLITTING USE MODE_SPLITTINGZ_ll , ONLY : GET_DIM_EXTZ_ll,GET_ORZ_ll,LWESTZ_ll,LSOUTHZ_ll diff --git a/src/MNH/endstep_budget.f90 b/src/MNH/endstep_budget.f90 index eff9d4bfe..d6c619db4 100644 --- a/src/MNH/endstep_budget.f90 +++ b/src/MNH/endstep_budget.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !########################## @@ -12,7 +12,7 @@ INTERFACE SUBROUTINE ENDSTEP_BUDGET(TPDIAFILE,KTCOUNT, & TPDTCUR,TPDTMOD,PTSTEP,KSV) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_TYPE_DATE ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write @@ -101,7 +101,7 @@ END MODULE MODI_ENDSTEP_BUDGET !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_TIME USE MODD_BUDGET ! diff --git a/src/MNH/fast_terms.f90 b/src/MNH/fast_terms.f90 index 12bb06a95..eba11a693 100644 --- a/src/MNH/fast_terms.f90 +++ b/src/MNH/fast_terms.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################### @@ -162,8 +162,6 @@ USE MODD_CONF USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS ! -USE MODE_FMWRIT -! USE MODI_BUDGET USE MODI_CONDENS USE MODI_GET_HALO diff --git a/src/MNH/flash_geom_elec.f90 b/src/MNH/flash_geom_elec.f90 index e0b13e74f..b34d69118 100644 --- a/src/MNH/flash_geom_elec.f90 +++ b/src/MNH/flash_geom_elec.f90 @@ -13,7 +13,7 @@ INTERFACE TPFILE_FGEOM_DIAG, TPFILE_FGEOM_COORD, TPFILE_LMA, & PTOWN, PSEA ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KTCOUNT ! Temporal loop counter INTEGER, INTENT(IN) :: KMI ! current model index @@ -98,44 +98,43 @@ END MODULE MODI_FLASH_GEOM_ELEC_n !* 0. DECLARATIONS ! ------------ ! -USE MODD_CST, ONLY : XAVOGADRO, XMD -USE MODD_CONF, ONLY : CEXP, LCARTESIAN -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT -USE MODD_GRID, ONLY : XLATORI,XLONORI -USE MODD_GRID_n, ONLY : XXHAT, XYHAT, XZHAT -USE MODD_DYN_n, ONLY : XDXHATM, XDYHATM, NSTOP -USE MODD_METRICS_n, ONLY : XDXX, XDYY, XDZZ ! in linox_production -USE MODD_ELEC_DESCR -USE MODD_ELEC_PARAM, ONLY : XFQLIGHTR, XEXQLIGHTR, & - XFQLIGHTI, XEXQLIGHTI, & - XFQLIGHTS, XEXQLIGHTS, & - XFQLIGHTG, XEXQLIGHTG, & - XFQLIGHTH, XEXQLIGHTH, & - XFQLIGHTC -USE MODD_RAIN_ICE_DESCR, ONLY : XLBR, XLBEXR, XLBS, XLBEXS, & - XLBG, XLBEXG, XLBH, XLBEXH, & - XRTMIN -USE MODD_NSV, ONLY : NSV_ELECBEG, NSV_ELECEND, NSV_ELEC -USE MODD_VAR_ll, ONLY : NPROC,NMNH_COMM_WORLD -USE MODD_ARGSLIST_ll, ONLY : LIST_ll +USE MODD_ARGSLIST_ll, ONLY: LIST_ll +USE MODD_CONF, ONLY: CEXP, LCARTESIAN +USE MODD_CST, ONLY: XAVOGADRO, XMD +USE MODD_DYN_n, ONLY: XDXHATM, XDYHATM, NSTOP +USE MODD_ELEC_DESCR +USE MODD_ELEC_FLASH +USE MODD_ELEC_PARAM, ONLY: XFQLIGHTR, XEXQLIGHTR, & + XFQLIGHTI, XEXQLIGHTI, & + XFQLIGHTS, XEXQLIGHTS, & + XFQLIGHTG, XEXQLIGHTG, & + XFQLIGHTH, XEXQLIGHTH, & + XFQLIGHTC +USE MODD_GRID, ONLY: XLATORI,XLONORI +USE MODD_GRID_n, ONLY: XXHAT, XYHAT, XZHAT +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LMA_SIMULATOR +USE MODD_METRICS_n, ONLY: XDXX, XDYY, XDZZ ! in linox_production +USE MODD_NSV, ONLY: NSV_ELECBEG, NSV_ELECEND, NSV_ELEC +USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT +USE MODD_RAIN_ICE_DESCR, ONLY: XLBR, XLBEXR, XLBS, XLBEXS, & + XLBG, XLBEXG, XLBH, XLBEXH, & + XRTMIN USE MODD_SUB_ELEC_n USE MODD_TIME_n -USE MODD_LMA_SIMULATOR -USE MODD_ELEC_FLASH -! -USE MODI_SHUMAN -USE MODI_TO_ELEC_FIELD_n -USE MODI_ION_ATTACH_ELEC +USE MODD_VAR_ll, ONLY: NPROC,NMNH_COMM_WORLD ! +USE MODE_ELEC_ll +USE MODE_GRIDPROJ +USE MODE_ll +USE MODE_MPPDB #ifdef MNH_PGI USE MODE_PACK_PGI #endif ! -USE MODE_ll -USE MODE_ELEC_ll -USE MODE_GRIDPROJ -USE MODE_MPPDB +USE MODI_ION_ATTACH_ELEC +USE MODI_SHUMAN +USE MODI_TO_ELEC_FIELD_n ! IMPLICIT NONE ! diff --git a/src/MNH/forcing.f90 b/src/MNH/forcing.f90 index ebb2873db..e2cecf24f 100644 --- a/src/MNH/forcing.f90 +++ b/src/MNH/forcing.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################### @@ -151,25 +151,22 @@ END MODULE MODI_FORCING !* 0. DECLARATIONS ! ------------ ! -USE MODE_DATETIME -USE MODE_FM -USE MODE_IO_ll -USE MODE_MSG -! +USE MODD_BUDGET USE MODD_CONF +USE MODD_CST USE MODD_DYN USE MODD_FRC USE MODD_LUNIT USE MODD_PARAMETERS USE MODD_TIME -USE MODD_BUDGET -USE MODD_CST ! -USE MODI_SHUMAN -USE MODI_UPSTREAM_Z -USE MODI_BUDGET +USE MODE_DATETIME +USE MODE_MSG ! +USE MODI_BUDGET USE MODI_GET_HALO +USE MODI_SHUMAN +USE MODI_UPSTREAM_Z ! IMPLICIT NONE ! diff --git a/src/MNH/free_atm_profile.f90 b/src/MNH/free_atm_profile.f90 index fe785ac91..d4ae43d2a 100644 --- a/src/MNH/free_atm_profile.f90 +++ b/src/MNH/free_atm_profile.f90 @@ -10,7 +10,7 @@ INTERFACE SUBROUTINE FREE_ATM_PROFILE(TPFILE,PVAR_MX,PZMASS_MX,PZS_LS,PZSMT_LS,PCLIMGR,& PF_FREE,PZ_FREE) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics REAL, DIMENSION(:,:,:), INTENT(IN) :: PVAR_MX ! thermodynamical field @@ -93,20 +93,20 @@ END MODULE MODI_FREE_ATM_PROFILE ! USE MODD_CONF USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LUNIT, ONLY: TLUOUT0 +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS USE MODD_VER_INTERP_LIN ! +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEINT, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write +USE MODE_MPPDB +! USE MODI_COEF_VER_INTERP_LIN USE MODI_PGDFILTER USE MODI_VER_INTERP_LIN USE MODI_VERT_COORD ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEINT, TYPEREAL -USE MODE_FMWRIT -USE MODE_MPPDB -! IMPLICIT NONE ! !* 0.1 Declaration of arguments @@ -477,7 +477,7 @@ IF (CPROGRAM == 'DIAG ' ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,Z2D) + CALL IO_Field_write(TPFILE,TZFIELD,Z2D) ! !* 11.2 Writing of level of boundary layer top ! -------------------------------------- @@ -493,7 +493,7 @@ IF (CPROGRAM == 'DIAG ' ) THEN TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,IK_BL_TOP) + CALL IO_Field_write(TPFILE,TZFIELD,IK_BL_TOP) END IF ! IF (CPROGRAM /= 'DIAG ' .AND. CPROGRAM /= 'IDEAL ' ) THEN @@ -513,7 +513,7 @@ IF (CPROGRAM /= 'DIAG ' .AND. CPROGRAM /= 'IDEAL ' ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,Z2D) + CALL IO_Field_write(TPFILE,TZFIELD,Z2D) ! !* 11.4 Writing of free atmosphere 3D profiles ! -------------------------------------- @@ -534,7 +534,7 @@ IF (CPROGRAM /= 'DIAG ' .AND. CPROGRAM /= 'IDEAL ' ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,Z3D) + CALL IO_Field_write(TPFILE,TZFIELD,Z3D) ! END IF !------------------------------------------------------------------------------- diff --git a/src/MNH/gps_zenith.f90 b/src/MNH/gps_zenith.f90 index ea3602360..613ad8f2b 100644 --- a/src/MNH/gps_zenith.f90 +++ b/src/MNH/gps_zenith.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !########################################## @@ -77,15 +77,15 @@ END MODULE MODI_GPS_ZENITH USE MODD_CST USE MODD_DIAG_FLAG USE MODD_GR_FIELD_n -USE MODD_GRID, ONLY: XLONORI,XLATORI +USE MODD_GRID, ONLY: XLONORI, XLATORI USE MODD_GRID_n USE MODE_GRIDPROJ -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT USE MODD_PARAMETERS ! -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll,IO_FILE_OPEN_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST +USE MODE_IO_FILE, ONLY: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_TOOLS_ll, ONLY: LWEST_ll, LEAST_ll, LNORTH_ll, LSOUTH_ll ! USE MODI_INTERPOL_STATION @@ -275,8 +275,8 @@ PRINT *,'Number of GPS STATIONS ', ISTATIONS ! IF (ISTATIONS >0 ) THEN ! - CALL IO_FILE_ADD2LIST(TZFILE,HFGRI,'GPS','WRITE') - CALL IO_FILE_OPEN_ll(TZFILE) + CALL IO_File_add2list(TZFILE,HFGRI,'GPS','WRITE') + CALL IO_File_open(TZFILE) IFGRI = TZFILE%NLU PRINT *,'File ',TRIM(HFGRI),' opened with unit= ',IFGRI,' IRESP= ',IRESP WRITE(IFGRI,*,IOSTAT=IRESP) 'Number of STATIONS', ISTATIONS @@ -432,7 +432,7 @@ IF (ISTATIONS >0 ) THEN ! 1000 FORMAT('STATION ',A10,' ZHD: ',F8.5,' ZWD: ',F8.5,' ZTD: ',F8.5) ! - CALL IO_FILE_CLOSE_ll(TZFILE,IRESP) + CALL IO_File_close(TZFILE,IRESP) PRINT *,'File ',TRIM(HFGRI),' closed, IRESP= ',IRESP ! DEALLOCATE(ZXHATM) diff --git a/src/MNH/horibl.f90 b/src/MNH/horibl.f90 index f9d47b2d9..cab3e58d9 100644 --- a/src/MNH/horibl.f90 +++ b/src/MNH/horibl.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1999-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################## @@ -136,13 +136,10 @@ END MODULE MODI_HORIBL !* 0. DECLARATIONS ! --------------- ! -USE MODE_FM -USE MODE_IO_ll -USE MODE_MSG -! USE MODD_LUNIT +USE MODD_PARAMETERS, ONLY: XUNDEF ! -USE MODD_PARAMETERS,ONLY : XUNDEF +USE MODE_MSG ! USE MODI_SECOND_MNH ! diff --git a/src/MNH/ice_adjust.f90 b/src/MNH/ice_adjust.f90 index d1682f4ac..2008de1af 100644 --- a/src/MNH/ice_adjust.f90 +++ b/src/MNH/ice_adjust.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################### @@ -170,14 +170,13 @@ END MODULE MODI_ICE_ADJUST !* 0. DECLARATIONS ! ------------ ! -USE MODD_PARAMETERS -USE MODD_CST -USE MODD_CONF USE MODD_BUDGET +USE MODD_CONF +USE MODD_CST +USE MODD_PARAMETERS ! -USE MODI_CONDENSATION USE MODI_BUDGET -USE MODE_FMWRIT +USE MODI_CONDENSATION USE MODI_GET_HALO ! IMPLICIT NONE diff --git a/src/MNH/ice_adjust_elec.f90 b/src/MNH/ice_adjust_elec.f90 index 8a0b414fc..cdc92d380 100644 --- a/src/MNH/ice_adjust_elec.f90 +++ b/src/MNH/ice_adjust_elec.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ $Date$ -!----------------------------------------------------------------- ! ########################### MODULE MODI_ICE_ADJUST_ELEC ! ########################### @@ -186,7 +182,6 @@ USE MODD_RAIN_ICE_DESCR, ONLY : XRTMIN, XBI ! USE MODI_CONDENSATION USE MODI_BUDGET -USE MODE_FMWRIT USE MODI_GET_HALO ! IMPLICIT NONE diff --git a/src/MNH/ini_aircraft_balloon.f90 b/src/MNH/ini_aircraft_balloon.f90 index 28c4089c9..2d5cc4fb3 100644 --- a/src/MNH/ini_aircraft_balloon.f90 +++ b/src/MNH/ini_aircraft_balloon.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2000-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################### @@ -14,7 +14,7 @@ INTERFACE KRR, KSV, KKU, OUSETKE, & PLATOR, PLONOR ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_TYPE_DATE ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE !Initial file @@ -85,14 +85,13 @@ USE MODD_CONF USE MODD_DIAG_FLAG USE MODD_DYN_n USE MODD_GRID -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_LUNIT_n, ONLY : TLUOUT -USE MODD_PARAM_n, ONLY : CCLOUD +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_PARAM_n, ONLY: CCLOUD USE MODD_PARAMETERS ! -USE MODE_FIELD, ONLY : TFIELDDATA, TYPEREAL +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL USE MODE_GRIDPROJ -USE MODE_IO_ll USE MODE_ll USE MODE_MODELN_HANDLER USE MODE_MSG @@ -455,7 +454,7 @@ END SUBROUTINE ALLOCATE_FLYER !---------------------------------------------------------------------------- SUBROUTINE INI_LAUNCH(KNBR,TPFLYER) ! -USE MODE_FMREAD +use MODE_IO_FIELD_READ, only: IO_Field_read ! INTEGER, INTENT(IN) :: KNBR TYPE(FLYER), INTENT(INOUT) :: TPFLYER @@ -490,7 +489,7 @@ IF ( CPROGRAM == 'MESONH' .OR. CPROGRAM == 'SPAWN ' .OR. CPROGRAM == 'REAL ' ) TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,ZLAT,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,ZLAT,IRESP) ! IF ( IRESP /= 0 ) THEN WRITE(ILUOUT,*) "INI_LAUCH: Initial location take for ",TPFLYER%TITLE @@ -505,7 +504,7 @@ IF ( CPROGRAM == 'MESONH' .OR. CPROGRAM == 'SPAWN ' .OR. CPROGRAM == 'REAL ' ) TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,ZLON) + CALL IO_Field_read(TPINIFILE,TZFIELD,ZLON) ! TZFIELD%CMNHNAME = TRIM(TPFLYER%TITLE)//'ALT' TZFIELD%CSTDNAME = '' @@ -517,7 +516,7 @@ IF ( CPROGRAM == 'MESONH' .OR. CPROGRAM == 'SPAWN ' .OR. CPROGRAM == 'REAL ' ) TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,TPFLYER%Z_CUR) + CALL IO_Field_read(TPINIFILE,TZFIELD,TPFLYER%Z_CUR) ! TPFLYER%P_CUR = XUNDEF ! @@ -531,7 +530,7 @@ IF ( CPROGRAM == 'MESONH' .OR. CPROGRAM == 'SPAWN ' .OR. CPROGRAM == 'REAL ' ) TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,TPFLYER%WASCENT) + CALL IO_Field_read(TPINIFILE,TZFIELD,TPFLYER%WASCENT) ! TZFIELD%CMNHNAME = TRIM(TPFLYER%TITLE)//'RHO' TZFIELD%CSTDNAME = '' @@ -543,7 +542,7 @@ IF ( CPROGRAM == 'MESONH' .OR. CPROGRAM == 'SPAWN ' .OR. CPROGRAM == 'REAL ' ) TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,TPFLYER%RHO) + CALL IO_Field_read(TPINIFILE,TZFIELD,TPFLYER%RHO) ! CALL SM_XYHAT(PLATOR,PLONOR,& ZLAT,ZLON, & diff --git a/src/MNH/ini_budget.f90 b/src/MNH/ini_budget.f90 index 4593b1fe7..da0eef4b2 100644 --- a/src/MNH/ini_budget.f90 +++ b/src/MNH/ini_budget.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/ini_budget.f90,v $ $Revision: 1.3.2.5.2.2.2.2.10.2.2.5.2.1 $ -! masdev4_8 budget 2008/06/20 10:08:26 -!----------------------------------------------------------------- ! ###################### MODULE MODI_INI_BUDGET ! ###################### @@ -163,8 +158,6 @@ END MODULE MODI_INI_BUDGET !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM -! USE MODD_PARAMETERS USE MODD_BUDGET USE MODD_DYN @@ -181,7 +174,6 @@ USE MODD_PARAM_LIMA, ONLY : OWARM=>LWARM, OCOLD=>LCOLD, OSEDI=>LSEDI, & NMOD_CCN ! USE MODE_ll -USE MODE_IO_ll USE MODE_MSG ! IMPLICIT NONE diff --git a/src/MNH/ini_cpl.f90 b/src/MNH/ini_cpl.f90 index a53e37642..c7229f794 100644 --- a/src/MNH/ini_cpl.f90 +++ b/src/MNH/ini_cpl.f90 @@ -140,8 +140,8 @@ END MODULE MODI_INI_CPL !! !! EXTERNAL !! -------- -!! IO_READ_FIELD: to read data in LFI_FM file -!! IO_FILE_CLOSE_ll : to close a FM-file +!! IO_Field_read: to read data in LFI_FM file +!! IO_File_close : to close a FM-file !! INI_LS : to initialize larger scale fields !! INI_LB : to initialize "2D" surfacic LB fields !! DATETIME_DISTANCE : compute the temporal distance in seconds between 2 dates @@ -209,7 +209,7 @@ END MODULE MODI_INI_CPL !! (J.Escobar) 26/03/2014 bug in init of NSV_USER on RESTA case !! (P.Wautelet)28/03/2018 replace TEMPORAL_DIST by DATETIME_DISTANCE !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -218,7 +218,8 @@ USE MODD_CH_MNHC_n USE MODD_CONF USE MODD_CTURB USE MODD_DYN -USE MODD_LUNIT_n, ONLY: CCPLFILE, TCPLFILE, TLUOUT +USE MODD_LUNIT_n, ONLY: CCPLFILE, TCPLFILE, TLUOUT +USE MODD_NESTING USE MODD_NSV USE MODD_PARAMETERS USE MODD_TIME_n @@ -229,12 +230,10 @@ USE MODD_TIME_n ! #endif ! USE MODE_DATETIME -USE MODE_FM, ONLY: IO_FILE_OPEN_ll, IO_FILE_CLOSE_ll -USE MODE_FMREAD -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FILE, only: IO_File_open, IO_File_close +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list USE MODE_MSG -USE MODD_NESTING USE MODE_TIME ! USE MODI_INI_LS @@ -344,15 +343,15 @@ ILUOUT = TLUOUT%NLU ! DO JCI=1,NCPL_NBR WRITE(YCI,'(I2.0)') JCI - CALL IO_FILE_ADD2LIST(TCPLFILE(JCI)%TZFILE,CCPLFILE(JCI),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TCPLFILE(JCI)%TZFILE,KRESP=IRESP) + CALL IO_File_add2list(TCPLFILE(JCI)%TZFILE,CCPLFILE(JCI),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_open(TCPLFILE(JCI)%TZFILE,KRESP=IRESP) IF (IRESP /= 0) THEN CALL PRINT_MSG(NVERB_FATAL,'IO','INI_CPL','problem when opening coupling file '//TRIM(YCI)) END IF ! !* 2.1 Read current time in coupling files ! - CALL IO_READ_FIELD(TCPLFILE(JCI)%TZFILE,'DTCUR',TDTCPL(JCI)) + CALL IO_Field_read(TCPLFILE(JCI)%TZFILE,'DTCUR',TDTCPL(JCI)) ! !* 2.2 Check chronological order ! @@ -445,9 +444,9 @@ END DO ! !* 3.1 Read dimensions in coupling file and checks with initial file ! -CALL IO_READ_FIELD(TCPLFILE(NCPL_CUR)%TZFILE,'IMAX',IIMAX) -CALL IO_READ_FIELD(TCPLFILE(NCPL_CUR)%TZFILE,'JMAX',IJMAX) -CALL IO_READ_FIELD(TCPLFILE(NCPL_CUR)%TZFILE,'KMAX',IKMAX) +CALL IO_Field_read(TCPLFILE(NCPL_CUR)%TZFILE,'IMAX',IIMAX) +CALL IO_Field_read(TCPLFILE(NCPL_CUR)%TZFILE,'JMAX',IJMAX) +CALL IO_Field_read(TCPLFILE(NCPL_CUR)%TZFILE,'KMAX',IKMAX) ! IKU=SIZE(PLSUM,3) ! @@ -510,7 +509,7 @@ CALL INI_LB(TCPLFILE(NCPL_CUR)%TZFILE,GLSOURCE,KSV, & ! !* 3.5 Close the coupling file ! -CALL IO_FILE_CLOSE_ll(TCPLFILE(NCPL_CUR)%TZFILE) +CALL IO_File_close(TCPLFILE(NCPL_CUR)%TZFILE) !!------------------------------------------------------------------------------- ! !* 6. FORMATS diff --git a/src/MNH/ini_deep_convection.f90 b/src/MNH/ini_deep_convection.f90 index 1622565cc..6934822e3 100644 --- a/src/MNH/ini_deep_convection.f90 +++ b/src/MNH/ini_deep_convection.f90 @@ -18,7 +18,7 @@ INTERFACE OCH_CONV_LINOX, PIC_RATE, PCG_RATE, & PIC_TOTAL_NUMBER, PCG_TOTAL_NUMBER ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA USE MODD_TIME ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file @@ -115,27 +115,26 @@ END MODULE MODI_INI_DEEP_CONVECTION !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_TIME -USE MODD_CONVPAR +USE MODD_CH_AEROSOL, ONLY: CAERONAMES USE MODD_CH_M9_n, ONLY: CNAMES -USE MODD_RAIN_C2R2_DESCR, ONLY: C2R2NAMES -USE MODD_ICE_C1R3_DESCR, ONLY : C1R3NAMES -USE MODD_ELEC_DESCR, ONLY : CELECNAMES +USE MODD_CONVPAR +USE MODD_DUST, ONLY: CDUSTNAMES +USE MODD_ELEC_DESCR, ONLY: CELECNAMES +USE MODD_ICE_C1R3_DESCR, ONLY: C1R3NAMES +USE MODD_IO, ONLY: TFILEDATA USE MODD_LG, ONLY: CLGNAMES -USE MODD_NSV, ONLY : NSV,NSV_USER,NSV_CHEMBEG,NSV_CHEMEND,NSV_C2R2BEG,NSV_C2R2END, & - NSV_LGBEG,NSV_LGEND,NSV_LNOXBEG,NSV_LNOXEND, & - NSV_DSTBEG,NSV_DSTEND, NSV_AERBEG,NSV_AEREND, & - NSV_SLTBEG,NSV_SLTEND, NSV_PPBEG,NSV_PPEND, & - NSV_C1R3BEG,NSV_C1R3END, NSV_ELECBEG,NSV_ELECEND -USE MODD_CH_AEROSOL, ONLY : CAERONAMES -USE MODD_DUST, ONLY : CDUSTNAMES -USE MODD_SALT, ONLY : CSALTNAMES +USE MODD_NSV, ONLY: NSV, NSV_USER, NSV_CHEMBEG, NSV_CHEMEND, NSV_C2R2BEG, NSV_C2R2END, & + NSV_LGBEG, NSV_LGEND, NSV_LNOXBEG, NSV_LNOXEND, & + NSV_DSTBEG, NSV_DSTEND, NSV_AERBEG, NSV_AEREND, & + NSV_SLTBEG, NSV_SLTEND, NSV_PPBEG, NSV_PPEND, & + NSV_C1R3BEG, NSV_C1R3END, NSV_ELECBEG, NSV_ELECEND +USE MODD_RAIN_C2R2_DESCR, ONLY: C2R2NAMES +USE MODD_SALT, ONLY: CSALTNAMES +USE MODD_TIME ! USE MODE_FIELD -USE MODE_FM -USE MODE_FMREAD -USE MODE_TOOLS, ONLY: UPCASE +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_TOOLS, ONLY: UPCASE ! IMPLICIT NONE ! @@ -225,36 +224,36 @@ IF ( OINIDCONV ) THEN ! ELSE ! - CALL IO_READ_FIELD(TPINIFILE,'DTDCONV', TPDTDCONV) - CALL IO_READ_FIELD(TPINIFILE,'COUNTCONV',KCOUNTCONV) - CALL IO_READ_FIELD(TPINIFILE,'DTHCONV', PDTHCONV) - CALL IO_READ_FIELD(TPINIFILE,'DRVCONV', PDRVCONV) - CALL IO_READ_FIELD(TPINIFILE,'DRCCONV', PDRCCONV) - CALL IO_READ_FIELD(TPINIFILE,'DRICONV', PDRICONV) + CALL IO_Field_read(TPINIFILE,'DTDCONV', TPDTDCONV) + CALL IO_Field_read(TPINIFILE,'COUNTCONV',KCOUNTCONV) + CALL IO_Field_read(TPINIFILE,'DTHCONV', PDTHCONV) + CALL IO_Field_read(TPINIFILE,'DRVCONV', PDRVCONV) + CALL IO_Field_read(TPINIFILE,'DRCCONV', PDRCCONV) + CALL IO_Field_read(TPINIFILE,'DRICONV', PDRICONV) ! CALL FIND_FIELD_ID_FROM_MNHNAME('PRCONV',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PPRCONV) + CALL IO_Field_read(TPINIFILE,TZFIELD,PPRCONV) PPRCONV=PPRCONV/(1000.*3600.) ! conversion into m/s units ! CALL FIND_FIELD_ID_FROM_MNHNAME('PRSCONV',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PPRSCONV) + CALL IO_Field_read(TPINIFILE,TZFIELD,PPRSCONV) PPRSCONV=PPRSCONV/(1000.*3600.) ! conversion into m/s units ! CALL FIND_FIELD_ID_FROM_MNHNAME('PACCONV',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PPACCONV) + CALL IO_Field_read(TPINIFILE,TZFIELD,PPACCONV) PPACCONV=PPACCONV/1000. ! conversion into m unit ! IF ( OCH_CONV_LINOX ) THEN - CALL IO_READ_FIELD(TPINIFILE,'IC_RATE', PIC_RATE) - CALL IO_READ_FIELD(TPINIFILE,'CG_RATE', PCG_RATE) - CALL IO_READ_FIELD(TPINIFILE,'IC_TOTAL_NB',PIC_TOTAL_NUMBER) - CALL IO_READ_FIELD(TPINIFILE,'CG_TOTAL_NB',PCG_TOTAL_NUMBER) + CALL IO_Field_read(TPINIFILE,'IC_RATE', PIC_RATE) + CALL IO_Field_read(TPINIFILE,'CG_RATE', PCG_RATE) + CALL IO_Field_read(TPINIFILE,'IC_TOTAL_NB',PIC_TOTAL_NUMBER) + CALL IO_Field_read(TPINIFILE,'CG_TOTAL_NB',PCG_TOTAL_NUMBER) END IF ! ! @@ -272,67 +271,67 @@ ELSE WRITE(TZFIELD%CMNHNAME,'(A7,I3.3)')'DSVCONV',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_C2R2BEG, NSV_C2R2END TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_C1R3BEG, NSV_C1R3END TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_ELECBEG, NSV_ELECEND TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(CELECNAMES(JSV-NSV_ELECBEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_CHEMBEG, NSV_CHEMEND TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(UPCASE(CNAMES(JSV-NSV_CHEMBEG+1))) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_AERBEG, NSV_AEREND TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1))) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_LNOXBEG,NSV_LNOXEND TZFIELD%CMNHNAME = 'DSVCONV_LINOX' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_DSTBEG, NSV_DSTEND TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(UPCASE(CDUSTNAMES(JSV-NSV_DSTBEG+1))) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_SLTBEG, NSV_SLTEND TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(UPCASE(CSALTNAMES(JSV-NSV_SLTBEG+1))) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_LGBEG, NSV_LGEND TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(CLGNAMES(JSV-NSV_LGBEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_PPBEG, NSV_PPEND WRITE(TZFIELD%CMNHNAME,'(A7,I3.3)')'DSVCONV',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDSVCONV(:,:,:,JSV)) END DO END SELECT ! diff --git a/src/MNH/ini_drag.f90 b/src/MNH/ini_drag.f90 index 39bcf5b53..aea5faa99 100644 --- a/src/MNH/ini_drag.f90 +++ b/src/MNH/ini_drag.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2012-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ###################### MODULE MODI_INI_DRAG ! ###################### @@ -52,7 +53,6 @@ END MODULE MODI_INI_DRAG !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS -USE MODE_FM USE MODE_ll USE MODD_PARAMETERS ! diff --git a/src/MNH/ini_elec.f90 b/src/MNH/ini_elec.f90 index 4dfdd8e47..55ff715c4 100644 --- a/src/MNH/ini_elec.f90 +++ b/src/MNH/ini_elec.f90 @@ -43,26 +43,22 @@ !* 0. DECLARATIONS ! ------------ ! -USE MODE_ll USE MODD_ARGSLIST_ll, ONLY : LIST_ll -USE MODE_IO_ll -USE MODE_FM -USE MODE_FMREAD -! -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_LUNIT_n -USE MODD_NSV, ONLY : NSV,NSV_ELEC,NSV_ELECBEG,NSV_ELECEND -USE MODD_PARAMETERS -USE MODD_CST USE MODD_CONF +USE MODD_CST USE MODD_DYN +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT_n +USE MODD_NSV, ONLY: NSV, NSV_ELEC, NSV_ELECBEG, NSV_ELECEND +USE MODD_PARAMETERS USE MODD_REF USE MODD_TIME ! -USE MODN_CONF_n +USE MODE_ll ! USE MODI_INI_CLOUD ! +USE MODN_CONF_n ! IMPLICIT NONE ! diff --git a/src/MNH/ini_elecn.f90 b/src/MNH/ini_elecn.f90 index f668ebc3a..292304f41 100644 --- a/src/MNH/ini_elecn.f90 +++ b/src/MNH/ini_elecn.f90 @@ -12,7 +12,7 @@ INTERFACE PTSTEP, PZZ, & PDXX, PDYY, PDZZ, PDZX, PDZY ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! INTEGER, INTENT(IN) :: KLUOUT ! Logical unit number for prints CHARACTER (LEN=4), INTENT(IN) :: HELEC ! atmospheric electricity scheme @@ -93,7 +93,7 @@ USE MODD_ELEC_n, ONLY : XRHOM_E, XAF_E, XCF_E, XBFY_E, XBFB_E, XBF_SXP2_YP1_Z_E USE MODD_GET_n, ONLY : CGETINPRC, CGETINPRR, CGETINPRS, CGETINPRG, CGETINPRH, & CGETCLOUD, CGETSVT USE MODD_GRID_n, ONLY : XMAP, XDXHAT, XDYHAT -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA USE MODD_LBC_n, ONLY : CLBCX, CLBCY USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAM_C2R2, ONLY : LDEPOC @@ -107,8 +107,6 @@ USE MODD_REF_n, ONLY : XRHODJ, XTHVREF USE MODD_TIME ! USE MODD_ARGSLIST_ll, ONLY : LIST_ll -USE MODE_IO_ll -USE MODE_FMREAD USE MODE_ll ! USE MODI_ELEC_TRIDZ diff --git a/src/MNH/ini_field_elec.f90 b/src/MNH/ini_field_elec.f90 index 9fa4a9fb1..86b68ca99 100644 --- a/src/MNH/ini_field_elec.f90 +++ b/src/MNH/ini_field_elec.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ########################## MODULE MODI_INI_FIELD_ELEC @@ -78,7 +78,6 @@ USE MODI_GDIV USE MODI_SHUMAN ! USE MODE_ll -USE MODE_FM ! IMPLICIT NONE ! diff --git a/src/MNH/ini_lb.f90 b/src/MNH/ini_lb.f90 index 004e340ec..046270d70 100644 --- a/src/MNH/ini_lb.f90 +++ b/src/MNH/ini_lb.f90 @@ -21,7 +21,7 @@ SUBROUTINE INI_LB(TPINIFILE,OLSOURCE,KSV, & PLBYUMM,PLBYVMM,PLBYWMM,PLBYTHMM,PLBYTKEMM,PLBYRMM,PLBYSVMM, & PLENG ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file LOGICAL, INTENT(IN) :: OLSOURCE ! switch for the source term @@ -144,7 +144,7 @@ USE MODD_CONF USE MODD_DUST USE MODD_ELEC_DESCR, ONLY: CELECNAMES USE MODD_ICE_C1R3_DESCR, ONLY: C1R3NAMES -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LG, ONLY: CLGNAMES USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_NSV @@ -157,7 +157,7 @@ USE MODD_RAIN_C2R2_DESCR, ONLY: C2R2NAMES USE MODD_SALT ! USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG,TYPEREAL -USE MODE_FMREAD +USE MODE_IO_FIELD_READ, only: IO_Field_read, IO_Field_read_lb USE MODE_MSG USE MODE_TOOLS, ONLY: UPCASE ! @@ -237,7 +237,7 @@ TYPE(TFIELDDATA) :: TZFIELD !* 0. READ CPL_AROME to know which LB_fileds there are to read ! -------------------- IF ((TPINIFILE%NMNHVERSION(1)==4 .AND. TPINIFILE%NMNHVERSION(2)>8) .OR. TPINIFILE%NMNHVERSION(1)>4) THEN - CALL IO_READ_FIELD(TPINIFILE,'CPL_AROME',LCPL_AROME) + CALL IO_Field_read(TPINIFILE,'CPL_AROME',LCPL_AROME) ELSE LCPL_AROME=.FALSE. ENDIF @@ -256,12 +256,12 @@ ILUOUT = TLUOUT%NLU ! !* 2.1 read the number of available points for the horizontal relaxation ! for basic variables -CALL IO_READ_FIELD(TPINIFILE,'RIMX',ILBSIZEX) -CALL IO_READ_FIELD(TPINIFILE,'RIMY',ILBSIZEY) +CALL IO_Field_read(TPINIFILE,'RIMX',ILBSIZEX) +CALL IO_Field_read(TPINIFILE,'RIMY',ILBSIZEY) ! !* 2.2 Basic variables ! -CALL IO_READ_FIELD(TPINIFILE,'HORELAX_UVWTH',GHORELAX_UVWTH) +CALL IO_Field_read(TPINIFILE,'HORELAX_UVWTH',GHORELAX_UVWTH) ! IF (GHORELAX_UVWTH) THEN IRIMX =(KSIZELBX_ll-2*JPHEXT)/2 @@ -284,35 +284,35 @@ ELSE ENDIF ! IF (KSIZELBXU_ll/= 0) THEN - CALL IO_READ_FIELD_LB(TPINIFILE,'LBXUM',IL3DXU,IRIMXU,PLBXUM) + CALL IO_Field_read_lb(TPINIFILE,'LBXUM',IL3DXU,IRIMXU,PLBXUM) END IF IF ( KSIZELBX_ll /= 0) THEN - CALL IO_READ_FIELD_LB(TPINIFILE,'LBXVM',IL3DX,IRIMX,PLBXVM) + CALL IO_Field_read_lb(TPINIFILE,'LBXVM',IL3DX,IRIMX,PLBXVM) ENDIF IF ( KSIZELBX_ll /= 0) THEN - CALL IO_READ_FIELD_LB(TPINIFILE,'LBXWM',IL3DX,IRIMX,PLBXWM) + CALL IO_Field_read_lb(TPINIFILE,'LBXWM',IL3DX,IRIMX,PLBXWM) END IF IF ( KSIZELBY_ll /= 0) THEN - CALL IO_READ_FIELD_LB(TPINIFILE,'LBYUM',IL3DY,IRIMY,PLBYUM) + CALL IO_Field_read_lb(TPINIFILE,'LBYUM',IL3DY,IRIMY,PLBYUM) END IF IF ( KSIZELBYV_ll /= 0) THEN - CALL IO_READ_FIELD_LB(TPINIFILE,'LBYVM',IL3DYV,IRIMYV,PLBYVM) + CALL IO_Field_read_lb(TPINIFILE,'LBYVM',IL3DYV,IRIMYV,PLBYVM) END IF IF (KSIZELBY_ll /= 0) THEN - CALL IO_READ_FIELD_LB(TPINIFILE,'LBYWM',IL3DY,IRIMY,PLBYWM) + CALL IO_Field_read_lb(TPINIFILE,'LBYWM',IL3DY,IRIMY,PLBYWM) END IF IF (KSIZELBX_ll /= 0) THEN - CALL IO_READ_FIELD_LB(TPINIFILE,'LBXTHM',IL3DX,IRIMX,PLBXTHM) + CALL IO_Field_read_lb(TPINIFILE,'LBXTHM',IL3DX,IRIMX,PLBXTHM) END IF IF ( KSIZELBY_ll /= 0) THEN - CALL IO_READ_FIELD_LB(TPINIFILE,'LBYTHM',IL3DY,IRIMY,PLBYTHM) + CALL IO_Field_read_lb(TPINIFILE,'LBYTHM',IL3DY,IRIMY,PLBYTHM) END IF ! !* 2.3 LB-TKE @@ -329,7 +329,7 @@ CASE('READ') CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize LBXTKES and LBYTKES') ENDIF ELSE - CALL IO_READ_FIELD(TPINIFILE,'HORELAX_TKE',GHORELAX_TKE) + CALL IO_Field_read(TPINIFILE,'HORELAX_TKE',GHORELAX_TKE) IF (GHORELAX_TKE) THEN IRIMX=(KSIZELBXTKE_ll-2*JPHEXT)/2 IRIMY=(KSIZELBYTKE_ll-2*JPHEXT)/2 @@ -343,11 +343,11 @@ CASE('READ') ENDIF ! IF (KSIZELBXTKE_ll /= 0) THEN - CALL IO_READ_FIELD_LB(TPINIFILE,'LBXTKEM',IL3DX,IRIMX,PLBXTKEM) + CALL IO_Field_read_lb(TPINIFILE,'LBXTKEM',IL3DX,IRIMX,PLBXTKEM) END IF ! IF (KSIZELBYTKE_ll /= 0) THEN - CALL IO_READ_FIELD_LB(TPINIFILE,'LBYTKEM',IL3DY,IRIMY,PLBYTKEM) + CALL IO_Field_read_lb(TPINIFILE,'LBYTKEM',IL3DY,IRIMY,PLBYTKEM) END IF ENDIF CASE('INIT') @@ -371,7 +371,7 @@ IF(KSIZELBXR_ll > 0 ) THEN TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. ! - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,GHORELAX_R) + CALL IO_Field_read(TPINIFILE,TZFIELD,GHORELAX_R) ! YGETRXM(:)=(/HGETRVM,HGETRCM,HGETRRM,HGETRIM,HGETRSM,HGETRGM,HGETRHM/) YC(:)=(/"V","C","R","I","S","G","H"/) @@ -405,7 +405,7 @@ IF(KSIZELBXR_ll > 0 ) THEN TZFIELD%CLONGNAME = 'LBXR'//YC(JRR)//'M' TZFIELD%CLBTYPE = 'LBX' TZFIELD%CCOMMENT = '2_Y_Z_LBXR'//YC(JRR)//'M' - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXRM(:,:,:,IRR)) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXRM(:,:,:,IRR)) END IF ! IF ( KSIZELBYR_ll /= 0 ) THEN @@ -413,7 +413,7 @@ IF(KSIZELBXR_ll > 0 ) THEN TZFIELD%CLONGNAME = 'LBYR'//YC(JRR)//'M' TZFIELD%CLBTYPE = 'LBY' TZFIELD%CCOMMENT = '2_Y_Z_LBYR'//YC(JRR)//'M' - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYRM(:,:,:,IRR)) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYRM(:,:,:,IRR)) END IF CASE('INIT') IRR=IRR+1 @@ -440,7 +440,7 @@ IF(KSIZELBXR_ll > 0 ) THEN TZFIELD%CLONGNAME = 'LBXR'//YC(JRR)//'M' TZFIELD%CLBTYPE = 'LBX' TZFIELD%CCOMMENT = '2_Y_Z_LBXR'//YC(JRR)//'M' - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXRM(:,:,:,IRR)) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXRM(:,:,:,IRR)) ENDIF END IF ! @@ -458,7 +458,7 @@ IF(KSIZELBXR_ll > 0 ) THEN TZFIELD%CLONGNAME = 'LBYR'//YC(JRR)//'M' TZFIELD%CLBTYPE = 'LBY' TZFIELD%CCOMMENT = '2_Y_Z_LBYR'//YC(JRR)//'M' - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYRM(:,:,:,IRR)) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYRM(:,:,:,IRR)) ENDIF END IF CASE('INIT') @@ -484,7 +484,7 @@ IF (KSV > 0) THEN TZFIELD%NTYPE = TYPELOG TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,GHORELAX_SV) + CALL IO_Field_read(TPINIFILE,TZFIELD,GHORELAX_SV) IF ( GHORELAX_SV ) THEN IRIMX=(KSIZELBXSV_ll-2*JPHEXT)/2 IRIMY=(KSIZELBYSV_ll-2*JPHEXT)/2 @@ -516,7 +516,7 @@ IF (NSV_USER>0) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3,A8)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -535,7 +535,7 @@ IF (NSV_USER>0) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3,A8)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -572,7 +572,7 @@ IF (NSV_C2R2END>=NSV_C2R2BEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -591,7 +591,7 @@ IF (NSV_C2R2END>=NSV_C2R2BEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -628,7 +628,7 @@ IF (NSV_C1R3END>=NSV_C1R3BEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -647,7 +647,7 @@ IF (NSV_C1R3END>=NSV_C1R3BEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -688,7 +688,7 @@ IF (CCLOUD=='LIMA' ) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -707,7 +707,7 @@ IF (CCLOUD=='LIMA' ) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -745,7 +745,7 @@ IF (CCLOUD=='LIMA' ) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -764,7 +764,7 @@ IF (CCLOUD=='LIMA' ) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -802,7 +802,7 @@ IF (NSV_ELECEND>=NSV_ELECBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -820,7 +820,7 @@ IF (NSV_ELECEND>=NSV_ELECBEG) THEN TZFIELD%CMNHNAME = 'LBY_'//TRIM(CELECNAMES(JSV-NSV_ELECBEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -857,7 +857,7 @@ IF (NSV_CHGSEND>=NSV_CHGSBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -876,7 +876,7 @@ IF (NSV_CHGSEND>=NSV_CHGSBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -913,7 +913,7 @@ IF (NSV_CHACEND>=NSV_CHACBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -932,7 +932,7 @@ IF (NSV_CHACEND>=NSV_CHACBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -969,7 +969,7 @@ IF (NSV_CHICEND>=NSV_CHICBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -988,7 +988,7 @@ IF (NSV_CHICEND>=NSV_CHICBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -1025,7 +1025,7 @@ IF (NSV_AEREND>=NSV_AERBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -1044,7 +1044,7 @@ IF (NSV_AEREND>=NSV_AERBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -1081,7 +1081,7 @@ IF (NSV_AERDEPEND>=NSV_AERDEPBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -1100,7 +1100,7 @@ IF (NSV_AERDEPEND>=NSV_AERDEPBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -1137,7 +1137,7 @@ IF (NSV_DSTEND>=NSV_DSTBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -1156,7 +1156,7 @@ IF (NSV_DSTEND>=NSV_DSTBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -1193,7 +1193,7 @@ IF (NSV_DSTDEPEND>=NSV_DSTDEPBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -1212,7 +1212,7 @@ IF (NSV_DSTDEPEND>=NSV_DSTDEPBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -1250,7 +1250,7 @@ IF (NSV_SLTEND>=NSV_SLTBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -1269,7 +1269,7 @@ IF (NSV_SLTEND>=NSV_SLTBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -1306,7 +1306,7 @@ IF (NSV_PPEND>=NSV_PPBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -1325,7 +1325,7 @@ IF (NSV_PPEND>=NSV_PPBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -1363,7 +1363,7 @@ IF (NSV_FFEND>=NSV_FFBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) WRITE(ILUOUT,*) 'ForeFire LBX_FF ', IRESP IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN @@ -1383,7 +1383,7 @@ IF (NSV_FFEND>=NSV_FFBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -1421,7 +1421,7 @@ IF (NSV_CSEND>=NSV_CSBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -1440,7 +1440,7 @@ IF (NSV_CSEND>=NSV_CSBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -1477,7 +1477,7 @@ IF (NSV_LNOXEND>=NSV_LNOXBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -1496,7 +1496,7 @@ IF (NSV_LNOXEND>=NSV_LNOXBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN @@ -1533,7 +1533,7 @@ IF (NSV_LGEND>=NSV_LGBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DX,IRIMX,PLBXSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBXSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBXSVMM)) THEN @@ -1552,7 +1552,7 @@ IF (NSV_LGEND>=NSV_LGBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_READ_FIELD_LB(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) + CALL IO_Field_read_lb(TPINIFILE,TZFIELD,IL3DY,IRIMY,PLBYSVM(:,:,:,JSV),IRESP) IF ( SIZE(PLBYSVM,1) /= 0 ) THEN IF (IRESP/=0) THEN IF (PRESENT(PLBYSVMM)) THEN diff --git a/src/MNH/ini_lesn.f90 b/src/MNH/ini_lesn.f90 index 3f398b419..48e83c6fb 100644 --- a/src/MNH/ini_lesn.f90 +++ b/src/MNH/ini_lesn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -41,7 +41,6 @@ ! USE MODE_ll USE MODE_GATHER_ll -USE MODE_IO_ll USE MODE_MSG USE MODE_MODELN_HANDLER ! @@ -66,7 +65,6 @@ USE MODD_DYN USE MODD_NSV, ONLY: NSV ! update_nsv is done in INI_MODEL USE MODD_CONDSAMP, ONLY : LCONDSAMP ! - USE MODI_INI_LES_CART_MASKn USE MODI_COEF_VER_INTERP_LIN ! diff --git a/src/MNH/ini_ls.f90 b/src/MNH/ini_ls.f90 index 5cf231784..4fe067049 100644 --- a/src/MNH/ini_ls.f90 +++ b/src/MNH/ini_ls.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################### @@ -15,7 +15,7 @@ INTERFACE PLSUMM,PLSVMM,PLSWMM,PLSTHMM,PLSRVMM,PDRYMASST,PLENG, & OSTEADY_DMASS) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file CHARACTER (LEN=*), INTENT(IN) :: HGETRVM ! GET indicator @@ -87,10 +87,9 @@ END MODULE MODI_INI_LS !* 0. DECLARATIONS ! USE MODD_CONF -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_TIME ! for type DATE_TIME +USE MODD_IO, ONLY: TFILEDATA ! -USE MODE_FMREAD +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG ! IMPLICIT NONE @@ -134,13 +133,13 @@ LOGICAL, INTENT(IN), OPTIONAL :: OSTEADY_DMASS ! Md ev !* 2. READ LARGE SCALE FIELDS ! ----------------------- ! -CALL IO_READ_FIELD(TPINIFILE,'LSUM', PLSUM) -CALL IO_READ_FIELD(TPINIFILE,'LSVM', PLSVM) -CALL IO_READ_FIELD(TPINIFILE,'LSWM', PLSWM) -CALL IO_READ_FIELD(TPINIFILE,'LSTHM',PLSTHM) +CALL IO_Field_read(TPINIFILE,'LSUM', PLSUM) +CALL IO_Field_read(TPINIFILE,'LSVM', PLSVM) +CALL IO_Field_read(TPINIFILE,'LSWM', PLSWM) +CALL IO_Field_read(TPINIFILE,'LSTHM',PLSTHM) ! IF (HGETRVM == 'READ') THEN ! LS-vapor - CALL IO_READ_FIELD(TPINIFILE,'LSRVM',PLSRVM) + CALL IO_Field_read(TPINIFILE,'LSRVM',PLSRVM) ENDIF ! ! @@ -172,7 +171,7 @@ IF (OLSOURCE) THEN ! Dry mass IF(.NOT. OSTEADY_DMASS) THEN IF (PRESENT(PDRYMASSS).AND.PRESENT(PDRYMASST)) THEN - CALL IO_READ_FIELD(TPINIFILE,'DRYMASST',PDRYMASSS) + CALL IO_Field_read(TPINIFILE,'DRYMASST',PDRYMASSS) PDRYMASSS = (PDRYMASSS - PDRYMASST) / PLENG ENDIF ENDIF diff --git a/src/MNH/ini_micron.f90 b/src/MNH/ini_micron.f90 index e45a6b56b..718eebb46 100644 --- a/src/MNH/ini_micron.f90 +++ b/src/MNH/ini_micron.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -10,7 +10,7 @@ INTERFACE SUBROUTINE INI_MICRO_n ( TPINIFILE,KLUOUT ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file INTEGER, INTENT(IN) :: KLUOUT ! Logical unit number for prints @@ -61,7 +61,7 @@ END MODULE MODI_INI_MICRO_n ! ! USE MODD_CONF, ONLY : CCONF,CPROGRAM -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA USE MODD_GET_n, ONLY : CGETRCT,CGETRRT, CGETRST, CGETRGT, CGETRHT, CGETCLOUD USE MODD_DIM_n, ONLY : NIMAX_ll, NJMAX_ll USE MODD_PARAMETERS, ONLY : JPVEXT, JPHEXT diff --git a/src/MNH/ini_modeln.f90 b/src/MNH/ini_modeln.f90 index c4fc6fb9a..20ad8d343 100644 --- a/src/MNH/ini_modeln.f90 +++ b/src/MNH/ini_modeln.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE INI_MODEL_n(KMI,TPINIFILE) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KMI ! Model Index TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file @@ -63,7 +63,7 @@ END MODULE MODI_INI_MODEL_n !! INI_CPL. !! - The initialization of the parameters needed for the dynamics !! of the model n is realized in INI_DYNAMICS. -!! - Then the initial file (DESFM+LFIFM files) is closed by IO_FILE_CLOSE_ll. +!! - Then the initial file (DESFM+LFIFM files) is closed by IO_File_close. !! - The initialization of the parameters needed for the ECMWF radiation !! code is realized in INI_RADIATIONS. !! - The contents of the scalar variables are overwritten by @@ -74,8 +74,6 @@ END MODULE MODI_INI_MODEL_n !! !! EXTERNAL !! -------- -!! FMREAD : to read a LFIFM file -!! FMFREE : to release a logical unit number !! SET_DIM : to initialize dimensions !! SET_GRID : to initialize grid !! METRICS : to compute metric coefficients @@ -278,7 +276,7 @@ END MODULE MODI_INI_MODEL_n !! V. Vionnet : 18/07/2017 : add blowing snow scheme !! 01/18 J.Colin Add DRAG !! P.Wautelet 29/01/2019: bug: add missing zero-size allocations -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables ! P. Wautelet 14/02/2019: remove HINIFILE dummy argument from INI_RADIATIONS_ECMWF/ECRAD !--------------------------------------------------------------------------------- @@ -292,10 +290,10 @@ END MODULE MODI_INI_MODEL_n ! USE MODE_ll USE MODD_ARGSLIST_ll, ONLY : LIST_ll -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST -USE MODE_FM, ONLY: IO_FILE_OPEN_ll -USE MODE_FMREAD +USE MODE_IO +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list +USE MODE_IO_FILE, ONLY: IO_File_open +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_GATHER_ll USE MODE_MSG USE MODE_TYPE_ZDIFFU @@ -436,7 +434,7 @@ USE MODD_ADVFRC_n USE MODD_RELFRC_n USE MODD_2D_FRC USE MODD_IO_SURF_MNH, ONLY : IO_SURF_MNH_MODEL -USE MODD_IO_ll, ONLY : CIO_DIR,TFILEDATA,TFILE_DUMMY,TFILE_FIRST,TFILE_LAST +USE MODD_IO, ONLY: CIO_DIR, TFILEDATA, TFILE_DUMMY, TFILE_FIRST, TFILE_LAST ! USE MODD_CH_PRODLOSSTOT_n USE MODI_CH_INIT_PRODLOSSTOT_n @@ -557,11 +555,11 @@ ILUOUT = TLUOUT%NLU !* 2.1 Read number of forcing fields ! IF (LFORCING) THEN ! Retrieve the number of time-dependent forcings. - CALL IO_READ_FIELD(TPINIFILE,'FRC',NFRC,IRESP) + CALL IO_Field_read(TPINIFILE,'FRC',NFRC,IRESP) IF ( (IRESP /= 0) .OR. (NFRC <=0) ) THEN WRITE(ILUOUT,'(A/A)') & "INI_MODEL_n ERROR: you want to read forcing variables from FMfile", & - " but no fields have been found by IO_READ_FIELD" + " but no fields have been found by IO_Field_read" !callabortstop CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_MODEL_n','') END IF @@ -570,11 +568,11 @@ END IF ! Modif PP for time evolving adv forcing IF ( L2D_ADV_FRC ) THEN ! Retrieve the number of time-dependent forcings. WRITE(ILUOUT,FMT=*) "INI_MODEL_n ENTER ADV_FORCING" - CALL IO_READ_FIELD(TPINIFILE,'NADVFRC1',NADVFRC,IRESP) + CALL IO_Field_read(TPINIFILE,'NADVFRC1',NADVFRC,IRESP) IF ( (IRESP /= 0) .OR. (NADVFRC <=0) ) THEN WRITE(ILUOUT,'(A/A)') & "INI_MODELn ERROR: you want to read forcing ADV variables from FMfile", & - " but no fields have been found by IO_READ_FIELD" + " but no fields have been found by IO_Field_read" !callabortstop CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_MODEL_n','') END IF @@ -583,11 +581,11 @@ END IF ! IF ( L2D_REL_FRC ) THEN ! Retrieve the number of time-dependent forcings. WRITE(ILUOUT,FMT=*) "INI_MODEL_n ENTER REL_FORCING" - CALL IO_READ_FIELD(TPINIFILE,'NRELFRC1',NRELFRC,IRESP) + CALL IO_Field_read(TPINIFILE,'NRELFRC1',NRELFRC,IRESP) IF ( (IRESP /= 0) .OR. (NRELFRC <=0) ) THEN WRITE(ILUOUT,'(A/A)') & "INI_MODELn ERROR: you want to read forcing REL variables from FMfile", & - " but no fields have been found by IO_READ_FIELD" + " but no fields have been found by IO_Field_read" !callabortstop CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_MODEL_n','') END IF @@ -598,8 +596,8 @@ END IF IKU=NKMAX+2*JPVEXT ! ALLOCATE(XZHAT(IKU)) -CALL IO_READ_FIELD(TPINIFILE,'ZHAT',XZHAT) -CALL IO_READ_FIELD(TPINIFILE,'ZTOP',XZTOP) +CALL IO_Field_read(TPINIFILE,'ZHAT',XZHAT) +CALL IO_Field_read(TPINIFILE,'ZTOP',XZTOP) IF (XALZBOT>=XZHAT(IKU) .AND. LVE_RELAX) THEN WRITE(ILUOUT,FMT=*) "INI_MODEL_n ERROR: you want to use vertical relaxation" WRITE(ILUOUT,FMT=*) " but bottom of layer XALZBOT(",XALZBOT,")" @@ -1664,7 +1662,7 @@ IF (KMI == 1) THEN DO IMI = 1 , NMODEL WRITE(IO_SURF_MNH_MODEL(IMI)%COUTFILE,'(A,".",I1,".",A)') CEXP,IMI,TRIM(ADJUSTL(CSEG)) WRITE(YNAME, '(A,".",I1,".",A)') CEXP,IMI,TRIM(ADJUSTL(CSEG))//'.000' - CALL IO_FILE_ADD2LIST(LUNIT_MODEL(IMI)%TDIAFILE,YNAME,'MNHDIACHRONIC','WRITE', & + CALL IO_File_add2list(LUNIT_MODEL(IMI)%TDIAFILE,YNAME,'MNHDIACHRONIC','WRITE', & HDIRNAME=CIO_DIR, & KLFINPRAR=INT(50,KIND=LFI_INT),KLFITYPE=1,KLFIVERB=NVERB, & TPDADFILE=LUNIT_MODEL(NDAD(IMI))%TDIAFILE ) @@ -2132,7 +2130,7 @@ ALLOCATE(ZEMIS (IIU,IJU,NLWB_MNH)) ALLOCATE(ZTSRAD (IIU,IJU)) ! IF ((TPINIFILE%NMNHVERSION(1)==4 .AND. TPINIFILE%NMNHVERSION(2)>=6) .OR. TPINIFILE%NMNHVERSION(1)>4) THEN - CALL IO_READ_FIELD(TPINIFILE,'SURF',CSURF) + CALL IO_Field_read(TPINIFILE,'SURF',CSURF) ELSE CSURF = "EXTE" END IF @@ -2141,8 +2139,8 @@ END IF IF (CSURF=='EXTE' .AND. (CPROGRAM=='MESONH' .OR. CPROGRAM=='DIAG ')) THEN ! ouverture du fichier PGD IF ( LEN_TRIM(CINIFILEPGD) > 0 ) THEN - CALL IO_FILE_ADD2LIST(TINIFILEPGD,TRIM(CINIFILEPGD),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TINIFILEPGD,KRESP=IRESP) + CALL IO_File_add2list(TINIFILEPGD,TRIM(CINIFILEPGD),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_open(TINIFILEPGD,KRESP=IRESP) LUNIT_MODEL(KMI)%TINIFILEPGD => TINIFILEPGD IF (IRESP/=0) THEN WRITE(ILUOUT,FMT=*) "INI_MODEL_n ERROR TO OPEN THE FILE CINIFILEPGD=",CINIFILEPGD @@ -2184,8 +2182,8 @@ ELSE END IF IF (CSURF=='EXTE' .AND. (CPROGRAM=='SPAWN ')) THEN ! ouverture du fichier PGD - CALL IO_FILE_ADD2LIST(TINIFILEPGD,TRIM(CINIFILEPGD),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TINIFILEPGD,KRESP=IRESP) + CALL IO_File_add2list(TINIFILEPGD,TRIM(CINIFILEPGD),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_open(TINIFILEPGD,KRESP=IRESP) LUNIT_MODEL(KMI)%TINIFILEPGD => TINIFILEPGD IF (IRESP/=0) THEN WRITE(ILUOUT,FMT=*) "INI_MODEL_n ERROR TO OPEN THE FILE CINIFILEPGD=",CINIFILEPGD diff --git a/src/MNH/ini_param_elec.f90 b/src/MNH/ini_param_elec.f90 index fc1adb10d..ca55b7664 100644 --- a/src/MNH/ini_param_elec.f90 +++ b/src/MNH/ini_param_elec.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -12,7 +12,7 @@ INTERFACE SUBROUTINE INI_PARAM_ELEC (TPINIFILE, HGETSVM, PRHO00, & KRR, KND, PFDINFTY, IIU, IJU, IKU ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file CHARACTER (LEN=*), DIMENSION(:),INTENT(IN) :: HGETSVM @@ -94,15 +94,15 @@ USE MODD_CST USE MODD_ELEC_n USE MODD_ELEC_DESCR USE MODD_ELEC_PARAM -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_NSV, ONLY : NSV_ELECEND +USE MODD_IO, ONLY: TFILEDATA +USE MODD_NSV, ONLY: NSV_ELECEND USE MODD_PARAMETERS USE MODD_PARAM_ICE USE MODD_RAIN_ICE_DESCR USE MODD_RAIN_ICE_PARAM USE MODD_VAR_ll ! -USE MODE_FMREAD +USE MODE_IO_FIELD_READ, only: IO_Field_read ! USE MODI_MOMG USE MODI_RRCOLSS @@ -348,10 +348,10 @@ XEW(:,:,:) = 0. ! SELECT CASE(HGETSVM(NSV_ELECEND)) CASE ('READ') - CALL IO_READ_FIELD(TPINIFILE,'NI_IAGGS',XNI_IAGGS) - CALL IO_READ_FIELD(TPINIFILE,'NI_IDRYG',XNI_IDRYG) - CALL IO_READ_FIELD(TPINIFILE,'NI_SDRYG',XNI_SDRYG) - CALL IO_READ_FIELD(TPINIFILE,'INDUC_CG',XIND_RATE) + CALL IO_Field_read(TPINIFILE,'NI_IAGGS',XNI_IAGGS) + CALL IO_Field_read(TPINIFILE,'NI_IDRYG',XNI_IDRYG) + CALL IO_Field_read(TPINIFILE,'NI_SDRYG',XNI_SDRYG) + CALL IO_Field_read(TPINIFILE,'INDUC_CG',XIND_RATE) CASE ('INIT') XNI_IAGGS(:,:,:) = 0. XNI_IDRYG(:,:,:) = 0. diff --git a/src/MNH/ini_posprofilern.f90 b/src/MNH/ini_posprofilern.f90 index 846d52d74..88b86c3cb 100644 --- a/src/MNH/ini_posprofilern.f90 +++ b/src/MNH/ini_posprofilern.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################### @@ -84,7 +84,6 @@ USE MODD_TYPE_PROFILER USE MODD_TYPE_DATE ! USE MODE_GRIDPROJ -USE MODE_IO_ll USE MODE_ll USE MODE_MSG ! diff --git a/src/MNH/ini_prog_var.f90 b/src/MNH/ini_prog_var.f90 index 75d6242b8..f02cd9c38 100644 --- a/src/MNH/ini_prog_var.f90 +++ b/src/MNH/ini_prog_var.f90 @@ -93,7 +93,7 @@ END MODULE MODI_INI_PROG_VAR !! Mai 2017 (M. Leriche) read aerosol namelists before call ini_nsv !! Mai 2017 (M. Leriche) Get wet dep. sv in Meso-NH init file !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! @@ -110,7 +110,7 @@ USE MODD_DIM_n USE MODD_DUST USE MODD_DYN_n USE MODD_FIELD_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LSFIELD_n USE MODD_LUNIT USE MODD_LUNIT_n, ONLY: TLUOUT @@ -120,11 +120,10 @@ USE MODD_PARAMETERS USE MODD_SALT USE MODD_TURB_n ! -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll, IO_FILE_OPEN_ll -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FILE, ONLY: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_MODELN_HANDLER USE MODE_MSG USE MODE_POS @@ -215,24 +214,24 @@ ALLOCATE(XSVT(0,0,0,0)) IF(PRESENT(HCHEMFILE)) THEN WRITE(ILUOUT,*) 'Routine INI_PROG_VAR: CHEMical species read in ',TRIM(HCHEMFILE) ! Read dimensions in chem file and checks with output file - CALL IO_FILE_ADD2LIST(TZCHEMFILE,TRIM(HCHEMFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TZCHEMFILE) + CALL IO_File_add2list(TZCHEMFILE,TRIM(HCHEMFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_open(TZCHEMFILE) ! ILUDES = TZCHEMFILE%TDESFILE%NLU ! - CALL IO_READ_FIELD(TZCHEMFILE,'IMAX',IIMAX,IRESP) + CALL IO_Field_read(TZCHEMFILE,'IMAX',IIMAX,IRESP) IF (IRESP/=0) THEN !callabortstop CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_PROG_VAR','IMAX not found in the CHEM file '//TRIM(HCHEMFILE)) END IF !IRESP ! - CALL IO_READ_FIELD(TZCHEMFILE,'JMAX',IJMAX,IRESP) + CALL IO_Field_read(TZCHEMFILE,'JMAX',IJMAX,IRESP) IF (IRESP/=0) THEN !callabortstop CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_PROG_VAR','JMAX not found in the CHEM file '//TRIM(HCHEMFILE)) END IF !IRESP ! - CALL IO_READ_FIELD(TZCHEMFILE,'KMAX',IKMAX,IRESP) + CALL IO_Field_read(TZCHEMFILE,'KMAX',IKMAX,IRESP) IF (IRESP/=0) THEN !callabortstop CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_PROG_VAR','KMAX not found in the CHEM file '//TRIM(HCHEMFILE)) @@ -286,7 +285,7 @@ IF(PRESENT(HCHEMFILE)) THEN TZFIELD%CMNHNAME = TRIM(CNAMES(JSV-NSV_CHEMBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN WRITE(ILUOUT,*) TRIM(TZFIELD%CMNHNAME),' NOT FOUND IN THE CHEM FILE ',HCHEMFILE XSVT(:,:,:,JSV) = 0. @@ -313,7 +312,7 @@ IF(PRESENT(HCHEMFILE)) THEN TZFIELD%CMNHNAME = TRIM(CAERONAMES(JSV-NSV_AERBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN WRITE(ILUOUT,*) TRIM(TZFIELD%CMNHNAME),'NOT FOUND IN THE CHEM FILE ',HCHEMFILE LORILAM=.FALSE. @@ -338,7 +337,7 @@ IF(PRESENT(HCHEMFILE)) THEN TZFIELD%CMNHNAME = TRIM(CDEAERNAMES(JSV-NSV_AERDEPBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN WRITE(ILUOUT,*) TRIM(TZFIELD%CMNHNAME),'NOT FOUND IN THE CHEM FILE ',HCHEMFILE LDEPOS_AER(IMI)=.FALSE. @@ -367,7 +366,7 @@ IF(PRESENT(HCHEMFILE)) THEN TZFIELD%CMNHNAME = TRIM(YPDUST_INI(ISV_NAME_IDX))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_PROG_VAR',TRIM(TZFIELD%CMNHNAME)//' not found in the CHEM file '//TRIM(HCHEMFILE)) END IF !IRESP @@ -382,7 +381,7 @@ IF(PRESENT(HCHEMFILE)) THEN TZFIELD%CMNHNAME = TRIM(YPDUST_INI(ISV_NAME_IDX))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_PROG_VAR',TRIM(TZFIELD%CMNHNAME)//& ' not found in the CHEM file '//TRIM(HCHEMFILE)) @@ -412,7 +411,7 @@ IF(PRESENT(HCHEMFILE)) THEN TZFIELD%CMNHNAME = TRIM(CDEDSTNAMES(JSV-NSV_DSTDEPBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN WRITE(ILUOUT,*) TRIM(TZFIELD%CMNHNAME),'NOT FOUND IN THE CHEM FILE ',HCHEMFILE LDEPOS_DST(IMI)=.FALSE. @@ -441,7 +440,7 @@ IF(PRESENT(HCHEMFILE)) THEN TZFIELD%CMNHNAME = TRIM(YPSALT_INI(ISV_NAME_IDX))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_PROG_VAR',TRIM(TZFIELD%CMNHNAME)//' not found in the CHEM file '//TRIM(HCHEMFILE)) END IF !IRESP @@ -456,7 +455,7 @@ IF(PRESENT(HCHEMFILE)) THEN TZFIELD%CMNHNAME = TRIM(YPSALT_INI(ISV_NAME_IDX))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_PROG_VAR',TRIM(TZFIELD%CMNHNAME)//' not found in the CHEM file '//TRIM(HCHEMFILE)) END IF !IRESP @@ -486,7 +485,7 @@ IF(PRESENT(HCHEMFILE)) THEN TZFIELD%CMNHNAME = TRIM(CDESLTNAMES(JSV-NSV_SLTDEPBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TZCHEMFILE,TZFIELD,XSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN WRITE(ILUOUT,*) TRIM(TZFIELD%CMNHNAME),'NOT FOUND IN THE CHEM FILE ',HCHEMFILE LDEPOS_SLT(IMI)=.FALSE. @@ -495,7 +494,7 @@ IF(PRESENT(HCHEMFILE)) THEN ENDIF ! ldepos_slt END IF ! LSALT ! - CALL IO_FILE_CLOSE_ll(TZCHEMFILE) + CALL IO_File_close(TZCHEMFILE) ! ELSE ! HCHEMFILE IF (NSV >=1) THEN diff --git a/src/MNH/ini_radiations.f90 b/src/MNH/ini_radiations.f90 index a9af173cf..640467fbb 100644 --- a/src/MNH/ini_radiations.f90 +++ b/src/MNH/ini_radiations.f90 @@ -18,7 +18,7 @@ INTERFACE PRADEFF,PSWU,PSWD,PLWU,PLWD,PDTHRADSW,PDTHRADLW ) ! USE MODD_ARGSLIST_ll, ONLY : LIST_ll -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA USE MODD_TYPE_DATE ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file @@ -115,16 +115,16 @@ END MODULE MODI_INI_RADIATIONS ! !MESO-NH modules ! -USE MODD_ARGSLIST_ll, ONLY : LIST_ll -USE MODD_CST, ONLY : XPI -USE MODD_CONF, ONLY : LFLAT, L2D -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_ARGSLIST_ll, ONLY: LIST_ll +USE MODD_CST, ONLY: XPI +USE MODD_CONF, ONLY: LFLAT, L2D +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES -USE MODD_PARAMETERS, ONLY : JPVEXT -USE MODD_PARAM_RAD_n, ONLY : LFIX_DAT +USE MODD_PARAMETERS, ONLY: JPVEXT +USE MODD_PARAM_RAD_n, ONLY: LFIX_DAT USE MODD_TYPE_DATE ! -USE MODE_FMREAD +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_ll ! USE MODI_SHUMAN @@ -308,16 +308,16 @@ IF ( OINIRAD ) THEN PDIRSRFSWD(:,:,:)= 0. KCLEARCOL_TM1 = 0 ELSE - CALL IO_READ_FIELD(TPINIFILE,'DTRAD_FULL', TPDTRAD_FULL) - CALL IO_READ_FIELD(TPINIFILE,'DTRAD_CLLY', TPDTRAD_CLONLY) - CALL IO_READ_FIELD(TPINIFILE,'DTHRAD', PDTHRAD) - CALL IO_READ_FIELD(TPINIFILE,'FLALWD', PFLALWD) - CALL IO_READ_FIELD(TPINIFILE,'DIRFLASWD', PDIRFLASWD) - CALL IO_READ_FIELD(TPINIFILE,'SCAFLASWD', PSCAFLASWD) - CALL IO_READ_FIELD(TPINIFILE,'DIRSRFSWD', PDIRSRFSWD) - CALL IO_READ_FIELD(TPINIFILE,'CLEARCOL_TM1',KCLEARCOL_TM1) - CALL IO_READ_FIELD(TPINIFILE,'ZENITH', PZENITH) - CALL IO_READ_FIELD(TPINIFILE,'AZIM', PAZIM) + CALL IO_Field_read(TPINIFILE,'DTRAD_FULL', TPDTRAD_FULL) + CALL IO_Field_read(TPINIFILE,'DTRAD_CLLY', TPDTRAD_CLONLY) + CALL IO_Field_read(TPINIFILE,'DTHRAD', PDTHRAD) + CALL IO_Field_read(TPINIFILE,'FLALWD', PFLALWD) + CALL IO_Field_read(TPINIFILE,'DIRFLASWD', PDIRFLASWD) + CALL IO_Field_read(TPINIFILE,'SCAFLASWD', PSCAFLASWD) + CALL IO_Field_read(TPINIFILE,'DIRSRFSWD', PDIRSRFSWD) + CALL IO_Field_read(TPINIFILE,'CLEARCOL_TM1',KCLEARCOL_TM1) + CALL IO_Field_read(TPINIFILE,'ZENITH', PZENITH) + CALL IO_Field_read(TPINIFILE,'AZIM', PAZIM) END IF !------------------------------------------------------------------------------- ! diff --git a/src/MNH/ini_radiations_ecmwf.f90 b/src/MNH/ini_radiations_ecmwf.f90 index 2ee41916e..cf0ba2ebc 100644 --- a/src/MNH/ini_radiations_ecmwf.f90 +++ b/src/MNH/ini_radiations_ecmwf.f90 @@ -196,7 +196,6 @@ USE MODD_STAND_ATM USE MODD_PARAM_RAD_n, ONLY: LFIX_DAT ! USE MODE_ll -USE MODE_FM ! USE MODI_INI_RADCONF USE MODI_INI_HOR_AERCLIM diff --git a/src/MNH/ini_rain_ice.f90 b/src/MNH/ini_rain_ice.f90 index 530ad47cd..9420cb1e7 100644 --- a/src/MNH/ini_rain_ice.f90 +++ b/src/MNH/ini_rain_ice.f90 @@ -107,7 +107,6 @@ END MODULE MODI_INI_RAIN_ICE !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM USE MODD_CST USE MODD_LUNIT USE MODD_PARAMETERS diff --git a/src/MNH/ini_rain_ice_elec.f90 b/src/MNH/ini_rain_ice_elec.f90 index 15721ada4..d352581f8 100644 --- a/src/MNH/ini_rain_ice_elec.f90 +++ b/src/MNH/ini_rain_ice_elec.f90 @@ -1,13 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ -! masdev4_7 BUG1 2007/06/15 17:47:18 -!----------------------------------------------------------------- ! ############################# MODULE MODI_INI_RAIN_ICE_ELEC ! ############################# @@ -97,7 +92,6 @@ END MODULE MODI_INI_RAIN_ICE_ELEC !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM USE MODD_CST USE MODD_LUNIT USE MODD_PARAMETERS diff --git a/src/MNH/ini_segn.f90 b/src/MNH/ini_segn.f90 index b011e0892..0abca3844 100644 --- a/src/MNH/ini_segn.f90 +++ b/src/MNH/ini_segn.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE INI_SEG_n(KMI,TPINIFILE,HINIFILEPGD,PTSTEP_ALL) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! INTEGER, INTENT(IN) :: KMI !Model index TYPE(TFILEDATA), POINTER, INTENT(OUT) :: TPINIFILE !Initial file @@ -73,7 +73,7 @@ END MODULE MODI_INI_SEG_n !! The name of the initial file is read in EXSEG file. !! - Default values are supplied for variables in descriptor files !! (by DEFAULT_DESFM). -!! - The Initial file (LFIFM + DESFM) is opened by IO_FILE_OPEN_ll. +!! - The Initial file (LFIFM + DESFM) is opened by IO_File_open. !! - The descriptor DESFM file is read (by READ_DESFM_n). !! - The descriptor file EXSEG is read (by READ_EXSEG_n) and coherence !! between the initial file and the description of segment is also checked @@ -90,7 +90,7 @@ END MODULE MODI_INI_SEG_n !! EXTERNAL !! -------- !! FMATTR : to associate a logical unit number to a file -!! IO_FILE_OPEN_ll : to open descriptor file or LFI file +!! IO_File_open : to open descriptor file or LFI file !! DEFAULT_DESFM1: to set default values !! READ_DESFM_n : to read a DESFM file !! READ_EXSEG_n : to read a EXSEG file @@ -162,7 +162,7 @@ END MODULE MODI_INI_SEG_n !! 04/2016 add ABORT if CINIFILEPGD is not specified (G.Delautier) !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! 07/2017 add GBLOWSNOW (V. Vionnet) -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! @@ -172,7 +172,7 @@ USE MODD_CONF USE MODD_CONF_n, ONLY: CSTORAGE_TYPE USE MODN_CONFZ USE MODD_DYN -USE MODD_IO_ll, ONLY: NVERB_FATAL,NVERB_WARNING,TFILE_OUTPUTLISTING,TFILEDATA +USE MODD_IO, ONLY: NVERB_FATAL, NVERB_WARNING, TFILE_OUTPUTLISTING, TFILEDATA USE MODD_LUNIT USE MODD_LUNIT_n, ONLY: CINIFILE_n=> CINIFILE, TINIFILE_n => TINIFILE, CINIFILEPGD_n=> CINIFILEPGD, TLUOUT, LUNIT_MODEL USE MODD_PARAM_n, ONLY: CSURF @@ -180,10 +180,10 @@ USE MODD_PARAMETERS USE MODD_REF, ONLY: LBOUSS ! USE MODE_FIELD -USE MODE_FMREAD -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll, IO_FILE_OPEN_ll -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FILE, ONLY: IO_File_close, IO_File_open +USE MODE_IO, only: IO_Config_set +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_MSG USE MODE_POS ! @@ -259,9 +259,9 @@ TZFILE_DES => NULL() ! --------------------------------------- ! WRITE(YMI,'(I2.0)') KMI -CALL IO_FILE_ADD2LIST(LUNIT_MODEL(KMI)%TLUOUT,'OUTPUT_LISTING'//ADJUSTL(YMI),'OUTPUTLISTING','WRITE') +CALL IO_File_add2list(LUNIT_MODEL(KMI)%TLUOUT,'OUTPUT_LISTING'//ADJUSTL(YMI),'OUTPUTLISTING','WRITE') TLUOUT => LUNIT_MODEL(KMI)%TLUOUT !Necessary because TLUOUT was initially pointing to NULL -CALL IO_FILE_OPEN_ll(TLUOUT) +CALL IO_File_open(TLUOUT) ! !Set output file for PRINT_MSG TFILE_OUTPUTLISTING => TLUOUT @@ -272,8 +272,8 @@ WRITE(UNIT=ILUOUT,FMT='(50("*"),/,"*",17X,"MODEL ",I1," LISTING",16X,"*",/, & & 50("*"))') KMI ! IF (CPROGRAM=='MESONH') THEN - CALL IO_FILE_ADD2LIST(TZFILE_DES,'EXSEG'//TRIM(ADJUSTL(YMI))//'.nam','NML','READ') - CALL IO_FILE_OPEN_ll(TZFILE_DES) + CALL IO_File_add2list(TZFILE_DES,'EXSEG'//TRIM(ADJUSTL(YMI))//'.nam','NML','READ') + CALL IO_File_open(TZFILE_DES) ! !* 1.3 SPAWNING or SPEC or REAL program case ! --------------------- @@ -281,8 +281,8 @@ IF (CPROGRAM=='MESONH') THEN ELSE IF (CPROGRAM=='SPAWN ' .OR. CPROGRAM=='REAL '.OR. CPROGRAM=='SPEC ') THEN YINIFILE = CINIFILE_n HINIFILEPGD = CINIFILEPGD_n - CALL IO_FILE_ADD2LIST(TPINIFILE,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TPINIFILE) + CALL IO_File_add2list(TPINIFILE,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_open(TPINIFILE) TZFILE_DES => TPINIFILE%TDESFILE ! !* 1.3bis DIAG program case @@ -290,8 +290,8 @@ ELSE IF (CPROGRAM=='SPAWN ' .OR. CPROGRAM=='REAL '.OR. CPROGRAM=='SPEC ') THEN ELSE IF (CPROGRAM=='DIAG ') THEN YINIFILE = CINIFILE_n HINIFILEPGD = CINIFILEPGD_n - CALL IO_FILE_ADD2LIST(TINIFILE_n,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TINIFILE_n) + CALL IO_File_add2list(TINIFILE_n,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_open(TINIFILE_n) TPINIFILE => TINIFILE_n TZFILE_DES => TPINIFILE%TDESFILE ! @@ -334,14 +334,14 @@ IF (CPROGRAM=='MESONH') THEN IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_CONFZ) CALL POSNAM(ILUSEG,'NAM_CONFIO',GFOUND,ILUOUT) IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_CONFIO) - CALL SET_CONFIO_ll() + CALL IO_Config_set() END IF HINIFILEPGD=CINIFILEPGD_n YINIFILE=CINIFILE_n - CALL IO_FILE_ADD2LIST(TPINIFILE,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_add2list(TPINIFILE,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) TINIFILE_n => TPINIFILE !Necessary because TINIFILE was initially pointing to NULL - CALL IO_FILE_OPEN_ll(TPINIFILE) + CALL IO_File_open(TPINIFILE) END IF ! !------------------------------------------------------------------------------- @@ -384,7 +384,7 @@ END IF ! IF (CPROGRAM=='MESONH' .OR. CPROGRAM=='SPAWN ') THEN IF ((TPINIFILE%NMNHVERSION(1)==4 .AND. TPINIFILE%NMNHVERSION(2)>9) .OR. TPINIFILE%NMNHVERSION(1)>4) THEN - CALL IO_READ_FIELD(TPINIFILE,'COUPLING',LCOUPLING) + CALL IO_Field_read(TPINIFILE,'COUPLING',LCOUPLING) IF (LCOUPLING) THEN WRITE(ILUOUT,*) 'Error with the initial file' WRITE(ILUOUT,*) 'The file',YINIFILE,' was created with LCOUPLING=.TRUE.' @@ -397,7 +397,7 @@ IF (CPROGRAM=='MESONH' .OR. CPROGRAM=='SPAWN ') THEN END IF ! ! Read the storage type - CALL IO_READ_FIELD(TPINIFILE,'STORAGE_TYPE',CSTORAGE_TYPE,IRESP) + CALL IO_Field_read(TPINIFILE,'STORAGE_TYPE',CSTORAGE_TYPE,IRESP) IF (IRESP /= 0) THEN WRITE(ILUOUT,FMT=9002) 'STORAGE_TYPE',IRESP !callabortstop @@ -405,18 +405,18 @@ END IF END IF IF (KMI == 1) THEN ! Read the geometry kind - CALL IO_READ_FIELD(TPINIFILE,'CARTESIAN',LCARTESIAN) + CALL IO_Field_read(TPINIFILE,'CARTESIAN',LCARTESIAN) ! Read the thinshell approximation - CALL IO_READ_FIELD(TPINIFILE,'THINSHELL',LTHINSHELL) + CALL IO_Field_read(TPINIFILE,'THINSHELL',LTHINSHELL) ! IF ((TPINIFILE%NMNHVERSION(1)==4 .AND. TPINIFILE%NMNHVERSION(2)>=6) .OR. TPINIFILE%NMNHVERSION(1)>4) THEN - CALL IO_READ_FIELD(TPINIFILE,'L1D',L1D,IRESP) + CALL IO_Field_read(TPINIFILE,'L1D',L1D,IRESP) IF (IRESP/=0) L1D=.FALSE. ! - CALL IO_READ_FIELD(TPINIFILE,'L2D',L2D,IRESP) + CALL IO_Field_read(TPINIFILE,'L2D',L2D,IRESP) IF (IRESP/=0) L2D=.FALSE. ! - CALL IO_READ_FIELD(TPINIFILE,'PACK',LPACK,IRESP) + CALL IO_Field_read(TPINIFILE,'PACK',LPACK,IRESP) IF (IRESP/=0) LPACK=.TRUE. ELSE L1D=.FALSE. @@ -424,7 +424,7 @@ IF (KMI == 1) THEN LPACK=.TRUE. END IF IF ((TPINIFILE%NMNHVERSION(1)==4 .AND. TPINIFILE%NMNHVERSION(2)>=10) .OR. TPINIFILE%NMNHVERSION(1)>4) THEN - CALL IO_READ_FIELD(TPINIFILE,'LBOUSS',LBOUSS) + CALL IO_Field_read(TPINIFILE,'LBOUSS',LBOUSS) END IF ! END IF @@ -467,7 +467,7 @@ END IF !* 7. CLOSE FILES ! ------------ ! -IF (CPROGRAM=='MESONH') CALL IO_FILE_CLOSE_ll(TZFILE_DES) +IF (CPROGRAM=='MESONH') CALL IO_File_close(TZFILE_DES) ! !------------------------------------------------------------------------------- 9002 FORMAT(/,'FATAL ERROR IN INI_SEG_n: pb to read ',A16,' IRESP=',I3) diff --git a/src/MNH/ini_seriesn.f90 b/src/MNH/ini_seriesn.f90 index e584ca73a..a6f861ec4 100644 --- a/src/MNH/ini_seriesn.f90 +++ b/src/MNH/ini_seriesn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################## @@ -47,7 +47,6 @@ ! -------------- ! USE MODE_ll -USE MODE_IO_ll USE MODE_MSG USE MODE_MODELN_HANDLER ! diff --git a/src/MNH/ini_size_spawn.f90 b/src/MNH/ini_size_spawn.f90 index e8707b14f..ee52cc7b6 100644 --- a/src/MNH/ini_size_spawn.f90 +++ b/src/MNH/ini_size_spawn.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE INI_SIZE_SPAWN(HLBCX,HLBCY,HPRESOPT,KITR,TPINIFILE) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! CHARACTER (LEN=4),DIMENSION(2), INTENT(IN) :: HLBCX,HLBCY ! LBC types for model1 CHARACTER (LEN=5), INTENT(IN) :: HPRESOPT ! Pressure solver option of model1 @@ -44,9 +44,9 @@ END MODULE MODI_INI_SIZE_SPAWN !! EXTERNAL !! -------- !! DEFAULT_DESFM2 -!! IO_FILE_OPEN_ll +!! IO_File_open !! READ_HGRID -!! IO_FILE_CLOSE_ll +!! IO_File_close !! RETRIEVE_NEST_INFO !! !! IMPLICIT ARGUMENTS @@ -67,35 +67,34 @@ END MODULE MODI_INI_SIZE_SPAWN !! J.Escobar : 15/09/2015 : WENO5 & JPHEXT <> 1 !! J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! (nsubfiles_ioz is now determined in IO_File_add2list) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ ! USE MODD_CONF -USE MODD_DIM_n, ONLY : DIM_MODEL -USE MODD_DYN_n, ONLY : CPRESOPT, NITR +USE MODD_DIM_n, ONLY: DIM_MODEL +USE MODD_DYN_n, ONLY: CPRESOPT, NITR USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY : ISNPROC, ISP, TFILEDATA +USE MODD_IO, ONLY: ISNPROC, ISP, TFILEDATA USE MODD_LBC_n USE MODD_LUNIT_n USE MODD_PARAMETERS USE MODD_PGDDIM USE MODD_PGDGRID USE MODD_SPAWN -USE MODD_VAR_ll, ONLY : YSPLITTING +USE MODD_VAR_ll, ONLY: YSPLITTING ! -USE MODE_ll -USE MODE_FIELD, ONLY : TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME USE MODE_GRIDPROJ -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list +USE MODE_ll USE MODE_MSG USE MODE_MODELN_HANDLER USE MODE_SPLITTINGZ_ll @@ -187,7 +186,7 @@ IF (LBAL_ONLY) THEN !callabortstop CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_SIZE_SPAWN','YDADINIFILE not initialized in namelist NAM_LUNIT2_SPA') ELSE - CALL IO_READ_FIELD(TPINIFILE,'DAD_NAME',YDAD_NAME) + CALL IO_Field_read(TPINIFILE,'DAD_NAME',YDAD_NAME) IF (ADJUSTL(ADJUSTR(YDAD_NAME)) .NE. ADJUSTL(ADJUSTR(CDADINIFILE))) THEN WRITE(ILUOUT,*) 'ERROR in INI_SIZE_SPAWN: YDADINIFILE is NOT the DAD of model 1' WRITE(ILUOUT,*) ' YDADINIFILE='//TRIM(CDADINIFILE) @@ -212,12 +211,12 @@ ENDIF ! IF (LEN_TRIM(CDOMAIN)>0) THEN ! - CALL IO_READ_FIELD(TPINIFILE,'LAT0', XLAT0) - CALL IO_READ_FIELD(TPINIFILE,'LON0', XLON0) - CALL IO_READ_FIELD(TPINIFILE,'RPK', XRPK) - CALL IO_READ_FIELD(TPINIFILE,'BETA', XBETA) - CALL IO_READ_FIELD(TPINIFILE,'LATORI',XPGDLATOR) - CALL IO_READ_FIELD(TPINIFILE,'LONORI',XPGDLONOR) + CALL IO_Field_read(TPINIFILE,'LAT0', XLAT0) + CALL IO_Field_read(TPINIFILE,'LON0', XLON0) + CALL IO_Field_read(TPINIFILE,'RPK', XRPK) + CALL IO_Field_read(TPINIFILE,'BETA', XBETA) + CALL IO_Field_read(TPINIFILE,'LATORI',XPGDLATOR) + CALL IO_Field_read(TPINIFILE,'LONORI',XPGDLONOR) ! !$20140602 INSERT BIG MODIF JUAN May27 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -227,15 +226,15 @@ IF (LEN_TRIM(CDOMAIN)>0) THEN ! initialize grid2 dims, xor, xend and ratio so to initialize in INI_CHILD ! structures TCRRT_COMDATA%T_CHILDREN%T_SPLITB and TCRRT_PROCONF%T_CHILDREN !$20140602 add condition on npproc - CALL IO_FILE_ADD2LIST(TZDOMAIN,TRIM(CDOMAIN),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TZDOMAIN) + CALL IO_File_add2list(TZDOMAIN,TRIM(CDOMAIN),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_open(TZDOMAIN) ! - CALL IO_READ_FIELD(TZDOMAIN,'DXRATIO',NDXRATIO) - CALL IO_READ_FIELD(TZDOMAIN,'DYRATIO',NDYRATIO) - CALL IO_READ_FIELD(TZDOMAIN,'XOR', NXOR) - CALL IO_READ_FIELD(TZDOMAIN,'YOR', NYOR) - CALL IO_READ_FIELD(TZDOMAIN,'IMAX', IIMAX_ll) - CALL IO_READ_FIELD(TZDOMAIN,'JMAX', IJMAX_ll) + CALL IO_Field_read(TZDOMAIN,'DXRATIO',NDXRATIO) + CALL IO_Field_read(TZDOMAIN,'DYRATIO',NDYRATIO) + CALL IO_Field_read(TZDOMAIN,'XOR', NXOR) + CALL IO_Field_read(TZDOMAIN,'YOR', NYOR) + CALL IO_Field_read(TZDOMAIN,'IMAX', IIMAX_ll) + CALL IO_Field_read(TZDOMAIN,'JMAX', IJMAX_ll) NXEND=NXOR+IIMAX_ll/NDXRATIO+2*JPHEXT-1 NYEND=NYOR+IJMAX_ll/NDYRATIO+2*JPHEXT-1 ! @@ -258,21 +257,21 @@ IF (LEN_TRIM(CDOMAIN)>0) THEN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !$ ALLOCATE(XPGDXHAT(DIM_MODEL(1)%NIMAX+2*JPHEXT)) - CALL IO_READ_FIELD(TPINIFILE,'XHAT',XPGDXHAT) + CALL IO_Field_read(TPINIFILE,'XHAT',XPGDXHAT) ! ALLOCATE(XPGDYHAT(DIM_MODEL(1)%NJMAX+2*JPHEXT)) - CALL IO_READ_FIELD(TPINIFILE,'YHAT',XPGDYHAT) + CALL IO_Field_read(TPINIFILE,'YHAT',XPGDYHAT) ! IF (TPINIFILE%NMNHVERSION(1)<4 .OR. (TPINIFILE%NMNHVERSION(1)==4 .AND. TPINIFILE%NMNHVERSION(2)<=5)) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('LONORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LONOR' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,XPGDLONOR) + CALL IO_Field_read(TPINIFILE,TZFIELD,XPGDLONOR) ! CALL FIND_FIELD_ID_FROM_MNHNAME('LATORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LATOR' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,XPGDLATOR) + CALL IO_Field_read(TPINIFILE,TZFIELD,XPGDLATOR) ! ZXHATM = - 0.5 * (XPGDXHAT(1)+XPGDXHAT(2)) ZYHATM = - 0.5 * (XPGDYHAT(1)+XPGDYHAT(2)) @@ -285,7 +284,7 @@ IF (LEN_TRIM(CDOMAIN)>0) THEN !* 1.4 read grid in file CDOMAIN if available : ! CALL READ_HGRID(2,TZDOMAIN,YMY_NAME,YDAD_NAME,YSTORAGE_TYPE) - CALL IO_FILE_CLOSE_ll(TZDOMAIN) + CALL IO_File_close(TZDOMAIN) CALL RETRIEVE1_NEST_INFO_n(1,2,NXOR,NYOR,NXSIZE,NYSIZE,NDXRATIO,NDYRATIO) DEALLOCATE(XZS,XZSMT,XXHAT,XYHAT) ! diff --git a/src/MNH/ini_sizen.f90 b/src/MNH/ini_sizen.f90 index e3e757376..5e21aeeaf 100644 --- a/src/MNH/ini_sizen.f90 +++ b/src/MNH/ini_sizen.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE INI_SIZE_n( KMI, TPINIFILE, HINIFILEPGD ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! INTEGER, INTENT(IN) :: KMI !Model Index TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE !Initial file @@ -54,7 +54,7 @@ END MODULE MODI_INI_SIZE_n !! !! EXTERNAL !! -------- -!! IO_READ_FIELD : to read a LFIFM file +!! IO_Field_read : to read a LFIFM file !! !! IMPLICIT ARGUMENTS !! ------------------ @@ -101,21 +101,20 @@ END MODULE MODI_INI_SIZE_n !* 0. DECLARATIONS ! ------------ ! -USE MODD_CONF, ONLY: CCONF, LCARTESIAN, NVERB, LTHINSHELL, NHALO, CSPLIT, & - L1D, L2D, LPACK -USE MODD_CONFZ, ONLY: NZ_PROC -USE MODD_DIM_n, ONLY: NIMAX_ll, NJMAX_ll, NKMAX -USE MODD_DYN, ONLY: LCORIO -USE MODD_IO_ll, ONLY: GSMONOPROC, TFILEDATA -USE MODD_LBC_n, ONLY: CLBCX, CLBCY -USE MODD_LUNIT_n, ONLY: CINIFILE, CINIFILEPGD, TLUOUT -USE MODD_NESTING, ONLY: CMY_NAME, CDAD_NAME, NDAD, NDXRATIO_ALL, NDYRATIO_ALL, & - NXOR_ALL, NYOR_ALL, NXEND_ALL,NYEND_ALL -USE MODD_PARAMETERS, ONLY: JPMODELMAX, JPHEXT,JPVEXT -! -USE MODE_FM, ONLY: SET_FMPACK_ll -USE MODE_FMREAD -USE MODE_IO_ll +USE MODD_CONF, ONLY: CCONF, LCARTESIAN, NVERB, LTHINSHELL, NHALO, CSPLIT, & + L1D, L2D, LPACK +USE MODD_CONFZ, ONLY: NZ_PROC +USE MODD_DIM_n, ONLY: NIMAX_ll, NJMAX_ll, NKMAX +USE MODD_DYN, ONLY: LCORIO +USE MODD_IO, ONLY: GSMONOPROC, TFILEDATA +USE MODD_LBC_n, ONLY: CLBCX, CLBCY +USE MODD_LUNIT_n, ONLY: CINIFILE, CINIFILEPGD, TLUOUT +USE MODD_NESTING, ONLY: CMY_NAME, CDAD_NAME, NDAD, NDXRATIO_ALL, NDYRATIO_ALL, & + NXOR_ALL, NYOR_ALL, NXEND_ALL,NYEND_ALL +USE MODD_PARAMETERS, ONLY: JPMODELMAX, JPHEXT,JPVEXT +! +USE MODE_IO, ONLY: IO_Pack_set +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_ll USE MODE_MSG USE MODE_POS @@ -150,14 +149,14 @@ CINIFILEPGD=HINIFILEPGD ! !* 2.0 Retrieve DAD_NAME and MY_NAME to check the DAD model identity ! -CALL IO_READ_FIELD(TPINIFILE,'MY_NAME',CMY_NAME(KMI),IRESP) +CALL IO_Field_read(TPINIFILE,'MY_NAME',CMY_NAME(KMI),IRESP) IF (IRESP /= 0) THEN WRITE(ILUOUT,FMT=9000) 'MY_NAME',IRESP !callabortstop CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_SIZE_n','') END IF ! -CALL IO_READ_FIELD(TPINIFILE,'DAD_NAME',CDAD_NAME(KMI),IRESP) +CALL IO_Field_read(TPINIFILE,'DAD_NAME',CDAD_NAME(KMI),IRESP) IF (IRESP /= 0) THEN WRITE(ILUOUT,FMT=9000) 'DAD_NAME',IRESP !callabortstop @@ -185,10 +184,10 @@ END IF !* 3.1 Read dimensions in initial file and initialize subdomain ! dimensions and parallel variables ! -CALL IO_READ_FIELD(TPINIFILE,'IMAX', NIMAX_ll) -CALL IO_READ_FIELD(TPINIFILE,'JMAX', NJMAX_ll) -CALL IO_READ_FIELD(TPINIFILE,'KMAX', NKMAX) -CALL IO_READ_FIELD(TPINIFILE,'JPHEXT',IJPHEXT) +CALL IO_Field_read(TPINIFILE,'IMAX', NIMAX_ll) +CALL IO_Field_read(TPINIFILE,'JMAX', NJMAX_ll) +CALL IO_Field_read(TPINIFILE,'KMAX', NKMAX) +CALL IO_Field_read(TPINIFILE,'JPHEXT',IJPHEXT) ! IF ( IJPHEXT .NE. JPHEXT ) THEN WRITE(ILUOUT,FMT=*) ' INI_SIZE_N : JPHEXT in namelist NAM_CONF ( or default or .des value )& @@ -218,10 +217,10 @@ ENDIF ! read the nested model location in its father's grid ! and compute the coordinates of the corner points IF (LEN_TRIM(CDAD_NAME(KMI))>0) THEN - CALL IO_READ_FIELD(TPINIFILE,'DXRATIO',NDXRATIO_ALL(KMI)) - CALL IO_READ_FIELD(TPINIFILE,'DYRATIO',NDYRATIO_ALL(KMI)) - CALL IO_READ_FIELD(TPINIFILE,'XOR',NXOR_ALL(KMI)) - CALL IO_READ_FIELD(TPINIFILE,'YOR',NYOR_ALL(KMI)) + CALL IO_Field_read(TPINIFILE,'DXRATIO',NDXRATIO_ALL(KMI)) + CALL IO_Field_read(TPINIFILE,'DYRATIO',NDYRATIO_ALL(KMI)) + CALL IO_Field_read(TPINIFILE,'XOR',NXOR_ALL(KMI)) + CALL IO_Field_read(TPINIFILE,'YOR',NYOR_ALL(KMI)) NXEND_ALL(KMI)=NXOR_ALL(KMI)-1 + NIMAX_ll/NDXRATIO_ALL(KMI) +2*JPHEXT NYEND_ALL(KMI)=NYOR_ALL(KMI)-1 + NJMAX_ll/NDYRATIO_ALL(KMI) +2*JPHEXT ELSE @@ -273,7 +272,7 @@ IF (KMI == 1) THEN CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_SIZE_n','this is a 2D simulation: it has to be performed in monoprocess mode') ENDIF ! - CALL SET_FMPACK_ll(L1D,L2D,LPACK) + CALL IO_Pack_set(L1D,L2D,LPACK) ! END IF !------------------------------------------------------------------------------- diff --git a/src/MNH/ini_spectren.f90 b/src/MNH/ini_spectren.f90 index 93075f50a..e18f019a1 100644 --- a/src/MNH/ini_spectren.f90 +++ b/src/MNH/ini_spectren.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE INI_SPECTRE_n(KMI,TPINIFILE) ! - USE MODD_IO_ll, ONLY: TFILEDATA + USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KMI ! Model index TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file @@ -71,7 +71,7 @@ USE MODD_FRC_n USE MODD_GET_n USE MODD_GRID, ONLY: XLONORI,XLATORI USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LBC_n USE MODD_LSFIELD_n USE MODD_LUNIT_n, ONLY: COUTFILE, TLUOUT @@ -106,9 +106,8 @@ USE MODD_TURB_n USE MODD_VAR_ll, ONLY: IP ! USE MODD_ARGSLIST_ll, ONLY: LIST_ll -USE MODE_FMREAD USE MODE_GATHER_ll -USE MODE_IO_ll +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_ll USE MODE_MODELN_HANDLER USE MODE_MSG @@ -221,8 +220,8 @@ ILUOUT = TLUOUT%NLU IKU=NKMAX+2*JPVEXT ! ALLOCATE(XZHAT(IKU)) -CALL IO_READ_FIELD(TPINIFILE,'ZHAT',XZHAT) -CALL IO_READ_FIELD(TPINIFILE,'ZTOP',XZTOP) +CALL IO_Field_read(TPINIFILE,'ZHAT',XZHAT) +CALL IO_Field_read(TPINIFILE,'ZTOP',XZTOP) IF (XALZBOT>=XZHAT(IKU) .AND. LVE_RELAX) THEN WRITE(ILUOUT,FMT=*) "INI_SPECTRE_n ERROR: you want to use vertical relaxation" WRITE(ILUOUT,FMT=*) " but bottom of layer XALZBOT(",XALZBOT,")" @@ -742,27 +741,27 @@ NDT_2_WAY(KMI)=4 IF (LSPECTRE_U) THEN ALLOCATE(XUT(IIU,IJU,IKU)) ; XUT = 0.0 - CALL IO_READ_FIELD(TPINIFILE,'UT',XUT) + CALL IO_Field_read(TPINIFILE,'UT',XUT) END IF ! IF (LSPECTRE_V) THEN ALLOCATE(XVT(IIU,IJU,IKU)) ; XVT = 0.0 - CALL IO_READ_FIELD(TPINIFILE,'VT',XVT) + CALL IO_Field_read(TPINIFILE,'VT',XVT) END IF ! IF (LSPECTRE_W) THEN ALLOCATE(XWT(IIU,IJU,IKU)) ; XWT = 0.0 - CALL IO_READ_FIELD(TPINIFILE,'WT',XWT) + CALL IO_Field_read(TPINIFILE,'WT',XWT) END IF ! IF (LSPECTRE_TH) THEN ALLOCATE(XTHT(IIU,IJU,IKU)) ; XTHT = 0.0 - CALL IO_READ_FIELD(TPINIFILE,'THT',XTHT) + CALL IO_Field_read(TPINIFILE,'THT',XTHT) END IF ! IF (LSPECTRE_RV) THEN ALLOCATE(XRT(IIU,IJU,IKU,NRR)) - CALL IO_READ_FIELD(TPINIFILE,'RVT',XRT(:,:,:,1)) + CALL IO_Field_read(TPINIFILE,'RVT',XRT(:,:,:,1)) END IF ! !------------------------------------------------------------------------------- diff --git a/src/MNH/ini_surf_rad.f90 b/src/MNH/ini_surf_rad.f90 index e3c30fdf8..a6c4934e7 100644 --- a/src/MNH/ini_surf_rad.f90 +++ b/src/MNH/ini_surf_rad.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2003-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE INI_SURF_RAD(TPINIFILE, PDIR_ALB, PSCA_ALB, PEMIS, PTSRAD) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file REAL, DIMENSION(:,:,:), INTENT(OUT) :: PDIR_ALB ! Direct albedo @@ -63,10 +63,10 @@ END MODULE MODI_INI_SURF_RAD !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! -USE MODE_FIELD, ONLY: FIND_FIELD_ID_FROM_MNHNAME, TFIELDDATA, TFIELDLIST -USE MODE_FMREAD +USE MODE_FIELD, ONLY: FIND_FIELD_ID_FROM_MNHNAME, TFIELDDATA, TFIELDLIST +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG ! IMPLICIT NONE @@ -85,17 +85,17 @@ INTEGER :: IID, IRESP TYPE(TFIELDDATA) :: TZFIELD !------------------------------------------------------------------------------- ! -CALL IO_READ_FIELD(TPINIFILE,'DIR_ALB',PDIR_ALB) -CALL IO_READ_FIELD(TPINIFILE,'SCA_ALB',PSCA_ALB) +CALL IO_Field_read(TPINIFILE,'DIR_ALB',PDIR_ALB) +CALL IO_Field_read(TPINIFILE,'SCA_ALB',PSCA_ALB) ! CALL PRINT_MSG(NVERB_INFO,'IO','INI_SURF_RAD','EMIS: reading only first band (copy on others)') CALL FIND_FIELD_ID_FROM_MNHNAME('EMIS',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%NDIMS = 2 -CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PEMIS(:,:,1)) +CALL IO_Field_read(TPINIFILE,TZFIELD,PEMIS(:,:,1)) PEMIS(:,:,:) = SPREAD(SOURCE=PEMIS(:,:,1),DIM=3,NCOPIES=SIZE(PEMIS,3)) ! -CALL IO_READ_FIELD(TPINIFILE,'TSRAD',PTSRAD) +CALL IO_Field_read(TPINIFILE,'TSRAD',PTSRAD) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/ini_surfstationn.f90 b/src/MNH/ini_surfstationn.f90 index 887733ede..3d8f08596 100644 --- a/src/MNH/ini_surfstationn.f90 +++ b/src/MNH/ini_surfstationn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################### @@ -68,7 +68,7 @@ END MODULE MODI_INI_SURFSTATION_n !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! !! -------------------------------------------------------------------------- -! +! !* 0. DECLARATIONS ! ------------ ! @@ -82,7 +82,6 @@ USE MODD_STATION_n USE MODD_TYPE_DATE ! USE MODE_GRIDPROJ -USE MODE_IO_ll USE MODE_ll USE MODE_MSG ! diff --git a/src/MNH/init_for_convlfi.f90 b/src/MNH/init_for_convlfi.f90 index d302211ec..733aa93ca 100644 --- a/src/MNH/init_for_convlfi.f90 +++ b/src/MNH/init_for_convlfi.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -11,7 +11,7 @@ MODULE MODI_INIT_FOR_CONVLFI INTERFACE SUBROUTINE INIT_FOR_CONVLFI(TPINIFILE) ! -USE MODD_IO_ll,ONLY: TFILEDATA +USE MODD_IO,ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! file being read ! @@ -66,7 +66,7 @@ END MODULE MODI_INIT_FOR_CONVLFI !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_ll,ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_CONF USE MODD_CST @@ -74,20 +74,19 @@ USE MODD_DIM_n USE MODD_FIELD_n USE MODD_GRID USE MODD_GRID_n -USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_TIME USE MODD_TIME_n -USE MODD_VAR_ll, ONLY : NPROC +USE MODD_VAR_ll, ONLY: NPROC ! -USE MODE_FIELD, ONLY : TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME +USE MODE_FIELD, ONLY: TFIELDDATA, TFIELDLIST, FIND_FIELD_ID_FROM_MNHNAME USE MODE_TIME USE MODE_GRIDPROJ USE MODE_GRIDCART ! -USE MODE_FM -USE MODE_FMREAD USE MODE_GATHER_ll -USE MODE_IO_ll +USE MODE_IO, only: IO_Pack_set +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_ll ! USE MODI_INI_CST @@ -127,39 +126,39 @@ TYPE(TFIELDDATA) :: TZFIELD ! !* 1.1 Read the geometry kind in the LFIFM file (Cartesian or spherical) ! -CALL IO_READ_FIELD(TPINIFILE,'CARTESIAN',LCARTESIAN) +CALL IO_Field_read(TPINIFILE,'CARTESIAN',LCARTESIAN) ! !* 1.2 Read configuration and dimensions in initial file and initialize ! subdomain dimensions and parallel variables ! -CALL IO_READ_FIELD(TPINIFILE,'IMAX',NIMAX_ll) -CALL IO_READ_FIELD(TPINIFILE,'JMAX',NJMAX_ll) +CALL IO_Field_read(TPINIFILE,'IMAX',NIMAX_ll) +CALL IO_Field_read(TPINIFILE,'JMAX',NJMAX_ll) ! -CALL IO_READ_FIELD(TPINIFILE,'L1D',L1D,IRESP) +CALL IO_Field_read(TPINIFILE,'L1D',L1D,IRESP) IF (IRESP/=0) THEN L1D=.FALSE. IF( (NIMAX_ll == 1).AND.(NJMAX_ll == 1) ) L1D=.TRUE. ENDIF ! -CALL IO_READ_FIELD(TPINIFILE,'L2D',L2D,IRESP) +CALL IO_Field_read(TPINIFILE,'L2D',L2D,IRESP) IF (IRESP/=0) THEN L2D=.FALSE. IF( (NIMAX_ll /= 1).AND.(NJMAX_ll == 1) ) L2D=.TRUE. ENDIF ! -CALL IO_READ_FIELD(TPINIFILE,'PACK',LPACK,IRESP) +CALL IO_Field_read(TPINIFILE,'PACK',LPACK,IRESP) IF (IRESP/=0) LPACK=.TRUE. ! -CALL SET_FMPACK_ll(L1D,L2D,LPACK) +CALL IO_Pack_set(L1D,L2D,LPACK) ! -CALL IO_READ_FIELD(TPINIFILE,'KMAX',NKMAX) +CALL IO_Field_read(TPINIFILE,'KMAX',NKMAX) ! CSPLIT ='BSPLITTING' ; NHALO = 1 CALL SET_SPLITTING_ll(CSPLIT) CALL SET_JP_ll(1,JPHEXT,JPVEXT, NHALO) CALL SET_DAD0_ll() CALL SET_DIM_ll(NIMAX_ll, NJMAX_ll, NKMAX) -CALL SET_FMPACK_ll(L1D,L2D,LPACK) +CALL IO_Pack_set(L1D,L2D,LPACK) CALL SET_LBX_ll('OPEN', 1) CALL SET_LBY_ll('OPEN', 1) CALL SET_XRATIO_ll(1, 1) @@ -185,27 +184,27 @@ CALL GET_DIM_PHYS_ll('B',NIMAX,NJMAX) ! ! 2.1 reading ! -CALL IO_READ_FIELD(TPINIFILE,'LAT0',XLAT0) -CALL IO_READ_FIELD(TPINIFILE,'LON0',XLON0) -CALL IO_READ_FIELD(TPINIFILE,'BETA',XBETA) -CALL IO_READ_FIELD(TPINIFILE,'XHAT',XXHAT) -CALL IO_READ_FIELD(TPINIFILE,'YHAT',XYHAT) +CALL IO_Field_read(TPINIFILE,'LAT0',XLAT0) +CALL IO_Field_read(TPINIFILE,'LON0',XLON0) +CALL IO_Field_read(TPINIFILE,'BETA',XBETA) +CALL IO_Field_read(TPINIFILE,'XHAT',XXHAT) +CALL IO_Field_read(TPINIFILE,'YHAT',XYHAT) ! IF (.NOT.LCARTESIAN) THEN - CALL IO_READ_FIELD(TPINIFILE,'RPK',XRPK) - CALL IO_READ_FIELD(TPINIFILE,'LONORI',XLONORI) - CALL IO_READ_FIELD(TPINIFILE,'LATORI',XLATORI) + CALL IO_Field_read(TPINIFILE,'RPK',XRPK) + CALL IO_Field_read(TPINIFILE,'LONORI',XLONORI) + CALL IO_Field_read(TPINIFILE,'LATORI',XLATORI) ! IF (TPINIFILE%NMNHVERSION(1)<4 .OR. (TPINIFILE%NMNHVERSION(1)==4 .AND. TPINIFILE%NMNHVERSION(2)<=5)) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('LONORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LONOR' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,XLONORI) + CALL IO_Field_read(TPINIFILE,TZFIELD,XLONORI) ! CALL FIND_FIELD_ID_FROM_MNHNAME('LATORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LATOR' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,XLATORI) + CALL IO_Field_read(TPINIFILE,TZFIELD,XLATORI) ! ALLOCATE(ZXHAT_ll(NIMAX_ll+ 2 * JPHEXT),ZYHAT_ll(NJMAX_ll+2 * JPHEXT)) CALL GATHERALL_FIELD_ll('XX',XXHAT,ZXHAT_ll,IRESP) !// @@ -220,29 +219,29 @@ IF (.NOT.LCARTESIAN) THEN END IF ! ALLOCATE(XZS(IIU,IJU)) -CALL IO_READ_FIELD(TPINIFILE,'ZS',XZS,IRESP) +CALL IO_Field_read(TPINIFILE,'ZS',XZS,IRESP) IF (IRESP/=0) XZS(:,:)=0. ! ALLOCATE(XZSMT(IIU,IJU)) -CALL IO_READ_FIELD(TPINIFILE,'ZSMT',XZSMT,IRESP) +CALL IO_Field_read(TPINIFILE,'ZSMT',XZSMT,IRESP) IF (IRESP/=0) XZSMT(:,:)=XZS(:,:) ! ALLOCATE(XZHAT(IKU)) -CALL IO_READ_FIELD(TPINIFILE,'ZHAT',XZHAT) -CALL IO_READ_FIELD(TPINIFILE,'ZTOP',XZTOP) +CALL IO_Field_read(TPINIFILE,'ZHAT',XZHAT) +CALL IO_Field_read(TPINIFILE,'ZTOP',XZTOP) ! -CALL IO_READ_FIELD(TPINIFILE,'SLEVE',LSLEVE,IRESP) +CALL IO_Field_read(TPINIFILE,'SLEVE',LSLEVE,IRESP) IF (IRESP/=0) LSLEVE = .FALSE. ! IF (LSLEVE) THEN - CALL IO_READ_FIELD(TPINIFILE,'LEN1',XLEN1) - CALL IO_READ_FIELD(TPINIFILE,'LEN2',XLEN2) + CALL IO_Field_read(TPINIFILE,'LEN1',XLEN1) + CALL IO_Field_read(TPINIFILE,'LEN2',XLEN2) END IF ! -CALL IO_READ_FIELD(TPINIFILE,'DTEXP',TDTEXP) -CALL IO_READ_FIELD(TPINIFILE,'DTMOD',TDTMOD) -CALL IO_READ_FIELD(TPINIFILE,'DTSEG',TDTSEG) -CALL IO_READ_FIELD(TPINIFILE,'DTCUR',TDTCUR) +CALL IO_Field_read(TPINIFILE,'DTEXP',TDTEXP) +CALL IO_Field_read(TPINIFILE,'DTMOD',TDTMOD) +CALL IO_Field_read(TPINIFILE,'DTSEG',TDTSEG) +CALL IO_Field_read(TPINIFILE,'DTCUR',TDTCUR) ! YTITLE='CURRENT DATE AND TIME' CALL SM_PRINT_TIME(TDTCUR,TLUOUT,YTITLE) @@ -271,7 +270,7 @@ END IF !* 3. INITIALIZE THE PROGNOSTIC AND SURFACE FIELDS (read_field) ! -------------------------------------------- ALLOCATE(XPABST(IIU,IJU,IKU)) -CALL IO_READ_FIELD(TPINIFILE,'PABST',XPABST) +CALL IO_Field_read(TPINIFILE,'PABST',XPABST) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/init_ground_paramn.f90 b/src/MNH/init_ground_paramn.f90 index 95a5bcee7..f8e37bd5a 100644 --- a/src/MNH/init_ground_paramn.f90 +++ b/src/MNH/init_ground_paramn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -74,7 +74,6 @@ END MODULE MODI_INIT_GROUND_PARAM_n ! ------------ ! USE MODE_DATETIME -USE MODE_IO_ll USE MODE_FIELD USE MODE_ll ! diff --git a/src/MNH/init_mnh.f90 b/src/MNH/init_mnh.f90 index debf3b7a0..18c169617 100644 --- a/src/MNH/init_mnh.f90 +++ b/src/MNH/init_mnh.f90 @@ -77,7 +77,7 @@ ! ------------ USE MODD_CONF USE MODD_DYN_n, ONLY: CPRESOPT,NITR ! only for spawning purpose -USE MODD_IO_ll, ONLY: TFILE_OUTPUTLISTING,TPTR2FILE +USE MODD_IO, ONLY: TFILE_OUTPUTLISTING, TPTR2FILE USE MODD_LBC_n, ONLY: CLBCX,CLBCY ! only for spawning purpose USE MODD_LUNIT USE MODD_LUNIT_n @@ -85,9 +85,8 @@ USE MODD_MNH_SURFEX_n USE MODD_PARAMETERS ! USE MODE_FIELD -USE MODE_FM, ONLY: IO_FILE_OPEN_ll -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST +USE MODE_IO_FILE, ONLY: IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_ll USE MODE_MODELN_HANDLER USE MODE_SPLITTINGZ_ll @@ -127,8 +126,8 @@ CHARACTER(LEN=4), DIMENSION(:), POINTER :: DPTR_CLBCX,DPTR_CLBCY ! ! IF (CPROGRAM/='REAL ') THEN - CALL IO_FILE_ADD2LIST(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') - CALL IO_FILE_OPEN_ll(TLUOUT0) + CALL IO_File_add2list(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') + CALL IO_File_open(TLUOUT0) !Set output file for PRINT_MSG TFILE_OUTPUTLISTING => TLUOUT0 ILUOUT0=TLUOUT0%NLU diff --git a/src/MNH/khko_notadjust.f90 b/src/MNH/khko_notadjust.f90 index a1cf0d41e..2cd179fc5 100644 --- a/src/MNH/khko_notadjust.f90 +++ b/src/MNH/khko_notadjust.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -15,7 +15,7 @@ INTERFACE PTHS, PRVS, PRCS, PRRS, PCCS, PCNUCS, PSAT, & PCLDFR, PSRCS, PNPRO,PSSPRO ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KRR ! Number of moist variables INTEGER, INTENT(IN) :: KTCOUNT ! Number of moist variables @@ -99,7 +99,7 @@ END MODULE MODI_KHKO_NOTADJUST USE MODD_BUDGET USE MODD_CONF USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_NSV, ONLY: NSV_C2R2BEG USE MODD_PARAMETERS @@ -107,8 +107,7 @@ USE MODD_RAIN_C2R2_DESCR, ONLY: XRTMIN ! USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FMWRIT -USE MODE_IO_ll +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG ! USE MODI_BUDGET @@ -391,7 +390,7 @@ IF ( OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK) ! TZFIELD%CMNHNAME = 'ACT_OD' TZFIELD%CSTDNAME = '' @@ -403,7 +402,7 @@ IF ( OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZACT) + CALL IO_Field_write(TPFILE,TZFIELD,ZACT) END IF ! !* 7. STORE THE BUDGET TERMS diff --git a/src/MNH/latlon_to_xy.f90 b/src/MNH/latlon_to_xy.f90 index c79760c69..0b6d8b658 100644 --- a/src/MNH/latlon_to_xy.f90 +++ b/src/MNH/latlon_to_xy.f90 @@ -55,28 +55,28 @@ !! no transfer of the file when closing Dec. 09, 1996 (V.Masson) !! + changes call to READ_HGRID !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list !---------------------------------------------------------------------------- ! !* 0. DECLARATION ! ----------- ! -USE MODD_GRID -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_GRID +USE MODD_IO, ONLY: TFILEDATA USE MODD_PGDDIM USE MODD_PGDGRID USE MODD_PARAMETERS USE MODD_LUNIT ! -USE MODE_FM USE MODE_GRIDPROJ -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST +USE MODE_IO, only: IO_Config_set, IO_Init +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list ! USE MODI_INI_CST USE MODI_READ_HGRID ! -USE MODN_CONFIO, ONLY : NAM_CONFIO +USE MODN_CONFIO, ONLY: NAM_CONFIO ! IMPLICIT NONE ! @@ -119,22 +119,22 @@ CALL INI_CST !* 2. Reading of namelist file ! ------------------------ ! -CALL INITIO_ll() +CALL IO_Init() ! -CALL IO_FILE_ADD2LIST(TZNMLFILE,'LATLON2XY1.nam','NML','READ') -CALL IO_FILE_OPEN_ll(TZNMLFILE) +CALL IO_File_add2list(TZNMLFILE,'LATLON2XY1.nam','NML','READ') +CALL IO_File_open(TZNMLFILE) INAM=TZNMLFILE%NLU READ(INAM,NAM_INIFILE) ! READ(INAM,NAM_CONFIO) -CALL SET_CONFIO_ll() -CALL IO_FILE_CLOSE_ll(TZNMLFILE) +CALL IO_Config_set() +CALL IO_File_close(TZNMLFILE) ! !* 1. Opening of MESONH file ! ---------------------- ! -CALL IO_FILE_ADD2LIST(TZINIFILE,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=2) -CALL IO_FILE_OPEN_ll(TZINIFILE) +CALL IO_File_add2list(TZINIFILE,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=2) +CALL IO_File_open(TZINIFILE) ! !* 2. Reading of MESONH file ! ---------------------- @@ -144,7 +144,7 @@ CALL READ_HGRID(0,TZINIFILE,YNAME,YDAD,YSTORAGE_TYPE) !* 3. Closing of MESONH file ! ---------------------- ! -CALL IO_FILE_CLOSE_ll(TZINIFILE) +CALL IO_File_close(TZINIFILE) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/les_specn.f90 b/src/MNH/les_specn.f90 index be4c3b404..d95300068 100644 --- a/src/MNH/les_specn.f90 +++ b/src/MNH/les_specn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################### @@ -58,7 +58,7 @@ CONTAINS USE MODD_CONF USE MODD_CONF_n USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LBC_n, ONLY: CLBCX, CLBCY USE MODD_LES USE MODD_LES_n diff --git a/src/MNH/lima.f90 b/src/MNH/lima.f90 index d9149be2a..ea0244c42 100644 --- a/src/MNH/lima.f90 +++ b/src/MNH/lima.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2013-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2013-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ######spl MODULE MODI_LIMA @@ -18,7 +18,7 @@ INTERFACE PINPRC, PINDEP, PINPRR, PINPRI, PINPRS, PINPRG, PINPRH, & PEVAP3D ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KKA !near ground array index INTEGER, INTENT(IN) :: KKU !uppest atmosphere array index @@ -99,8 +99,8 @@ END MODULE MODI_LIMA !! !* 0. DECLARATIONS ! ------------ -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_CLOUDPAR_n, ONLY : NSPLITR, NSPLITG USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT USE MODD_PARAM_LIMA, ONLY : LCOLD, LRAIN, LWARM, NMOD_CCN, NMOD_IFN, NMOD_IMM, LHHONI, & diff --git a/src/MNH/lima_adjust.f90 b/src/MNH/lima_adjust.f90 index 7d20f4f44..2f0957ca1 100644 --- a/src/MNH/lima_adjust.f90 +++ b/src/MNH/lima_adjust.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2013-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2013-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -15,7 +15,7 @@ INTERFACE PRT, PRS, PSVT, PSVS, & PTHS, PSRCS, PCLDFR ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KRR ! Number of moist variables INTEGER, INTENT(IN) :: KMI ! Model index @@ -144,8 +144,8 @@ END MODULE MODI_LIMA_ADJUST USE MODD_BUDGET USE MODD_CONF USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_NSV USE MODD_PARAMETERS USE MODD_PARAM_LIMA @@ -153,9 +153,8 @@ USE MODD_PARAM_LIMA_COLD USE MODD_PARAM_LIMA_MIXED USE MODD_PARAM_LIMA_WARM ! -USE MODE_FIELD, ONLY : TFIELDDATA, TYPEREAL -USE MODE_FM -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_BUDGET USE MODI_CONDENS @@ -1133,7 +1132,7 @@ IF ( OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZW) + CALL IO_Field_write(TPFILE,TZFIELD,ZW) END IF ! ! @@ -1188,7 +1187,7 @@ IF ( OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZW) + CALL IO_Field_write(TPFILE,TZFIELD,ZW) END IF ! ! diff --git a/src/MNH/lima_ccn_activation.f90 b/src/MNH/lima_ccn_activation.f90 index 884c98379..4b6d1c348 100644 --- a/src/MNH/lima_ccn_activation.f90 +++ b/src/MNH/lima_ccn_activation.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2013-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2013-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ############################### MODULE MODI_LIMA_CCN_ACTIVATION @@ -10,7 +10,7 @@ INTERFACE SUBROUTINE LIMA_CCN_ACTIVATION (PTSTEP, TPFILE, OCLOSE_OUT, & PRHODREF, PEXNREF, PPABST, ZT, ZTM, PW_NU, & PTHT, PRVT, PRCT, PCCT, PRRT, PNFT, PNAT ) -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! REAL, INTENT(IN) :: PTSTEP ! Double Time step ! (single if cold start) @@ -92,20 +92,19 @@ END MODULE MODI_LIMA_CCN_ACTIVATION !* 0. DECLARATIONS ! ------------ ! -USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT -USE MODD_CST, ONLY : XALPW, XBETAW, XCL, XCPD, XCPV, XGAMW, XLVTT, XMD, XMV, XRV, XTT -USE MODD_PARAM_LIMA, ONLY : LACTIT, NMOD_CCN, XKHEN_MULTI, XCTMIN, XLIMIT_FACTOR -USE MODD_PARAM_LIMA_WARM, ONLY : XWMIN, NAHEN, NHYP, XAHENINTP1, XAHENINTP2, XCSTDCRIT, XHYPF12, & - XHYPINTP1, XHYPINTP2, XTMIN, XHYPF32, XPSI3, XAHENG, XPSI1 +USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT +USE MODD_CST, ONLY: XALPW, XBETAW, XCL, XCPD, XCPV, XGAMW, XLVTT, XMD, XMV, XRV, XTT +USE MODD_PARAM_LIMA, ONLY: LACTIT, NMOD_CCN, XKHEN_MULTI, XCTMIN, XLIMIT_FACTOR +USE MODD_PARAM_LIMA_WARM, ONLY: XWMIN, NAHEN, NHYP, XAHENINTP1, XAHENINTP2, XCSTDCRIT, XHYPF12, & + XHYPINTP1, XHYPINTP2, XTMIN, XHYPF32, XPSI3, XAHENG, XPSI1 ! USE MODI_GAMMA USE MODI_LIMA_FUNCTIONS, ONLY : COUNTJV ! -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LUNIT_n, ONLY : TLUOUT -USE MODE_FIELD, ONLY : TFIELDDATA, TYPEREAL -USE MODE_FM -USE MODE_FMWRIT +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! IMPLICIT NONE ! @@ -467,7 +466,7 @@ IF ( OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZW) + CALL IO_Field_write(TPFILE,TZFIELD,ZW) ! TZFIELD%CMNHNAME ='NACT' TZFIELD%CSTDNAME = '' @@ -479,7 +478,7 @@ IF ( OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZW2) + CALL IO_Field_write(TPFILE,TZFIELD,ZW2) END IF ! ! diff --git a/src/MNH/lima_nucleation_procs.f90 b/src/MNH/lima_nucleation_procs.f90 index f18b78589..e3efc478d 100644 --- a/src/MNH/lima_nucleation_procs.f90 +++ b/src/MNH/lima_nucleation_procs.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 2013-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2018-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ############################### MODULE MODI_LIMA_NUCLEATION_PROCS ! ############################### @@ -13,7 +14,7 @@ INTERFACE PCCT, PCRT, PCIT, & PNFT, PNAT, PIFT, PINT, PNIT, PNHT ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! REAL, INTENT(IN) :: PTSTEP ! Double Time step TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file @@ -78,7 +79,7 @@ USE MODD_BUDGET, ONLY : LBU_ENABLE, LBUDGET_TH, LBUDGET_RV, LBUDGET_RC, LBUD USE MODD_NSV, ONLY : NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_CCN_FREE, & NSV_LIMA_NI, NSV_LIMA_IFN_FREE ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODI_BUDGET USE MODI_LIMA_CCN_ACTIVATION USE MODI_LIMA_PHILLIPS_IFN_NUCLEATION diff --git a/src/MNH/lima_warm.f90 b/src/MNH/lima_warm.f90 index 35961b3ba..1ac67f3ce 100644 --- a/src/MNH/lima_warm.f90 +++ b/src/MNH/lima_warm.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2013-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2013-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ##################### @@ -16,7 +16,7 @@ INTERFACE PTHS, PRS, PSVS, & PINPRC, PINPRR, PINDEP, PINPRR3D, PEVAP3D ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! LOGICAL, INTENT(IN) :: OACTIT ! Switch to activate the ! activation by radiative @@ -144,14 +144,11 @@ USE MODD_NSV USE MODD_BUDGET USE MODI_BUDGET ! -USE MODE_FM -USE MODE_FMWRIT -! USE MODI_LIMA_WARM_SEDIMENTATION USE MODI_LIMA_WARM_NUCL USE MODI_LIMA_WARM_COAL USE MODI_LIMA_WARM_EVAP -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n, ONLY: TLUOUT ! IMPLICIT NONE diff --git a/src/MNH/lima_warm_nucl.f90 b/src/MNH/lima_warm_nucl.f90 index 66b235e48..71974fc8c 100644 --- a/src/MNH/lima_warm_nucl.f90 +++ b/src/MNH/lima_warm_nucl.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2013-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2013-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -13,7 +13,7 @@ INTERFACE PRCM, PRVT, PRCT, PRRT, & PTHS, PRVS, PRCS, PCCS, PNFS, PNAS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! LOGICAL, INTENT(IN) :: OACTIT ! Switch to activate the ! activation by radiative @@ -108,19 +108,18 @@ END MODULE MODI_LIMA_WARM_NUCL !* 0. DECLARATIONS ! ------------ ! -USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT +USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT USE MODD_CST USE MODD_PARAM_LIMA USE MODD_PARAM_LIMA_WARM ! USE MODI_GAMMA -USE MODI_LIMA_FUNCTIONS, ONLY : COUNTJV +USE MODI_LIMA_FUNCTIONS, ONLY : COUNTJV ! -USE MODE_FM -USE MODE_FMWRIT -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LUNIT_n, ONLY: TLUOUT -USE MODE_FIELD, ONLY : TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODE_FIELD, ONLY : TFIELDDATA, TYPEREAL ! IMPLICIT NONE ! @@ -132,7 +131,7 @@ LOGICAL, INTENT(IN) :: OACTIT ! Switch to activate the REAL, INTENT(IN) :: PTSTEP ! Double Time step ! (single if cold start) INTEGER, INTENT(IN) :: KMI ! Model index -TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file +TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file LOGICAL, INTENT(IN) :: OCLOSE_OUT ! Conditional closure of ! the output FM file ! @@ -535,7 +534,7 @@ IF ( OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZW) + CALL IO_Field_write(TPFILE,TZFIELD,ZW) ! TZFIELD%CMNHNAME ='NACT' TZFIELD%CSTDNAME = '' @@ -547,7 +546,7 @@ IF ( OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZW2) + CALL IO_Field_write(TPFILE,TZFIELD,ZW2) END IF ! ! diff --git a/src/MNH/lochead.f90 b/src/MNH/lochead.f90 index d77bbadba..5bb77e10e 100644 --- a/src/MNH/lochead.f90 +++ b/src/MNH/lochead.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################### @@ -77,9 +77,9 @@ END MODULE MODI_LOCHEAD !* 0. DECLARATION ! ----------- ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_FIND_BYNAME +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_find_byname ! IMPLICIT NONE ! @@ -125,7 +125,7 @@ TYPE(TFILEDATA),POINTER :: TZFILE !------------------------------------------------------------------------------- ! IF (ODATASAVE) THEN - CALL IO_FILE_FIND_BYNAME(HSAVEDDATAFILE,TZFILE,IRESP) + CALL IO_File_find_byname(HSAVEDDATAFILE,TZFILE,IRESP) ISAVE = TZFILE%NLU END IF ! diff --git a/src/MNH/ls_coupling.f90 b/src/MNH/ls_coupling.f90 index b2d17436a..8b9430d83 100644 --- a/src/MNH/ls_coupling.f90 +++ b/src/MNH/ls_coupling.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ############################## @@ -124,8 +124,8 @@ END MODULE MODI_LS_COUPLING !! !! EXTERNAL !! -------- -!! IO_READ_FIELD : to read data in file -!! IO_FILE_CLOSE_ll : to close a file +!! IO_Field_read : to read data in file +!! IO_File_close : to close a file !! INI_LS : to initialize larger scale fields !! INI_LB : to initialize "2D" surfacic LB fields !! @@ -186,9 +186,8 @@ USE MODD_PASPOL #endif USE MODD_CH_MNHC_n ! -USE MODE_FM -USE MODE_FMREAD -USE MODE_IO_ll +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FILE, only: IO_File_close USE MODE_MSG ! USE MODI_INI_LS @@ -274,9 +273,9 @@ LOGICAL :: GLSOURCE ! switch for the source term (for ini_ls and i ! !* 1.1 Check dimensions ! -CALL IO_READ_FIELD(TCPLFILE(NCPL_CUR)%TZFILE,'IMAX',IIMAX) -CALL IO_READ_FIELD(TCPLFILE(NCPL_CUR)%TZFILE,'JMAX',IJMAX) -CALL IO_READ_FIELD(TCPLFILE(NCPL_CUR)%TZFILE,'KMAX',IKMAX) +CALL IO_Field_read(TCPLFILE(NCPL_CUR)%TZFILE,'IMAX',IIMAX) +CALL IO_Field_read(TCPLFILE(NCPL_CUR)%TZFILE,'JMAX',IJMAX) +CALL IO_Field_read(TCPLFILE(NCPL_CUR)%TZFILE,'KMAX',IKMAX) ! IKU=SIZE(PLSTHM,3) ! @@ -345,7 +344,7 @@ CALL INI_LB(TCPLFILE(NCPL_CUR)%TZFILE,GLSOURCE,KSV, & ! !* 1.4 Close the coupling file ! -CALL IO_FILE_CLOSE_ll(TCPLFILE(NCPL_CUR)%TZFILE) +CALL IO_File_close(TCPLFILE(NCPL_CUR)%TZFILE) ! !------------------------------------------------------------------------------- diff --git a/src/MNH/menu_diachro.f90 b/src/MNH/menu_diachro.f90 index b9147f3b2..7cf66861c 100644 --- a/src/MNH/menu_diachro.f90 +++ b/src/MNH/menu_diachro.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################################################## @@ -54,11 +54,11 @@ ! ------------ ! USE MODD_CONF -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, only: TFILEDATA ! USE MODE_FIELD -USE MODE_FMREAD -USE MODE_FMWRIT +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! IMPLICIT NONE ! @@ -103,7 +103,7 @@ IF(HGROUP == 'END')THEN TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,ILENG) + CALL IO_Field_write(TPDIAFILE,TZFIELD,ILENG) ALLOCATE(ITABCHAR(ILENG)) DO JJ=1,IGROUP @@ -122,7 +122,7 @@ IF(HGROUP == 'END')THEN TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,ITABCHAR) + CALL IO_Field_write(TPDIAFILE,TZFIELD,ITABCHAR) DEALLOCATE(ITABCHAR) @@ -138,7 +138,7 @@ ELSE IF(HGROUP == 'READ')THEN TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPDIAFILE,TZFIELD,ILENG,IRESPDIA) + CALL IO_Field_read(TPDIAFILE,TZFIELD,ILENG,IRESPDIA) IF(IRESPDIA == -47)THEN ! print *,' No record MENU_BUDGET ' LPACK=GPACK @@ -156,7 +156,7 @@ ELSE IF(HGROUP == 'READ')THEN TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPDIAFILE,TZFIELD,ITABCHAR) + CALL IO_Field_read(TPDIAFILE,TZFIELD,ITABCHAR) IGROUP=ILENG/NMNHNAMELGTMAX DO JJ=1,IGROUP DO J = 1,NMNHNAMELGTMAX diff --git a/src/MNH/mesonh.f90 b/src/MNH/mesonh.f90 index b058f104f..8964d79d1 100644 --- a/src/MNH/mesonh.f90 +++ b/src/MNH/mesonh.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -90,14 +90,14 @@ USE MODD_CONF USE MODD_NESTING USE MODD_CONF_n -USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG +USE MODD_IO, ONLY: NIO_VERB,NVERB_DEBUG ! USE MODI_MODEL_n USE MODI_KID_MODEL ! +USE MODE_IO, only: IO_Init +USE MODE_IO_MANAGE_STRUCT, only: IO_Filelist_print USE MODE_ll -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_PRINT_LIST USE MODE_MODELN_HANDLER ! USE MODI_VERSION @@ -144,7 +144,7 @@ CALL GOTO_MODEL(1,ONOFIELDLIST=.TRUE.) CALL SFX_OASIS_INIT(CNAMELIST, NMNH_COMM_WORLD) #endif ! -CALL INITIO_ll() +CALL IO_Init() ! CALL VERSION CPROGRAM='MESONH' @@ -213,7 +213,7 @@ DO ! END DO ! -IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST() +IF(NIO_VERB>=NVERB_DEBUG) CALL IO_Filelist_print() ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/mnh2lpdm.f90 b/src/MNH/mnh2lpdm.f90 index 77ff393c7..08b1957a2 100644 --- a/src/MNH/mnh2lpdm.f90 +++ b/src/MNH/mnh2lpdm.f90 @@ -13,7 +13,7 @@ ! Modification : 07.01.2006 (T.LAUVAUX, adaptation LPDM) ! Modification : 04.01.2009 (F. BONNARDOT, DP/SER/ENV ) ! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! !----------------------------------------------------------------------------- ! @@ -25,12 +25,12 @@ !* 0.1 Modules. ! USE MODD_CONF, ONLY : CPROGRAM -USE MODD_IO_ll, ONLY : TFILEDATA,TPTR2FILE +USE MODD_IO, ONLY : TFILEDATA,TPTR2FILE USE MODD_MNH2LPDM ! -USE MODE_FM, ONLY: IO_FILE_OPEN_ll,IO_FILE_CLOSE_ll -USE MODE_IO_ll, ONLY: INITIO_ll,SET_CONFIO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST +USE MODE_IO, ONLY: IO_Init, IO_Config_set +USE MODE_IO_FILE, ONLY: IO_File_open, IO_File_close +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_MODELN_HANDLER USE MODE_POS ! @@ -74,19 +74,19 @@ CALL GOTO_MODEL(1) ! !* 1.2 Initialisation routines LL. ! -CALL INITIO_ll() +CALL IO_Init() ! ! !* 1.3 Ouverture du fichier log. ! -CALL IO_FILE_ADD2LIST(TZLOGFILE,YFLOG,'TXT','WRITE') -CALL IO_FILE_OPEN_ll(TZLOGFILE) +CALL IO_File_add2list(TZLOGFILE,YFLOG,'TXT','WRITE') +CALL IO_File_open(TZLOGFILE) ! ! !* 1.4 Lecture des namelists. ! -CALL IO_FILE_ADD2LIST(TZNMLFILE,YFNML,'NML','READ') -CALL IO_FILE_OPEN_ll(TZNMLFILE) +CALL IO_File_add2list(TZNMLFILE,YFNML,'NML','READ') +CALL IO_File_open(TZNMLFILE) IFNML = TZNMLFILE%NLU READ(UNIT=IFNML,NML=NAM_TURB) @@ -100,18 +100,18 @@ END IF LCDF4 = .FALSE. LLFIOUT = .FALSE. LLFIREAD = .FALSE. -CALL SET_CONFIO_ll() -CALL IO_FILE_CLOSE_ll(TZNMLFILE) +CALL IO_Config_set() +CALL IO_File_close(TZNMLFILE) ! ! !* 1.5 Comptage des FM a traiter. ! IF (LEN_TRIM(CFMNH(1))>0) THEN NBMNH=1 - CALL IO_FILE_ADD2LIST(TZFMNH(1)%TZFILE,TRIM(CFMNH(1)),'MNH','READ',KLFITYPE=2,KLFIVERB=IVERB) + CALL IO_File_add2list(TZFMNH(1)%TZFILE,TRIM(CFMNH(1)),'MNH','READ',KLFITYPE=2,KLFIVERB=IVERB) DO WHILE (CFMNH(NBMNH+1).NE.'VIDE') NBMNH=NBMNH+1 - CALL IO_FILE_ADD2LIST(TZFMNH(NBMNH)%TZFILE,TRIM(CFMNH(NBMNH)),'MNH','READ',KLFITYPE=2,KLFIVERB=IVERB) + CALL IO_File_add2list(TZFMNH(NBMNH)%TZFILE,TRIM(CFMNH(NBMNH)),'MNH','READ',KLFITYPE=2,KLFIVERB=IVERB) END DO print *,NBMNH,' fichiers a traiter.' ELSE @@ -126,10 +126,10 @@ ENDIF ! !* 2.1 Ouverture des fichiers METEO et GRILLE et DATE. ! -CALL IO_FILE_ADD2LIST(TZGRIDFILE,CFGRI,'TXT','WRITE') -CALL IO_FILE_OPEN_ll(TZGRIDFILE) -CALL IO_FILE_ADD2LIST(TZDATEFILE,CFDAT,'TXT','WRITE') -CALL IO_FILE_OPEN_ll(TZDATEFILE) +CALL IO_File_add2list(TZGRIDFILE,CFGRI,'TXT','WRITE') +CALL IO_File_open(TZGRIDFILE) +CALL IO_File_add2list(TZDATEFILE,CFDAT,'TXT','WRITE') +CALL IO_File_open(TZDATEFILE) ! ! !* 2.2 Preparation du couplage. @@ -141,20 +141,20 @@ CALL MNH2LPDM_INI(TZFMNH(1)%TZFILE,TZFMNH(NBMNH)%TZFILE,TZLOGFILE,TZGRIDFILE,TZD ! DO JFIC=1,NBMNH print*,"CFMTO(JFIC)=",CFMTO(JFIC) - CALL IO_FILE_ADD2LIST(TZMETEOFILE,CFMTO(JFIC),'METEO','WRITE') - CALL IO_FILE_OPEN_ll(TZMETEOFILE) + CALL IO_File_add2list(TZMETEOFILE,CFMTO(JFIC),'METEO','WRITE') + CALL IO_File_open(TZMETEOFILE) CALL MNH2LPDM_ECH(TZFMNH(JFIC)%TZFILE,TZMETEOFILE) print*,"CLOSE_LL(CFMTO(JFIC)" - CALL IO_FILE_CLOSE_ll(TZMETEOFILE) + CALL IO_File_close(TZMETEOFILE) TZMETEOFILE => NULL() END DO ! ! !* 2.4 Fermeture des fichiers, METEO, GRILLE et LOG. ! -CALL IO_FILE_CLOSE_ll(TZGRIDFILE) -CALL IO_FILE_CLOSE_ll(TZDATEFILE) -CALL IO_FILE_CLOSE_ll(TZLOGFILE) +CALL IO_File_close(TZGRIDFILE) +CALL IO_File_close(TZDATEFILE) +CALL IO_File_close(TZLOGFILE) ! ! ! diff --git a/src/MNH/mnh2lpdm_ech.f90 b/src/MNH/mnh2lpdm_ech.f90 index e7b334e84..462bd2ae4 100644 --- a/src/MNH/mnh2lpdm_ech.f90 +++ b/src/MNH/mnh2lpdm_ech.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2009-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2009-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------------- ! ######spl @@ -24,7 +24,7 @@ ! ! USE MODD_DIM_n -USE MODD_IO_ll,ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_TIME_n USE MODD_GRID_n ! @@ -34,9 +34,9 @@ USE MODD_TIME ! USE MODD_MNH2LPDM ! -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll,IO_FILE_OPEN_ll -USE MODE_FMREAD -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list ! USE MODI_INI_CST ! @@ -76,11 +76,11 @@ IFMTO = TPMETEOFILE%NLU ! !* 2.1 Ouverture du fichier Meso-NH. ! -CALL IO_FILE_OPEN_ll(TPFILE) +CALL IO_File_open(TPFILE) ! !* 2.2 Date et heure courante. ! -CALL IO_READ_FIELD(TPFILE,'DTCUR',TZDTCUR) +CALL IO_Field_read(TPFILE,'DTCUR',TZDTCUR) ! ICURAA=MOD(TZDTCUR%TDATE%YEAR,100) ! Annee sur 2 caracteres. ICURMM=TZDTCUR%TDATE%MONTH @@ -100,28 +100,28 @@ print 20300, ICURJJ,ICURMM,ICURAA,ICURHH,ICURMN,ICURSS ! !* 2.3 Lecture des champs Meso-NH de base. ! -CALL IO_READ_FIELD(TPFILE,'UT', XUT) -CALL IO_READ_FIELD(TPFILE,'VT', XVT) -CALL IO_READ_FIELD(TPFILE,'WT', XWT) -CALL IO_READ_FIELD(TPFILE,'THT', XTHT) -CALL IO_READ_FIELD(TPFILE,'TKET', XTKET) +CALL IO_Field_read(TPFILE,'UT', XUT) +CALL IO_Field_read(TPFILE,'VT', XVT) +CALL IO_Field_read(TPFILE,'WT', XWT) +CALL IO_Field_read(TPFILE,'THT', XTHT) +CALL IO_Field_read(TPFILE,'TKET', XTKET) !PW:TODO: where are these fields (LM,THW_FLX,DISS,FMU,FMV) written? !Warning: not in fieldlist => won't be found -CALL IO_READ_FIELD(TPFILE,'LM', XLM) -CALL IO_READ_FIELD(TPFILE,'THW_FLX',XWPTHP) -CALL IO_READ_FIELD(TPFILE,'DISS', XDISSIP) -CALL IO_READ_FIELD(TPFILE,'FMU', XSFU) -CALL IO_READ_FIELD(TPFILE,'FMV', XSFV) -CALL IO_READ_FIELD(TPFILE,'INPRT', XINRT) -CALL IO_READ_FIELD(TPFILE,'RVT', XRMVT) -CALL IO_READ_FIELD(TPFILE,'RCT', XRMCT) -CALL IO_READ_FIELD(TPFILE,'RRT', XRMRT) +CALL IO_Field_read(TPFILE,'LM', XLM) +CALL IO_Field_read(TPFILE,'THW_FLX',XWPTHP) +CALL IO_Field_read(TPFILE,'DISS', XDISSIP) +CALL IO_Field_read(TPFILE,'FMU', XSFU) +CALL IO_Field_read(TPFILE,'FMV', XSFV) +CALL IO_Field_read(TPFILE,'INPRT', XINRT) +CALL IO_Field_read(TPFILE,'RVT', XRMVT) +CALL IO_Field_read(TPFILE,'RCT', XRMCT) +CALL IO_Field_read(TPFILE,'RRT', XRMRT) ! ! Lecture des donnees Meso-NH terminee.' ! !* 2.4 Fermeture du fichier Meso-NH. ! -CALL IO_FILE_CLOSE_ll(TPFILE) +CALL IO_File_close(TPFILE) ! ! !* 3. PREPARATION DES DONNEES. @@ -376,8 +376,8 @@ XSSFV(:,:) = XSFV(NSIB:NSIE,NSJB:NSJE) ! IF (IGRILLE.EQ.2) THEN WRITE(YFTURB,'("TURB_LPDM",5I2.2)') ICURAA,ICURMM,ICURJJ,ICURHH,ICURMN - CALL IO_FILE_ADD2LIST(TZFILE,YFTURB,'TXT','WRITE') - CALL IO_FILE_OPEN_ll(TZFILE) + CALL IO_File_add2list(TZFILE,YFTURB,'TXT','WRITE') + CALL IO_File_open(TZFILE) IFTURB = TZFILE%NLU WRITE(UNIT=IFTURB,FMT='(5A12)') "WSTAR ","USTAR ", & "HMIX ","LMO ", & @@ -398,7 +398,7 @@ XSSFV(:,:) = XSFV(NSIB:NSIE,NSJB:NSJE) XSTIMEU(15,15,JK),XSTIMEW(15,15,JK) ENDDO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) ENDIF ! diff --git a/src/MNH/mnh2lpdm_ini.f90 b/src/MNH/mnh2lpdm_ini.f90 index f7d71da91..7c185cfde 100644 --- a/src/MNH/mnh2lpdm_ini.f90 +++ b/src/MNH/mnh2lpdm_ini.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2009-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ######spl SUBROUTINE MNH2LPDM_INI(TPFILE1,TPFILE2,TPLOGFILE,TPGRIDFILE,TPDATEFILE) @@ -33,7 +33,7 @@ USE MODD_CST USE MODD_DIM_n USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT USE MODD_MNH2LPDM USE MODD_PARAMETERS @@ -41,10 +41,9 @@ USE MODD_TIME USE MODD_TIME_n ! USE MODE_DATETIME -USE MODE_FM -USE MODE_FMREAD USE MODE_GRIDPROJ -USE MODE_IO_ll +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MODELN_HANDLER ! USE MODI_INI_CST @@ -100,15 +99,15 @@ CALL GOTO_MODEL(1) ! !* 2.1 Ouverture du fichier Meso-NH. ! -CALL IO_FILE_OPEN_ll(TPFILE1) -CALL IO_FILE_OPEN_ll(TPFILE2) +CALL IO_File_open(TPFILE1) +CALL IO_File_open(TPFILE2) ! ! !* 2.2 Date et heure du modele. ! -CALL IO_READ_FIELD(TPFILE1,'DTEXP',TZDTEXP1) -CALL IO_READ_FIELD(TPFILE1,'DTCUR',TZDTCUR1) -CALL IO_READ_FIELD(TPFILE2,'DTCUR',TZDTCUR2) +CALL IO_Field_read(TPFILE1,'DTEXP',TZDTEXP1) +CALL IO_Field_read(TPFILE1,'DTCUR',TZDTCUR1) +CALL IO_Field_read(TPFILE2,'DTCUR',TZDTCUR2) ! CALL DATETIME_DISTANCE(TZDTEXP1,TZDTCUR1,ZECHEANCE1) CALL DATETIME_DISTANCE(TZDTEXP1,TZDTCUR2,ZECHEANCE2) @@ -164,7 +163,7 @@ NJE=NJU-JPHEXT ! !* 2.4 Nombre de niveaux-verticaux. ! -CALL IO_READ_FIELD(TPFILE1,'KMAX',NKMAX) +CALL IO_Field_read(TPFILE1,'KMAX',NKMAX) !WRITE(IFLOG,*) '%%% MNH2S2_INI Lecture du nombre de niveau OK.' ! NKU = NKMAX+2*JPVEXT @@ -194,17 +193,17 @@ ALLOCATE( XSFV(NIU,NJU)) ! !* 2.6 Decoupage vertical. ! -CALL IO_READ_FIELD(TPFILE1,'ZHAT',XZHAT) -CALL IO_READ_FIELD(TPFILE1,'ZTOP',XZTOP) +CALL IO_Field_read(TPFILE1,'ZHAT',XZHAT) +CALL IO_Field_read(TPFILE1,'ZTOP',XZTOP) ! !* 2.7 Orographie. ! -CALL IO_READ_FIELD(TPFILE1,'ZS',XZS) +CALL IO_Field_read(TPFILE1,'ZS',XZS) ! !* 2.8 Rugosite Z0. ! !PW:TODO: where is this field written? Warning: not in fieldlist => won't be found -CALL IO_READ_FIELD(TPFILE1,'Z0',XZ0) +CALL IO_Field_read(TPFILE1,'Z0',XZ0) ! XXPTSOMNH=XXHAT(1)+(XXHAT(2)-XXHAT(1))/2 XYPTSOMNH=XYHAT(1)+(XYHAT(2)-XYHAT(1))/2 @@ -435,8 +434,8 @@ DEALLOCATE(XZHAT) ! ! Fermeture du fichier Meso-NH. ! -CALL IO_FILE_CLOSE_ll(TPFILE1) -CALL IO_FILE_CLOSE_ll(TPFILE2) +CALL IO_File_close(TPFILE1) +CALL IO_File_close(TPFILE2) ! ! !-------------------------------------------' diff --git a/src/MNH/mnh_surf_grid_io_init.f90 b/src/MNH/mnh_surf_grid_io_init.f90 index 7c87e7fc0..3da201159 100644 --- a/src/MNH/mnh_surf_grid_io_init.f90 +++ b/src/MNH/mnh_surf_grid_io_init.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2015-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2015-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !####################### @@ -43,19 +43,6 @@ MODULE MODI_MNH_SURF_GRID_IO_INIT !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !---------------------------------------------------------------------------- ! - !* 0. DECLARATION - ! ----------- - ! - USE MODE_ll - USE MODE_FM - USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT, JPMODELMAX - USE MODD_CONF, ONLY : CPROGRAM, L1D, L2D, LPACK - ! - USE MODE_SPLITTINGZ_ll - ! - USE MODI_GET_SURF_GRID_DIM_N - USE MODI_GET_LUOUT - ! IMPLICIT NONE ! !* 0.1 Declaration of dummy arguments @@ -105,10 +92,9 @@ END MODULE MODI_MNH_SURF_GRID_IO_INIT ! ----------- ! USE MODE_ll -USE MODE_FM -USE MODE_IO_ll -USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT, JPMODELMAX -USE MODD_CONF, ONLY : CPROGRAM, L1D, L2D, LPACK +USE MODE_IO, only: IO_Pack_set +USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT, JPMODELMAX +USE MODD_CONF, ONLY: CPROGRAM, L1D, L2D, LPACK ! !JUANZ USE MODE_SPLITTINGZ_ll @@ -139,7 +125,7 @@ IF (CPROGRAM=='IDEAL ' .OR. CPROGRAM=='SPAWN ' .OR. CPROGRAM=='REAL ') RETURN L1D=(KIMAX==1).AND.(KJMAX==1) L2D=(KIMAX/=1).AND.(KJMAX==1) LPACK=L1D.OR.L2D -CALL SET_FMPACK_ll(L1D,L2D,LPACK) +CALL IO_Pack_set(L1D,L2D,LPACK) CALL SET_JP_ll(JPMODELMAX,JPHEXT,JPVEXT,JPHEXT) CALL SET_DAD0_ll() CALL SET_DIM_ll(KIMAX, KJMAX, 1) diff --git a/src/MNH/mnhclose_aux_io_surf.f90 b/src/MNH/mnhclose_aux_io_surf.f90 index 6a1b88477..ba818000a 100644 --- a/src/MNH/mnhclose_aux_io_surf.f90 +++ b/src/MNH/mnhclose_aux_io_surf.f90 @@ -50,17 +50,16 @@ END MODULE MODI_MNHCLOSE_AUX_IO_SURF !! Original 09/2003 !! J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! (nsubfiles_ioz is now determined in IO_File_add2list) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ ! +USE MODD_IO_SURF_MNH, ONLY: TPINFILE, CACTION, NMASK_ALL, NMASK +! +USE MODE_IO_FILE, only: IO_File_close USE MODE_ll -USE MODE_FM -USE MODE_IO_ll - -USE MODD_IO_SURF_MNH, ONLY : TPINFILE, CACTION, NMASK_ALL, NMASK ! IMPLICIT NONE ! @@ -79,7 +78,7 @@ INTEGER :: IRESP ! return-code if a problem appears !------------------------------------------------------------------------------- ! IF (CACTION=='OPEN ') THEN - CALL IO_FILE_CLOSE_ll(TPINFILE) + CALL IO_File_close(TPINFILE) CACTION=' ' END IF ! diff --git a/src/MNH/mnhclose_namelist.f90 b/src/MNH/mnhclose_namelist.f90 index 1e7544b0a..824cdb3f0 100644 --- a/src/MNH/mnhclose_namelist.f90 +++ b/src/MNH/mnhclose_namelist.f90 @@ -58,7 +58,7 @@ USE MODD_IO_NAM, ONLY: TNAM USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_LUNIT_n, ONLY: TLUOUT ! -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll +USE MODE_IO_FILE, ONLY: IO_File_close USE MODE_MSG ! IMPLICIT NONE @@ -89,7 +89,7 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','MNHCLOSE_NAMELIST','called for '//TRIM(TNAM%CNA ! ------------------- ! IF (TNAM%NLU==KLUNAM) THEN - CALL IO_FILE_CLOSE_ll(TNAM) + CALL IO_File_close(TNAM) TNAM => NULL() ELSE SELECT CASE(CPROGRAM) diff --git a/src/MNH/mnhclose_write_cover_tex.f90 b/src/MNH/mnhclose_write_cover_tex.f90 index 7415fd379..c041ea0d0 100644 --- a/src/MNH/mnhclose_write_cover_tex.f90 +++ b/src/MNH/mnhclose_write_cover_tex.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################################## @@ -40,10 +40,10 @@ ! ------------ ! USE MODD_CONF, ONLY: CPROGRAM -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME +USE MODE_IO_FILE, ONLY: IO_File_close +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_find_byname ! ! IMPLICIT NONE @@ -68,8 +68,8 @@ TYPE(TFILEDATA),POINTER :: TZFILE TZFILE => NULL() ! IF (TRIM(CPROGRAM)=='PGD') THEN - CALL IO_FILE_FIND_BYNAME(YTEX,TZFILE,IRESP) - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_find_byname(YTEX,TZFILE,IRESP) + CALL IO_File_close(TZFILE) END IF !------------------------------------------------------------------------------- ! diff --git a/src/MNH/mnhend_io_surfn.f90 b/src/MNH/mnhend_io_surfn.f90 index 3e09c9598..6a1d1c034 100644 --- a/src/MNH/mnhend_io_surfn.f90 +++ b/src/MNH/mnhend_io_surfn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################### @@ -52,12 +52,10 @@ END MODULE MODI_MNHEND_IO_SURF_n !* 0. DECLARATIONS ! ------------ ! -USE MODE_ll -USE MODE_FM -USE MODE_IO_ll -! USE MODD_IO_SURF_MNH, ONLY : CACTION, TPINFILE, COUTFILE, NMASK, NMASK_ALL ! +USE MODE_ll +! IMPLICIT NONE ! !* 0.1 Declarations of arguments diff --git a/src/MNH/mnhinit_io_surfn.f90 b/src/MNH/mnhinit_io_surfn.f90 index f242171c8..16fda8024 100644 --- a/src/MNH/mnhinit_io_surfn.f90 +++ b/src/MNH/mnhinit_io_surfn.f90 @@ -66,8 +66,6 @@ USE MODD_LUNIT_n, ONLY: CMASK_SURFEX, TINIFILE, TINIFILEPGD, TLUOUT USE MODD_MNH_SURFEX_n, ONLY: YSURF_CUR USE MODD_PARAMETERS, ONLY: JPHEXT ! -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME USE MODE_ll USE MODE_MODELN_HANDLER ! diff --git a/src/MNH/mnhopen_aux_io_surf.f90 b/src/MNH/mnhopen_aux_io_surf.f90 index 2c4a223fb..262a09b08 100644 --- a/src/MNH/mnhopen_aux_io_surf.f90 +++ b/src/MNH/mnhopen_aux_io_surf.f90 @@ -53,9 +53,9 @@ END MODULE MODI_MNHOPEN_AUX_IO_SURF !! J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files !! J.Escobar : 02/06/2016 : abort MNHOPEN with STOP if problem with OPEN of INPUT/READ file !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! (nsubfiles_ioz is now determined in IO_File_add2list) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -70,10 +70,9 @@ USE MODD_LUNIT, ONLY: TPGDFILE, 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 +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FILE, ONLY: IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list, IO_File_find_byname USE MODE_MSG ! USE MODI_GET_1D_MASK @@ -141,8 +140,8 @@ ELSE END IF ! IF (HFILE/=YFILE .AND. HFILE/=YPGDFILE) THEN - CALL IO_FILE_ADD2LIST(TPINFILE,TRIM(HFILE),'PGD','READ',KLFITYPE=2,KLFIVERB=5,OOLD=.TRUE.) - CALL IO_FILE_OPEN_ll(TPINFILE,KRESP=IRESP) + CALL IO_File_add2list(TPINFILE,TRIM(HFILE),'PGD','READ',KLFITYPE=2,KLFIVERB=5,OOLD=.TRUE.) + CALL IO_File_open(TPINFILE,KRESP=IRESP) ! IF (IRESP .NE. 0) THEN PRINT*," /!\ MNHOPEN_AUX_IO_SURF :: FATAL PROBLEM OPENING INPUT/READ FILES =", HFILE @@ -150,7 +149,7 @@ IF (HFILE/=YFILE .AND. HFILE/=YPGDFILE) THEN ENDIF CACTION = 'OPEN ' ELSE - CALL IO_FILE_FIND_BYNAME(TRIM(HFILE),TPINFILE,IRESP) + CALL IO_File_find_byname(TRIM(HFILE),TPINFILE,IRESP) END IF ! COUTFILE = HFILE @@ -158,11 +157,11 @@ COUTFILE = HFILE ! !* 3. initialisation of 2D arrays for entire physical field ! -CALL IO_READ_FIELD(TPINFILE,'IMAX',IIMAX) -CALL IO_READ_FIELD(TPINFILE,'JMAX',IJMAX) +CALL IO_Field_read(TPINFILE,'IMAX',IIMAX) +CALL IO_Field_read(TPINFILE,'JMAX',IJMAX) CALL MNH_SURF_GRID_IO_INIT(IIMAX,IJMAX) IJPHEXT= 1 -CALL IO_READ_FIELD(TPINFILE,'JPHEXT',IJPHEXT) +CALL IO_Field_read(TPINFILE,'JPHEXT',IJPHEXT) IF ( IJPHEXT .NE. JPHEXT ) THEN WRITE(ILUOUT,FMT=*) ' MNHOPEN_AUX_IO : JPHEXT in PRE_PGD1.nam/NAM_CONF_PGD ( or default value )& & JPHEXT=',JPHEXT diff --git a/src/MNH/mnhopen_namelist.f90 b/src/MNH/mnhopen_namelist.f90 index 7820d3e0d..d594b6e5f 100644 --- a/src/MNH/mnhopen_namelist.f90 +++ b/src/MNH/mnhopen_namelist.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ############################# @@ -57,8 +57,8 @@ END MODULE MODI_MNHOPEN_NAMELIST USE MODD_CONF, ONLY: CPROGRAM USE MODD_IO_NAM, ONLY: TNAM ! -USE MODE_FM, ONLY: IO_FILE_OPEN_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST +USE MODE_IO_FILE, ONLY: IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_MSG ! IMPLICIT NONE @@ -113,8 +113,8 @@ END IF ! CALL PRINT_MSG(NVERB_DEBUG,'IO','MNHOPEN_NAMELIST','called for '//TRIM(YNAM)) ! -CALL IO_FILE_ADD2LIST(TNAM,TRIM(YNAM),'NML','READ',OOLD=.TRUE.) !OOLD=T because the file may already be in list -CALL IO_FILE_OPEN_ll(TNAM) +CALL IO_File_add2list(TNAM,TRIM(YNAM),'NML','READ',OOLD=.TRUE.) !OOLD=T because the file may already be in list +CALL IO_File_open(TNAM) ! KLUNAM = TNAM%NLU ! diff --git a/src/MNH/mnhopen_write_cover_tex.f90 b/src/MNH/mnhopen_write_cover_tex.f90 index 73904aa62..941758e61 100644 --- a/src/MNH/mnhopen_write_cover_tex.f90 +++ b/src/MNH/mnhopen_write_cover_tex.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################################## @@ -40,10 +40,10 @@ ! ------------ ! USE MODD_CONF, ONLY: CPROGRAM -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! -USE MODE_FM, ONLY: IO_FILE_OPEN_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST +USE MODE_IO_FILE, ONLY: IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list ! ! IMPLICIT NONE @@ -67,8 +67,8 @@ TYPE(TFILEDATA),POINTER :: TZFILE TZFILE => NULL() ! IF (TRIM(CPROGRAM)=='PGD') THEN - CALL IO_FILE_ADD2LIST(TZFILE,YTEX,'TXT','WRITE') - CALL IO_FILE_OPEN_ll(TZFILE,HPOSITION='REWIND') + CALL IO_File_add2list(TZFILE,YTEX,'TXT','WRITE') + CALL IO_File_open(TZFILE,HPOSITION='REWIND') KTEX = TZFILE%NLU ELSE KTEX=0 diff --git a/src/MNH/mnhread_zs_dummyn.f90 b/src/MNH/mnhread_zs_dummyn.f90 index 94376de62..eb5eb084a 100644 --- a/src/MNH/mnhread_zs_dummyn.f90 +++ b/src/MNH/mnhread_zs_dummyn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -9,7 +9,7 @@ INTERFACE SUBROUTINE MNHREAD_ZS_DUMMY_n(TPINIFILE) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE !Initial file ! @@ -57,16 +57,16 @@ END MODULE MODI_MNHREAD_ZS_DUMMY_n !* 0. DECLARATIONS ! ------------ ! -USE MODD_GRID_n, ONLY : XZS -USE MODD_GR_FIELD_n, ONLY : XSSO_STDEV, XSSO_ANISOTROPY, XSSO_DIRECTION, XSSO_SLOPE, & - XAVG_ZS, XSIL_ZS, XMIN_ZS, XMAX_ZS -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_PARAM_n, ONLY : CSURF +USE MODD_GRID_n, ONLY: XZS +USE MODD_GR_FIELD_n, ONLY: XSSO_STDEV, XSSO_ANISOTROPY, XSSO_DIRECTION, XSSO_SLOPE, & + XAVG_ZS, XSIL_ZS, XMIN_ZS, XMAX_ZS +USE MODD_IO, ONLY: TFILEDATA +USE MODD_PARAM_n, ONLY: CSURF ! USE MODI_READ_DUMMY_GR_FIELD_n ! USE MODE_ll -USE MODE_FMREAD +USE MODE_IO_FIELD_READ, only: IO_Field_read ! IMPLICIT NONE ! @@ -101,7 +101,7 @@ CALL GET_DIM_EXT_ll('B',IIU,IJU) ! --------- IF (.NOT.(ASSOCIATED(XZS))) THEN ALLOCATE(XZS(IIU,IJU)) - CALL IO_READ_FIELD(TPINIFILE,'ZS',XZS) + CALL IO_Field_read(TPINIFILE,'ZS',XZS) END IF ! IF (CSURF /='EXTE') RETURN @@ -113,28 +113,28 @@ IF (CSURF /='EXTE') RETURN ! -------------------------- ! IF (.NOT.(ASSOCIATED(XSSO_ANISOTROPY))) ALLOCATE(XSSO_ANISOTROPY(IIU,IJU)) -CALL IO_READ_FIELD(TPINIFILE,'SSO_ANIS',XSSO_ANISOTROPY(:,:)) +CALL IO_Field_read(TPINIFILE,'SSO_ANIS',XSSO_ANISOTROPY(:,:)) ! IF (.NOT.(ASSOCIATED(XSSO_SLOPE))) ALLOCATE(XSSO_SLOPE(IIU,IJU)) -CALL IO_READ_FIELD(TPINIFILE,'SSO_SLOPE',XSSO_SLOPE(:,:)) +CALL IO_Field_read(TPINIFILE,'SSO_SLOPE',XSSO_SLOPE(:,:)) ! IF (.NOT.(ASSOCIATED(XSSO_DIRECTION))) ALLOCATE(XSSO_DIRECTION(IIU,IJU)) -CALL IO_READ_FIELD(TPINIFILE,'SSO_DIR',XSSO_DIRECTION(:,:)) +CALL IO_Field_read(TPINIFILE,'SSO_DIR',XSSO_DIRECTION(:,:)) ! IF (.NOT.(ASSOCIATED(XAVG_ZS))) ALLOCATE(XAVG_ZS(IIU,IJU)) -CALL IO_READ_FIELD(TPINIFILE,'AVG_ZS',XAVG_ZS(:,:)) +CALL IO_Field_read(TPINIFILE,'AVG_ZS',XAVG_ZS(:,:)) ! IF (.NOT.(ASSOCIATED(XSIL_ZS))) ALLOCATE(XSIL_ZS(IIU,IJU)) -CALL IO_READ_FIELD(TPINIFILE,'SIL_ZS',XSIL_ZS(:,:)) +CALL IO_Field_read(TPINIFILE,'SIL_ZS',XSIL_ZS(:,:)) ! IF (.NOT.(ASSOCIATED(XMAX_ZS))) ALLOCATE(XMAX_ZS(IIU,IJU)) -CALL IO_READ_FIELD(TPINIFILE,'MAX_ZS',XMAX_ZS(:,:)) +CALL IO_Field_read(TPINIFILE,'MAX_ZS',XMAX_ZS(:,:)) ! IF (.NOT.(ASSOCIATED(XMIN_ZS))) ALLOCATE(XMIN_ZS(IIU,IJU)) -CALL IO_READ_FIELD(TPINIFILE,'MIN_ZS',XMIN_ZS(:,:)) +CALL IO_Field_read(TPINIFILE,'MIN_ZS',XMIN_ZS(:,:)) ! IF (.NOT.(ASSOCIATED(XSSO_STDEV))) ALLOCATE(XSSO_STDEV(IIU,IJU)) -CALL IO_READ_FIELD(TPINIFILE,'SSO_STDEV',XSSO_STDEV(:,:)) +CALL IO_Field_read(TPINIFILE,'SSO_STDEV',XSSO_STDEV(:,:)) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/mnhwrite_zs_dummyn.f90 b/src/MNH/mnhwrite_zs_dummyn.f90 index 708cf971d..29392ec2b 100644 --- a/src/MNH/mnhwrite_zs_dummyn.f90 +++ b/src/MNH/mnhwrite_zs_dummyn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################## @@ -9,7 +9,7 @@ INTERFACE SUBROUTINE MNHWRITE_ZS_DUMMY_n(TPFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics ! @@ -57,15 +57,15 @@ END MODULE MODI_MNHWRITE_ZS_DUMMY_n !* 0. DECLARATIONS ! ------------ ! -USE MODD_GR_FIELD_n, ONLY : XSSO_STDEV, XSSO_ANISOTROPY, XSSO_DIRECTION, XSSO_SLOPE, & - XAVG_ZS, XSIL_ZS, XMIN_ZS, XMAX_ZS +USE MODD_GR_FIELD_n, ONLY: XSSO_STDEV, XSSO_ANISOTROPY, XSSO_DIRECTION, XSSO_SLOPE, & + XAVG_ZS, XSIL_ZS, XMIN_ZS, XMAX_ZS ! -USE MODD_PARAM_n, ONLY : CSURF -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_PARAM_n, ONLY: CSURF +USE MODD_IO, ONLY: TFILEDATA ! USE MODI_WRITE_DUMMY_GR_FIELD_n ! -USE MODE_FMWRIT +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! IMPLICIT NONE ! @@ -92,14 +92,14 @@ IF (CSURF /='EXTE') RETURN !* 2. Orographic characteristics : ! -------------------------- ! -CALL IO_WRITE_FIELD(TPFILE,'SSO_ANIS', XSSO_ANISOTROPY) -CALL IO_WRITE_FIELD(TPFILE,'SSO_SLOPE',XSSO_SLOPE) -CALL IO_WRITE_FIELD(TPFILE,'SSO_DIR', XSSO_DIRECTION) -CALL IO_WRITE_FIELD(TPFILE,'AVG_ZS', XAVG_ZS) -CALL IO_WRITE_FIELD(TPFILE,'SIL_ZS', XSIL_ZS) -CALL IO_WRITE_FIELD(TPFILE,'MAX_ZS', XMAX_ZS) -CALL IO_WRITE_FIELD(TPFILE,'MIN_ZS', XMIN_ZS) -CALL IO_WRITE_FIELD(TPFILE,'SSO_STDEV',XSSO_STDEV) +CALL IO_Field_write(TPFILE,'SSO_ANIS', XSSO_ANISOTROPY) +CALL IO_Field_write(TPFILE,'SSO_SLOPE',XSSO_SLOPE) +CALL IO_Field_write(TPFILE,'SSO_DIR', XSSO_DIRECTION) +CALL IO_Field_write(TPFILE,'AVG_ZS', XAVG_ZS) +CALL IO_Field_write(TPFILE,'SIL_ZS', XSIL_ZS) +CALL IO_Field_write(TPFILE,'MAX_ZS', XMAX_ZS) +CALL IO_Field_write(TPFILE,'MIN_ZS', XMIN_ZS) +CALL IO_Field_write(TPFILE,'SSO_STDEV',XSSO_STDEV) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/modd_ch_model0d.f90 b/src/MNH/modd_ch_model0d.f90 index f55a168be..0dd1a92ad 100644 --- a/src/MNH/modd_ch_model0d.f90 +++ b/src/MNH/modd_ch_model0d.f90 @@ -43,7 +43,7 @@ !* 0. DECLARATIONS ! ----------------- ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! IMPLICIT NONE SAVE diff --git a/src/MNH/modd_io_nam.f90 b/src/MNH/modd_io_nam.f90 index 8c4a8e628..e5249d0d4 100644 --- a/src/MNH/modd_io_nam.f90 +++ b/src/MNH/modd_io_nam.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################### @@ -31,7 +31,7 @@ !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! IMPLICIT NONE !------------------------------------------------------------------------------ diff --git a/src/MNH/modd_io_surf_mnh.f90 b/src/MNH/modd_io_surf_mnh.f90 index dffcc6bc7..635f6b6ed 100644 --- a/src/MNH/modd_io_surf_mnh.f90 +++ b/src/MNH/modd_io_surf_mnh.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################## @@ -32,7 +32,7 @@ ! !* 0. DECLARATIONS ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS, ONLY: JPMODELMAX IMPLICIT NONE diff --git a/src/MNH/modd_lunit.f90 b/src/MNH/modd_lunit.f90 index a409e852d..d19cf3d35 100644 --- a/src/MNH/modd_lunit.f90 +++ b/src/MNH/modd_lunit.f90 @@ -38,7 +38,7 @@ !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! IMPLICIT NONE ! diff --git a/src/MNH/modd_lunitn.f90 b/src/MNH/modd_lunitn.f90 index 9462e7bbf..4ac4a5c31 100644 --- a/src/MNH/modd_lunitn.f90 +++ b/src/MNH/modd_lunitn.f90 @@ -42,7 +42,7 @@ ! ------------ ! ! -USE MODD_IO_ll, ONLY: TFILEDATA, TPTR2FILE +USE MODD_IO, ONLY: TFILEDATA, TPTR2FILE USE MODD_PARAMETERS, ONLY: JPMODELMAX, JPCPLFILEMAX IMPLICIT NONE @@ -82,7 +82,7 @@ CONTAINS SUBROUTINE LUNIT_GOTO_MODEL(KFROM, KTO) ! -USE MODD_IO_ll, ONLY : TFILE_OUTPUTLISTING +USE MODD_IO, ONLY : TFILE_OUTPUTLISTING ! INTEGER, INTENT(IN) :: KFROM, KTO ! diff --git a/src/MNH/modd_outn.f90 b/src/MNH/modd_outn.f90 index 0dceb304a..7a3ff7e78 100644 --- a/src/MNH/modd_outn.f90 +++ b/src/MNH/modd_outn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################ @@ -39,7 +39,7 @@ ! ! USE MODD_PARAMETERS, ONLY: JPMODELMAX, JPOUTMAX -USE MODD_IO_ll, ONLY:TOUTBAK +USE MODD_IO, ONLY: TOUTBAK IMPLICIT NONE TYPE OUT_t diff --git a/src/MNH/mode_les_diachro.f90 b/src/MNH/mode_les_diachro.f90 index 462859ff0..3e07a46f6 100644 --- a/src/MNH/mode_les_diachro.f90 +++ b/src/MNH/mode_les_diachro.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! Modifications @@ -726,7 +726,7 @@ END SUBROUTINE LES_TIME_AVG SUBROUTINE LES_DIACHRO(TPDIAFILE,HGROUP,HCOMMENT,HUNIT,PFIELD,HAVG) !######################################################## ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_GRID USE MODI_WRITE_DIACHRO @@ -854,7 +854,7 @@ END SUBROUTINE LES_DIACHRO SUBROUTINE LES_DIACHRO_SV(TPDIAFILE,HGROUP,HCOMMENT,HUNIT,PFIELD,HAVG) !########################################################### ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_GRID USE MODI_WRITE_DIACHRO @@ -980,7 +980,7 @@ END SUBROUTINE LES_DIACHRO_SV SUBROUTINE LES_DIACHRO_MASKS(TPDIAFILE,HGROUP,HTITLE,HCOMMENT,HUNIT,PFIELD,HAVG) !##################################################################### ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_GRID USE MODI_WRITE_DIACHRO @@ -1111,7 +1111,7 @@ END SUBROUTINE LES_DIACHRO_MASKS SUBROUTINE LES_DIACHRO_SV_MASKS(TPDIAFILE,HGROUP,HTITLE,HCOMMENT,HUNIT,PFIELD,HAVG) !######################################################################## ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_GRID USE MODI_WRITE_DIACHRO @@ -1247,7 +1247,7 @@ END SUBROUTINE LES_DIACHRO_SV_MASKS SUBROUTINE LES_DIACHRO_SURF(TPDIAFILE,HGROUP,HCOMMENT,HUNIT,PFIELD,HAVG) !############################################################# ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_GRID USE MODI_WRITE_DIACHRO @@ -1361,7 +1361,7 @@ END SUBROUTINE LES_DIACHRO_SURF SUBROUTINE LES_DIACHRO_SURF_SV(TPDIAFILE,HGROUP,HCOMMENT,HUNIT,PFIELD,HAVG) !################################################################ ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_GRID USE MODI_WRITE_DIACHRO @@ -1479,7 +1479,7 @@ SUBROUTINE LES_DIACHRO_2PT(TPDIAFILE,HGROUP,HCOMMENT,HUNIT,PFIELDX,PFIELDY,HAVG) !* Modification 01/04/03 (V. Masson) safer use of ZWORK6 with loops ! ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_GRID USE MODD_CONF @@ -1638,7 +1638,7 @@ SUBROUTINE LES_DIACHRO_SPEC(TPDIAFILE,HGROUP,HCOMMENT,HUNIT,PSPECTRAX,PSPECTRAY) !* Modification 01/04/03 (V. Masson) safer use of ZWORK6 with loops ! ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_GRID USE MODD_CONF diff --git a/src/MNH/mode_time.f90 b/src/MNH/mode_time.f90 index 1ac45c254..0f71113f9 100644 --- a/src/MNH/mode_time.f90 +++ b/src/MNH/mode_time.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -39,7 +39,7 @@ !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_TIME ! IMPLICIT NONE diff --git a/src/MNH/modeln.f90 b/src/MNH/modeln.f90 index bece43011..62c57bede 100644 --- a/src/MNH/modeln.f90 +++ b/src/MNH/modeln.f90 @@ -62,7 +62,7 @@ END MODULE MODI_MODEL_n !! !! EXTERNAL !! -------- -!! Subroutine IO_FILE_OPEN_ll: to open a file +!! Subroutine IO_File_open: to open a file !! Subroutine WRITE_DESFM: to write the descriptive part of a FMfile !! Subroutine WRITE_LFIFM: to write the binary part of a FMfile !! Subroutine SET_MASK : to compute all the masks selected for budget @@ -89,7 +89,7 @@ END MODULE MODI_MODEL_n !! compute the large scale fields, used to !! couple Model_n with outer informations. !! Subroutine ENDSTEP_BUDGET: writes the budget informations. -!! Subroutine IO_FILE_CLOSE_ll: closes a file +!! Subroutine IO_File_close: closes a file !! Subroutine DATETIME_CORRECTDATE: transform the current time in GMT !! Subroutine FORCING : computes forcing terms !! Subroutine ADD3DFIELD_ll : add a field to 3D-list @@ -254,7 +254,7 @@ END MODULE MODI_MODEL_n !! Philippe Wautelet: 21/01/2019: add LIO_ALLOW_NO_BACKUP and LIO_NO_WRITE to modd_io_ll ! to allow to disable writes (for bench purposes) ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! (nsubfiles_ioz is now determined in IO_File_add2list) !!------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -293,7 +293,7 @@ USE MODD_GET_n USE MODD_GRID, ONLY: XLONORI,XLATORI USE MODD_GRID_n USE MODD_ICE_C1R3_DESCR, ONLY: XRTMIN_C1R3=>XRTMIN -USE MODD_IO_ll, ONLY: LIO_NO_WRITE, TFILEDATA,TFILE_SURFEX,TFILE_DUMMY +USE MODD_IO, ONLY: LIO_NO_WRITE, TFILEDATA, TFILE_SURFEX, TFILE_DUMMY USE MODD_LBC_n USE MODD_LES USE MODD_LES_BUDGET @@ -318,7 +318,7 @@ USE MODD_PARAM_LIMA, ONLY: MSEDC => LSEDC, MWARM => LWARM, MRAIN => LRAIN, L MSEDI => LSEDI, MHHONI => LHHONI, NMOD_IFN, LHAIL, & XRTMIN_LIMA=>XRTMIN, MACTTKE=>LACTTKE USE MODD_BLOWSNOW_n -USE MODD_BLOWSNOW +USE MODD_BLOWSNOW USE MODD_PARAM_MFSHALL_n USE MODD_PARAM_n USE MODD_PAST_FIELD_n @@ -340,19 +340,19 @@ USE MODD_TURB_n ! USE MODE_DATETIME USE MODE_ELEC_ll -USE MODE_FM -USE MODE_GRIDCART +USE MODE_GRIDCART USE MODE_GRIDPROJ -USE MODE_IO_ll -USE MODE_IO_WRITE_FIELD +USE MODE_IO_FIELD_WRITE, only: IO_Field_user_write, IO_Fieldlist_write, IO_Header_write +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list USE MODE_ll USE MODE_MNH_TIMING USE MODE_MODELN_HANDLER USE MODE_MPPDB ! USE MODI_ADVECTION_METSV -USE MODI_ADVECTION_UVW -USE MODI_ADVECTION_UVW_CEN +USE MODI_ADVECTION_UVW +USE MODI_ADVECTION_UVW_CEN USE MODI_ADV_FORCING_n USE MODI_AER_MONITOR_n USE MODI_AIRCRAFT_BALLOON @@ -370,7 +370,7 @@ USE MODI_FORCING USE MODI_FORC_SQUALL_LINE USE MODI_FORC_WIND USE MODI_GET_HALO -USE MODI_GRAVITY_IMPL +USE MODI_GRAVITY_IMPL USE MODI_INI_DIAG_IN_RUN USE MODI_INI_LG USE MODI_INI_MEAN_FIELD @@ -635,9 +635,9 @@ IF (KTCOUNT == 1) THEN IOUT=0 ! IF ( .NOT. LIO_NO_WRITE ) THEN - CALL IO_FILE_OPEN_ll(TDIAFILE) + CALL IO_File_open(TDIAFILE) ! - CALL IO_WRITE_HEADER(TDIAFILE) + CALL IO_Header_write(TDIAFILE) CALL WRITE_DESFM_n(IMI,TDIAFILE) CALL WRITE_LFIFMN_FORDIACHRO_n(TDIAFILE) END IF @@ -946,10 +946,10 @@ IF (IBAK < NBAK_NUMB ) THEN TZBAKFILE => TBACKUPN(IBAK)%TFILE IVERB = TZBAKFILE%NLFIVERB ! - CALL IO_FILE_OPEN_ll(TZBAKFILE) + CALL IO_File_open(TZBAKFILE) ! CALL WRITE_DESFM_n(IMI,TZBAKFILE) - CALL IO_WRITE_HEADER(TBACKUPN(IBAK)%TFILE) + CALL IO_Header_write(TBACKUPN(IBAK)%TFILE) CALL WRITE_LFIFM_n(TBACKUPN(IBAK)%TFILE,TBACKUPN(IBAK)%TFILE%TDADFILE%CNAME) TOUTDATAFILE => TZBAKFILE CALL MNHWRITE_ZS_DUMMY_n(TZBAKFILE) @@ -989,13 +989,13 @@ IF (IOUT < NOUT_NUMB ) THEN ! TZOUTFILE => TOUTPUTN(IOUT)%TFILE ! - CALL IO_FILE_OPEN_ll(TZOUTFILE) + CALL IO_File_open(TZOUTFILE) ! - CALL IO_WRITE_HEADER(TZOUTFILE) - CALL IO_WRITE_FIELDLIST(TOUTPUTN(IOUT)) - CALL IO_WRITE_FIELD_USER(TOUTPUTN(IOUT)) + CALL IO_Header_write(TZOUTFILE) + CALL IO_Fieldlist_write(TOUTPUTN(IOUT)) + CALL IO_Field_user_write(TOUTPUTN(IOUT)) ! - CALL IO_FILE_CLOSE_ll(TZOUTFILE) + CALL IO_File_close(TZOUTFILE) ! END IF END IF @@ -2073,7 +2073,7 @@ XT_STEP_BUD = XT_STEP_BUD + ZTIME2 - ZTIME1 + XTIME_BU ! IF (GCLOSE_OUT) THEN GCLOSE_OUT=.FALSE. - CALL IO_FILE_CLOSE_ll(TZBAKFILE) + CALL IO_File_close(TZBAKFILE) END IF ! !------------------------------------------------------------------------------- @@ -2109,11 +2109,11 @@ IF (OEXIT) THEN CALL WRITE_LES_n(TDIAFILE,'E') CALL WRITE_LES_n(TDIAFILE,'H') CALL MENU_DIACHRO(TDIAFILE,'END') - CALL IO_FILE_CLOSE_ll(TDIAFILE) + CALL IO_File_close(TDIAFILE) END IF ! - CALL IO_FILE_CLOSE_ll(TINIFILE) - IF (CSURF=="EXTE") CALL IO_FILE_CLOSE_ll(TINIFILEPGD) + CALL IO_File_close(TINIFILE) + IF (CSURF=="EXTE") CALL IO_File_close(TINIFILEPGD) ! !* 28.1 print statistics! ! @@ -2228,8 +2228,8 @@ IF (OEXIT) THEN ! ! ! - CALL IO_FILE_CLOSE_ll(TLUOUT) - IF (IMI==NMODEL) CALL IO_FILE_CLOSE_ll(TLUOUT0) + CALL IO_File_close(TLUOUT) + IF (IMI==NMODEL) CALL IO_File_close(TLUOUT0) END IF ! END SUBROUTINE MODEL_n diff --git a/src/MNH/modules_diachro.f90 b/src/MNH/modules_diachro.f90 index 2dd05edff..75fafa132 100644 --- a/src/MNH/modules_diachro.f90 +++ b/src/MNH/modules_diachro.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! Modifications: @@ -13,7 +13,7 @@ INTERFACE ! SUBROUTINE MENU_DIACHRO(TPDIAFILE,HGROUP) -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write CHARACTER(LEN=*), INTENT(IN) :: HGROUP @@ -31,7 +31,7 @@ END MODULE MODI_MENU_DIACHRO INTERFACE ! SUBROUTINE WRITE_LFIFMN_FORDIACHRO_n(TPFILE) -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA TYPE(TFILEDATA),INTENT(IN) :: TPFILE END SUBROUTINE WRITE_LFIFMN_FORDIACHRO_n ! @@ -49,7 +49,7 @@ SUBROUTINE WRITE_DIACHRO(TPDIAFILE,TPLUOUTDIA,HGROUP,HTYPE, & HTITRE,HUNITE,HCOMMENT,OICP,OJCP,OKCP,KIL,KIH,KJL,KJH,KKL,KKH, & PTRAJX,PTRAJY,PTRAJZ,PMASK) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write TYPE(TFILEDATA), INTENT(IN) :: TPLUOUTDIA diff --git a/src/MNH/open_file_mnh.f90 b/src/MNH/open_file_mnh.f90 index 8762e066e..4a0539ec7 100644 --- a/src/MNH/open_file_mnh.f90 +++ b/src/MNH/open_file_mnh.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2003-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################### @@ -59,8 +59,8 @@ END MODULE MODI_OPEN_FILE_MNH ! USE MODD_IO_NAM, ONLY: TFILE ! -USE MODE_FM, ONLY: IO_FILE_OPEN_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST +USE MODE_IO_FILE, ONLY: IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_MSG ! IMPLICIT NONE @@ -84,10 +84,10 @@ INTEGER :: IRESP ! CALL PRINT_MSG(NVERB_DEBUG,'IO','OPEN_FILE_MNH','called for '//TRIM(HFILE)) ! -CALL IO_FILE_ADD2LIST(TFILE,TRIM(HFILE),'SURFACE_DATA',HACTION, & +CALL IO_File_add2list(TFILE,TRIM(HFILE),'SURFACE_DATA',HACTION, & HFORM=HFORM,HACCESS=HACCESS,KRECL=KRECL, & OOLD=.TRUE.) !OOLD=T because the file may already be in list -CALL IO_FILE_OPEN_ll(TFILE) +CALL IO_File_open(TFILE) ! KUNIT = TFILE%NLU ! diff --git a/src/MNH/open_nestpgd_files.f90 b/src/MNH/open_nestpgd_files.f90 index 18d8f5f51..d331134d6 100644 --- a/src/MNH/open_nestpgd_files.f90 +++ b/src/MNH/open_nestpgd_files.f90 @@ -10,7 +10,7 @@ MODULE MODI_OPEN_NESTPGD_FILES INTERFACE SUBROUTINE OPEN_NESTPGD_FILES(TPFILEPGD,TPFILENESTPGD) ! -USE MODD_IO_ll, ONLY : TPTR2FILE +USE MODD_IO, ONLY : TPTR2FILE ! TYPE(TPTR2FILE),DIMENSION(:),ALLOCATABLE, INTENT(OUT) :: TPFILEPGD ! Input PGD files TYPE(TPTR2FILE),DIMENSION(:),ALLOCATABLE,TARGET,INTENT(OUT) :: TPFILENESTPGD ! Output PGD files @@ -67,35 +67,32 @@ END MODULE MODI_OPEN_NESTPGD_FILES !! J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files !! P.Wautelet : 08/07/2016 : removed MNH_NCWRIT define !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! (nsubfiles_ioz is now determined in IO_File_add2list) ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS ! ------------ ! +USE MODD_CONF +USE MODD_CONF, ONLY: NHALO_CONF_MNH => NHALO +USE MODD_IO, ONLY: TFILE_OUTPUTLISTING, TFILEDATA, TPTR2FILE USE MODD_LUNIT USE MODD_LUNIT_n -USE MODD_CONF USE MODD_NESTING USE MODD_PARAMETERS -USE MODD_IO_ll, ONLY : TFILE_OUTPUTLISTING,TFILEDATA,TPTR2FILE -! -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST -USE MODE_FM, ONLY : IO_FILE_OPEN_ll, IO_FILE_CLOSE_ll -USE MODE_POS -USE MODE_MSG ! +USE MODE_IO, ONLY: IO_Config_set +USE MODE_IO_FILE, ONLY: IO_File_open, IO_File_close +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_MODELN_HANDLER -! -USE MODD_PARAMETERS, ONLY : JPHEXT -USE MODD_CONF, ONLY : NHALO_CONF_MNH => NHALO +USE MODE_MSG +USE MODE_POS ! USE MODN_CONFZ -USE MODN_CONFIO, ONLY : NAM_CONFIO +USE MODN_CONFIO, ONLY: NAM_CONFIO ! IMPLICIT NONE ! @@ -159,8 +156,8 @@ HPRE_NEST_PGD='PRE_NEST_PGD1.nam' !* 2. OPENING OF TLUOUT0 ! ------------------ ! -CALL IO_FILE_ADD2LIST(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') -CALL IO_FILE_OPEN_ll(TLUOUT0) +CALL IO_File_add2list(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') +CALL IO_File_open(TLUOUT0) !Set output file for PRINT_MSG TFILE_OUTPUTLISTING => TLUOUT0 ! @@ -171,8 +168,8 @@ ILUOUT0=TLUOUT0%NLU !* 3. OPENNING OF PRE_NEST_PGD1.nam ! ----------------------------- ! -CALL IO_FILE_ADD2LIST(TZPRE_NEST_PGD,TRIM(HPRE_NEST_PGD),'NML','READ') -CALL IO_FILE_OPEN_ll(TZPRE_NEST_PGD) +CALL IO_File_add2list(TZPRE_NEST_PGD,TRIM(HPRE_NEST_PGD),'NML','READ') +CALL IO_File_open(TZPRE_NEST_PGD) IPRE_NEST_PGD = TZPRE_NEST_PGD%NLU !reading of NAM_CONFZ CALL POSNAM(IPRE_NEST_PGD,'NAM_CONFZ',GFOUND) @@ -285,8 +282,8 @@ END DO ! DO JPGD=1,NMODEL WRITE(YLUOUT,'("OUTPUT_LISTING",I0)') JPGD - CALL IO_FILE_ADD2LIST(LUNIT_MODEL(JPGD)%TLUOUT,YLUOUT,'OUTPUTLISTING','WRITE') - CALL IO_FILE_OPEN_ll(LUNIT_MODEL(JPGD)%TLUOUT) + CALL IO_File_add2list(LUNIT_MODEL(JPGD)%TLUOUT,YLUOUT,'OUTPUTLISTING','WRITE') + CALL IO_File_open(LUNIT_MODEL(JPGD)%TLUOUT) END DO ! !------------------------------------------------------------------------------- @@ -299,26 +296,26 @@ IF (GFOUND) READ(UNIT=IPRE_NEST_PGD,NML=NAM_NEST_PGD) ! CALL POSNAM(IPRE_NEST_PGD,'NAM_CONFIO',GFOUND,ILUOUT0) IF (GFOUND) READ(UNIT=IPRE_NEST_PGD,NML=NAM_CONFIO) -CALL SET_CONFIO_ll() +CALL IO_Config_set() ! ALLOCATE(TPFILEPGD (NMODEL)) ALLOCATE(TPFILENESTPGD(NMODEL)) ! DO JPGD=1,NMODEL - CALL IO_FILE_ADD2LIST(TPFILEPGD(JPGD)%TZFILE,TRIM(YPGD(JPGD)),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_add2list(TPFILEPGD(JPGD)%TZFILE,TRIM(YPGD(JPGD)),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) ! IF (NDAD(JPGD)>=1) THEN TZDADFILE => TPFILENESTPGD(NDAD(JPGD))%TZFILE - CALL IO_FILE_ADD2LIST(TPFILENESTPGD(JPGD)%TZFILE,TRIM(YPGD(JPGD))//'.nest'//ADJUSTL(YNEST),'PGD', & + CALL IO_File_add2list(TPFILENESTPGD(JPGD)%TZFILE,TRIM(YPGD(JPGD))//'.nest'//ADJUSTL(YNEST),'PGD', & 'WRITE',KLFITYPE=1,KLFIVERB=NVERB,KMODEL=JPGD,TPDADFILE=TZDADFILE) ELSE NULLIFY(TZDADFILE) - CALL IO_FILE_ADD2LIST(TPFILENESTPGD(JPGD)%TZFILE,TRIM(YPGD(JPGD))//'.nest'//ADJUSTL(YNEST),'PGD', & + CALL IO_File_add2list(TPFILENESTPGD(JPGD)%TZFILE,TRIM(YPGD(JPGD))//'.nest'//ADJUSTL(YNEST),'PGD', & 'WRITE',KLFITYPE=1,KLFIVERB=NVERB,KMODEL=JPGD) END IF END DO ! -CALL IO_FILE_CLOSE_ll(TZPRE_NEST_PGD) +CALL IO_File_close(TZPRE_NEST_PGD) !------------------------------------------------------------------------------- ! !* 7. OPENING OF INPUT PGD FILES @@ -327,7 +324,7 @@ CALL IO_FILE_CLOSE_ll(TZPRE_NEST_PGD) !Remark: output PGD files are opened later when the mesh dimensions are known ! DO JPGD=1,NMODEL - CALL IO_FILE_OPEN_ll(TPFILEPGD(JPGD)%TZFILE) + CALL IO_File_open(TPFILEPGD(JPGD)%TZFILE) END DO ! !------------------------------------------------------------------------------- diff --git a/src/MNH/open_prc_files.f90 b/src/MNH/open_prc_files.f90 index 42cee97ca..bb02f6951 100644 --- a/src/MNH/open_prc_files.f90 +++ b/src/MNH/open_prc_files.f90 @@ -13,7 +13,7 @@ INTERFACE HSURFFILE,HSURFFILETYPE, & HPGDFILE,TPPGDFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA),POINTER, INTENT(OUT) :: TPPRE_REAL1FILE ! PRE_REAL1 file CHARACTER(LEN=28), INTENT(OUT) :: HATMFILE ! name of the input atmospheric file @@ -91,9 +91,9 @@ END MODULE MODI_OPEN_PRC_FILES !! J.Escobar : 19/04/2016 : Pb IOZ/NETCDF , missing OPARALLELIO=.FALSE. for PGD files !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! P. Wautelet 01/02/2019 added missing initialization to NULL for files with OUT intent -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! (nsubfiles_ioz is now determined in IO_File_add2list) ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! @@ -105,16 +105,16 @@ USE MODD_CONF_n !JUAN Z_SPLITTING !USE MODD_CONFZ !JUAN Z_SPLITTING -USE MODD_IO_ll, ONLY: TFILE_OUTPUTLISTING,TFILEDATA +USE MODD_IO, ONLY: TFILE_OUTPUTLISTING, TFILEDATA USE MODD_LUNIT USE MODD_LUNIT_n, CINIFILE_n=>CINIFILE , CINIFILEPGD_n=>CINIFILEPGD ! ! -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST -USE MODE_POS -USE MODE_FM -USE MODE_IO_ll +USE MODE_IO, only: IO_Config_set +USE MODE_IO_FILE, only: IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list USE MODE_MSG +USE MODE_POS ! USE MODN_CONFIO, ONLY : NAM_CONFIO !JUAN Z_SPLITTING @@ -171,8 +171,8 @@ HSURFFILETYPE='MESONH' !* 2. OPENNING OF THE OUTPUT LISTING FILE ! ----------------------------------- ! -CALL IO_FILE_ADD2LIST(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') -CALL IO_FILE_OPEN_ll(TLUOUT0) +CALL IO_File_add2list(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') +CALL IO_File_open(TLUOUT0) !Set output file for PRINT_MSG TFILE_OUTPUTLISTING => TLUOUT0 ! @@ -185,8 +185,8 @@ IF (NVERB>=5) WRITE(ILUOUT0,*) 'Routine OPEN_PRC_FILES started' ! ------------------------- ! TPPRE_REAL1FILE => NULL() -CALL IO_FILE_ADD2LIST(TPPRE_REAL1FILE,'PRE_REAL1.nam','NML','READ') -CALL IO_FILE_OPEN_ll(TPPRE_REAL1FILE,KRESP=IRESP) +CALL IO_File_add2list(TPPRE_REAL1FILE,'PRE_REAL1.nam','NML','READ') +CALL IO_File_open(TPPRE_REAL1FILE,KRESP=IRESP) IPRE_REAL1=TPPRE_REAL1FILE%NLU IF (IRESP.NE.0 ) THEN !callabortstop @@ -204,7 +204,7 @@ IF (GFOUND) READ(UNIT=IPRE_REAL1,NML=NAM_CONFZ) !JUANZ CALL POSNAM(IPRE_REAL1,'NAM_CONFIO',GFOUND,ILUOUT0) IF (GFOUND) READ(UNIT=IPRE_REAL1,NML=NAM_CONFIO) -CALL SET_CONFIO_ll() +CALL IO_Config_set() ! CINIFILE = CINIFILE_n CALL POSNAM(IPRE_REAL1,'NAM_FILE_NAMES',GFOUND,ILUOUT0) @@ -271,8 +271,8 @@ ELSE ! ----------------------------------- ! TPPGDFILE => NULL() - CALL IO_FILE_ADD2LIST(TPPGDFILE,TRIM(HPGDFILE),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TPPGDFILE,IRESP) + CALL IO_File_add2list(TPPGDFILE,TRIM(HPGDFILE),'PGD','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_open(TPPGDFILE,IRESP) IF (IRESP/=0) THEN !callabortstop CALL PRINT_MSG(NVERB_FATAL,'GEN','OPEN_PRC_FILES',' problem during opening of PGD file '//TRIM(HPGDFILE)) diff --git a/src/MNH/paspol.f90 b/src/MNH/paspol.f90 index 4cab8bd6b..1fee61de9 100644 --- a/src/MNH/paspol.f90 +++ b/src/MNH/paspol.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######spl MODULE MODI_PASPOL ! ################## @@ -10,7 +11,7 @@ INTERFACE ! SUBROUTINE PASPOL (PTSTEP, PSFSV, KLUOUT, KVERB, OCLOSE_OUT, TPFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! IMPLICIT NONE ! @@ -67,7 +68,7 @@ END MODULE MODI_PASPOL USE MODD_PARAMETERS USE MODD_NSV USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODE_GRIDPROJ USE MODD_PASPOL USE MODD_CTURB @@ -75,9 +76,8 @@ USE MODI_SHUMAN USE MODI_GRADIENT_U USE MODI_GRADIENT_V USE MODI_GRADIENT_M -USE MODE_FMWRIT +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll -USE MODE_FM USE MODD_ARGSLIST_ll, ONLY : LIST_ll USE MODD_DYN_n USE MODD_CONF @@ -591,7 +591,7 @@ IF (OCLOSE_OUT) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','ATC',JSV+NSV_PPBEG-1 ! - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTEMPO) + CALL IO_Field_write(TPFILE,TZFIELD,ZTEMPO) END DO ! DEALLOCATE(ZTEMPO) diff --git a/src/MNH/pgd_grid_io_init_mnh.f90 b/src/MNH/pgd_grid_io_init_mnh.f90 index e7e416226..202333f7d 100644 --- a/src/MNH/pgd_grid_io_init_mnh.f90 +++ b/src/MNH/pgd_grid_io_init_mnh.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2004-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !####################### @@ -59,19 +59,6 @@ MODULE MODI_PGD_GRID_IO_INIT_MNH ! USE MODD_SURF_ATM_GRID_n, ONLY : SURF_ATM_GRID_t ! - USE MODE_ll - USE MODE_FM - USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT, JPMODELMAX - USE MODD_CONF, ONLY : CPROGRAM, L1D, L2D, LPACK - ! - USE MODE_IO_ll - !JUANZ - USE MODE_SPLITTINGZ_ll - !JUANZ - ! - USE MODI_GET_SURF_GRID_DIM_N - USE MODI_GET_LUOUT - ! IMPLICIT NONE ! !* 0.1 Declaration of dummy arguments @@ -140,22 +127,19 @@ END MODULE MODI_PGD_GRID_IO_INIT_MNH !* 0. DECLARATION ! ----------- ! -USE MODD_SURF_ATM_GRID_n, ONLY : SURF_ATM_GRID_t +USE MODD_CONF, ONLY: CPROGRAM, L1D, L2D, LPACK +USE MODD_DIM_n, ONLY: NIMAX_ll, NJMAX_ll, NKMAX +USE MODD_MNH_SURFEX_n +USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT, JPMODELMAX +USE MODD_SURF_ATM_GRID_n, ONLY: SURF_ATM_GRID_t ! +USE MODE_IO, only: IO_Pack_set USE MODE_ll -USE MODE_FM -USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT, JPMODELMAX -USE MODD_CONF, ONLY : CPROGRAM, L1D, L2D, LPACK -USE MODD_DIM_n, ONLY : NIMAX_ll, NJMAX_ll, NKMAX -! -!JUANZ USE MODE_SPLITTINGZ_ll -!JUANZ ! USE MODI_GET_SURF_GRID_DIM_N USE MODI_GET_LUOUT ! -USE MODD_MNH_SURFEX_n ! IMPLICIT NONE ! @@ -227,7 +211,7 @@ END IF L1D=(IIMAX==1).AND.(IJMAX==1) L2D=(IIMAX/=1).AND.(IJMAX==1) LPACK=L1D.OR.L2D -CALL SET_FMPACK_ll(L1D,L2D,LPACK) +CALL IO_Pack_set(L1D,L2D,LPACK) CALL SET_JP_ll(JPMODELMAX,JPHEXT,JPVEXT,JPHEXT) CALL SET_DAD0_ll() NIMAX_ll = IIMAX diff --git a/src/MNH/phys_paramn.f90 b/src/MNH/phys_paramn.f90 index 106ec1623..9fa7c447d 100644 --- a/src/MNH/phys_paramn.f90 +++ b/src/MNH/phys_paramn.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######################## MODULE MODI_PHYS_PARAM_n ! ######################## @@ -13,7 +14,7 @@ INTERFACE PRAD,PSHADOWS,PKAFR,PGROUND,PMAFL,PDRAG,PTURB,PTRACER, & PTIME_BU, PWETDEPAER, OMASKkids,OCLOUD_ONLY ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KTCOUNT ! temporal iteration count TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Synchronous output file @@ -239,8 +240,6 @@ END MODULE MODI_PHYS_PARAM_n ! USE MODE_DATETIME USE MODE_ll -USE MODE_FM -USE MODE_FMWRIT USE MODD_ARGSLIST_ll, ONLY : LIST_ll ! USE MODD_BLANK @@ -248,7 +247,7 @@ USE MODD_CST USE MODD_DYN USE MODD_CONF USE MODD_FRC -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_GRID USE MODD_NSV @@ -303,7 +302,6 @@ USE MODI_CONVECTION USE MODI_BUDGET USE MODI_PASPOL USE MODI_CONDSAMP -USE MODE_FM USE MODE_MODELN_HANDLER USE MODI_SEDIM_DUST USE MODI_SEDIM_SALT diff --git a/src/MNH/ppm.f90 b/src/MNH/ppm.f90 index 446178015..779233104 100644 --- a/src/MNH/ppm.f90 +++ b/src/MNH/ppm.f90 @@ -193,7 +193,6 @@ END MODULE MODI_PPM !------------------------------------------------------------------------------- ! USE MODE_ll -USE MODE_IO_ll USE MODI_SHUMAN USE MODI_GET_HALO ! @@ -633,7 +632,6 @@ END FUNCTION PPM_01_X !------------------------------------------------------------------------------- ! USE MODE_ll -USE MODE_IO_ll USE MODI_SHUMAN USE MODI_GET_HALO ! @@ -1275,7 +1273,6 @@ END FUNCTION PPM_01_Z !------------------------------------------------------------------------------- ! USE MODE_ll -USE MODE_IO_ll USE MODI_SHUMAN USE MODI_GET_HALO ! @@ -1540,7 +1537,6 @@ END FUNCTION PPM_S0_X !------------------------------------------------------------------------------- ! USE MODE_ll -USE MODE_IO_ll USE MODI_SHUMAN USE MODI_GET_HALO ! @@ -1933,7 +1929,6 @@ END FUNCTION PPM_S0_Z !------------------------------------------------------------------------------- ! USE MODE_ll -USE MODE_IO_ll USE MODI_SHUMAN ! USE MODD_CONF @@ -2186,7 +2181,6 @@ END FUNCTION PPM_S1_X !------------------------------------------------------------------------------- ! USE MODE_ll -USE MODE_IO_ll USE MODI_SHUMAN ! USE MODD_CONF diff --git a/src/MNH/prandtl.f90 b/src/MNH/prandtl.f90 index 13537544f..85e161424 100644 --- a/src/MNH/prandtl.f90 +++ b/src/MNH/prandtl.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################### @@ -22,7 +22,7 @@ INTERFACE PETHETA, PEMOIST ) ! ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KKA !near ground array index INTEGER, INTENT(IN) :: KKU !uppest atmosphere array index @@ -197,7 +197,7 @@ END MODULE MODI_PRANDTL USE MODD_CST USE MODD_CONF USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS ! USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL @@ -206,7 +206,7 @@ USE MODI_GRADIENT_M USE MODI_EMOIST USE MODI_ETHETA USE MODI_SHUMAN -USE MODE_FMWRIT +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! IMPLICIT NONE ! @@ -526,7 +526,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PREDTH1) + CALL IO_Field_write(TPFILE,TZFIELD,PREDTH1) ! ! stores the RED_R1 TZFIELD%CMNHNAME = 'RED_R1' @@ -539,7 +539,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PREDR1) + CALL IO_Field_write(TPFILE,TZFIELD,PREDR1) ! ! stores the RED2_TH3 TZFIELD%CMNHNAME = 'RED2_TH3' @@ -552,7 +552,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PRED2TH3) + CALL IO_Field_write(TPFILE,TZFIELD,PRED2TH3) ! ! stores the RED2_R3 TZFIELD%CMNHNAME = 'RED2_R3' @@ -565,7 +565,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PRED2R3) + CALL IO_Field_write(TPFILE,TZFIELD,PRED2R3) ! ! stores the RED2_THR3 TZFIELD%CMNHNAME = 'RED2_THR3' @@ -578,7 +578,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PRED2THR3) + CALL IO_Field_write(TPFILE,TZFIELD,PRED2THR3) ! END IF ! diff --git a/src/MNH/prep_ideal_case.f90 b/src/MNH/prep_ideal_case.f90 index 7a64a4869..6454934b0 100644 --- a/src/MNH/prep_ideal_case.f90 +++ b/src/MNH/prep_ideal_case.f90 @@ -171,10 +171,10 @@ !! SET_REF : to compute rhoJ !! RESSURE_IN_PREP : to apply an anelastic correction in the case of !! non-vanishing orography -!! IO_FILE_OPEN_ll : to open a FM-file (DESFM + LFIFM) +!! IO_File_open : to open a FM-file (DESFM + LFIFM) !! WRITE_DESFM : to write the DESFM file !! WRI_LFIFM : to write the LFIFM file -!! IO_FILE_CLOSE_ll : to close a FM-file (DESFM + LFIFM) +!! IO_File_close : to close a FM-file (DESFM + LFIFM) !! !! MXM,MYM,MZM : Shuman operators !! WGUESS : to compute W with the continuity equation from @@ -311,7 +311,7 @@ !! P.Wautelet : 08/07/2016 : removed MNH_NCWRIT define !! 01/2018 (G.Delautier) SURFEX 8.1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! @@ -323,7 +323,7 @@ USE MODD_ARGSLIST_ll, ONLY : LIST_ll USE MODD_DIM_n USE MODD_CONF USE MODD_CST -USE MODD_GRID +USE MODD_GRID USE MODD_GRID_n USE MODD_METRICS_n USE MODD_PGDDIM @@ -347,7 +347,7 @@ USE MODD_SALT, ONLY: LSALT, NMODE_SLT, CRGUNITS, XINISIG_SLT, XINIRADIUS_S USE MODD_VAR_ll, ONLY: NPROC USE MODD_LUNIT, ONLY: TLUOUT0, TOUTDATAFILE USE MODD_LUNIT_n -USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG,TFILE_DUMMY,TFILE_OUTPUTLISTING +USE MODD_IO, ONLY: NIO_VERB, NVERB_DEBUG, TFILE_DUMMY, TFILE_OUTPUTLISTING USE MODD_CONF_n USE MODD_NSV, ONLY : NSV,NSV_CHEM, & NSV_DSTEND, NSV_DSTBEG @@ -358,11 +358,12 @@ USE MODE_THERMO USE MODE_POS USE MODE_GRIDCART ! Executive modules USE MODE_GRIDPROJ -USE MODE_FM -USE MODE_FMREAD USE MODE_GATHER_ll -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST,IO_FILE_PRINT_LIST +USE MODE_IO, only: IO_Config_set, IO_Init, IO_Pack_set +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FIELD_WRITE, only: IO_Field_write, IO_Header_write +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list,IO_Filelist_print USE MODE_ll USE MODE_MODELN_HANDLER USE MODE_FIELD @@ -421,11 +422,10 @@ USE MODI_SET_RELFRC ! USE MODI_INI_CST USE MODI_INI_NEB -USE MODE_FMWRIT USE MODI_WRITE_HGRID USE MODD_MPIF USE MODD_VAR_ll -USE MODD_IO_ll, ONLY: TFILEDATA,TFILE_SURFEX +USE MODD_IO, ONLY: TFILEDATA,TFILE_SURFEX ! USE MODE_MPPDB ! @@ -617,7 +617,7 @@ CALL MPPDB_INIT() ! CALL GOTO_MODEL(1) ! -CALL INITIO_ll() +CALL IO_Init() NULLIFY(TZ_FIELDS_ll) CALL VERSION CPROGRAM='IDEAL ' @@ -665,15 +665,15 @@ CALL DEFAULT_EXPRE ! and open these files : ! ! -CALL IO_FILE_ADD2LIST(TLUOUT0,'OUTPUT_LISTING1','OUTPUTLISTING','WRITE') -CALL IO_FILE_OPEN_ll(TLUOUT0) +CALL IO_File_add2list(TLUOUT0,'OUTPUT_LISTING1','OUTPUTLISTING','WRITE') +CALL IO_File_open(TLUOUT0) NLUOUT = TLUOUT0%NLU !Set output files for PRINT_MSG TLUOUT => TLUOUT0 TFILE_OUTPUTLISTING => TLUOUT0 ! -CALL IO_FILE_ADD2LIST(TZEXPREFILE,'PRE_IDEA1.nam','NML','READ') -CALL IO_FILE_OPEN_ll(TZEXPREFILE) +CALL IO_File_add2list(TZEXPREFILE,'PRE_IDEA1.nam','NML','READ') +CALL IO_File_open(TZEXPREFILE) NLUPRE=TZEXPREFILE%NLU ! !* 3.2 read in NLUPRE the namelist informations @@ -691,7 +691,7 @@ IF (GFOUND) READ(UNIT=NLUPRE,NML=NAM_CONFZ) !JUANZ CALL POSNAM(NLUPRE,'NAM_CONFIO',GFOUND,NLUOUT) IF (GFOUND) READ(UNIT=NLUPRE,NML=NAM_CONFIO) -CALL SET_CONFIO_ll() +CALL IO_Config_set() CALL POSNAM(NLUPRE,'NAM_GRID_PRE',GFOUND,NLUOUT) IF (GFOUND) READ(UNIT=NLUPRE,NML=NAM_GRID_PRE) CALL POSNAM(NLUPRE,'NAM_GRIDH_PRE',GFOUND,NLUOUT) @@ -710,13 +710,13 @@ CALL INI_FIELD_SCALARS() ! IF( LEN_TRIM(CPGD_FILE) /= 0 ) THEN ! open the PGD_FILE - CALL IO_FILE_ADD2LIST(TPGDFILE,TRIM(CPGD_FILE),'PGD','READ',KLFINPRAR=NNPRAR,KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TPGDFILE) + CALL IO_File_add2list(TPGDFILE,TRIM(CPGD_FILE),'PGD','READ',KLFINPRAR=NNPRAR,KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_open(TPGDFILE) ! read the grid in the PGD file - CALL IO_READ_FIELD(TPGDFILE,'IMAX', NIMAX) - CALL IO_READ_FIELD(TPGDFILE,'JMAX', NJMAX) - CALL IO_READ_FIELD(TPGDFILE,'JPHEXT',IJPHEXT) + CALL IO_Field_read(TPGDFILE,'IMAX', NIMAX) + CALL IO_Field_read(TPGDFILE,'JMAX', NJMAX) + CALL IO_Field_read(TPGDFILE,'JPHEXT',IJPHEXT) IF ( CPGD_FILE /= CINIFILEPGD) THEN WRITE(NLUOUT,FMT=*) ' WARNING : in PRE_IDEA1.nam, in NAM_LUNITn you& @@ -911,7 +911,7 @@ ENDIF CALL SET_JP_ll(1,JPHEXT,JPVEXT,JPHEXT) CALL SET_DAD0_ll() CALL SET_DIM_ll(NIMAX_ll, NJMAX_ll, NKMAX) -CALL SET_FMPACK_ll(L1D,L2D,LPACK) +CALL IO_Pack_set(L1D,L2D,LPACK) CALL SET_LBX_ll(CLBCX(1), 1) CALL SET_LBY_ll(CLBCY(1), 1) CALL SET_XRATIO_ll(1, 1) @@ -1713,7 +1713,7 @@ END IF ! before calling chemistry CCONF = 'START' CSTORAGE_TYPE='TT' -CALL IO_FILE_CLOSE_ll(TZEXPREFILE) ! Close the EXPRE file +CALL IO_File_close(TZEXPREFILE) ! Close the EXPRE file ! IF ( LCH_INIT_FIELD ) CALL CH_INIT_FIELD_n(1, NLUOUT, NVERB) ! @@ -1730,11 +1730,11 @@ NNPRAR = 22 + 2*(NRR+NSV) & ! 22 = number of grid variables + reference ! variables at time t and t-dt NTYPE=1 ! -CALL IO_FILE_ADD2LIST(TINIFILE,TRIM(CINIFILE),'MNH','WRITE',KLFINPRAR=NNPRAR,KLFITYPE=NTYPE,KLFIVERB=NVERB) +CALL IO_File_add2list(TINIFILE,TRIM(CINIFILE),'MNH','WRITE',KLFINPRAR=NNPRAR,KLFITYPE=NTYPE,KLFIVERB=NVERB) ! -CALL IO_FILE_OPEN_ll(TINIFILE) +CALL IO_File_open(TINIFILE) ! -CALL IO_WRITE_HEADER(TINIFILE) +CALL IO_Header_write(TINIFILE) ! CALL WRITE_DESFM_n(1,TINIFILE) ! @@ -1770,8 +1770,8 @@ IF (CSURF =='EXTE') THEN TPGDFILE => TINIFILE CALL PGD_GRID_SURF_ATM(YSURF_CUR%UG, YSURF_CUR%U,YSURF_CUR%GCP,'MESONH',TINIFILE%CNAME,'MESONH',.TRUE.,HDIR='-') CALL PGD_SURF_ATM (YSURF_CUR,'MESONH',TINIFILE%CNAME,'MESONH',.TRUE.) - CALL IO_FILE_ADD2LIST(TINIFILEPGD,TRIM(CINIFILEPGD),'PGD','WRITE',KLFINPRAR=NNPRAR,KLFITYPE=NTYPE,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll (TINIFILEPGD) + CALL IO_File_add2list(TINIFILEPGD,TRIM(CINIFILEPGD),'PGD','WRITE',KLFINPRAR=NNPRAR,KLFITYPE=NTYPE,KLFIVERB=NVERB) + CALL IO_File_open (TINIFILEPGD) TPGDFILE => TINIFILEPGD ELSE ! ... or read from file. @@ -1790,12 +1790,12 @@ IF (CSURF =='EXTE') THEN !* writing of physiographic fields in the file CSTORAGE_TYPE='PG' ! - CALL IO_WRITE_HEADER(TINIFILEPGD) - CALL IO_WRITE_FIELD(TINIFILEPGD,'JPHEXT', JPHEXT) - CALL IO_WRITE_FIELD(TINIFILEPGD,'SURF','EXTE') - CALL IO_WRITE_FIELD(TINIFILEPGD,'L1D', L1D) - CALL IO_WRITE_FIELD(TINIFILEPGD,'L2D', L2D) - CALL IO_WRITE_FIELD(TINIFILEPGD,'PACK',LPACK) + CALL IO_Header_write(TINIFILEPGD) + CALL IO_Field_write(TINIFILEPGD,'JPHEXT', JPHEXT) + CALL IO_Field_write(TINIFILEPGD,'SURF','EXTE') + CALL IO_Field_write(TINIFILEPGD,'L1D', L1D) + CALL IO_Field_write(TINIFILEPGD,'L2D', L2D) + CALL IO_Field_write(TINIFILEPGD,'PACK',LPACK) CALL WRITE_HGRID(1,TINIFILEPGD) ! TOUTDATAFILE => TINIFILEPGD @@ -1825,11 +1825,11 @@ END IF ! --------------- ! IF (CSURF =='EXTE' .AND. (LEN_TRIM(CPGD_FILE)==0 .OR. .NOT. LREAD_GROUND_PARAM)) THEN - CALL IO_FILE_CLOSE_ll(TINIFILEPGD) + CALL IO_File_close(TINIFILEPGD) ENDIF -CALL IO_FILE_CLOSE_ll(TINIFILE) +CALL IO_File_close(TINIFILE) IF( LEN_TRIM(CPGD_FILE) /= 0 ) THEN - CALL IO_FILE_CLOSE_ll(TPGDFILE) + CALL IO_File_close(TPGDFILE) ENDIF ! ! @@ -1896,9 +1896,9 @@ WRITE(NLUOUT,FMT=*) '****************************************************' WRITE(NLUOUT,FMT=*) '* PREP_IDEAL_CASE: PREP_IDEAL_CASE ENDS CORRECTLY. *' WRITE(NLUOUT,FMT=*) '****************************************************' ! -IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST() +IF(NIO_VERB>=NVERB_DEBUG) CALL IO_Filelist_print() ! -CALL IO_FILE_CLOSE_ll(TLUOUT) +CALL IO_File_close(TLUOUT) ! CALL END_PARA_ll(IINFO_ll) ! diff --git a/src/MNH/prep_nest_pgd.f90 b/src/MNH/prep_nest_pgd.f90 index 8e7270040..5b5a884f4 100644 --- a/src/MNH/prep_nest_pgd.f90 +++ b/src/MNH/prep_nest_pgd.f90 @@ -91,7 +91,7 @@ !! 06/2016 (G.Delautier) phasage surfex 8 !! P.Wautelet : 08/07/2016 : removed MNH_NCWRIT define !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -101,7 +101,7 @@ USE MODD_CONF USE MODD_CONF_n USE MODD_CST USE MODD_DIM_n -USE MODD_IO_ll, ONLY: NIO_VERB, NVERB_DEBUG, TFILE_SURFEX, TPTR2FILE +USE MODD_IO, ONLY: NIO_VERB, NVERB_DEBUG, TFILE_SURFEX, TPTR2FILE USE MODD_GRID_n, ONLY: XZSMT USE MODD_LUNIT, ONLY: TPGDFILE,TLUOUT0,TOUTDATAFILE USE MODD_MNH_SURFEX_n @@ -110,11 +110,11 @@ USE MODD_PARAMETERS USE MODD_VAR_ll, ONLY: NPROC, IP, NMNH_COMM_WORLD ! 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_IO, only: IO_Init, IO_Pack_set +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FIELD_WRITE, only: IO_Field_write, IO_Header_write +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list, IO_Filelist_print USE MODE_ll USE MODE_MNH_WORLD, ONLY: INIT_NMNH_COMM_WORLD USE MODE_MODELN_HANDLER @@ -168,7 +168,7 @@ CALL MPPDB_INIT() CALL VERSION CPROGRAM='NESPGD' ! -CALL INITIO_ll() +CALL IO_Init() !!$CALL SET_JP_ll(JPMODELMAX,JPHEXT,JPVEXT,JPHEXT) ! !* 1. INITIALIZATION OF PHYSICAL CONSTANTS @@ -202,14 +202,14 @@ CALL INI_FIELD_LIST() CALL SET_DAD0_ll() DO JPGD=1,NMODEL ! read and set dimensions and ratios of model JPGD - CALL IO_READ_FIELD(TZFILEPGD(JPGD)%TZFILE,'IMAX', IIMAX) - CALL IO_READ_FIELD(TZFILEPGD(JPGD)%TZFILE,'JMAX', IJMAX) - CALL IO_READ_FIELD(TZFILEPGD(JPGD)%TZFILE,'DXRATIO',NDXRATIO_ALL(JPGD)) - CALL IO_READ_FIELD(TZFILEPGD(JPGD)%TZFILE,'DYRATIO',NDYRATIO_ALL(JPGD)) - CALL IO_READ_FIELD(TZFILEPGD(JPGD)%TZFILE,'XSIZE', NXSIZE(JPGD)) - CALL IO_READ_FIELD(TZFILEPGD(JPGD)%TZFILE,'YSIZE', NYSIZE(JPGD)) - CALL IO_READ_FIELD(TZFILEPGD(JPGD)%TZFILE,'XOR', NXOR_ALL(JPGD)) - CALL IO_READ_FIELD(TZFILEPGD(JPGD)%TZFILE,'YOR', NYOR_ALL(JPGD)) + CALL IO_Field_read(TZFILEPGD(JPGD)%TZFILE,'IMAX', IIMAX) + CALL IO_Field_read(TZFILEPGD(JPGD)%TZFILE,'JMAX', IJMAX) + CALL IO_Field_read(TZFILEPGD(JPGD)%TZFILE,'DXRATIO',NDXRATIO_ALL(JPGD)) + CALL IO_Field_read(TZFILEPGD(JPGD)%TZFILE,'DYRATIO',NDYRATIO_ALL(JPGD)) + CALL IO_Field_read(TZFILEPGD(JPGD)%TZFILE,'XSIZE', NXSIZE(JPGD)) + CALL IO_Field_read(TZFILEPGD(JPGD)%TZFILE,'YSIZE', NYSIZE(JPGD)) + CALL IO_Field_read(TZFILEPGD(JPGD)%TZFILE,'XOR', NXOR_ALL(JPGD)) + CALL IO_Field_read(TZFILEPGD(JPGD)%TZFILE,'YOR', NYOR_ALL(JPGD)) CALL SET_DIM_ll(IIMAX, IJMAX, 1) ! compute origin and end of local subdomain of model JPGD ! initialize variables from MODD_NESTING, origin and end of global model JPGD in coordinates of its father @@ -246,10 +246,10 @@ DO JPGD=1,NMODEL CALL GOTO_MODEL(JPGD) CALL GO_TOMODEL_ll(JPGD,IINFO_ll) CALL GOTO_SURFEX(JPGD) - CALL IO_READ_FIELD(TZFILEPGD(JPGD)%TZFILE,'L1D', L1D_ALL(JPGD)) - CALL IO_READ_FIELD(TZFILEPGD(JPGD)%TZFILE,'L2D', L2D_ALL(JPGD)) - CALL IO_READ_FIELD(TZFILEPGD(JPGD)%TZFILE,'PACK',LPACK_ALL(JPGD)) - CALL SET_FMPACK_ll(L1D_ALL(JPGD),L2D_ALL(JPGD),LPACK_ALL(JPGD)) + CALL IO_Field_read(TZFILEPGD(JPGD)%TZFILE,'L1D', L1D_ALL(JPGD)) + CALL IO_Field_read(TZFILEPGD(JPGD)%TZFILE,'L2D', L2D_ALL(JPGD)) + CALL IO_Field_read(TZFILEPGD(JPGD)%TZFILE,'PACK',LPACK_ALL(JPGD)) + CALL IO_Pack_set(L1D_ALL(JPGD),L2D_ALL(JPGD),LPACK_ALL(JPGD)) CALL READ_HGRID(JPGD,TZFILEPGD(JPGD)%TZFILE,YMY_NAME,YDAD_NAME,YSTORAGE_TYPE) CSTORAGE_TYPE='PG' END DO @@ -335,12 +335,12 @@ DO JPGD=1,NMODEL TOUTDATAFILE => TZFILENESTPGD(JPGD)%TZFILE CALL GOTO_MODEL(JPGD) !Open done here because grid dimensions have to be known - CALL IO_FILE_OPEN_ll(TZFILENESTPGD(JPGD)%TZFILE) + CALL IO_File_open(TZFILENESTPGD(JPGD)%TZFILE) CALL GOTO_SURFEX(JPGD) TFILE_SURFEX => TZFILENESTPGD(JPGD)%TZFILE CALL WRITE_PGD_SURF_ATM_n(YSURF_CUR,'MESONH') NULLIFY(TFILE_SURFEX) - CALL IO_WRITE_FIELD(TZFILENESTPGD(JPGD)%TZFILE,'ZSMT',XZSMT) + CALL IO_Field_write(TZFILENESTPGD(JPGD)%TZFILE,'ZSMT',XZSMT) END DO ! !------------------------------------------------------------------------------- @@ -350,18 +350,18 @@ END DO ! ! DO JPGD=1,NMODEL - CALL IO_WRITE_HEADER(TZFILENESTPGD(JPGD)%TZFILE) + CALL IO_Header_write(TZFILENESTPGD(JPGD)%TZFILE) IF ( ASSOCIATED(TZFILENESTPGD(JPGD)%TZFILE%TDADFILE) ) THEN - CALL IO_WRITE_FIELD(TZFILENESTPGD(JPGD)%TZFILE,'DXRATIO',NDXRATIO_ALL(JPGD)) - CALL IO_WRITE_FIELD(TZFILENESTPGD(JPGD)%TZFILE,'DYRATIO',NDYRATIO_ALL(JPGD)) - CALL IO_WRITE_FIELD(TZFILENESTPGD(JPGD)%TZFILE,'XOR', NXOR_ALL(JPGD)) - CALL IO_WRITE_FIELD(TZFILENESTPGD(JPGD)%TZFILE,'YOR', NYOR_ALL(JPGD)) + CALL IO_Field_write(TZFILENESTPGD(JPGD)%TZFILE,'DXRATIO',NDXRATIO_ALL(JPGD)) + CALL IO_Field_write(TZFILENESTPGD(JPGD)%TZFILE,'DYRATIO',NDYRATIO_ALL(JPGD)) + CALL IO_Field_write(TZFILENESTPGD(JPGD)%TZFILE,'XOR', NXOR_ALL(JPGD)) + CALL IO_Field_write(TZFILENESTPGD(JPGD)%TZFILE,'YOR', NYOR_ALL(JPGD)) END IF - CALL IO_WRITE_FIELD(TZFILENESTPGD(JPGD)%TZFILE,'SURF', 'EXTE') - CALL IO_WRITE_FIELD(TZFILENESTPGD(JPGD)%TZFILE,'L1D', L1D_ALL(JPGD)) - CALL IO_WRITE_FIELD(TZFILENESTPGD(JPGD)%TZFILE,'L2D', L2D_ALL(JPGD)) - CALL IO_WRITE_FIELD(TZFILENESTPGD(JPGD)%TZFILE,'PACK', LPACK_ALL(JPGD)) - CALL IO_WRITE_FIELD(TZFILENESTPGD(JPGD)%TZFILE,'JPHEXT',JPHEXT) + CALL IO_Field_write(TZFILENESTPGD(JPGD)%TZFILE,'SURF', 'EXTE') + CALL IO_Field_write(TZFILENESTPGD(JPGD)%TZFILE,'L1D', L1D_ALL(JPGD)) + CALL IO_Field_write(TZFILENESTPGD(JPGD)%TZFILE,'L2D', L2D_ALL(JPGD)) + CALL IO_Field_write(TZFILENESTPGD(JPGD)%TZFILE,'PACK', LPACK_ALL(JPGD)) + CALL IO_Field_write(TZFILENESTPGD(JPGD)%TZFILE,'JPHEXT',JPHEXT) END DO ! !------------------------------------------------------------------------------- @@ -370,8 +370,8 @@ END DO ! -------------------- ! DO JPGD=1,NMODEL - CALL IO_FILE_CLOSE_ll(TZFILEPGD(JPGD)%TZFILE) - CALL IO_FILE_CLOSE_ll(TZFILENESTPGD(JPGD)%TZFILE) + CALL IO_File_close(TZFILEPGD(JPGD)%TZFILE) + CALL IO_File_close(TZFILENESTPGD(JPGD)%TZFILE) END DO ! !* loop to spare enough time to transfer commands before end of program @@ -384,14 +384,14 @@ END DO !* 12. EPILOGUE ! -------- ! -IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST() +IF(NIO_VERB>=NVERB_DEBUG) CALL IO_Filelist_print() ! WRITE(ILUOUT0,FMT=*) WRITE(ILUOUT0,FMT=*) '************************************************' WRITE(ILUOUT0,FMT=*) '* PREP_NEST_PGD: PREP_NEST_PGD ends correctly. *' WRITE(ILUOUT0,FMT=*) '************************************************' ! -CALL IO_FILE_CLOSE_ll(TLUOUT0) +CALL IO_File_close(TLUOUT0) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/prep_pgd.f90 b/src/MNH/prep_pgd.f90 index c06a62092..81ab9dd5e 100644 --- a/src/MNH/prep_pgd.f90 +++ b/src/MNH/prep_pgd.f90 @@ -74,9 +74,9 @@ !! 01/2018 (G.Delautier) SURFEX 8.1 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O !! Q. Rodier 01/2019 : add a new filtering for very high slopes in NAM_ZSFILTER -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! (nsubfiles_ioz is now determined in IO_File_add2list) ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables ! !---------------------------------------------------------------------------- @@ -89,18 +89,18 @@ USE MODD_CONF_n,ONLY : CSTORAGE_TYPE USE MODD_LUNIT, ONLY : TLUOUT0 USE MODD_LUNIT_n,ONLY : LUNIT_MODEL USE MODD_PARAMETERS, ONLY : XUNDEF -USE MODD_IO_ll, ONLY : NIO_VERB,NVERB_DEBUG,TFILEDATA,TFILE_OUTPUTLISTING,TFILE_SURFEX +USE MODD_IO, ONLY : NIO_VERB,NVERB_DEBUG,TFILEDATA,TFILE_OUTPUTLISTING,TFILE_SURFEX USE MODD_IO_SURF_MNH, ONLY : NHALO USE MODD_SPAWN, ONLY : NDXRATIO,NDYRATIO,NXSIZE,NYSIZE,NXOR,NYOR ! -USE MODE_POS -USE MODE_FM -USE MODE_FMWRIT -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST,IO_FILE_PRINT_LIST +USE MODE_FIELD +USE MODE_IO, only: IO_Config_set, IO_Init +USE MODE_IO_FIELD_WRITE, only: IO_Field_write, IO_Header_write +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list, IO_Filelist_print USE MODE_MODELN_HANDLER USE MODE_MSG -USE MODE_FIELD +USE MODE_POS ! USE MODI_ZSMT_PGD ! @@ -164,12 +164,12 @@ CPROGRAM='PGD ' !* 1. Set default names and parallelized I/O ! -------------------------------------- ! -CALL INITIO_ll() +CALL IO_Init() ! NHALO=15 ! -CALL IO_FILE_ADD2LIST(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') -CALL IO_FILE_OPEN_ll(TLUOUT0) +CALL IO_File_add2list(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') +CALL IO_File_open(TLUOUT0) ! !Set output file for PRINT_MSG TFILE_OUTPUTLISTING => TLUOUT0 @@ -178,8 +178,8 @@ LUNIT_MODEL(1)%TLUOUT => TLUOUT0 ILUOUT0=TLUOUT0%NLU ! !JUAN -CALL IO_FILE_ADD2LIST(TZNMLFILE,'PRE_PGD1.nam','NML','READ') -CALL IO_FILE_OPEN_ll(TZNMLFILE,KRESP=IRESP) +CALL IO_File_add2list(TZNMLFILE,'PRE_PGD1.nam','NML','READ') +CALL IO_File_open(TZNMLFILE,KRESP=IRESP) ILUNAM = TZNMLFILE%NLU IF (IRESP.NE.0 ) THEN WRITE(YMSG,*) 'file PRE_PGD1.nam not found, IRESP=', IRESP @@ -206,9 +206,9 @@ ENDIF !JUANZ CALL POSNAM(ILUNAM,'NAM_CONFIO',GFOUND) IF (GFOUND) READ(UNIT=ILUNAM,NML=NAM_CONFIO) -CALL SET_CONFIO_ll() +CALL IO_Config_set() ! -CALL IO_FILE_CLOSE_ll(TZNMLFILE) +CALL IO_File_close(TZNMLFILE) ! ! CALL SURFEX_ALLOC_LIST(1) @@ -248,16 +248,16 @@ CALL PGD_SURF_ATM(YSURF_CUR,'MESONH',' ',' ',.FA !* 3. Writes the physiographic fields ! ------------------------------- ! -CALL IO_FILE_ADD2LIST(TZFILE,CPGDFILE,'PGD','WRITE',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=1,KLFIVERB=5) +CALL IO_File_add2list(TZFILE,CPGDFILE,'PGD','WRITE',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=1,KLFIVERB=5) ! -CALL IO_FILE_OPEN_ll(TZFILE) +CALL IO_File_open(TZFILE) ! -CALL IO_WRITE_HEADER(TZFILE) +CALL IO_Header_write(TZFILE) ! -CALL IO_WRITE_FIELD(TZFILE,'SURF','EXTE') -CALL IO_WRITE_FIELD(TZFILE,'L1D', L1D) -CALL IO_WRITE_FIELD(TZFILE,'L2D', L2D) -CALL IO_WRITE_FIELD(TZFILE,'PACK',LPACK) +CALL IO_Field_write(TZFILE,'SURF','EXTE') +CALL IO_Field_write(TZFILE,'L1D', L1D) +CALL IO_Field_write(TZFILE,'L2D', L2D) +CALL IO_Field_write(TZFILE,'PACK',LPACK) IF ( NDXRATIO <= 0 .AND. NDYRATIO <= 0 ) THEN NDXRATIO = 1 NDYRATIO = 1 @@ -270,13 +270,13 @@ IF ( NXOR <= 0 .AND. NYOR <= 0 ) THEN NXOR = 1 NYOR = 1 ENDIF -CALL IO_WRITE_FIELD(TZFILE,'DXRATIO',NDXRATIO) -CALL IO_WRITE_FIELD(TZFILE,'DYRATIO',NDYRATIO) -CALL IO_WRITE_FIELD(TZFILE,'XSIZE', NXSIZE) -CALL IO_WRITE_FIELD(TZFILE,'YSIZE', NYSIZE) -CALL IO_WRITE_FIELD(TZFILE,'XOR', NXOR) -CALL IO_WRITE_FIELD(TZFILE,'YOR', NYOR) -CALL IO_WRITE_FIELD(TZFILE,'JPHEXT', JPHEXT) +CALL IO_Field_write(TZFILE,'DXRATIO',NDXRATIO) +CALL IO_Field_write(TZFILE,'DYRATIO',NDYRATIO) +CALL IO_Field_write(TZFILE,'XSIZE', NXSIZE) +CALL IO_Field_write(TZFILE,'YSIZE', NYSIZE) +CALL IO_Field_write(TZFILE,'XOR', NXOR) +CALL IO_Field_write(TZFILE,'YOR', NYOR) +CALL IO_Field_write(TZFILE,'JPHEXT', JPHEXT) ! TFILE_SURFEX => TZFILE ALLOCATE(YSURF_CUR%DUO%CSELECT(0)) @@ -313,8 +313,8 @@ IF (.NOT.LCARTESIAN) THEN ZWORK_LON(:,1) = ZWORK_LON(:,2) ZWORK_LON(:,IJMAX+2) = ZWORK_LON(:,IJMAX+1) ENDIF - CALL IO_WRITE_FIELD(TZFILE,'LAT',ZWORK_LAT) - CALL IO_WRITE_FIELD(TZFILE,'LON',ZWORK_LON) + CALL IO_Field_write(TZFILE,'LAT',ZWORK_LAT) + CALL IO_Field_write(TZFILE,'LON',ZWORK_LON) ! DEALLOCATE(ZWORK,ZWORK_LAT,ZWORK_LON) END IF @@ -328,13 +328,13 @@ WRITE(ILUOUT0,*) '***************************' !* 6. Close parallelized I/O ! ---------------------- ! -CALL IO_FILE_CLOSE_ll(TZFILE) +CALL IO_File_close(TZFILE) ! CALL SURFEX_DEALLO_LIST ! -IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST() +IF(NIO_VERB>=NVERB_DEBUG) CALL IO_Filelist_print() ! -CALL IO_FILE_CLOSE_ll(TLUOUT0) +CALL IO_File_close(TLUOUT0) ! CALL END_PARA_ll(IINFO_ll) ! diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90 index 06d09417c..7f87fe6a1 100644 --- a/src/MNH/prep_real_case.f90 +++ b/src/MNH/prep_real_case.f90 @@ -259,7 +259,7 @@ !! initialized !! Routine WRITE_DESFM1 : to write a DESFM file. !! Routine WRITE_LFIFM1 : to write a LFIFM file. -!! Routine IO_FILE_CLOSE_ll : to close a FM-file (DESFM + LFIFM). +!! Routine IO_File_close : to close a FM-file (DESFM + LFIFM). !! !! Module MODE_GRIDPROJ : contains conformal projection routines !! @@ -378,7 +378,7 @@ !! P.Wautelet : 08/07/2016 : removed MNH_NCWRIT define !! B.VIE 2016 : LIMA !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !------------------------------------------------------------------------------- ! @@ -399,7 +399,7 @@ USE MODD_GR_FIELD_n USE MODD_GRID USE MODD_GRID_n USE MODD_HURR_CONF -USE MODD_IO_ll, ONLY: TFILEDATA,NIO_VERB,NVERB_DEBUG,TFILE_SURFEX +USE MODD_IO, ONLY: TFILEDATA,NIO_VERB,NVERB_DEBUG,TFILE_SURFEX USE MODD_LBC_n USE MODD_LSFIELD_n USE MODD_LUNIT, ONLY: TPGDFILE,TLUOUT0,TOUTDATAFILE @@ -417,13 +417,13 @@ USE MODD_TURB_n ! USE MODE_EXTRAPOL USE MODE_FIELD -USE MODE_FM -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, only: IO_Init +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FIELD_WRITE, only: IO_Header_write +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list, IO_File_find_byname,IO_Filelist_print USE MODE_ll USE MODE_MODELN_HANDLER USE MODE_MPPDB @@ -564,7 +564,7 @@ IDX_RVT = 1 ! !* 2. OPENNING OF THE FILES ! --------------------- -CALL INITIO_ll() +CALL IO_Init() ! CALL OPEN_PRC_FILES(TZPRE_REAL1FILE,YATMFILE, YATMFILETYPE,TZATMFILE & ,YCHEMFILE,YCHEMFILETYPE & @@ -626,8 +626,8 @@ IF (YATMFILETYPE == 'GRIBEX') THEN CALL INIT_NMLVAR() CALL READ_VER_GRID(TZPRE_REAL1FILE) ! -CALL IO_READ_FIELD(TPGDFILE,'IMAX',NIMAX) -CALL IO_READ_FIELD(TPGDFILE,'JMAX',NJMAX) +CALL IO_Field_read(TPGDFILE,'IMAX',NIMAX) +CALL IO_Field_read(TPGDFILE,'JMAX',NJMAX) ! NIMAX_ll=NIMAX !! _ll variables are global variables NJMAX_ll=NJMAX !! but the old names are kept in PRE_IDEA1.nam file @@ -740,14 +740,14 @@ IF(LEN_TRIM(YCHEMFILE)>0)THEN CALL READ_CHEM_DATA_NETCDF_CASE(TZPRE_REAL1FILE,YCHEMFILE,TPGDFILE,ZHORI,NVERB,LDUMMY_REAL) END IF ! -CALL IO_FILE_CLOSE_ll(TZPRE_REAL1FILE) +CALL IO_File_close(TZPRE_REAL1FILE) ! CALL SECOND_MNH(ZTIME2) ZREAD = ZTIME2 - ZTIME1 - ZHORI !------------------------------------------------------------------------------- ! -CALL IO_FILE_ADD2LIST(TINIFILE,CINIFILE,'MNH','WRITE',KLFITYPE=1,KLFIVERB=NVERB) -CALL IO_FILE_OPEN_ll(TINIFILE) +CALL IO_File_add2list(TINIFILE,CINIFILE,'MNH','WRITE',KLFITYPE=1,KLFIVERB=NVERB) +CALL IO_File_open(TINIFILE) ! ZTIME1=ZTIME2 ! @@ -1048,7 +1048,7 @@ IF (YATMFILETYPE=='GRIBEX') THEN END IF ! CALL WRITE_DESFM_n(1,TINIFILE) -CALL IO_WRITE_HEADER(TINIFILE,HDAD_NAME=YDAD_NAME) +CALL IO_Header_write(TINIFILE,HDAD_NAME=YDAD_NAME) CALL WRITE_LFIFM_n(TINIFILE,YDAD_NAME) ! CALL SECOND_MNH(ZTIME2) @@ -1071,8 +1071,8 @@ CALL MNHWRITE_ZS_DUMMY_n(TINIFILE) CALL DEALLOCATE_MODEL1(3) ! IF (YATMFILETYPE=='MESONH'.AND. YATMFILE/=YPGDFILE) THEN - CALL IO_FILE_FIND_BYNAME(TRIM(YATMFILE),TZATMFILE,IRESP) - CALL IO_FILE_CLOSE_ll(TZATMFILE) + CALL IO_File_find_byname(TRIM(YATMFILE),TZATMFILE,IRESP) + CALL IO_File_close(TZATMFILE) END IF !------------------------------------------------------------------------------- ! @@ -1178,12 +1178,12 @@ END IF ! !------------------------------------------------------------------------------- ! -CALL IO_FILE_CLOSE_ll(TINIFILE) -CALL IO_FILE_CLOSE_ll(TPGDFILE) +CALL IO_File_close(TINIFILE) +CALL IO_File_close(TPGDFILE) ! -IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST() +IF(NIO_VERB>=NVERB_DEBUG) CALL IO_Filelist_print() ! -CALL IO_FILE_CLOSE_ll(TLUOUT0) +CALL IO_File_close(TLUOUT0) ! ! CALL END_PARA_ll(IINFO_ll) diff --git a/src/MNH/prep_surf_mnh.f90 b/src/MNH/prep_surf_mnh.f90 index afe9493b2..0e6c02cfb 100644 --- a/src/MNH/prep_surf_mnh.f90 +++ b/src/MNH/prep_surf_mnh.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2004-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -53,7 +53,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_IO_FILE, ONLY: IO_File_open USE MODE_PREP_CTL, ONLY : PREP_CTL ! USE MODI_INIT_PGD_SURF_ATM @@ -100,7 +100,7 @@ CALL INIT_PGD_SURF_ATM(YSURF_CUR,'MESONH','PRE',HATMFILE,YATMFILETYPE, & 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) + IF (OINIFILEOPEN) CALL IO_File_open(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 5de5ce5c6..c21d5caa8 100644 --- a/src/MNH/prep_surfex.f90 +++ b/src/MNH/prep_surfex.f90 @@ -26,7 +26,7 @@ !! 10/10/2011 J.Escobar call INI_PARAZ_ll !! 06/2016 (G.Delautier) phasage surfex 8 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -35,7 +35,7 @@ USE MODD_CONF, ONLY : CPROGRAM,& L1D, L2D, LPACK USE MODD_CONF_n, ONLY : CSTORAGE_TYPE -USE MODD_IO_ll, ONLY : TFILEDATA, NIO_VERB, NVERB_DEBUG, TFILE_SURFEX +USE MODD_IO, ONLY : TFILEDATA, NIO_VERB, NVERB_DEBUG, TFILE_SURFEX USE MODD_LUNIT, ONLY : TPGDFILE, TLUOUT0 USE MODD_LUNIT_n, ONLY : CINIFILE, TINIFILE USE MODD_MNH_SURFEX_n @@ -43,11 +43,11 @@ USE MODD_PARAMETERS, ONLY : JPMODELMAX,JPHEXT,JPVEXT, NUNDEF, XUNDEF USE MODD_TIME_n, ONLY : TDTCUR ! USE MODE_FIELD -USE MODE_FM -USE MODE_FMREAD -USE MODE_FMWRIT -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST,IO_FILE_PRINT_LIST +USE MODE_IO, only: IO_Init +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FIELD_WRITE, only: IO_Field_write, IO_Header_write +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list, IO_Filelist_print USE MODE_ll USE MODE_MSG USE MODE_MODELN_HANDLER @@ -100,7 +100,7 @@ CSTORAGE_TYPE='SU' ! !* 2. OPENNING OF THE FILES ! --------------------- -CALL INITIO_ll() +CALL IO_Init() ! CALL OPEN_PRC_FILES(TZPRE_REAL1FILE,YATMFILE, YATMFILETYPE,TZATMFILE & ,YCHEMFILE,YCHEMFILETYPE & @@ -122,7 +122,7 @@ CALL INI_CST ! !* 4.1 reading of configuration variables ! -CALL IO_FILE_CLOSE_ll(TZPRE_REAL1FILE) +CALL IO_File_close(TZPRE_REAL1FILE) ! !* 4.2 reading of values of some configuration variables in namelist ! @@ -130,8 +130,8 @@ CALL INI_FIELD_LIST(1) ! CALL INI_FIELD_SCALARS() ! -CALL IO_READ_FIELD(TPGDFILE,'IMAX',II) -CALL IO_READ_FIELD(TPGDFILE,'JMAX',IJ) +CALL IO_Field_read(TPGDFILE,'IMAX',II) +CALL IO_Field_read(TPGDFILE,'JMAX',IJ) CALL SET_JP_ll(JPMODELMAX,JPHEXT,JPVEXT,JPHEXT) CALL SET_DAD0_ll() CALL SET_DIM_ll(II, IJ, 1) @@ -156,10 +156,10 @@ CALL INI_PARAZ_ll(IINFO_ll) !* reading of date ! IF (YATMFILETYPE=='MESONH') THEN - CALL IO_FILE_ADD2LIST(TZATMFILE,TRIM(YATMFILE),'MNH','READ',KLFITYPE=1,KLFIVERB=1) - CALL IO_FILE_OPEN_ll(TZATMFILE) - CALL IO_READ_FIELD(TZATMFILE,'DTCUR',TDTCUR) - CALL IO_FILE_CLOSE_ll(TZATMFILE) + CALL IO_File_add2list(TZATMFILE,TRIM(YATMFILE),'MNH','READ',KLFITYPE=1,KLFIVERB=1) + CALL IO_File_open(TZATMFILE) + CALL IO_Field_read(TZATMFILE,'DTCUR',TDTCUR) + CALL IO_File_close(TZATMFILE) ELSE TDTCUR%TDATE%YEAR = NUNDEF TDTCUR%TDATE%MONTH= NUNDEF @@ -172,7 +172,7 @@ YSURF_CUR => YSURF_LIST(1) CALL READ_ALL_NAMELISTS(YSURF_CUR,'MESONH','PRE',.FALSE.) CALL GOTO_SURFEX(1) ! -CALL IO_FILE_ADD2LIST(TINIFILE,TRIM(CINIFILE),'PGD','WRITE',KLFITYPE=1,KLFIVERB=1) +CALL IO_File_add2list(TINIFILE,TRIM(CINIFILE),'PGD','WRITE',KLFITYPE=1,KLFIVERB=1) !The open is done later in PREP_SURF_MNH when domain dimensions are known ! TFILE_SURFEX => TINIFILE @@ -181,11 +181,11 @@ NULLIFY(TFILE_SURFEX) ! !------------------------------------------------------------------------------- ! -CALL IO_WRITE_HEADER(TINIFILE) -CALL IO_WRITE_FIELD(TINIFILE,'SURF','EXTE') -CALL IO_WRITE_FIELD(TINIFILE,'L1D', L1D) -CALL IO_WRITE_FIELD(TINIFILE,'L2D', L2D) -CALL IO_WRITE_FIELD(TINIFILE,'PACK',LPACK) +CALL IO_Header_write(TINIFILE) +CALL IO_Field_write(TINIFILE,'SURF','EXTE') +CALL IO_Field_write(TINIFILE,'L1D', L1D) +CALL IO_Field_write(TINIFILE,'L2D', L2D) +CALL IO_Field_write(TINIFILE,'PACK',LPACK) ! !------------------------------------------------------------------------------- WRITE(ILUOUT0,*) ' ' @@ -194,11 +194,11 @@ WRITE(ILUOUT0,*) '| |' WRITE(ILUOUT0,*) '| PREP_SURFEX ends correctly |' WRITE(ILUOUT0,*) '| |' WRITE(ILUOUT0,*) '----------------------------------' -CALL IO_FILE_CLOSE_ll(TINIFILE) +CALL IO_File_close(TINIFILE) ! -IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST() +IF(NIO_VERB>=NVERB_DEBUG) CALL IO_Filelist_print() ! -CALL IO_FILE_CLOSE_ll(TLUOUT0) +CALL IO_File_close(TLUOUT0) ! CALL END_PARA_ll(IINFO_ll) CALL SURFEX_DEALLO_LIST diff --git a/src/MNH/pressure_in_prep.f90 b/src/MNH/pressure_in_prep.f90 index 844b549d6..7fafcfd88 100644 --- a/src/MNH/pressure_in_prep.f90 +++ b/src/MNH/pressure_in_prep.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1998-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1998-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -71,7 +71,6 @@ END MODULE MODI_PRESSURE_IN_PREP ! ------------ ! USE MODE_ll -USE MODE_IO_ll USE MODE_MSG ! USE MODI_ANEL_BALANCE_n diff --git a/src/MNH/prognos.f90 b/src/MNH/prognos.f90 index 791f813af..569a2aa08 100644 --- a/src/MNH/prognos.f90 +++ b/src/MNH/prognos.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2012-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2012-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ####################### MODULE MODI_PROGNOS @@ -67,7 +67,6 @@ USE MODD_CST USE MODD_PARAM_C2R2 USE MODD_RAIN_C2R2_KHKO_PARAM ! -USE MODE_IO_ll USE MODE_MSG ! USE MODI_GAMMA diff --git a/src/MNH/radar_rain_ice.f90 b/src/MNH/radar_rain_ice.f90 index f3d2e2a0d..eddac2294 100644 --- a/src/MNH/radar_rain_ice.f90 +++ b/src/MNH/radar_rain_ice.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ########################## @@ -128,8 +128,6 @@ USE MODD_PARAMETERS USE MODD_PARAM_n, ONLY : CCLOUD USE MODD_LUNIT ! -USE MODE_IO_ll -! IMPLICIT NONE ! !* 0.1 Declarations of dummy arguments : diff --git a/src/MNH/radar_scattering.f90 b/src/MNH/radar_scattering.f90 index fdc5bf15f..dc3ddc1e5 100644 --- a/src/MNH/radar_scattering.f90 +++ b/src/MNH/radar_scattering.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source$ $Revision$ $Date$ -!----------------------------------------------------------------- ! ######spl MODULE MODI_RADAR_SCATTERING ! ############################# @@ -106,7 +102,7 @@ END MODULE MODI_RADAR_SCATTERING ! ------------ ! USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT USE MODD_PARAMETERS USE MODD_RAIN_ICE_DESCR, ONLY: XALPHAR_I=>XALPHAR,XNUR_I=>XNUR,XDR_I=>XDR,XLBEXR_I=>XLBEXR,& @@ -140,10 +136,9 @@ USE MODE_READTMAT USE MODE_FGAU , ONLY:GAULAG USE MODI_GAMMA, ONLY:GAMMA ! -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll,IO_FILE_OPEN_ll -USE MODE_IO_ll USE MODD_LUNIT -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST +USE MODE_IO_FILE, ONLY: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_MSG ! @@ -750,8 +745,8 @@ DO JI=1,INBRAD E12.5,2X,E12.5,2X,E12.5,2X,E12.5,2X,E12.5) !rain - CALL IO_FILE_ADD2LIST(TZFILE,YFILE_COEFINT(1),'TXT','READ') - CALL IO_FILE_OPEN_ll(TZFILE,KRESP=IRESP) + CALL IO_File_add2list(TZFILE,YFILE_COEFINT(1),'TXT','READ') + CALL IO_File_open(TZFILE,KRESP=IRESP) IUNIT = TZFILE%NLU IF ( IRESP /= 0 ) THEN WRITE(YMSG,*) "problem opening file ",TRIM(YFILE_COEFINT(1)) @@ -764,7 +759,7 @@ DO JI=1,INBRAD ZIM_S22S11_T_R(ILINE),ZRE_S22FMS11FT_T_R(ILINE),ZIM_S22FT_T_R(ILINE),ZIM_S11FT_T_R(ILINE) ILINE=ILINE+1 ENDDO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() WRITE(ILUOUT0,*) "NLIGNE rain",ILINE ILINE=2 @@ -777,8 +772,8 @@ DO JI=1,INBRAD ZIM_S22S11_T_R(ILINE),ZRE_S22FMS11FT_T_R(ILINE),ZIM_S22FT_T_R(ILINE),ZIM_S11FT_T_R(ILINE) !snow - CALL IO_FILE_ADD2LIST(TZFILE,YFILE_COEFINT(2),'TXT','READ') - CALL IO_FILE_OPEN_ll(TZFILE,KRESP=IRESP) + CALL IO_File_add2list(TZFILE,YFILE_COEFINT(2),'TXT','READ') + CALL IO_File_open(TZFILE,KRESP=IRESP) IUNIT = TZFILE%NLU IF ( IRESP /= 0 ) THEN WRITE(YMSG,*) "problem opening file ",TRIM(YFILE_COEFINT(2)) @@ -791,7 +786,7 @@ DO JI=1,INBRAD ZIM_S22S11_T_S(ILINE),ZRE_S22FMS11FT_T_S(ILINE),ZIM_S22FT_T_S(ILINE),ZIM_S11FT_T_S(ILINE) ILINE=ILINE+1 ENDDO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() WRITE(ILUOUT0,*) "NLIGNE snow",ILINE ILINE=2 @@ -804,8 +799,8 @@ DO JI=1,INBRAD ZIM_S22S11_T_S(ILINE),ZRE_S22FMS11FT_T_S(ILINE),ZIM_S22FT_T_S(ILINE),ZIM_S11FT_T_S(ILINE) !graupel - CALL IO_FILE_ADD2LIST(TZFILE,YFILE_COEFINT(3),'TXT','READ') - CALL IO_FILE_OPEN_ll(TZFILE,KRESP=IRESP) + CALL IO_File_add2list(TZFILE,YFILE_COEFINT(3),'TXT','READ') + CALL IO_File_open(TZFILE,KRESP=IRESP) IUNIT = TZFILE%NLU IF ( IRESP /= 0 ) THEN WRITE(YMSG,*) "problem opening file ",TRIM(YFILE_COEFINT(3)) @@ -818,7 +813,7 @@ DO JI=1,INBRAD ZIM_S22S11_T_G(ILINE),ZRE_S22FMS11FT_T_G(ILINE),ZIM_S22FT_T_G(ILINE),ZIM_S11FT_T_G(ILINE) ILINE=ILINE+1 ENDDO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() WRITE(ILUOUT0,*) "NLIGNE graupel",ILINE ILINE=2 @@ -831,8 +826,8 @@ DO JI=1,INBRAD ZIM_S22S11_T_G(ILINE),ZRE_S22FMS11FT_T_G(ILINE),ZIM_S22FT_T_G(ILINE),ZIM_S11FT_T_G(ILINE) !wet graupel - CALL IO_FILE_ADD2LIST(TZFILE,YFILE_COEFINT(4),'TXT','READ') - CALL IO_FILE_OPEN_ll(TZFILE,KRESP=IRESP) + CALL IO_File_add2list(TZFILE,YFILE_COEFINT(4),'TXT','READ') + CALL IO_File_open(TZFILE,KRESP=IRESP) IUNIT = TZFILE%NLU IF ( IRESP /= 0 ) THEN WRITE(YMSG,*) "problem opening file ",TRIM(YFILE_COEFINT(4)) @@ -845,7 +840,7 @@ DO JI=1,INBRAD ZIM_S22S11_T_W(ILINE),ZRE_S22FMS11FT_T_W(ILINE),ZIM_S22FT_T_W(ILINE),ZIM_S11FT_T_W(ILINE) ILINE=ILINE+1 ENDDO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() WRITE(ILUOUT0,*) "NLIGNE wet graupel",ILINE ILINE=2 @@ -858,8 +853,8 @@ DO JI=1,INBRAD !hail IF (GHAIL) THEN - CALL IO_FILE_ADD2LIST(TZFILE,YFILE_COEFINT(5),'TXT','READ') - CALL IO_FILE_OPEN_ll(TZFILE,KRESP=IRESP) + CALL IO_File_add2list(TZFILE,YFILE_COEFINT(5),'TXT','READ') + CALL IO_File_open(TZFILE,KRESP=IRESP) IUNIT = TZFILE%NLU IF ( IRESP /= 0 ) THEN WRITE(YMSG,*) "problem opening file ",TRIM(YFILE_COEFINT(5)) @@ -872,7 +867,7 @@ DO JI=1,INBRAD ZIM_S22S11_T_H(ILINE),ZRE_S22FMS11FT_T_H(ILINE),ZIM_S22FT_T_H(ILINE),ZIM_S11FT_T_H(ILINE) ILINE=ILINE+1 ENDDO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() WRITE(ILUOUT0,*) "NLIGNE hail",ILINE ILINE=2 diff --git a/src/MNH/radar_simulator.f90 b/src/MNH/radar_simulator.f90 index 0735b1dc5..1d09ecc69 100644 --- a/src/MNH/radar_simulator.f90 +++ b/src/MNH/radar_simulator.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/Attic/radar_simulator.f90,v $ $Revision: 1.1.2.3.2.1.12.2.2.2 $ $Date: 2015/09/16 14:31:20 $ -!----------------------------------------------------------------- ! ########################### MODULE MODI_RADAR_SIMULATOR ! ########################### @@ -63,10 +59,7 @@ END MODULE MODI_RADAR_SIMULATOR !! Module MODD_RAIN_ICE_PARAM !! Module MODD_PARAMETERS !! Module MODD_LUNIT -! -!! Module MODE_IO_ll -!! Module MODE_FM -! +!! !! Module MODD_GR_FIELD_n !! Module MODD_GRID_n !! Module MODD_CONF_n @@ -139,7 +132,6 @@ USE MODD_REF USE MODD_PARAMETERS USE MODD_LUNIT ! -USE MODE_IO_ll USE MODE_MSG ! USE MODD_GR_FIELD_n diff --git a/src/MNH/radiations.f90 b/src/MNH/radiations.f90 index 2bec821d7..efd8bca80 100644 --- a/src/MNH/radiations.f90 +++ b/src/MNH/radiations.f90 @@ -132,7 +132,7 @@ USE MODD_CST USE MODD_DUST, ONLY: LDUST USE MODD_GRID , ONLY: XLAT0, XLON0 USE MODD_GRID_n , ONLY: XLAT, XLON -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_NSV, ONLY: NSV_C2R2,NSV_C2R2BEG,NSV_C2R2END, & NSV_C1R3,NSV_C1R3BEG,NSV_C1R3END, & @@ -150,10 +150,10 @@ USE MODD_SALT, ONLY: LSALT USE MODD_TIME ! USE MODE_DUSTOPT -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll -USE MODE_REPRO_SUM, ONLY : SUM_DD_R2_R1_ll,SUM_DD_R1_ll +USE MODE_REPRO_SUM, ONLY : SUM_DD_R2_R1_ll,SUM_DD_R1_ll ! #ifdef MNH_PGI USE MODE_PACK_PGI @@ -2699,7 +2699,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2720,7 +2720,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2741,7 +2741,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2762,7 +2762,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2783,7 +2783,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2804,7 +2804,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE DO JJ=IJB,IJE @@ -2823,7 +2823,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE DO JJ=IJB,IJE @@ -2842,7 +2842,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -2860,7 +2860,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -2878,7 +2878,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -2896,7 +2896,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) END IF ! ! @@ -2920,7 +2920,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2941,7 +2941,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2962,7 +2962,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -2983,7 +2983,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3004,7 +3004,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3025,7 +3025,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK-JPVEXT @@ -3046,7 +3046,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK-JPVEXT @@ -3067,7 +3067,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3085,7 +3085,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3103,7 +3103,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3121,7 +3121,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) END IF ! ! @@ -3142,7 +3142,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3160,7 +3160,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3178,7 +3178,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3196,7 +3196,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3214,7 +3214,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) ! DO JJ=IJB,IJE DO JI=IIB,IIE @@ -3232,7 +3232,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_2D) ! ! END IF @@ -3258,7 +3258,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3279,7 +3279,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3300,7 +3300,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3321,7 +3321,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3342,7 +3342,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3363,7 +3363,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3384,7 +3384,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3405,7 +3405,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! ! spectral bands IF (KSWB_OLD==6) THEN @@ -3432,7 +3432,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTAUAZ(:,:,:,JBAND)) + CALL IO_Field_write(TPFILE,TZFIELD,ZTAUAZ(:,:,:,JBAND)) ! TZFIELD%CMNHNAME = 'SSAAER_'//YBAND_NAME(JBAND) TZFIELD%CSTDNAME = '' @@ -3444,7 +3444,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPIZAZ(:,:,:,JBAND)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPIZAZ(:,:,:,JBAND)) ! TZFIELD%CMNHNAME = 'GAER_'//YBAND_NAME(JBAND) TZFIELD%CSTDNAME = '' @@ -3456,7 +3456,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZCGAZ(:,:,:,JBAND)) + CALL IO_Field_write(TPFILE,TZFIELD,ZCGAZ(:,:,:,JBAND)) ENDDO DO JBAND=1,KSWB_OLD @@ -3479,7 +3479,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3500,7 +3500,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! DO JK=IKB,IKE JKRAD = JK - JPVEXT @@ -3521,7 +3521,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) END DO END IF ! @@ -3549,7 +3549,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D) ! !cumulated optical thickness of aerosols !cumul begin from the top of the domain, not from the TOA ! @@ -3580,7 +3580,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D2) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D2) ! ! sea DO JK=IKB,IKE @@ -3609,7 +3609,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D2) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D2) ! ! desert DO JK=IKB,IKE @@ -3638,7 +3638,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D2) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D2) ! ! urban DO JK=IKB,IKE @@ -3667,7 +3667,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D2) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D2) ! ! Volcanoes DO JK=IKB,IKE @@ -3696,7 +3696,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D2) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D2) ! ! stratospheric background DO JK=IKB,IKE @@ -3725,7 +3725,7 @@ IF( OCLOSE_OUT .AND. (KRAD_DIAG >= 1) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSTORE_3D2) + CALL IO_Field_write(TPFILE,TZFIELD,ZSTORE_3D2) ENDIF END IF ! diff --git a/src/MNH/rain_c2r2_khko.f90 b/src/MNH/rain_c2r2_khko.f90 index 33f070d10..9139c8987 100644 --- a/src/MNH/rain_c2r2_khko.f90 +++ b/src/MNH/rain_c2r2_khko.f90 @@ -1,12 +1,8 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- -!--------------- special set of characters for RCS information -!----------------------------------------------------------------- -! $Source: /home/cvsroot/MNH-VX-Y-Z/src/MNH/Attic/rain_c2r2_khko.f90,v $ $Revision: 1.1.2.1.2.3 $ -!----------------------------------------------------------------- ! ###################### MODULE MODI_RAIN_C2R2_KHKO ! ###################### @@ -24,7 +20,7 @@ INTERFACE PSOLORG, PMI, HACTCCN, & PINDEP, PSUPSAT, PNACT ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! CHARACTER(LEN=*), INTENT(IN) :: HCLOUD ! kind of cloud @@ -225,7 +221,7 @@ END MODULE MODI_RAIN_C2R2_KHKO USE MODD_PARAMETERS USE MODD_CST USE MODD_CONF -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAM_C2R2 USE MODD_RAIN_C2R2_DESCR USE MODD_RAIN_C2R2_KHKO_PARAM @@ -238,9 +234,8 @@ USE MODD_SALT USE MODI_BUDGET ! USE MODE_FIELD -USE MODE_FM USE MODE_ll -USE MODE_FMWRIT +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODI_GAMMA ! IMPLICIT NONE @@ -602,7 +597,7 @@ INTEGER :: J1 ! TZFIELD%NTYPE = TYPEREAL ! TZFIELD%NDIMS = 3 ! TZFIELD%LTIMEDEP = .TRUE. -! CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZCHEN) +! CALL IO_Field_write(TPFILE,TZFIELD,ZCHEN) ! END IF ! !------------------------------------------------------------------------------- @@ -885,7 +880,7 @@ IF ( OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZZW1LOG) + CALL IO_Field_write(TPFILE,TZFIELD,ZZW1LOG) END IF ! !* 3.4 budget storage @@ -1912,7 +1907,7 @@ DO JN = 1 , KSPLITR TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWSEDC) + CALL IO_Field_write(TPFILE,TZFIELD,ZWSEDC) ! TZFIELD%CMNHNAME = 'SEDFLUXR' TZFIELD%CSTDNAME = '' @@ -1924,7 +1919,7 @@ DO JN = 1 , KSPLITR TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWSEDR) + CALL IO_Field_write(TPFILE,TZFIELD,ZWSEDR) END IF END DO ! diff --git a/src/MNH/rain_ice.f90 b/src/MNH/rain_ice.f90 index 06f621435..4e627a348 100644 --- a/src/MNH/rain_ice.f90 +++ b/src/MNH/rain_ice.f90 @@ -2,6 +2,7 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######spl MODULE MODI_RAIN_ICE ! #################### @@ -252,7 +253,6 @@ USE MODD_BUDGET USE MODD_LES USE MODI_BUDGET USE MODI_GAMMA -USE MODE_FMWRIT USE MODE_ll USE MODE_MSG ! diff --git a/src/MNH/rain_ice_red.f90 b/src/MNH/rain_ice_red.f90 index b2d30ddf9..3f92b1f9e 100644 --- a/src/MNH/rain_ice_red.f90 +++ b/src/MNH/rain_ice_red.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ######spl MODULE MODI_RAIN_ICE_RED @@ -254,7 +254,6 @@ USE MODI_ICE4_SEDIMENTATION_STAT USE MODI_ICE4_SEDIMENTATION_SPLIT USE MODI_ICE4_NUCLEATION_WRAPPER USE MODI_ICE4_TENDENCIES -USE MODE_FMWRIT USE MODE_ll USE MODE_MSG ! diff --git a/src/MNH/read_all_data_grib_case.f90 b/src/MNH/read_all_data_grib_case.f90 index 8d26d8f74..b782886d0 100644 --- a/src/MNH/read_all_data_grib_case.f90 +++ b/src/MNH/read_all_data_grib_case.f90 @@ -10,7 +10,7 @@ INTERFACE SUBROUTINE READ_ALL_DATA_GRIB_CASE(HFILE,TPPRE_REAL1,HGRIB,TPPGDFILE, & PTIME_HORI,KVERB,ODUMMY_REAL ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! CHARACTER(LEN=4), INTENT(IN) :: HFILE ! which file ('ATM0','ATM1' or 'CHEM') TYPE(TFILEDATA),POINTER,INTENT(INOUT) :: TPPRE_REAL1 ! PRE_REAL1 file @@ -134,7 +134,7 @@ END MODULE MODI_READ_ALL_DATA_GRIB_CASE !------------ ! USE MODE_DATETIME -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll +USE MODE_IO_FILE, ONLY: IO_File_close USE MODE_MSG USE MODE_TIME USE MODE_THERMO @@ -152,7 +152,7 @@ USE MODI_CH_AER_INIT_SOA USE MODI_INI_CTURB USE MODI_CH_OPEN_INPUT ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_CONF USE MODD_CONF_n USE MODD_CST @@ -1282,7 +1282,7 @@ IF (IMODEL==5) THEN ENDIF ! ! close file - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ! !* 2.6.2 exchange mocage values onto prognostic variables XSV_LS @@ -1660,7 +1660,7 @@ IF (ODUMMY_REAL) THEN !* 2.10.1 read 2D dummy fields ! ! close file - CALL IO_FILE_CLOSE_ll(TPPRE_REAL1) + CALL IO_File_close(TPPRE_REAL1) ! open input file CALL CH_OPEN_INPUT(TPPRE_REAL1%CNAME, "DUMMY_2D", TZFILE, ILUOUT0, KVERB) ICHANNEL = TZFILE%NLU @@ -1727,7 +1727,7 @@ IF (ODUMMY_REAL) THEN ! END DO ! - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ! IF (NVERB>=10) THEN @@ -1854,8 +1854,6 @@ SUBROUTINE SEARCH_FIELD(KGRIB,KNUM,KPARAM,KDIS,KCAT,KNUMBER,KLEV1) USE MODD_LUNIT USE GRIB_API ! -USE MODE_IO_ll -! IMPLICIT NONE ! ! diff --git a/src/MNH/read_all_data_mesonh_case.f90 b/src/MNH/read_all_data_mesonh_case.f90 index 0b619c2a1..01c538421 100644 --- a/src/MNH/read_all_data_mesonh_case.f90 +++ b/src/MNH/read_all_data_mesonh_case.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -10,7 +10,7 @@ INTERFACE SUBROUTINE READ_ALL_DATA_MESONH_CASE(TZPRE_REAL1,HFMFILE,TPPGDFILE, & HDAD_NAME ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA),POINTER, INTENT(INOUT) :: TZPRE_REAL1 !PRE_REAL1 file CHARACTER(LEN=28), INTENT(IN) :: HFMFILE ! name of the Mesonh input file @@ -111,9 +111,8 @@ END MODULE MODI_READ_ALL_DATA_MESONH_CASE !* 0. DECLARATIONS ! ------------ ! -USE MODE_FM -USE MODE_FMREAD -USE MODE_IO_ll +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG ! USE MODI_READ_GRID_TIME_MESONH_CASE ! interface modules @@ -128,7 +127,7 @@ USE MODI_ZS_BOUNDARY ! USE MODD_CONF ! declaration modules USE MODD_CONF_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAM_n USE MODD_LUNIT USE MODD_LUNIT_n @@ -221,9 +220,9 @@ ZRES = XRES YOUTFILE=CINIFILE CINIFILE=HFMFILE ! -CALL IO_FILE_CLOSE_ll(TZPRE_REAL1) +CALL IO_File_close(TZPRE_REAL1) CALL INIT_MNH -CALL IO_FILE_OPEN_ll(TZPRE_REAL1) +CALL IO_File_open(TZPRE_REAL1) ! CINIFILE=YOUTFILE ! @@ -306,14 +305,14 @@ CALL READ_PRC_FMFILE(IIINF_LS,IISUP_LS,IJINF_LS,IJSUP_LS ) ! --------- ! ALLOCATE(XZS(IISUP_LS-IIINF_LS+1,IJSUP_LS-IJINF_LS+1)) -CALL IO_READ_FIELD(TPPGDFILE,'ZS',XZS) +CALL IO_Field_read(TPPGDFILE,'ZS',XZS) CALL ZS_BOUNDARY(XZS,XZS_LS) ! ALLOCATE(XZSMT(IISUP_LS-IIINF_LS+1,IJSUP_LS-IJINF_LS+1)) IF (TPPGDFILE%NMNHVERSION(1)<4 .OR. (TPPGDFILE%NMNHVERSION(1)==4 .AND. TPPGDFILE%NMNHVERSION(2)<=6)) THEN XZSMT = XZS ELSE - CALL IO_READ_FIELD(TPPGDFILE,'ZSMT',XZSMT) + CALL IO_Field_read(TPPGDFILE,'ZSMT',XZSMT) END IF CALL ZS_BOUNDARY(XZSMT,XZSMT_LS) ! diff --git a/src/MNH/read_chem_data_netcdf_case.f90 b/src/MNH/read_chem_data_netcdf_case.f90 index 1ba217830..b92f56cc4 100644 --- a/src/MNH/read_chem_data_netcdf_case.f90 +++ b/src/MNH/read_chem_data_netcdf_case.f90 @@ -10,7 +10,7 @@ INTERFACE SUBROUTINE READ_CHEM_DATA_NETCDF_CASE(TPPRE_REAL1,HFILE,TPPGDFILE, & PTIME_HORI,KVERB,ODUMMY_REAL ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA),POINTER,INTENT(IN) :: TPPRE_REAL1 ! PRE_REAL1 file CHARACTER(LEN=28), INTENT(IN) :: HFILE ! name of the NETCDF file @@ -99,7 +99,7 @@ USE MODD_CST USE MODD_DIM_n USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT, ONLY: TLUOUT0 USE MODE_MODELN_HANDLER USE MODD_NETCDF, ONLY:IDCDF_KIND @@ -110,15 +110,15 @@ USE MODD_PREP_REAL USE MODD_TIME USE MODD_TIME_n ! -USE MODE_FM +USE MODE_IO_FILE, only: IO_File_close USE MODE_MPPDB USE MODE_THERMO USE MODE_TIME -USE MODE_TOOLS, ONLY: UPCASE +USE MODE_TOOLS, ONLY: UPCASE ! USE MODI_CH_AER_INIT_SOA USE MODI_CH_INIT_SCHEME_n -USE MODI_CH_OPEN_INPUT +USE MODI_CH_OPEN_INPUT USE MODI_HORIBL USE MODI_INI_NSV USE MODI_READ_HGRID_n @@ -728,7 +728,7 @@ if (status /= nf90_noerr) call handle_err(status) ! close ! file -CALL IO_FILE_CLOSE_ll(TZFILE) +CALL IO_File_close(TZFILE) !------------------------------------------------------------- diff --git a/src/MNH/read_desfmn.f90 b/src/MNH/read_desfmn.f90 index 86cde7c74..294bafd45 100644 --- a/src/MNH/read_desfmn.f90 +++ b/src/MNH/read_desfmn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################### @@ -22,7 +22,7 @@ INTERFACE KRIMX,KRIMY,KSV_USER, & HTURB,HTOM,ORMC01,HRAD,HDCONV,HSCONV,HCLOUD,HELEC,HEQNSYS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS ! INTEGER, INTENT(IN) :: KMI ! Model index @@ -196,7 +196,7 @@ END MODULE MODI_READ_DESFM_n ! !* 0. DECLARATIONS ! ------------ -USE MODD_IO_ll, ONLY: NVERB_FATAL, TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS ! diff --git a/src/MNH/read_dummy_gr_fieldn.f90 b/src/MNH/read_dummy_gr_fieldn.f90 index be766bd67..cd3e1b157 100644 --- a/src/MNH/read_dummy_gr_fieldn.f90 +++ b/src/MNH/read_dummy_gr_fieldn.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE READ_DUMMY_GR_FIELD_n(TPINIFILE,KIINF,KISUP,KJINF,KJSUP,OREAD_ALL) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! !* 0.1 declarations of arguments ! @@ -74,12 +74,12 @@ END MODULE MODI_READ_DUMMY_GR_FIELD_n !* 0. DECLARATIONS ! USE MODD_DUMMY_GR_FIELD_n -USE MODE_FIELD, ONLY : TFIELDDATA,TYPEINT,TYPEREAL +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEINT, TYPEREAL USE MODD_GRID_n -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_PARAMETERS, ONLY : JPHEXT, NMNHNAMELGTMAX +USE MODD_IO, ONLY: TFILEDATA +USE MODD_PARAMETERS, ONLY: JPHEXT, NMNHNAMELGTMAX ! -USE MODE_FMREAD +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG ! IMPLICIT NONE @@ -134,8 +134,8 @@ ELSE IJINF = KJINF IJSUP = KJSUP ! - CALL IO_READ_FIELD(TPINIFILE,'IMAX',IIWORK) - CALL IO_READ_FIELD(TPINIFILE,'JMAX',IJWORK) + CALL IO_Field_read(TPINIFILE,'IMAX',IIWORK) + CALL IO_Field_read(TPINIFILE,'JMAX',IJWORK) ! ALLOCATE(ZWORK(IIWORK+2*JPHEXT,IJWORK+2*JPHEXT)) END IF @@ -158,7 +158,7 @@ IF (TPINIFILE%NMNHVERSION(1)>=4) THEN TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. ! - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,NDUMMY_GR_NBR,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,NDUMMY_GR_NBR,IRESP) ! IF (IRESP/=0) THEN !callabortstop @@ -189,7 +189,7 @@ DO JDUMMY=1,NDUMMY_GR_NBR TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. ! - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,ZWORK(:,:),IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,ZWORK(:,:),IRESP) ! IF (IRESP/=0) THEN !callabortstop diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90 index e8f0e9d73..05faa7b8c 100644 --- a/src/MNH/read_exsegn.f90 +++ b/src/MNH/read_exsegn.f90 @@ -23,7 +23,7 @@ INTERFACE HTURB,HTOM,ORMC01,HRAD,HDCONV,HSCONV,HCLOUD,HELEC, & HEQNSYS,PTSTEP_ALL,HSTORAGE_TYPE,HINIFILEPGD ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KMI ! Model index TYPE(TFILEDATA), INTENT(IN) :: TPEXSEGFILE ! EXSEG file @@ -299,7 +299,7 @@ USE MODD_PARAMETERS USE MODD_CONF USE MODD_CONFZ USE MODD_CONF_n, ONLY: CSTORAGE_TYPE -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_VAR_ll, ONLY: NPROC ! @@ -352,7 +352,6 @@ USE MODD_GET_n USE MODD_GR_FIELD_n ! USE MODE_POS -USE MODE_IO_ll USE MODE_MSG ! USE MODI_TEST_NAM_VAR diff --git a/src/MNH/read_exspa.f90 b/src/MNH/read_exspa.f90 index 1eb9bd915..f2b15fa20 100644 --- a/src/MNH/read_exspa.f90 +++ b/src/MNH/read_exspa.f90 @@ -102,13 +102,13 @@ END MODULE MODI_READ_EXSPA ! ------------ ! USE MODD_CONF -USE MODD_IO_ll, ONLY : TFILEDATA,TFILE_OUTPUTLISTING +USE MODD_IO, ONLY : TFILEDATA,TFILE_OUTPUTLISTING USE MODD_LUNIT_n, ONLY : LUNIT_MODEL USE MODD_PARAMETERS ! -USE MODE_FM, ONLY : IO_FILE_OPEN_ll,IO_FILE_CLOSE_ll -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST +USE MODE_IO, only: IO_Config_set +USE MODE_IO_FILE, only: IO_File_open, IO_File_close +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list USE MODE_POS USE MODE_MODELN_HANDLER ! @@ -202,16 +202,16 @@ YSPANBR = '00' YDADINIFILE = ' ' YDADSPAFILE = ' ' ! -CALL IO_FILE_ADD2LIST(LUNIT_MODEL(2)%TLUOUT,'OUTPUT_LISTING2','OUTPUTLISTING','WRITE') -CALL IO_FILE_OPEN_ll(LUNIT_MODEL(2)%TLUOUT) +CALL IO_File_add2list(LUNIT_MODEL(2)%TLUOUT,'OUTPUT_LISTING2','OUTPUTLISTING','WRITE') +CALL IO_File_open(LUNIT_MODEL(2)%TLUOUT) ! !Set output file for PRINT_MSG TFILE_OUTPUTLISTING => LUNIT_MODEL(2)%TLUOUT ! ILUOUT=LUNIT_MODEL(2)%TLUOUT%NLU ! -CALL IO_FILE_ADD2LIST(TZNMLFILE,'SPAWN1.nam','NML','READ') -CALL IO_FILE_OPEN_ll(TZNMLFILE) +CALL IO_File_add2list(TZNMLFILE,'SPAWN1.nam','NML','READ') +CALL IO_File_open(TZNMLFILE) ILUSPA = TZNMLFILE%NLU ! ! @@ -239,8 +239,8 @@ LUNIT_MODEL(2)%CINIFILEPGD = CINIFILEPGD CALL POSNAM(ILUSPA,'NAM_CONFIO',GFOUND,ILUOUT) IF (GFOUND) READ(ILUSPA,NAM_CONFIO) ! -CALL SET_CONFIO_ll() -CALL IO_FILE_CLOSE_ll(TZNMLFILE) +CALL IO_Config_set() +CALL IO_File_close(TZNMLFILE) ! ! !* 3. model 1 and SON1 FM file name (passed as arguments) diff --git a/src/MNH/read_field.f90 b/src/MNH/read_field.f90 index 819595627..9c305af69 100644 --- a/src/MNH/read_field.f90 +++ b/src/MNH/read_field.f90 @@ -30,7 +30,7 @@ INTERFACE PVTH_FLUX_M,PWTH_FLUX_M,PVU_FLUX_M, & PRUS_PRES,PRVS_PRES,PRWS_PRES,PRTHS_CLD,PRRS_CLD,PRSVS_CLD ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA USE MODD_TIME ! for type DATE_TIME ! ! @@ -259,7 +259,7 @@ USE MODD_BLOWSNOW USE MODD_BLOWSNOW_n USE MODD_ICE_C1R3_DESCR, ONLY: C1R3NAMES -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LATZ_EDFLX USE MODD_LG, ONLY: CLGNAMES USE MODD_LUNIT_N, ONLY: TLUOUT @@ -277,8 +277,8 @@ USE MODD_RAIN_C2R2_DESCR, ONLY: C2R2NAMES USE MODD_SALT USE MODD_TIME ! for type DATE_TIME ! -USE MODE_FIELD, ONLY: TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME,TYPEDATE,TYPEREAL -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA, TFIELDLIST, FIND_FIELD_ID_FROM_MNHNAME, TYPEDATE, TYPEREAL +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG USE MODE_TOOLS, ONLY: UPCASE ! @@ -413,33 +413,33 @@ IF (TPINIFILE%NMNHVERSION(1)<5) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('UT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'UM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PUT) + CALL IO_Field_read(TPINIFILE,TZFIELD,PUT) ! CALL FIND_FIELD_ID_FROM_MNHNAME('VT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'VM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PVT) + CALL IO_Field_read(TPINIFILE,TZFIELD,PVT) ! CALL FIND_FIELD_ID_FROM_MNHNAME('WT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'WM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PWT) + CALL IO_Field_read(TPINIFILE,TZFIELD,PWT) ! CALL FIND_FIELD_ID_FROM_MNHNAME('THT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'THM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PTHT) + CALL IO_Field_read(TPINIFILE,TZFIELD,PTHT) ! CALL FIND_FIELD_ID_FROM_MNHNAME('PABST',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'PABSM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PPABST) + CALL IO_Field_read(TPINIFILE,TZFIELD,PPABST) ELSE - CALL IO_READ_FIELD(TPINIFILE,'UT',PUT) - CALL IO_READ_FIELD(TPINIFILE,'VT',PVT) - CALL IO_READ_FIELD(TPINIFILE,'WT',PWT) - CALL IO_READ_FIELD(TPINIFILE,'THT',PTHT) - CALL IO_READ_FIELD(TPINIFILE,'PABST',PPABST) + CALL IO_Field_read(TPINIFILE,'UT',PUT) + CALL IO_Field_read(TPINIFILE,'VT',PVT) + CALL IO_Field_read(TPINIFILE,'WT',PWT) + CALL IO_Field_read(TPINIFILE,'THT',PTHT) + CALL IO_Field_read(TPINIFILE,'PABST',PPABST) ENDIF ! SELECT CASE(HGETTKET) @@ -448,13 +448,13 @@ SELECT CASE(HGETTKET) CALL FIND_FIELD_ID_FROM_MNHNAME('TKET',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'TKEM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PTKET) + CALL IO_Field_read(TPINIFILE,TZFIELD,PTKET) ELSE - CALL IO_READ_FIELD(TPINIFILE,'TKET',PTKET) + CALL IO_Field_read(TPINIFILE,'TKET',PTKET) END IF IF ( ( (TPINIFILE%NMNHVERSION(1)==5 .AND. TPINIFILE%NMNHVERSION(2)>0) .OR. TPINIFILE%NMNHVERSION(1)>5 ) & .AND. (CCONF == 'RESTA') .AND. LSPLIT_CFL) THEN - CALL IO_READ_FIELD(TPINIFILE,'TKEMS',PRTKEMS) + CALL IO_Field_read(TPINIFILE,'TKEMS',PRTKEMS) END IF CASE('INIT') PTKET(:,:,:) = XTKEMIN @@ -467,9 +467,9 @@ SELECT CASE(HGETRVT) ! vapor CALL FIND_FIELD_ID_FROM_MNHNAME('RVT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'RVM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RVT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RVT)) ELSE - CALL IO_READ_FIELD(TPINIFILE,'RVT',PRT(:,:,:,IDX_RVT)) + CALL IO_Field_read(TPINIFILE,'RVT',PRT(:,:,:,IDX_RVT)) END IF CASE('INIT') PRT(:,:,:,IDX_RVT) = 0. @@ -481,9 +481,9 @@ SELECT CASE(HGETRCT) ! cloud CALL FIND_FIELD_ID_FROM_MNHNAME('RCT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'RCM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RCT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RCT)) ELSE - CALL IO_READ_FIELD(TPINIFILE,'RCT',PRT(:,:,:,IDX_RCT)) + CALL IO_Field_read(TPINIFILE,'RCT',PRT(:,:,:,IDX_RCT)) END IF CASE('INIT') PRT(:,:,:,IDX_RCT) = 0. @@ -495,9 +495,9 @@ SELECT CASE(HGETRRT) ! rain CALL FIND_FIELD_ID_FROM_MNHNAME('RRT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'RRM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RRT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RRT)) ELSE - CALL IO_READ_FIELD(TPINIFILE,'RRT',PRT(:,:,:,IDX_RRT)) + CALL IO_Field_read(TPINIFILE,'RRT',PRT(:,:,:,IDX_RRT)) END IF CASE('INIT') PRT(:,:,:,IDX_RRT) = 0. @@ -509,9 +509,9 @@ SELECT CASE(HGETRIT) ! cloud ice CALL FIND_FIELD_ID_FROM_MNHNAME('RIT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'RIM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RIT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RIT)) ELSE - CALL IO_READ_FIELD(TPINIFILE,'RIT',PRT(:,:,:,IDX_RIT)) + CALL IO_Field_read(TPINIFILE,'RIT',PRT(:,:,:,IDX_RIT)) END IF CASE('INIT') PRT(:,:,:,IDX_RIT) = 0. @@ -523,9 +523,9 @@ SELECT CASE(HGETRST) ! snow CALL FIND_FIELD_ID_FROM_MNHNAME('RST',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'RSM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RST)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RST)) ELSE - CALL IO_READ_FIELD(TPINIFILE,'RST',PRT(:,:,:,IDX_RST)) + CALL IO_Field_read(TPINIFILE,'RST',PRT(:,:,:,IDX_RST)) END IF CASE('INIT') PRT(:,:,:,IDX_RST) = 0. @@ -537,9 +537,9 @@ SELECT CASE(HGETRGT) ! graupel CALL FIND_FIELD_ID_FROM_MNHNAME('RGT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'RGM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RGT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RGT)) ELSE - CALL IO_READ_FIELD(TPINIFILE,'RGT',PRT(:,:,:,IDX_RGT)) + CALL IO_Field_read(TPINIFILE,'RGT',PRT(:,:,:,IDX_RGT)) END IF CASE('INIT') PRT(:,:,:,IDX_RGT) = 0. @@ -551,9 +551,9 @@ SELECT CASE(HGETRHT) ! hail CALL FIND_FIELD_ID_FROM_MNHNAME('RHT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'RHM' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RHT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PRT(:,:,:,IDX_RHT)) ELSE - CALL IO_READ_FIELD(TPINIFILE,'RHT',PRT(:,:,:,IDX_RHT)) + CALL IO_Field_read(TPINIFILE,'RHT',PRT(:,:,:,IDX_RHT)) END IF CASE('INIT') PRT(:,:,:,IDX_RHT) = 0. @@ -561,7 +561,7 @@ END SELECT ! SELECT CASE(HGETCIT) ! ice concentration CASE('READ') - IF (SIZE(PCIT) /= 0 ) CALL IO_READ_FIELD(TPINIFILE,'CIT',PCIT) + IF (SIZE(PCIT) /= 0 ) CALL IO_Field_read(TPINIFILE,'CIT',PCIT) CASE('INIT') PCIT(:,:,:)=0. END SELECT @@ -585,7 +585,7 @@ IF (NSV_USER>0) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'SVT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -607,7 +607,7 @@ IF (NSV_C2R2END>=NSV_C2R2BEG) THEN TZFIELD%CMNHNAME = TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. IF (LSUPSAT .AND. (HGETRVT == 'READ') ) THEN @@ -638,7 +638,7 @@ IF (NSV_C1R3END>=NSV_C1R3BEG) THEN TZFIELD%CMNHNAME = TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -708,7 +708,7 @@ DO JSV = NSV_LIMA_BEG,NSV_LIMA_END END IF ! TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -734,7 +734,7 @@ IF (NSV_ELECEND>=NSV_ELECBEG) THEN TZFIELD%CUNITS = 'm-3' WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (nb ions/m3)' END IF - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -757,7 +757,7 @@ IF (NSV_CHGSEND>=NSV_CHGSBEG) THEN TZFIELD%CMNHNAME = TRIM(CNAMES(JSV-NSV_CHGSBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A4,I3.3)')'X_Y_Z_','CHIM',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -781,7 +781,7 @@ IF (NSV_CHACEND>=NSV_CHACBEG) THEN TZFIELD%CMNHNAME = TRIM(CNAMES(JSV-NSV_CHACBEG+NSV_CHGS+1))//'M' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A4,I3.3,A4)')'X_Y_Z_','CHAQ',JSV,' (M)' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) !***ATTENTION: BUG ? field written with a M suffix, read with a T suffix CASE ('INIT') PSVT(:,:,:,JSV) = 0. @@ -805,7 +805,7 @@ IF (NSV_CHICEND>=NSV_CHICBEG) THEN TZFIELD%CMNHNAME = TRIM(CICNAMES(JSV-NSV_CHICBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -827,7 +827,7 @@ IF (NSV_SLTEND>=NSV_SLTBEG) THEN TZFIELD%CMNHNAME = TRIM(CSALTNAMES(JSV-NSV_SLTBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -849,7 +849,7 @@ IF (NSV_SLTDEPEND>=NSV_SLTDEPBEG) THEN TZFIELD%CMNHNAME = TRIM(CDESLTNAMES(JSV-NSV_SLTDEPBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -871,7 +871,7 @@ IF (NSV_DSTEND>=NSV_DSTBEG) THEN TZFIELD%CMNHNAME = TRIM(CDUSTNAMES(JSV-NSV_DSTBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -893,7 +893,7 @@ IF (NSV_DSTDEPEND>=NSV_DSTDEPBEG) THEN TZFIELD%CMNHNAME = TRIM(CDEDSTNAMES(JSV-NSV_DSTDEPBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -915,7 +915,7 @@ IF (NSV_AEREND>=NSV_AERBEG) THEN TZFIELD%CMNHNAME = TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1)))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -937,7 +937,7 @@ IF (NSV_AERDEPEND>=NSV_AERDEPBEG) THEN TZFIELD%CMNHNAME = TRIM(CDEAERNAMES(JSV-NSV_AERDEPBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -959,7 +959,7 @@ IF (NSV_LGEND>=NSV_LGBEG) THEN TZFIELD%CMNHNAME = TRIM(CLGNAMES(JSV-NSV_LGBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -981,7 +981,7 @@ IF (NSV_PPEND>=NSV_PPBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'kg kg-1' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV),IRESP) IF (IRESP/=0) THEN PSVT(:,:,:,JSV) = 0. END IF @@ -990,7 +990,7 @@ IF (NSV_PPEND>=NSV_PPBEG) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','ATC',JSV+NSV_PPBEG-1 TZFIELD%CUNITS = 'm-3' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PATC(:,:,:,JSV-NSV_PPBEG+1),IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,PATC(:,:,:,JSV-NSV_PPBEG+1),IRESP) IF (IRESP/=0) THEN PATC(:,:,:,JSV-NSV_PPBEG+1) = 0. ENDIF @@ -1017,7 +1017,7 @@ IF (NSV_FFEND>=NSV_FFBEG) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'SVT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV),IRESP) IF (IRESP /= 0) THEN PSVT(:,:,:,JSV) = 0. END IF @@ -1043,7 +1043,7 @@ IF (NSV_CSEND>=NSV_CSBEG) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'SVT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV),IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV),IRESP) IF (IRESP /= 0) THEN PSVT(:,:,:,JSV) = 0. END IF @@ -1068,7 +1068,7 @@ IF (NSV_LNOXEND>=NSV_LNOXBEG) THEN TZFIELD%CMNHNAME = 'LINOXT' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)') 'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -1089,7 +1089,7 @@ IF (NSV_SNWEND>=NSV_SNWBEG) THEN TZFIELD%CMNHNAME = TRIM(CSNOWNAMES(JSV-NSV_SNWBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)') 'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PSVT(:,:,:,JSV)) CASE ('INIT') PSVT(:,:,:,JSV) = 0. END SELECT @@ -1109,7 +1109,7 @@ IF (NSV_SNW>=1) THEN WRITE(TZFIELD%CMNHNAME,'(A10,I3.3)')'SNOWCANO_M',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A8,I3.3)') 'X_Y_Z_','SNOWCANO',JSV - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,XSNWCANO(:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,XSNWCANO(:,:,JSV)) CASE ('INIT') XSNWCANO(:,:,JSV) = 0. END SELECT @@ -1120,28 +1120,28 @@ END IF ! IF (CCONF == 'RESTA') THEN IF (CTEMP_SCHEME/='LEFR') THEN - CALL IO_READ_FIELD(TPINIFILE,'US_PRES',PRUS_PRES) - CALL IO_READ_FIELD(TPINIFILE,'VS_PRES',PRVS_PRES) - CALL IO_READ_FIELD(TPINIFILE,'WS_PRES',PRWS_PRES) + CALL IO_Field_read(TPINIFILE,'US_PRES',PRUS_PRES) + CALL IO_Field_read(TPINIFILE,'VS_PRES',PRVS_PRES) + CALL IO_Field_read(TPINIFILE,'WS_PRES',PRWS_PRES) END IF IF (LSPLIT_CFL) THEN - CALL IO_READ_FIELD(TPINIFILE,'THS_CLD',PRTHS_CLD) + CALL IO_Field_read(TPINIFILE,'THS_CLD',PRTHS_CLD) DO JRR = 1, SIZE(PRT,4) SELECT CASE(JRR) CASE (1) - CALL IO_READ_FIELD(TPINIFILE,'RVS_CLD',PRRS_CLD(:,:,:,JRR)) + CALL IO_Field_read(TPINIFILE,'RVS_CLD',PRRS_CLD(:,:,:,JRR)) CASE (2) - CALL IO_READ_FIELD(TPINIFILE,'RCS_CLD',PRRS_CLD(:,:,:,JRR)) + CALL IO_Field_read(TPINIFILE,'RCS_CLD',PRRS_CLD(:,:,:,JRR)) CASE (3) - CALL IO_READ_FIELD(TPINIFILE,'RRS_CLD',PRRS_CLD(:,:,:,JRR)) + CALL IO_Field_read(TPINIFILE,'RRS_CLD',PRRS_CLD(:,:,:,JRR)) CASE (4) - CALL IO_READ_FIELD(TPINIFILE,'RIS_CLD',PRRS_CLD(:,:,:,JRR)) + CALL IO_Field_read(TPINIFILE,'RIS_CLD',PRRS_CLD(:,:,:,JRR)) CASE (5) - CALL IO_READ_FIELD(TPINIFILE,'RSS_CLD',PRRS_CLD(:,:,:,JRR)) + CALL IO_Field_read(TPINIFILE,'RSS_CLD',PRRS_CLD(:,:,:,JRR)) CASE (6) - CALL IO_READ_FIELD(TPINIFILE,'RGS_CLD',PRRS_CLD(:,:,:,JRR)) + CALL IO_Field_read(TPINIFILE,'RGS_CLD',PRRS_CLD(:,:,:,JRR)) CASE (7) - CALL IO_READ_FIELD(TPINIFILE,'RHS_CLD',PRRS_CLD(:,:,:,JRR)) + CALL IO_Field_read(TPINIFILE,'RHS_CLD',PRRS_CLD(:,:,:,JRR)) CASE DEFAULT CALL PRINT_MSG(NVERB_FATAL,'GEN','READ_FIELD','PRT is too big') END SELECT @@ -1158,7 +1158,7 @@ IF (CCONF == 'RESTA') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRSVS_CLD(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PRSVS_CLD(:,:,:,JSV)) END IF IF (JSV == NSV_C2R2BEG ) THEN TZFIELD%CMNHNAME = 'RSVS_CLD2' @@ -1171,7 +1171,7 @@ IF (CCONF == 'RESTA') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRSVS_CLD(:,:,:,JSV)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PRSVS_CLD(:,:,:,JSV)) END IF END DO END IF @@ -1182,12 +1182,12 @@ END IF IF (CPROGRAM=='MESONH' .AND. HUVW_ADV_SCHEME(1:3)=='CEN' .AND. & HTEMP_SCHEME == 'LEFR' ) THEN IF (CCONF=='RESTA') THEN - CALL IO_READ_FIELD(TPINIFILE,'UM', PUM) - CALL IO_READ_FIELD(TPINIFILE,'VM', PVM) - CALL IO_READ_FIELD(TPINIFILE,'WM', PWM) - CALL IO_READ_FIELD(TPINIFILE,'DUM',PDUM) - CALL IO_READ_FIELD(TPINIFILE,'DVM',PDVM) - CALL IO_READ_FIELD(TPINIFILE,'DWM',PDWM) + CALL IO_Field_read(TPINIFILE,'UM', PUM) + CALL IO_Field_read(TPINIFILE,'VM', PVM) + CALL IO_Field_read(TPINIFILE,'WM', PWM) + CALL IO_Field_read(TPINIFILE,'DUM',PDUM) + CALL IO_Field_read(TPINIFILE,'DVM',PDVM) + CALL IO_Field_read(TPINIFILE,'DWM',PDWM) ELSE PUM = PUT PVM = PVT @@ -1216,39 +1216,39 @@ CALL INI_LB(TPINIFILE,GLSOURCE,ISV, & ! !* 2.3 Some special variables: ! -CALL IO_READ_FIELD(TPINIFILE,'DRYMASST',PDRYMASST) ! dry mass +CALL IO_Field_read(TPINIFILE,'DRYMASST',PDRYMASST) ! dry mass ! SELECT CASE(HGETSRCT) ! turbulent flux SRC at time t CASE('READ') - CALL IO_READ_FIELD(TPINIFILE,'SRCT',PSRCT) + CALL IO_Field_read(TPINIFILE,'SRCT',PSRCT) CASE('INIT') PSRCT(:,:,:)=0. END SELECT ! SELECT CASE(HGETSIGS) ! subgrid condensation CASE('READ') - CALL IO_READ_FIELD(TPINIFILE,'SIGS',PSIGS) + CALL IO_Field_read(TPINIFILE,'SIGS',PSIGS) CASE('INIT') PSIGS(:,:,:)=0. END SELECT ! SELECT CASE(HGETPHC) ! pH in cloud water CASE('READ') - CALL IO_READ_FIELD(TPINIFILE,'PHC',PPHC) + CALL IO_Field_read(TPINIFILE,'PHC',PPHC) CASE('INIT') PPHC(:,:,:)=0. END SELECT ! SELECT CASE(HGETPHR) ! pH in rainwater CASE('READ') - CALL IO_READ_FIELD(TPINIFILE,'PHR',PPHR) + CALL IO_Field_read(TPINIFILE,'PHR',PPHR) CASE('INIT') PPHR(:,:,:)=0. END SELECT ! IRESP=0 IF(HGETCLDFR=='READ') THEN ! cloud fraction - CALL IO_READ_FIELD(TPINIFILE,'CLDFR',PCLDFR,IRESP) + CALL IO_Field_read(TPINIFILE,'CLDFR',PCLDFR,IRESP) ENDIF IF(HGETCLDFR=='INIT' .OR. IRESP /= 0) THEN IF(SIZE(PRT,4) > 3) THEN @@ -1269,7 +1269,7 @@ ENDIF !* boundary layer depth ! IF (HGETBL_DEPTH=='READ') THEN - CALL IO_READ_FIELD(TPINIFILE,'BL_DEPTH',PBL_DEPTH) + CALL IO_Field_read(TPINIFILE,'BL_DEPTH',PBL_DEPTH) ELSE PBL_DEPTH(:,:)=XUNDEF END IF @@ -1277,7 +1277,7 @@ END IF !* surface boundary layer depth ! IF (HGETSBL_DEPTH=='READ') THEN - CALL IO_READ_FIELD(TPINIFILE,'SBL_DEPTH',PSBL_DEPTH) + CALL IO_Field_read(TPINIFILE,'SBL_DEPTH',PSBL_DEPTH) ELSE PSBL_DEPTH(:,:)=0. END IF @@ -1287,7 +1287,7 @@ END IF SELECT CASE(HGETTKET) CASE('READ') IF (CSCONV=='EDKF') THEN - CALL IO_READ_FIELD(TPINIFILE,'WTHVMF',PWTHVMF) + CALL IO_Field_read(TPINIFILE,'WTHVMF',PWTHVMF) ELSE PWTHVMF(:,:,:)=0 ENDIF @@ -1315,7 +1315,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEDATE TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,TPDTFRC(JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,TPDTFRC(JT)) ! TZFIELD%CMNHNAME = 'UFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1327,7 +1327,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PUFRC(:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PUFRC(:,JT)) ! TZFIELD%CMNHNAME = 'VFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1339,7 +1339,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PVFRC(:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PVFRC(:,JT)) ! TZFIELD%CMNHNAME = 'WFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1351,7 +1351,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PWFRC(:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PWFRC(:,JT)) ! TZFIELD%CMNHNAME = 'THFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1363,7 +1363,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PTHFRC(:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'RVFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1375,7 +1375,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRVFRC(:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PRVFRC(:,JT)) ! TZFIELD%CMNHNAME = 'TENDTHFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1387,7 +1387,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PTENDTHFRC(:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PTENDTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'TENDRVFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1399,7 +1399,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PTENDRVFRC(:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PTENDRVFRC(:,JT)) ! TZFIELD%CMNHNAME = 'GXTHFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1411,7 +1411,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PGXTHFRC(:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PGXTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'GYTHFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1423,7 +1423,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PGYTHFRC(:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PGYTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'PGROUNDFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1435,7 +1435,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PPGROUNDFRC(JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PPGROUNDFRC(JT)) ! TZFIELD%CMNHNAME = 'TENDUFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1447,7 +1447,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PTENDUFRC(:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PTENDUFRC(:,JT)) ! TZFIELD%CMNHNAME = 'TENDVFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1459,7 +1459,7 @@ IF ( LFORCING ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PTENDVFRC(:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PTENDVFRC(:,JT)) END DO END IF ! @@ -1479,7 +1479,7 @@ IF (L2D_ADV_FRC) THEN TZFIELD%NTYPE = TYPEDATE TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,TPDTADVFRC(JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,TPDTADVFRC(JT)) ! TZFIELD%CMNHNAME = 'TH_ADV'//YFRC TZFIELD%CSTDNAME = '' @@ -1491,7 +1491,7 @@ IF (L2D_ADV_FRC) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDTHFRC(:,:,:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDTHFRC(:,:,:,JT)) ! TZFIELD%CMNHNAME = 'Q_ADV'//YFRC TZFIELD%CSTDNAME = '' @@ -1503,7 +1503,7 @@ IF (L2D_ADV_FRC) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PDRVFRC(:,:,:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PDRVFRC(:,:,:,JT)) ENDDO ENDIF ! @@ -1522,7 +1522,7 @@ IF (L2D_REL_FRC) THEN TZFIELD%NTYPE = TYPEDATE TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,TPDTRELFRC(JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,TPDTRELFRC(JT)) ! ! Relaxation TZFIELD%CMNHNAME = 'TH_REL'//YFRC @@ -1535,7 +1535,7 @@ IF (L2D_REL_FRC) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PTHREL(:,:,:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PTHREL(:,:,:,JT)) ! TZFIELD%CMNHNAME = 'Q_REL'//YFRC TZFIELD%CSTDNAME = '' @@ -1547,13 +1547,13 @@ IF (L2D_REL_FRC) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PRVREL(:,:,:,JT)) + CALL IO_Field_read(TPINIFILE,TZFIELD,PRVREL(:,:,:,JT)) ENDDO ENDIF ! IF (LUV_FLX) THEN IF ( CCONF /= 'START' .OR. CPROGRAM=='SPAWN ' ) THEN - CALL IO_READ_FIELD(TPINIFILE,'VU_FLX',PVU_FLUX_M) + CALL IO_Field_read(TPINIFILE,'VU_FLX',PVU_FLUX_M) ELSE IF (CCONF == 'START') THEN PVU_FLUX_M(:,:,:)=0. END IF @@ -1561,8 +1561,8 @@ ENDIF ! IF (LTH_FLX) THEN IF ( CCONF /= 'START' .OR. CPROGRAM=='SPAWN ' ) THEN - CALL IO_READ_FIELD(TPINIFILE,'VT_FLX',PVTH_FLUX_M) - CALL IO_READ_FIELD(TPINIFILE,'WT_FLX',PWTH_FLUX_M) + CALL IO_Field_read(TPINIFILE,'VT_FLX',PVTH_FLUX_M) + CALL IO_Field_read(TPINIFILE,'WT_FLX',PWTH_FLUX_M) ELSE IF (CCONF == 'START') THEN PWTH_FLUX_M(:,:,:)=0. PVTH_FLUX_M(:,:,:)=0. diff --git a/src/MNH/read_grid_time_mesonh_case.f90 b/src/MNH/read_grid_time_mesonh_case.f90 index 9c2c6669e..58599b383 100644 --- a/src/MNH/read_grid_time_mesonh_case.f90 +++ b/src/MNH/read_grid_time_mesonh_case.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -90,15 +90,15 @@ END MODULE MODI_READ_GRID_TIME_MESONH_CASE USE MODD_CONF USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS USE MODD_PREP_REAL USE MODD_TIME USE MODD_TIME_n ! -USE MODE_FMREAD -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_MANAGE_STRUCT, only: IO_File_find_byname ! USE MODI_DEFAULT_SLEVE USE MODI_READ_HGRID @@ -152,12 +152,12 @@ ZEPS=1.E-10 ! !PW: TODO: temporary: look for file from its name ! TPFMFILE should be passed in arguments -CALL IO_FILE_FIND_BYNAME(HFMFILE,TZFMFILE,IRESP) +CALL IO_File_find_byname(HFMFILE,TZFMFILE,IRESP) ! !* 1.1 Original FMfile name ! -------------------- ! -CALL IO_READ_FIELD(TZFMFILE,'DAD_NAME',HDAD_NAME) +CALL IO_Field_read(TZFMFILE,'DAD_NAME',HDAD_NAME) ! !------------------------------------------------------------------------------- ! @@ -167,12 +167,12 @@ CALL IO_READ_FIELD(TZFMFILE,'DAD_NAME',HDAD_NAME) !* 2.1 Projection : ! ---------- ! -CALL IO_READ_FIELD(TZFMFILE,'LON0',ZLON0_LS) +CALL IO_Field_read(TZFMFILE,'LON0',ZLON0_LS) ZLON0_LS =ZLON0_LS +NINT((XLON0 -ZLON0_LS )/360.)*360. ! -CALL IO_READ_FIELD(TZFMFILE,'RPK', ZRPK_LS) -CALL IO_READ_FIELD(TZFMFILE,'LAT0',ZLAT0_LS) -CALL IO_READ_FIELD(TZFMFILE,'BETA',ZBETA_LS) +CALL IO_Field_read(TZFMFILE,'RPK', ZRPK_LS) +CALL IO_Field_read(TZFMFILE,'LAT0',ZLAT0_LS) +CALL IO_Field_read(TZFMFILE,'BETA',ZBETA_LS) ! IF ( (ABS(ZLAT0_LS-XLAT0)>ZEPS*MAX(1.,ABS(XLAT0))) & .OR. (ABS(ZLON0_LS-XLON0)>ZEPS*MAX(1.,ABS(XLON0))) & @@ -215,30 +215,30 @@ END IF ! ------------- ! ! -CALL IO_READ_FIELD(TZFMFILE,'KMAX',ILMAX_LS) +CALL IO_Field_read(TZFMFILE,'KMAX',ILMAX_LS) ! ILMAX_LS=ILMAX_LS+2*JPVEXT ! ALLOCATE(XZHAT_LS(ILMAX_LS)) -CALL IO_READ_FIELD(TZFMFILE,'ZHAT',XZHAT_LS) +CALL IO_Field_read(TZFMFILE,'ZHAT',XZHAT_LS) ! CALL DEFAULT_SLEVE(LSLEVE_LS,XLEN1_LS,XLEN2_LS) IF (TZFMFILE%NMNHVERSION(1)<4 .OR. (TZFMFILE%NMNHVERSION(1)==4 .AND. TZFMFILE%NMNHVERSION(2)<=6)) THEN LSLEVE_LS = .FALSE. ELSE - CALL IO_READ_FIELD(TZFMFILE,'SLEVE',LSLEVE_LS) + CALL IO_Field_read(TZFMFILE,'SLEVE',LSLEVE_LS) IF (LSLEVE_LS) THEN - CALL IO_READ_FIELD(TZFMFILE,'LEN1',XLEN1_LS) - CALL IO_READ_FIELD(TZFMFILE,'LEN2',XLEN2_LS) + CALL IO_Field_read(TZFMFILE,'LEN1',XLEN1_LS) + CALL IO_Field_read(TZFMFILE,'LEN2',XLEN2_LS) END IF END IF ! -CALL IO_READ_FIELD(TZFMFILE,'THINSHELL',LTHINSHELL) +CALL IO_Field_read(TZFMFILE,'THINSHELL',LTHINSHELL) ! !* 2.5 Time variables : ! -------------- ! -CALL IO_READ_FIELD(TZFMFILE,'DTCUR',TDTCUR) +CALL IO_Field_read(TZFMFILE,'DTCUR',TDTCUR) ! TDTMOD=TDTCUR TDTSEG=TDTCUR diff --git a/src/MNH/read_hgrid.f90 b/src/MNH/read_hgrid.f90 index b501ea100..26b9881e4 100644 --- a/src/MNH/read_hgrid.f90 +++ b/src/MNH/read_hgrid.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -9,7 +9,7 @@ INTERFACE SUBROUTINE READ_HGRID(KMI,TPFMFILE,HMY_NAME,HDAD_NAME,HSTORAGE_TYPE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KMI ! model index TYPE(TFILEDATA), INTENT(IN) :: TPFMFILE ! file n @@ -80,18 +80,17 @@ END MODULE MODI_READ_HGRID ! !* 0. DECLARATIONS ! -USE MODD_CONF, ONLY : CPROGRAM +USE MODD_CONF, ONLY: CPROGRAM USE MODD_GRID -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_PGDDIM USE MODD_PGDGRID ! -USE MODE_FIELD, ONLY : TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME -USE MODE_FM, ONLY : SET_FMPACK_ll -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA, TFIELDLIST, FIND_FIELD_ID_FROM_MNHNAME +USE MODE_IO, ONLY: IO_Pack_set +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_GRIDPROJ -USE MODE_IO_ll USE MODE_MSG USE MODE_MODELN_HANDLER ! @@ -148,9 +147,9 @@ END IF !* 2.1 General information : ! ------------------- ! -CALL IO_READ_FIELD(TPFMFILE,'MY_NAME', HMY_NAME) -CALL IO_READ_FIELD(TPFMFILE,'DAD_NAME', HDAD_NAME) -CALL IO_READ_FIELD(TPFMFILE,'STORAGE_TYPE',HSTORAGE_TYPE) +CALL IO_Field_read(TPFMFILE,'MY_NAME', HMY_NAME) +CALL IO_Field_read(TPFMFILE,'DAD_NAME', HDAD_NAME) +CALL IO_Field_read(TPFMFILE,'STORAGE_TYPE',HSTORAGE_TYPE) ! !* 2.2 Grid information : ! ---------------- @@ -159,14 +158,14 @@ CALL IO_READ_FIELD(TPFMFILE,'STORAGE_TYPE',HSTORAGE_TYPE) !GET_DIM_PHYS_ll impact => 1st one no visible impact CALL GET_DIM_PHYS_ll ( 'B',NPGDIMAX,NPGDJMAX) ! -CALL IO_READ_FIELD(TPFMFILE,'LAT0', XLAT0) -CALL IO_READ_FIELD(TPFMFILE,'LON0', XLON0) -CALL IO_READ_FIELD(TPFMFILE,'RPK', XRPK) -CALL IO_READ_FIELD(TPFMFILE,'BETA', XBETA) -CALL IO_READ_FIELD(TPFMFILE,'LATORI',XPGDLATOR) -CALL IO_READ_FIELD(TPFMFILE,'LONORI',XPGDLONOR) -CALL IO_READ_FIELD(TPFMFILE,'IMAX', NPGDIMAX) -CALL IO_READ_FIELD(TPFMFILE,'JMAX', NPGDJMAX) +CALL IO_Field_read(TPFMFILE,'LAT0', XLAT0) +CALL IO_Field_read(TPFMFILE,'LON0', XLON0) +CALL IO_Field_read(TPFMFILE,'RPK', XRPK) +CALL IO_Field_read(TPFMFILE,'BETA', XBETA) +CALL IO_Field_read(TPFMFILE,'LATORI',XPGDLATOR) +CALL IO_Field_read(TPFMFILE,'LONORI',XPGDLONOR) +CALL IO_Field_read(TPFMFILE,'IMAX', NPGDIMAX) +CALL IO_Field_read(TPFMFILE,'JMAX', NPGDJMAX) ! !20131010 recompute properly NPGDIMAX NPGDJMAX !GET_DIM_PHYS_ll impact 2nd one => prevent run failures @@ -175,38 +174,38 @@ CALL GET_DIM_PHYS_ll ( 'B',NPGDIMAX,NPGDJMAX) IF (.NOT.(ALLOCATED(XPGDXHAT))) ALLOCATE(XPGDXHAT(NPGDIMAX+2*JPHEXT)) IF (.NOT.(ALLOCATED(XPGDYHAT))) ALLOCATE(XPGDYHAT(NPGDJMAX+2*JPHEXT)) !20131023 change FMREAD option '--' -> 'XX' ou 'YY' for // reading -CALL IO_READ_FIELD(TPFMFILE,'XHAT',XPGDXHAT) -CALL IO_READ_FIELD(TPFMFILE,'YHAT',XPGDYHAT) +CALL IO_Field_read(TPFMFILE,'XHAT',XPGDXHAT) +CALL IO_Field_read(TPFMFILE,'YHAT',XPGDYHAT) ! !* 3. Read the configuration (MODD_CONF) ! -CALL IO_READ_FIELD(TPFMFILE,'L1D',G1D,IRESP) +CALL IO_Field_read(TPFMFILE,'L1D',G1D,IRESP) IF (IRESP/=0) THEN G1D=.FALSE. IF( (NPGDIMAX == 1).AND.(NPGDJMAX == 1) ) G1D=.TRUE. ENDIF ! -CALL IO_READ_FIELD(TPFMFILE,'L2D',G2D,IRESP) +CALL IO_Field_read(TPFMFILE,'L2D',G2D,IRESP) IF (IRESP/=0) THEN G2D=.FALSE. IF( (NPGDIMAX /= 1).AND.(NPGDJMAX == 1) ) G2D=.TRUE. ENDIF ! -CALL IO_READ_FIELD(TPFMFILE,'PACK',GPACK,IRESP) +CALL IO_Field_read(TPFMFILE,'PACK',GPACK,IRESP) IF (IRESP/=0) GPACK=.TRUE. ! -CALL SET_FMPACK_ll(G1D,G2D,GPACK) +CALL IO_Pack_set(G1D,G2D,GPACK) !------------------------------------------------------------------------------- IF (TPFMFILE%NMNHVERSION(1)<4 .OR. (TPFMFILE%NMNHVERSION(1)==4 .AND. TPFMFILE%NMNHVERSION(2)<=5)) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('LONORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LONOR' - CALL IO_READ_FIELD(TPFMFILE,TZFIELD,XPGDLONOR) + CALL IO_Field_read(TPFMFILE,TZFIELD,XPGDLONOR) ! CALL FIND_FIELD_ID_FROM_MNHNAME('LATORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LATOR' - CALL IO_READ_FIELD(TPFMFILE,TZFIELD,XPGDLATOR) + CALL IO_Field_read(TPFMFILE,TZFIELD,XPGDLATOR) ! ZXHATM = - 0.5 * (XPGDXHAT(1)+XPGDXHAT(2)) ZYHATM = - 0.5 * (XPGDYHAT(1)+XPGDYHAT(2)) diff --git a/src/MNH/read_hgridn.f90 b/src/MNH/read_hgridn.f90 index 77aa6acd7..0989fed53 100644 --- a/src/MNH/read_hgridn.f90 +++ b/src/MNH/read_hgridn.f90 @@ -10,7 +10,7 @@ INTERFACE SUBROUTINE READ_HGRID_n(TPFMFILE,HMY_NAME,HDAD_NAME,HSTORAGE_TYPE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFMFILE ! file n CHARACTER(LEN=28), INTENT(OUT) :: HMY_NAME ! True Name of FM-file @@ -82,14 +82,14 @@ USE MODD_CONF USE MODD_DIM_n USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n -USE MODD_PARAMETERS, ONLY : JPHEXT, JPVEXT, JPMODELMAX +USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT, JPMODELMAX ! -USE MODE_FIELD, ONLY : TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA, TFIELDLIST, FIND_FIELD_ID_FROM_MNHNAME USE MODE_GRIDPROJ -USE MODE_IO_ll +USE MODE_IO, only: IO_Pack_set +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG USE MODE_MODELN_HANDLER ! @@ -125,9 +125,9 @@ ILUOUT = TLUOUT%NLU !* 1. General information : ! ------------------- ! -CALL IO_READ_FIELD(TPFMFILE,'MY_NAME', HMY_NAME) -CALL IO_READ_FIELD(TPFMFILE,'DAD_NAME', HDAD_NAME) -CALL IO_READ_FIELD(TPFMFILE,'STORAGE_TYPE',HSTORAGE_TYPE) +CALL IO_Field_read(TPFMFILE,'MY_NAME', HMY_NAME) +CALL IO_Field_read(TPFMFILE,'DAD_NAME', HDAD_NAME) +CALL IO_Field_read(TPFMFILE,'STORAGE_TYPE',HSTORAGE_TYPE) ! !* 2. Grid information : ! ---------------- @@ -136,16 +136,16 @@ IF( (TPFMFILE%NMNHVERSION(1)<4 .OR. (TPFMFILE%NMNHVERSION(1)==4 .AND. TPFMFILE%N .AND. HSTORAGE_TYPE == 'PG') THEN LCARTESIAN=.FALSE. ELSE - CALL IO_READ_FIELD(TPFMFILE,'CARTESIAN',LCARTESIAN) + CALL IO_Field_read(TPFMFILE,'CARTESIAN',LCARTESIAN) ENDIF -CALL IO_READ_FIELD(TPFMFILE,'LAT0',ZLAT0) -CALL IO_READ_FIELD(TPFMFILE,'LON0',ZLON0) -CALL IO_READ_FIELD(TPFMFILE,'BETA',ZBETA,IRESP) +CALL IO_Field_read(TPFMFILE,'LAT0',ZLAT0) +CALL IO_Field_read(TPFMFILE,'LON0',ZLON0) +CALL IO_Field_read(TPFMFILE,'BETA',ZBETA,IRESP) IF(IRESP/=0) ZBETA=0. IF (.NOT.LCARTESIAN ) THEN - CALL IO_READ_FIELD(TPFMFILE,'RPK', ZRPK) - CALL IO_READ_FIELD(TPFMFILE,'LATORI',XLATORI) - CALL IO_READ_FIELD(TPFMFILE,'LONORI',XLONORI) + CALL IO_Field_read(TPFMFILE,'RPK', ZRPK) + CALL IO_Field_read(TPFMFILE,'LATORI',XLATORI) + CALL IO_Field_read(TPFMFILE,'LONORI',XLONORI) ENDIF ! IMI = GET_CURRENT_MODEL_INDEX() @@ -184,9 +184,9 @@ IF (CPROGRAM/='IDEAL ') THEN ! b) and arrays XXHAT, XYHAT, XZS, XZSMT are deallocated after this ! routine (as in ini_size_spawn.f90) !$20140506 try 'XX','YY' it is FMREADN0_LL scalar reading so leave '--' - CALL IO_READ_FIELD(TPFMFILE,'IMAX', NIMAX) - CALL IO_READ_FIELD(TPFMFILE,'JMAX', NJMAX) - CALL IO_READ_FIELD(TPFMFILE,'JPHEXT',IJPHEXT) + CALL IO_Field_read(TPFMFILE,'IMAX', NIMAX) + CALL IO_Field_read(TPFMFILE,'JMAX', NJMAX) + CALL IO_Field_read(TPFMFILE,'JPHEXT',IJPHEXT) IF ( IJPHEXT .NE. JPHEXT ) THEN IF (CPROGRAM == 'REAL' ) THEN WRITE(ILUOUT,FMT=*) ' READ_HGRID_N : JPHEXT in PRE_REAL1.nam/NAM_REAL_CONF ( or default value )& @@ -205,21 +205,21 @@ END IF !* 2.1 Read the configuration (MODD_CONF) ! IF (IMI == 1) THEN - CALL IO_READ_FIELD(TPFMFILE,'L1D',L1D,IRESP) + CALL IO_Field_read(TPFMFILE,'L1D',L1D,IRESP) IF (IRESP/=0) THEN L1D=.FALSE. IF( (NIMAX == 1).AND.(NJMAX == 1) ) L1D=.TRUE. ENDIF ! - CALL IO_READ_FIELD(TPFMFILE,'L2D',L2D,IRESP) + CALL IO_Field_read(TPFMFILE,'L2D',L2D,IRESP) IF (IRESP/=0) THEN L2D=.FALSE. IF( (NIMAX /= 1).AND.(NJMAX == 1) ) L2D=.TRUE. ENDIF ! - CALL IO_READ_FIELD(TPFMFILE,'PACK',LPACK,IRESP) + CALL IO_Field_read(TPFMFILE,'PACK',LPACK,IRESP) IF (IRESP/=0) LPACK=.TRUE. -! CALL SET_FMPACK_ll(L1D,L2D,LPACK) +! CALL IO_Pack_set(L1D,L2D,LPACK) END IF ! !* 2.2 Grid information : @@ -246,8 +246,8 @@ ELSE ENDIF !JUAN REALZ -CALL IO_READ_FIELD(TPFMFILE,'XHAT',XXHAT) -CALL IO_READ_FIELD(TPFMFILE,'YHAT',XYHAT) +CALL IO_Field_read(TPFMFILE,'XHAT',XXHAT) +CALL IO_Field_read(TPFMFILE,'YHAT',XYHAT) ! !JUAN REALZ IF ( CPROGRAM .EQ. "REAL " ) THEN @@ -257,7 +257,7 @@ IF (.NOT. (ASSOCIATED(XZS))) ALLOCATE(XZS(NIMAX+2*JPHEXT,NJMAX+2*JPHEXT)) ENDIF !JUAN REALZ -CALL IO_READ_FIELD(TPFMFILE,'ZS',XZS) +CALL IO_Field_read(TPFMFILE,'ZS',XZS) ! !JUAN REALZ IF ( CPROGRAM .EQ. "REAL " ) THEN @@ -270,7 +270,7 @@ ENDIF IF (TPFMFILE%NMNHVERSION(1)<4 .OR. (TPFMFILE%NMNHVERSION(1)==4 .AND. TPFMFILE%NMNHVERSION(2)<=6)) THEN XZSMT = XZS ELSE - CALL IO_READ_FIELD(TPFMFILE,'ZSMT',XZSMT) + CALL IO_Field_read(TPFMFILE,'ZSMT',XZSMT) ! END IF ! @@ -279,12 +279,12 @@ IF (TPFMFILE%NMNHVERSION(1)<4 .OR. (TPFMFILE%NMNHVERSION(1)==4 .AND. TPFMFILE%NM CALL FIND_FIELD_ID_FROM_MNHNAME('LONORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LONOR' - CALL IO_READ_FIELD(TPFMFILE,TZFIELD,XLONORI) + CALL IO_Field_read(TPFMFILE,TZFIELD,XLONORI) ! CALL FIND_FIELD_ID_FROM_MNHNAME('LATORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LATOR' - CALL IO_READ_FIELD(TPFMFILE,TZFIELD,XLATORI) + CALL IO_Field_read(TPFMFILE,TZFIELD,XLATORI) ! ZXHATM = - 0.5 * (XXHAT(1)+XXHAT(2)) ZYHATM = - 0.5 * (XYHAT(1)+XYHAT(2)) diff --git a/src/MNH/read_precip_field.f90 b/src/MNH/read_precip_field.f90 index 9450008a6..c8251ed16 100644 --- a/src/MNH/read_precip_field.f90 +++ b/src/MNH/read_precip_field.f90 @@ -16,7 +16,7 @@ INTERFACE PINPRC,PACPRC,PINDEP,PACDEP,PINPRR,PINPRR3D,PEVAP3D, & PACPRR,PINPRS,PACPRS,PINPRG,PACPRG,PINPRH,PACPRH ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! !* 0.1 declarations of arguments ! @@ -97,14 +97,13 @@ END MODULE MODI_READ_PRECIP_FIELD !----------------------------------------------------------------------------- ! !* 0. DECLARATIONS -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_PARAM_ICE, ONLY : LDEPOSC -USE MODD_PARAM_C2R2, ONLY : LDEPOC -USE MODD_PARAM_LIMA, ONLY : MDEPOC=>LDEPOC +USE MODD_IO, ONLY: TFILEDATA +USE MODD_PARAM_ICE, ONLY: LDEPOSC +USE MODD_PARAM_C2R2, ONLY: LDEPOC +USE MODD_PARAM_LIMA, ONLY: MDEPOC=>LDEPOC ! -USE MODE_FIELD, ONLY : TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA, TFIELDLIST, FIND_FIELD_ID_FROM_MNHNAME +USE MODE_IO_FIELD_READ, only: IO_Field_read ! IMPLICIT NONE ! @@ -171,13 +170,13 @@ IF (SIZE(PINPRC) /= 0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRC',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PINPRC(:,:)=Z2D(:,:)/(1000.*3600.) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRC',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PACPRC(:,:)=Z2D(:,:)/(1000.) CASE ('INIT') PINPRC(:,:) = 0.0 @@ -191,13 +190,13 @@ IF (SIZE(PINPRC) /= 0 .AND. (LDEPOSC .OR. LDEPOC .OR. MDEPOC) ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INDEP',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PINDEP(:,:)=Z2D(:,:)/(1000.*3600.) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACDEP',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PACDEP(:,:)=Z2D(:,:)/(1000.) CASE ('INIT') PINDEP(:,:) = 0.0 @@ -211,19 +210,19 @@ IF (SIZE(PINPRR) /= 0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRR',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PINPRR(:,:)=Z2D(:,:)/(1000.*3600.) ! - CALL IO_READ_FIELD(TPINIFILE,'INPRR3D',Z3D,IRESP) + CALL IO_Field_read(TPINIFILE,'INPRR3D',Z3D,IRESP) IF (IRESP == 0) PINPRR3D(:,:,:)=Z3D(:,:,:) ! - CALL IO_READ_FIELD(TPINIFILE,'EVAP3D',Z3D,IRESP) + CALL IO_Field_read(TPINIFILE,'EVAP3D',Z3D,IRESP) IF (IRESP == 0) PEVAP3D(:,:,:)=Z3D(:,:,:) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRR',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PACPRR(:,:)=Z2D(:,:)/(1000.) CASE ('INIT') PINPRR(:,:) = 0.0 @@ -239,13 +238,13 @@ IF (SIZE(PINPRS) /= 0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRS',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PINPRS(:,:)=Z2D(:,:)/(1000.*3600.) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRS',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PACPRS(:,:)=Z2D(:,:)/(1000.) CASE ('INIT') PINPRS(:,:) = 0.0 @@ -259,13 +258,13 @@ IF (SIZE(PINPRG) /= 0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRG',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PINPRG(:,:)=Z2D(:,:)/(1000.*3600.) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRG',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PACPRG(:,:)=Z2D(:,:)/(1000.) CASE ('INIT') PINPRG(:,:) = 0.0 @@ -279,13 +278,13 @@ IF (SIZE(PINPRH) /= 0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRH',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PINPRH(:,:)=Z2D(:,:)/(1000.*3600.) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRH',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,Z2D,IRESP) + CALL IO_Field_read(TPINIFILE,TZFIELD,Z2D,IRESP) IF (IRESP == 0) PACPRH(:,:)=Z2D(:,:)/(1000.) CASE ('INIT') PINPRH(:,:) = 0.0 diff --git a/src/MNH/read_surf_mnh.f90 b/src/MNH/read_surf_mnh.f90 index 21ddfeba6..09c51cee2 100644 --- a/src/MNH/read_surf_mnh.f90 +++ b/src/MNH/read_surf_mnh.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2003-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2003-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -136,14 +136,13 @@ END MODULE MODE_READ_SURF_MNH_TOOLS !* 0. DECLARATIONS ! ------------ ! -USE MODD_CONF, ONLY: CPROGRAM -USE MODD_GRID, ONLY: XRPK,XBETA,XLAT0,XLON0 -USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE -USE MODD_PARAMETERS, ONLY: JPHEXT, XUNDEF +USE MODD_CONF, ONLY: CPROGRAM +USE MODD_GRID, ONLY: XRPK,XBETA,XLAT0,XLON0 +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE +USE MODD_PARAMETERS, ONLY: JPHEXT, XUNDEF ! -USE MODE_FIELD, ONLY: TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME,TYPEREAL -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME,TYPEREAL +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_GRIDPROJ USE MODE_MSG USE MODE_READ_SURF_MNH_TOOLS @@ -186,26 +185,26 @@ IF (HREC=='LONORI' .OR. HREC=='LATORI') THEN ZRPK = XRPK ZBETA = XBETA !* reads projection and grid data in the file - CALL IO_READ_FIELD(TPINFILE,'LAT0',XLAT0) - CALL IO_READ_FIELD(TPINFILE,'LON0',XLON0) - CALL IO_READ_FIELD(TPINFILE,'RPK', XRPK) - CALL IO_READ_FIELD(TPINFILE,'BETA',XBETA) + CALL IO_Field_read(TPINFILE,'LAT0',XLAT0) + CALL IO_Field_read(TPINFILE,'LON0',XLON0) + CALL IO_Field_read(TPINFILE,'RPK', XRPK) + CALL IO_Field_read(TPINFILE,'BETA',XBETA) ! - CALL IO_READ_FIELD(TPINFILE,'IMAX',IIMAX) - CALL IO_READ_FIELD(TPINFILE,'JMAX',IJMAX) + CALL IO_Field_read(TPINFILE,'IMAX',IIMAX) + CALL IO_Field_read(TPINFILE,'JMAX',IJMAX) ALLOCATE(ZXHAT(IIMAX+2*JPHEXT),ZYHAT(IJMAX+2*JPHEXT)) - CALL IO_READ_FIELD(TPINFILE,'XHAT',ZXHAT) - CALL IO_READ_FIELD(TPINFILE,'YHAT',ZYHAT) + CALL IO_Field_read(TPINFILE,'XHAT',ZXHAT) + CALL IO_Field_read(TPINFILE,'YHAT',ZYHAT) ! CALL FIND_FIELD_ID_FROM_MNHNAME('LONORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LONOR' - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZLONOR) + CALL IO_Field_read(TPINFILE,TZFIELD,ZLONOR) ! CALL FIND_FIELD_ID_FROM_MNHNAME('LATORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LATOR' - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZLATOR) + CALL IO_Field_read(TPINFILE,TZFIELD,ZLATOR) ! ZXHATM = - 0.5 * (ZXHAT(1)+ZXHAT(2)) ZYHATM = - 0.5 * (ZYHAT(1)+ZYHAT(2)) @@ -227,10 +226,10 @@ END IF IF ( HREC=='LAT0' .OR. HREC=='LON0' .OR. HREC=='RPK' .OR. HREC=='BETA' & .OR. HREC=='LATORI'.OR. HREC=='LONORI' ) THEN - CALL IO_READ_FIELD(TPINFILE,HREC,PFIELD,KRESP) + CALL IO_Field_read(TPINFILE,HREC,PFIELD,KRESP) ELSE CALL PREPARE_METADATA_READ_SURF(HREC,'--',0,TYPEREAL,0,'READ_SURFX0_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,PFIELD,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,PFIELD,KRESP) END IF IF (KRESP /=0) THEN @@ -284,22 +283,20 @@ END SUBROUTINE READ_SURFX0_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_FIELD, ONLY: FIND_FIELD_ID_FROM_MNHNAME,TFIELDDATA,TFIELDLIST,TYPEREAL -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: FIND_FIELD_ID_FROM_MNHNAME,TFIELDDATA,TFIELDLIST,TYPEREAL +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_ll -USE MODE_IO_ll USE MODE_MSG USE MODE_READ_SURF_MNH_TOOLS ! -USE MODD_CST, ONLY : XPI +USE MODD_CST, ONLY: XPI ! -USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, NMASK, & - NIU, NJU, NIB, NJB, NIE, NJE, & - NIU_ALL, NJU_ALL, NIB_ALL, & - NJB_ALL, NIE_ALL, NJE_ALL, & - NMASK_ALL -USE MODD_PARAMETERS, ONLY: XUNDEF +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE, NMASK, & + NIU, NJU, NIB, NJB, NIE, NJE, & + NIU_ALL, NJU_ALL, NIB_ALL, & + NJB_ALL, NIE_ALL, NJE_ALL, & + NMASK_ALL +USE MODD_PARAMETERS, ONLY: XUNDEF ! USE MODI_PACK_2D_1D ! @@ -370,12 +367,12 @@ END IF ! IF (HREC=='LAT') THEN - CALL IO_READ_FIELD(TPINFILE,'LAT0',ZW,KRESP) + CALL IO_Field_read(TPINFILE,'LAT0',ZW,KRESP) PFIELD(:) = ZW ELSE IF (HREC=='LON') THEN - CALL IO_READ_FIELD(TPINFILE,'LON0',ZW,KRESP) + CALL IO_Field_read(TPINFILE,'LON0',ZW,KRESP) PFIELD(:) = ZW ELSE IF (HREC=='MESH_SIZE') THEN @@ -395,7 +392,7 @@ ELSE IF (HREC=='XX') THEN ELSE TZFIELD%CDIR = '--' END IF - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK1D,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK1D,KRESP) DO JJ = 1,IJU ZWORK(IIB:IIE,JJ) = 0.5 * ZWORK1D(IIB:IIE) + 0.5 * ZWORK1D(IIB+1:IIE+1) END DO @@ -414,7 +411,7 @@ ELSE IF (HREC=='DX') THEN ELSE TZFIELD%CDIR = '--' END IF - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK1D,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK1D,KRESP) DO JJ = 1,IJU ZWORK(IIB:IIE,JJ) = - ZWORK1D(IIB:IIE) + ZWORK1D(IIB+1:IIE+1) END DO @@ -433,7 +430,7 @@ ELSE IF (HREC=='YY') THEN ELSE TZFIELD%CDIR = '--' END IF - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK1D,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK1D,KRESP) DO JI = 1,IIU ZWORK(JI,IJB:IJE) = 0.5 * ZWORK1D(IJB:IJE) + 0.5 * ZWORK1D(IJB+1:IJE+1) END DO @@ -452,7 +449,7 @@ ELSE IF (HREC=='DY') THEN ELSE TZFIELD%CDIR = '--' END IF - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK1D,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK1D,KRESP) DO JI = 1,IIU ZWORK(JI,IJB:IJE) = - ZWORK1D(IJB:IJE) + ZWORK1D(IJB+1:IJE+1) END DO @@ -468,7 +465,7 @@ ELSE YREC(1:LEN(HREC)) = HREC IF (HREC(1:8)=='Q_CANYON') THEN IF (TPINFILE%NMNHVERSION(1)<4 .OR. (TPINFILE%NMNHVERSION(1)==4 .AND. TPINFILE%NMNHVERSION(2)<=5)) THEN - CALL IO_READ_FIELD(TPINFILE,'STORAGE_TYPE',YSTORAGE_TYPE) + CALL IO_Field_read(TPINFILE,'STORAGE_TYPE',YSTORAGE_TYPE) IF (YSTORAGE_TYPE=='TT') THEN PFIELD = 0. DEALLOCATE(IMASK) @@ -480,7 +477,7 @@ ELSE END IF IF (HREC(1:8)=='T_CANYON') THEN IF (TPINFILE%NMNHVERSION(1)<4 .OR. (TPINFILE%NMNHVERSION(1)==4 .AND. TPINFILE%NMNHVERSION(2)<=5)) THEN - CALL IO_READ_FIELD(TPINFILE,'STORAGE_TYPE',YSTORAGE_TYPE) + CALL IO_Field_read(TPINFILE,'STORAGE_TYPE',YSTORAGE_TYPE) IF (YSTORAGE_TYPE=='TT') YREC = 'T_ROAD1 ' END IF END IF @@ -494,13 +491,13 @@ ELSE ! IF (HDIR=='H') THEN CALL PREPARE_METADATA_READ_SURF(YREC,'XY',4,TYPEREAL,2,'READ_SURFX1_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK,KRESP) ELSEIF (HDIR=='A'.OR.HDIR=='E') THEN CALL PREPARE_METADATA_READ_SURF(YREC,'--',4,TYPEREAL,2,'READ_SURFX1_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK,KRESP) ELSE CALL PREPARE_METADATA_READ_SURF(YREC,'--',4,TYPEREAL,1,'READ_SURFX1_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,PFIELD,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,PFIELD,KRESP) END IF ! IF (KRESP /=0) THEN @@ -574,16 +571,14 @@ END SUBROUTINE READ_SURFX1_MNH ! ------------ ! USE MODE_ll -USE MODE_FIELD, ONLY : TFIELDDATA,TYPEREAL -USE MODE_FM -USE MODE_FMREAD -USE MODE_IO_ll +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG USE MODE_READ_SURF_MNH_TOOLS ! -USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, NMASK, NIU, NJU, NIB, NJB, NIE, NJE, & - NIU_ALL, NJU_ALL, NIB_ALL, NJB_ALL, NIE_ALL, NJE_ALL, NMASK_ALL -USE MODD_PARAMETERS, ONLY : XUNDEF +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE, NMASK, NIU, NJU, NIB, NJB, NIE, NJE, & + NIU_ALL, NJU_ALL, NIB_ALL, NJB_ALL, NIE_ALL, NJE_ALL, NMASK_ALL +USE MODD_PARAMETERS, ONLY: XUNDEF ! USE MODI_PACK_2D_1D ! @@ -631,14 +626,14 @@ ILUOUT = TOUT%NLU IF (HDIR=='H') THEN ALLOCATE(ZWORK(NIU,NJU,SIZE(PFIELD,2))) CALL PREPARE_METADATA_READ_SURF(HREC,'XY',4,TYPEREAL,3,'READ_SURFX2_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK,KRESP) ELSEIF (HDIR=='A'.OR.HDIR=='E') THEN ALLOCATE(ZWORK(NIU_ALL,NJU_ALL,SIZE(PFIELD,2))) CALL PREPARE_METADATA_READ_SURF(HREC,'--',4,TYPEREAL,3,'READ_SURFX2_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK,KRESP) ELSE CALL PREPARE_METADATA_READ_SURF(HREC,'--',4,TYPEREAL,2,'READ_SURFX2_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,PFIELD,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,PFIELD,KRESP) END IF ! IF (KRESP /=0) THEN @@ -710,20 +705,18 @@ END SUBROUTINE READ_SURFX2_MNH ! USE MODE_ll USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG,TYPEREAL -USE MODE_FM -USE MODE_FMREAD -USE MODE_IO_ll +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG USE MODE_READ_SURF_MNH_TOOLS ! -USE MODD_DATA_COVER_PAR, ONLY : JPCOVER -USE MODD_CST, ONLY : XPI +USE MODD_DATA_COVER_PAR, ONLY: JPCOVER +USE MODD_CST, ONLY: XPI ! -USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, NMASK, & - NIU, NJU, NIB, NJB, NIE, NJE, & - NIU_ALL, NJU_ALL, NIB_ALL, & - NJB_ALL, NIE_ALL, NJE_ALL, & - NMASK_ALL +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE, NMASK, & + NIU, NJU, NIB, NJB, NIE, NJE, & + NIU_ALL, NJU_ALL, NIB_ALL, & + NJB_ALL, NIE_ALL, NJE_ALL, & + NMASK_ALL ! USE MODI_PACK_2D_1D ! @@ -800,8 +793,8 @@ NCOVER=COUNT(OFLAG) ALLOCATE (ZWORK3D(IIU,IJU,NCOVER)) ZWORK3D(:,:,:) = 0.0 ! -CALL IO_READ_FIELD(TPINFILE,'VERSION',IVERSION) -CALL IO_READ_FIELD(TPINFILE,'BUG', IBUGFIX) +CALL IO_Field_read(TPINFILE,'VERSION',IVERSION) +CALL IO_Field_read(TPINFILE,'BUG', IBUGFIX) IF (IVERSION<7 .OR. (IVERSION==7 .AND. IBUGFIX==0)) THEN GCOVER_PACKED = .FALSE. @@ -816,7 +809,7 @@ ELSE TZFIELD%NTYPE = TYPELOG TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINFILE,TZFIELD,GCOVER_PACKED) + CALL IO_Field_read(TPINFILE,TZFIELD,GCOVER_PACKED) END IF ! IF (.NOT. GCOVER_PACKED) THEN @@ -835,13 +828,13 @@ IF (.NOT. GCOVER_PACKED) THEN TZFIELD%CDIR = YDIR IF (OFLAG(JL2)) THEN ICOVER=ICOVER+1 - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK3D(:,:,ICOVER),IRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK3D(:,:,ICOVER),IRESP) END IF IF (IRESP/=0) KRESP=IRESP END DO ELSE CALL PREPARE_METADATA_READ_SURF(HREC,YDIR,4,TYPEREAL,3,'READ_SURFX2COV_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK3D(:,:,:),KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK3D(:,:,:),KRESP) END IF ! IF (KRESP /=0) THEN @@ -904,20 +897,18 @@ END SUBROUTINE READ_SURFX2COV_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_FIELD, ONLY : TFIELDDATA,TYPELOG,TYPEREAL -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG,TYPEREAL USE MODE_ll -USE MODE_IO_ll +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG ! -USE MODD_CST, ONLY : XPI +USE MODD_CST, ONLY: XPI ! -USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, NMASK, & - NIU, NJU, NIB, NJB, NIE, NJE, & - NIU_ALL, NJU_ALL, NIB_ALL, & - NJB_ALL, NIE_ALL, NJE_ALL, & - NMASK_ALL +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE, NMASK, & + NIU, NJU, NIB, NJB, NIE, NJE, & + NIU_ALL, NJU_ALL, NIB_ALL, & + NJB_ALL, NIE_ALL, NJE_ALL, & + NMASK_ALL ! USE MODI_PACK_2D_1D ! @@ -995,8 +986,8 @@ END IF ALLOCATE (ZWORK2D(IIU,IJU)) ZWORK2D(:,:) = 0.0 ! -CALL IO_READ_FIELD(TPINFILE,'VERSION',IVERSION) -CALL IO_READ_FIELD(TPINFILE,'BUG', IBUGFIX) +CALL IO_Field_read(TPINFILE,'VERSION',IVERSION) +CALL IO_Field_read(TPINFILE,'BUG', IBUGFIX) IF (IVERSION<7 .OR. (IVERSION==7 .AND. IBUGFIX==0)) THEN GCOVER_PACKED = .FALSE. @@ -1011,7 +1002,7 @@ ELSE TZFIELD%NTYPE = TYPELOG TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINFILE,TZFIELD,GCOVER_PACKED,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,GCOVER_PACKED,KRESP) END IF ! IF (.NOT. GCOVER_PACKED) THEN @@ -1026,7 +1017,7 @@ IF (.NOT. GCOVER_PACKED) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINFILE,TZFIELD,ZWORK2D,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,ZWORK2D,KRESP) ELSE WRITE(ILUOUT,*) 'WARNING' WRITE(ILUOUT,*) '-------' @@ -1092,16 +1083,15 @@ END SUBROUTINE READ_SURFX2COV_1COV_MNH !* 0. DECLARATIONS ! ------------ ! +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_ll -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT -USE MODE_FM -USE MODE_FMREAD USE MODE_MSG USE MODE_READ_SURF_MNH_TOOLS ! -USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, NMASK, & - NIU, NJU, NIB, NJB, NIE, NJE -USE MODD_CONF, ONLY : CPROGRAM +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE, NMASK, & + NIU, NJU, NIB, NJB, NIE, NJE +USE MODD_CONF, ONLY: CPROGRAM ! ! ! @@ -1129,12 +1119,12 @@ ILUOUT = TOUT%NLU ! IF (HREC=='DIM_FULL' .AND. ( CPROGRAM=='IDEAL ' .OR. & CPROGRAM=='SPAWN ' .OR. CPROGRAM=='ZOOMPG' ))THEN - CALL IO_READ_FIELD(TPINFILE,'IMAX',IIMAX) - CALL IO_READ_FIELD(TPINFILE,'JMAX',IJMAX) + CALL IO_Field_read(TPINFILE,'IMAX',IIMAX) + CALL IO_Field_read(TPINFILE,'JMAX',IJMAX) KFIELD = IIMAX * IJMAX ELSE CALL PREPARE_METADATA_READ_SURF(HREC,'--',0,TYPEINT,0,'READ_SURFN0_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,KFIELD,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,KFIELD,KRESP) IF (KRESP /=0) THEN WRITE(ILUOUT,*) 'WARNING' @@ -1189,14 +1179,13 @@ END SUBROUTINE READ_SURFN0_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG USE MODE_READ_SURF_MNH_TOOLS ! -USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, NMASK, & - NIU, NJU, NIB, NJB, NIE, NJE +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE, NMASK, & + NIU, NJU, NIB, NJB, NIE, NJE ! USE MODI_PACK_2D_1D ! @@ -1231,13 +1220,13 @@ ILUOUT = TOUT%NLU IF (HDIR=='-') THEN ! CALL PREPARE_METADATA_READ_SURF(HREC,'--',0,TYPEINT,1,'READ_SURFN1_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,KFIELD,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,KFIELD,KRESP) ! ELSE IF (HDIR=='H') THEN ALLOCATE(IWORK(NIU,NJU)) ! CALL PREPARE_METADATA_READ_SURF(HREC,'XY',4,TYPEINT,2,'READ_SURFN1_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,IWORK,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,IWORK,KRESP) ! IF (KRESP /=0) THEN WRITE(ILUOUT,*) 'WARNING' @@ -1296,16 +1285,16 @@ END SUBROUTINE READ_SURFN1_MNH !* 0. DECLARATIONS ! ------------ ! +USE MODE_FIELD, ONLY: TFIELDDATA, TYPECHAR +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_ll -USE MODE_FIELD, ONLY : TFIELDDATA,TYPECHAR -USE MODE_FMREAD USE MODE_MSG USE MODE_POS USE MODE_READ_SURF_MNH_TOOLS ! -USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE -USE MODD_CONF, ONLY : LCARTESIAN, CPROGRAM -USE MODD_LUNIT, ONLY : TPGDFILE +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE +USE MODD_CONF, ONLY: LCARTESIAN, CPROGRAM +USE MODD_LUNIT, ONLY: TPGDFILE ! ! IMPLICIT NONE @@ -1381,7 +1370,7 @@ IF (TPINFILE%NMNHVERSION(1)<4 .OR. (TPINFILE%NMNHVERSION(1)==4 .AND. TPINFILE%NM END IF CASE DEFAULT CALL PREPARE_METADATA_READ_SURF(HREC,'--',0,TYPECHAR,0,'READ_SURFC0_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,HFIELD,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,HFIELD,KRESP) ! IF (KRESP /=0) THEN CALL PRINT_MSG(NVERB_FATAL,'IO','READ_SURFC0_MNH',TRIM(TPINFILE%CNAME)//': error when reading article '//TRIM(HREC)// & @@ -1399,7 +1388,7 @@ ELSE IF ( HREC=='GRID_TYPE'.AND. ( & END IF ELSE CALL PREPARE_METADATA_READ_SURF(HREC,'--',0,TYPECHAR,0,'READ_SURFC0_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,HFIELD,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,HFIELD,KRESP) ! IF (KRESP /=0) THEN CALL PRINT_MSG(NVERB_FATAL,'IO','READ_SURFC0_MNH',TRIM(TPINFILE%CNAME)//': error when reading article '//TRIM(HREC)// & @@ -1451,12 +1440,11 @@ END SUBROUTINE READ_SURFC0_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE, NMASK, & - NIU, NJU, NIB, NJB, NIE, NJE +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE, NMASK, & + NIU, NJU, NIB, NJB, NIE, NJE ! -USE MODE_FIELD, ONLY : TFIELDDATA,TYPEINT,TYPELOG -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT,TYPELOG +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG USE MODE_READ_SURF_MNH_TOOLS ! @@ -1493,7 +1481,7 @@ ILUOUT = TOUT%NLU ! IF (HDIR=='-') THEN CALL PREPARE_METADATA_READ_SURF(HREC,'--',0,TYPELOG,1,'READ_SURFL1_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,OFIELD,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,OFIELD,KRESP) IF (KRESP /=0) THEN WRITE(ILUOUT,*) 'WARNING' @@ -1508,7 +1496,7 @@ ELSE IF (HDIR=='H') THEN ! ALLOCATE(IWORK(NIU,NJU)) CALL PREPARE_METADATA_READ_SURF(HREC,'XY',4,TYPEINT,2,'READ_SURFL1_MNH',TZFIELD) - CALL IO_READ_FIELD(TPINFILE,TZFIELD,IWORK,KRESP) + CALL IO_Field_read(TPINFILE,TZFIELD,IWORK,KRESP) WHERE (IWORK==1) GWORK = .TRUE. DEALLOCATE(IWORK) ! @@ -1567,13 +1555,12 @@ END SUBROUTINE READ_SURFL1_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_FIELD, ONLY : TFIELDDATA,TYPELOG -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG USE MODE_READ_SURF_MNH_TOOLS ! -USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE ! ! IMPLICIT NONE @@ -1611,7 +1598,7 @@ IF (HREC=='ECOCLIMAP') THEN END IF ! CALL PREPARE_METADATA_READ_SURF(HREC,'--',0,TYPELOG,0,'READ_SURFL0_MNH',TZFIELD) -CALL IO_READ_FIELD(TPINFILE,TZFIELD,OFIELD,KRESP) +CALL IO_Field_read(TPINFILE,TZFIELD,OFIELD,KRESP) HCOMMENT = TZFIELD%CCOMMENT ! IF (KRESP /=0) THEN @@ -1665,13 +1652,12 @@ END SUBROUTINE READ_SURFL0_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_FIELD, ONLY : TFIELDDATA,TYPECHAR -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA,TYPECHAR +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG ! -USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE USE MODD_TYPE_DATE +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE ! ! IMPLICIT NONE @@ -1705,7 +1691,7 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFT0_MNH',TRIM(TPINFILE%CNAME)//': readi ILUOUT = TOUT%NLU ! IF (TPINFILE%NMNHVERSION(1)<4 .OR. (TPINFILE%NMNHVERSION(1)==4 .AND. TPINFILE%NMNHVERSION(2)<6)) THEN - CALL IO_READ_FIELD(TPINFILE,'STORAGE_TYPE',YFILETYPE2) + CALL IO_Field_read(TPINFILE,'STORAGE_TYPE',YFILETYPE2) ELSE TZFIELD%CMNHNAME = 'STORAGETYPE' TZFIELD%CSTDNAME = '' @@ -1717,7 +1703,7 @@ ELSE TZFIELD%NTYPE = TYPECHAR TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINFILE,TZFIELD,YFILETYPE40) + CALL IO_Field_read(TPINFILE,TZFIELD,YFILETYPE40) YFILETYPE2 = YFILETYPE40(1:2) END IF IF (YFILETYPE2(1:2)=='PG') THEN @@ -1730,7 +1716,7 @@ IF (YFILETYPE2(1:2)=='PG') THEN RETURN END IF ! -CALL IO_READ_FIELD(TPINFILE,HREC,TZDATETIME,KRESP) +CALL IO_Field_read(TPINFILE,HREC,TZDATETIME,KRESP) ! IF (KRESP /=0) THEN WRITE(ILUOUT,*) 'WARNING' @@ -1789,12 +1775,11 @@ END SUBROUTINE READ_SURFT0_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_FIELD, ONLY : TFIELDDATA,TYPECHAR,TYPEINT,TYPEREAL -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA, TYPECHAR, TYPEINT, TYPEREAL +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_MSG ! -USE MODD_IO_SURF_MNH, ONLY : TOUT, TPINFILE +USE MODD_IO_SURF_MNH, ONLY: TOUT, TPINFILE ! ! IMPLICIT NONE @@ -1829,7 +1814,7 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','READ_SURFT1_MNH',TRIM(TPINFILE%CNAME)//': readi ILUOUT = TOUT%NLU ! IF (TPINFILE%NMNHVERSION(1)<4 .OR. (TPINFILE%NMNHVERSION(1)==4 .AND. TPINFILE%NMNHVERSION(2)<6)) THEN - CALL IO_READ_FIELD(TPINFILE,'STORAGE_TYPE',YFILETYPE2) + CALL IO_Field_read(TPINFILE,'STORAGE_TYPE',YFILETYPE2) ELSE TZFIELD%CMNHNAME = 'STORAGETYPE' TZFIELD%CSTDNAME = '' @@ -1841,7 +1826,7 @@ ELSE TZFIELD%NTYPE = TYPECHAR TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_READ_FIELD(TPINFILE,TZFIELD,YFILETYPE40) + CALL IO_Field_read(TPINFILE,TZFIELD,YFILETYPE40) YFILETYPE2 = YFILETYPE40(1:2) END IF !IF (YFILETYPE2(1:2)=='PG') THEN @@ -1865,7 +1850,7 @@ TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .FALSE. ! -CALL IO_READ_FIELD(TPINFILE,TZFIELD,ITDATE(:,:),KRESP) +CALL IO_Field_read(TPINFILE,TZFIELD,ITDATE(:,:),KRESP) ! KYEAR(:) = ITDATE(1,:) KMONTH(:) = ITDATE(2,:) @@ -1890,7 +1875,7 @@ TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. ! -CALL IO_READ_FIELD(TPINFILE,TZFIELD,PTIME(:),KRESP) +CALL IO_Field_read(TPINFILE,TZFIELD,PTIME(:),KRESP) ! IF (KRESP /=0) THEN WRITE(ILUOUT,*) 'WARNING' diff --git a/src/MNH/read_ver_grid.f90 b/src/MNH/read_ver_grid.f90 index 42183bf94..e9d83fe22 100644 --- a/src/MNH/read_ver_grid.f90 +++ b/src/MNH/read_ver_grid.f90 @@ -9,7 +9,7 @@ INTERFACE SUBROUTINE READ_VER_GRID(TPPRE_REAL1,PZHAT,OSLEVE,PLEN1,PLEN2) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! TYPE(TFILEDATA),POINTER, INTENT(IN) :: TPPRE_REAL1! namelist file REAL, DIMENSION(:), OPTIONAL, INTENT(IN) :: PZHAT ! vertival grid of input fmfile @@ -104,11 +104,10 @@ END MODULE MODI_READ_VER_GRID USE MODD_CONF ! declaration modules USE MODD_DIM_n, NKMAX_n=>NKMAX USE MODD_GRID_n, LSLEVE_n=>LSLEVE, XLEN1_n=>XLEN1, XLEN2_n=>XLEN2 -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA USE MODD_LUNIT USE MODD_PARAMETERS ! -USE MODE_FM USE MODE_MSG USE MODE_POS ! diff --git a/src/MNH/rel_forcingn.f90 b/src/MNH/rel_forcingn.f90 index b85cff608..e057e1223 100644 --- a/src/MNH/rel_forcingn.f90 +++ b/src/MNH/rel_forcingn.f90 @@ -109,7 +109,6 @@ USE MODD_RELFRC_n ! Modules for time evolving advfrc USE MODD_TIME ! USE MODE_DATETIME -USE MODE_IO_ll ! USE MODI_BUDGET USE MODI_SHUMAN diff --git a/src/MNH/reset_exseg.f90 b/src/MNH/reset_exseg.f90 index ca4903a6d..5c6a80d42 100644 --- a/src/MNH/reset_exseg.f90 +++ b/src/MNH/reset_exseg.f90 @@ -60,17 +60,15 @@ END MODULE MODI_RESET_EXSEG ! !* 0. DECLARATIONS ! ------------ -USE MODE_FM, ONLY : IO_FILE_OPEN_ll,IO_FILE_CLOSE_ll -USE MODE_FMREAD -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME +USE MODE_IO_FILE, ONLY : IO_File_open,IO_File_close +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_find_byname USE MODE_POS ! USE MODD_DIAG_FLAG USE MODD_CH_MNHC_n, ONLY: LUSECHEM USE MODD_CONF_n, ONLY: LUSERV USE MODD_GET_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAM_n, ONLY: CDCONV, CRAD USE MODN_PARAM_KAFR_n USE MODN_PARAM_RAD_n @@ -97,8 +95,8 @@ TYPE(TFILEDATA),POINTER :: TZNMLFILE! Namelist file ! TZNMLFILE => NULL() ! -CALL IO_FILE_FIND_BYNAME('DIAG1.nam',TZNMLFILE,IRESP) -CALL IO_FILE_OPEN_ll(TZNMLFILE) +CALL IO_File_find_byname('DIAG1.nam',TZNMLFILE,IRESP) +CALL IO_File_open(TZNMLFILE) ILUNAM = TZNMLFILE%NLU ! !------------------------------------------------------------------------------- @@ -186,6 +184,6 @@ PRINT*,' ' ! !------------------------------------------------------------------------------- ! -CALL IO_FILE_CLOSE_ll(TZNMLFILE) +CALL IO_File_close(TZNMLFILE) ! END SUBROUTINE RESET_EXSEG diff --git a/src/MNH/resolved_cloud.f90 b/src/MNH/resolved_cloud.f90 index 7713aeb71..67ba3a572 100644 --- a/src/MNH/resolved_cloud.f90 +++ b/src/MNH/resolved_cloud.f90 @@ -25,7 +25,7 @@ INTERFACE PINDEP, PSUPSAT, PNACT, PNPRO,PSSPRO, & PSEA,PTOWN ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! CHARACTER(LEN=4), INTENT(IN) :: HCLOUD ! kind of cloud CHARACTER(LEN=4), INTENT(IN) :: HACTCCN ! kind of CCN activation scheme @@ -275,7 +275,7 @@ USE MODD_CH_AEROSOL, ONLY: LORILAM USE MODD_DUST, ONLY: LDUST USE MODD_CST, ONLY: XCI, XCL, XCPD, XCPV, XLSTT, XLVTT, XMNH_TINY, XP00, XRD, XRHOLW, XTT USE MODD_DUST , ONLY: LDUST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_NSV, ONLY: NSV_C1R3END, NSV_C2R2BEG, NSV_C2R2END, & NSV_LIMA_BEG, NSV_LIMA_END, NSV_LIMA_CCN_FREE, NSV_LIMA_IFN_FREE, & NSV_LIMA_NC, NSV_LIMA_NI, NSV_LIMA_NR diff --git a/src/MNH/resolved_elecn.f90 b/src/MNH/resolved_elecn.f90 index aaa23d218..f1d9b42f9 100644 --- a/src/MNH/resolved_elecn.f90 +++ b/src/MNH/resolved_elecn.f90 @@ -2,6 +2,7 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ########################### MODULE MODI_RESOLVED_ELEC_n ! ########################### @@ -175,15 +176,15 @@ END MODULE MODI_RESOLVED_ELEC_n ! ------------ ! USE MODE_ELEC_ll -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll,IO_FILE_OPEN_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_ADD2LIST,IO_FILE_FIND_BYNAME +USE MODE_IO_FILE, ONLY: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list, IO_File_find_byname USE MODE_ll ! USE MODD_METRICS_n, ONLY : XDXX, XDYY, XDZX, XDZY, XDZZ USE MODD_FIELD_n, ONLY : XRSVS USE MODD_CONF, ONLY : L1D, L2D, CEXP USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS, ONLY : JPVEXT USE MODD_ELEC_DESCR USE MODD_ELEC_n @@ -846,8 +847,8 @@ ENDIF IF (KTCOUNT==1 .AND. IPROC==0) THEN IF (LFLASH_GEOM) THEN YASCFILE = CEXP//"_fgeom_diag.asc" - CALL IO_FILE_ADD2LIST(TZFILE_FGEOM_DIAG,YASCFILE,'TXT','WRITE') - CALL IO_FILE_OPEN_ll(TZFILE_FGEOM_DIAG,HPOSITION='APPEND',HSTATUS='NEW') + CALL IO_File_add2list(TZFILE_FGEOM_DIAG,YASCFILE,'TXT','WRITE') + CALL IO_File_open(TZFILE_FGEOM_DIAG,HPOSITION='APPEND',HSTATUS='NEW') ILU = TZFILE_FGEOM_DIAG%NLU WRITE (UNIT=ILU, FMT='(A)') '--------------------------------------------------------' WRITE (UNIT=ILU, FMT='(A)') '*FLASH CHARACTERISTICS FROM FLASH_GEOM_ELEC*' @@ -870,8 +871,8 @@ IF (KTCOUNT==1 .AND. IPROC==0) THEN ! IF (LSAVE_COORD) THEN YASCFILE = CEXP//"_fgeom_coord.asc" - CALL IO_FILE_ADD2LIST(TZFILE_FGEOM_COORD,YASCFILE,'TXT','WRITE') - CALL IO_FILE_OPEN_ll(TZFILE_FGEOM_COORD,HPOSITION='APPEND',HSTATUS='NEW') + CALL IO_File_add2list(TZFILE_FGEOM_COORD,YASCFILE,'TXT','WRITE') + CALL IO_File_open(TZFILE_FGEOM_COORD,HPOSITION='APPEND',HSTATUS='NEW') ILU = TZFILE_FGEOM_COORD%NLU WRITE (UNIT=ILU,FMT='(A)') '------------------------------------------' WRITE (UNIT=ILU,FMT='(A)') '*****FLASH COORD. FROM FLASH_GEOM_ELEC****' @@ -888,8 +889,8 @@ IF (KTCOUNT==1 .AND. IPROC==0) THEN ! IF (LSERIES_ELEC) THEN YASCFILE = CEXP//"_series_cloud_elec.asc" - CALL IO_FILE_ADD2LIST(TZFILE_SERIES_CLOUD_ELEC,YASCFILE,'TXT','WRITE') - CALL IO_FILE_OPEN_ll(TZFILE_SERIES_CLOUD_ELEC,HPOSITION='APPEND',HSTATUS='NEW') + CALL IO_File_add2list(TZFILE_SERIES_CLOUD_ELEC,YASCFILE,'TXT','WRITE') + CALL IO_File_open(TZFILE_SERIES_CLOUD_ELEC,HPOSITION='APPEND',HSTATUS='NEW') ILU = TZFILE_SERIES_CLOUD_ELEC%NLU WRITE (UNIT=ILU, FMT='(A)') '----------------------------------------------------' WRITE (UNIT=ILU, FMT='(A)') '********* RESULTS FROM of LSERIES_ELEC *************' @@ -935,8 +936,8 @@ IF (LFLASH_GEOM .AND. LLMA) THEN ! IF (GLMA_FILE) THEN IF(CLMA_FILE(1:5) /= "BEGIN") THEN ! close previous file if exists - CALL IO_FILE_FIND_BYNAME(CLMA_FILE,TZFILE_LMA,IERR) - CALL IO_FILE_CLOSE_ll(TZFILE_LMA) + CALL IO_File_find_byname(CLMA_FILE,TZFILE_LMA,IERR) + CALL IO_File_close(TZFILE_LMA) TZFILE_LMA => NULL() ENDIF ! @@ -949,8 +950,8 @@ IF (LFLASH_GEOM .AND. LLMA) THEN CLMA_FILE = CEXP//"_SIMLMA_"//YNAME//".dat" ! IF ( IPROC .EQ. 0 ) THEN - CALL IO_FILE_ADD2LIST(TZFILE_LMA,CLMA_FILE,'TXT','WRITE') - CALL IO_FILE_OPEN_ll(TZFILE_LMA,HPOSITION='APPEND',HSTATUS='NEW') + CALL IO_File_add2list(TZFILE_LMA,CLMA_FILE,'TXT','WRITE') + CALL IO_File_open(TZFILE_LMA,HPOSITION='APPEND',HSTATUS='NEW') ILU = TZFILE_LMA%NLU WRITE (UNIT=ILU,FMT='(A)') '----------------------------------------' WRITE (UNIT=ILU,FMT='(A)') '*** FLASH COORD. FROM LMA SIMULATOR ****' @@ -1026,10 +1027,10 @@ END IF ! ! Close Ascii Files if KTCOUNT = NSTOP IF (OEXIT .AND. IPROC==0) THEN - IF (LFLASH_GEOM) CALL IO_FILE_CLOSE_ll(TZFILE_FGEOM_DIAG) - IF(LFLASH_GEOM .AND. LSAVE_COORD) CALL IO_FILE_CLOSE_ll(TZFILE_FGEOM_COORD) - IF (LSERIES_ELEC) CALL IO_FILE_CLOSE_ll(TZFILE_SERIES_CLOUD_ELEC) - IF (LFLASH_GEOM .AND. LLMA) CALL IO_FILE_CLOSE_ll(TZFILE_LMA) + IF (LFLASH_GEOM) CALL IO_File_close(TZFILE_FGEOM_DIAG) + IF(LFLASH_GEOM .AND. LSAVE_COORD) CALL IO_File_close(TZFILE_FGEOM_COORD) + IF (LSERIES_ELEC) CALL IO_File_close(TZFILE_SERIES_CLOUD_ELEC) + IF (LFLASH_GEOM .AND. LLMA) CALL IO_File_close(TZFILE_LMA) ENDIF ! ! diff --git a/src/MNH/retrieve2_nest_infon.f90 b/src/MNH/retrieve2_nest_infon.f90 index 8ab5618e7..1e3b0776c 100644 --- a/src/MNH/retrieve2_nest_infon.f90 +++ b/src/MNH/retrieve2_nest_infon.f90 @@ -100,7 +100,7 @@ USE MODD_DIM_ll, ONLY: NXOR_ALL, NXEND_ALL, NYOR_ALL, NYEND_ALL, NIMAX_TMP USE MODD_DIM_n, ONLY: NIMAX, NJMAX USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY: ISNPROC, ISP +USE MODD_IO, ONLY: ISNPROC, ISP USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_MPIF USE MODD_PARAMETERS diff --git a/src/MNH/series_cloud_elec.f90 b/src/MNH/series_cloud_elec.f90 index f12d2fdcc..6bd26c192 100644 --- a/src/MNH/series_cloud_elec.f90 +++ b/src/MNH/series_cloud_elec.f90 @@ -2,6 +2,7 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ############################# MODULE MODI_SERIES_CLOUD_ELEC ! ############################# @@ -14,7 +15,7 @@ INTERFACE TPFILE_SERIES_CLOUD_ELEC, & PINPRR ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KTCOUNT ! Temporal loop counter ! @@ -88,7 +89,7 @@ END MODULE MODI_SERIES_CLOUD_ELEC ! USE MODD_CONF, ONLY : CEXP USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_REF USE MODD_PARAMETERS USE MODD_ELEC_DESCR diff --git a/src/MNH/seriesn.f90 b/src/MNH/seriesn.f90 index 9fff8dfb8..c592e4b54 100644 --- a/src/MNH/seriesn.f90 +++ b/src/MNH/seriesn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2002-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################### @@ -63,7 +63,6 @@ USE MODD_TIME_n, ONLY: TDTCUR USE MODI_GET_SURF_VAR_n ! USE MODE_DATETIME -USE MODE_IO_ll USE MODE_ll USE MODE_MSG ! diff --git a/src/MNH/set_advfrc.f90 b/src/MNH/set_advfrc.f90 index fbdd5d92a..b931fe38b 100644 --- a/src/MNH/set_advfrc.f90 +++ b/src/MNH/set_advfrc.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- MODULE MODI_SETADVFRC @@ -10,7 +10,7 @@ INTERFACE ! SUBROUTINE SET_ADVFRC(TPEXPREFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file ! @@ -85,13 +85,12 @@ USE MODD_DIM_n USE MODD_FRC USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS, ONLY: JPHEXT, JPVEXT USE MODD_REF ! USE MODE_DATETIME -USE MODE_IO_ll USE MODE_MSG USE MODE_THERMO ! diff --git a/src/MNH/set_bogus_vortex.f90 b/src/MNH/set_bogus_vortex.f90 index 28ae29f47..4cc56703d 100644 --- a/src/MNH/set_bogus_vortex.f90 +++ b/src/MNH/set_bogus_vortex.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2001-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2001-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ############################ @@ -73,9 +73,8 @@ END MODULE MODI_SET_BOGUS_VORTEX !* 0. DECLARATIONS ! ------------ ! -USE MODE_ll -USE MODE_IO_ll USE MODE_GRIDPROJ +USE MODE_ll USE MODE_MSG ! USE MODD_HURR_CONF, ONLY: XLATBOG,XLONBOG,XVTMAXSURF,XRADWINDSURF, & diff --git a/src/MNH/set_conc_lima.f90 b/src/MNH/set_conc_lima.f90 index c111ac643..6f9e6c6ad 100644 --- a/src/MNH/set_conc_lima.f90 +++ b/src/MNH/set_conc_lima.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2000-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -91,9 +91,6 @@ USE MODD_NSV, ONLY : NSV_LIMA_NC, NSV_LIMA_NR, NSV_LIMA_CCN_ACTI, NS USE MODD_CST, ONLY : XPI, XRHOLW, XRHOLI USE MODD_CONF, ONLY : NVERB USE MODD_LUNIT_n, ONLY : TLUOUT - -! -USE MODE_FM ! IMPLICIT NONE ! diff --git a/src/MNH/set_cstn.f90 b/src/MNH/set_cstn.f90 index a75a5d7dd..f51497f74 100644 --- a/src/MNH/set_cstn.f90 +++ b/src/MNH/set_cstn.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE SET_CSTN(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,ORMV_BL,PJ,OSHIFT,PCORIOZ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! outpput data file TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file @@ -172,11 +172,10 @@ END MODULE MODI_SET_CSTN USE MODD_CONF USE MODD_CST USE MODD_GRID_n -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS, ONLY: JPHEXT ! -USE MODE_FM USE MODE_THERMO USE MODE_ll USE MODE_MPPDB diff --git a/src/MNH/set_frc.f90 b/src/MNH/set_frc.f90 index 539bd74ea..8744c8d9d 100644 --- a/src/MNH/set_frc.f90 +++ b/src/MNH/set_frc.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE SET_FRC(TPEXPREFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file ! @@ -107,14 +107,12 @@ USE MODD_GRID_n USE MODD_CONF USE MODD_FRC USE MODD_GRID -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA USE MODD_REF USE MODD_PARAMETERS ! USE MODE_DATETIME USE MODE_THERMO -USE MODE_FM -USE MODE_IO_ll USE MODE_MSG ! USE MODI_HEIGHT_PRESS ! interface modules diff --git a/src/MNH/set_grid.f90 b/src/MNH/set_grid.f90 index 0880b974c..6bd63a507 100644 --- a/src/MNH/set_grid.f90 +++ b/src/MNH/set_grid.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -24,7 +24,7 @@ INTERFACE KBAK_NUMB,KOUT_NUMB,TPBACKUPN,TPOUTPUTN ) ! USE MODD_TYPE_DATE -USE MODD_IO_ll, ONLY: TFILEDATA,TOUTBAK +USE MODD_IO, ONLY: TFILEDATA,TOUTBAK ! INTEGER, INTENT(IN) :: KMI ! Model index TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE !Initial file @@ -237,19 +237,18 @@ USE MODD_CONF USE MODD_CONF_n USE MODD_DYN USE MODD_GRID -USE MODD_IO_ll, ONLY: TFILEDATA,TOUTBAK +USE MODD_IO, ONLY: TFILEDATA,TOUTBAK USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_OUT_n, ONLY: OUT_MODEL USE MODD_PARAMETERS USE MODD_NESTING ! -USE MODE_FIELD, ONLY: TFIELDDATA,TFIELDLIST,FIND_FIELD_ID_FROM_MNHNAME -USE MODE_FM -USE MODE_FMREAD +USE MODE_FIELD, ONLY: TFIELDDATA, TFIELDLIST, FIND_FIELD_ID_FROM_MNHNAME USE MODE_GATHER_ll USE MODE_GRIDCART USE MODE_GRIDPROJ -USE MODE_IO_MANAGE_STRUCT +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_MANAGE_STRUCT, only: IO_Bakout_struct_prepare USE MODE_ll USE MODE_TIME ! @@ -343,43 +342,43 @@ TYPE(TFIELDDATA) :: TZFIELD ! !* 1.1 Spatial grid ! -CALL IO_READ_FIELD(TPINIFILE,'STORAGE_TYPE',CSTORAGE_TYPE,IRESP) +CALL IO_Field_read(TPINIFILE,'STORAGE_TYPE',CSTORAGE_TYPE,IRESP) IF (IRESP /= 0) CSTORAGE_TYPE='TT' ! IF (KMI == 1) THEN ! this parameter is also useful in the cartesian to ! compute the sun position for the radiation scheme - CALL IO_READ_FIELD(TPINIFILE,'LON0',XLON0) + CALL IO_Field_read(TPINIFILE,'LON0',XLON0) ! ! this parameter is also useful in the cartesian to ! compute the Coriolis parameter - CALL IO_READ_FIELD(TPINIFILE,'LAT0',XLAT0) + CALL IO_Field_read(TPINIFILE,'LAT0',XLAT0) ! ! this parameter is also useful in the cartesian to ! rotate the simulatin domain - CALL IO_READ_FIELD(TPINIFILE,'BETA',XBETA) + CALL IO_Field_read(TPINIFILE,'BETA',XBETA) END IF ! -CALL IO_READ_FIELD(TPINIFILE,'XHAT',PXHAT) -CALL IO_READ_FIELD(TPINIFILE,'YHAT',PYHAT) +CALL IO_Field_read(TPINIFILE,'XHAT',PXHAT) +CALL IO_Field_read(TPINIFILE,'YHAT',PYHAT) ! IF (.NOT.LCARTESIAN) THEN - CALL IO_READ_FIELD(TPINIFILE,'RPK',XRPK) + CALL IO_Field_read(TPINIFILE,'RPK',XRPK) ! IF ( (TPINIFILE%NMNHVERSION(1)==4 .AND. TPINIFILE%NMNHVERSION(2)>5) .OR. TPINIFILE%NMNHVERSION(1)>4 ) THEN - CALL IO_READ_FIELD(TPINIFILE,'LONORI',PLONORI) - CALL IO_READ_FIELD(TPINIFILE,'LATORI',PLATORI) + CALL IO_Field_read(TPINIFILE,'LONORI',PLONORI) + CALL IO_Field_read(TPINIFILE,'LATORI',PLATORI) ! ELSE CALL FIND_FIELD_ID_FROM_MNHNAME('LONORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LONOR' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PLONORI) + CALL IO_Field_read(TPINIFILE,TZFIELD,PLONORI) ! CALL FIND_FIELD_ID_FROM_MNHNAME('LATORI',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'LATOR' - CALL IO_READ_FIELD(TPINIFILE,TZFIELD,PLATORI) + CALL IO_Field_read(TPINIFILE,TZFIELD,PLATORI) ! ALLOCATE(ZXHAT_ll(KIMAX_ll+ 2 * JPHEXT),ZYHAT_ll(KJMAX_ll+2 * JPHEXT)) CALL GATHERALL_FIELD_ll('XX',PXHAT,ZXHAT_ll,IRESP) !// @@ -394,9 +393,9 @@ IF (.NOT.LCARTESIAN) THEN ! END IF -CALL IO_READ_FIELD(TPINIFILE,'ZS',PZS) -CALL IO_READ_FIELD(TPINIFILE,'ZHAT',PZHAT) -CALL IO_READ_FIELD(TPINIFILE,'ZTOP',PZTOP) +CALL IO_Field_read(TPINIFILE,'ZS',PZS) +CALL IO_Field_read(TPINIFILE,'ZHAT',PZHAT) +CALL IO_Field_read(TPINIFILE,'ZTOP',PZTOP) ! CALL DEFAULT_SLEVE(OSLEVE,PLEN1,PLEN2) ! @@ -404,25 +403,25 @@ IF ( TPINIFILE%NMNHVERSION(1)<4 .OR. (TPINIFILE%NMNHVERSION(1)==4 .AND. TPINIFIL PZSMT = PZS OSLEVE = .FALSE. ELSE - CALL IO_READ_FIELD(TPINIFILE,'ZSMT',PZSMT) - CALL IO_READ_FIELD(TPINIFILE,'SLEVE',OSLEVE) + CALL IO_Field_read(TPINIFILE,'ZSMT',PZSMT) + CALL IO_Field_read(TPINIFILE,'SLEVE',OSLEVE) END IF ! IF (OSLEVE) THEN - CALL IO_READ_FIELD(TPINIFILE,'LEN1',PLEN1) - CALL IO_READ_FIELD(TPINIFILE,'LEN2',PLEN2) + CALL IO_Field_read(TPINIFILE,'LEN1',PLEN1) + CALL IO_Field_read(TPINIFILE,'LEN2',PLEN2) END IF ! !* 1.2 Temporal grid ! -CALL IO_READ_FIELD(TPINIFILE,'DTMOD',TPDTMOD) -CALL IO_READ_FIELD(TPINIFILE,'DTCUR',TPDTCUR) +CALL IO_Field_read(TPINIFILE,'DTMOD',TPDTMOD) +CALL IO_Field_read(TPINIFILE,'DTCUR',TPDTCUR) ! IF (KMI == 1) THEN -CALL IO_READ_FIELD(TPINIFILE,'DTEXP',TDTEXP) +CALL IO_Field_read(TPINIFILE,'DTEXP',TDTEXP) END IF ! -CALL IO_READ_FIELD(TPINIFILE,'DTSEG',TDTSEG) +CALL IO_Field_read(TPINIFILE,'DTSEG',TDTSEG) ! !------------------------------------------------------------------------------- ! @@ -453,7 +452,7 @@ KSTOP = NINT(PSEGLEN/PTSTEP) !* 2.3 Temporal grid - outputs managment ! ! The output/backups times have been read only by model 1 -IF (CPROGRAM == 'MESONH' .AND. KMI == 1) CALL IO_PREPARE_BAKOUT_STRUCT(ISUP,PTSTEP,PSEGLEN) +IF (CPROGRAM == 'MESONH' .AND. KMI == 1) CALL IO_Bakout_struct_prepare(ISUP,PTSTEP,PSEGLEN) ! KBAK_NUMB => OUT_MODEL(KMI)%NBAK_NUMB KOUT_NUMB => OUT_MODEL(KMI)%NOUT_NUMB diff --git a/src/MNH/set_mass.f90 b/src/MNH/set_mass.f90 index afcc068fe..e66add532 100644 --- a/src/MNH/set_mass.f90 +++ b/src/MNH/set_mass.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2010-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ######################## MODULE MODI_SET_MASS @@ -12,7 +12,7 @@ SUBROUTINE SET_MASS(TPFILE,OPROFILE_IN_PROC, PZFLUX_PROFILE, KILOC,KJLOC,PZS_MX,PZMASS_MX,PZFLUX_MX,PPGROUND, & PTHVM,PMRM,PUW,PVW,OSHIFT,OBOUSS,PJ,HFUNU,HFUNV,PMRCM,PMRIM,PCORIOZ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics LOGICAL, INTENT(IN) :: OPROFILE_IN_PROC ! initialization profile in current processor @@ -124,7 +124,7 @@ SUBROUTINE SET_MASS(TPFILE,OPROFILE_IN_PROC, PZFLUX_PROFILE, ! use des modules USE MODD_GRID_n ! declarative modules USE MODD_GRID -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA USE MODD_CONF USE MODD_CONF_n USE MODD_FIELD_n diff --git a/src/MNH/set_perturb.f90 b/src/MNH/set_perturb.f90 index 1689ac4b1..40906e759 100644 --- a/src/MNH/set_perturb.f90 +++ b/src/MNH/set_perturb.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE SET_PERTURB(TPEXPREFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file ! @@ -108,14 +108,13 @@ USE MODD_CONF USE MODD_DIM_n USE MODD_FIELD_n USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LBC_n USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_LSFIELD_n USE MODD_PARAMETERS USE MODD_REF_n ! -USE MODE_FM USE MODE_GATHER_ll USE MODE_ll USE MODE_MPPDB diff --git a/src/MNH/set_ref.f90 b/src/MNH/set_ref.f90 index f666cb6f1..74890f3e8 100644 --- a/src/MNH/set_ref.f90 +++ b/src/MNH/set_ref.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !################### @@ -14,7 +14,7 @@ INTERFACE PREFMASS,PMASS_O_PHI0,PLINMASS, & PRHODREF,PTHVREF,PRVREF,PEXNREF,PRHODJ ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! INTEGER, INTENT(IN) :: KMI ! Model index TYPE(TFILEDATA), INTENT(IN) :: TPINIFILE ! Initial file @@ -155,12 +155,12 @@ END MODULE MODI_SET_REF ! ------------ USE MODD_CONF USE MODD_CST -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS USE MODD_REF ! -USE MODE_FMREAD +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_ll USE MODE_MPPDB USE MODE_REPRO_SUM @@ -255,9 +255,9 @@ ILUOUT = TLUOUT%NLU ! ---------------------------------------------------- ! IF (KMI == 1) THEN - CALL IO_READ_FIELD(TPINIFILE,'RHOREFZ',XRHODREFZ) - CALL IO_READ_FIELD(TPINIFILE,'THVREFZ',XTHVREFZ) - CALL IO_READ_FIELD(TPINIFILE,'EXNTOP', XEXNTOP) + CALL IO_Field_read(TPINIFILE,'RHOREFZ',XRHODREFZ) + CALL IO_Field_read(TPINIFILE,'THVREFZ',XTHVREFZ) + CALL IO_Field_read(TPINIFILE,'EXNTOP', XEXNTOP) ! LNEUTRAL=.FALSE. IF (MAXVAL(XTHVREFZ(IKB:IKE))-MINVAL(XTHVREFZ(IKB:IKE)) < 1.E-10) LNEUTRAL=.TRUE. diff --git a/src/MNH/set_relfrc.f90 b/src/MNH/set_relfrc.f90 index a87a28a7d..7c7fc25b1 100644 --- a/src/MNH/set_relfrc.f90 +++ b/src/MNH/set_relfrc.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- MODULE MODI_SET_RELFRC @@ -10,7 +10,7 @@ INTERFACE ! SUBROUTINE SET_RELFRC(TPEXPREFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file ! @@ -83,15 +83,13 @@ USE MODD_CST USE MODD_FRC USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n USE MODD_PARAMETERS, ONLY: JPHEXT USE MODD_REF USE MODD_RELFRC_n ! USE MODE_DATETIME -USE MODE_FM -USE MODE_IO_ll USE MODE_MSG USE MODE_THERMO ! diff --git a/src/MNH/set_rsou.f90 b/src/MNH/set_rsou.f90 index 509989b14..6c38994c6 100644 --- a/src/MNH/set_rsou.f90 +++ b/src/MNH/set_rsou.f90 @@ -12,7 +12,7 @@ INTERFACE SUBROUTINE SET_RSOU(TPFILE,TPEXPREFILE,HFUNU,HFUNV,KILOC,KJLOC,OBOUSS,OPV_PERT,& ORMV_BL,PJ,OSHIFT,PCORIOZ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! outpput data file TYPE(TFILEDATA), INTENT(IN) :: TPEXPREFILE ! input data file @@ -254,13 +254,11 @@ USE MODD_CST USE MODD_FIELD_n USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n USE MODD_PARAMETERS, ONLY: JPHEXT USE MODD_PARAM_n, ONLY: CCLOUD -! -USE MODE_FM -USE MODE_IO_ll +! USE MODE_ll USE MODE_MSG USE MODE_THERMO diff --git a/src/MNH/set_subdomain.f90 b/src/MNH/set_subdomain.f90 index 5eb20fb6d..ba8bdd4f2 100644 --- a/src/MNH/set_subdomain.f90 +++ b/src/MNH/set_subdomain.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################### @@ -10,7 +10,7 @@ INTERFACE SUBROUTINE SET_SUBDOMAIN(TPNMLFILE,TPATMFILE,KXOR_DAD,KYOR_DAD, & KXOR,KYOR,KDXRATIO,KDYRATIO ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPNMLFILE ! namelist file TYPE(TFILEDATA), INTENT(IN) :: TPATMFILE ! atmospheric MNH file @@ -85,23 +85,20 @@ END MODULE MODI_SET_SUBDOMAIN !* 0. DECLARATIONS ! ------------ ! -USE MODE_GRIDPROJ ! executive module -USE MODE_POS -USE MODE_FM -USE MODE_IO_ll -USE MODE_MSG -! -USE MODD_CONF ! declaration modules -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_LUNIT +USE MODD_CONF +USE MODD_DIM_n, ONLY: NIMAX_n=>NIMAX,NJMAX_n=>NJMAX USE MODD_GRID USE MODD_GRID_n -USE MODD_DIM_n, ONLY: NIMAX_n=>NIMAX,NJMAX_n=>NJMAX -USE MODD_PGDGRID -USE MODD_PGDDIM +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT USE MODD_PARAMETERS +USE MODD_PGDDIM +USE MODD_PGDGRID ! -USE MODE_FMREAD +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_GRIDPROJ +USE MODE_MSG +USE MODE_POS ! IMPLICIT NONE ! @@ -222,24 +219,24 @@ WRITE(ILUOUT0,*) 'given or computed NYOR = ',NYOR !* 4.1 TEST if FATHER of atmospheric MNH file exists: ! --------------------------------------------- ! -CALL IO_READ_FIELD(TPATMFILE,'DAD_NAME',YDADFILE,IRESP) +CALL IO_Field_read(TPATMFILE,'DAD_NAME',YDADFILE,IRESP) IF ( IRESP /= 0 ) YDADFILE=' ' ! IF (LEN_TRIM(YDADFILE)/=0) THEN - CALL IO_READ_FIELD(TPATMFILE,'DXRATIO',KDXRATIO,IRESP) + CALL IO_Field_read(TPATMFILE,'DXRATIO',KDXRATIO,IRESP) IF ( IRESP /= 0 .OR. KDXRATIO == 0 ) THEN KDXRATIO=1 END IF ! - CALL IO_READ_FIELD(TPATMFILE,'DYRATIO',KDYRATIO,IRESP) + CALL IO_Field_read(TPATMFILE,'DYRATIO',KDYRATIO,IRESP) IF ( IRESP /= 0 .OR. KDYRATIO == 0 ) THEN KDYRATIO=1 END IF ! - CALL IO_READ_FIELD(TPATMFILE,'XOR',KXOR,IRESP) + CALL IO_Field_read(TPATMFILE,'XOR',KXOR,IRESP) IF ( IRESP /= 0 ) KXOR_DAD=1 ! - CALL IO_READ_FIELD(TPATMFILE,'YOR',KYOR,IRESP) + CALL IO_Field_read(TPATMFILE,'YOR',KYOR,IRESP) IF ( IRESP /= 0 ) KYOR_DAD=1 END IF ! diff --git a/src/MNH/shallow_mf_pack.f90 b/src/MNH/shallow_mf_pack.f90 index ba519f8e3..7ffbbb145 100644 --- a/src/MNH/shallow_mf_pack.f90 +++ b/src/MNH/shallow_mf_pack.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2010-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2010-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. ! ###################### MODULE MODI_SHALLOW_MF_PACK @@ -21,7 +21,7 @@ INTERFACE PSIGMF,PRC_MF,PRI_MF,PCF_MF,PFLXZTHVMF ) ! ################################################################# !! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! !* 1.1 Declaration of Arguments ! @@ -123,14 +123,14 @@ END MODULE MODI_SHALLOW_MF_PACK USE MODD_PARAMETERS USE MODD_CST USE MODD_CONF -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_NSV -USE MODD_PARAM_ICE, ONLY : CFRAC_ICE_SHALLOW_MF +USE MODD_PARAM_ICE, ONLY: CFRAC_ICE_SHALLOW_MF USE MODD_PARAM_MFSHALL_n USE MODD_BUDGET -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODI_SHALLOW_MF USE MODI_BUDGET @@ -390,7 +390,7 @@ IF ( OMF_FLX .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK) ! ! stores the conservative mixing ratio vertical flux ZWORK(:,:,:)=RESHAPE(ZFLXZRMF(:,:),(/ IIU,IJU,IKU /) ) @@ -404,7 +404,7 @@ IF ( OMF_FLX .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK) ! ! stores the theta_v vertical flux TZFIELD%CMNHNAME = 'MF_THVW_FLX' @@ -417,7 +417,7 @@ IF ( OMF_FLX .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PFLXZTHVMF) + CALL IO_Field_write(TPFILE,TZFIELD,PFLXZTHVMF) ! IF (OMIXUV) THEN ! stores the U momentum vertical flux @@ -432,7 +432,7 @@ IF ( OMF_FLX .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK) ! ! stores the V momentum vertical flux ZWORK(:,:,:)=RESHAPE(ZFLXZVMF(:,:),(/ IIU,IJU,IKU /) ) @@ -446,7 +446,7 @@ IF ( OMF_FLX .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK) ! END IF END IF diff --git a/src/MNH/spawn_field2.f90 b/src/MNH/spawn_field2.f90 index 69346e7ba..8c6748d5a 100644 --- a/src/MNH/spawn_field2.f90 +++ b/src/MNH/spawn_field2.f90 @@ -18,7 +18,7 @@ INTERFACE KIB2,KJB2,KIE2,KJE2, & KIB1,KJB1,KIE1,KJE1 ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KXOR,KXEND ! horizontal position (i,j) of the ORigin and END INTEGER, INTENT(IN) :: KYOR,KYEND ! of the model 2 domain, relative to model 1 @@ -162,29 +162,29 @@ USE MODD_CH_AEROSOL, ONLY: CAERONAMES USE MODD_CH_M9_n, ONLY: CNAMES, CICNAMES USE MODD_CONF USE MODD_CST -USE MODD_CONF_n, ONLY: CONF_MODEL +USE MODD_CONF_n, ONLY: CONF_MODEL USE MODD_DUST, ONLY: CDUSTNAMES USE MODD_ELEC_DESCR, ONLY: CELECNAMES -USE MODD_FIELD_n, ONLY: FIELD_MODEL -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_FIELD_n, ONLY: FIELD_MODEL +USE MODD_IO, ONLY: TFILEDATA USE MODD_LATZ_EDFLX -USE MODD_LBC_n, ONLY: LBC_MODEL +USE MODD_LBC_n, ONLY: LBC_MODEL USE MODD_LG, ONLY: CLGNAMES -USE MODD_LUNIT_n, ONLY: LUNIT_MODEL,TLUOUT +USE MODD_LUNIT_n, ONLY: LUNIT_MODEL,TLUOUT USE MODD_NSV -USE MODD_REF_n, ONLY: REF_MODEL +USE MODD_REF_n, ONLY: REF_MODEL USE MODD_PARAMETERS -USE MODD_PARAM_LIMA , ONLY : NMOD_CCN, NMOD_IFN, NMOD_IMM, NINDICE_CCN_IMM,& - LSCAV, LAERO_MASS, LHHONI -USE MODD_PARAM_LIMA_COLD, ONLY : CLIMA_COLD_NAMES -USE MODD_PARAM_LIMA_WARM, ONLY : CLIMA_WARM_NAMES, CAERO_MASS +USE MODD_PARAM_LIMA, ONLY: NMOD_CCN, NMOD_IFN, NMOD_IMM, NINDICE_CCN_IMM,& + LSCAV, LAERO_MASS, LHHONI +USE MODD_PARAM_LIMA_COLD, ONLY: CLIMA_COLD_NAMES +USE MODD_PARAM_LIMA_WARM, ONLY: CLIMA_WARM_NAMES, CAERO_MASS USE MODD_RAIN_C2R2_DESCR, ONLY: C2R2NAMES USE MODD_RELFRC_n USE MODD_SALT, ONLY: CSALTNAMES USE MODD_SPAWN ! USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FMREAD +USE MODE_IO_FIELD_READ, only: IO_Field_read USE MODE_ll USE MODE_MODELN_HANDLER USE MODE_MPPDB @@ -719,11 +719,11 @@ IF (PRESENT(TPSONFILE)) THEN ! !variables which always exist ! - CALL IO_READ_FIELD(TPSONFILE,'UT',ZWORK3D) ! U wind component at time t + CALL IO_Field_read(TPSONFILE,'UT',ZWORK3D) ! U wind component at time t PUT(KIB2:KIE2,KJB2:KJE2,:) = ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) - CALL IO_READ_FIELD(TPSONFILE,'VT',ZWORK3D) ! V wind component at time t + CALL IO_Field_read(TPSONFILE,'VT',ZWORK3D) ! V wind component at time t PVT(KIB2:KIE2,KJB2:KJE2,:) = ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) - CALL IO_READ_FIELD(TPSONFILE,'WT',ZWORK3D) ! W wind component at time t + CALL IO_Field_read(TPSONFILE,'WT',ZWORK3D) ! W wind component at time t PWT(KIB2:KIE2,KJB2:KJE2,:) = ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) ! ! moist variables @@ -731,37 +731,37 @@ IF (PRESENT(TPSONFILE)) THEN IRR=1 IF (IRR<=CONF_MODEL(1)%NRR) THEN GUSERV=.TRUE. - CALL IO_READ_FIELD(TPSONFILE,'RVT',ZWORK3D,IRESP) ! Vapor at time t + CALL IO_Field_read(TPSONFILE,'RVT',ZWORK3D,IRESP) ! Vapor at time t IF(IRESP==0) ZRT1(:,:,:,IRR)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) IF(IRESP==0) IRR=IRR+1 END IF IF (IRR<=CONF_MODEL(1)%NRR) THEN - CALL IO_READ_FIELD(TPSONFILE,'RCT',ZWORK3D,IRESP) ! Cloud at time t + CALL IO_Field_read(TPSONFILE,'RCT',ZWORK3D,IRESP) ! Cloud at time t IF(IRESP==0) ZRT1(:,:,:,IRR)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) IF(IRESP==0) IRR=IRR+1 END IF IF (IRR<=CONF_MODEL(1)%NRR) THEN - CALL IO_READ_FIELD(TPSONFILE,'RRT',ZWORK3D,IRESP) ! Rain at time t + CALL IO_Field_read(TPSONFILE,'RRT',ZWORK3D,IRESP) ! Rain at time t IF(IRESP==0) ZRT1(:,:,:,IRR)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) IF(IRESP==0) IRR=IRR+1 END IF IF (IRR<=CONF_MODEL(1)%NRR) THEN - CALL IO_READ_FIELD(TPSONFILE,'RIT',ZWORK3D,IRESP) ! Ice at time t + CALL IO_Field_read(TPSONFILE,'RIT',ZWORK3D,IRESP) ! Ice at time t IF(IRESP==0) ZRT1(:,:,:,IRR)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) IF(IRESP==0) IRR=IRR+1 END IF IF (IRR<=CONF_MODEL(1)%NRR) THEN - CALL IO_READ_FIELD(TPSONFILE,'RST',ZWORK3D,IRESP) ! Snow at time t + CALL IO_Field_read(TPSONFILE,'RST',ZWORK3D,IRESP) ! Snow at time t IF(IRESP==0) ZRT1(:,:,:,IRR)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) IF(IRESP==0) IRR=IRR+1 END IF IF (IRR<=CONF_MODEL(1)%NRR) THEN - CALL IO_READ_FIELD(TPSONFILE,'RGT',ZWORK3D,IRESP) ! Graupel at time t + CALL IO_Field_read(TPSONFILE,'RGT',ZWORK3D,IRESP) ! Graupel at time t IF(IRESP==0) ZRT1(:,:,:,IRR)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) IF(IRESP==0) IRR=IRR+1 END IF IF (IRR<=CONF_MODEL(1)%NRR) THEN - CALL IO_READ_FIELD(TPSONFILE,'HVT',ZWORK3D,IRESP) ! Hail at time t + CALL IO_Field_read(TPSONFILE,'HVT',ZWORK3D,IRESP) ! Hail at time t IF(IRESP==0) ZRT1(:,:,:,IRR)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) IF(IRESP==0) IRR=IRR+1 END IF @@ -769,9 +769,9 @@ IF (PRESENT(TPSONFILE)) THEN WRITE(ILUOUT,FMT=*) 'SPAWN_FIELD2: spawing with a SON input file' WRITE(ILUOUT,FMT=*) ' ',CONF_MODEL(1)%NRR,' moist variables in model1 and model2, ', & IRR,' moist variables in input SON' - CALL IO_READ_FIELD(TPSONFILE,'THT',ZWORK3D) ! Theta at time t + CALL IO_Field_read(TPSONFILE,'THT',ZWORK3D) ! Theta at time t ZTHT1(:,:,:)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) - CALL IO_READ_FIELD(TPSONFILE,'PABST',ZWORK3D) ! Pressure at time t + CALL IO_Field_read(TPSONFILE,'PABST',ZWORK3D) ! Pressure at time t ZPABST1(:,:,:)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) ! CALL COMPUTE_THV_HU(GUSERV,ZRT1,ZTHT1,ZPABST1,ZTHVT1,ZHUT1) @@ -785,7 +785,7 @@ IF (PRESENT(TPSONFILE)) THEN ! TKE variables ! IF (HTURB/='NONE') THEN - CALL IO_READ_FIELD(TPSONFILE,'TKET',ZWORK3D,IRESP) ! Turbulence Kinetic Energy at time t + CALL IO_Field_read(TPSONFILE,'TKET',ZWORK3D,IRESP) ! Turbulence Kinetic Energy at time t IF(IRESP==0) PTKET(KIB2:KIE2,KJB2:KJE2,:)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END IF ! @@ -806,7 +806,7 @@ IF (PRESENT(TPSONFILE)) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'SVT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -825,7 +825,7 @@ IF (PRESENT(TPSONFILE)) THEN TZFIELD%CMNHNAME = TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -891,7 +891,7 @@ IF (PRESENT(TPSONFILE)) THEN END IF ! time t TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO ! @@ -915,7 +915,7 @@ IF (PRESENT(TPSONFILE)) THEN TZFIELD%CUNITS = 'm-3' WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3,A)')'X_Y_Z_','SVT',JSV,' (nb ions/m3)' END IF - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -935,7 +935,7 @@ IF (PRESENT(TPSONFILE)) THEN TZFIELD%CMNHNAME = TRIM(CNAMES(JSV-NSV_CHEMBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -956,7 +956,7 @@ IF (PRESENT(TPSONFILE)) THEN TZFIELD%CMNHNAME = TRIM(CICNAMES(JSV-NSV_CHICBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -976,7 +976,7 @@ IF (PRESENT(TPSONFILE)) THEN TZFIELD%CMNHNAME = TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1)))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -996,7 +996,7 @@ IF (PRESENT(TPSONFILE)) THEN TZFIELD%CMNHNAME = TRIM(CDUSTNAMES(JSV-NSV_DSTBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -1016,7 +1016,7 @@ IF (PRESENT(TPSONFILE)) THEN TZFIELD%CMNHNAME = TRIM(CSALTNAMES(JSV-NSV_SLTBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -1036,7 +1036,7 @@ IF (PRESENT(TPSONFILE)) THEN TZFIELD%CMNHNAME = TRIM(CLGNAMES(JSV-NSV_LGBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -1058,7 +1058,7 @@ IF (PRESENT(TPSONFILE)) THEN TZFIELD%CMNHNAME = 'LINOX' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -1078,7 +1078,7 @@ IF (PRESENT(TPSONFILE)) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'SVT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -1099,7 +1099,7 @@ IF (PRESENT(TPSONFILE)) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'SVT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -1120,7 +1120,7 @@ IF (PRESENT(TPSONFILE)) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'SVT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PSVT(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -1140,7 +1140,7 @@ IF (PRESENT(TPSONFILE)) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'ATC',JSV+NSV_PPBEG-1 TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','ATC',JSV+NSV_PPBEG-1 - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PATC(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -1161,7 +1161,7 @@ IF (PRESENT(TPSONFILE)) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'ATC',JSV+NSV_FFBEG-1 TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','ATC',JSV+NSV_FFBEG-1 - CALL IO_READ_FIELD(TPSONFILE,TZFIELD,ZWORK3D,IRESP) + CALL IO_Field_read(TPSONFILE,TZFIELD,ZWORK3D,IRESP) IF(IRESP==0) PATC(KIB2:KIE2,KJB2:KJE2,:,JSV)=ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END DO END IF @@ -1171,10 +1171,10 @@ IF (PRESENT(TPSONFILE)) THEN ! Secondary pronostic variables ! IF (HTURB /= 'NONE' .AND. IRR>1) THEN - CALL IO_READ_FIELD(TPSONFILE,'SRCT',ZWORK3D,IRESP) ! turbulent flux SRC at time t + CALL IO_Field_read(TPSONFILE,'SRCT',ZWORK3D,IRESP) ! turbulent flux SRC at time t IF(IRESP == 0) PSRCT(KIB2:KIE2,KJB2:KJE2,:) = & ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) - CALL IO_READ_FIELD(TPSONFILE,'SIGS',ZWORK3D,IRESP) ! subgrid condensation + CALL IO_Field_read(TPSONFILE,'SIGS',ZWORK3D,IRESP) ! subgrid condensation IF(IRESP == 0) PSIGS(KIB2:KIE2,KJB2:KJE2,:) = & ZWORK3D(KIB1:KIE1,KJB1:KJE1,:) END IF diff --git a/src/MNH/spawn_grid2.f90 b/src/MNH/spawn_grid2.f90 index c1e938c6a..1a6e19226 100644 --- a/src/MNH/spawn_grid2.f90 +++ b/src/MNH/spawn_grid2.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !###################### @@ -164,8 +164,6 @@ USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_BIKHARDT_n USE MODD_VAR_ll USE MODE_ll -USE MODE_FM -USE MODE_IO_ll USE MODE_TIME USE MODE_GRIDPROJ ! diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90 index 38dd08f61..b54c1e9e3 100644 --- a/src/MNH/spawn_model2.f90 +++ b/src/MNH/spawn_model2.f90 @@ -2,6 +2,7 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- !######################## MODULE MODI_SPAWN_MODEL2 !######################## @@ -90,10 +91,10 @@ END MODULE MODI_SPAWN_MODEL2 !! TOTAL_DMASS : to compute the total mass of dry air !! ANEL_BALANCE2 : to apply an anelastic correction in the case of changing !! resolution between the two models -!! IO_FILE_OPEN_ll : to open a FM-file (DESFM + LFIFM) +!! IO_File_open : to open a FM-file (DESFM + LFIFM) !! WRITE_DESFM : to write the DESFM file !! WRITE_LFIFM : to write the LFIFM file -!! IO_FILE_CLOSE_ll : to close a FM-file (DESFM + LFIFM) +!! IO_File_close : to close a FM-file (DESFM + LFIFM) !! INI_BIKHARDT2 : initializes Bikhardt coefficients !! !! @@ -191,7 +192,7 @@ END MODULE MODI_SPAWN_MODEL2 !! Modification 01/2016 (JP Pinty) Add LIMA !! 10/2016 (C.Lac) Add droplet deposition !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -229,7 +230,7 @@ USE MODD_CH_MNHC_n USE MODD_PASPOL_n !$20140515 USE MODD_VAR_ll, ONLY : NPROC -USE MODD_IO_ll, ONLY: TFILEDATA,TFILE_DUMMY,TFILE_SURFEX +USE MODD_IO, ONLY: TFILEDATA,TFILE_DUMMY,TFILE_SURFEX ! USE MODE_GRIDCART ! Executive modules USE MODE_GRIDPROJ @@ -257,12 +258,11 @@ USE MODI_CH_INIT_SCHEME_n !$20140710 USE MODI_UPDATE_METRICS ! -USE MODE_FM -USE MODE_FMWRIT, ONLY : IO_WRITE_HEADER -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FIELD_WRITE, only: IO_Header_write +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list USE MODE_MODELN_HANDLER -USE MODE_FMREAD USE MODE_MPPDB ! USE MODE_THERMO @@ -490,15 +490,15 @@ IF (LEN_TRIM(HSONFILE) /= 0 ) THEN ! 3.3.1 Opening the son input file and reading the grid ! WRITE(ILUOUT,*) 'SPAWN_MODEL2: spawning with a SON input file :',TRIM(HSONFILE) - CALL IO_FILE_ADD2LIST(TZSONFILE,TRIM(HSONFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) - CALL IO_FILE_OPEN_ll(TZSONFILE) - CALL IO_READ_FIELD(TZSONFILE,'DAD_NAME',YDAD_SON) - CALL IO_READ_FIELD(TZSONFILE,'IMAX', IIMAXSON) - CALL IO_READ_FIELD(TZSONFILE,'JMAX', IJMAXSON) - CALL IO_READ_FIELD(TZSONFILE,'XOR', IXORSON) - CALL IO_READ_FIELD(TZSONFILE,'YOR', IYORSON) - CALL IO_READ_FIELD(TZSONFILE,'DXRATIO', IDXRATIOSON) - CALL IO_READ_FIELD(TZSONFILE,'DYRATIO', IDYRATIOSON) + CALL IO_File_add2list(TZSONFILE,TRIM(HSONFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=NVERB) + CALL IO_File_open(TZSONFILE) + CALL IO_Field_read(TZSONFILE,'DAD_NAME',YDAD_SON) + CALL IO_Field_read(TZSONFILE,'IMAX', IIMAXSON) + CALL IO_Field_read(TZSONFILE,'JMAX', IJMAXSON) + CALL IO_Field_read(TZSONFILE,'XOR', IXORSON) + CALL IO_Field_read(TZSONFILE,'YOR', IYORSON) + CALL IO_Field_read(TZSONFILE,'DXRATIO', IDXRATIOSON) + CALL IO_Field_read(TZSONFILE,'DYRATIO', IDYRATIOSON) ! IF (ADJUSTL(ADJUSTR(YDAD_SON)).NE.ADJUSTL(ADJUSTR(CMY_NAME(1)))) THEN WRITE(ILUOUT,*) 'SPAWN_MODEL2: DAD of SON file is different from the one of model2' @@ -1187,7 +1187,7 @@ CALL SPAWN_PRESSURE2(NXOR,NYOR,NXEND,NYEND,NDXRATIO,NDYRATIO, & ! IF (.NOT.GNOSON) THEN ALLOCATE(ZWORK3D(IIUSON,IJUSON,IKU)) - CALL IO_READ_FIELD(TZSONFILE,'PABST',ZWORK3D) + CALL IO_Field_read(TZSONFILE,'PABST',ZWORK3D) XPABST(IIB2:IIE2,IJB2:IJE2,:) = ZWORK3D(IIB1:IIE1,IJB1:IJE1,:) DEALLOCATE(ZWORK3D) END IF @@ -1437,9 +1437,9 @@ ELSE CMY_NAME(2)=ADJUSTL(ADJUSTR(CINIFILE)//'.spr'//ADJUSTL(HSPANBR)) END IF ! -CALL IO_FILE_ADD2LIST(TZFILE,CMY_NAME(2),'MNH','WRITE',KLFINPRAR=INPRAR,KLFITYPE=1,KLFIVERB=NVERB) +CALL IO_File_add2list(TZFILE,CMY_NAME(2),'MNH','WRITE',KLFINPRAR=INPRAR,KLFITYPE=1,KLFIVERB=NVERB) ! -CALL IO_FILE_OPEN_ll(TZFILE) +CALL IO_File_open(TZFILE) ! CALL WRITE_DESFM_n(2,TZFILE) ! @@ -1465,7 +1465,7 @@ ELSE CDAD_NAME(2)=CMY_NAME(1) ! model 1 becomes the DAD of model 2 (spawned one) ENDIF ! -CALL IO_WRITE_HEADER(TZFILE,HDAD_NAME=CDAD_NAME(2)) +CALL IO_Header_write(TZFILE,HDAD_NAME=CDAD_NAME(2)) CALL WRITE_LFIFM_n(TZFILE,CDAD_NAME(2)) ! CALL SECOND_MNH(ZTIME2) @@ -1491,9 +1491,9 @@ ZSURF2 = ZTIME2 - ZTIME1 !* 8. CLOSES THE FMFILE ! ----------------- ! -CALL IO_FILE_CLOSE_ll(TZFILE) +CALL IO_File_close(TZFILE) IF (ASSOCIATED(TZSONFILE)) THEN - CALL IO_FILE_CLOSE_ll(TZSONFILE) + CALL IO_File_close(TZSONFILE) END IF ! !------------------------------------------------------------------------------- @@ -1656,7 +1656,7 @@ WRITE(ILUOUT,*) ' ------------------------------------------------------------ ' 6 FORMAT(' | SPAWN_MODEL2 | ',F8.3,' | ',F8.3,' |') ! ! -CALL IO_FILE_CLOSE_ll(TLUOUT) +CALL IO_File_close(TLUOUT) ! 9900 FORMAT(' K = 001 ZHAT = ',E14.7) 9901 FORMAT(' K = ',I3.3,' ZHAT = ',E14.7,' DZ = ' ,E14.7) diff --git a/src/MNH/spawn_surf.f90 b/src/MNH/spawn_surf.f90 index f9e126c20..deee96b3b 100644 --- a/src/MNH/spawn_surf.f90 +++ b/src/MNH/spawn_surf.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2004-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2004-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !######################## @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE SPAWN_SURF (HINIFILE, HINIFILEPGD, TPOUTDATAFILE, OSPAWN_SURF) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! CHARACTER (LEN=*), INTENT(IN) :: HINIFILE ! Input file @@ -75,7 +75,7 @@ END MODULE MODI_SPAWN_SURF ! USE MODD_CONF, ONLY : NVERB USE MODD_GRID_n, ONLY : XZS -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA USE MODD_IO_SURF_MNH, ONLY : COUTFILE USE MODD_LUNIT, ONLY : TPGDFILE, TOUTDATAFILE USE MODD_MNH_SURFEX_n @@ -84,8 +84,6 @@ USE MODD_PARAM_n, ONLY : CSURF USE MODD_TIME_n, ONLY : TDTCUR ! USE MODE_ll -USE MODE_FMWRIT -USE MODE_IO_ll USE MODE_MODELN_HANDLER USE MODE_PREP_CTL, ONLY : PREP_CTL ! diff --git a/src/MNH/spawn_surf2_rain.f90 b/src/MNH/spawn_surf2_rain.f90 index a1f774f4f..0c324004d 100644 --- a/src/MNH/spawn_surf2_rain.f90 +++ b/src/MNH/spawn_surf2_rain.f90 @@ -17,7 +17,7 @@ INTERFACE KIB2,KJB2,KIE2,KJE2, & KIB1,KJB1,KIE1,KJE1 ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! IMPLICIT NONE ! @@ -116,10 +116,10 @@ END MODULE MODI_SPAWN_SURF2_RAIN ! ------------ ! USE MODD_BIKHARDT_n -USE MODD_CONF, ONLY : CCONF,CPROGRAM -USE MODD_FIELD_n, ONLY : XTHT -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LBC_n, ONLY : LBC_MODEL +USE MODD_CONF, ONLY: CCONF, CPROGRAM +USE MODD_FIELD_n, ONLY: XTHT +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LBC_n, ONLY: LBC_MODEL USE MODD_SPAWN ! USE MODE_MODELN_HANDLER diff --git a/src/MNH/spawn_zs.f90 b/src/MNH/spawn_zs.f90 index 63bd460af..f015f586f 100644 --- a/src/MNH/spawn_zs.f90 +++ b/src/MNH/spawn_zs.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2005-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2005-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !################### @@ -114,7 +114,6 @@ USE MODI_ZS_BOUNDARY ! USE MODE_MODELN_HANDLER ! -USE MODE_FM USE MODE_MPPDB USE MODD_VAR_ll USE MODE_ll diff --git a/src/MNH/spawning.f90 b/src/MNH/spawning.f90 index 54c6103b6..4e654fff1 100644 --- a/src/MNH/spawning.f90 +++ b/src/MNH/spawning.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -75,7 +75,7 @@ !! 06/2016 (G.Delautier) phasage surfex 8 !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O ! P. Wautelet 07/02/2019: remove OPARALLELIO argument from open and close files subroutines -! (nsubfiles_ioz is now determined in IO_FILE_ADD2LIST) +! (nsubfiles_ioz is now determined in IO_File_add2list) !------------------------------------------------------------------------------- ! !* 0. DECLARATIONS @@ -103,7 +103,7 @@ USE MODD_CURVCOR_n USE MODD_DIM_n USE MODD_DYN_n, LRES_n=>LRES, XRES_n=>XRES USE MODD_FIELD_n -USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG,TFILEDATA +USE MODD_IO, ONLY: NIO_VERB,NVERB_DEBUG,TFILEDATA USE MODD_LSFIELD_n USE MODD_LBC_n USE MODD_LUNIT_n @@ -113,12 +113,12 @@ USE MODD_REF_n USE MODD_TIME_n USE MODD_CH_MNHC_n USE MODD_GRID_n -! -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY: IO_FILE_FIND_BYNAME,IO_FILE_PRINT_LIST +! +USE MODE_IO, only: IO_Init +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list, IO_File_find_byname, IO_Filelist_print USE MODE_ll USE MODE_POS -USE MODE_FM USE MODE_MODELN_HANDLER ! USE MODI_SPAWN_MODEL2 @@ -167,7 +167,7 @@ CALL VERSION CPROGRAM='SPAWN ' CDOMAIN= '' ! -CALL INITIO_ll() +CALL IO_Init() !------------------------------------------------------------------------------- ! !* 1. SPAWNING INITIALIZATION @@ -182,8 +182,8 @@ CALL READ_EXSPA(CINIFILE,CINIFILEPGD,& !* 2. NAM_BLANK, NAM_SPAWN_SURF and NAM_CONFZ READING AND EXSPA file CLOSURE ! ---------------------------------------- ! -CALL IO_FILE_FIND_BYNAME('SPAWN1.nam',TZEXPAFILE,IRESP) -CALL IO_FILE_OPEN_ll(TZEXPAFILE) +CALL IO_File_find_byname('SPAWN1.nam',TZEXPAFILE,IRESP) +CALL IO_File_open(TZEXPAFILE) ILUSPA = TZEXPAFILE%NLU ! CALL INIT_NMLVAR @@ -196,7 +196,7 @@ CALL POSNAM(ILUSPA,'NAM_CONFZ',GFOUND) IF (GFOUND) READ(UNIT=ILUSPA,NML=NAM_CONFZ) CALL POSNAM(ILUSPA,'NAM_CONF_SPAWN',GFOUND) IF (GFOUND) READ(UNIT=ILUSPA,NML=NAM_CONF_SPAWN) -CALL IO_FILE_CLOSE_ll(TZEXPAFILE) +CALL IO_File_close(TZEXPAFILE) ! !------------------------------------------------------------------------------- ! @@ -205,9 +205,9 @@ CALL IO_FILE_CLOSE_ll(TZEXPAFILE) ! CALL INIT_MNH ! -CALL IO_FILE_FIND_BYNAME(TRIM(CINIFILE),TZINIFILE,IRESP) -CALL IO_FILE_CLOSE_ll(TZINIFILE) -CALL IO_FILE_CLOSE_ll(TINIFILEPGD) +CALL IO_File_find_byname(TRIM(CINIFILE),TZINIFILE,IRESP) +CALL IO_File_close(TZINIFILE) +CALL IO_File_close(TINIFILEPGD) !------------------------------------------------------------------------------- ! !* 4. INITIALIZATION OF OUTER POINTS OF MODEL 1 @@ -228,7 +228,7 @@ CALL MPPDB_CHECK3D(XUT,"SPAWNING-after boundaries::XUT",PRECISION) !* 5. SPAWNING OF MODEL 2 FROM MODEL 1 ! -------------------------------- ! -CALL IO_FILE_OPEN_ll(TZEXPAFILE) +CALL IO_File_open(TZEXPAFILE) ILUSPA = TZEXPAFILE%NLU ! CALL SET_POINTERS_TO_MODEL1() @@ -238,7 +238,7 @@ CALL POSNAM(ILUSPA,'NAM_SPAWN_SURF',GFOUND) IF (GFOUND) READ(UNIT=ILUSPA,NML=NAM_SPAWN_SURF) CALL UPDATE_MODD_FROM_NMLVAR CALL GOTO_MODEL(1) -CALL IO_FILE_CLOSE_ll(TZEXPAFILE) +CALL IO_File_close(TZEXPAFILE) ! CALL GO_TOMODEL_ll(2,IINFO_ll) ! @@ -248,9 +248,9 @@ CALL SPAWN_MODEL2 (NRR,NSV_USER,CTURB,CSURF,CCLOUD, & ! CALL SURFEX_DEALLO_LIST ! -IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST() +IF(NIO_VERB>=NVERB_DEBUG) CALL IO_Filelist_print() ! -CALL IO_FILE_CLOSE_ll(TLUOUT) +CALL IO_File_close(TLUOUT) ! CALL END_PARA_ll(IINFO_ll) !JUAN CALL ABORT diff --git a/src/MNH/spectre.f90 b/src/MNH/spectre.f90 index ef3367cdc..22878e5a9 100644 --- a/src/MNH/spectre.f90 +++ b/src/MNH/spectre.f90 @@ -1,7 +1,8 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ######spl PROGRAM SPECTRE ! ############ @@ -24,7 +25,7 @@ ! ! USE MODD_CONF -USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG,TFILEDATA +USE MODD_IO, ONLY: NIO_VERB,NVERB_DEBUG,TFILEDATA USE MODD_LUNIT USE MODD_LUNIT_n USE MODD_TIME_n @@ -36,10 +37,10 @@ USE MODI_SPECTRE_AROME ! USE MODE_MSG USE MODE_POS -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST,IO_FILE_PRINT_LIST +USE MODE_IO, only: IO_Config_set, IO_Init +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list, IO_Filelist_print USE MODE_MODELN_HANDLER -USE MODE_FM !USE MODD_TYPE_DATE USE MODI_VERSION ! @@ -84,7 +85,7 @@ CALL GOTO_MODEL(1) CALL VERSION CPROGRAM='SPEC ' ! -CALL INITIO_ll() +CALL IO_Init() ! ! initialization YINIFILE(:) = ' ' @@ -120,8 +121,8 @@ PRINT*, '*********************************************************************' PRINT*, '*********************************************************************' PRINT*, ' ' ! -CALL IO_FILE_ADD2LIST(TZNMLFILE,'SPEC1.nam','NML','READ') -CALL IO_FILE_OPEN_ll(TZNMLFILE) +CALL IO_File_add2list(TZNMLFILE,'SPEC1.nam','NML','READ') +CALL IO_File_open(TZNMLFILE) ILUNAM = TZNMLFILE%NLU ! PRINT*, 'READ THE SPEC1.NAM FILE' @@ -162,9 +163,9 @@ IF (GFOUND) THEN READ(UNIT=ILUNAM,NML=NAM_CONFIO) PRINT*, ' namelist NAM_CONFIO read' END IF -CALL SET_CONFIO_ll() +CALL IO_Config_set() ! -CALL IO_FILE_CLOSE_ll(TZNMLFILE) +CALL IO_File_close(TZNMLFILE) ! CINIFILE = YINIFILE(1) ! @@ -188,10 +189,10 @@ ENDIF IF (CTYPEFILE=='MESONH') THEN CALL SPECTRE_MESONH(YOUTFILE) ! - CALL IO_FILE_CLOSE_ll(LUNIT_MODEL(1)%TINIFILE) - IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST() - CALL IO_FILE_CLOSE_ll(TLUOUT0) - CALL IO_FILE_CLOSE_ll(TLUOUT) + CALL IO_File_close(LUNIT_MODEL(1)%TINIFILE) + IF(NIO_VERB>=NVERB_DEBUG) CALL IO_Filelist_print() + CALL IO_File_close(TLUOUT0) + CALL IO_File_close(TLUOUT) ELSEIF (CTYPEFILE=='AROME ')THEN CALL SPECTRE_AROME(CINIFILE,YOUTFILE,XDELTAX,XDELTAY,NI,NJ,NK) ELSE diff --git a/src/MNH/spectre_arome.f90 b/src/MNH/spectre_arome.f90 index 532c3d979..81a83ebc2 100644 --- a/src/MNH/spectre_arome.f90 +++ b/src/MNH/spectre_arome.f90 @@ -2,6 +2,11 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- +! Modifications: +! P. Wautelet 05/2016-04/2018: new data structures and calls for I/O +! P. Wautelet 10/01/2019: use NEWUNIT argument of OPEN +!----------------------------------------------------------------- ! #################### MODULE MODI_SPECTRE_AROME ! #################### @@ -22,14 +27,9 @@ END MODULE SUBROUTINE SPECTRE_AROME(HINIFILE,HOUTFILE,PDELTAX,PDELTAY,KI,KJ,KK) ! ###################################################################### -! -! Modifications: -! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! Philippe Wautelet: 10/01/2019: use NEWUNIT argument of OPEN ! USE MODD_CONF -USE MODE_FM -USE MODE_IO_ll +USE MODE_IO, only: IO_Pack_set USE MODD_SPECTRE USE MODI_COMPUTE_SPECTRE USE MODD_PARAMETERS @@ -54,7 +54,7 @@ INTEGER :: JJJ,III,JERR CALL SET_SPLITTING_ll(CSPLIT) CALL SET_JP_ll(JPMODELMAX,JPHEXT,JPVEXT, NHALO) CALL SET_DAD0_ll() -CALL SET_FMPACK_ll(L1D,L2D,LPACK) +CALL IO_Pack_set(L1D,L2D,LPACK) ALLOCATE(ZWORK1(KI+2,KJ+2,KK+2)) ! IF (LSPECTRE_U) THEN diff --git a/src/MNH/tke_eps_sources.f90 b/src/MNH/tke_eps_sources.f90 index 883dabdc2..910497fcb 100644 --- a/src/MNH/tke_eps_sources.f90 +++ b/src/MNH/tke_eps_sources.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################### @@ -15,7 +15,7 @@ INTERFACE TPFILE,OCLOSE_OUT,OTURB_DIAG, & PTP,PRTKES,PRTKESM, PRTHLS,PCOEF_DISS,PTR,PDISS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KKA !near ground array index INTEGER, INTENT(IN) :: KKU !uppest atmosphere array index @@ -175,15 +175,15 @@ END MODULE MODI_TKE_EPS_SOURCES USE MODD_CST USE MODD_CONF USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_BUDGET USE MODD_LES USE MODD_DIAG_IN_RUN, ONLY : LDIAG_IN_RUN, XCURRENT_TKE_DISS ! USE MODE_ll -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -426,7 +426,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PDP) + CALL IO_Field_write(TPFILE,TZFIELD,PDP) ! ! stores the thermal production ! @@ -440,7 +440,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PTP) + CALL IO_Field_write(TPFILE,TZFIELD,PTP) ! ! stores the whole turbulent transport ! @@ -454,7 +454,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PTR) + CALL IO_Field_write(TPFILE,TZFIELD,PTR) ! ! stores the dissipation of TKE ! @@ -468,7 +468,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PDISS) + CALL IO_Field_write(TPFILE,TZFIELD,PDISS) END IF ! ! Storage in the LES configuration of the Dynamic Production of TKE and diff --git a/src/MNH/trid.f90 b/src/MNH/trid.f90 index 3f57d6a9c..db2600ee0 100644 --- a/src/MNH/trid.f90 +++ b/src/MNH/trid.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################ @@ -171,7 +171,6 @@ USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS ! USE MODE_ll -USE MODE_IO_ll USE MODE_MSG ! !JUAN diff --git a/src/MNH/tridz.f90 b/src/MNH/tridz.f90 index c72b59870..4a7445791 100644 --- a/src/MNH/tridz.f90 +++ b/src/MNH/tridz.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################ @@ -180,7 +180,6 @@ USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS ! USE MODE_ll -USE MODE_IO_ll USE MODE_MSG !JUAN P1/P2 SPLITTING USE MODE_SPLITTINGZ_ll , ONLY : GET_DIM_EXTZ_ll,GET_ORZ_ll,LWESTZ_ll,LSOUTHZ_ll diff --git a/src/MNH/turb.f90 b/src/MNH/turb.f90 index 5e304989b..835d79d0e 100644 --- a/src/MNH/turb.f90 +++ b/src/MNH/turb.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################ @@ -25,7 +25,7 @@ INTERFACE PFLXZTHVMF,PWTH,PWRC,PWSV,PDYP,PTHP,PTR,PDISS,PLEM ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KKA !near ground array index INTEGER, INTENT(IN) :: KKU !uppest atmosphere array index @@ -350,7 +350,7 @@ USE MODD_CST USE MODD_CTURB USE MODD_CONF USE MODD_BUDGET -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_NSV ! @@ -372,8 +372,8 @@ USE MODI_TM06 USE MODI_UPDATE_LM USE MODI_GET_HALO ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_SBL ! USE MODI_EMOIST @@ -688,7 +688,7 @@ IF (KRRL >=1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZATHETA) + CALL IO_Field_write(TPFILE,TZFIELD,ZATHETA) ! TZFIELD%CMNHNAME = 'AMOIST' TZFIELD%CSTDNAME = '' @@ -700,7 +700,7 @@ IF (KRRL >=1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZAMOIST) + CALL IO_Field_write(TPFILE,TZFIELD,ZAMOIST) END IF ! ELSE @@ -1058,7 +1058,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZLM) + CALL IO_Field_write(TPFILE,TZFIELD,ZLM) ! IF (KRR /= 0) THEN ! @@ -1074,7 +1074,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PTHLT) + CALL IO_Field_write(TPFILE,TZFIELD,PTHLT) ! ! stores the conservative mixing ratio ! @@ -1088,7 +1088,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PRT(:,:,:,1)) + CALL IO_Field_write(TPFILE,TZFIELD,PRT(:,:,:,1)) END IF END IF ! @@ -1703,7 +1703,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZLM) + CALL IO_Field_write(TPFILE,TZFIELD,ZLM) ENDIF ! ! Amplification of the mixing length when the criteria are verified @@ -1729,7 +1729,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZCOEF_AMPL) + CALL IO_Field_write(TPFILE,TZFIELD,ZCOEF_AMPL) ! TZFIELD%CMNHNAME = 'LM_CLOUD' TZFIELD%CSTDNAME = '' @@ -1740,7 +1740,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZLM_CLOUD) + CALL IO_Field_write(TPFILE,TZFIELD,ZLM_CLOUD) ! ENDIF ! diff --git a/src/MNH/turb_cloud_index.f90 b/src/MNH/turb_cloud_index.f90 index b9a42c2fc..a224e27eb 100644 --- a/src/MNH/turb_cloud_index.f90 +++ b/src/MNH/turb_cloud_index.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################ @@ -14,7 +14,7 @@ INTERFACE PRRS,PRM,PRHODJ,PDXX,PDYY,PDZZ,PDZX,PDZY, & PCEI ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! REAL, INTENT(IN) :: PTSTEP ! Double Time step TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! Output file @@ -85,11 +85,11 @@ END MODULE MODI_TURB_CLOUD_INDEX ! !------------------------------------------------------------------------------- ! -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_PARAMETERS, ONLY: JPVEXT +USE MODD_IO, ONLY: TFILEDATA +USE MODD_PARAMETERS, ONLY: JPVEXT ! -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_GRADIENT_M ! @@ -259,7 +259,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZRVCI) + CALL IO_Field_write(TPFILE,TZFIELD,ZRVCI) ! TZFIELD%CMNHNAME = 'GX_RVCI' TZFIELD%CSTDNAME = '' @@ -271,7 +271,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZG_RVCI(:,:,:,1)) + CALL IO_Field_write(TPFILE,TZFIELD,ZG_RVCI(:,:,:,1)) ! TZFIELD%CMNHNAME = 'GY_RVCI' TZFIELD%CSTDNAME = '' @@ -283,7 +283,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZG_RVCI(:,:,:,2)) + CALL IO_Field_write(TPFILE,TZFIELD,ZG_RVCI(:,:,:,2)) ! TZFIELD%CMNHNAME = 'GNORM_RVCI' TZFIELD%CSTDNAME = '' @@ -295,7 +295,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZGNORM_RVCI) + CALL IO_Field_write(TPFILE,TZFIELD,ZGNORM_RVCI) ! TZFIELD%CMNHNAME = 'QX_RVCI' TZFIELD%CSTDNAME = '' @@ -307,7 +307,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZQ_RVCI(:,:,:,1)) + CALL IO_Field_write(TPFILE,TZFIELD,ZQ_RVCI(:,:,:,1)) ! TZFIELD%CMNHNAME = 'QY_RVCI' TZFIELD%CSTDNAME = '' @@ -319,7 +319,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZQ_RVCI(:,:,:,2)) + CALL IO_Field_write(TPFILE,TZFIELD,ZQ_RVCI(:,:,:,2)) ! TZFIELD%CMNHNAME = 'QNORM_RVCI' TZFIELD%CSTDNAME = '' @@ -331,7 +331,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZQNORM_RVCI) + CALL IO_Field_write(TPFILE,TZFIELD,ZQNORM_RVCI) ! TZFIELD%CMNHNAME = 'CEI' TZFIELD%CSTDNAME = '' @@ -343,7 +343,7 @@ IF ( OTURB_DIAG .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,PCEI) + CALL IO_Field_write(TPFILE,TZFIELD,PCEI) END IF ! END SUBROUTINE TURB_CLOUD_INDEX diff --git a/src/MNH/turb_hor.f90 b/src/MNH/turb_hor.f90 index bc99e3bfc..389d45e49 100644 --- a/src/MNH/turb_hor.f90 +++ b/src/MNH/turb_hor.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -27,7 +27,7 @@ INTERFACE PRUS,PRVS,PRWS,PRTHLS,PRRS,PRSVS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KSPLT ! current split index INTEGER, INTENT(IN) :: KRR ! number of moist var. @@ -255,7 +255,7 @@ END MODULE MODI_TURB_HOR ! USE MODD_CST USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_LES ! diff --git a/src/MNH/turb_hor_dyn_corr.f90 b/src/MNH/turb_hor_dyn_corr.f90 index 930b8fb69..810c6c616 100644 --- a/src/MNH/turb_hor_dyn_corr.f90 +++ b/src/MNH/turb_hor_dyn_corr.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- MODULE MODI_TURB_HOR_DYN_CORR @@ -22,7 +22,7 @@ INTERFACE PDP,PTP, & PRUS,PRVS,PRWS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KSPLT ! split process index REAL, INTENT(IN) :: PTSTEP ! timestep @@ -141,18 +141,18 @@ END MODULE MODI_TURB_HOR_DYN_CORR !* 0. DECLARATIONS ! ------------ ! -USE MODD_ARGSLIST_ll, ONLY : LIST_ll +USE MODD_ARGSLIST_ll, ONLY: LIST_ll USE MODD_CST USE MODD_CONF USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_LES USE MODD_NSV ! USE MODE_ll -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -384,7 +384,7 @@ IF ( OCLOSE_OUT .AND. OTURB_FLX ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! ! Complete the U tendency @@ -479,7 +479,7 @@ IF ( OCLOSE_OUT .AND. OTURB_FLX ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! ! Complete the V tendency @@ -566,7 +566,7 @@ IF ( OCLOSE_OUT .AND. OTURB_FLX ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! ! Complete the W tendency diff --git a/src/MNH/turb_hor_splt.f90 b/src/MNH/turb_hor_splt.f90 index 88158afa3..df281d123 100644 --- a/src/MNH/turb_hor_splt.f90 +++ b/src/MNH/turb_hor_splt.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################### @@ -26,7 +26,7 @@ INTERFACE PRUS,PRVS,PRWS,PRTHLS,PRRS,PRSVS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KSPLIT ! number of time splitting INTEGER, INTENT(IN) :: KRR ! number of moist var. @@ -257,7 +257,7 @@ END MODULE MODI_TURB_HOR_SPLT USE MODD_CONF USE MODD_CST USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS ! ! diff --git a/src/MNH/turb_hor_sv_flux.f90 b/src/MNH/turb_hor_sv_flux.f90 index acb3da871..2ff88559c 100644 --- a/src/MNH/turb_hor_sv_flux.f90 +++ b/src/MNH/turb_hor_sv_flux.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ############################ @@ -20,7 +20,7 @@ INTERFACE PSVM, & PRSVS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KSPLT ! split process index LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous @@ -115,14 +115,14 @@ END MODULE MODI_TURB_HOR_SV_FLUX USE MODD_CST USE MODD_CONF USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS -USE MODD_NSV, ONLY : NSV_LGBEG,NSV_LGEND +USE MODD_NSV, ONLY: NSV_LGBEG, NSV_LGEND USE MODD_LES USE MODD_BLOWSNOW ! -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -262,7 +262,7 @@ DO JSV=1,ISV TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXX) END IF ! IF (LLES_CALL .AND. KSPLT==1) THEN @@ -313,7 +313,7 @@ DO JSV=1,ISV TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXY) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXY) END IF ! ELSE diff --git a/src/MNH/turb_hor_thermo_corr.f90 b/src/MNH/turb_hor_thermo_corr.f90 index 8ae8f14fd..e6f89e6d9 100644 --- a/src/MNH/turb_hor_thermo_corr.f90 +++ b/src/MNH/turb_hor_thermo_corr.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################################ @@ -20,7 +20,7 @@ INTERFACE PLOCPEXNM,PATHETA,PAMOIST,PSRCM, & PSIGS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KRR ! number of moist var. INTEGER, INTENT(IN) :: KRRL ! number of liquid water var. @@ -123,12 +123,12 @@ END MODULE MODI_TURB_HOR_THERMO_CORR USE MODD_CST USE MODD_CONF USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_LES ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -281,7 +281,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. OCLOSE_OUT ) & TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! ! Storage in the LES configuration (addition to TURB_VER computation) @@ -369,7 +369,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. OCLOSE_OUT ) & TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! ! Storage in the LES configuration (addition to TURB_VER computation) @@ -437,7 +437,7 @@ IF ( ( KRRL > 0 .AND. OSUBG_COND) .OR. ( OTURB_FLX .AND. OCLOSE_OUT ) & TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! ! Storage in the LES configuration (addition to TURB_VER computation) diff --git a/src/MNH/turb_hor_thermo_flux.f90 b/src/MNH/turb_hor_thermo_flux.f90 index 6bb5399da..188e932c6 100644 --- a/src/MNH/turb_hor_thermo_flux.f90 +++ b/src/MNH/turb_hor_thermo_flux.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################################ @@ -21,7 +21,7 @@ INTERFACE PATHETA,PAMOIST,PSRCM,PFRAC_ICE, & PRTHLS,PRRS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KSPLT ! split process index INTEGER, INTENT(IN) :: KRR ! number of moist var. @@ -132,12 +132,12 @@ END MODULE MODI_TURB_HOR_THERMO_FLUX USE MODD_CST USE MODD_CONF USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_LES ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -325,7 +325,7 @@ IF ( OCLOSE_OUT .AND. OTURB_FLX ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! IF (KSPLT==1 .AND. LLES_CALL) THEN @@ -428,7 +428,7 @@ IF (KRR/=0) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! IF (KSPLT==1 .AND. LLES_CALL) THEN @@ -477,7 +477,7 @@ END IF !! TZFIELD%NTYPE = TYPEREAL !! TZFIELD%NDIMS = 3 !! TZFIELD%LTIMEDEP = .TRUE. -!! CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZVPTU) +!! CALL IO_Field_write(TPFILE,TZFIELD,ZVPTU) !! END IF !!! !!ELSE @@ -580,7 +580,7 @@ IF ( OCLOSE_OUT .AND. OTURB_FLX ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! IF (KSPLT==1 .AND. LLES_CALL) THEN @@ -692,7 +692,7 @@ IF (KRR/=0) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! IF (KSPLT==1 .AND. LLES_CALL) THEN @@ -745,7 +745,7 @@ END IF !! TZFIELD%NTYPE = TYPEREAL !! TZFIELD%NDIMS = 3 !! TZFIELD%LTIMEDEP = .TRUE. -!! CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZVPTV) +!! CALL IO_Field_write(TPFILE,TZFIELD,ZVPTV) !! END IF !!! !!ELSE diff --git a/src/MNH/turb_hor_uv.f90 b/src/MNH/turb_hor_uv.f90 index d3bba36c2..70210144d 100644 --- a/src/MNH/turb_hor_uv.f90 +++ b/src/MNH/turb_hor_uv.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -22,7 +22,7 @@ INTERFACE PDP, & PRUS,PRVS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KSPLT ! split process index LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous @@ -128,12 +128,12 @@ END MODULE MODI_TURB_HOR_UV USE MODD_CST USE MODD_CONF USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_LES ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -285,7 +285,7 @@ IF ( OCLOSE_OUT .AND. OTURB_FLX ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! ! diff --git a/src/MNH/turb_hor_uw.f90 b/src/MNH/turb_hor_uw.f90 index be7ba4ea7..8860fdfd5 100644 --- a/src/MNH/turb_hor_uw.f90 +++ b/src/MNH/turb_hor_uw.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -20,7 +20,7 @@ INTERFACE PDP, & PRUS,PRWS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KSPLT ! split process index LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous @@ -119,13 +119,13 @@ END MODULE MODI_TURB_HOR_UW USE MODD_CST USE MODD_CONF USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_LES USE MODD_NSV ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -234,7 +234,7 @@ IF ( OCLOSE_OUT .AND. OTURB_FLX ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! ! diff --git a/src/MNH/turb_hor_vw.f90 b/src/MNH/turb_hor_vw.f90 index 8b9231469..a730e736f 100644 --- a/src/MNH/turb_hor_vw.f90 +++ b/src/MNH/turb_hor_vw.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -20,7 +20,7 @@ INTERFACE PDP, & PRVS,PRWS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KSPLT ! split process index LOGICAL, INTENT(IN) :: OCLOSE_OUT ! switch for syncronous @@ -115,13 +115,13 @@ END MODULE MODI_TURB_HOR_VW USE MODD_CST USE MODD_CONF USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_LES USE MODD_NSV ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_GRADIENT_M USE MODI_GRADIENT_U @@ -236,7 +236,7 @@ IF ( OCLOSE_OUT .AND. OTURB_FLX ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLX) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLX) END IF ! ! compute the source for rho*V due to this residual flux ( the other part is diff --git a/src/MNH/turb_ver.f90 b/src/MNH/turb_ver.f90 index ecf077cbb..b85c896a9 100644 --- a/src/MNH/turb_ver.f90 +++ b/src/MNH/turb_ver.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -27,7 +27,7 @@ INTERFACE PDP,PTP,PSIGS,PWTH,PWRC,PWSV ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KRR ! number of moist var. INTEGER, INTENT(IN) :: KRRL ! number of liquid water var. @@ -326,10 +326,10 @@ END MODULE MODI_TURB_VER ! USE MODD_CST USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_LES -USE MODD_NSV, ONLY : NSV +USE MODD_NSV, ONLY: NSV USE MODD_BLANK ! USE MODI_PRANDTL @@ -346,8 +346,8 @@ USE MODI_TURB_VER_SV_CORR USE MODI_LES_MEAN_SUBGRID USE MODI_SBL_DEPTH ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_PRANDTL ! USE MODI_SECOND_MNH @@ -712,7 +712,7 @@ IF ( OTURB_FLX .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPHI3) + CALL IO_Field_write(TPFILE,TZFIELD,ZPHI3) ! ! stores the Turbulent Schmidt number ! @@ -726,7 +726,7 @@ IF ( OTURB_FLX .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPSI3) + CALL IO_Field_write(TPFILE,TZFIELD,ZPSI3) ! ! ! stores the Turbulent Schmidt number for the scalar variables @@ -742,7 +742,7 @@ IF ( OTURB_FLX .AND. OCLOSE_OUT ) THEN WRITE(TZFIELD%CMNHNAME, '("PSI_SV_",I3.3)') JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPSI_SV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPSI_SV(:,:,:,JSV)) END DO ! END IF diff --git a/src/MNH/turb_ver_dyn_flux.f90 b/src/MNH/turb_ver_dyn_flux.f90 index 93b7f9016..eb6811a8f 100644 --- a/src/MNH/turb_ver_dyn_flux.f90 +++ b/src/MNH/turb_ver_dyn_flux.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -23,7 +23,7 @@ INTERFACE PRUS,PRVS,PRWS, & PDP,PTP ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KKA !near ground array index INTEGER, INTENT(IN) :: KKU !uppest atmosphere array index @@ -290,25 +290,25 @@ END MODULE MODI_TURB_VER_DYN_FLUX USE MODD_CONF USE MODD_CST USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_PARAMETERS +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_NSV +USE MODD_PARAMETERS ! ! USE MODI_GRADIENT_U USE MODI_GRADIENT_V USE MODI_GRADIENT_W USE MODI_GRADIENT_M -USE MODI_SHUMAN +USE MODI_SECOND_MNH +USE MODI_SHUMAN USE MODI_TRIDIAG USE MODI_TRIDIAG_WIND -USE MODE_FMWRIT USE MODI_LES_MEAN_SUBGRID ! -USE MODI_SECOND_MNH +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL ! IMPLICIT NONE ! @@ -521,7 +521,7 @@ IF ( OTURB_FLX .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXZ) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! ! first part of total momentum flux @@ -695,7 +695,7 @@ IF ( OTURB_FLX .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXZ) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! ! second part of total momentum flux @@ -807,7 +807,7 @@ IF ( OTURB_FLX .AND. OCLOSE_OUT .AND. HTURBDIM == '1DIM') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXZ) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! !---------------------------------------------------------------------------- diff --git a/src/MNH/turb_ver_sv_flux.f90 b/src/MNH/turb_ver_sv_flux.f90 index 26b102f73..30de8c5d6 100644 --- a/src/MNH/turb_ver_sv_flux.f90 +++ b/src/MNH/turb_ver_sv_flux.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -21,7 +21,7 @@ INTERFACE PTKEM,PLM,PPSI_SV, & PRSVS,PWSV ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KKA !near ground array index INTEGER, INTENT(IN) :: KKU !uppest atmosphere array index @@ -272,14 +272,14 @@ END MODULE MODI_TURB_VER_SV_FLUX ! USE MODD_CST USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_LES USE MODD_CONF -USE MODD_NSV, ONLY : XSVMIN,NSV_LGBEG,NSV_LGEND +USE MODD_NSV, ONLY: XSVMIN, NSV_LGBEG, NSV_LGEND USE MODD_BLOWSNOW -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_GRADIENT_U USE MODI_GRADIENT_V @@ -469,7 +469,7 @@ DO JSV=1,ISV TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. ! - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXZ) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! ! Storage in the LES configuration diff --git a/src/MNH/turb_ver_thermo_corr.f90 b/src/MNH/turb_ver_thermo_corr.f90 index e9dcb3f1c..598ad7c83 100644 --- a/src/MNH/turb_ver_thermo_corr.f90 +++ b/src/MNH/turb_ver_thermo_corr.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -25,7 +25,7 @@ INTERFACE PFWTH,PFWR,PFTH2,PFR2,PFTHR, & PTHLP,PRP,PSIGS ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KKA !near ground array index INTEGER, INTENT(IN) :: KKU !uppest atmosphere array index @@ -314,7 +314,7 @@ END MODULE MODI_TURB_VER_THERMO_CORR ! USE MODD_CST USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_CONF USE MODD_LES @@ -325,12 +325,12 @@ USE MODI_GRADIENT_W USE MODI_GRADIENT_M USE MODI_SHUMAN USE MODI_TRIDIAG -USE MODE_FMWRIT USE MODI_LES_MEAN_SUBGRID USE MODI_PRANDTL USE MODI_TRIDIAG_THERMO ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_PRANDTL ! USE MODI_SECOND_MNH @@ -582,7 +582,7 @@ END IF TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXZ) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! ! and we store in LES configuration @@ -709,7 +709,7 @@ END IF TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXZ) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! ! and we store in LES configuration @@ -816,7 +816,7 @@ END IF TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXZ) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! ! and we store in LES configuration diff --git a/src/MNH/turb_ver_thermo_flux.f90 b/src/MNH/turb_ver_thermo_flux.f90 index 0915d2544..5aa9cb6f0 100644 --- a/src/MNH/turb_ver_thermo_flux.f90 +++ b/src/MNH/turb_ver_thermo_flux.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! #################### @@ -26,7 +26,7 @@ INTERFACE PFWTH,PFWR,PFTH2,PFR2,PFTHR,PBL_DEPTH, & PWTHV,PRTHLS,PRRS,PTHLP,PRP,PTP,PWTH,PWRC ) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KKA !near ground array index INTEGER, INTENT(IN) :: KKU !uppest atmosphere array index @@ -332,7 +332,7 @@ END MODULE MODI_TURB_VER_THERMO_FLUX ! USE MODD_CST USE MODD_CTURB -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_CONF USE MODD_LES @@ -343,13 +343,13 @@ USE MODI_GRADIENT_W USE MODI_GRADIENT_M USE MODI_SHUMAN USE MODI_TRIDIAG -USE MODE_FMWRIT USE MODI_LES_MEAN_SUBGRID USE MODI_PRANDTL USE MODI_TRIDIAG_THERMO USE MODI_TM06_H ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_PRANDTL ! USE MODI_SECOND_MNH @@ -617,7 +617,7 @@ IF ( OTURB_FLX .AND. OCLOSE_OUT ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXZ) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! ! Contribution of the conservative temperature flux to the buoyancy flux @@ -795,7 +795,7 @@ IF (KRR /= 0) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXZ) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! ! Contribution of the conservative water flux to the Buoyancy flux @@ -877,7 +877,7 @@ IF ( ((OTURB_FLX .AND. OCLOSE_OUT) .OR. LLES_CALL) .AND. (KRRL > 0) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZFLXZ) + CALL IO_Field_write(TPFILE,TZFIELD,ZFLXZ) END IF ! ! and we store in LES configuration this subgrid flux <w'rc'> diff --git a/src/MNH/uv_to_zonal_and_merid.f90 b/src/MNH/uv_to_zonal_and_merid.f90 index c78aa754a..1403691bc 100644 --- a/src/MNH/uv_to_zonal_and_merid.f90 +++ b/src/MNH/uv_to_zonal_and_merid.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2000-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################################# @@ -9,7 +9,7 @@ INTERFACE UV_TO_ZONAL_AND_MERID SUBROUTINE UV_TO_ZONAL_AND_MERID3D(PU,PV,KGRID,PZC,PMC,TPFILE,TZFIELDS) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODE_FIELD, ONLY: TFIELDDATA ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PU ! Input U component @@ -24,7 +24,7 @@ END SUBROUTINE UV_TO_ZONAL_AND_MERID3D ! SUBROUTINE UV_TO_ZONAL_AND_MERID2D(PU,PV,KGRID,PZC,PMC,TPFILE,TZFIELDS) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODE_FIELD, ONLY: TFIELDDATA ! REAL, DIMENSION(:,:), INTENT(IN) :: PU ! Input U component @@ -47,7 +47,7 @@ INTERFACE ! SUBROUTINE UV_TO_ZONAL_AND_MERID3D(PU,PV,KGRID,PZC,PMC,TPFILE,TZFIELDS) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODE_FIELD, ONLY: TFIELDDATA ! REAL, DIMENSION(:,:,:), INTENT(IN) :: PU ! Input U component @@ -105,12 +105,12 @@ USE MODD_CST USE MODD_DIM_n USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA,NVERB_ERROR,NVERB_INFO,NVERB_WARNING -USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS ! -USE MODE_FIELD, ONLY: TFIELDDATA -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG ! USE MODI_SHUMAN @@ -220,8 +220,8 @@ IF(PRESENT(TPFILE)) THEN CALL PRINT_MSG(NVERB_WARNING,'IO','UV_TO_ZONAL_AND_MERID3D','inconsistent values for TZFIELDS(x)%HDIR') END IF ! - CALL IO_WRITE_FIELD(TPFILE,TZFIELDS(1),ZZC(:,:,:)) - CALL IO_WRITE_FIELD(TPFILE,TZFIELDS(2),ZMC(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELDS(1),ZZC(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELDS(2),ZMC(:,:,:)) ELSE IF (PRESENT(PZC).AND.PRESENT(PMC)) THEN PZC(:,:,:)=ZZC(:,:,:) PMC(:,:,:)=ZMC(:,:,:) @@ -276,11 +276,11 @@ END SUBROUTINE UV_TO_ZONAL_AND_MERID3D !* 0. DECLARATIONS ! ------------ ! -USE MODD_IO_ll, ONLY: TFILEDATA,NVERB_WARNING -USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_IO, ONLY: TFILEDATA, NVERB_WARNING +USE MODD_LUNIT_n, ONLY: TLUOUT ! -USE MODE_FIELD, ONLY: TFIELDDATA -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG ! USE MODI_UV_TO_ZONAL_AND_MERID3D @@ -332,8 +332,8 @@ IF(PRESENT(TPFILE)) THEN CALL PRINT_MSG(NVERB_WARNING,'IO','UV_TO_ZONAL_AND_MERID2D','inconsistent values for TZFIELDS(x)%HDIR') END IF ! - CALL IO_WRITE_FIELD(TPFILE,TZFIELDS(1),ZZC3D(:,:,1)) - CALL IO_WRITE_FIELD(TPFILE,TZFIELDS(2),ZMC3D(:,:,1)) + CALL IO_Field_write(TPFILE,TZFIELDS(1),ZZC3D(:,:,1)) + CALL IO_Field_write(TPFILE,TZFIELDS(2),ZMC3D(:,:,1)) ELSE IF (PRESENT(PZC).AND.PRESENT(PMC)) THEN PZC(:,:)=ZZC3D(:,:,1) PMC(:,:)=ZMC3D(:,:,1) diff --git a/src/MNH/ver_int_thermo.f90 b/src/MNH/ver_int_thermo.f90 index 03ac8e95b..38b931424 100644 --- a/src/MNH/ver_int_thermo.f90 +++ b/src/MNH/ver_int_thermo.f90 @@ -12,7 +12,7 @@ INTERFACE PPMHP_MX,PEXNTOP2D,PTHV,PR,PPMHP,PDIAG, & PLSTH_MX, PLSRV_MX, PLSTHM, PLSRVM ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics LOGICAL, INTENT(IN) :: OSHIFT ! T: vertical shift of BL (used for GRIB file data) @@ -144,7 +144,7 @@ USE MODD_CONF USE MODD_CONF_n USE MODD_CST USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS USE MODD_VER_INTERP_LIN diff --git a/src/MNH/ver_interp_to_mixed_grid.f90 b/src/MNH/ver_interp_to_mixed_grid.f90 index 13f9ba705..f1a882848 100644 --- a/src/MNH/ver_interp_to_mixed_grid.f90 +++ b/src/MNH/ver_interp_to_mixed_grid.f90 @@ -166,8 +166,6 @@ END MODULE MODI_VER_INTERP_TO_MIXED_GRID ! ------------ ! USE MODE_THERMO -USE MODE_FM -USE MODE_IO_ll ! USE MODI_COEF_VER_INTERP_LIN USE MODI_VER_INTERP_LIN diff --git a/src/MNH/ver_thermo.f90 b/src/MNH/ver_thermo.f90 index 94f06c8a8..25f46514d 100644 --- a/src/MNH/ver_thermo.f90 +++ b/src/MNH/ver_thermo.f90 @@ -12,7 +12,7 @@ INTERFACE PDXX,PDYY,PEXNTOP2D,PPSURF,PDIAG, & PLSTH_MX,PLSRV_MX ) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics LOGICAL, INTENT(IN) :: OSHIFT ! T: vertical shift of BL (used for GRIB file data) @@ -153,24 +153,24 @@ END MODULE MODI_VER_THERMO !* 0. DECLARATIONS ! ------------ ! -USE MODD_ARGSLIST_ll, ONLY: LIST_ll +USE MODD_ARGSLIST_ll, ONLY: LIST_ll USE MODD_CONF USE MODD_CONF_n USE MODD_CST USE MODD_DYN_n -USE MODD_FIELD_n, ONLY: XTHT,XRT,XPABST,XDRYMASST +USE MODD_FIELD_n, ONLY: XTHT,XRT,XPABST,XDRYMASST USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA,TFILE_DUMMY +USE MODD_IO, ONLY: TFILEDATA,TFILE_DUMMY USE MODD_LBC_n USE MODD_LSFIELD_n -USE MODD_LUNIT, ONLY: TLUOUT0 +USE MODD_LUNIT, ONLY: TLUOUT0 USE MODD_PARAMETERS USE MODD_REF_n ! USE MODD_DIM_n USE MODE_EXTRAPOL -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll USE MODE_MPPDB ! @@ -304,7 +304,7 @@ IF (NVERB>=10) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTHV) + CALL IO_Field_write(TPFILE,TZFIELD,ZTHV) END IF !------------------------------------------------------------------------------- ! diff --git a/src/MNH/viscosity.f90 b/src/MNH/viscosity.f90 index 5d822248a..f047a5405 100644 --- a/src/MNH/viscosity.f90 +++ b/src/MNH/viscosity.f90 @@ -1,8 +1,9 @@ -!MNH_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. -! +!----------------------------------------------------------------- +! ! ##################### MODULE MODI_VISCOSITY ! ##################### @@ -103,7 +104,6 @@ SUBROUTINE VISCOSITY(HLBCX, HLBCY, KRR, KSV, PNU, PPRANDTL, & USE MODD_BUDGET USE MODE_ll USE MODD_ARGSLIST_ll, ONLY : LIST_ll - USE MODE_FM USE MODI_BUDGET ! !------------------------------------------------------------------------------- diff --git a/src/MNH/write_aircraft_balloon.f90 b/src/MNH/write_aircraft_balloon.f90 index 3d021974a..3e4e7370e 100644 --- a/src/MNH/write_aircraft_balloon.f90 +++ b/src/MNH/write_aircraft_balloon.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE WRITE_AIRCRAFT_BALLOON(TPDIAFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write ! @@ -71,7 +71,7 @@ END MODULE MODI_WRITE_AIRCRAFT_BALLOON ! ------------ ! USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT USE MODD_PARAMETERS ! diff --git a/src/MNH/write_balloonn.f90 b/src/MNH/write_balloonn.f90 index 3bfb6091a..c1d82c1b2 100644 --- a/src/MNH/write_balloonn.f90 +++ b/src/MNH/write_balloonn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2001-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2001-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################### @@ -10,7 +10,7 @@ INTERFACE ! SUBROUTINE WRITE_BALLOON_n(TPFILE) -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! IMPLICIT NONE ! @@ -64,8 +64,8 @@ END MODULE MODI_WRITE_BALLOON_n ! ------------ ! USE MODD_AIRCRAFT_BALLOON -USE MODD_GRID, ONLY: XLONORI,XLATORI -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_GRID, ONLY: XLONORI, XLATORI +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n ! USE MODE_GRIDPROJ @@ -96,8 +96,8 @@ CONTAINS !------------------------------------------------------------------------------- SUBROUTINE WRITE_LFI_BALLOON(TPFLYER) ! -USE MODE_FIELD, ONLY : TFIELDDATA, TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! TYPE(FLYER), INTENT(IN) :: TPFLYER ! @@ -123,7 +123,7 @@ TZFIELD%NGRID = 0 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .TRUE. -CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZLAT) +CALL IO_Field_write(TPFILE,TZFIELD,ZLAT) ! TZFIELD%CMNHNAME = TRIM(TPFLYER%TITLE)//'LON' TZFIELD%CSTDNAME = '' @@ -135,7 +135,7 @@ TZFIELD%NGRID = 0 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .TRUE. -CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZLON) +CALL IO_Field_write(TPFILE,TZFIELD,ZLON) ! TZFIELD%CMNHNAME = TRIM(TPFLYER%TITLE)//'ALT' TZFIELD%CSTDNAME = '' @@ -147,7 +147,7 @@ TZFIELD%NGRID = 0 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .TRUE. -CALL IO_WRITE_FIELD(TPFILE,TZFIELD,TPFLYER%Z_CUR) +CALL IO_Field_write(TPFILE,TZFIELD,TPFLYER%Z_CUR) ! TZFIELD%CMNHNAME = TRIM(TPFLYER%TITLE)//'WASCENT' TZFIELD%CSTDNAME = '' @@ -159,7 +159,7 @@ TZFIELD%NGRID = 0 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .TRUE. -CALL IO_WRITE_FIELD(TPFILE,TZFIELD,TPFLYER%WASCENT) +CALL IO_Field_write(TPFILE,TZFIELD,TPFLYER%WASCENT) ! TZFIELD%CMNHNAME = TRIM(TPFLYER%TITLE)//'RHO' TZFIELD%CSTDNAME = '' @@ -171,7 +171,7 @@ TZFIELD%NGRID = 0 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .TRUE. -CALL IO_WRITE_FIELD(TPFILE,TZFIELD,TPFLYER%RHO) +CALL IO_Field_write(TPFILE,TZFIELD,TPFLYER%RHO) ! ! ! diff --git a/src/MNH/write_budget.f90 b/src/MNH/write_budget.f90 index c70ee075f..e24f6a300 100644 --- a/src/MNH/write_budget.f90 +++ b/src/MNH/write_budget.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !######################## @@ -12,7 +12,7 @@ INTERFACE SUBROUTINE WRITE_BUDGET(TPDIAFILE,TPDTCUR, & TPDTMOD,PTSTEP, KSV) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_TYPE_DATE ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write @@ -131,12 +131,12 @@ END MODULE MODI_WRITE_BUDGET !* 0. ! ------------ USE MODD_BUDGET -USE MODD_IO_ll, ONLY: TFILEDATA -USE MODD_LUNIT_n, ONLY: TLUOUT +USE MODD_IO, ONLY: TFILEDATA +USE MODD_LUNIT_n, ONLY: TLUOUT ! USE MODE_DATETIME -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_TIME ! USE MODI_END_CART_COMPRESS @@ -199,7 +199,7 @@ TZFIELD%NGRID = 0 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. -CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,PTSTEP) +CALL IO_Field_write(TPDIAFILE,TZFIELD,PTSTEP) ! TZFIELD%CMNHNAME = 'BULEN' TZFIELD%CSTDNAME = '' @@ -211,7 +211,7 @@ TZFIELD%NGRID = 0 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. -CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,XBULEN) +CALL IO_Field_write(TPDIAFILE,TZFIELD,XBULEN) ! !* 1.1 initialize NBUTSHIFT ! --------------------- @@ -1031,7 +1031,7 @@ SELECT CASE (CBUTYPE) TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 6 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,ZWORKMASK(:,:,:,:,:,:)) + CALL IO_Field_write(TPDIAFILE,TZFIELD,ZWORKMASK(:,:,:,:,:,:)) WRITE(YRECFM,FMT="('MASK_',I4.4)") NBUTSHIFT CALL MENU_DIACHRO(TPDIAFILE,YRECFM) DEALLOCATE(ZWORKMASK) diff --git a/src/MNH/write_desfmn.f90 b/src/MNH/write_desfmn.f90 index 223153f59..fc96071c8 100644 --- a/src/MNH/write_desfmn.f90 +++ b/src/MNH/write_desfmn.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE WRITE_DESFM_n(KMI,TPDATAFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KMI ! Model index TYPE(TFILEDATA), INTENT(IN) :: TPDATAFILE ! Datafile @@ -150,7 +150,7 @@ END MODULE MODI_WRITE_DESFM_n ! ------------ USE MODD_CONF USE MODD_DYN_n, ONLY: LHORELAX_SVLIMA -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS ! diff --git a/src/MNH/write_diachro.f90 b/src/MNH/write_diachro.f90 index 544eda16f..5e24bc549 100644 --- a/src/MNH/write_diachro.f90 +++ b/src/MNH/write_diachro.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ################################################################# @@ -75,13 +75,12 @@ ! USE MODD_BUDGET USE MODD_CONF -USE MODE_FIELD -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_PARAMETERS, ONLY : JPHEXT +USE MODD_IO, ONLY: TFILEDATA +USE MODD_PARAMETERS, ONLY: JPHEXT ! +USE MODE_FIELD +USE MODE_IO_FIELD_WRITE, only: IO_Field_write, IO_Field_write_box USE MODE_ll -USE MODE_FMWRIT -USE MODE_IO_ll ! USE MODI_MENU_DIACHRO ! @@ -229,7 +228,7 @@ TZFIELD%NGRID = KGRID(1) TZFIELD%NTYPE = TYPECHAR TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. -CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,HTYPE) +CALL IO_Field_write(TPDIAFILE,TZFIELD,HTYPE) IF (NVERB>=5) THEN WRITE(ILUOUTDIA,*)' 1st record (',TRIM(TZFIELD%CMNHNAME),'): OK' @@ -273,7 +272,7 @@ SELECT CASE(HTYPE) ITABCHAR(29)=IIMASK; ITABCHAR(30)=IJMASK ITABCHAR(31)=IKMASK; ITABCHAR(32)=ITMASK ITABCHAR(33)=INMASK; ITABCHAR(34)=IPMASK - CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,ITABCHAR) + CALL IO_Field_write(TPDIAFILE,TZFIELD,ITABCHAR) DEALLOCATE(ITABCHAR) IF (NVERB>=5) THEN WRITE(ILUOUTDIA,*)' ILENTITRE,ILENUNITE,ILENCOMMENT ',ILENTITRE,ILENUNITE,ILENCOMMENT @@ -294,7 +293,7 @@ SELECT CASE(HTYPE) ITABCHAR(20)=IIMASK; ITABCHAR(21)=IJMASK ITABCHAR(22)=IKMASK; ITABCHAR(23)=ITMASK ITABCHAR(24)=INMASK; ITABCHAR(25)=IPMASK - CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,ITABCHAR) + CALL IO_Field_write(TPDIAFILE,TZFIELD,ITABCHAR) DEALLOCATE(ITABCHAR) END SELECT IF (NVERB>=5) THEN @@ -313,7 +312,7 @@ TZFIELD%NGRID = KGRID(1) TZFIELD%NTYPE = TYPECHAR TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. -CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,HTITRE(1:IP)) +CALL IO_Field_write(TPDIAFILE,TZFIELD,HTITRE(1:IP)) IF (NVERB>=5) THEN WRITE(ILUOUTDIA,*)' 3rd record (',TRIM(TZFIELD%CMNHNAME),'): OK' @@ -331,7 +330,7 @@ TZFIELD%NGRID = KGRID(1) TZFIELD%NTYPE = TYPECHAR TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. -CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,HUNITE(1:IP)) +CALL IO_Field_write(TPDIAFILE,TZFIELD,HUNITE(1:IP)) IF (NVERB>=5) THEN WRITE(ILUOUTDIA,*)' 4th record (',TRIM(TZFIELD%CMNHNAME),'): OK' @@ -349,7 +348,7 @@ TZFIELD%NGRID = KGRID(1) TZFIELD%NTYPE = TYPECHAR TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. -CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,HCOMMENT(1:IP)) +CALL IO_Field_write(TPDIAFILE,TZFIELD,HCOMMENT(1:IP)) IF (NVERB>=5) THEN WRITE(ILUOUTDIA,*)' 5th record (',TRIM(TZFIELD%CMNHNAME),'): OK' @@ -383,7 +382,7 @@ IF (PRESENT(OICP) .AND. PRESENT(OJCP)) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 5 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD_BOX(TPDIAFILE,TZFIELD,'BUDGET',PVAR(:,:,:,:,:,J), & + CALL IO_Field_write_BOX(TPDIAFILE,TZFIELD,'BUDGET',PVAR(:,:,:,:,:,J), & KIL+JPHEXT,KIH+JPHEXT,KJL+JPHEXT,KJH+JPHEXT) ELSE TZFIELD%CMNHNAME = TRIM(HGROUP)//'.PROC'//YJ @@ -396,7 +395,7 @@ IF (PRESENT(OICP) .AND. PRESENT(OJCP)) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 5 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,PVAR(:,:,:,:,:,J)) + CALL IO_Field_write(TPDIAFILE,TZFIELD,PVAR(:,:,:,:,:,J)) ENDIF ELSE TZFIELD%CMNHNAME = TRIM(HGROUP)//'.PROC'//YJ @@ -409,7 +408,7 @@ ELSE TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 5 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,PVAR(:,:,:,:,:,J)) + CALL IO_Field_write(TPDIAFILE,TZFIELD,PVAR(:,:,:,:,:,J)) END IF IF (NVERB>=5) THEN WRITE(ILUOUTDIA,*)J,TRIM(TZFIELD%CMNHNAME) @@ -431,7 +430,7 @@ TZFIELD%NGRID = KGRID(1) TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .FALSE. -CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,PTRAJT) +CALL IO_Field_write(TPDIAFILE,TZFIELD,PTRAJT) IF (NVERB>=5) THEN WRITE(ILUOUTDIA,*)' 7th record (',TRIM(TZFIELD%CMNHNAME),'): OK' @@ -453,7 +452,7 @@ IF(PRESENT(PTRAJX))THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,PTRAJX) + CALL IO_Field_write(TPDIAFILE,TZFIELD,PTRAJX) ENDIF ! ! ou @@ -469,7 +468,7 @@ IF(PRESENT(PMASK))THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 6 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,PMASK) + CALL IO_Field_write(TPDIAFILE,TZFIELD,PMASK) ENDIF ! ! 9eme enregistrement TRAJY @@ -485,7 +484,7 @@ IF(PRESENT(PTRAJY))THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,PTRAJY) + CALL IO_Field_write(TPDIAFILE,TZFIELD,PTRAJY) ENDIF ! ! 10eme enregistrement TRAJZ @@ -501,7 +500,7 @@ IF(PRESENT(PTRAJZ))THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,PTRAJZ) + CALL IO_Field_write(TPDIAFILE,TZFIELD,PTRAJZ) ENDIF ! ! 11eme enregistrement PDATIME @@ -516,7 +515,7 @@ TZFIELD%NGRID = KGRID(1) TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .FALSE. -CALL IO_WRITE_FIELD(TPDIAFILE,TZFIELD,PDATIME) +CALL IO_Field_write(TPDIAFILE,TZFIELD,PDATIME) ! CALL MENU_DIACHRO(TPDIAFILE,HGROUP) LPACK=GPACK diff --git a/src/MNH/write_dummy_gr_fieldn.f90 b/src/MNH/write_dummy_gr_fieldn.f90 index 358a73cbc..e177c4e2e 100644 --- a/src/MNH/write_dummy_gr_fieldn.f90 +++ b/src/MNH/write_dummy_gr_fieldn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################### @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE WRITE_DUMMY_GR_FIELD_n(TPFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics ! @@ -61,13 +61,13 @@ END MODULE MODI_WRITE_DUMMY_GR_FIELD_n !* 0. DECLARATIONS ! ------------ ! -USE MODD_DUMMY_GR_FIELD_n, ONLY : NDUMMY_GR_NBR, CDUMMY_GR_NAME, & - CDUMMY_GR_AREA, XDUMMY_GR_FIELDS -USE MODD_IO_ll, ONLY : TFILEDATA -USE MODD_PARAMETERS, ONLY : NMNHNAMELGTMAX +USE MODD_DUMMY_GR_FIELD_n, ONLY: NDUMMY_GR_NBR, CDUMMY_GR_NAME, & + CDUMMY_GR_AREA, XDUMMY_GR_FIELDS +USE MODD_IO, ONLY: TFILEDATA +USE MODD_PARAMETERS, ONLY: NMNHNAMELGTMAX ! -USE MODE_FIELD, ONLY : TFIELDDATA,TYPEINT,TYPEREAL -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT,TYPEREAL +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! IMPLICIT NONE ! @@ -114,7 +114,7 @@ TZFIELD%NGRID = 0 TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. -CALL IO_WRITE_FIELD(TPFILE,TZFIELD,NDUMMY_GR_NBR) +CALL IO_Field_write(TPFILE,TZFIELD,NDUMMY_GR_NBR) ! DO JDUMMY=1,NDUMMY_GR_NBR WRITE(YRECFM,'(A8,I3.3)') 'DUMMY_GR',JDUMMY @@ -134,7 +134,7 @@ DO JDUMMY=1,NDUMMY_GR_NBR ! ZWORK2D(:,:) = XDUMMY_GR_FIELDS(:,:,JDUMMY) ! - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK2D) END DO ! !------------------------------------------------------------------------------- diff --git a/src/MNH/write_hgrid.f90 b/src/MNH/write_hgrid.f90 index 9315a86d1..27b0c7d1a 100644 --- a/src/MNH/write_hgrid.f90 +++ b/src/MNH/write_hgrid.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ####################### @@ -9,7 +9,7 @@ INTERFACE SUBROUTINE WRITE_HGRID(KMI,TPFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! INTEGER, INTENT(IN) :: KMI ! model index TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File to write @@ -58,12 +58,11 @@ END MODULE MODI_WRITE_HGRID USE MODD_CONF USE MODD_CONF_n USE MODD_GRID -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PGDDIM USE MODD_PGDGRID ! -USE MODE_FMWRIT -USE MODE_IO_ll +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG ! USE MODI_WRITE_HGRIDn @@ -94,20 +93,20 @@ END IF !* 2. WRITING FROM MODD_PGD... ! ---------------------- ! -CALL IO_WRITE_FIELD(TPFILE,'LAT0', XLAT0) -CALL IO_WRITE_FIELD(TPFILE,'LON0', XLON0) -CALL IO_WRITE_FIELD(TPFILE,'RPK', XRPK) -CALL IO_WRITE_FIELD(TPFILE,'BETA', XBETA) -CALL IO_WRITE_FIELD(TPFILE,'LATORI',XPGDLATOR) -CALL IO_WRITE_FIELD(TPFILE,'LONORI',XPGDLONOR) -CALL IO_WRITE_FIELD(TPFILE,'IMAX', NPGDIMAX) -CALL IO_WRITE_FIELD(TPFILE,'JMAX', NPGDJMAX) -CALL IO_WRITE_FIELD(TPFILE,'XHAT', XPGDXHAT) -CALL IO_WRITE_FIELD(TPFILE,'YHAT', XPGDYHAT) +CALL IO_Field_write(TPFILE,'LAT0', XLAT0) +CALL IO_Field_write(TPFILE,'LON0', XLON0) +CALL IO_Field_write(TPFILE,'RPK', XRPK) +CALL IO_Field_write(TPFILE,'BETA', XBETA) +CALL IO_Field_write(TPFILE,'LATORI',XPGDLATOR) +CALL IO_Field_write(TPFILE,'LONORI',XPGDLONOR) +CALL IO_Field_write(TPFILE,'IMAX', NPGDIMAX) +CALL IO_Field_write(TPFILE,'JMAX', NPGDJMAX) +CALL IO_Field_write(TPFILE,'XHAT', XPGDXHAT) +CALL IO_Field_write(TPFILE,'YHAT', XPGDYHAT) ! IF (CSTORAGE_TYPE=='TT') THEN - CALL IO_WRITE_FIELD(TPFILE,'THINSHELL',LTHINSHELL) - CALL IO_WRITE_FIELD(TPFILE,'CARTESIAN',LCARTESIAN) + CALL IO_Field_write(TPFILE,'THINSHELL',LTHINSHELL) + CALL IO_Field_write(TPFILE,'CARTESIAN',LCARTESIAN) END IF !------------------------------------------------------------------------------- ! diff --git a/src/MNH/write_hgridn.f90 b/src/MNH/write_hgridn.f90 index 92765f2f7..4e134e365 100644 --- a/src/MNH/write_hgridn.f90 +++ b/src/MNH/write_hgridn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1996-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ######################## @@ -9,7 +9,7 @@ INTERFACE SUBROUTINE WRITE_HGRID_n(TPFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File to write ! @@ -32,8 +32,8 @@ END MODULE MODI_WRITE_HGRIDn !! !! EXTERNAL !! -------- -!! FMWRIT : to write data in LFIFM file -!! +!! IO_Field_write : to write data in LFIFM file +!! !! IMPLICIT ARGUMENTS !! ------------------ !! Module MODD_GRID : contains projection definition @@ -73,9 +73,9 @@ USE MODD_CONF_n USE MODD_DIM_n USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! -USE MODE_FMWRIT +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! IMPLICIT NONE ! @@ -89,20 +89,20 @@ TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File to write ! NONE !------------------------------------------------------------------------------- ! -CALL IO_WRITE_FIELD(TPFILE,'LAT0', XLAT0) -CALL IO_WRITE_FIELD(TPFILE,'LON0', XLON0) -CALL IO_WRITE_FIELD(TPFILE,'RPK', XRPK) -CALL IO_WRITE_FIELD(TPFILE,'BETA', XBETA) -CALL IO_WRITE_FIELD(TPFILE,'LATORI',XLATORI) -CALL IO_WRITE_FIELD(TPFILE,'LONORI',XLONORI) -CALL IO_WRITE_FIELD(TPFILE,'IMAX', NIMAX) -CALL IO_WRITE_FIELD(TPFILE,'JMAX', NJMAX) -CALL IO_WRITE_FIELD(TPFILE,'XHAT', XXHAT) -CALL IO_WRITE_FIELD(TPFILE,'YHAT', XYHAT) +CALL IO_Field_write(TPFILE,'LAT0', XLAT0) +CALL IO_Field_write(TPFILE,'LON0', XLON0) +CALL IO_Field_write(TPFILE,'RPK', XRPK) +CALL IO_Field_write(TPFILE,'BETA', XBETA) +CALL IO_Field_write(TPFILE,'LATORI',XLATORI) +CALL IO_Field_write(TPFILE,'LONORI',XLONORI) +CALL IO_Field_write(TPFILE,'IMAX', NIMAX) +CALL IO_Field_write(TPFILE,'JMAX', NJMAX) +CALL IO_Field_write(TPFILE,'XHAT', XXHAT) +CALL IO_Field_write(TPFILE,'YHAT', XYHAT) ! IF (CSTORAGE_TYPE=='TT') THEN - CALL IO_WRITE_FIELD(TPFILE,'THINSHELL',LTHINSHELL) - CALL IO_WRITE_FIELD(TPFILE,'CARTESIAN',LCARTESIAN) + CALL IO_Field_write(TPFILE,'THINSHELL',LTHINSHELL) + CALL IO_Field_write(TPFILE,'CARTESIAN',LCARTESIAN) END IF !------------------------------------------------------------------------------- ! diff --git a/src/MNH/write_lbn.f90 b/src/MNH/write_lbn.f90 index 88fc2bf91..5e789e752 100644 --- a/src/MNH/write_lbn.f90 +++ b/src/MNH/write_lbn.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE WRITE_LB_n(TPFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics END SUBROUTINE WRITE_LB_n @@ -92,7 +92,7 @@ USE MODD_NSV USE MODD_PARAM_LIMA USE MODD_PARAM_n ! -USE MODE_FMWRIT +USE MODE_IO_FIELD_WRITE, only: IO_Field_write, IO_Field_write_lb USE MODE_ll USE MODE_MSG USE MODE_MODELN_HANDLER @@ -116,7 +116,7 @@ USE MODD_SALT USE MODI_DUSTLFI_n USE MODI_SALTLFI_n USE MODD_PARAMETERS, ONLY: JPHEXT -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG,TYPEREAL ! ! @@ -158,32 +158,32 @@ IMI = GET_CURRENT_MODEL_INDEX() ! 2. WRITE THE DIMENSION OF LB FIELDS ! -------------------------------- ! -CALL IO_WRITE_FIELD(TPFILE,'RIMX',NRIMX) -CALL IO_WRITE_FIELD(TPFILE,'RIMY',NRIMY) +CALL IO_Field_write(TPFILE,'RIMX',NRIMX) +CALL IO_Field_write(TPFILE,'RIMY',NRIMY) ! !* 3. BASIC VARIABLES ! -------------- ! -CALL IO_WRITE_FIELD(TPFILE,'HORELAX_UVWTH',LHORELAX_UVWTH) +CALL IO_Field_write(TPFILE,'HORELAX_UVWTH',LHORELAX_UVWTH) ! !gathering and writing of the LB fields -IF(NSIZELBXU_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBXUM', NSIZELBXU_ll,XLBXUM) -IF(NSIZELBX_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBXVM', NSIZELBX_ll,XLBXVM) -IF(NSIZELBX_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBXWM', NSIZELBX_ll,XLBXWM) -IF(NSIZELBY_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBYUM', NSIZELBY_ll,XLBYUM) -IF(NSIZELBYV_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBYVM', NSIZELBYV_ll,XLBYVM) -IF(NSIZELBY_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBYWM', NSIZELBY_ll,XLBYWM) -IF(NSIZELBX_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBXTHM',NSIZELBX_ll,XLBXTHM) -IF(NSIZELBY_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBYTHM',NSIZELBY_ll,XLBYTHM) +IF(NSIZELBXU_ll /= 0) CALL IO_Field_write_lb(TPFILE,'LBXUM', NSIZELBXU_ll,XLBXUM) +IF(NSIZELBX_ll /= 0) CALL IO_Field_write_lb(TPFILE,'LBXVM', NSIZELBX_ll,XLBXVM) +IF(NSIZELBX_ll /= 0) CALL IO_Field_write_lb(TPFILE,'LBXWM', NSIZELBX_ll,XLBXWM) +IF(NSIZELBY_ll /= 0) CALL IO_Field_write_lb(TPFILE,'LBYUM', NSIZELBY_ll,XLBYUM) +IF(NSIZELBYV_ll /= 0) CALL IO_Field_write_lb(TPFILE,'LBYVM', NSIZELBYV_ll,XLBYVM) +IF(NSIZELBY_ll /= 0) CALL IO_Field_write_lb(TPFILE,'LBYWM', NSIZELBY_ll,XLBYWM) +IF(NSIZELBX_ll /= 0) CALL IO_Field_write_lb(TPFILE,'LBXTHM',NSIZELBX_ll,XLBXTHM) +IF(NSIZELBY_ll /= 0) CALL IO_Field_write_lb(TPFILE,'LBYTHM',NSIZELBY_ll,XLBYTHM) ! !* 4 LB-TKE ! ------ ! IF(CTURB/='NONE') THEN - CALL IO_WRITE_FIELD(TPFILE,'HORELAX_TKE',LHORELAX_TKE) + CALL IO_Field_write(TPFILE,'HORELAX_TKE',LHORELAX_TKE) ! - IF(NSIZELBXTKE_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBXTKEM',NSIZELBXTKE_ll,XLBXTKEM) - IF(NSIZELBYTKE_ll /= 0) CALL IO_WRITE_FIELD_LB(TPFILE,'LBYTKEM',NSIZELBYTKE_ll,XLBYTKEM) + IF(NSIZELBXTKE_ll /= 0) CALL IO_Field_write_lb(TPFILE,'LBXTKEM',NSIZELBXTKE_ll,XLBXTKEM) + IF(NSIZELBYTKE_ll /= 0) CALL IO_Field_write_lb(TPFILE,'LBYTKEM',NSIZELBYTKE_ll,XLBYTKEM) END IF ! ! @@ -207,7 +207,7 @@ IF (NRR >=1) THEN TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. ! - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,GHORELAX_R) + CALL IO_Field_write(TPFILE,TZFIELD,GHORELAX_R) ! GUSER(:)=(/LUSERV,LUSERC,LUSERR,LUSERI,LUSERS,LUSERG,LUSERH/) YC(:)=(/"V","C","R","I","S","G","H"/) @@ -229,7 +229,7 @@ IF (NRR >=1) THEN TZFIELD%CLONGNAME = 'LBXR'//YC(JRR)//'M' TZFIELD%CLBTYPE = 'LBX' TZFIELD%CCOMMENT = '2_Y_Z_LBXR'//YC(JRR)//'M' - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXR_ll,XLBXRM(:,:,:,IRR)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXR_ll,XLBXRM(:,:,:,IRR)) END IF ! IF(NSIZELBYR_ll /= 0) THEN @@ -237,7 +237,7 @@ IF (NRR >=1) THEN TZFIELD%CLONGNAME = 'LBYR'//YC(JRR)//'M' TZFIELD%CLBTYPE = 'LBY' TZFIELD%CCOMMENT = '2_Y_Z_LBYR'//YC(JRR)//'M' - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXR_ll,XLBYRM(:,:,:,IRR)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXR_ll,XLBYRM(:,:,:,IRR)) END IF END IF END DO @@ -261,7 +261,7 @@ IF (NSV >=1) THEN TZFIELD%NTYPE = TYPELOG TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,GHORELAX_SV) + CALL IO_Field_write(TPFILE,TZFIELD,GHORELAX_SV) ! IRIMX =(NSIZELBXSV_ll-2*JPHEXT)/2 IRIMY =(NSIZELBYSV_ll-2*JPHEXT)/2 @@ -280,7 +280,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3,A8)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -288,7 +288,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3,A8)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -308,7 +308,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -316,7 +316,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -336,7 +336,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -344,7 +344,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -367,7 +367,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -375,7 +375,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO ! @@ -386,7 +386,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -394,7 +394,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -416,7 +416,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -424,7 +424,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -469,7 +469,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -477,7 +477,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO ! @@ -488,7 +488,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -496,7 +496,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -516,7 +516,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -524,7 +524,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO ! @@ -534,7 +534,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -542,7 +542,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO ! @@ -552,7 +552,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -560,7 +560,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO ! @@ -623,14 +623,14 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3,A8)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) ENDIF !Check on border points in X direction IF(NSIZELBYSV_ll /= 0) THEN TZFIELD%CMNHNAME = 'LBY_'//TRIM(YPDUST_INI(ISV_NAME_IDX)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3,A8)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) ENDIF !Check on points in Y direction ENDDO ! Loop on mode ELSE ! valeur IMOMENTS =/ 1 @@ -646,14 +646,14 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3,A8)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) ENDIF !Check on border points in X direction IF(NSIZELBYSV_ll /= 0) THEN TZFIELD%CMNHNAME = 'LBY_'//TRIM(YPDUST_INI(ISV_NAME_IDX)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3,A8)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) ENDIF !Check on points in Y direction ENDDO ! Loop on moments ENDDO ! Loop on modes @@ -677,7 +677,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -685,7 +685,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO IF (LDEPOS_DST(IMI)) THEN @@ -695,7 +695,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -703,7 +703,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -771,14 +771,14 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) ENDIF !Check on border points in X direction IF(NSIZELBYSV_ll /= 0) THEN TZFIELD%CMNHNAME = 'LBY_'//TRIM(YPSALT_INI(ISV_NAME_IDX)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) ENDIF !Check on points in Y direction ENDDO ! Loop on mode ELSE ! valeur IMOMENTS =/ 1 @@ -794,14 +794,14 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) ENDIF !Check on border points in X direction IF(NSIZELBYSV_ll /= 0) THEN TZFIELD%CMNHNAME = 'LBY_'//TRIM(YPSALT_INI(ISV_NAME_IDX)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) ENDIF !Check on points in Y direction ENDDO ! Loop on moments ENDDO ! Loop on modes @@ -823,7 +823,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -831,7 +831,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO IF (LDEPOS_SLT(IMI)) THEN @@ -841,7 +841,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -849,7 +849,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -872,7 +872,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -880,7 +880,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -900,7 +900,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -908,7 +908,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -928,7 +928,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -936,7 +936,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -957,7 +957,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBXSV_ll,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN @@ -965,7 +965,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) + CALL IO_Field_write_lb(TPFILE,TZFIELD,NSIZELBYSV_ll,XLBYSVM(:,:,:,JSV)) END IF END DO END IF diff --git a/src/MNH/write_les_budgetn.f90 b/src/MNH/write_les_budgetn.f90 index 628ba7d6f..dc12b57ca 100644 --- a/src/MNH/write_les_budgetn.f90 +++ b/src/MNH/write_les_budgetn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2000-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !###################### @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE WRITE_LES_BUDGET_n(TPDIAFILE,HLES_AVG) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE! file to write CHARACTER(LEN=1), INTENT(IN) :: HLES_AVG ! flag to perform the averages @@ -58,7 +58,7 @@ END MODULE MODI_WRITE_LES_BUDGET_n ! ------------ ! USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_LES_n USE MODD_CONF_n diff --git a/src/MNH/write_les_rt_budgetn.f90 b/src/MNH/write_les_rt_budgetn.f90 index 558f7df3a..92f37d1db 100644 --- a/src/MNH/write_les_rt_budgetn.f90 +++ b/src/MNH/write_les_rt_budgetn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2002-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !###################### @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE WRITE_LES_RT_BUDGET_n(TPDIAFILE,HLES_AVG) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write CHARACTER(LEN=1), INTENT(IN) :: HLES_AVG ! flag to perform the averages @@ -57,7 +57,7 @@ END MODULE MODI_WRITE_LES_RT_BUDGET_n ! ------------ ! USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_LES_n USE MODD_LES_BUDGET diff --git a/src/MNH/write_les_sv_budgetn.f90 b/src/MNH/write_les_sv_budgetn.f90 index af1d62eac..10df1eebe 100644 --- a/src/MNH/write_les_sv_budgetn.f90 +++ b/src/MNH/write_les_sv_budgetn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2002-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !###################### @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE WRITE_LES_SV_BUDGET_n(TPDIAFILE,HLES_AVG) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write CHARACTER(LEN=1), INTENT(IN) :: HLES_AVG ! flag to perform the averages @@ -57,7 +57,7 @@ END MODULE MODI_WRITE_LES_SV_BUDGET_n ! ------------ ! USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_LES_n USE MODD_CONF_n diff --git a/src/MNH/write_lesn.f90 b/src/MNH/write_lesn.f90 index 260b53bf0..f269d460d 100644 --- a/src/MNH/write_lesn.f90 +++ b/src/MNH/write_lesn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2000-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !###################### @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE WRITE_LES_n(TPDIAFILE,HLES_AVG) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE! file to write CHARACTER(LEN=1), INTENT(IN) :: HLES_AVG ! flag to perform the averages @@ -63,7 +63,7 @@ END MODULE MODI_WRITE_LES_n ! ------------ ! USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LES USE MODD_LES_n USE MODD_FIELD_n diff --git a/src/MNH/write_lfifm1_for_diag.f90 b/src/MNH/write_lfifm1_for_diag.f90 index ab6f980b4..c81ac0f78 100644 --- a/src/MNH/write_lfifm1_for_diag.f90 +++ b/src/MNH/write_lfifm1_for_diag.f90 @@ -9,7 +9,7 @@ MODULE MODI_WRITE_LFIFM1_FOR_DIAG INTERFACE SUBROUTINE WRITE_LFIFM1_FOR_DIAG(TPFILE,HDADFILE) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! outpput data file CHARACTER(LEN=28), INTENT(IN) :: HDADFILE ! corresponding FM-file name of @@ -152,7 +152,7 @@ USE MODD_CONF USE MODD_CONF_n USE MODD_GRID USE MODD_GRID_n -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA USE MODD_METRICS_n USE MODD_TIME USE MODD_TIME_n @@ -230,16 +230,15 @@ USE MODI_FREE_ATM_PROFILE USE MODI_GPS_ZENITH USE MODI_CONTRAV ! -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll,IO_FILE_OPEN_ll USE MODE_GRIDPROJ USE MODE_FIELD -USE MODE_FMWRIT USE MODE_GATHER_ll +USE MODE_IO_FIELD_WRITE, only: IO_Field_write +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list USE MODE_ll -! USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT,ONLY: IO_FILE_ADD2LIST USE MODE_THERMO -USE MODE_TOOLS, ONLY: UPCASE +USE MODE_TOOLS, ONLY: UPCASE USE MODE_MODELN_HANDLER USE MODI_LIDAR USE MODI_CLUSTERING @@ -366,43 +365,43 @@ TZRSFILE => NULL() ! !* 1.0 TPFILE%CNAME and HDADFILE : ! -CALL IO_WRITE_FIELD(TPFILE,'MASDEV', NMASDEV) -CALL IO_WRITE_FIELD(TPFILE,'BUGFIX', NBUGFIX) -CALL IO_WRITE_FIELD(TPFILE,'BIBUSER', CBIBUSER) -CALL IO_WRITE_FIELD(TPFILE,'PROGRAM', CPROGRAM) +CALL IO_Field_write(TPFILE,'MASDEV', NMASDEV) +CALL IO_Field_write(TPFILE,'BUGFIX', NBUGFIX) +CALL IO_Field_write(TPFILE,'BIBUSER', CBIBUSER) +CALL IO_Field_write(TPFILE,'PROGRAM', CPROGRAM) ! -CALL IO_WRITE_FIELD(TPFILE,'L1D', L1D) -CALL IO_WRITE_FIELD(TPFILE,'L2D', L2D) -CALL IO_WRITE_FIELD(TPFILE,'PACK', LPACK) +CALL IO_Field_write(TPFILE,'L1D', L1D) +CALL IO_Field_write(TPFILE,'L2D', L2D) +CALL IO_Field_write(TPFILE,'PACK', LPACK) ! -CALL IO_WRITE_FIELD(TPFILE,'MY_NAME', TPFILE%CNAME) -CALL IO_WRITE_FIELD(TPFILE,'DAD_NAME', HDADFILE) +CALL IO_Field_write(TPFILE,'MY_NAME', TPFILE%CNAME) +CALL IO_Field_write(TPFILE,'DAD_NAME', HDADFILE) ! IF (LEN_TRIM(HDADFILE)>0) THEN - CALL IO_WRITE_FIELD(TPFILE,'DXRATIO',NDXRATIO_ALL(1)) - CALL IO_WRITE_FIELD(TPFILE,'DYRATIO',NDYRATIO_ALL(1)) - CALL IO_WRITE_FIELD(TPFILE,'XOR', NXOR_ALL(1)) - CALL IO_WRITE_FIELD(TPFILE,'YOR', NYOR_ALL(1)) + CALL IO_Field_write(TPFILE,'DXRATIO',NDXRATIO_ALL(1)) + CALL IO_Field_write(TPFILE,'DYRATIO',NDYRATIO_ALL(1)) + CALL IO_Field_write(TPFILE,'XOR', NXOR_ALL(1)) + CALL IO_Field_write(TPFILE,'YOR', NYOR_ALL(1)) END IF ! -CALL IO_WRITE_FIELD(TPFILE,'SURF', CSURF) +CALL IO_Field_write(TPFILE,'SURF', CSURF) ! !* 1.1 Type and Dimensions : ! -CALL IO_WRITE_FIELD(TPFILE,'STORAGE_TYPE','DI') +CALL IO_Field_write(TPFILE,'STORAGE_TYPE','DI') ! -CALL IO_WRITE_FIELD(TPFILE,'IMAX',NIMAX_ll) -CALL IO_WRITE_FIELD(TPFILE,'JMAX',NJMAX_ll) -CALL IO_WRITE_FIELD(TPFILE,'KMAX',NKMAX) +CALL IO_Field_write(TPFILE,'IMAX',NIMAX_ll) +CALL IO_Field_write(TPFILE,'JMAX',NJMAX_ll) +CALL IO_Field_write(TPFILE,'KMAX',NKMAX) ! -CALL IO_WRITE_FIELD(TPFILE,'JPHEXT',JPHEXT) +CALL IO_Field_write(TPFILE,'JPHEXT',JPHEXT) ! !* 1.2 Grid variables : ! IF (.NOT.LCARTESIAN) THEN - CALL IO_WRITE_FIELD(TPFILE,'RPK', XRPK) - CALL IO_WRITE_FIELD(TPFILE,'LONORI',XLONORI) - CALL IO_WRITE_FIELD(TPFILE,'LATORI',XLATORI) + CALL IO_Field_write(TPFILE,'RPK', XRPK) + CALL IO_Field_write(TPFILE,'LONORI',XLONORI) + CALL IO_Field_write(TPFILE,'LATORI',XLATORI) ! !* diagnostic of 1st mass point ! @@ -414,40 +413,40 @@ IF (.NOT.LCARTESIAN) THEN CALL SM_LATLON(XLATORI,XLONORI,ZXHATM,ZYHATM,ZLATOR,ZLONOR) DEALLOCATE(ZXHAT_ll,ZYHAT_ll) ! - CALL IO_WRITE_FIELD(TPFILE,'LONOR',ZLONOR) - CALL IO_WRITE_FIELD(TPFILE,'LATOR',ZLATOR) + CALL IO_Field_write(TPFILE,'LONOR',ZLONOR) + CALL IO_Field_write(TPFILE,'LATOR',ZLATOR) ! END IF ! -CALL IO_WRITE_FIELD(TPFILE,'THINSHELL',LTHINSHELL) -CALL IO_WRITE_FIELD(TPFILE,'LAT0',XLAT0) -CALL IO_WRITE_FIELD(TPFILE,'LON0',XLON0) -CALL IO_WRITE_FIELD(TPFILE,'BETA',XBETA) +CALL IO_Field_write(TPFILE,'THINSHELL',LTHINSHELL) +CALL IO_Field_write(TPFILE,'LAT0',XLAT0) +CALL IO_Field_write(TPFILE,'LON0',XLON0) +CALL IO_Field_write(TPFILE,'BETA',XBETA) ! -CALL IO_WRITE_FIELD(TPFILE,'XHAT',XXHAT) -CALL IO_WRITE_FIELD(TPFILE,'YHAT',XYHAT) -CALL IO_WRITE_FIELD(TPFILE,'ZHAT',XZHAT) -CALL IO_WRITE_FIELD(TPFILE,'ZTOP',XZTOP) +CALL IO_Field_write(TPFILE,'XHAT',XXHAT) +CALL IO_Field_write(TPFILE,'YHAT',XYHAT) +CALL IO_Field_write(TPFILE,'ZHAT',XZHAT) +CALL IO_Field_write(TPFILE,'ZTOP',XZTOP) ! -CALL IO_WRITE_FIELD(TPFILE,'ZS', XZS) -CALL IO_WRITE_FIELD(TPFILE,'ZSMT', XZSMT) -CALL IO_WRITE_FIELD(TPFILE,'SLEVE',LSLEVE) +CALL IO_Field_write(TPFILE,'ZS', XZS) +CALL IO_Field_write(TPFILE,'ZSMT', XZSMT) +CALL IO_Field_write(TPFILE,'SLEVE',LSLEVE) ! IF (LSLEVE) THEN - CALL IO_WRITE_FIELD(TPFILE,'LEN1',XLEN1) - CALL IO_WRITE_FIELD(TPFILE,'LEN2',XLEN2) + CALL IO_Field_write(TPFILE,'LEN1',XLEN1) + CALL IO_Field_write(TPFILE,'LEN2',XLEN2) END IF ! ! -CALL IO_WRITE_FIELD(TPFILE,'DTMOD',TDTMOD) -CALL IO_WRITE_FIELD(TPFILE,'DTCUR',TDTCUR) -CALL IO_WRITE_FIELD(TPFILE,'DTEXP',TDTEXP) -CALL IO_WRITE_FIELD(TPFILE,'DTSEG',TDTSEG) +CALL IO_Field_write(TPFILE,'DTMOD',TDTMOD) +CALL IO_Field_write(TPFILE,'DTCUR',TDTCUR) +CALL IO_Field_write(TPFILE,'DTEXP',TDTEXP) +CALL IO_Field_write(TPFILE,'DTSEG',TDTSEG) ! !* 1.3 Configuration variables : ! -CALL IO_WRITE_FIELD(TPFILE,'CARTESIAN',LCARTESIAN) -CALL IO_WRITE_FIELD(TPFILE,'LBOUSS', LBOUSS) +CALL IO_Field_write(TPFILE,'CARTESIAN',LCARTESIAN) +CALL IO_Field_write(TPFILE,'LBOUSS', LBOUSS) ! IF (LCARTESIAN .AND. LWIND_ZM) THEN LWIND_ZM=.FALSE. @@ -455,12 +454,12 @@ IF (LCARTESIAN .AND. LWIND_ZM) THEN END IF !* 1.4 Reference state variables : ! -CALL IO_WRITE_FIELD(TPFILE,'RHOREFZ',XRHODREFZ) -CALL IO_WRITE_FIELD(TPFILE,'THVREFZ',XTHVREFZ) -CALL IO_WRITE_FIELD(TPFILE,'EXNTOP', XEXNTOP) +CALL IO_Field_write(TPFILE,'RHOREFZ',XRHODREFZ) +CALL IO_Field_write(TPFILE,'THVREFZ',XTHVREFZ) +CALL IO_Field_write(TPFILE,'EXNTOP', XEXNTOP) ! -CALL IO_WRITE_FIELD(TPFILE,'RHODREF',XRHODREF) -CALL IO_WRITE_FIELD(TPFILE,'THVREF', XTHVREF) +CALL IO_Field_write(TPFILE,'RHODREF',XRHODREF) +CALL IO_Field_write(TPFILE,'THVREF', XTHVREF) ! ! !* 1.5 Variables necessary for plots @@ -469,11 +468,11 @@ CALL IO_WRITE_FIELD(TPFILE,'THVREF', XTHVREF) ! level or constant theta level or constant PV level ! IF (INDEX(CISO,'PR') /= 0) THEN - CALL IO_WRITE_FIELD(TPFILE,'PABST',XPABST) + CALL IO_Field_write(TPFILE,'PABST',XPABST) END IF ! IF (INDEX(CISO,'TK') /= 0) THEN - CALL IO_WRITE_FIELD(TPFILE,'THT',XTHT) + CALL IO_Field_write(TPFILE,'THT',XTHT) END IF ! ZCORIOZ(:,:,:)=SPREAD( XCORIOZ(:,:),DIM=3,NCOPIES=IKU ) @@ -504,13 +503,13 @@ IF (INDEX(CISO,'EV') /= 0) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPOVO) + CALL IO_Field_write(TPFILE,TZFIELD,ZPOVO) END IF ! ! IF (LVAR_RS) THEN - CALL IO_WRITE_FIELD(TPFILE,'UT',XUT) - CALL IO_WRITE_FIELD(TPFILE,'VT',XVT) + CALL IO_Field_write(TPFILE,'UT',XUT) + CALL IO_Field_write(TPFILE,'VT',XVT) ! IF (LWIND_ZM) THEN TZFIELD2(1)%CMNHNAME = 'UM_ZM' @@ -538,20 +537,20 @@ IF (LVAR_RS) THEN CALL UV_TO_ZONAL_AND_MERID(XUT,XVT,23,TPFILE=TPFILE,TZFIELDS=TZFIELD2) END IF ! - CALL IO_WRITE_FIELD(TPFILE,'WT',XWT) + CALL IO_Field_write(TPFILE,'WT',XWT) ! ! write mixing ratio for water vapor required to plot radio-soundings ! IF (LUSERV) THEN - CALL IO_WRITE_FIELD(TPFILE,'RVT',XRT(:,:,:,IDX_RVT)) + CALL IO_Field_write(TPFILE,'RVT',XRT(:,:,:,IDX_RVT)) END IF END IF ! !* Latitude and Longitude arrays ! IF (.NOT.LCARTESIAN) THEN - CALL IO_WRITE_FIELD(TPFILE,'LAT',XLAT) - CALL IO_WRITE_FIELD(TPFILE,'LON',XLON) + CALL IO_Field_write(TPFILE,'LAT',XLAT) + CALL IO_Field_write(TPFILE,'LON',XLON) END IF ! ! @@ -563,15 +562,15 @@ ZTEMP(:,:,:)=XTHT(:,:,:)*(XPABST(:,:,:)/ XP00) **(XRD/XCPD) ! IF (LVAR_TURB) THEN IF (CTURB /= 'NONE') THEN - CALL IO_WRITE_FIELD(TPFILE,'TKET',XTKET) + CALL IO_Field_write(TPFILE,'TKET',XTKET) ! IF( NRR > 1 ) THEN - CALL IO_WRITE_FIELD(TPFILE,'SRCT',XSRCT) - CALL IO_WRITE_FIELD(TPFILE,'SIGS',XSIGS) + CALL IO_Field_write(TPFILE,'SRCT',XSRCT) + CALL IO_Field_write(TPFILE,'SIGS',XSIGS) END IF ! IF(CTOM=='TM06') THEN - CALL IO_WRITE_FIELD(TPFILE,'BL_DEPTH',XBL_DEPTH) + CALL IO_Field_write(TPFILE,'BL_DEPTH',XBL_DEPTH) END IF END IF END IF @@ -585,15 +584,15 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRR',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINPRR*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINPRR*3.6E6) ! - CALL IO_WRITE_FIELD(TPFILE,'INPRR3D',XINPRR3D) - CALL IO_WRITE_FIELD(TPFILE,'EVAP3D', XEVAP3D) + CALL IO_Field_write(TPFILE,'INPRR3D',XINPRR3D) + CALL IO_Field_write(TPFILE,'EVAP3D', XEVAP3D) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRR',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACPRR*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACPRR*1.0E3) ! IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C2R2' .OR. CCLOUD == 'C3R5' .OR.& CCLOUD == 'KHKO' .OR. CCLOUD == 'LIMA') THEN @@ -601,56 +600,56 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRC',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINPRC*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINPRC*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRC',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACPRC*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACPRC*1.0E3) END IF IF (SIZE(XINDEP) /= 0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INDEP',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINDEP*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINDEP*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACDEP',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACDEP*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACDEP*1.0E3) END IF END IF IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'C3R5' .OR. CCLOUD == 'LIMA') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRS',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINPRS*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINPRS*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRS',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACPRS*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACPRS*1.0E3) ! CALL FIND_FIELD_ID_FROM_MNHNAME('INPRG',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINPRG*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINPRG*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRG',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACPRG*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACPRG*1.0E3) ! IF (SIZE(XINPRH) /= 0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRH',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINPRH*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINPRH*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRH',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACPRH*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACPRH*1.0E3) ENDIF ! ZWORK21(:,:) = XINPRR(:,:) + XINPRS(:,:) + XINPRG(:,:) @@ -661,7 +660,7 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21*3.6E6) ! ZWORK21(:,:) = (XACPRR(:,:) + XACPRS(:,:) + XACPRG(:,:))*1.0E3 IF (SIZE(XINPRC) /= 0 ) & @@ -672,7 +671,7 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21*1.0E3) ! END IF ! @@ -682,17 +681,17 @@ IF (LVAR_PR .AND. LUSERR .AND. SIZE(XINPRR)>0 ) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('PRCONV',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XPRCONV*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XPRCONV*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('PACCONV',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XPACCONV*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XPACCONV*1.0E3) ! CALL FIND_FIELD_ID_FROM_MNHNAME('PRSCONV',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XPRSCONV*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XPRSCONV*3.6E6) END IF END IF IF (LVAR_PR ) THEN @@ -730,7 +729,7 @@ IF (LVAR_PR ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK22) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) ENDIF ! ! @@ -809,7 +808,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! TZFIELD%CMNHNAME = 'VM90' TZFIELD%CSTDNAME = '' @@ -821,7 +820,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK32) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! composantes U et V du flux d'humidité intégré sur 3000 metres TZFIELD%CMNHNAME = 'UM91' TZFIELD%CSTDNAME = '' @@ -833,7 +832,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ! TZFIELD%CMNHNAME = 'VM91' TZFIELD%CSTDNAME = '' @@ -845,7 +844,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK22) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) ! ! Convergence d'humidité TZFIELD%CMNHNAME = 'HMCONV' @@ -858,7 +857,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,-ZWORK35) + CALL IO_Field_write(TPFILE,TZFIELD,-ZWORK35) ! ! Convergence d'humidité intégré sur 3000 mètres TZFIELD%CMNHNAME = 'HMCONV3000' @@ -871,7 +870,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,-ZWORK25) + CALL IO_Field_write(TPFILE,TZFIELD,-ZWORK25) ! IF (CCLOUD(1:3) == 'ICE' .OR. CCLOUD == 'LIMA') THEN ! composantes U et V du flux surfacique d'hydrométéores @@ -885,7 +884,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK33) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) ! TZFIELD%CMNHNAME = 'VM92' TZFIELD%CSTDNAME = '' @@ -897,7 +896,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK34) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK34) ! composantes U et V du flux d'hydrométéores intégré sur 3000 metres TZFIELD%CMNHNAME = 'UM93' TZFIELD%CSTDNAME = '' @@ -909,7 +908,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK23) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK23) ! TZFIELD%CMNHNAME = 'VM93' TZFIELD%CSTDNAME = '' @@ -921,7 +920,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK24) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK24) ! Convergence d'hydrométéores TZFIELD%CMNHNAME = 'HMCONV_TT' TZFIELD%CSTDNAME = '' @@ -933,7 +932,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,-ZWORK36) + CALL IO_Field_write(TPFILE,TZFIELD,-ZWORK36) ! Convergence d'hydrométéores intégré sur 3000 mètres TZFIELD%CMNHNAME = 'HMCONV3000_TT' TZFIELD%CSTDNAME = '' @@ -945,7 +944,7 @@ IF (LHU_FLX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,-ZWORK26) + CALL IO_Field_write(TPFILE,TZFIELD,-ZWORK26) ENDIF ENDIF ! @@ -965,43 +964,43 @@ IF (LVAR_MRW .OR. LLIMA_DIAG) THEN TZFIELD%CLONGNAME = 'MRV' TZFIELD%CUNITS = 'g kg-1' TZFIELD%CCOMMENT = 'X_Y_Z_MRV' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRT(:,:,:,IDX_RVT)*1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,XRT(:,:,:,IDX_RVT)*1.E3) END IF IF (LUSERC) THEN TZFIELD%CMNHNAME = 'MRC' TZFIELD%CLONGNAME = 'MRC' TZFIELD%CUNITS = 'g kg-1' TZFIELD%CCOMMENT = 'X_Y_Z_MRC' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRT(:,:,:,IDX_RCT)*1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,XRT(:,:,:,IDX_RCT)*1.E3) ! TZFIELD%CMNHNAME = 'VRC' TZFIELD%CLONGNAME = 'VRC' TZFIELD%CUNITS = '1' !vol/vol TZFIELD%CCOMMENT = 'X_Y_Z_VRC (vol/vol)' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRT(:,:,:,IDX_RCT)*XRHODREF(:,:,:)/1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,XRT(:,:,:,IDX_RCT)*XRHODREF(:,:,:)/1.E3) END IF IF (LUSERR) THEN TZFIELD%CMNHNAME = 'MRR' TZFIELD%CLONGNAME = 'MRR' TZFIELD%CUNITS = 'g kg-1' TZFIELD%CCOMMENT = 'X_Y_Z_MRR' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRT(:,:,:,IDX_RRT)*1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,XRT(:,:,:,IDX_RRT)*1.E3) ! TZFIELD%CMNHNAME = 'VRR' TZFIELD%CLONGNAME = 'VRR' TZFIELD%CUNITS = '1' !vol/vol TZFIELD%CCOMMENT = 'X_Y_Z_VRR (vol/vol)' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRT(:,:,:,IDX_RRT)*XRHODREF(:,:,:)/1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,XRT(:,:,:,IDX_RRT)*XRHODREF(:,:,:)/1.E3) END IF IF (LUSERI) THEN TZFIELD%CMNHNAME = 'MRI' TZFIELD%CLONGNAME = 'MRI' TZFIELD%CUNITS = 'g kg-1' TZFIELD%CCOMMENT = 'X_Y_Z_MRI' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRT(:,:,:,IDX_RIT)*1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,XRT(:,:,:,IDX_RIT)*1.E3) ! IF (LUSECI) THEN - CALL IO_WRITE_FIELD(TPFILE,'CIT',XCIT(:,:,:)) + CALL IO_Field_write(TPFILE,'CIT',XCIT(:,:,:)) END IF END IF IF (LUSERS) THEN @@ -1009,21 +1008,21 @@ IF (LVAR_MRW .OR. LLIMA_DIAG) THEN TZFIELD%CLONGNAME = 'MRS' TZFIELD%CUNITS = 'g kg-1' TZFIELD%CCOMMENT = 'X_Y_Z_MRS' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRT(:,:,:,IDX_RST)*1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,XRT(:,:,:,IDX_RST)*1.E3) END IF IF (LUSERG) THEN TZFIELD%CMNHNAME = 'MRG' TZFIELD%CLONGNAME = 'MRG' TZFIELD%CUNITS = 'g kg-1' TZFIELD%CCOMMENT = 'X_Y_Z_MRG' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRT(:,:,:,IDX_RGT)*1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,XRT(:,:,:,IDX_RGT)*1.E3) END IF IF (LUSERH) THEN TZFIELD%CMNHNAME = 'MRH' TZFIELD%CLONGNAME = 'MRH' TZFIELD%CUNITS = 'g kg-1' TZFIELD%CCOMMENT = 'X_Y_Z_MRH' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRT(:,:,:,IDX_RHT)*1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,XRT(:,:,:,IDX_RHT)*1.E3) END IF END IF END IF @@ -1045,7 +1044,7 @@ IF (LVAR_MRSV) THEN WRITE(TZFIELD%CMNHNAME,'(A4,I3.3)')'MRSV',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A4,I3.3)')'X_Y_Z_','MRSV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E3) END DO END IF ! microphysical C2R2 scheme scalar variables @@ -1069,7 +1068,7 @@ IF(LVAR_MRW) THEN ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E-3 END IF WRITE(TZFIELD%CCOMMENT,'(A6,A4,I3.3)')'X_Y_Z_','MRSV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END DO END IF ! microphysical C3R5 scheme additional scalar variables @@ -1086,7 +1085,7 @@ IF(LVAR_MRW) THEN TZFIELD%CMNHNAME = TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E-3) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E-3) END DO END IF END IF @@ -1159,7 +1158,7 @@ IF (LLIMA_DIAG) THEN ! TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) ZWORK31(:,:,:)=XSVT(:,:,:,JSV)*1.E-6*XRHODREF(:,:,:) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END DO ! IF (LUSERC) THEN @@ -1174,7 +1173,7 @@ IF (LLIMA_DIAG) THEN TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. ZWORK31(:,:,:)=XRT(:,:,:,2)*1.E3*XRHODREF(:,:,:) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF ! IF (LUSERI) THEN @@ -1189,7 +1188,7 @@ IF (LLIMA_DIAG) THEN TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. ZWORK31(:,:,:)=XRT(:,:,:,4)*1.E3*XRHODREF(:,:,:) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF ! END IF @@ -1207,7 +1206,7 @@ IF (LCHEMDIAG) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E9) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E9) END DO END IF IF (LCHAQDIAG) THEN !aqueous concentration in M @@ -1228,7 +1227,7 @@ IF (LCHAQDIAG) THEN !aqueous concentration in M WHERE(((XRT(:,:,:,2)*XRHODREF(:,:,:))/1.e3) .GE. XRTMIN_AQ) ZWORK31(:,:,:)=(XSVT(:,:,:,JSV)*1000.)/(XMD*1.E+3*XRT(:,:,:,2)) ENDWHERE - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END DO ! ZWORK31(:,:,:)=0. @@ -1239,7 +1238,7 @@ IF (LCHAQDIAG) THEN !aqueous concentration in M WHERE(((XRT(:,:,:,3)*XRHODREF(:,:,:))/1.e3) .GE. XRTMIN_AQ) ZWORK31(:,:,:)=(XSVT(:,:,:,JSV)*1000.)/(XMD*1.E+3*XRT(:,:,:,3)) ENDWHERE - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END DO ! ZWORK31(:,:,:)=0. ! DO JSV = NSV_CHICBEG,NSV_CHICEND ! ice phase @@ -1249,7 +1248,7 @@ IF (LCHAQDIAG) THEN !aqueous concentration in M ! WHERE(((XRT(:,:,:,3)*XRHODREF(:,:,:))/1.e3) .GE. XRTMIN_AQ) ! ZWORK31(:,:,:)=(XSVT(:,:,:,JSV)*1000.)/(XMD*1.E+3*XRT(:,:,:,3)) ! ENDWHERE -! CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) +! CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! END DO END IF @@ -1279,7 +1278,7 @@ IF (LPASPOL) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'PPT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTMP) + CALL IO_Field_write(TPFILE,TZFIELD,ZTMP) END DO DEALLOCATE(ZTMP) DEALLOCATE(ZRHOT) @@ -1298,7 +1297,7 @@ IF (LCONDSAMP) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'CST',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) END DO END IF ! @@ -1315,7 +1314,7 @@ IF(LBLOWSNOW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSNWSUBL3D(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,XSNWSUBL3D(:,:,:)) ! ZWORK21(:,:) = 0. DO JK = IKB,IKE @@ -1334,7 +1333,7 @@ IF(LBLOWSNOW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21(:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21(:,:)) ! IF(.NOT.ALLOCATED(ZBET_SNW)) & ALLOCATE(ZBET_SNW(SIZE(XSVT,1), SIZE(XSVT,2), SIZE(XSVT,3))) @@ -1356,7 +1355,7 @@ IF(LBLOWSNOW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZRG_SNW(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZRG_SNW(:,:,:)) ! TZFIELD%CMNHNAME = 'SNWBETA' TZFIELD%CSTDNAME = '' @@ -1368,7 +1367,7 @@ IF(LBLOWSNOW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZBET_SNW(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZBET_SNW(:,:,:)) ! TZFIELD%CMNHNAME = 'SNWNOA' TZFIELD%CSTDNAME = '' @@ -1380,7 +1379,7 @@ IF(LBLOWSNOW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZMA_SNW(:,:,:,1)) + CALL IO_Field_write(TPFILE,TZFIELD,ZMA_SNW(:,:,:,1)) ! TZFIELD%CMNHNAME = 'SNWMASS' TZFIELD%CSTDNAME = '' @@ -1392,7 +1391,7 @@ IF(LBLOWSNOW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZMA_SNW(:,:,:,2)) + CALL IO_Field_write(TPFILE,TZFIELD,ZMA_SNW(:,:,:,2)) ! ZWORK21(:,:) = 0. DO JK = IKB,IKE @@ -1410,7 +1409,7 @@ IF(LBLOWSNOW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21(:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21(:,:)) END IF ! Lagrangian variables IF (LTRAJ) THEN @@ -1427,7 +1426,7 @@ IF (LTRAJ) THEN TZFIELD%CMNHNAME = TRIM(CLGNAMES(JSV-NSV_LGBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A20,I3.3,A4)')'X_Y_Z_','Lagrangian variable ',JSV,' (M)' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) END DO ! X coordinate DO JK=1,IKU @@ -1441,7 +1440,7 @@ IF (LTRAJ) THEN TZFIELD%CMNHNAME = 'X' TZFIELD%CLONGNAME = 'X' TZFIELD%CCOMMENT = 'X_Y_Z_X coordinate' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! Y coordinate DO JK=1,IKU DO JI=1,IIU @@ -1454,7 +1453,7 @@ IF (LTRAJ) THEN TZFIELD%CMNHNAME = 'Y' TZFIELD%CLONGNAME = 'Y' TZFIELD%CCOMMENT = 'X_Y_Z_Y coordinate' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF ! linox scalar variables IF (.NOT.(LUSECHEM .OR. LCHEMDIAG) .AND. LCH_CONV_LINOX) THEN @@ -1469,7 +1468,7 @@ IF (.NOT.(LUSECHEM .OR. LCHEMDIAG) .AND. LCH_CONV_LINOX) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E9) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E9) END DO END IF IF (LELECDIAG .AND. CELEC .NE. "NONE") THEN @@ -1491,7 +1490,7 @@ IF (LELECDIAG .AND. CELEC .NE. "NONE") THEN WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (nb ions/m3)' END IF ZWORK31(:,:,:)=XSVT(:,:,:,JSV) * XRHODREF(:,:,:) ! C/kg --> C/m3 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END DO END IF ! Sea Salt variables @@ -1515,7 +1514,7 @@ IF (LSALT) THEN TZFIELD%CMNHNAME = TRIM(UPCASE(CSALTNAMES(JSV-NSV_SLTBEG+1)))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A4,I3.3)')'X_Y_Z_','SALT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E9) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E9) END DO ! CALL PPP2SALT(XSVT(:,:,:,NSV_SLTBEG:NSV_SLTEND),XRHODREF,& @@ -1533,26 +1532,26 @@ IF (LSALT) THEN TZFIELD%CLONGNAME = 'SLTRGA' TZFIELD%CUNITS = 'um' WRITE(TZFIELD%CCOMMENT,'(A18,I1)')'RG (nb) SALT MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZRG_SLT(:,:,:,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZRG_SLT(:,:,:,JJ)) ! TZFIELD%CMNHNAME = 'SLTRGAM' TZFIELD%CLONGNAME = 'SLTRGAM' TZFIELD%CUNITS = 'um' WRITE(TZFIELD%CCOMMENT,'(A17,I1)')'RG (m) SALT MODE ',JJ ZWORK31(:,:,:)=ZRG_SLT(:,:,:,JJ) / (EXP(-3.*(LOG(ZSIG_SLT(:,:,:,JJ)))**2)) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! WRITE(TZFIELD%CMNHNAME,'(A6,I1)')'SLTN0A',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'm-3' WRITE(TZFIELD%CCOMMENT,'(A13,I1)')'N0 SALT MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZN0_SLT(:,:,:,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZN0_SLT(:,:,:,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A7,I1)')'SLTSIGA',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = '1' WRITE(TZFIELD%CCOMMENT,'(A16,I1)')'SIGMA SALT MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSIG_SLT(:,:,:,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZSIG_SLT(:,:,:,JJ)) !SALT MASS CONCENTRATION WRITE(TZFIELD%CMNHNAME,'(A4,I1)')'SLTMSS',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) @@ -1561,7 +1560,7 @@ IF (LSALT) THEN ZWORK31(:,:,:)= ZN0_SLT(:,:,:,JJ)*4./3.*3.14*2500.*1e9 & !kg-->ug * (ZRG_SLT(:,:,:,JJ)**3)*1.d-18 & !um-->m * exp(4.5*log(ZSIG_SLT(:,:,:,JJ))*log(ZSIG_SLT(:,:,:,JJ))) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) !SALT BURDEN (g/m2) ZWORK21(:,:)=0.0 DO JK=IKB,IKE @@ -1580,7 +1579,7 @@ IF (LSALT) THEN TZFIELD%CUNITS = 'g m-2' WRITE(TZFIELD%CCOMMENT,'(A6,I1)')'BURDEN',JJ TZFIELD%NDIMS = 2 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ! TZFIELD%NDIMS = 3 ENDDO @@ -1601,7 +1600,7 @@ IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN TZFIELD%CMNHNAME = TRIM(UPCASE(CDESLTNAMES(JSV)))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A4,I3.3)')'X_Y_Z_','SALTDEP',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSSLTDEP(:,:,:,JSV)*1.E9) + CALL IO_Field_write(TPFILE,TZFIELD,ZSSLTDEP(:,:,:,JSV)*1.E9) END DO ! DO JJ=1,NMODE_SLT @@ -1631,7 +1630,7 @@ IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN * XAVOGADRO & !==>#/mole / XMD & !==>#/kg_{air} * XRHODREF(:,:,:) !==>#/m3 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! CLOUD: DUST MASS CONCENTRATION WRITE(TZFIELD%CMNHNAME,'(A9,I1)')'SLTDEPMSS',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) @@ -1640,7 +1639,7 @@ IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN ZWORK31(:,:,:)= ZWORK31(:,:,:)*4./3.*3.14*2500.*1e9 & !kg-->ug * (ZRG_SLT(:,:,:,JJ)**3)*1.d-18 & !um-->m * exp(4.5*log(ZSIG_SLT(:,:,:,JJ))*log(ZSIG_SLT(:,:,:,JJ))) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! FOR RAIN DROPS WRITE(TZFIELD%CMNHNAME,'(A9,I1)')'SLTDEPN0A',JJ+NMODE_SLT TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) @@ -1667,7 +1666,7 @@ IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN * XAVOGADRO & !==>#/mole / XMD & !==>#/kg_{air} * XRHODREF(:,:,:) !==>#/m3 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! RAIN: DUST MASS CONCENTRATION WRITE(TZFIELD%CMNHNAME,'(A9,I1)')'SLTDEPMSS',JJ+NMODE_SLT TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) @@ -1676,7 +1675,7 @@ IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN ZWORK31(:,:,:)= ZWORK31(:,:,:)*4./3.*3.14*2500.*1e9 & !kg-->ug * (ZRG_SLT(:,:,:,JJ)**3)*1.d-18 & !um-->m * exp(4.5*log(ZSIG_SLT(:,:,:,JJ))*log(ZSIG_SLT(:,:,:,JJ))) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END DO ! END IF @@ -1701,7 +1700,7 @@ IF (LDUST) THEN TZFIELD%CMNHNAME = TRIM(UPCASE(CDUSTNAMES(JSV-NSV_DSTBEG+1)))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A4,I3.3)')'X_Y_Z_','DUST',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E9) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E9) END DO ! CALL PPP2DUST(XSVT(:,:,:,NSV_DSTBEG:NSV_DSTEND),XRHODREF,& @@ -1711,26 +1710,26 @@ IF (LDUST) THEN TZFIELD%CLONGNAME = 'DSTRGA' TZFIELD%CUNITS = 'um' WRITE(TZFIELD%CCOMMENT,'(A18,I1)')'RG (nb) DUST MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZRG_DST(:,:,:,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZRG_DST(:,:,:,JJ)) ! TZFIELD%CMNHNAME = 'DSTRGAM' TZFIELD%CLONGNAME = 'DSTRGAM' TZFIELD%CUNITS = 'um' WRITE(TZFIELD%CCOMMENT,'(A17,I1)')'RG (m) DUST MODE ',JJ ZWORK31(:,:,:)=ZRG_DST(:,:,:,JJ) / (EXP(-3.*(LOG(ZSIG_DST(:,:,:,JJ)))**2)) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! WRITE(TZFIELD%CMNHNAME,'(A6,I1)')'DSTN0A',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'm-3' WRITE(TZFIELD%CCOMMENT,'(A13,I1)')'N0 DUST MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZN0_DST(:,:,:,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZN0_DST(:,:,:,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A7,I1)')'DSTSIGA',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = '1' WRITE(TZFIELD%CCOMMENT,'(A16,I1)')'SIGMA DUST MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSIG_DST(:,:,:,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZSIG_DST(:,:,:,JJ)) !DUST MASS CONCENTRATION WRITE(TZFIELD%CMNHNAME,'(A4,I1)')'DSTMSS',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) @@ -1739,7 +1738,7 @@ IF (LDUST) THEN ZWORK31(:,:,:)= ZN0_DST(:,:,:,JJ)*4./3.*3.14*2500.*1e9 & !kg-->ug * (ZRG_DST(:,:,:,JJ)**3)*1.d-18 & !um-->m * exp(4.5*log(ZSIG_DST(:,:,:,JJ))*log(ZSIG_DST(:,:,:,JJ))) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) !DUST BURDEN (g/m2) ZWORK21(:,:)=0.0 DO JK=IKB,IKE @@ -1758,7 +1757,7 @@ IF (LDUST) THEN TZFIELD%CUNITS = 'g m-2' WRITE(TZFIELD%CCOMMENT,'(A6,I1)')'BURDEN',JJ TZFIELD%NDIMS = 2 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ! TZFIELD%NDIMS = 3 ENDDO @@ -1779,7 +1778,7 @@ IF (LDUST.AND.LDEPOS_DST(IMI)) THEN TZFIELD%CMNHNAME = TRIM(UPCASE(CDEDSTNAMES(JSV)))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A4,I3.3)')'X_Y_Z_','DUSTDEP',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSDSTDEP(:,:,:,JSV)*1.E9) + CALL IO_Field_write(TPFILE,TZFIELD,ZSDSTDEP(:,:,:,JSV)*1.E9) END DO ! DO JJ=1,NMODE_DST @@ -1809,7 +1808,7 @@ IF (LDUST.AND.LDEPOS_DST(IMI)) THEN * XAVOGADRO & !==>#/mole / XMD & !==>#/kg_{air} * XRHODREF(:,:,:) !==>#/m3 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! CLOUD: DUST MASS CONCENTRATION WRITE(TZFIELD%CMNHNAME,'(A9,I1)')'DSTDEPMSS',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) @@ -1818,7 +1817,7 @@ IF (LDUST.AND.LDEPOS_DST(IMI)) THEN ZWORK31(:,:,:)= ZWORK31(:,:,:)*4./3.*3.14*2500.*1e9 & !kg-->ug * (ZRG_DST(:,:,:,JJ)**3)*1.d-18 & !um-->m * exp(4.5*log(ZSIG_DST(:,:,:,JJ))*log(ZSIG_DST(:,:,:,JJ))) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! FOR RAIN DROPS WRITE(TZFIELD%CMNHNAME,'(A9,I1)')'DSTDEPN0A',JJ+NMODE_DST TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) @@ -1845,7 +1844,7 @@ IF (LDUST.AND.LDEPOS_DST(IMI)) THEN * XAVOGADRO & !==>#/mole / XMD & !==>#/kg_{air} * XRHODREF(:,:,:) !==>#/m3 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! RAIN: DUST MASS CONCENTRATION WRITE(TZFIELD%CMNHNAME,'(A9,I1)')'DSTDEPMSS',JJ+NMODE_DST TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) @@ -1854,7 +1853,7 @@ IF (LDUST.AND.LDEPOS_DST(IMI)) THEN ZWORK31(:,:,:)= ZWORK31(:,:,:)*4./3.*3.14*2500.*1e9 & !kg-->ug * (ZRG_DST(:,:,:,JJ)**3)*1.d-18 & !um-->m * exp(4.5*log(ZSIG_DST(:,:,:,JJ))*log(ZSIG_DST(:,:,:,JJ))) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END DO ! END IF @@ -1872,7 +1871,7 @@ IF ((LCHEMDIAG).AND.(LORILAM).AND.(LUSECHEM)) THEN TZFIELD%CMNHNAME = TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1)))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A4,I3.3)')'X_Y_Z_','AERO',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E9) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)*1.E9) END DO ! IF (.NOT.(ASSOCIATED(XN3D))) & @@ -1889,132 +1888,132 @@ IF ((LCHEMDIAG).AND.(LORILAM).AND.(LUSECHEM)) THEN TZFIELD%CLONGNAME = 'RGA' TZFIELD%CUNITS = 'um' WRITE(TZFIELD%CCOMMENT,'(A21,I1)')'RG (nb) AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRG3D(:,:,:,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,XRG3D(:,:,:,JJ)) ! TZFIELD%CMNHNAME = 'RGAM' TZFIELD%CLONGNAME = 'RGAM' TZFIELD%CUNITS = 'um' WRITE(TZFIELD%CCOMMENT,'(A20,I1)')'RG (m) AEROSOL MODE ',JJ ZWORK31(:,:,:)=XRG3D(:,:,:,JJ) / (EXP(-3.*(LOG(XSIG3D(:,:,:,JJ)))**2)) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! WRITE(TZFIELD%CMNHNAME,'(A3,I1)')'N0A',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'cm-3' WRITE(TZFIELD%CCOMMENT,'(A16,I1)')'N0 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XN3D(:,:,:,JJ)*1.E-6) + CALL IO_Field_write(TPFILE,TZFIELD,XN3D(:,:,:,JJ)*1.E-6) ! WRITE(TZFIELD%CMNHNAME,'(A4,I1)')'SIGA',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = '1' WRITE(TZFIELD%CCOMMENT,'(A19,I1)')'SIGMA AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSIG3D(:,:,:,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,XSIG3D(:,:,:,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A4,I1)')'MSO4',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A22,I1)')'MASS SO4 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SO4,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SO4,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A4,I1)')'MNO3',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A22,I1)')'MASS NO3 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_NO3,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_NO3,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A4,I1)')'MNH3',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A22,I1)')'MASS NH3 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_NH3,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_NH3,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A4,I1)')'MH2O',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A22,I1)')'MASS H2O AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_H2O,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_H2O,JJ)) ! IF (NSOA .EQ. 10) THEN WRITE(TZFIELD%CMNHNAME,'(A5,I1)')'MSOA1',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A23,I1)')'MASS SOA1 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA1,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA1,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A5,I1)')'MSOA2',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A23,I1)')'MASS SOA2 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA2,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA2,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A5,I1)')'MSOA3',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A23,I1)')'MASS SOA3 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA3,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA3,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A5,I1)')'MSOA4',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A23,I1)')'MASS SOA4 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA4,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA4,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A5,I1)')'MSOA5',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A23,I1)')'MASS SOA5 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA5,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA5,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A5,I1)')'MSOA6',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A23,I1)')'MASS SOA6 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA6,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA6,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A5,I1)')'MSOA7',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A23,I1)')'MASS SOA7 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA7,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA7,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A5,I1)')'MSOA8',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A23,I1)')'MASS SOA8 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA8,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA8,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A5,I1)')'MSOA9',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A23,I1)')'MASS SOA9 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA9,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA9,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A6,I1)')'MSOA10',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A24,I1)')'MASS SOA10 AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA10,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_SOA10,JJ)) END IF ! WRITE(TZFIELD%CMNHNAME,'(A3,I1)')'MOC',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A21,I1)')'MASS OC AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_OC,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_OC,JJ)) ! WRITE(TZFIELD%CMNHNAME,'(A3,I1)')'MBC',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ug m-3' WRITE(TZFIELD%CCOMMENT,'(A21,I1)')'MASS BC AEROSOL MODE ',JJ - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_BC,JJ)) + CALL IO_Field_write(TPFILE,TZFIELD,ZPTOTA(:,:,:,JP_AER_BC,JJ)) ENDDO END IF ! !* Large Scale variables ! IF (LVAR_LS) THEN - CALL IO_WRITE_FIELD(TPFILE,'LSUM', XLSUM) - CALL IO_WRITE_FIELD(TPFILE,'LSVM', XLSVM) + CALL IO_Field_write(TPFILE,'LSUM', XLSUM) + CALL IO_Field_write(TPFILE,'LSVM', XLSVM) ! IF (LWIND_ZM) THEN TZFIELD2(1)%CMNHNAME = 'LSUM_ZM' @@ -2042,14 +2041,14 @@ IF (LVAR_LS) THEN CALL UV_TO_ZONAL_AND_MERID(XLSUM,XLSVM,23,TPFILE=TPFILE,TZFIELDS=TZFIELD2) ENDIF ! - CALL IO_WRITE_FIELD(TPFILE,'LSWM', XLSWM) - CALL IO_WRITE_FIELD(TPFILE,'LSTHM',XLSTHM) + CALL IO_Field_write(TPFILE,'LSWM', XLSWM) + CALL IO_Field_write(TPFILE,'LSTHM',XLSTHM) ! IF (LUSERV) THEN CALL FIND_FIELD_ID_FROM_MNHNAME('LSRVM',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'g kg-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XLSRVM(:,:,:)*1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,XLSRVM(:,:,:)*1.E3) END IF END IF ! @@ -2070,7 +2069,7 @@ IF (LVAR_FRC .AND. LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XUFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XUFRC(:,JT)) ! TZFIELD%CMNHNAME = 'VFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -2082,7 +2081,7 @@ IF (LVAR_FRC .AND. LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XVFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XVFRC(:,JT)) ! TZFIELD%CMNHNAME = 'WFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -2094,7 +2093,7 @@ IF (LVAR_FRC .AND. LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XWFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XWFRC(:,JT)) ! TZFIELD%CMNHNAME = 'THFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -2106,7 +2105,7 @@ IF (LVAR_FRC .AND. LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTHFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'RVFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -2118,7 +2117,7 @@ IF (LVAR_FRC .AND. LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRVFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XRVFRC(:,JT)) ! TZFIELD%CMNHNAME = 'TENDTHFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -2130,7 +2129,7 @@ IF (LVAR_FRC .AND. LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTENDTHFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XTENDTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'TENDRVFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -2142,7 +2141,7 @@ IF (LVAR_FRC .AND. LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTENDRVFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XTENDRVFRC(:,JT)) ! TZFIELD%CMNHNAME = 'GXTHFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -2154,7 +2153,7 @@ IF (LVAR_FRC .AND. LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XGXTHFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XGXTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'GYTHFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -2166,7 +2165,7 @@ IF (LVAR_FRC .AND. LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XGYTHFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XGYTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'PGROUNDFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -2178,7 +2177,7 @@ IF (LVAR_FRC .AND. LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XPGROUNDFRC(JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XPGROUNDFRC(JT)) ! END DO END IF @@ -2201,17 +2200,17 @@ IF (LTPZH .OR. LCOREF) THEN TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. ZWORK31(:,:,:)=ZTEMP(:,:,:) - XTT - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! !* Pressure in hPa CALL FIND_FIELD_ID_FROM_MNHNAME('PABST',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'PRES' TZFIELD%CUNITS = 'hPa' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XPABST(:,:,:)*1E-2) + CALL IO_Field_write(TPFILE,TZFIELD,XPABST(:,:,:)*1E-2) ! !* Geopotential in meters - CALL IO_WRITE_FIELD(TPFILE,'ALT',XZZ) + CALL IO_Field_write(TPFILE,'ALT',XZZ) ! !* Relative humidity in percent IF (LUSERV) THEN @@ -2239,7 +2238,7 @@ IF (LTPZH .OR. LCOREF) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK32) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! TZFIELD%CMNHNAME = 'VPRES' TZFIELD%CSTDNAME = 'water_vapor_partial_pressure_in_air' @@ -2252,7 +2251,7 @@ IF (LTPZH .OR. LCOREF) THEN TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. ZWORK33(:,:,:)=ZWORK33(:,:,:)*ZWORK32(:,:,:)*1E-4 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK33) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) ! IF (LCOREF) THEN ZWORK33(:,:,:)=(77.6*( XPABST(:,:,:)*1E-2 & @@ -2268,7 +2267,7 @@ IF (LTPZH .OR. LCOREF) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK33) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) ! ZWORK33(:,:,:)=ZWORK33(:,:,:)+MZF(1,IKU,1,XZZ(:,:,:))*1E6/XRADIUS TZFIELD%CMNHNAME = 'MCOREF' @@ -2281,7 +2280,7 @@ IF (LTPZH .OR. LCOREF) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK33) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) END IF ELSE PRINT*, 'NO WATER VAPOR IN ',TPFILE%CNAME,' RELATIVE HUMIDITY IS NOT COMPUTED' @@ -2322,7 +2321,7 @@ IF ( LMOIST_V .OR. LMSLP .OR. CBLTOP/='NONE' ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTHETAV) + CALL IO_Field_write(TPFILE,TZFIELD,ZTHETAV) END IF ! END IF @@ -2355,7 +2354,7 @@ IF (LVISI) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZVISIKUN) + CALL IO_Field_write(TPFILE,TZFIELD,ZVISIKUN) ! IF ((CCLOUD == 'C2R2') .OR. (CCLOUD =='KHKO')) THEN ZVISIGUL(:,:,:) = 10000. @@ -2375,7 +2374,7 @@ IF (LVISI) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZVISIGUL) + CALL IO_Field_write(TPFILE,TZFIELD,ZVISIGUL) ! Visibity Zhang TZFIELD%CMNHNAME = 'VISIZHA' TZFIELD%CSTDNAME = '' @@ -2387,7 +2386,7 @@ IF (LVISI) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZVISIZHA) + CALL IO_Field_write(TPFILE,TZFIELD,ZVISIZHA) ! DEALLOCATE(ZVISIGUL,ZVISIZHA) END IF @@ -2422,7 +2421,7 @@ IF (( LMOIST_E .OR. LBV_FR ) .AND. (NRR>0)) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTHETAE) + CALL IO_Field_write(TPFILE,TZFIELD,ZTHETAE) END IF END IF !------------------------------------------------------------------------------- @@ -2448,7 +2447,7 @@ IF (LMOIST_ES .AND. (NRR>0)) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTHETAES) + CALL IO_Field_write(TPFILE,TZFIELD,ZTHETAES) ENDIF ! !------------------------------------------------------------------------------- @@ -2499,7 +2498,7 @@ IF ( LMOIST_L .OR. LMOIST_S1 .OR. LMOIST_S2 ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTHETAL) + CALL IO_Field_write(TPFILE,TZFIELD,ZTHETAL) END IF ! END IF @@ -2554,7 +2553,7 @@ IF ( LMOIST_S1 .OR. LMOIST_S2 ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTHETAS1) + CALL IO_Field_write(TPFILE,TZFIELD,ZTHETAS1) END IF IF (LMOIST_S2) THEN ! The Moist-air Entropy potential temperature (2nd order) @@ -2568,7 +2567,7 @@ IF ( LMOIST_S1 .OR. LMOIST_S2 ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZTHETAS2) + CALL IO_Field_write(TPFILE,TZFIELD,ZTHETAS2) END IF ! END IF @@ -2591,7 +2590,7 @@ IF (LVORT) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! ! Vorticity y ZWORK32(:,:,:)=MZF(1,IKU,1,MXF(MYM(ZVOY(:,:,:)))) @@ -2605,7 +2604,7 @@ IF (LVORT) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK32) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! IF (LWIND_ZM) THEN TZFIELD2(1)%CMNHNAME = 'UM1_ZM' @@ -2645,7 +2644,7 @@ IF (LVORT) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! ! Absolute Vorticity ZWORK31(:,:,:)=MYF(MXF(ZVOZ(:,:,:))) + ZCORIOZ(:,:,:) @@ -2659,7 +2658,7 @@ IF (LVORT) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! END IF ! @@ -2691,7 +2690,7 @@ IF ( LMEAN_POVO ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! ! Virtual Potential Vorticity in PV units @@ -2713,7 +2712,7 @@ IF (LMOIST_V .AND. (NRR>0) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK34) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK34) ! IF (LMEAN_POVO) THEN IWORK1(:,:)=0 @@ -2735,7 +2734,7 @@ IF (LMOIST_V .AND. (NRR>0) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF END IF ! @@ -2759,7 +2758,7 @@ IF (LMOIST_E .AND. (NRR>0) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK34) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK34) ! IF (LMEAN_POVO) THEN IWORK1(:,:)=0 @@ -2781,7 +2780,7 @@ IF (LMOIST_E .AND. (NRR>0) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) DEALLOCATE(IWORK1) END IF ! @@ -2806,7 +2805,7 @@ IF (LMOIST_ES .AND. (NRR>0) ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK34) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK34) ENDIF ! ! @@ -2827,7 +2826,7 @@ IF (LDIV) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! IF (LUSERV) THEN TZFIELD%CMNHNAME = 'HMDIV' @@ -2843,7 +2842,7 @@ IF (LDIV) THEN ZWORK31=MXM(XRHODREF*XRT(:,:,:,1))*XUT ZWORK32=MYM(XRHODREF*XRT(:,:,:,1))*XVT ZWORK33=GX_U_M(1,IKU,1,ZWORK31,XDXX,XDZZ,XDZX) + GY_V_M(1,IKU,1,ZWORK32,XDYY,XDZZ,XDZY) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK33) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) END IF ! ENDIF @@ -2875,7 +2874,7 @@ IF (LCLSTR) THEN TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ICLUSTERID) + CALL IO_Field_write(TPFILE,TZFIELD,ICLUSTERID) ! TZFIELD%CMNHNAME = 'CLUSTERLV' TZFIELD%CSTDNAME = '' @@ -2887,7 +2886,7 @@ IF (LCLSTR) THEN TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ICLUSTERLV) + CALL IO_Field_write(TPFILE,TZFIELD,ICLUSTERLV) ! TZFIELD%CMNHNAME = 'CLDSIZE' TZFIELD%CSTDNAME = '' @@ -2899,7 +2898,7 @@ IF (LCLSTR) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZCLDSIZE) + CALL IO_Field_write(TPFILE,TZFIELD,ZCLDSIZE) END IF ! !------------------------------------------------------------------------------- @@ -2952,7 +2951,7 @@ IF (LGEO .OR. LAGEO) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! TZFIELD%CMNHNAME = 'VM88' TZFIELD%CSTDNAME = '' @@ -2964,7 +2963,7 @@ IF (LGEO .OR. LAGEO) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK32) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! IF (LWIND_ZM) THEN TZFIELD2(1)%CMNHNAME = 'UM88_ZM' @@ -2997,7 +2996,7 @@ IF (LGEO .OR. LAGEO) THEN TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'WM88' TZFIELD%CLONGNAME = 'WM88' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XWT) + CALL IO_Field_write(TPFILE,TZFIELD,XWT) END IF ! IF (LAGEO) THEN @@ -3014,7 +3013,7 @@ IF (LGEO .OR. LAGEO) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! TZFIELD%CMNHNAME = 'VM89' TZFIELD%CSTDNAME = '' @@ -3026,7 +3025,7 @@ IF (LGEO .OR. LAGEO) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK32) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! IF (LWIND_ZM) THEN TZFIELD2(1)%CMNHNAME = 'UM89_ZM' @@ -3059,7 +3058,7 @@ IF (LGEO .OR. LAGEO) THEN TZFIELD = TFIELDLIST(IID) TZFIELD%CMNHNAME = 'WM89' TZFIELD%CLONGNAME = 'WM89' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XWT) + CALL IO_Field_write(TPFILE,TZFIELD,XWT) END IF ! END IF @@ -3083,7 +3082,7 @@ IF(LWIND_CONTRAV) THEN!$ TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK33) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) END IF !------------------------------------------------------------------------------- ! @@ -3116,7 +3115,7 @@ IF (LMSLP) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK22) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) END IF !------------------------------------------------------------------------------- ! @@ -3141,7 +3140,7 @@ IF (LTHW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! ZWORK21(:,:) = 0. @@ -3161,7 +3160,7 @@ IF (LTHW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! ZWORK21(:,:) = 0. @@ -3181,7 +3180,7 @@ IF (LTHW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! ZWORK21(:,:) = 0. @@ -3201,7 +3200,7 @@ IF (LTHW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! ZWORK21(:,:) = 0. @@ -3221,7 +3220,7 @@ IF (LTHW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! ZWORK21(:,:) = 0. @@ -3241,7 +3240,7 @@ IF (LTHW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! ZWORK21(:,:) = 0. @@ -3261,7 +3260,7 @@ IF (LTHW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF END IF ! @@ -3302,7 +3301,7 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ELSE PRINT * ,'YOU WANT TO COMPUTE THE ACCUMULATED RAIN' PRINT * ,'BUT NO RAIN IS PRESENT IN THE MODEL' @@ -3328,7 +3327,7 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN JJ=INT(XMEAN_PR(JK+1)) WRITE(TZFIELD%CMNHNAME,'(A9,2I2.2)')'LS_ACTOPR',JI,JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK22) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) END IF END DO ! @@ -3367,7 +3366,7 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ELSE PRINT * ,'YOU WANT TO COMPUTE THE RAIN RATE' PRINT * ,'BUT NO RAIN IS PRESENT IN THE MODEL' @@ -3387,7 +3386,7 @@ IF (LTOTAL_PR .AND. SIZE (XACPRR)>0 ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK22) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) END IF ! END IF @@ -3416,7 +3415,7 @@ IF (NCAPE >=0 .AND. LUSERV) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ! TZFIELD%CMNHNAME = 'CINMAX' TZFIELD%CSTDNAME = '' @@ -3428,7 +3427,7 @@ IF (NCAPE >=0 .AND. LUSERV) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK22) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) ! IF (NCAPE >=1) THEN TZFIELD%CMNHNAME = 'CAPE3D' @@ -3441,7 +3440,7 @@ IF (NCAPE >=0 .AND. LUSERV) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK32) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! TZFIELD%CMNHNAME = 'CIN3D' TZFIELD%CSTDNAME = 'atmosphere_convective_inhibition' @@ -3453,7 +3452,7 @@ IF (NCAPE >=0 .AND. LUSERV) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK33) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) ! TZFIELD%CMNHNAME = 'DCAPE3D' TZFIELD%CSTDNAME = '' @@ -3465,7 +3464,7 @@ IF (NCAPE >=0 .AND. LUSERV) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK34) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK34) END IF ! IF (NCAPE >=2) THEN @@ -3483,7 +3482,7 @@ IF (NCAPE >=0 .AND. LUSERV) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF ENDIF ! @@ -3515,7 +3514,7 @@ IF (LBV_FR) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! IF (NRR > 0) THEN ZWORK32(:,:,:)=DZM(1,IKU,1,ZTHETAE(:,:,:))/ MZM(1,IKU,1,ZTHETAE(:,:,:)) @@ -3541,7 +3540,7 @@ IF (LBV_FR) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF END IF ! @@ -3569,7 +3568,7 @@ IF ( NGPS>=0 ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK22) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) ! IF (NGPS>=1) THEN TZFIELD%CMNHNAME = 'ZHD' @@ -3582,7 +3581,7 @@ IF ( NGPS>=0 ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK23) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK23) ! TZFIELD%CMNHNAME = 'ZWD' TZFIELD%CSTDNAME = '' @@ -3594,7 +3593,7 @@ IF ( NGPS>=0 ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK24) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK24) ! END IF ! @@ -3639,7 +3638,7 @@ IF(LRADAR .AND. LUSERR) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! TZFIELD%CMNHNAME = 'VDOP' TZFIELD%CSTDNAME = '' @@ -3651,7 +3650,7 @@ IF(LRADAR .AND. LUSERR) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK32) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! TZFIELD%CMNHNAME = 'ZDR' TZFIELD%CSTDNAME = '' @@ -3663,7 +3662,7 @@ IF(LRADAR .AND. LUSERR) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK33) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK33) ! TZFIELD%CMNHNAME = 'KDP' TZFIELD%CSTDNAME = '' @@ -3675,7 +3674,7 @@ IF(LRADAR .AND. LUSERR) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK34) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK34) ! ELSE ! @@ -3832,8 +3831,8 @@ IF(LRADAR .AND. LUSERR) THEN WRITE(YGRID_SIZE,'(I3.3)') 2*NMAX DO JJ=1,SIZE(ZWORK42(:,:,:,:,:),5) YRS=YRAD(JJ)//CNAME_RAD(JI)(1:3)//YELEV//YGRID_SIZE//TRIM(TPFILE%CNAME) - CALL IO_FILE_ADD2LIST(TZRSFILE,YRS,'TXT','WRITE',KRECL=8192) - CALL IO_FILE_OPEN_ll(TZRSFILE,HSTATUS='NEW') + CALL IO_File_add2list(TZRSFILE,YRS,'TXT','WRITE',KRECL=8192) + CALL IO_File_open(TZRSFILE,HSTATUS='NEW') ILURS = TZRSFILE%NLU WRITE(ILURS,'(A,4F12.6,2I5)') '**domaine LATLON ',ZWORK43(JI,1,1),ZWORK43(JI,4*NMAX-1,2*NMAX), & ZWORK43(JI,2,1),ZWORK43(JI,4*NMAX,2*NMAX),2*NMAX,2*NMAX !! HEADER @@ -3847,7 +3846,7 @@ IF(LRADAR .AND. LUSERR) THEN DO JV=2*NMAX,1,-1 WRITE(ILURS,*) CLATLON(JV) END DO - CALL IO_FILE_CLOSE_ll(TZRSFILE) + CALL IO_File_close(TZRSFILE) TZRSFILE => NULL() END DO END DO @@ -3862,15 +3861,15 @@ IF(LRADAR .AND. LUSERR) THEN INT(ANINT(10.*XELEV(JI,JEL))-10*INT(XELEV(JI,JEL))) DO JJ=1,SIZE(ZWORK42(:,:,:,:,:),5) YRS="P"//YRAD(JJ)//CNAME_RAD(JI)(1:3)//YELEV//TRIM(TPFILE%CNAME) - CALL IO_FILE_ADD2LIST(TZRSFILE,YRS,'TXT','WRITE') - CALL IO_FILE_OPEN_ll(TZRSFILE) + CALL IO_File_add2list(TZRSFILE,YRS,'TXT','WRITE') + CALL IO_File_open(TZRSFILE) ILURS = TZRSFILE%NLU DO JH=1,NBAZIM DO JV=1,NBSTEPMAX+1 WRITE(ILURS,"(F15.7)") ZWORK42_BIS(JI,JEL,JH,JV,JJ) END DO END DO - CALL IO_FILE_CLOSE_ll(TZRSFILE) + CALL IO_File_close(TZRSFILE) TZRSFILE => NULL() END DO END DO @@ -3983,7 +3982,7 @@ IF (LLIDAR) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! TZFIELD%CMNHNAME = 'LIPAR' TZFIELD%CSTDNAME = '' @@ -3995,7 +3994,7 @@ IF (LLIDAR) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK32) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK32) ! END IF ! @@ -4039,7 +4038,7 @@ IF (CBLTOP == 'THETA') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSHMIX) + CALL IO_Field_write(TPFILE,TZFIELD,ZSHMIX) ! DEALLOCATE(ZSHMIX) ELSEIF (CBLTOP == 'RICHA') THEN @@ -4083,7 +4082,7 @@ ELSEIF (CBLTOP == 'RICHA') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSHMIX) + CALL IO_Field_write(TPFILE,TZFIELD,ZSHMIX) ! DEALLOCATE(ZRIB,ZSHMIX) ENDIF @@ -4100,10 +4099,10 @@ IF (ALLOCATED(ZTHETAV)) DEALLOCATE(ZTHETAV) !* Ligthning ! IF ( LCH_CONV_LINOX ) THEN - CALL IO_WRITE_FIELD(TPFILE,'IC_RATE', XIC_RATE) - CALL IO_WRITE_FIELD(TPFILE,'CG_RATE', XCG_RATE) - CALL IO_WRITE_FIELD(TPFILE,'IC_TOTAL_NB',XIC_TOTAL_NUMBER) - CALL IO_WRITE_FIELD(TPFILE,'CG_TOTAL_NB',XCG_TOTAL_NUMBER) + CALL IO_Field_write(TPFILE,'IC_RATE', XIC_RATE) + CALL IO_Field_write(TPFILE,'CG_RATE', XCG_RATE) + CALL IO_Field_write(TPFILE,'IC_TOTAL_NB',XIC_TOTAL_NUMBER) + CALL IO_Field_write(TPFILE,'CG_TOTAL_NB',XCG_TOTAL_NUMBER) END IF !------------------------------------------------------------------------------- !------------------------------------------------------------------------------- diff --git a/src/MNH/write_lfifm1_for_diag_supp.f90 b/src/MNH/write_lfifm1_for_diag_supp.f90 index 1c0b42a31..4908ec514 100644 --- a/src/MNH/write_lfifm1_for_diag_supp.f90 +++ b/src/MNH/write_lfifm1_for_diag_supp.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2000-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2000-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ###################################### @@ -10,7 +10,7 @@ INTERFACE ! SUBROUTINE WRITE_LFIFM1_FOR_DIAG_SUPP(TPFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! !* 0.1 Declarations of arguments ! @@ -96,7 +96,7 @@ END MODULE MODI_WRITE_LFIFM1_FOR_DIAG_SUPP ! USE MODE_ll USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS USE MODD_CONF_n USE MODD_CONF @@ -157,7 +157,7 @@ USE MODI_RADTR_SATEL USE MODI_UV_TO_ZONAL_AND_MERID ! USE MODE_FIELD -USE MODE_FMWRIT +USE MODE_IO_FIELD_WRITE, only: IO_Field_write ! USE MODI_GET_SURF_UNDEF ! @@ -242,7 +242,7 @@ ZTEMP(:,:,:)=XTHT(:,:,:)*(XPABST(:,:,:)/ XP00) **(XRD/XCPD) ! IF (NCONV_KF >= 0) THEN ! - CALL IO_WRITE_FIELD(TPFILE,'CAPE',XCAPE) + CALL IO_Field_write(TPFILE,'CAPE',XCAPE) ! ! top height (km) of convective clouds ZWORK21(:,:)= 0. @@ -261,7 +261,7 @@ IF (NCONV_KF >= 0) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ! ! base height (km) of convective clouds ZWORK21(:,:)= 0. @@ -280,15 +280,15 @@ IF (NCONV_KF >= 0) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ! END IF IF (NCONV_KF >= 1) THEN ! - CALL IO_WRITE_FIELD(TPFILE,'DTHCONV',XDTHCONV) - CALL IO_WRITE_FIELD(TPFILE,'DRVCONV',XDRVCONV) - CALL IO_WRITE_FIELD(TPFILE,'DRCCONV',XDRCCONV) - CALL IO_WRITE_FIELD(TPFILE,'DRICONV',XDRICONV) + CALL IO_Field_write(TPFILE,'DTHCONV',XDTHCONV) + CALL IO_Field_write(TPFILE,'DRVCONV',XDRVCONV) + CALL IO_Field_write(TPFILE,'DRCCONV',XDRCCONV) + CALL IO_Field_write(TPFILE,'DRICONV',XDRICONV) ! IF ( LCHTRANS .AND. NSV > 0 ) THEN ! User scalar variables @@ -305,7 +305,7 @@ IF (NCONV_KF >= 1) THEN WRITE(TZFIELD%CMNHNAME,'(A7,I3.3)')'DSVCONV',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A2,I3.3,A20)')'X_Y_Z_','SV',JSV,' CONVective tendency' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO END IF ! microphysical C2R2 scheme scalar variables @@ -322,7 +322,7 @@ IF (NCONV_KF >= 1) THEN TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1))//' CONVective tendency' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO END IF ! microphysical C3R5 scheme additional scalar variables @@ -339,7 +339,7 @@ IF (NCONV_KF >= 1) THEN TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1))//' CONVective tendency' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO END IF ! electrical scalar variables @@ -356,7 +356,7 @@ IF (NCONV_KF >= 1) THEN TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(CELECNAMES(JSV-NSV_ELECBEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(CELECNAMES(JSV-NSV_ELECBEG+1))//' CONVective tendency' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO END IF ! chemical scalar variables @@ -373,7 +373,7 @@ IF (NCONV_KF >= 1) THEN TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(CNAMES(JSV-NSV_CHEMBEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(CNAMES(JSV-NSV_CHEMBEG+1))//' CONVective tendency' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO END IF ! lagrangian variables @@ -390,17 +390,17 @@ IF (NCONV_KF >= 1) THEN TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(CLGNAMES(JSV-NSV_LGBEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(CLGNAMES(JSV-NSV_LGBEG+1))//' CONVective tendency' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO END IF END IF ! END IF IF (NCONV_KF >= 2) THEN - CALL IO_WRITE_FIELD(TPFILE,'PRLFLXCONV',XPRLFLXCONV) - CALL IO_WRITE_FIELD(TPFILE,'PRSFLXCONV',XPRSFLXCONV) - CALL IO_WRITE_FIELD(TPFILE,'UMFCONV', XUMFCONV) - CALL IO_WRITE_FIELD(TPFILE,'DMFCONV', XDMFCONV) + CALL IO_Field_write(TPFILE,'PRLFLXCONV',XPRLFLXCONV) + CALL IO_Field_write(TPFILE,'PRSFLXCONV',XPRSFLXCONV) + CALL IO_Field_write(TPFILE,'UMFCONV', XUMFCONV) + CALL IO_Field_write(TPFILE,'DMFCONV', XDMFCONV) END IF !------------------------------------------------------------------------------- ! @@ -461,7 +461,7 @@ IF (LCLD_COV .AND. LUSERC) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ! ! Higher top of the different species of clouds ! @@ -498,7 +498,7 @@ IF (LCLD_COV .AND. LUSERC) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) ENDIF ! TZFIELD%CMNHNAME = 'TCL' @@ -511,9 +511,9 @@ IF (LCLD_COV .AND. LUSERC) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK22) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK22) ! - CALL IO_WRITE_FIELD(TPFILE,'CLDFR',XCLDFR) + CALL IO_Field_write(TPFILE,'CLDFR',XCLDFR) ! ! Visibility ! @@ -532,7 +532,7 @@ IF (LCLD_COV .AND. LUSERC) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) ! DEALLOCATE(IWORK1,IWORK2,ICL_HE_ST,GMASK2,ZWORK22) END IF @@ -544,24 +544,24 @@ END IF ! IF (NRAD_3D >= 0) THEN IF (CRAD /= 'NONE') THEN - CALL IO_WRITE_FIELD(TPFILE,'DTHRAD', XDTHRAD) - CALL IO_WRITE_FIELD(TPFILE,'FLALWD', XFLALWD) - CALL IO_WRITE_FIELD(TPFILE,'DIRFLASWD', XDIRFLASWD) - CALL IO_WRITE_FIELD(TPFILE,'SCAFLASWD', XSCAFLASWD) - CALL IO_WRITE_FIELD(TPFILE,'DIRSRFSWD', XDIRSRFSWD) - CALL IO_WRITE_FIELD(TPFILE,'CLEARCOL_TM1',NCLEARCOL_TM1) - CALL IO_WRITE_FIELD(TPFILE,'ZENITH', XZENITH) - CALL IO_WRITE_FIELD(TPFILE,'AZIM', XAZIM) - CALL IO_WRITE_FIELD(TPFILE,'DIR_ALB', XDIR_ALB) - CALL IO_WRITE_FIELD(TPFILE,'SCA_ALB', XSCA_ALB) + CALL IO_Field_write(TPFILE,'DTHRAD', XDTHRAD) + CALL IO_Field_write(TPFILE,'FLALWD', XFLALWD) + CALL IO_Field_write(TPFILE,'DIRFLASWD', XDIRFLASWD) + CALL IO_Field_write(TPFILE,'SCAFLASWD', XSCAFLASWD) + CALL IO_Field_write(TPFILE,'DIRSRFSWD', XDIRSRFSWD) + CALL IO_Field_write(TPFILE,'CLEARCOL_TM1',NCLEARCOL_TM1) + CALL IO_Field_write(TPFILE,'ZENITH', XZENITH) + CALL IO_Field_write(TPFILE,'AZIM', XAZIM) + CALL IO_Field_write(TPFILE,'DIR_ALB', XDIR_ALB) + CALL IO_Field_write(TPFILE,'SCA_ALB', XSCA_ALB) ! CALL PRINT_MSG(NVERB_INFO,'IO','WRITE_LFIFM1_FOR_DIAG_SUPP','EMIS: writing only first band') CALL FIND_FIELD_ID_FROM_MNHNAME('EMIS',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%NDIMS = 2 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XEMIS(:,:,1)) + CALL IO_Field_write(TPFILE,TZFIELD,XEMIS(:,:,1)) ! - CALL IO_WRITE_FIELD(TPFILE,'TSRAD', XTSRAD) + CALL IO_Field_write(TPFILE,'TSRAD', XTSRAD) ELSE PRINT*,'YOU WANT DIAGNOSTICS RELATED TO RADIATION' PRINT*,' BUT NO RADIATIVE SCHEME WAS ACTIVATED IN THE MODEL' @@ -585,7 +585,7 @@ IF (NRAD_3D >= 1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) !Dust optical depth ZWORK21(:,:)=0.0 DO JK=IKB,IKE @@ -606,7 +606,7 @@ IF (NRAD_3D >= 1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) !Dust extinction (optical depth per km) DO JK=IKB,IKE IKRAD = JK - JPVEXT @@ -622,7 +622,7 @@ IF (NRAD_3D >= 1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF IF (LSALT) THEN !Salt optical depth between two vertical levels @@ -641,7 +641,7 @@ IF (NRAD_3D >= 1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) !Salt optical depth ZWORK21(:,:)=0.0 DO JK=IKB,IKE @@ -662,7 +662,7 @@ IF (NRAD_3D >= 1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) !Salt extinction (optical depth per km) DO JK=IKB,IKE IKRAD = JK - JPVEXT @@ -678,7 +678,7 @@ IF (NRAD_3D >= 1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF IF (LORILAM) THEN !Orilam anthropogenic optical depth between two vertical levels @@ -697,7 +697,7 @@ IF (NRAD_3D >= 1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) !Orilam anthropogenic optical depth ZWORK21(:,:)=0.0 DO JK=IKB,IKE @@ -718,7 +718,7 @@ IF (NRAD_3D >= 1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) !Orilam anthropogenic extinction (optical depth per km) DO JK=IKB,IKE IKRAD = JK - JPVEXT @@ -734,7 +734,7 @@ IF (NRAD_3D >= 1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF END IF ! @@ -756,7 +756,7 @@ IF (LCHEMDIAG) THEN TZFIELD%CMNHNAME = 'FLX_'//TRIM(CNAMES(JSV-NSV_CHEMBEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A,A)')'X_Y_Z_',TRIM(CNAMES(JSV-NSV_CHEMBEG+1)),' Net chemical flux' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCHFLX(:,:,JSV-NSV_CHEMBEG+1) * 1E9) + CALL IO_Field_write(TPFILE,TZFIELD,XCHFLX(:,:,JSV-NSV_CHEMBEG+1) * 1E9) END DO END IF !------------------------------------------------------------------------------- @@ -817,7 +817,7 @@ IF (LEN_TRIM(CRAD_SAT) /= 0 .AND. NRR /=0) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZIRBT) + CALL IO_Field_write(TPFILE,TZFIELD,ZIRBT) ! TZFIELD%CMNHNAME = TRIM(YNAM_SAT(JI))//'_WVBT' TZFIELD%CSTDNAME = '' @@ -829,7 +829,7 @@ IF (LEN_TRIM(CRAD_SAT) /= 0 .AND. NRR /=0) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWVBT) + CALL IO_Field_write(TPFILE,TZFIELD,ZWVBT) END DO DEALLOCATE(ZIRBT,ZWVBT) END IF @@ -926,7 +926,7 @@ IF (CSURF=='EXTE') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCURRENT_ZON10M) + CALL IO_Field_write(TPFILE,TZFIELD,XCURRENT_ZON10M) ! TZFIELD%CMNHNAME = 'VM10' TZFIELD%CSTDNAME = '' @@ -938,7 +938,7 @@ IF (CSURF=='EXTE') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCURRENT_MER10M) + CALL IO_Field_write(TPFILE,TZFIELD,XCURRENT_MER10M) ENDIF ! IF (SIZE(XTKET)>0) THEN @@ -954,7 +954,7 @@ IF (CSURF=='EXTE') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK21) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) END IF ! IF(ANY(XCURRENT_SFCO2/=XUNDEF))THEN @@ -968,7 +968,7 @@ IF (CSURF=='EXTE') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCURRENT_SFCO2) + CALL IO_Field_write(TPFILE,TZFIELD,XCURRENT_SFCO2) END IF ! IF(ANY(XCURRENT_SWD/=XUNDEF))THEN @@ -982,7 +982,7 @@ IF (CSURF=='EXTE') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCURRENT_SWD) + CALL IO_Field_write(TPFILE,TZFIELD,XCURRENT_SWD) END IF ! IF(ANY(XCURRENT_SWU/=XUNDEF))THEN @@ -996,7 +996,7 @@ IF (CSURF=='EXTE') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCURRENT_SWU) + CALL IO_Field_write(TPFILE,TZFIELD,XCURRENT_SWU) END IF ! IF(ANY(XCURRENT_LWD/=XUNDEF))THEN @@ -1010,7 +1010,7 @@ IF (CSURF=='EXTE') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCURRENT_LWD) + CALL IO_Field_write(TPFILE,TZFIELD,XCURRENT_LWD) END IF ! IF(ANY(XCURRENT_LWU/=XUNDEF))THEN @@ -1024,7 +1024,7 @@ IF (CSURF=='EXTE') THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XCURRENT_LWD) + CALL IO_Field_write(TPFILE,TZFIELD,XCURRENT_LWD) END IF END IF @@ -1083,7 +1083,7 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'K' TZFIELD%CCOMMENT = 'X_Y_potential temperature '//TRIM(YPRES(JK))//' hPa' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWRES(:,:,JK)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWRES(:,:,JK)) END DO ! ********************* ! Wind @@ -1096,7 +1096,7 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'm s-1' TZFIELD%CCOMMENT = 'X_Y_U component of wind '//TRIM(YPRES(JK))//' hPa' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWRES(:,:,JK)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWRES(:,:,JK)) END DO ! ZWORK31(:,:,:) = MYF(XVT(:,:,:)) @@ -1107,7 +1107,7 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'm s-1' TZFIELD%CCOMMENT = 'X_Y_V component of wind '//TRIM(YPRES(JK))//' hPa' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWRES(:,:,JK)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWRES(:,:,JK)) END DO ! ********************* ! Water Vapour Mixing Ratio @@ -1119,7 +1119,7 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'g kg-1' TZFIELD%CCOMMENT = 'X_Y_Vapor Mixing Ratio '//TRIM(YPRES(JK))//' hPa' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWRES(:,:,JK)*1.E3) + CALL IO_Field_write(TPFILE,TZFIELD,ZWRES(:,:,JK)*1.E3) END DO ! ********************* ! Geopotential in meters @@ -1132,7 +1132,7 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'm' TZFIELD%CCOMMENT = 'X_Y_ALTitude '//TRIM(YPRES(JK))//' hPa' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWRES(:,:,JK)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWRES(:,:,JK)) END DO ! DEALLOCATE(ZWRES,ZPRES,ZWORK32,ZWORK33,ZWORK34) @@ -1187,7 +1187,7 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'Pa' TZFIELD%CCOMMENT = 'X_Y_pressure '//TRIM(YTH(JK))//' K' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWTH(:,:,JK)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWTH(:,:,JK)) END DO ! ********************* ! Potential Vorticity @@ -1215,7 +1215,7 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'PVU' TZFIELD%CCOMMENT = 'X_Y_POtential VOrticity '//TRIM(YTH(JK))//' K' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWTH(:,:,JK)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWTH(:,:,JK)) END DO ! ********************* ! Wind @@ -1227,7 +1227,7 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'm s-1' TZFIELD%CCOMMENT = 'X_Y_U component of wind '//TRIM(YTH(JK))//' K' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWTH(:,:,JK)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWTH(:,:,JK)) END DO ! ZWORK31(:,:,:) = MYF(XVT(:,:,:)) @@ -1237,7 +1237,7 @@ ALLOCATE(ZWORK34(IIU,IJU,IKU)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'm s-1' TZFIELD%CCOMMENT = 'X_Y_V component of wind '//TRIM(YTH(JK))//' K' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWTH(:,:,JK)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWTH(:,:,JK)) END DO ! DEALLOCATE(ZWTH,ZTH,ZWORK32,ZWORK33,ZWORK34) @@ -1280,7 +1280,7 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZAL) + CALL IO_Field_write(TPFILE,TZFIELD,ZAL) ! !* Standard Variables ! @@ -1301,7 +1301,7 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWAL) + CALL IO_Field_write(TPFILE,TZFIELD,ZWAL) END IF ! ********************* ! Precipitation @@ -1320,7 +1320,7 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWAL) + CALL IO_Field_write(TPFILE,TZFIELD,ZWAL) END IF ! ********************* ! Pressure @@ -1337,7 +1337,7 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWAL) + CALL IO_Field_write(TPFILE,TZFIELD,ZWAL) ! ********************* ! Potential Vorticity ! ********************* @@ -1370,7 +1370,7 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWAL) + CALL IO_Field_write(TPFILE,TZFIELD,ZWAL) ! ********************* ! Wind ! ********************* @@ -1387,7 +1387,7 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWAL) + CALL IO_Field_write(TPFILE,TZFIELD,ZWAL) ! ZWORK31(:,:,:) = MYF(XVT(:,:,:)) CALL ZINTER(ZWORK31, XZZ, ZWAL, ZAL, IIU, IJU, IKU, IKB, IAL, XUNDEF) @@ -1402,7 +1402,7 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWAL) + CALL IO_Field_write(TPFILE,TZFIELD,ZWAL) ! ********************* ! Dust extinction (optical depth per km) ! ********************* @@ -1423,7 +1423,7 @@ IF (LISOAL .AND.XISOAL(1)/=0.) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWAL) + CALL IO_Field_write(TPFILE,TZFIELD,ZWAL) END IF ! ! ********************* @@ -1465,7 +1465,7 @@ IF (LCOARSE) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) !--------------------------------- ! MOVING AVERAGE OF TKE OVER IDX+1 POINTS IDX = IDX/2 @@ -1495,7 +1495,7 @@ IF (LCOARSE) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK31) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK31) END IF ! !------------------------------------------------------------------------------- @@ -1517,7 +1517,7 @@ IF (NEQ_BUDGET>0) THEN TZFIELD%CMNHNAME = TRIM(CNAMES_BUDGET(JSV))//'_BUDGET' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(CNAMES_BUDGET(JSV))//'_BUDGET' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTCHEM(JSV)%XB_REAC(:,:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,XTCHEM(JSV)%XB_REAC(:,:,:,:)) END DO ! TZFIELD%CUNITS = '' @@ -1528,7 +1528,7 @@ IF (NEQ_BUDGET>0) THEN TZFIELD%CMNHNAME = TRIM(CNAMES_BUDGET(JSV))//'_CHREACLIST' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = TRIM(CNAMES_BUDGET(JSV))//'_REACTION_LIST' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTCHEM(JSV)%NB_REAC(:)) + CALL IO_Field_write(TPFILE,TZFIELD,XTCHEM(JSV)%NB_REAC(:)) END DO END IF ! @@ -1547,12 +1547,12 @@ IF (NEQ_PLT>0) THEN TZFIELD%CMNHNAME = TRIM(CNAMES_PRODLOSST(JSV))//'_PROD' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(CNAMES_PRODLOSST(JSV))//'_PROD' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XPROD(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XPROD(:,:,:,JSV)) ! TZFIELD%CMNHNAME = TRIM(CNAMES_PRODLOSST(JSV))//'_LOSS' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(CNAMES_PRODLOSST(JSV))//'_LOSS' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XLOSS(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XLOSS(:,:,:,JSV)) END DO END IF ! diff --git a/src/MNH/write_lfifmn_fordiachron.f90 b/src/MNH/write_lfifmn_fordiachron.f90 index 528b58ed0..2e96502f1 100644 --- a/src/MNH/write_lfifmn_fordiachron.f90 +++ b/src/MNH/write_lfifmn_fordiachron.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1994-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ############################################# @@ -98,11 +98,11 @@ USE MODD_LUNIT_n USE MODD_TIME USE MODD_TYPE_DATE USE MODD_NESTING -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! -USE MODE_FMWRIT USE MODE_GATHER_ll USE MODE_GRIDPROJ +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll ! IMPLICIT NONE @@ -131,26 +131,26 @@ LPACK=.FALSE. ! !* 1.0 Version : ! -CALL IO_WRITE_FIELD(TPFILE,'L1D', L1D) -CALL IO_WRITE_FIELD(TPFILE,'L2D', L2D) -CALL IO_WRITE_FIELD(TPFILE,'PACK',LPACK) -CALL IO_WRITE_FIELD(TPFILE,'SURF',CSURF) +CALL IO_Field_write(TPFILE,'L1D', L1D) +CALL IO_Field_write(TPFILE,'L2D', L2D) +CALL IO_Field_write(TPFILE,'PACK',LPACK) +CALL IO_Field_write(TPFILE,'SURF',CSURF) ! !* 1.1 Dimensions : ! -CALL IO_WRITE_FIELD(TPFILE,'IMAX',NIMAX_ll) -CALL IO_WRITE_FIELD(TPFILE,'JMAX',NJMAX_ll) -CALL IO_WRITE_FIELD(TPFILE,'KMAX',NKMAX) +CALL IO_Field_write(TPFILE,'IMAX',NIMAX_ll) +CALL IO_Field_write(TPFILE,'JMAX',NJMAX_ll) +CALL IO_Field_write(TPFILE,'KMAX',NKMAX) ! -CALL IO_WRITE_FIELD(TPFILE,'JPHEXT',JPHEXT) +CALL IO_Field_write(TPFILE,'JPHEXT',JPHEXT) ! !* 1.2 Grid variables : ! IF (.NOT.LCARTESIAN) THEN ! - CALL IO_WRITE_FIELD(TPFILE,'RPK', XRPK) - CALL IO_WRITE_FIELD(TPFILE,'LONORI',XLONORI) - CALL IO_WRITE_FIELD(TPFILE,'LATORI',XLATORI) + CALL IO_Field_write(TPFILE,'RPK', XRPK) + CALL IO_Field_write(TPFILE,'LONORI',XLONORI) + CALL IO_Field_write(TPFILE,'LATORI',XLATORI) ! !* diagnostic of 1st mass point ! @@ -162,47 +162,47 @@ IF (.NOT.LCARTESIAN) THEN CALL SM_LATLON(XLATORI,XLONORI,ZXHATM,ZYHATM,ZLATOR,ZLONOR) DEALLOCATE(ZXHAT_ll,ZYHAT_ll) ! - CALL IO_WRITE_FIELD(TPFILE,'LONOR',ZLONOR) - CALL IO_WRITE_FIELD(TPFILE,'LATOR',ZLATOR) + CALL IO_Field_write(TPFILE,'LONOR',ZLONOR) + CALL IO_Field_write(TPFILE,'LATOR',ZLATOR) END IF ! -CALL IO_WRITE_FIELD(TPFILE,'THINSHELL',LTHINSHELL) -CALL IO_WRITE_FIELD(TPFILE,'LAT0',XLAT0) -CALL IO_WRITE_FIELD(TPFILE,'LON0',XLON0) -CALL IO_WRITE_FIELD(TPFILE,'BETA',XBETA) +CALL IO_Field_write(TPFILE,'THINSHELL',LTHINSHELL) +CALL IO_Field_write(TPFILE,'LAT0',XLAT0) +CALL IO_Field_write(TPFILE,'LON0',XLON0) +CALL IO_Field_write(TPFILE,'BETA',XBETA) ! -CALL IO_WRITE_FIELD(TPFILE,'XHAT',XXHAT) -CALL IO_WRITE_FIELD(TPFILE,'YHAT',XYHAT) -CALL IO_WRITE_FIELD(TPFILE,'ZHAT',XZHAT) -CALL IO_WRITE_FIELD(TPFILE,'ZTOP',XZTOP) +CALL IO_Field_write(TPFILE,'XHAT',XXHAT) +CALL IO_Field_write(TPFILE,'YHAT',XYHAT) +CALL IO_Field_write(TPFILE,'ZHAT',XZHAT) +CALL IO_Field_write(TPFILE,'ZTOP',XZTOP) ! -CALL IO_WRITE_FIELD(TPFILE,'ZS', XZS) -CALL IO_WRITE_FIELD(TPFILE,'ZSMT', XZSMT) -CALL IO_WRITE_FIELD(TPFILE,'SLEVE',LSLEVE) +CALL IO_Field_write(TPFILE,'ZS', XZS) +CALL IO_Field_write(TPFILE,'ZSMT', XZSMT) +CALL IO_Field_write(TPFILE,'SLEVE',LSLEVE) ! IF (LSLEVE) THEN - CALL IO_WRITE_FIELD(TPFILE,'LEN1',XLEN1) - CALL IO_WRITE_FIELD(TPFILE,'LEN2',XLEN2) + CALL IO_Field_write(TPFILE,'LEN1',XLEN1) + CALL IO_Field_write(TPFILE,'LEN2',XLEN2) END IF ! -CALL IO_WRITE_FIELD(TPFILE,'DTMOD',TDTMOD) -CALL IO_WRITE_FIELD(TPFILE,'DTCUR',TDTCUR) -CALL IO_WRITE_FIELD(TPFILE,'DTEXP',TDTEXP) -CALL IO_WRITE_FIELD(TPFILE,'DTSEG',TDTSEG) +CALL IO_Field_write(TPFILE,'DTMOD',TDTMOD) +CALL IO_Field_write(TPFILE,'DTCUR',TDTCUR) +CALL IO_Field_write(TPFILE,'DTEXP',TDTEXP) +CALL IO_Field_write(TPFILE,'DTSEG',TDTSEG) ! !* 1.3 Configuration variables : ! -CALL IO_WRITE_FIELD(TPFILE,'CARTESIAN',LCARTESIAN) -CALL IO_WRITE_FIELD(TPFILE,'LBOUSS', LBOUSS) +CALL IO_Field_write(TPFILE,'CARTESIAN',LCARTESIAN) +CALL IO_Field_write(TPFILE,'LBOUSS', LBOUSS) ! !* 1.6 Reference state variables : ! -CALL IO_WRITE_FIELD(TPFILE,'RHOREFZ',XRHODREFZ) -CALL IO_WRITE_FIELD(TPFILE,'THVREFZ',XTHVREFZ) -CALL IO_WRITE_FIELD(TPFILE,'EXNTOP', XEXNTOP) +CALL IO_Field_write(TPFILE,'RHOREFZ',XRHODREFZ) +CALL IO_Field_write(TPFILE,'THVREFZ',XTHVREFZ) +CALL IO_Field_write(TPFILE,'EXNTOP', XEXNTOP) ! -CALL IO_WRITE_FIELD(TPFILE,'RHODREF',XRHODREF) -CALL IO_WRITE_FIELD(TPFILE,'THVREF', XTHVREF) +CALL IO_Field_write(TPFILE,'RHODREF',XRHODREF) +CALL IO_Field_write(TPFILE,'THVREF', XTHVREF) ! LPACK=GPACK ! diff --git a/src/MNH/write_lfin.f90 b/src/MNH/write_lfin.f90 index 19576446c..f08abfb15 100644 --- a/src/MNH/write_lfin.f90 +++ b/src/MNH/write_lfin.f90 @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE WRITE_LFIFM_n(TPFILE,HDADFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! IMPLICIT NONE ! @@ -238,10 +238,10 @@ USE MODD_PARAM_LIMA_WARM, ONLY: CLIMA_WARM_NAMES, CAERO_MASS USE MODD_PARAM_LIMA_COLD, ONLY: CLIMA_COLD_NAMES USE MODD_LIMA_PRECIP_SCAVENGING_n ! -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll -USE MODE_FMWRIT +USE MODE_IO_FILE, only: IO_File_close +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODE_FIELD USE MODE_GATHER_ll USE MODE_GRIDPROJ @@ -339,29 +339,29 @@ IKE=IKU-JPVEXT ! !* 1.0 File and HDADFILE writing : ! -CALL IO_WRITE_FIELD(TPFILE,'FILETYPE',TPFILE%CTYPE) +CALL IO_Field_write(TPFILE,'FILETYPE',TPFILE%CTYPE) ! IF (LEN_TRIM(HDADFILE)>0) THEN - CALL IO_WRITE_FIELD(TPFILE,'DXRATIO',NDXRATIO_ALL(IMI)) - CALL IO_WRITE_FIELD(TPFILE,'DYRATIO',NDYRATIO_ALL(IMI)) - CALL IO_WRITE_FIELD(TPFILE,'XOR', NXOR_ALL(IMI)) - CALL IO_WRITE_FIELD(TPFILE,'YOR', NYOR_ALL(IMI)) + CALL IO_Field_write(TPFILE,'DXRATIO',NDXRATIO_ALL(IMI)) + CALL IO_Field_write(TPFILE,'DYRATIO',NDYRATIO_ALL(IMI)) + CALL IO_Field_write(TPFILE,'XOR', NXOR_ALL(IMI)) + CALL IO_Field_write(TPFILE,'YOR', NYOR_ALL(IMI)) END IF ! !* 1.1 Type and Dimensions : ! -CALL IO_WRITE_FIELD(TPFILE,'IMAX',NIMAX_ll) -CALL IO_WRITE_FIELD(TPFILE,'JMAX',NJMAX_ll) -CALL IO_WRITE_FIELD(TPFILE,'KMAX',NKMAX) +CALL IO_Field_write(TPFILE,'IMAX',NIMAX_ll) +CALL IO_Field_write(TPFILE,'JMAX',NJMAX_ll) +CALL IO_Field_write(TPFILE,'KMAX',NKMAX) ! -CALL IO_WRITE_FIELD(TPFILE,'JPHEXT',JPHEXT) +CALL IO_Field_write(TPFILE,'JPHEXT',JPHEXT) ! !* 1.2 Grid variables : ! IF (.NOT.LCARTESIAN) THEN - CALL IO_WRITE_FIELD(TPFILE,'RPK', XRPK) - CALL IO_WRITE_FIELD(TPFILE,'LONORI',XLONORI) - CALL IO_WRITE_FIELD(TPFILE,'LATORI',XLATORI) + CALL IO_Field_write(TPFILE,'RPK', XRPK) + CALL IO_Field_write(TPFILE,'LONORI',XLONORI) + CALL IO_Field_write(TPFILE,'LATORI',XLATORI) ! !* diagnostic of 1st mass point ! @@ -373,51 +373,51 @@ IF (.NOT.LCARTESIAN) THEN CALL SM_LATLON(XLATORI,XLONORI,ZXHATM,ZYHATM,ZLATOR,ZLONOR) DEALLOCATE(ZXHAT_ll,ZYHAT_ll) ! - CALL IO_WRITE_FIELD(TPFILE,'LONOR',ZLONOR) - CALL IO_WRITE_FIELD(TPFILE,'LATOR',ZLATOR) + CALL IO_Field_write(TPFILE,'LONOR',ZLONOR) + CALL IO_Field_write(TPFILE,'LATOR',ZLATOR) END IF ! -CALL IO_WRITE_FIELD(TPFILE,'THINSHELL',LTHINSHELL) -CALL IO_WRITE_FIELD(TPFILE,'LAT0',XLAT0) -CALL IO_WRITE_FIELD(TPFILE,'LON0',XLON0) -CALL IO_WRITE_FIELD(TPFILE,'BETA',XBETA) +CALL IO_Field_write(TPFILE,'THINSHELL',LTHINSHELL) +CALL IO_Field_write(TPFILE,'LAT0',XLAT0) +CALL IO_Field_write(TPFILE,'LON0',XLON0) +CALL IO_Field_write(TPFILE,'BETA',XBETA) ! -CALL IO_WRITE_FIELD(TPFILE,'XHAT',XXHAT) -CALL IO_WRITE_FIELD(TPFILE,'YHAT',XYHAT) -CALL IO_WRITE_FIELD(TPFILE,'ZHAT',XZHAT) -CALL IO_WRITE_FIELD(TPFILE,'ZTOP',XZTOP) +CALL IO_Field_write(TPFILE,'XHAT',XXHAT) +CALL IO_Field_write(TPFILE,'YHAT',XYHAT) +CALL IO_Field_write(TPFILE,'ZHAT',XZHAT) +CALL IO_Field_write(TPFILE,'ZTOP',XZTOP) ! IF (.NOT.LCARTESIAN) THEN - CALL IO_WRITE_FIELD(TPFILE,'LAT',XLAT) - CALL IO_WRITE_FIELD(TPFILE,'LON',XLON) + CALL IO_Field_write(TPFILE,'LAT',XLAT) + CALL IO_Field_write(TPFILE,'LON',XLON) END IF ! -CALL IO_WRITE_FIELD(TPFILE,'ZS', XZS) -CALL IO_WRITE_FIELD(TPFILE,'ZSMT', XZSMT) -CALL IO_WRITE_FIELD(TPFILE,'SLEVE',LSLEVE) +CALL IO_Field_write(TPFILE,'ZS', XZS) +CALL IO_Field_write(TPFILE,'ZSMT', XZSMT) +CALL IO_Field_write(TPFILE,'SLEVE',LSLEVE) ! IF (LSLEVE) THEN - CALL IO_WRITE_FIELD(TPFILE,'LEN1',XLEN1) - CALL IO_WRITE_FIELD(TPFILE,'LEN2',XLEN2) + CALL IO_Field_write(TPFILE,'LEN1',XLEN1) + CALL IO_Field_write(TPFILE,'LEN2',XLEN2) END IF ! ! -CALL IO_WRITE_FIELD(TPFILE,'DTMOD',TDTMOD) -CALL IO_WRITE_FIELD(TPFILE,'DTCUR',TDTCUR) -CALL IO_WRITE_FIELD(TPFILE,'DTEXP',TDTEXP) -CALL IO_WRITE_FIELD(TPFILE,'DTSEG',TDTSEG) +CALL IO_Field_write(TPFILE,'DTMOD',TDTMOD) +CALL IO_Field_write(TPFILE,'DTCUR',TDTCUR) +CALL IO_Field_write(TPFILE,'DTEXP',TDTEXP) +CALL IO_Field_write(TPFILE,'DTSEG',TDTSEG) ! !* 1.3 Configuration variables : ! -CALL IO_WRITE_FIELD(TPFILE,'L1D', L1D) -CALL IO_WRITE_FIELD(TPFILE,'L2D', L2D) -CALL IO_WRITE_FIELD(TPFILE,'PACK', LPACK) -CALL IO_WRITE_FIELD(TPFILE,'CARTESIAN',LCARTESIAN) -CALL IO_WRITE_FIELD(TPFILE,'LBOUSS', LBOUSS) +CALL IO_Field_write(TPFILE,'L1D', L1D) +CALL IO_Field_write(TPFILE,'L2D', L2D) +CALL IO_Field_write(TPFILE,'PACK', LPACK) +CALL IO_Field_write(TPFILE,'CARTESIAN',LCARTESIAN) +CALL IO_Field_write(TPFILE,'LBOUSS', LBOUSS) ! -CALL IO_WRITE_FIELD(TPFILE,'SURF', CSURF) -CALL IO_WRITE_FIELD(TPFILE,'CPL_AROME',LCPL_AROME) -CALL IO_WRITE_FIELD(TPFILE,'COUPLING', LCOUPLING) +CALL IO_Field_write(TPFILE,'SURF', CSURF) +CALL IO_Field_write(TPFILE,'CPL_AROME',LCPL_AROME) +CALL IO_Field_write(TPFILE,'COUPLING', LCOUPLING) ! !* 1.4 Prognostic variables : ! @@ -429,27 +429,27 @@ CALL IO_WRITE_FIELD(TPFILE,'COUPLING', LCOUPLING) ! CALL EXTRAPOL('E',XUT) ! CALL EXTRAPOL('N',XUT) ! CALL EXTRAPOL('S',XUT) -CALL MPPDB_CHECK3D(XUT,"write_lfifmn before IO_WRITE_FIELD::XUT",PRECISION) -CALL IO_WRITE_FIELD(TPFILE,'UT',XUT) -CALL MPPDB_CHECK3D(XUT,"write_lfifmn after IO_WRITE_FIELD::XUT",PRECISION) +CALL MPPDB_CHECK3D(XUT,"write_lfifmn before IO_Field_write::XUT",PRECISION) +CALL IO_Field_write(TPFILE,'UT',XUT) +CALL MPPDB_CHECK3D(XUT,"write_lfifmn after IO_Field_write::XUT",PRECISION) ! !20131128 check XVT-> X_Y_W_V wind component for PRC CALL MPPDB_CHECK3D(XVT,"write_lfifmn::XVT",PRECISION) ! -CALL IO_WRITE_FIELD(TPFILE,'VT',XVT) -CALL IO_WRITE_FIELD(TPFILE,'WT',XWT) +CALL IO_Field_write(TPFILE,'VT',XVT) +CALL IO_Field_write(TPFILE,'WT',XWT) ! -CALL IO_WRITE_FIELD(TPFILE,'THT',XTHT) +CALL IO_Field_write(TPFILE,'THT',XTHT) ! !* 1.4.2 Time t-dt: ! IF ( (CUVW_ADV_SCHEME == 'CEN4TH') .AND. (CTEMP_SCHEME == 'LEFR') ) THEN - CALL IO_WRITE_FIELD(TPFILE,'UM', XUM) - CALL IO_WRITE_FIELD(TPFILE,'VM', XVM) - CALL IO_WRITE_FIELD(TPFILE,'WM', XWM) - CALL IO_WRITE_FIELD(TPFILE,'DUM',XDUM) - CALL IO_WRITE_FIELD(TPFILE,'DVM',XDVM) - CALL IO_WRITE_FIELD(TPFILE,'DWM',XDWM) + CALL IO_Field_write(TPFILE,'UM', XUM) + CALL IO_Field_write(TPFILE,'VM', XVM) + CALL IO_Field_write(TPFILE,'WM', XWM) + CALL IO_Field_write(TPFILE,'DUM',XDUM) + CALL IO_Field_write(TPFILE,'DVM',XDVM) + CALL IO_Field_write(TPFILE,'DWM',XDWM) END IF ! IF (MEAN_COUNT /= 0) THEN @@ -467,20 +467,20 @@ IF (MEAN_COUNT /= 0) THEN TZFIELD%CUNITS = 'm s-1' TZFIELD%CCOMMENT = 'X_Y_Z_U component of mean wind' ZWORK3D = XUM_MEAN/MEAN_COUNT - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'U2ME' TZFIELD%CLONGNAME = 'U2ME' TZFIELD%CUNITS = 'm2 s-2' TZFIELD%CCOMMENT = 'X_Y_Z_U component of mean wind variance' ZWORK3D = XU2_MEAN/MEAN_COUNT-XUM_MEAN**2/MEAN_COUNT**2 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'UMMA' TZFIELD%CLONGNAME = 'UMMA' TZFIELD%CUNITS = 'm s-1' TZFIELD%CCOMMENT = 'X_Y_Z_U component of max wind' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XUM_MAX) + CALL IO_Field_write(TPFILE,TZFIELD,XUM_MAX) ! TZFIELD%NGRID = 3 ! @@ -489,20 +489,20 @@ IF (MEAN_COUNT /= 0) THEN TZFIELD%CUNITS = 'm s-1' TZFIELD%CCOMMENT = 'X_Y_Z_V component of mean wind' ZWORK3D = XVM_MEAN/MEAN_COUNT - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'V2ME' TZFIELD%CLONGNAME = 'V2ME' TZFIELD%CUNITS = 'm2 s-2' TZFIELD%CCOMMENT = 'X_Y_Z_V component of mean wind variance' ZWORK3D = XV2_MEAN/MEAN_COUNT-XVM_MEAN**2/MEAN_COUNT**2 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'VMMA' TZFIELD%CLONGNAME = 'VMMA' TZFIELD%CUNITS = 'm s-1' TZFIELD%CCOMMENT = 'X_Y_Z_V component of max wind' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XVM_MAX) + CALL IO_Field_write(TPFILE,TZFIELD,XVM_MAX) ! TZFIELD%NGRID = 4 ! @@ -511,20 +511,20 @@ IF (MEAN_COUNT /= 0) THEN TZFIELD%CUNITS = 'm s-1' TZFIELD%CCOMMENT = 'X_Y_Z_vertical mean wind' ZWORK3D = XWM_MEAN/MEAN_COUNT - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'W2ME' TZFIELD%CLONGNAME = 'W2ME' TZFIELD%CUNITS = 'm2 s-2' TZFIELD%CCOMMENT = 'X_Y_Z_vertical mean wind variance' ZWORK3D = XW2_MEAN/MEAN_COUNT-XWM_MEAN**2/MEAN_COUNT**2 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'WMMA' TZFIELD%CLONGNAME = 'WMMA' TZFIELD%CUNITS = 'm s-1' TZFIELD%CCOMMENT = 'X_Y_Z_vertical max wind' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XWM_MAX) + CALL IO_Field_write(TPFILE,TZFIELD,XWM_MAX) ! TZFIELD%NGRID = 1 ! @@ -533,60 +533,60 @@ IF (MEAN_COUNT /= 0) THEN TZFIELD%CUNITS = 'K' TZFIELD%CCOMMENT = 'X_Y_Z_mean potential temperature' ZWORK3D = XTHM_MEAN/MEAN_COUNT - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'TH2ME' TZFIELD%CLONGNAME = 'TH2ME' TZFIELD%CUNITS = 'K2' TZFIELD%CCOMMENT = 'X_Y_Z_mean potential temperature variance' ZWORK3D = XTH2_MEAN/MEAN_COUNT-XTHM_MEAN**2/MEAN_COUNT**2 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'THMMA' TZFIELD%CLONGNAME = 'THMMA' TZFIELD%CUNITS = 'K' TZFIELD%CCOMMENT = 'X_Y_Z_max potential temperature' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTHM_MAX) + CALL IO_Field_write(TPFILE,TZFIELD,XTHM_MAX) ! TZFIELD%CMNHNAME = 'TEMPMME' TZFIELD%CLONGNAME = 'TEMPMME' TZFIELD%CUNITS = 'K' TZFIELD%CCOMMENT = 'X_Y_Z_mean temperature' ZWORK3D = XTEMPM_MEAN/MEAN_COUNT - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'TEMP2ME' TZFIELD%CLONGNAME = 'TEMP2ME' TZFIELD%CUNITS = 'K2' TZFIELD%CCOMMENT = 'X_Y_Z_mean temperature variance' ZWORK3D = XTEMP2_MEAN/MEAN_COUNT-XTEMPM_MEAN**2/MEAN_COUNT**2 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'TEMPMMA' TZFIELD%CLONGNAME = 'TEMPMMA' TZFIELD%CUNITS = 'K' TZFIELD%CCOMMENT = 'X_Y_Z_max temperature' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTEMPM_MAX) + CALL IO_Field_write(TPFILE,TZFIELD,XTEMPM_MAX) ! TZFIELD%CMNHNAME = 'PABSMME' TZFIELD%CLONGNAME = 'PABSMME' TZFIELD%CUNITS = 'Pa' TZFIELD%CCOMMENT = 'X_Y_Z_mean ABSolute Pressure' ZWORK3D = XPABSM_MEAN/MEAN_COUNT - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'PABS2ME' TZFIELD%CLONGNAME = 'PABS2ME' TZFIELD%CUNITS = 'Pa2' TZFIELD%CCOMMENT = 'X_Y_Z_mean ABSolute Pressure variance' ZWORK3D = XPABS2_MEAN/MEAN_COUNT-XPABSM_MEAN**2/MEAN_COUNT**2 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'PABSMMA' TZFIELD%CLONGNAME = 'PABSMMA' TZFIELD%CUNITS = 'Pa' TZFIELD%CCOMMENT = 'X_Y_Z_max ABSolute Pressure' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XPABSM_MAX) + CALL IO_Field_write(TPFILE,TZFIELD,XPABSM_MAX) ! IF (CTURB /= 'NONE') THEN TZFIELD%CMNHNAME = 'TKEMME' @@ -594,52 +594,52 @@ IF (MEAN_COUNT /= 0) THEN TZFIELD%CUNITS = 'm2 s-2' TZFIELD%CCOMMENT = 'X_Y_Z_mean kinetic energy' ZWORK3D= XTKEM_MEAN/MEAN_COUNT - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! TZFIELD%CMNHNAME = 'TKEMMA' TZFIELD%CLONGNAME = 'TKEMMA' TZFIELD%CUNITS = 'm2 s-2' TZFIELD%CCOMMENT = 'X_Y_Z_max kinetic energy' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTKEM_MAX) + CALL IO_Field_write(TPFILE,TZFIELD,XTKEM_MAX) END IF ! END IF ! ! IF (CTURB /= 'NONE') THEN - CALL IO_WRITE_FIELD(TPFILE,'TKET',XTKET) - IF (CPROGRAM == 'MESONH' .AND. LSPLIT_CFL) CALL IO_WRITE_FIELD(TPFILE,'TKEMS',XRTKEMS) + CALL IO_Field_write(TPFILE,'TKET',XTKET) + IF (CPROGRAM == 'MESONH' .AND. LSPLIT_CFL) CALL IO_Field_write(TPFILE,'TKEMS',XRTKEMS) END IF ! ! -CALL IO_WRITE_FIELD(TPFILE,'PABST',XPABST) +CALL IO_Field_write(TPFILE,'PABST',XPABST) ! IF (NRR >=1) THEN - IF (LUSERV) CALL IO_WRITE_FIELD(TPFILE,'RVT',XRT(:,:,:,IDX_RVT)) + IF (LUSERV) CALL IO_Field_write(TPFILE,'RVT',XRT(:,:,:,IDX_RVT)) IF (LUSERC) THEN - CALL IO_WRITE_FIELD(TPFILE,'RCT',XRT(:,:,:,IDX_RCT)) + CALL IO_Field_write(TPFILE,'RCT',XRT(:,:,:,IDX_RCT)) WRITE (ILUOUT,*) IDX_RCT,' RC min-max ',MIN_ll(XRT(:,:,:,IDX_RCT),INFO_ll),MAX_ll(XRT(:,:,:,IDX_RCT),INFO_ll) END IF IF (LUSERR) THEN - CALL IO_WRITE_FIELD(TPFILE,'RRT',XRT(:,:,:,IDX_RRT)) + CALL IO_Field_write(TPFILE,'RRT',XRT(:,:,:,IDX_RRT)) WRITE (ILUOUT,*) IDX_RRT,' RR min-max ',MIN_ll(XRT(:,:,:,IDX_RRT),INFO_ll),MAX_ll(XRT(:,:,:,IDX_RRT),INFO_ll) END IF IF (LUSERI) THEN - CALL IO_WRITE_FIELD(TPFILE,'RIT',XRT(:,:,:,IDX_RIT)) + CALL IO_Field_write(TPFILE,'RIT',XRT(:,:,:,IDX_RIT)) WRITE (ILUOUT,*) IDX_RIT,' RI min-max ',MIN_ll(XRT(:,:,:,IDX_RIT),INFO_ll),MAX_ll(XRT(:,:,:,IDX_RIT),INFO_ll) IF ( CPROGRAM == 'MESONH' .AND. CCLOUD(1:3) == 'ICE') THEN - CALL IO_WRITE_FIELD(TPFILE,'CIT',XCIT(:,:,:)) + CALL IO_Field_write(TPFILE,'CIT',XCIT(:,:,:)) END IF END IF IF (LUSERS) THEN - CALL IO_WRITE_FIELD(TPFILE,'RST',XRT(:,:,:,IDX_RST)) + CALL IO_Field_write(TPFILE,'RST',XRT(:,:,:,IDX_RST)) WRITE (ILUOUT,*) IDX_RST,' RS min-max ',MINVAL(XRT(:,:,:,IDX_RST)),MAXVAL(XRT(:,:,:,IDX_RST)) END IF IF (LUSERG) THEN - CALL IO_WRITE_FIELD(TPFILE,'RGT',XRT(:,:,:,IDX_RGT)) + CALL IO_Field_write(TPFILE,'RGT',XRT(:,:,:,IDX_RGT)) WRITE (ILUOUT,*) IDX_RGT,' RG min-max ',MINVAL(XRT(:,:,:,IDX_RGT)),MAXVAL(XRT(:,:,:,IDX_RGT)) END IF - IF (LUSERH) CALL IO_WRITE_FIELD(TPFILE,'RHT',XRT(:,:,:,IDX_RHT)) + IF (LUSERH) CALL IO_Field_write(TPFILE,'RHT',XRT(:,:,:,IDX_RHT)) END IF ! IF (NSV >=1) THEN @@ -658,7 +658,7 @@ IF (NSV >=1) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'SVT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) JSA=JSA+1 END DO END IF @@ -676,7 +676,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) JSA=JSA+1 END DO END IF @@ -694,7 +694,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) JSA=JSA+1 END DO END IF @@ -765,7 +765,7 @@ IF (NSV >=1) THEN END IF ! TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) ! JSA=JSA+1 END DO @@ -773,7 +773,7 @@ IF (NSV >=1) THEN IF (LSCAV .AND. LAERO_MASS) THEN IF (ASSOCIATED(XINPAP)) THEN IF (SIZE(XINPAP) /= 0 ) THEN - CALL IO_WRITE_FIELD(TPFILE,'INPAP',XINPAP) + CALL IO_Field_write(TPFILE,'INPAP',XINPAP) ! ZWORK2D(:,:) = XRHOLW*XINPRR(:,:)*XSVT(:,:,2,NSV_LIMA_SCAVMASS)/ & max( 1.e-20,XRT(:,:,2,3) ) !~2=at ground level @@ -787,9 +787,9 @@ IF (NSV >=1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK2D) ! - CALL IO_WRITE_FIELD(TPFILE,'ACPAP',XACPAP) + CALL IO_Field_write(TPFILE,'ACPAP',XACPAP) END IF END IF END IF @@ -815,15 +815,15 @@ IF (NSV >=1) THEN WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3,A8)')'X_Y_Z_','SVT',JSV,' (nb ions/m3)' END IF ZWORK3D(:,:,:) = XSVT(:,:,:,JSV) * XRHODREF(:,:,:) ! C/kg --> C/m3 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) JSA=JSA+1 END DO END IF ! IF (CELEC /= 'NONE') THEN - CALL IO_WRITE_FIELD(TPFILE,'EFIELDU',XEFIELDU) - CALL IO_WRITE_FIELD(TPFILE,'EFIELDV',XEFIELDV) - CALL IO_WRITE_FIELD(TPFILE,'EFIELDW',XEFIELDW) + CALL IO_Field_write(TPFILE,'EFIELDU',XEFIELDU) + CALL IO_Field_write(TPFILE,'EFIELDV',XEFIELDV) + CALL IO_Field_write(TPFILE,'EFIELDW',XEFIELDW) ! TZFIELD%CMNHNAME = 'EMODULE' TZFIELD%CSTDNAME = '' @@ -836,34 +836,34 @@ IF (NSV >=1) THEN TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. ZWORK3D(:,:,:) = (XEFIELDU**2 + XEFIELDV**2 + XEFIELDW**2)**0.5 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK3D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! CALL FIND_FIELD_ID_FROM_MNHNAME('NI_IAGGS',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'pC m-3 s-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XNI_IAGGS*1.E12) + CALL IO_Field_write(TPFILE,TZFIELD,XNI_IAGGS*1.E12) ! CALL FIND_FIELD_ID_FROM_MNHNAME('NI_IDRYG',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'pC m-3 s-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XNI_IDRYG*1.E12) + CALL IO_Field_write(TPFILE,TZFIELD,XNI_IDRYG*1.E12) ! CALL FIND_FIELD_ID_FROM_MNHNAME('NI_SDRYG',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'pC m-3 s-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XNI_SDRYG*1.E12) + CALL IO_Field_write(TPFILE,TZFIELD,XNI_SDRYG*1.E12) ! CALL FIND_FIELD_ID_FROM_MNHNAME('INDUC_CG',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'pC m-3 s-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XIND_RATE*1.E12) + CALL IO_Field_write(TPFILE,TZFIELD,XIND_RATE*1.E12) ! - CALL IO_WRITE_FIELD(TPFILE,'TRIG_IC', NMAP_TRIG_IC) - CALL IO_WRITE_FIELD(TPFILE,'IMPACT_CG', NMAP_IMPACT_CG) - CALL IO_WRITE_FIELD(TPFILE,'AREA_CG', NMAP_2DAREA_CG) - CALL IO_WRITE_FIELD(TPFILE,'AREA_IC', NMAP_2DAREA_IC) - CALL IO_WRITE_FIELD(TPFILE,'FLASH_3DCG',NMAP_3DCG) - CALL IO_WRITE_FIELD(TPFILE,'FLASH_3DIC',NMAP_3DIC) + CALL IO_Field_write(TPFILE,'TRIG_IC', NMAP_TRIG_IC) + CALL IO_Field_write(TPFILE,'IMPACT_CG', NMAP_IMPACT_CG) + CALL IO_Field_write(TPFILE,'AREA_CG', NMAP_2DAREA_CG) + CALL IO_Field_write(TPFILE,'AREA_IC', NMAP_2DAREA_IC) + CALL IO_Field_write(TPFILE,'FLASH_3DCG',NMAP_3DCG) + CALL IO_Field_write(TPFILE,'FLASH_3DIC',NMAP_3DIC) ! IF (LLNOX_EXPLICIT) THEN TZFIELD%CMNHNAME = 'LINOX' @@ -876,7 +876,7 @@ IF (NSV >=1) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,NSV_LNOXEND)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,NSV_LNOXEND)) JSA=JSA+1 END IF END IF @@ -894,7 +894,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(CLGNAMES(JSV-NSV_LGBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) JSA=JSA+1 END DO END IF @@ -912,18 +912,18 @@ IF (NSV >=1) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'SVT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) JSA=JSA+1 END DO END IF ! IF ( ((CCLOUD == 'KHKO') .OR.(CCLOUD == 'C2R2')) .AND. (.NOT. LSUPSAT)) THEN - CALL IO_WRITE_FIELD(TPFILE,'SUPSATMAX',XSUPSAT(:,:,:)) - CALL IO_WRITE_FIELD(TPFILE,'NACT', XNACT(:,:,:)) + CALL IO_Field_write(TPFILE,'SUPSATMAX',XSUPSAT(:,:,:)) + CALL IO_Field_write(TPFILE,'NACT', XNACT(:,:,:)) END IF IF ( ((CCLOUD == 'KHKO') .OR.(CCLOUD == 'C2R2')) .AND. LSUPSAT) THEN - CALL IO_WRITE_FIELD(TPFILE,'SSPRO',XSSPRO(:,:,:)) - CALL IO_WRITE_FIELD(TPFILE,'NPRO', XNPRO(:,:,:)) + CALL IO_Field_write(TPFILE,'SSPRO',XSSPRO(:,:,:)) + CALL IO_Field_write(TPFILE,'NPRO', XNPRO(:,:,:)) END IF ! #ifdef MNH_FOREFIRE @@ -941,7 +941,7 @@ IF (NSV >=1) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'SVT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) JSA=JSA+1 END DO END IF @@ -959,7 +959,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME=TRIM(CSNOWNAMES(JSV-NSV_SNWBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) JSA=JSA+1 END DO TZFIELD%CSTDNAME = '' @@ -973,7 +973,7 @@ IF (NSV >=1) THEN WRITE(TZFIELD%CMNHNAME,'(A10,I3.3)')'SNOWCANO_M',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A8,I3.3)')'X_Y_Z_','SNOWCANO',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSNWCANO(:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSNWCANO(:,:,JSV)) JSA=JSA+1 END DO ENDIF @@ -991,7 +991,7 @@ IF (NSV >=1) THEN WRITE(TZFIELD%CMNHNAME,'(A3,I3.3)')'SVT',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) JSA=JSA+1 END DO ! @@ -1024,7 +1024,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ppp' WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) ! YCHNAMES(JSV-JSA)=TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) ! without T END DO @@ -1035,7 +1035,7 @@ IF (NSV >=1) THEN TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CUNITS = 'ppp' WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) ! YCHNAMES(JSV-JSA)=TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) ! without M END DO @@ -1048,14 +1048,14 @@ IF (NSV >=1) THEN TZFIELD%CUNITS = 'mol i m-2' TZFIELD%CCOMMENT = 'X_Y_Accumulated moles of aqueous species at the surface' ZWORK2D(:,:) = XACPRAQ(:,:,JSV-NSV_CHACBEG-NSV_CHAC/2+1) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK2D) END DO TZFIELD%NDIMS = 3 END IF IF (LUSECHAQ.AND.LCH_PH) THEN ! pH values in cloud - CALL IO_WRITE_FIELD(TPFILE,'PHC',XPHC) + CALL IO_Field_write(TPFILE,'PHC',XPHC) IF (NRR>=3) THEN - CALL IO_WRITE_FIELD(TPFILE,'PHR',XPHR) + CALL IO_Field_write(TPFILE,'PHR',XPHR) ! compute mean pH in accumulated surface water !ZWORK2D(:,:) = 10**(-XCH_PHINIT) WHERE (XACPRR > 0.) @@ -1075,7 +1075,7 @@ IF (NSV >=1) THEN TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK2D) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK2D) ENDIF ENDIF ELSE IF (LCH_CONV_LINOX) THEN @@ -1091,7 +1091,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = 'LINOXT' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)') 'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) YCHNAMES(JSV-JSA)=TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) END DO ENDIF @@ -1114,7 +1114,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1)))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) IF (JSV==NSV_AERBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_AERBEG ',JSV IF (JSV==NSV_AEREND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_AEREND ',JSV YCHNAMES(JSV-JSA)= TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) @@ -1133,7 +1133,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(CDEAERNAMES(JSV-NSV_AERDEPBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) IF (JSV==NSV_AERDEPBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_AERDEPBEG ',JSV IF (JSV==NSV_AERDEPEND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_AERDEPEND ',JSV YCHNAMES(JSV-JSA) = TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) @@ -1158,7 +1158,7 @@ IF (NSV >=1) THEN WRITE(ILUOUT,*) 'Error in write_lfin: number of moments must equal or inferior to 3' WRITE(ILUOUT,*) NSV_DSTBEG, NSV_DSTEND,NMODE_DST,IMOMENTS !callabortstop - CALL IO_FILE_CLOSE_ll(TLUOUT) + CALL IO_File_close(TLUOUT) CALL ABORT STOP END IF ! Test IMOMENTS @@ -1181,7 +1181,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(YPDUST_INI(ISV_NAME_IDX))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) YDSTNAMES((JMODE-1)*IMOMENTS+1)=TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) END DO ! Loop on mode ELSE @@ -1194,7 +1194,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(YPDUST_INI(ISV_NAME_IDX))//'T' !The refererence which will be written to file TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) YDSTNAMES((JMODE-1)*IMOMENTS+JMOM)=TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) END DO ! Loop on moment END DO ! loop on mode @@ -1220,7 +1220,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(CDUSTNAMES(JSV-NSV_DSTBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) IF (JSV==NSV_DSTBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_DSTBEG ',JSV IF (JSV==NSV_DSTEND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_DSTEND ',JSV YCHNAMES(JSV-JSA) = TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) @@ -1239,7 +1239,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(CDEDSTNAMES(JSV-NSV_DSTDEPBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) IF (JSV==NSV_DSTDEPBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_DSTDEPBEG ',JSV IF (JSV==NSV_DSTDEPEND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_DSTDEPEND ',JSV YCHNAMES(JSV-JSA) = TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) @@ -1264,7 +1264,7 @@ IF (NSV >=1) THEN WRITE(ILUOUT,*) 'Error in write_lfin: number of moments must be 3' WRITE(ILUOUT,*) NSV_SLTBEG, NSV_SLTEND,NMODE_SLT,IMOMENTS !callabortstop - CALL IO_FILE_CLOSE_ll(TLUOUT) + CALL IO_File_close(TLUOUT) CALL ABORT STOP END IF @@ -1288,7 +1288,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(YPSALT_INI(ISV_NAME_IDX))//'T' !The refererence which will be written to file TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) YSLTNAMES((JMODE-1)*IMOMENTS+JMOM)=TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) END DO ! Loop on moments END DO ! Loop on modes @@ -1312,7 +1312,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(CSALTNAMES(JSV-NSV_SLTBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) IF (JSV==NSV_SLTBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_SLTBEG ',JSV IF (JSV==NSV_SLTEND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_SLTEND ',JSV YCHNAMES(JSV-JSA) = TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) @@ -1331,7 +1331,7 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(CDESLTNAMES(JSV-NSV_SLTDEPBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) IF (JSV==NSV_SLTDEPBEG) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_SLTDEPBEG ',JSV IF (JSV==NSV_SLTDEPEND) WRITE(ILUOUT,*)'MNHC: write_lfin:NSV_SLTDEPEND ',JSV YCHNAMES(JSV-JSA) = TZFIELD%CMNHNAME(1:LEN_TRIM(TZFIELD%CMNHNAME)-1) @@ -1352,7 +1352,7 @@ IF (NSV >=1) THEN TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ICH_NBR) + CALL IO_Field_write(TPFILE,TZFIELD,ICH_NBR) ! IF (ICH_NBR/=0) THEN TZFIELD%CMNHNAME = 'NSV.TITRE' @@ -1373,7 +1373,7 @@ IF (NSV >=1) THEN ICH_NAMES(ILREC*(JSV-1)+JT) = ICHAR(YCHNAMES(JSV)(JT:JT)) ENDDO ENDDO - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ICH_NAMES) + CALL IO_Field_write(TPFILE,TZFIELD,ICH_NAMES) DEALLOCATE(YCHNAMES,ICH_NAMES) END IF ! @@ -1391,66 +1391,66 @@ IF (NSV >=1) THEN TZFIELD%CMNHNAME = TRIM(CLGNAMES(JSV-NSV_LGBEG+1))//'T' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A3,I3.3)')'X_Y_Z_','SVT',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XSVT(:,:,:,JSV)) END DO END IF END IF ! ! -CALL IO_WRITE_FIELD(TPFILE,'LSUM', XLSUM) -CALL IO_WRITE_FIELD(TPFILE,'LSVM', XLSVM) -CALL IO_WRITE_FIELD(TPFILE,'LSWM', XLSWM) -CALL IO_WRITE_FIELD(TPFILE,'LSTHM',XLSTHM) -IF (LUSERV) CALL IO_WRITE_FIELD(TPFILE,'LSRVM',XLSRVM) +CALL IO_Field_write(TPFILE,'LSUM', XLSUM) +CALL IO_Field_write(TPFILE,'LSVM', XLSVM) +CALL IO_Field_write(TPFILE,'LSWM', XLSWM) +CALL IO_Field_write(TPFILE,'LSTHM',XLSTHM) +IF (LUSERV) CALL IO_Field_write(TPFILE,'LSRVM',XLSRVM) ! CALL WRITE_LB_n(TPFILE) ! ! -CALL IO_WRITE_FIELD(TPFILE,'DRYMASST',XDRYMASST) +CALL IO_Field_write(TPFILE,'DRYMASST',XDRYMASST) ! IF( CTURB /= 'NONE' .AND. CTOM=='TM06') THEN - CALL IO_WRITE_FIELD(TPFILE,'BL_DEPTH',XBL_DEPTH) + CALL IO_Field_write(TPFILE,'BL_DEPTH',XBL_DEPTH) END IF ! IF( CTURB /= 'NONE' .AND. LRMC01) THEN - CALL IO_WRITE_FIELD(TPFILE,'SBL_DEPTH',XSBL_DEPTH) + CALL IO_Field_write(TPFILE,'SBL_DEPTH',XSBL_DEPTH) END IF ! IF( CTURB /= 'NONE' .AND. CSCONV == 'EDKF' .AND.(CPROGRAM == 'MESONH' .OR. CPROGRAM == 'DIAG')) THEN - CALL IO_WRITE_FIELD(TPFILE,'WTHVMF',XWTHVMF) + CALL IO_Field_write(TPFILE,'WTHVMF',XWTHVMF) END IF ! IF( NRR > 1 .AND. CTURB /= 'NONE' ) THEN - CALL IO_WRITE_FIELD(TPFILE,'SRCT',XSRCT) - CALL IO_WRITE_FIELD(TPFILE,'SIGS',XSIGS) + CALL IO_Field_write(TPFILE,'SRCT',XSRCT) + CALL IO_Field_write(TPFILE,'SIGS',XSIGS) END IF ! !* 1.5 Reference state variables : ! -CALL IO_WRITE_FIELD(TPFILE,'RHOREFZ',XRHODREFZ) -CALL IO_WRITE_FIELD(TPFILE,'THVREFZ',XTHVREFZ) -CALL IO_WRITE_FIELD(TPFILE,'EXNTOP', XEXNTOP) +CALL IO_Field_write(TPFILE,'RHOREFZ',XRHODREFZ) +CALL IO_Field_write(TPFILE,'THVREFZ',XTHVREFZ) +CALL IO_Field_write(TPFILE,'EXNTOP', XEXNTOP) ! ! !* 1.6 Tendencies ! IF (CPROGRAM == 'MESONH') THEN IF (CTEMP_SCHEME/='LEFR') THEN - CALL IO_WRITE_FIELD(TPFILE,'US_PRES',XRUS_PRES) - CALL IO_WRITE_FIELD(TPFILE,'VS_PRES',XRVS_PRES) - CALL IO_WRITE_FIELD(TPFILE,'WS_PRES',XRWS_PRES) + CALL IO_Field_write(TPFILE,'US_PRES',XRUS_PRES) + CALL IO_Field_write(TPFILE,'VS_PRES',XRVS_PRES) + CALL IO_Field_write(TPFILE,'WS_PRES',XRWS_PRES) END IF IF (LSPLIT_CFL) THEN - CALL IO_WRITE_FIELD(TPFILE,'THS_CLD',XRTHS_CLD) + CALL IO_Field_write(TPFILE,'THS_CLD',XRTHS_CLD) ! IF (NRR >=1) THEN - IF (LUSERV) CALL IO_WRITE_FIELD(TPFILE,'RVS_CLD',XRRS_CLD(:,:,:,IDX_RVT)) - IF (LUSERC) CALL IO_WRITE_FIELD(TPFILE,'RCS_CLD',XRRS_CLD(:,:,:,IDX_RCT)) - IF (LUSERR) CALL IO_WRITE_FIELD(TPFILE,'RRS_CLD',XRRS_CLD(:,:,:,IDX_RRT)) - IF (LUSERI) CALL IO_WRITE_FIELD(TPFILE,'RIS_CLD',XRRS_CLD(:,:,:,IDX_RIT)) - IF (LUSERS) CALL IO_WRITE_FIELD(TPFILE,'RSS_CLD',XRRS_CLD(:,:,:,IDX_RST)) - IF (LUSERG) CALL IO_WRITE_FIELD(TPFILE,'RGS_CLD',XRRS_CLD(:,:,:,IDX_RGT)) - IF (LUSERH) CALL IO_WRITE_FIELD(TPFILE,'RHS_CLD',XRRS_CLD(:,:,:,IDX_RHT)) + IF (LUSERV) CALL IO_Field_write(TPFILE,'RVS_CLD',XRRS_CLD(:,:,:,IDX_RVT)) + IF (LUSERC) CALL IO_Field_write(TPFILE,'RCS_CLD',XRRS_CLD(:,:,:,IDX_RCT)) + IF (LUSERR) CALL IO_Field_write(TPFILE,'RRS_CLD',XRRS_CLD(:,:,:,IDX_RRT)) + IF (LUSERI) CALL IO_Field_write(TPFILE,'RIS_CLD',XRRS_CLD(:,:,:,IDX_RIT)) + IF (LUSERS) CALL IO_Field_write(TPFILE,'RSS_CLD',XRRS_CLD(:,:,:,IDX_RST)) + IF (LUSERG) CALL IO_Field_write(TPFILE,'RGS_CLD',XRRS_CLD(:,:,:,IDX_RGT)) + IF (LUSERH) CALL IO_Field_write(TPFILE,'RHS_CLD',XRRS_CLD(:,:,:,IDX_RHT)) END IF END IF END IF @@ -1469,7 +1469,7 @@ END IF ! TZFIELD%NTYPE = TYPEREAL ! TZFIELD%NDIMS = 3 ! TZFIELD%LTIMEDEP = .TRUE. -! CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRRS_CLD(:,:,:,IRR)) +! CALL IO_Field_write(TPFILE,TZFIELD,XRRS_CLD(:,:,:,IRR)) ! END IF ! IF (JSV == NSV_C2R2END ) THEN ! TZFIELD%CMNHNAME = 'RSVS_CLD2' @@ -1482,7 +1482,7 @@ END IF ! TZFIELD%NTYPE = TYPEREAL ! TZFIELD%NDIMS = 3 ! TZFIELD%LTIMEDEP = .TRUE. -! CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRRS_CLD(:,:,:,IRR)) +! CALL IO_Field_write(TPFILE,TZFIELD,XRRS_CLD(:,:,:,IRR)) ! END IF ! END DO ! END IF @@ -1492,31 +1492,31 @@ END IF ! ! IF (CRAD /= 'NONE') THEN - CALL IO_WRITE_FIELD(TPFILE,'DTRAD_FULL',TDTRAD_FULL) - CALL IO_WRITE_FIELD(TPFILE,'DTRAD_CLLY',TDTRAD_CLONLY) -! - CALL IO_WRITE_FIELD(TPFILE,'DTHRAD', XDTHRAD) - CALL IO_WRITE_FIELD(TPFILE,'FLALWD', XFLALWD) - CALL IO_WRITE_FIELD(TPFILE,'DIRFLASWD', XDIRFLASWD) - CALL IO_WRITE_FIELD(TPFILE,'SCAFLASWD', XSCAFLASWD) - CALL IO_WRITE_FIELD(TPFILE,'DIRSRFSWD', XDIRSRFSWD) - CALL IO_WRITE_FIELD(TPFILE,'CLEARCOL_TM1',NCLEARCOL_TM1) - CALL IO_WRITE_FIELD(TPFILE,'ZENITH', XZENITH) - CALL IO_WRITE_FIELD(TPFILE,'AZIM', XAZIM) - CALL IO_WRITE_FIELD(TPFILE,'DIR_ALB', XDIR_ALB) - CALL IO_WRITE_FIELD(TPFILE,'SCA_ALB', XSCA_ALB) + CALL IO_Field_write(TPFILE,'DTRAD_FULL',TDTRAD_FULL) + CALL IO_Field_write(TPFILE,'DTRAD_CLLY',TDTRAD_CLONLY) +! + CALL IO_Field_write(TPFILE,'DTHRAD', XDTHRAD) + CALL IO_Field_write(TPFILE,'FLALWD', XFLALWD) + CALL IO_Field_write(TPFILE,'DIRFLASWD', XDIRFLASWD) + CALL IO_Field_write(TPFILE,'SCAFLASWD', XSCAFLASWD) + CALL IO_Field_write(TPFILE,'DIRSRFSWD', XDIRSRFSWD) + CALL IO_Field_write(TPFILE,'CLEARCOL_TM1',NCLEARCOL_TM1) + CALL IO_Field_write(TPFILE,'ZENITH', XZENITH) + CALL IO_Field_write(TPFILE,'AZIM', XAZIM) + CALL IO_Field_write(TPFILE,'DIR_ALB', XDIR_ALB) + CALL IO_Field_write(TPFILE,'SCA_ALB', XSCA_ALB) ! CALL PRINT_MSG(NVERB_INFO,'IO','WRITE_LFIFM_n','EMIS: writing only first band') CALL FIND_FIELD_ID_FROM_MNHNAME('EMIS',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%NDIMS = 2 - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XEMIS(:,:,1)) + CALL IO_Field_write(TPFILE,TZFIELD,XEMIS(:,:,1)) ! - CALL IO_WRITE_FIELD(TPFILE,'TSRAD', XTSRAD) + CALL IO_Field_write(TPFILE,'TSRAD', XTSRAD) ENDIF ! IF (NRR > 1 .AND. CPROGRAM == 'MESONH') THEN - CALL IO_WRITE_FIELD(TPFILE,'CLDFR',XCLDFR) + CALL IO_Field_write(TPFILE,'CLDFR',XCLDFR) END IF ! ! @@ -1527,33 +1527,33 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN ! ! ! - CALL IO_WRITE_FIELD(TPFILE,'DTDCONV', TDTDCONV) - CALL IO_WRITE_FIELD(TPFILE,'COUNTCONV',NCOUNTCONV) - CALL IO_WRITE_FIELD(TPFILE,'DTHCONV', XDTHCONV) - CALL IO_WRITE_FIELD(TPFILE,'DRVCONV', XDRVCONV) - CALL IO_WRITE_FIELD(TPFILE,'DRCCONV', XDRCCONV) - CALL IO_WRITE_FIELD(TPFILE,'DRICONV', XDRICONV) + CALL IO_Field_write(TPFILE,'DTDCONV', TDTDCONV) + CALL IO_Field_write(TPFILE,'COUNTCONV',NCOUNTCONV) + CALL IO_Field_write(TPFILE,'DTHCONV', XDTHCONV) + CALL IO_Field_write(TPFILE,'DRVCONV', XDRVCONV) + CALL IO_Field_write(TPFILE,'DRCCONV', XDRCCONV) + CALL IO_Field_write(TPFILE,'DRICONV', XDRICONV) ! CALL FIND_FIELD_ID_FROM_MNHNAME('PRCONV',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XPRCONV*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XPRCONV*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('PACCONV',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XPACCONV*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XPACCONV*1.0E3) ! CALL FIND_FIELD_ID_FROM_MNHNAME('PRSCONV',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XPRSCONV*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XPRSCONV*3.6E6) ! IF ( LCH_CONV_LINOX ) THEN - CALL IO_WRITE_FIELD(TPFILE,'IC_RATE', XIC_RATE) - CALL IO_WRITE_FIELD(TPFILE,'CG_RATE', XCG_RATE) - CALL IO_WRITE_FIELD(TPFILE,'IC_TOTAL_NB',XIC_TOTAL_NUMBER) - CALL IO_WRITE_FIELD(TPFILE,'CG_TOTAL_NB',XCG_TOTAL_NUMBER) + CALL IO_Field_write(TPFILE,'IC_RATE', XIC_RATE) + CALL IO_Field_write(TPFILE,'CG_RATE', XCG_RATE) + CALL IO_Field_write(TPFILE,'IC_TOTAL_NB',XIC_TOTAL_NUMBER) + CALL IO_Field_write(TPFILE,'CG_TOTAL_NB',XCG_TOTAL_NUMBER) END IF ! IF ( LCHTRANS .AND. NSV > 0 ) THEN @@ -1571,31 +1571,31 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN WRITE(TZFIELD%CMNHNAME,'(A7,I3.3)')'DSVCONV',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_C2R2BEG, NSV_C2R2END TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_C1R3BEG, NSV_C1R3END TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_ELECBEG, NSV_ELECEND TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(CELECNAMES(JSV-NSV_ELECBEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_PPBEG, NSV_PPEND WRITE(TZFIELD%CMNHNAME,'(A7,I3.3)')'DSVCONV',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO #ifdef MNH_FOREFIRE IF (LFOREFIRE) THEN @@ -1603,7 +1603,7 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN WRITE(TZFIELD%CMNHNAME,'(A7,I3.3)')'DSVCONV',JSV TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO END IF #endif @@ -1612,14 +1612,14 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(UPCASE(CNAMES(JSV-NSV_CHEMBEG+1))) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO IF (LORILAM) THEN DO JSV = NSV_AERBEG, NSV_AEREND TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1))) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO END IF ! linox scalar variables @@ -1628,26 +1628,26 @@ IF (CDCONV /= 'NONE' .OR. CSCONV == 'KAFR') THEN TZFIELD%CMNHNAME = 'DSVCONV_LINOX' TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO END IF DO JSV = NSV_LGBEG, NSV_LGEND TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(CLGNAMES(JSV-NSV_LGBEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_DSTBEG, NSV_DSTEND TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(CDUSTNAMES(JSV-NSV_DSTBEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO DO JSV = NSV_SLTBEG, NSV_SLTEND TZFIELD%CMNHNAME = 'DSVCONV_'//TRIM(CSALTNAMES(JSV-NSV_SLTBEG+1)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) WRITE(TZFIELD%CCOMMENT,'(A6,A7,I3.3)')'X_Y_Z_','DSVCONV',JSV - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) + CALL IO_Field_write(TPFILE,TZFIELD,XDSVCONV(:,:,:,JSV)) END DO END IF ! @@ -1662,12 +1662,12 @@ IF (CPROGRAM /= 'IDEAL') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRC',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINPRC*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINPRC*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRC',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACPRC*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACPRC*1.0E3) ! ENDIF ENDIF @@ -1677,12 +1677,12 @@ IF (CPROGRAM /= 'IDEAL') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INDEP',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINDEP*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINDEP*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACDEP',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACDEP*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACDEP*1.0E3) ! ENDIF ENDIF @@ -1692,15 +1692,15 @@ IF (CPROGRAM /= 'IDEAL') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRR',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINPRR*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINPRR*3.6E6) ! - CALL IO_WRITE_FIELD(TPFILE,'INPRR3D',XINPRR3D) - CALL IO_WRITE_FIELD(TPFILE,'EVAP3D', XEVAP3D) + CALL IO_Field_write(TPFILE,'INPRR3D',XINPRR3D) + CALL IO_Field_write(TPFILE,'EVAP3D', XEVAP3D) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRR',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACPRR*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACPRR*1.0E3) ! ENDIF ENDIF @@ -1710,12 +1710,12 @@ IF (CPROGRAM /= 'IDEAL') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRS',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINPRS*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINPRS*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRS',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACPRS*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACPRS*1.0E3) END IF END IF ! @@ -1724,12 +1724,12 @@ IF (CPROGRAM /= 'IDEAL') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRG',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINPRG*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINPRG*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRG',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACPRG*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACPRG*1.0E3) END IF END IF ! @@ -1738,12 +1738,12 @@ IF (CPROGRAM /= 'IDEAL') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRH',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XINPRH*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,XINPRH*3.6E6) ! CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRH',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XACPRH*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,XACPRH*1.0E3) ENDIF ENDIF ! @@ -1756,7 +1756,7 @@ IF (CPROGRAM /= 'IDEAL') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('INPRT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm hour-1' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK2D*3.6E6) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK2D*3.6E6) ! ZWORK2D = XACPRR + XACPRS IF (SIZE(XINPRG) /= 0 ) ZWORK2D = ZWORK2D + XACPRG @@ -1765,7 +1765,7 @@ IF (CPROGRAM /= 'IDEAL') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('ACPRT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CUNITS = 'mm' - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK2D*1.0E3) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK2D*1.0E3) END IF END IF ! @@ -1784,7 +1784,7 @@ IF(LBLOWSNOW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XSNWSUBL3D(:,:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,XSNWSUBL3D(:,:,:)) ZWORK2D(:,:) = 0. DO JK = IKB,IKE ZWORK2D(:,:) = ZWORK2D(:,:)+XSNWSUBL3D(:,:,JK) * & @@ -1802,7 +1802,7 @@ IF(LBLOWSNOW) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .TRUE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZWORK2D(:,:)) + CALL IO_Field_write(TPFILE,TZFIELD,ZWORK2D(:,:)) END IF END IF ENDIF @@ -1812,7 +1812,7 @@ ENDIF ! IF (LFORCING) THEN ! - CALL IO_WRITE_FIELD(TPFILE,'FRC',NFRC) + CALL IO_Field_write(TPFILE,'FRC',NFRC) ! DO JT=1,NFRC ! @@ -1828,7 +1828,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEDATE TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,TDTFRC(JT)) + CALL IO_Field_write(TPFILE,TZFIELD,TDTFRC(JT)) ! TZFIELD%CMNHNAME = 'UFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1840,7 +1840,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XUFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XUFRC(:,JT)) ! TZFIELD%CMNHNAME = 'VFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1852,7 +1852,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XVFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XVFRC(:,JT)) ! TZFIELD%CMNHNAME = 'WFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1864,7 +1864,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XWFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XWFRC(:,JT)) ! TZFIELD%CMNHNAME = 'THFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1876,7 +1876,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTHFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'RVFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1888,7 +1888,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRVFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XRVFRC(:,JT)) ! TZFIELD%CMNHNAME = 'TENDTHFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1900,7 +1900,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTENDTHFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XTENDTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'TENDRVFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1912,7 +1912,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTENDRVFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XTENDRVFRC(:,JT)) ! TZFIELD%CMNHNAME = 'GXTHFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1924,7 +1924,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XGXTHFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XGXTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'GYTHFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1936,7 +1936,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XGYTHFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XGYTHFRC(:,JT)) ! TZFIELD%CMNHNAME = 'PGROUNDFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1948,7 +1948,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XPGROUNDFRC(JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XPGROUNDFRC(JT)) ! TZFIELD%CMNHNAME = 'TENDUFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1960,7 +1960,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTENDUFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XTENDUFRC(:,JT)) ! TZFIELD%CMNHNAME = 'TENDVFRC'//YFRC TZFIELD%CSTDNAME = '' @@ -1972,7 +1972,7 @@ IF (LFORCING) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTENDVFRC(:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XTENDVFRC(:,JT)) ! END DO ! @@ -1992,7 +1992,7 @@ IF ( L2D_ADV_FRC ) THEN TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,NADVFRC) + CALL IO_Field_write(TPFILE,TZFIELD,NADVFRC) ! DO JT=1,NADVFRC ! @@ -2008,7 +2008,7 @@ IF ( L2D_ADV_FRC ) THEN TZFIELD%NTYPE = TYPEDATE TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,TDTADVFRC(JT)) + CALL IO_Field_write(TPFILE,TZFIELD,TDTADVFRC(JT)) ! TZFIELD%CMNHNAME = 'TH_ADV'//YFRC TZFIELD%CSTDNAME = '' @@ -2020,7 +2020,7 @@ IF ( L2D_ADV_FRC ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDTHFRC(:,:,:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XDTHFRC(:,:,:,JT)) ! TZFIELD%CMNHNAME = 'Q_ADV'//YFRC TZFIELD%CSTDNAME = '' @@ -2032,7 +2032,7 @@ IF ( L2D_ADV_FRC ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDRVFRC(:,:,:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XDRVFRC(:,:,:,JT)) ! ENDDO ENDIF @@ -2049,7 +2049,7 @@ IF ( L2D_REL_FRC ) THEN TZFIELD%NTYPE = TYPEINT TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,NRELFRC) + CALL IO_Field_write(TPFILE,TZFIELD,NRELFRC) ! DO JT=1,NRELFRC ! @@ -2065,7 +2065,7 @@ IF ( L2D_REL_FRC ) THEN TZFIELD%NTYPE = TYPEDATE TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,TDTRELFRC(JT)) + CALL IO_Field_write(TPFILE,TZFIELD,TDTRELFRC(JT)) ! TZFIELD%CMNHNAME = 'TH_REL'//YFRC TZFIELD%CSTDNAME = '' @@ -2077,7 +2077,7 @@ IF ( L2D_REL_FRC ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XTHREL(:,:,:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XTHREL(:,:,:,JT)) ! TZFIELD%CMNHNAME = 'Q_REL'//YFRC TZFIELD%CSTDNAME = '' @@ -2089,7 +2089,7 @@ IF ( L2D_REL_FRC ) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XRVREL(:,:,:,JT)) + CALL IO_Field_write(TPFILE,TZFIELD,XRVREL(:,:,:,JT)) ! ENDDO ENDIF @@ -2097,11 +2097,11 @@ ENDIF !* 1.11bis Eddy Fluxes variables ! Modif PP ! IF ( LTH_FLX ) THEN - CALL IO_WRITE_FIELD(TPFILE,'VT_FLX',XVTH_FLUX_M) - CALL IO_WRITE_FIELD(TPFILE,'WT_FLX',XWTH_FLUX_M) + CALL IO_Field_write(TPFILE,'VT_FLX',XVTH_FLUX_M) + CALL IO_Field_write(TPFILE,'WT_FLX',XWTH_FLUX_M) END IF ! -IF ( LUV_FLX) CALL IO_WRITE_FIELD(TPFILE,'VU_FLX',XVU_FLUX_M) +IF ( LUV_FLX) CALL IO_Field_write(TPFILE,'VU_FLX',XVU_FLUX_M) ! !* 1.12 Balloon variables ! @@ -2119,36 +2119,36 @@ IF ( CPROGRAM=='REAL ' ) THEN ! ! i) Total fields (TOT=BASIC+TOTDIS) ! - CALL IO_WRITE_FIELD(TPFILE,'UT15', XUTOT) - CALL IO_WRITE_FIELD(TPFILE,'VT15', XVTOT) - CALL IO_WRITE_FIELD(TPFILE,'TEMPTOT',XTTOT) - IF (INDEX(CFILTERING,'P')/=0) CALL IO_WRITE_FIELD(TPFILE,'PRESTOT',XPTOT) - IF (INDEX(CFILTERING,'Q')/=0) CALL IO_WRITE_FIELD(TPFILE,'HUMTOT', XQTOT) + CALL IO_Field_write(TPFILE,'UT15', XUTOT) + CALL IO_Field_write(TPFILE,'VT15', XVTOT) + CALL IO_Field_write(TPFILE,'TEMPTOT',XTTOT) + IF (INDEX(CFILTERING,'P')/=0) CALL IO_Field_write(TPFILE,'PRESTOT',XPTOT) + IF (INDEX(CFILTERING,'Q')/=0) CALL IO_Field_write(TPFILE,'HUMTOT', XQTOT) ! ! ii) Environmental fields (ENV=TOT-VORDIS) ! - CALL IO_WRITE_FIELD(TPFILE,'UT16', XUENV) - CALL IO_WRITE_FIELD(TPFILE,'VT16', XVENV) - CALL IO_WRITE_FIELD(TPFILE,'TEMPENV',XTENV) - IF (INDEX(CFILTERING,'P')/=0) CALL IO_WRITE_FIELD(TPFILE,'PRESENV',XPENV) - IF (INDEX(CFILTERING,'Q')/=0) CALL IO_WRITE_FIELD(TPFILE,'HUMENV', XQENV) + CALL IO_Field_write(TPFILE,'UT16', XUENV) + CALL IO_Field_write(TPFILE,'VT16', XVENV) + CALL IO_Field_write(TPFILE,'TEMPENV',XTENV) + IF (INDEX(CFILTERING,'P')/=0) CALL IO_Field_write(TPFILE,'PRESENV',XPENV) + IF (INDEX(CFILTERING,'Q')/=0) CALL IO_Field_write(TPFILE,'HUMENV', XQENV) ! END IF IF (NDIAG_FILT >=1) THEN ! ! iii) Basic (filtered) fields ! - CALL IO_WRITE_FIELD(TPFILE,'UT17', XUBASIC) - CALL IO_WRITE_FIELD(TPFILE,'VT17', XVBASIC) - CALL IO_WRITE_FIELD(TPFILE,'TEMPBAS',XTBASIC) - IF (INDEX(CFILTERING,'P')/=0) CALL IO_WRITE_FIELD(TPFILE,'PRESBAS',XPBASIC) - IF (INDEX(CFILTERING,'Q')/=0) CALL IO_WRITE_FIELD(TPFILE,'HUMBAS', XQBASIC) + CALL IO_Field_write(TPFILE,'UT17', XUBASIC) + CALL IO_Field_write(TPFILE,'VT17', XVBASIC) + CALL IO_Field_write(TPFILE,'TEMPBAS',XTBASIC) + IF (INDEX(CFILTERING,'P')/=0) CALL IO_Field_write(TPFILE,'PRESBAS',XPBASIC) + IF (INDEX(CFILTERING,'Q')/=0) CALL IO_Field_write(TPFILE,'HUMBAS', XQBASIC) END IF IF (NDIAG_FILT >=2) THEN ! ! iv) Total disturbance tangential wind ! - CALL IO_WRITE_FIELD(TPFILE,'VTDIS',XVTDIS) + CALL IO_Field_write(TPFILE,'VTDIS',XVTDIS) ! END IF ! @@ -2169,7 +2169,7 @@ IF ( CPROGRAM=='REAL ' ) THEN TZFIELD%CMNHNAME = ADJUSTL(CDUMMY_2D(JSA)) TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CCOMMENT = 'X_Y_Z_'//TRIM(TZFIELD%CMNHNAME) - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,XDUMMY_2D(:,:,JSA)) + CALL IO_Field_write(TPFILE,TZFIELD,XDUMMY_2D(:,:,JSA)) END DO END IF ! diff --git a/src/MNH/write_profilern.f90 b/src/MNH/write_profilern.f90 index a011479a3..b70fe68aa 100644 --- a/src/MNH/write_profilern.f90 +++ b/src/MNH/write_profilern.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2002-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################### @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE WRITE_PROFILER_n(TPDIAFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! diachronic file to write ! @@ -67,7 +67,7 @@ END MODULE MODI_WRITE_PROFILER_n ! ------------ ! USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT USE MODD_PARAMETERS ! diff --git a/src/MNH/write_seriesn.f90 b/src/MNH/write_seriesn.f90 index 9a0430e09..d4851b5a3 100644 --- a/src/MNH/write_seriesn.f90 +++ b/src/MNH/write_seriesn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2002-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !######################## @@ -13,7 +13,7 @@ INTERFACE ! SUBROUTINE WRITE_SERIES_n(TPDIAFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! file to write ! @@ -67,14 +67,13 @@ END MODULE MODI_WRITE_SERIES_n !* 0. Declaration ! -------------- ! -USE MODD_IO_ll, ONLY: NGEN_VERB,TFILEDATA +USE MODD_IO, ONLY: NGEN_VERB, TFILEDATA USE MODD_LUNIT_n, ONLY: TLUOUT USE MODD_PARAMETERS USE MODD_SERIES USE MODD_SERIES_n ! USE MODE_GATHER_ll -USE MODE_IO_ll USE MODE_ll USE MODE_MSG ! diff --git a/src/MNH/write_stationn.f90 b/src/MNH/write_stationn.f90 index 2a67c0fa1..92722fe09 100644 --- a/src/MNH/write_stationn.f90 +++ b/src/MNH/write_stationn.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 2002-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- ! ########################### @@ -11,7 +11,7 @@ INTERFACE ! SUBROUTINE WRITE_STATION_n(TPDIAFILE) ! -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPDIAFILE ! diachronic file to write ! @@ -64,7 +64,7 @@ END MODULE MODI_WRITE_STATION_n ! ------------ ! USE MODD_CST -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_LUNIT USE MODD_PARAMETERS ! diff --git a/src/MNH/write_surf_mnh.f90 b/src/MNH/write_surf_mnh.f90 index 7d54e17b0..2fb2021b5 100644 --- a/src/MNH/write_surf_mnh.f90 +++ b/src/MNH/write_surf_mnh.f90 @@ -171,15 +171,15 @@ END MODULE MODE_WRITE_SURF_MNH_TOOLS !* 0. DECLARATIONS ! ------------ ! -USE MODE_IO_WRITE_FIELD -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL +use MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG USE MODE_WRITE_SURF_MNH_TOOLS ! -USE MODD_CONF, ONLY: CPROGRAM -USE MODD_CONF_n, ONLY: CSTORAGE_TYPE +USE MODD_CONF, ONLY: CPROGRAM +USE MODD_CONF_n, ONLY: CSTORAGE_TYPE USE MODD_GRID -USE MODD_IO_ll, ONLY: TFILE_SURFEX +USE MODD_IO, ONLY: TFILE_SURFEX ! IMPLICIT NONE ! @@ -209,7 +209,7 @@ IF( ( HREC=='LAT0' .OR. HREC=='LON0' .OR. HREC=='RPK' .OR. HREC=='BETA' & ELSE ! CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,0,TYPEREAL,0,'WRITE_SURFX0_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,PFIELD,KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,PFIELD,KRESP) ! IF (TRIM(CPROGRAM)=='PGD') THEN !Store these variables (necessary for PREP_PGD program when writing netCDF files) @@ -282,15 +282,15 @@ END SUBROUTINE WRITE_SURFX0_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_IO_WRITE_FIELD -USE MODE_FIELD, ONLY: FIND_FIELD_ID_FROM_MNHNAME,TFIELDDATA,TFIELDLIST,TYPEREAL +USE MODE_FIELD, ONLY: FIND_FIELD_ID_FROM_MNHNAME,TFIELDDATA,TFIELDLIST,TYPEREAL +use MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG USE MODE_TOOLS_ll USE MODE_WRITE_SURF_MNH_TOOLS ! USE MODD_CONF_n, ONLY: CSTORAGE_TYPE USE MODD_GRID_n, ONLY: XXHAT, XYHAT -USE MODD_IO_ll, ONLY: TFILE_SURFEX +USE MODD_IO, ONLY: TFILE_SURFEX USE MODD_IO_SURF_MNH, ONLY :NMASK, CMASK, & NIU, NJU, NIB, NJB, NIE, NJE, & NIU_ALL, NJU_ALL, NIB_ALL, NJB_ALL, & @@ -436,11 +436,11 @@ IF ( (CSTORAGE_TYPE=='PG' .OR. CSTORAGE_TYPE=='SU') & CALL FIND_FIELD_ID_FROM_MNHNAME('XHAT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CDIR = '--' - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,ZW1D(:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZW1D(:),KRESP) END IF IF (HDIR=='H') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('XHAT',IID,IRESP) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TFIELDLIST(IID),ZW1D(1+NHALO:IIU-NHALO),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TFIELDLIST(IID),ZW1D(1+NHALO:IIU-NHALO),KRESP) IF (.NOT. (ASSOCIATED(XXHAT))) THEN !Store XXHAT if not yet done (necessary for PREP_PGD program when writing netCDF files) ALLOCATE(XXHAT(IIU-2*NHALO)) @@ -467,11 +467,11 @@ ELSE IF ( (CSTORAGE_TYPE=='PG' .OR. CSTORAGE_TYPE=='SU') & CALL FIND_FIELD_ID_FROM_MNHNAME('YHAT',IID,IRESP) TZFIELD = TFIELDLIST(IID) TZFIELD%CDIR = '--' - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,ZW1D(:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZW1D(:),KRESP) END IF IF (HDIR=='H') THEN CALL FIND_FIELD_ID_FROM_MNHNAME('YHAT',IID,IRESP) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TFIELDLIST(IID),ZW1D(1+NHALO:IJU-NHALO),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TFIELDLIST(IID),ZW1D(1+NHALO:IJU-NHALO),KRESP) IF (.NOT. (ASSOCIATED(XYHAT))) THEN !Store XYHAT if not yet done (necessary for PREP_PGD program when writing netCDF files) ALLOCATE(XYHAT(IJU-2*NHALO)) @@ -481,13 +481,13 @@ ELSE IF ( (CSTORAGE_TYPE=='PG' .OR. CSTORAGE_TYPE=='SU') & DEALLOCATE(ZW1D) ELSE IF (HDIR=='H') THEN CALL PREPARE_METADATA_WRITE_SURF(HREC,'XY',HCOMMENT,4,TYPEREAL,2,'WRITE_SURFX1_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,ZWORK(1+NHALO:IIU-NHALO,1+NHALO:IJU-NHALO),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZWORK(1+NHALO:IIU-NHALO,1+NHALO:IJU-NHALO),KRESP) ELSE IF (HDIR=='A') THEN CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,4,TYPEREAL,2,'WRITE_SURFX1_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,ZWORK(:,:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZWORK(:,:),KRESP) ELSE CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,4,TYPEREAL,1,'WRITE_SURFX1_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,PFIELD(:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,PFIELD(:),KRESP) END IF ! IF (KRESP /=0) THEN @@ -545,20 +545,20 @@ END SUBROUTINE WRITE_SURFX1_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_IO_WRITE_FIELD -USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG,TYPEREAL +USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG,TYPEREAL +use MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG USE MODE_TOOLS_ll USE MODE_WRITE_SURF_MNH_TOOLS ! -USE MODD_CONF_n, ONLY: CSTORAGE_TYPE -USE MODD_DATA_COVER_PAR,ONLY : JPCOVER -USE MODD_IO_ll, ONLY: TFILE_SURFEX -USE MODD_IO_SURF_MNH, ONLY :NMASK, CMASK, & - NIU, NJU, NIB, NJB, NIE, NJE, & - NIU_ALL, NJU_ALL, NIB_ALL, NJB_ALL, & - NIE_ALL, NJE_ALL, NMASK_ALL, NHALO -USE MODD_PARAMETERS, ONLY: XUNDEF, JPHEXT +USE MODD_CONF_n, ONLY: CSTORAGE_TYPE +USE MODD_DATA_COVER_PAR, ONLY: JPCOVER +USE MODD_IO, ONLY: TFILE_SURFEX +USE MODD_IO_SURF_MNH, ONLY: NMASK, CMASK, & + NIU, NJU, NIB, NJB, NIE, NJE, & + NIU_ALL, NJU_ALL, NIB_ALL, NJB_ALL, & + NIE_ALL, NJE_ALL, NMASK_ALL, NHALO +USE MODD_PARAMETERS, ONLY: XUNDEF, JPHEXT ! USE MODI_GET_SURF_UNDEF USE MODI_UNPACK_1D_2D @@ -648,7 +648,7 @@ TZFIELD%NGRID = 0 TZFIELD%NTYPE = TYPELOG TZFIELD%NDIMS = 0 TZFIELD%LTIMEDEP = .FALSE. -CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,GCOVER_PACKED,KRESP) +CALL IO_Field_write(TFILE_SURFEX,TZFIELD,GCOVER_PACKED,KRESP) ! IF (KRESP /=0) THEN WRITE ( YMSG, '( I5 )' ) KRESP @@ -682,12 +682,12 @@ IF (.NOT. GCOVER_PACKED) THEN TZFIELD%CCOMMENT = 'X_Y_'//TRIM(YREC) IF (OFLAG(JL2)) THEN ICOVER=ICOVER+1 - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,ZWORK3D(1+NHALO:IIU-NHALO,1+NHALO:IJU-NHALO,ICOVER),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZWORK3D(1+NHALO:IIU-NHALO,1+NHALO:IJU-NHALO,ICOVER),KRESP) END IF END DO ELSE CALL PREPARE_METADATA_WRITE_SURF(HREC,YDIR,HCOMMENT,4,TYPEREAL,3,'WRITE_SURFX2COV_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,ZWORK3D(1+NHALO:IIU-NHALO,1+NHALO:IJU-NHALO,:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZWORK3D(1+NHALO:IIU-NHALO,1+NHALO:IJU-NHALO,:),KRESP) END IF ! DEALLOCATE(ZWORK3D) @@ -746,20 +746,20 @@ END SUBROUTINE WRITE_SURFX2COV_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_IO_WRITE_FIELD -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEREAL +use MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG USE MODE_TOOLS_ll USE MODE_WRITE_SURF_MNH_TOOLS ! -USE MODD_CONF_n, ONLY: CSTORAGE_TYPE -USE MODD_DATA_COVER_PAR,ONLY : JPCOVER -USE MODD_IO_ll, ONLY: TFILE_SURFEX -USE MODD_IO_SURF_MNH, ONLY :NMASK, CMASK, & - NIU, NJU, NIB, NJB, NIE, NJE, & - NIU_ALL, NJU_ALL, NIB_ALL, NJB_ALL, & - NIE_ALL, NJE_ALL, NMASK_ALL, NHALO -USE MODD_PARAMETERS, ONLY: XUNDEF +USE MODD_CONF_n, ONLY: CSTORAGE_TYPE +USE MODD_DATA_COVER_PAR, ONLY: JPCOVER +USE MODD_IO, ONLY: TFILE_SURFEX +USE MODD_IO_SURF_MNH, ONLY: NMASK, CMASK, & + NIU, NJU, NIB, NJB, NIE, NJE, & + NIU_ALL, NJU_ALL, NIB_ALL, NJB_ALL, & + NIE_ALL, NJE_ALL, NMASK_ALL, NHALO +USE MODD_PARAMETERS, ONLY: XUNDEF ! USE MODI_GET_SURF_UNDEF USE MODI_UNPACK_1D_2D @@ -827,11 +827,11 @@ IF (HDIR=='H' .OR. HDIR=='A') THEN ! IF (HDIR=='H') THEN CALL PREPARE_METADATA_WRITE_SURF(HREC,'XY',HCOMMENT,4,TYPEREAL,3,'WRITE_SURFX2_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,ZWORK(1+NHALO:IIU-NHALO,1+NHALO:IJU-NHALO,:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZWORK(1+NHALO:IIU-NHALO,1+NHALO:IJU-NHALO,:),KRESP) END IF IF (HDIR=='A') THEN CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,4,TYPEREAL,3,'WRITE_SURFX2_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,ZWORK(:,:,:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZWORK(:,:,:),KRESP) END IF ! DEALLOCATE(ZWORK) @@ -842,7 +842,7 @@ ELSE IF (HDIR=='-') THEN WHERE (ZFIELD==ZUNDEF) ZFIELD=XUNDEF ! CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,4,TYPEREAL,2,'WRITE_SURFX2_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,ZFIELD(:,:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ZFIELD(:,:),KRESP) ! DEALLOCATE(ZFIELD) END IF @@ -897,15 +897,15 @@ END SUBROUTINE WRITE_SURFX2_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_IO_WRITE_FIELD -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT +use MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG USE MODE_WRITE_SURF_MNH_TOOLS ! -USE MODD_CONF_n, ONLY: CSTORAGE_TYPE -USE MODD_IO_ll, ONLY: TFILE_SURFEX -USE MODD_IO_SURF_MNH, ONLY: NIU_ALL, NJU_ALL -USE MODD_PARAMETERS, ONLY: JPHEXT +USE MODD_CONF_n, ONLY: CSTORAGE_TYPE +USE MODD_IO, ONLY: TFILE_SURFEX +USE MODD_IO_SURF_MNH, ONLY: NIU_ALL, NJU_ALL +USE MODD_PARAMETERS, ONLY: JPHEXT ! IMPLICIT NONE ! @@ -932,14 +932,14 @@ IF( (HREC=='IMAX' .OR. HREC=='JMAX' .OR. HREC=='KMAX') .AND. & ! ELSE IF (HREC=='VERSION' .OR. HREC=='BUG') THEN !Field is in fieldlist - CALL IO_WRITE_FIELD(TFILE_SURFEX,HREC,KFIELD,KRESP) + CALL IO_Field_write(TFILE_SURFEX,HREC,KFIELD,KRESP) ELSE IFIELD = KFIELD IF (HREC=='IMAX') IFIELD = NIU_ALL-2*JPHEXT IF (HREC=='JMAX') IFIELD = NJU_ALL-2*JPHEXT ! CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,0,TYPEINT,0,'WRITE_SURFN0_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,IFIELD,KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,IFIELD,KRESP) END IF ! IF (KRESP /=0) THEN @@ -992,15 +992,15 @@ END SUBROUTINE WRITE_SURFN0_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_IO_WRITE_FIELD -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT +use MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG USE MODE_WRITE_SURF_MNH_TOOLS ! -USE MODD_IO_ll, ONLY: TFILE_SURFEX -USE MODD_IO_SURF_MNH, ONLY: NMASK, CMASK, & - NIU, NJU, NIB, NJB, NIE, NJE -USE MODD_PARAMETERS, ONLY: NUNDEF +USE MODD_IO, ONLY: TFILE_SURFEX +USE MODD_IO_SURF_MNH, ONLY: NMASK, CMASK, & + NIU, NJU, NIB, NJB, NIE, NJE +USE MODD_PARAMETERS, ONLY: NUNDEF ! USE MODI_UNPACK_1D_2D ! @@ -1031,7 +1031,7 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','WRITE_SURFN1_MNH',TRIM(TFILE_SURFEX%CNAME)//': IF (HDIR=='-') THEN ! CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,0,TYPEINT,1,'WRITE_SURFN1_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,KFIELD,KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,KFIELD,KRESP) ! ELSE IF (HDIR=='H') THEN ! @@ -1041,7 +1041,7 @@ ELSE IF (HDIR=='H') THEN CALL UNPACK_1D_2D(NMASK,KFIELD,IWORK(NIB:NIE,NJB:NJE)) ! CALL PREPARE_METADATA_WRITE_SURF(HREC,'XY',HCOMMENT,4,TYPEINT,2,'WRITE_SURFN1_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,IWORK(:,:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,IWORK(:,:),KRESP) ! DEALLOCATE(IWORK) END IF @@ -1095,14 +1095,14 @@ END SUBROUTINE WRITE_SURFN1_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_IO_WRITE_FIELD -USE MODE_FIELD, ONLY: TFIELDDATA,TYPECHAR,TYPELOG +USE MODE_FIELD, ONLY: TFIELDDATA,TYPECHAR,TYPELOG +use MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG USE MODE_WRITE_SURF_MNH_TOOLS ! -USE MODD_CONF_n, ONLY: CSTORAGE_TYPE -USE MODD_IO_ll, ONLY: TFILE_SURFEX -USE MODD_IO_SURF_MNH, ONLY: NIU_ALL, NJU_ALL +USE MODD_CONF_n, ONLY: CSTORAGE_TYPE +USE MODD_IO, ONLY: TFILE_SURFEX +USE MODD_IO_SURF_MNH, ONLY: NIU_ALL, NJU_ALL ! IMPLICIT NONE ! @@ -1130,7 +1130,7 @@ IF ( (CSTORAGE_TYPE=='PG' .OR. CSTORAGE_TYPE=='SU') & GCARTESIAN = .TRUE. END IF ! - CALL IO_WRITE_FIELD(TFILE_SURFEX,'CARTESIAN',GCARTESIAN,KRESP) + CALL IO_Field_write(TFILE_SURFEX,'CARTESIAN',GCARTESIAN,KRESP) ! IF (KRESP /=0) THEN WRITE ( YMSG, '( I5 )' ) KRESP @@ -1140,7 +1140,7 @@ IF ( (CSTORAGE_TYPE=='PG' .OR. CSTORAGE_TYPE=='SU') & END IF ! CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,0,TYPECHAR,0,'WRITE_SURFC0_MNH',TZFIELD) -CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,HFIELD,KRESP) +CALL IO_Field_write(TFILE_SURFEX,TZFIELD,HFIELD,KRESP) ! IF (KRESP /=0) THEN WRITE ( YMSG, '( I5 )' ) KRESP @@ -1191,15 +1191,15 @@ END SUBROUTINE WRITE_SURFC0_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_IO_WRITE_FIELD -USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT,TYPELOG +USE MODE_FIELD, ONLY: TFIELDDATA,TYPEINT,TYPELOG +use MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG USE MODE_WRITE_SURF_MNH_TOOLS ! -USE MODD_CONF_n, ONLY: CSTORAGE_TYPE -USE MODD_IO_ll, ONLY: TFILE_SURFEX -USE MODD_IO_SURF_MNH, ONLY: NMASK, CMASK, & - NIU, NJU, NIB, NJB, NIE, NJE +USE MODD_CONF_n, ONLY: CSTORAGE_TYPE +USE MODD_IO, ONLY: TFILE_SURFEX +USE MODD_IO_SURF_MNH, ONLY: NMASK, CMASK, & + NIU, NJU, NIB, NJB, NIE, NJE ! USE MODI_UNPACK_1D_2D ! @@ -1235,7 +1235,7 @@ IF (HDIR=='-') THEN RETURN ELSE CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,0,TYPELOG,1,'WRITE_SURFL1_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,OFIELD(:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,OFIELD(:),KRESP) END IF ! ELSE IF (HDIR=='H') THEN @@ -1250,7 +1250,7 @@ ELSE IF (HDIR=='H') THEN WHERE(GWORK) IWORK = 1 ! CALL PREPARE_METADATA_WRITE_SURF(HREC,'XY',HCOMMENT,4,TYPEINT,2,'WRITE_SURFL1_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,IWORK(:,:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,IWORK(:,:),KRESP) ! DEALLOCATE(IWORK) DEALLOCATE(GWORK) @@ -1306,14 +1306,14 @@ END SUBROUTINE WRITE_SURFL1_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_IO_WRITE_FIELD -USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG +USE MODE_FIELD, ONLY: TFIELDDATA,TYPELOG +use MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_MSG USE MODE_WRITE_SURF_MNH_TOOLS ! -USE MODD_CONF_n, ONLY: CSTORAGE_TYPE -USE MODD_IO_ll, ONLY: TFILE_SURFEX -USE MODD_IO_SURF_MNH, ONLY: CMASK +USE MODD_CONF_n, ONLY: CSTORAGE_TYPE +USE MODD_IO, ONLY: TFILE_SURFEX +USE MODD_IO_SURF_MNH, ONLY: CMASK ! IMPLICIT NONE ! @@ -1337,7 +1337,7 @@ IF( (CMASK /= 'FULL ').AND. (HREC=='COVER') ) THEN RETURN ELSE CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,0,TYPELOG,0,'WRITE_SURFL0_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,OFIELD,KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,OFIELD,KRESP) END IF ! IF (KRESP /=0) THEN @@ -1389,14 +1389,14 @@ END SUBROUTINE WRITE_SURFL0_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEDATE -USE MODE_FM -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEDATE +use MODE_IO_FIELD_WRITE, only: IO_Field_write +USE MODE_IO_FILE USE MODE_MSG USE MODE_WRITE_SURF_MNH_TOOLS ! -USE MODD_CONF_n, ONLY : CSTORAGE_TYPE -USE MODD_IO_ll, ONLY: TFILE_SURFEX +USE MODD_CONF_n, ONLY: CSTORAGE_TYPE +USE MODD_IO, ONLY: TFILE_SURFEX USE MODD_TYPE_DATE ! ! @@ -1432,7 +1432,7 @@ ELSE TZDATA%TIME = PTIME ! CALL PREPARE_METADATA_WRITE_SURF(HREC,'--',HCOMMENT,0,TYPEDATE,0,'WRITE_SURFT0_MNH',TZFIELD) - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,TZDATA,KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,TZDATA,KRESP) END IF ! IF (KRESP /=0) THEN @@ -1483,13 +1483,13 @@ END SUBROUTINE WRITE_SURFT0_MNH !* 0. DECLARATIONS ! ------------ ! -USE MODE_FIELD, ONLY: TFIELDDATA, TYPEINT, TYPEREAL -USE MODE_FM -USE MODE_FMWRIT +USE MODE_FIELD, ONLY: TFIELDDATA, TYPEINT, TYPEREAL +use MODE_IO_FIELD_WRITE, only: IO_Field_write +USE MODE_IO_FILE USE MODE_MSG ! -USE MODD_IO_ll, ONLY: TFILE_SURFEX -USE MODD_CONF_n, ONLY : CSTORAGE_TYPE +USE MODD_IO, ONLY: TFILE_SURFEX +USE MODD_CONF_n, ONLY: CSTORAGE_TYPE ! ! IMPLICIT NONE @@ -1535,7 +1535,7 @@ ELSE TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .FALSE. ! - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,ITDATE(:,:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,ITDATE(:,:),KRESP) ! IF (KRESP /=0) THEN WRITE ( YMSG, '( I5 )' ) KRESP @@ -1553,7 +1553,7 @@ ELSE TZFIELD%NDIMS = 1 TZFIELD%LTIMEDEP = .FALSE. ! - CALL IO_WRITE_FIELD(TFILE_SURFEX,TZFIELD,PTIME(:),KRESP) + CALL IO_Field_write(TFILE_SURFEX,TZFIELD,PTIME(:),KRESP) ! IF (KRESP /=0) THEN WRITE ( YMSG, '( I5 )' ) KRESP diff --git a/src/MNH/write_ts1d.f90 b/src/MNH/write_ts1d.f90 index a022f4a0a..f57d26eef 100644 --- a/src/MNH/write_ts1d.f90 +++ b/src/MNH/write_ts1d.f90 @@ -1,6 +1,6 @@ -!MNH_LIC Copyright 1995-2018 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2019 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence -!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt +!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. !----------------------------------------------------------------- !! ############################# @@ -76,9 +76,8 @@ !! ------------------ USE MODE_DATETIME -USE MODE_FM, ONLY: IO_FILE_CLOSE_ll,IO_FILE_OPEN_ll -USE MODE_IO_MANAGE_STRUCT,ONLY: IO_FILE_ADD2LIST -USE MODE_IO_ll +USE MODE_IO_FILE, ONLY: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, ONLY: IO_File_add2list USE MODE_GRIDPROJ USE MODE_ll ! @@ -88,7 +87,7 @@ USE MODD_NSV, ONLY: NSV,NSV_CHEMBEG,NSV_CHEMEND, & USE MODD_CH_AEROSOL, ONLY: CAERONAMES, LORILAM USE MODD_DYN_n, ONLY: XTSTEP ! time-step of the model USE MODD_DIM_n, ONLY: NKMAX ! # of points in Z of the physical grid -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_IO, ONLY: TFILEDATA USE MODD_PARAMETERS, ONLY: JPVEXT ! vertical external points number USE MODD_GRID, ONLY: XLATORI,XLONORI USE MODD_GRID_n, ONLY: XXHAT,XYHAT,XZZ @@ -230,8 +229,8 @@ DO JN=1,NBPROF (JINDEX >= 1).AND.(JINDEX <= IJU)) THEN ! write picasso def-file IF (GSFIRSTCALL) THEN - CALL IO_FILE_ADD2LIST(TZFILE,YSIO1DDEF,'TXT','WRITE') - CALL IO_FILE_OPEN_ll(TZFILE,HPOSITION='REWIND',HSTATUS='NEW') + CALL IO_File_add2list(TZFILE,YSIO1DDEF,'TXT','WRITE') + CALL IO_File_open(TZFILE,HPOSITION='REWIND',HSTATUS='NEW') ISIO1D = TZFILE%NLU ! write comment @@ -274,12 +273,12 @@ DO JN=1,NBPROF END IF END DO - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() ! open picasso dat-file - CALL IO_FILE_ADD2LIST(TZFILE,YSIO1DDAT,'TXT','WRITE') - CALL IO_FILE_OPEN_ll(TZFILE,HPOSITION='REWIND',HSTATUS='NEW') + CALL IO_File_add2list(TZFILE,YSIO1DDAT,'TXT','WRITE') + CALL IO_File_open(TZFILE,HPOSITION='REWIND',HSTATUS='NEW') ISIO1D = TZFILE%NLU ! calculate ISSKIP @@ -387,7 +386,7 @@ DO JN=1,NBPROF ENDDO IF ((CPROGRAM =='DIAG ').AND.(LCHEMDIAG)) THEN - CALL IO_FILE_CLOSE_ll(TZFILE) + CALL IO_File_close(TZFILE) TZFILE => NULL() END IF diff --git a/src/MNH/xy_to_latlon.f90 b/src/MNH/xy_to_latlon.f90 index e5e264332..49fa91ab6 100644 --- a/src/MNH/xy_to_latlon.f90 +++ b/src/MNH/xy_to_latlon.f90 @@ -54,29 +54,29 @@ !! no transfer of the file when closing Dec. 09, 1996 (V.Masson) !! + changes call to READ_HGRID !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list !---------------------------------------------------------------------------- ! !* 0. DECLARATION ! ----------- ! ! -USE MODD_GRID -USE MODD_IO_ll, ONLY: TFILEDATA +USE MODD_GRID +USE MODD_IO, ONLY: TFILEDATA USE MODD_PGDDIM USE MODD_PGDGRID USE MODD_PARAMETERS USE MODD_LUNIT ! -USE MODE_FM USE MODE_GRIDPROJ -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST +USE MODE_IO, only: IO_Config_set, IO_Init +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list ! USE MODI_INI_CST USE MODI_READ_HGRID ! -USE MODN_CONFIO, ONLY : NAM_CONFIO +USE MODN_CONFIO, ONLY: NAM_CONFIO ! IMPLICIT NONE ! @@ -118,21 +118,21 @@ CALL INI_CST ! !* 2. Reading of namelist file ! ------------------------ -CALL INITIO_ll() +CALL IO_Init() ! -CALL IO_FILE_ADD2LIST(TZNMLFILE,'XY2LATLON1.nam','NML','READ') -CALL IO_FILE_OPEN_ll(TZNMLFILE) +CALL IO_File_add2list(TZNMLFILE,'XY2LATLON1.nam','NML','READ') +CALL IO_File_open(TZNMLFILE) INAM=TZNMLFILE%NLU READ(INAM,NAM_INIFILE) READ(INAM,NAM_CONFIO) -CALL SET_CONFIO_ll() -CALL IO_FILE_CLOSE_ll(TZNMLFILE) +CALL IO_Config_set() +CALL IO_File_close(TZNMLFILE) ! !* 1. Opening of MESONH file ! ---------------------- ! -CALL IO_FILE_ADD2LIST(TZINIFILE,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=2) -CALL IO_FILE_OPEN_ll(TZINIFILE) +CALL IO_File_add2list(TZINIFILE,TRIM(YINIFILE),'MNH','READ',KLFITYPE=2,KLFIVERB=2) +CALL IO_File_open(TZINIFILE) ! !* 2. Reading of MESONH file ! ---------------------- @@ -142,7 +142,7 @@ CALL READ_HGRID(0,TZINIFILE,YNAME,YDAD,YSTORAGE_TYPE) !* 3. Closing of MESONH file ! ---------------------- ! -CALL IO_FILE_CLOSE_ll(TZINIFILE) +CALL IO_File_close(TZINIFILE) ! !------------------------------------------------------------------------------- ! diff --git a/src/MNH/zoom_pgd.f90 b/src/MNH/zoom_pgd.f90 index 26370ed71..384239fd2 100644 --- a/src/MNH/zoom_pgd.f90 +++ b/src/MNH/zoom_pgd.f90 @@ -40,7 +40,7 @@ !! 06/2016 (G.Delautier) phasage surfex 8 !! 08/07/2016 P.Wautelet Removed MNH_NCWRIT define !! Philippe Wautelet: 05/2016-04/2018: new data structures and calls for I/O -! P. Wautelet 07/02/2019: force TYPE to a known value for IO_FILE_ADD2LIST +! P. Wautelet 07/02/2019: force TYPE to a known value for IO_File_add2list ! P. Wautelet 14/02/2019: remove CLUOUT/CLUOUT0 and associated variables !! !---------------------------------------------------------------------------- @@ -49,7 +49,7 @@ ! ----------- ! USE MODD_CONF, ONLY : CPROGRAM, L1D, L2D, LPACK -USE MODD_IO_ll, ONLY: NIO_VERB,NVERB_DEBUG,TFILE_OUTPUTLISTING,TFILEDATA +USE MODD_IO, ONLY: NIO_VERB,NVERB_DEBUG,TFILE_OUTPUTLISTING,TFILEDATA USE MODD_LUNIT, ONLY : TLUOUT0, TOUTDATAFILE USE MODD_PARAMETERS, ONLY : XUNDEF, NUNDEF, JPVEXT, JPHEXT, JPMODELMAX USE MODD_PARAM_n, ONLY : CSURF @@ -57,11 +57,11 @@ USE MODD_DIM_n, ONLY : NIMAX, NJMAX USE MODD_CONF_n, ONLY : CSTORAGE_TYPE ! USE MODE_POS -USE MODE_FM -USE MODE_FMWRIT -USE MODE_FMREAD -USE MODE_IO_ll -USE MODE_IO_MANAGE_STRUCT, ONLY : IO_FILE_ADD2LIST, IO_FILE_PRINT_LIST +USE MODE_IO, only: IO_Config_set, IO_Init +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FIELD_WRITE, only: IO_Field_write, IO_Header_write +USE MODE_IO_FILE, only: IO_File_close, IO_File_open +USE MODE_IO_MANAGE_STRUCT, only: IO_File_add2list, IO_Filelist_print USE MODE_ll USE MODE_MSG USE MODE_MODELN_HANDLER @@ -121,15 +121,15 @@ CALL INI_CST !* 1. Set default names and parallelized I/O ! -------------------------------------- ! -CALL INITIO_ll() +CALL IO_Init() ! -CALL IO_FILE_ADD2LIST(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') -CALL IO_FILE_OPEN_ll(TLUOUT0) +CALL IO_File_add2list(TLUOUT0,'OUTPUT_LISTING0','OUTPUTLISTING','WRITE') +CALL IO_File_open(TLUOUT0) TFILE_OUTPUTLISTING => TLUOUT0 ILUOUT0=TLUOUT0%NLU ! -CALL IO_FILE_ADD2LIST(TZNMLFILE,'PRE_ZOOM1.nam','NML','READ') -CALL IO_FILE_OPEN_ll(TZNMLFILE) +CALL IO_File_add2list(TZNMLFILE,'PRE_ZOOM1.nam','NML','READ') +CALL IO_File_open(TZNMLFILE) ILUNAM = TZNMLFILE%NLU ! CPGDFILE = 'PGDFILE' ! name of the input file @@ -139,7 +139,7 @@ CALL POSNAM(ILUNAM,'NAM_PGDFILE',GFOUND,ILUOUT0) IF (GFOUND) READ(UNIT=ILUNAM,NML=NAM_PGDFILE) CALL POSNAM(ILUNAM,'NAM_CONFIO',GFOUND,ILUOUT0) IF (GFOUND) READ(UNIT=ILUNAM,NML=NAM_CONFIO) -CALL SET_CONFIO_ll() +CALL IO_Config_set() ! !------------------------------------------------------------------------------ ! @@ -149,8 +149,8 @@ CALL SET_CONFIO_ll() !* 2.1 Open PGD file ! ------------- ! -CALL IO_FILE_ADD2LIST(TZPGDFILE,TRIM(CPGDFILE),'PGD','READ',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=2,KLFIVERB=5) -CALL IO_FILE_OPEN_ll(TZPGDFILE) +CALL IO_File_add2list(TZPGDFILE,TRIM(CPGDFILE),'PGD','READ',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=2,KLFIVERB=5) +CALL IO_File_open(TZPGDFILE) ! !* 2.2 Reading of initial grid ! ----------------------- @@ -160,15 +160,15 @@ CALL READ_HGRID(1,TZPGDFILE,YMY_NAME,YDAD_NAME,YSTORAGE_TYPE) ! NIMAX, NJMAX: size of input domain ALLOCATE(ZZS1 (NIMAX+2*JPHEXT,NJMAX+2*JPHEXT)) ALLOCATE(ZZSMT1(NIMAX+2*JPHEXT,NJMAX+2*JPHEXT)) -CALL IO_READ_FIELD(TZPGDFILE,'ZS',ZZS1) -CALL IO_READ_FIELD(TZPGDFILE,'ZSMT',ZZSMT1) +CALL IO_Field_read(TZPGDFILE,'ZS',ZZS1) +CALL IO_Field_read(TZPGDFILE,'ZSMT',ZZSMT1) ! !* 2.3 Define subdomain ! ---------------- ! CALL SET_SUBDOMAIN(TZNMLFILE,TZPGDFILE,IXOR_DAD,IYOR_DAD,IXOR,IYOR,IDXRATIO,IDYRATIO) ! -CALL IO_FILE_CLOSE_ll(TZNMLFILE) +CALL IO_File_close(TZNMLFILE) ! ! NIMAX, NJMAX: size of output domain ! @@ -195,16 +195,16 @@ IF ( (LEN_TRIM(YZOOMFILE) == 0) .OR. (ADJUSTL(YZOOMFILE) == ADJUSTL(CPGDFILE)) ) YZOOMFILE=ADJUSTL(ADJUSTR(CPGDFILE)//'.z'//ADJUSTL(YZOOMNBR)) END IF ! -CALL IO_FILE_ADD2LIST(TZZOOMFILE,TRIM(YZOOMFILE),'PGD','WRITE',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=1,KLFIVERB=5) +CALL IO_File_add2list(TZZOOMFILE,TRIM(YZOOMFILE),'PGD','WRITE',KLFINPRAR=INT(1,KIND=LFI_INT),KLFITYPE=1,KLFIVERB=5) !PW: TODO: points to dad file (if existing) ! TZZOOMFILE%TDADFILE => ! -CALL IO_FILE_OPEN_ll(TZZOOMFILE) +CALL IO_File_open(TZZOOMFILE) CALL WRITE_HGRID(1,TZZOOMFILE) ! !* 2.5 Preparation of surface physiographic fields ! ------------------------------------------- ! -CALL IO_READ_FIELD(TZPGDFILE,'SURF',CSURF) +CALL IO_Field_read(TZPGDFILE,'SURF',CSURF) ! ! IF (CSURF=='EXTE') THEN @@ -224,26 +224,26 @@ IF (CSURF=='EXTE') THEN ELSE ALLOCATE(ZZS2(NIMAX+2*JPHEXT,NJMAX+2*JPHEXT)) ZZS2(:,:)=ZZS1(IXOR:IXOR+NIMAX+2*JPHEXT-1,IYOR:IYOR+NJMAX+2*JPHEXT-1) - CALL IO_WRITE_FIELD(TZZOOMFILE,'ZS',ZZS2) + CALL IO_Field_write(TZZOOMFILE,'ZS',ZZS2) END IF ! ALLOCATE(ZZSMT2(NIMAX+2*JPHEXT,NJMAX+2*JPHEXT)) ZZSMT2(:,:)=ZZSMT1(IXOR:IXOR+NIMAX+2*JPHEXT-1,IYOR:IYOR+NJMAX+2*JPHEXT-1) -CALL IO_WRITE_FIELD(TZZOOMFILE,'ZSMT',ZZSMT2) +CALL IO_Field_write(TZZOOMFILE,'ZSMT',ZZSMT2) ! !* 2.7 Write configuration variables in the output file ! ------------------------------------------------ ! -CALL IO_WRITE_HEADER(TZZOOMFILE) -CALL IO_WRITE_FIELD(TZZOOMFILE,'DXRATIO',IDXRATIO) -CALL IO_WRITE_FIELD(TZZOOMFILE,'DYRATIO',IDYRATIO) -CALL IO_WRITE_FIELD(TZZOOMFILE,'XOR', IXOR_DAD) -CALL IO_WRITE_FIELD(TZZOOMFILE,'YOR', IYOR_DAD) -CALL IO_WRITE_FIELD(TZZOOMFILE,'L1D', L1D) -CALL IO_WRITE_FIELD(TZZOOMFILE,'L2D', L2D) -CALL IO_WRITE_FIELD(TZZOOMFILE,'PACK', LPACK) -CALL IO_WRITE_FIELD(TZZOOMFILE,'SURF', CSURF) -CALL IO_FILE_CLOSE_ll(TZZOOMFILE) +CALL IO_Header_write(TZZOOMFILE) +CALL IO_Field_write(TZZOOMFILE,'DXRATIO',IDXRATIO) +CALL IO_Field_write(TZZOOMFILE,'DYRATIO',IDYRATIO) +CALL IO_Field_write(TZZOOMFILE,'XOR', IXOR_DAD) +CALL IO_Field_write(TZZOOMFILE,'YOR', IYOR_DAD) +CALL IO_Field_write(TZZOOMFILE,'L1D', L1D) +CALL IO_Field_write(TZZOOMFILE,'L2D', L2D) +CALL IO_Field_write(TZZOOMFILE,'PACK', LPACK) +CALL IO_Field_write(TZZOOMFILE,'SURF', CSURF) +CALL IO_File_close(TZZOOMFILE) ! !* 2.8 Shift to new PGD file ! --------------------- @@ -255,16 +255,16 @@ CPGDFILE = YZOOMFILE !* 3. CLOSE PARALLELIZED I/O ! ---------------------- ! -CALL IO_FILE_CLOSE_ll(TZPGDFILE) +CALL IO_File_close(TZPGDFILE) ! -IF(NIO_VERB>=NVERB_DEBUG) CALL IO_FILE_PRINT_LIST() +IF(NIO_VERB>=NVERB_DEBUG) CALL IO_Filelist_print() ! WRITE(ILUOUT0,*) WRITE(ILUOUT0,*) '***************************' WRITE(ILUOUT0,*) '* ZOOM_PGD ends correctly *' WRITE(ILUOUT0,*) '***************************' ! -CALL IO_FILE_CLOSE_ll(TLUOUT0) +CALL IO_File_close(TLUOUT0) ! CALL END_PARA_ll(IINFO_ll) diff --git a/src/MNH/zsmt_pgd.f90 b/src/MNH/zsmt_pgd.f90 index fc93dfacc..4fa76acf1 100644 --- a/src/MNH/zsmt_pgd.f90 +++ b/src/MNH/zsmt_pgd.f90 @@ -2,6 +2,7 @@ !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. +!----------------------------------------------------------------- ! ###################### MODULE MODI_ZSMT_PGD ! ###################### @@ -10,7 +11,7 @@ INTERFACE ! SUBROUTINE ZSMT_PGD(TPFILE,KZSFILTER,KSLEVE,KLOCZSFILTER,OHSLOP,PHSLOP,PSMOOTH_ZS) ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY: TFILEDATA ! TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics INTEGER, INTENT(IN) :: KZSFILTER ! number of iterations for fine orography @@ -65,12 +66,12 @@ END MODULE MODI_ZSMT_PGD ! !* 0. DECLARATIONS ! -USE MODD_IO_ll, ONLY : TFILEDATA +USE MODD_IO, ONLY : TFILEDATA USE MODD_PARAMETERS, ONLY : JPHEXT, XUNDEF ! USE MODI_MNHGET_SURF_PARAM_n -USE MODE_FMREAD -USE MODE_FMWRIT +USE MODE_IO_FIELD_READ, only: IO_Field_read +USE MODE_IO_FIELD_WRITE, only: IO_Field_write USE MODE_ll , ONLY : GET_DIM_EXT_ll , ADD2DFIELD_ll , CLEANLIST_ll , UPDATE_HALO_ll USE MODD_ARGSLIST_ll, ONLY : LIST_ll USE MODI_SUM_ll @@ -149,12 +150,12 @@ ALLOCATE(ZSMOOTH_ZSINI(IIU,IJU)) ALLOCATE(ZXHAT(IIU)) ALLOCATE(ZYHAT(IJU)) ! -CALL IO_READ_FIELD(TPFILE,'XHAT',ZXHAT) -CALL IO_READ_FIELD(TPFILE,'YHAT',ZYHAT) +CALL IO_Field_read(TPFILE,'XHAT',ZXHAT) +CALL IO_Field_read(TPFILE,'YHAT',ZYHAT) !PW: bug/TODO: read a field in a file opened in WRITE mode -!There is a test in IO_READ_FIELD_BYFIELD_X2 to allow this if TPFILE%CMODE='LFICDF4' -CALL IO_READ_FIELD(TPFILE,'ZS',ZZS) +!There is a test in IO_Field_read_BYFIELD_X2 to allow this if TPFILE%CMODE='LFICDF4' +CALL IO_Field_read(TPFILE,'ZS',ZZS) ! DO JI=1,JPHEXT ZZS(JI,:) = ZZS(IIB,:) @@ -341,7 +342,7 @@ IF(OHSLOP) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSLOPEX) + CALL IO_Field_write(TPFILE,TZFIELD,ZSLOPEX) ! TZFIELD%CMNHNAME = 'ZSLOPEY' TZFIELD%CSTDNAME = '' @@ -353,7 +354,7 @@ IF(OHSLOP) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSLOPEY) + CALL IO_Field_write(TPFILE,TZFIELD,ZSLOPEY) ! TZFIELD%CMNHNAME = 'ZS_FILTR' TZFIELD%CSTDNAME = '' @@ -365,7 +366,7 @@ IF(OHSLOP) THEN TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 2 TZFIELD%LTIMEDEP = .FALSE. - CALL IO_WRITE_FIELD(TPFILE,TZFIELD,ZSMOOTH_ZSINI-ZFINE_ZS) + CALL IO_Field_write(TPFILE,TZFIELD,ZSMOOTH_ZSINI-ZFINE_ZS) END IF !------------------------------------------------------------------------------- ! @@ -373,8 +374,8 @@ END IF ! --------------------------------------- ! ! -CALL IO_WRITE_FIELD(TPFILE,'ZS', ZFINE_ZS) -CALL IO_WRITE_FIELD(TPFILE,'ZSMT',ZSLEVE_ZS) +CALL IO_Field_write(TPFILE,'ZS', ZFINE_ZS) +CALL IO_Field_write(TPFILE,'ZSMT',ZSLEVE_ZS) ! DEALLOCATE(ZZS) DEALLOCATE(ZFINE_ZS) -- GitLab