From 08472d04a39a711776190089b85c17b9cb84fb46 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Mon, 6 May 2024 10:16:40 +0200 Subject: [PATCH] Philippe 06/05/2024: outputs: do not write 2D coordinates for main domain if not needed --- src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 index d5ffe3f5f..fa5aabd08 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 @@ -1863,7 +1863,7 @@ if ( .not. lcartesian ) then call Gather_hor_coord2d( zxhat, zyhat, zlatf_glob, zlonf_glob ) end if - if ( tzfile%ctype /= 'MNHOUTPUT' .or. lout_bigbox_write ) then !Do not write coordinates of main domain if it is not written + if ( tzfile%ctype /= 'MNHOUTPUT' ) then !Do not write coordinates of main domain if it is not written ! Mass point call Write_hor_coord2d( zlatm_glob, zlonm_glob, 'latitude', 'longitude', iim_min, iim_max, ijm_min, ijm_max ) ! u point @@ -1872,6 +1872,22 @@ if ( .not. lcartesian ) then call Write_hor_coord2d( zlatv_glob, zlonv_glob, 'latitude_v','longitude_v', iiv_min, iiv_max, ijv_min, ijv_max ) ! xi vorticity point (=f point =uv point) call Write_hor_coord2d( zlatf_glob, zlonf_glob, 'latitude_f','longitude_f', iiu_min, iiu_max, ijv_min, ijv_max ) + else if ( tzfile%ctype == 'MNHOUTPUT' .and. lout_bigbox_write ) then !Do not write coordinates of main domain if it is not written + ! Write both coordinates (lat and lon even if only one of them is needed). + ! In practice, this simplification should not have real impact (most of the time, the 2 coordinates appear simultaneously) + + ! Mass point + if ( tout_boxes(0)%lcoord_latm .or. tout_boxes(0)%lcoord_latm ) & + call Write_hor_coord2d( zlatm_glob, zlonm_glob, 'latitude', 'longitude', iim_min, iim_max, ijm_min, ijm_max ) + ! u point + if ( tout_boxes(0)%lcoord_latu .or. tout_boxes(0)%lcoord_latu ) & + call Write_hor_coord2d( zlatu_glob, zlonu_glob, 'latitude_u','longitude_u', iiu_min, iiu_max, iju_min, iju_max ) + ! v point + if ( tout_boxes(0)%lcoord_latv .or. tout_boxes(0)%lcoord_latv ) & + call Write_hor_coord2d( zlatv_glob, zlonv_glob, 'latitude_v','longitude_v', iiv_min, iiv_max, ijv_min, ijv_max ) + ! xi vorticity point (=f point =uv point) + if ( tout_boxes(0)%lcoord_latf .or. tout_boxes(0)%lcoord_latf ) & + call Write_hor_coord2d( zlatf_glob, zlonf_glob, 'latitude_f','longitude_f', iiu_min, iiu_max, ijv_min, ijv_max ) end if Deallocate( zlat, zlon ) -- GitLab