From a1e246df7df5bcb3b884a5a326894a7b7afa1df4 Mon Sep 17 00:00:00 2001 From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr> Date: Fri, 3 Feb 2023 10:24:09 +0100 Subject: [PATCH] Philippe 03/02/2023: bugfix: correct ndimlist --- src/MNH/write_lfifm1_for_diag.f90 | 50 ++++++++----- src/MNH/write_lfin.f90 | 112 +++++++++++++++++++++--------- 2 files changed, 111 insertions(+), 51 deletions(-) diff --git a/src/MNH/write_lfifm1_for_diag.f90 b/src/MNH/write_lfifm1_for_diag.f90 index 3b14e62c4..a6099e6a0 100644 --- a/src/MNH/write_lfifm1_for_diag.f90 +++ b/src/MNH/write_lfifm1_for_diag.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1994-2022 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1994-2023 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. @@ -323,7 +323,7 @@ INTEGER :: ILUOUT0 ! Logical unit number for output-listing CHARACTER(LEN=2) :: INDICE CHARACTER(LEN=100) :: YMSG INTEGER :: IID -TYPE(TFIELDMETADATA) :: TZFIELD +TYPE(TFIELDMETADATA) :: TZFIELD, TZFIELD2D TYPE(TFIELDMETADATA), DIMENSION(2) :: TZFIELD2 ! ! LIMA LIDAR @@ -1513,6 +1513,15 @@ IF (LDUST) THEN NDIMS = 3, & LTIMEDEP = .TRUE. ) + TZFIELD2D = TFIELDMETADATA( & + CMNHNAME = 'generic for dust modes', & + CSTDNAME = '', & + CDIR = 'XY', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) + DO JJ=1,NMODE_DST WRITE(TZFIELD%CMNHNAME,'(A6,I1)')'DSTRGA',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) @@ -1553,6 +1562,7 @@ IF (LDUST) THEN ZWORK31(:,:,JK) = ZWORK31(:,:,JK) *(XZZ(:,:,JK+1)-XZZ(:,:,JK)) & *1.d-6 ! Convert to ug/m2-->g/m2 in each layer END DO + ! DO JK=IKB,IKE DO JT=IJB,IJE DO JI=IIB,IIE @@ -1560,14 +1570,11 @@ IF (LDUST) THEN ENDDO ENDDO ENDDO - WRITE(TZFIELD%CMNHNAME,'(A7,I1)')'DSTBRDN',JJ - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'g m-2' - WRITE(TZFIELD%CCOMMENT,'(A6,I1)')'BURDEN',JJ - TZFIELD%NDIMS = 2 - CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) - ! - TZFIELD%NDIMS = 3 + WRITE(TZFIELD2D%CMNHNAME,'(A7,I1)')'DSTBRDN',JJ + TZFIELD2D%CLONGNAME = TRIM(TZFIELD2D%CMNHNAME) + TZFIELD2D%CUNITS = 'g m-2' + WRITE(TZFIELD2D%CCOMMENT,'(A6,I1)')'BURDEN',JJ + CALL IO_Field_write(TPFILE,TZFIELD2D,ZWORK21) ENDDO END IF IF (LDUST.AND.LDEPOS_DST(IMI)) THEN @@ -1695,6 +1702,15 @@ IF (LSALT) THEN NDIMS = 3, & LTIMEDEP = .TRUE. ) ! + TZFIELD2D = TFIELDMETADATA( & + CMNHNAME = 'generic for salt modes', & + CSTDNAME = '', & + CDIR = 'XY', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) + ! DO JJ=1,NMODE_SLT WRITE(TZFIELD%CMNHNAME,'(A6,I1)')'SLTRGA',JJ TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) @@ -1735,6 +1751,7 @@ IF (LSALT) THEN ZWORK31(:,:,JK) = ZWORK31(:,:,JK) *(XZZ(:,:,JK+1)-XZZ(:,:,JK)) & *1.d-6 ! Convert to ug/m2-->g/m2 in each layer END DO + ! DO JK=IKB,IKE DO JT=IJB,IJE DO JI=IIB,IIE @@ -1742,14 +1759,11 @@ IF (LSALT) THEN ENDDO ENDDO ENDDO - WRITE(TZFIELD%CMNHNAME,'(A7,I1)')'SLTBRDN',JJ - TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) - TZFIELD%CUNITS = 'g m-2' - WRITE(TZFIELD%CCOMMENT,'(A6,I1)')'BURDEN',JJ - TZFIELD%NDIMS = 2 - CALL IO_Field_write(TPFILE,TZFIELD,ZWORK21) - ! - TZFIELD%NDIMS = 3 + WRITE(TZFIELD2D%CMNHNAME,'(A7,I1)')'SLTBRDN',JJ + TZFIELD2D%CLONGNAME = TRIM(TZFIELD2D%CMNHNAME) + TZFIELD2D%CUNITS = 'g m-2' + WRITE(TZFIELD2D%CCOMMENT,'(A6,I1)')'BURDEN',JJ + CALL IO_Field_write(TPFILE,TZFIELD2D,ZWORK21) ENDDO END IF IF (LSALT.AND.LDEPOS_SLT(IMI)) THEN diff --git a/src/MNH/write_lfin.f90 b/src/MNH/write_lfin.f90 index a2847e0dc..f20b46cef 100644 --- a/src/MNH/write_lfin.f90 +++ b/src/MNH/write_lfin.f90 @@ -698,10 +698,9 @@ IF (MEAN_COUNT /= 0) THEN CSTDNAME = '', & CDIR = 'XY', & NTYPE = TYPEREAL, & + NGRID = 2, & NDIMS = 3, & LTIMEDEP = .TRUE. ) -! - TZFIELD%NGRID = 2 ! TZFIELD%CMNHNAME = 'UMME' TZFIELD%CLONGNAME = 'UMME' @@ -754,7 +753,15 @@ IF (MEAN_COUNT /= 0) THEN CALL IO_Field_write(TPFILE,TZFIELD,ZWORK3D) ! END IF - TZFIELD%NGRID = 3 +! + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'generic for mean_count variables', & !Temporary name to ease identification + CSTDNAME = '', & + CDIR = 'XY', & + NTYPE = TYPEREAL, & + NGRID = 3, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! TZFIELD%CMNHNAME = 'VMME' TZFIELD%CLONGNAME = 'VMME' @@ -776,7 +783,14 @@ IF (MEAN_COUNT /= 0) THEN TZFIELD%CCOMMENT = 'X_Y_Z_V component of max wind' CALL IO_Field_write(TPFILE,TZFIELD,XVM_MAX) ! - TZFIELD%NGRID = 4 + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'generic for mean_count variables', & !Temporary name to ease identification + CSTDNAME = '', & + CDIR = 'XY', & + NTYPE = TYPEREAL, & + NGRID = 4, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! TZFIELD%CMNHNAME = 'WMME' TZFIELD%CLONGNAME = 'WMME' @@ -798,7 +812,14 @@ IF (MEAN_COUNT /= 0) THEN TZFIELD%CCOMMENT = 'X_Y_Z_vertical max wind' CALL IO_Field_write(TPFILE,TZFIELD,XWM_MAX) ! - TZFIELD%NGRID = 1 + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'generic for mean_count variables', & !Temporary name to ease identification + CSTDNAME = '', & + CDIR = 'XY', & + NTYPE = TYPEREAL, & + NGRID = 1, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! TZFIELD%CMNHNAME = 'CMME' TZFIELD%CLONGNAME = 'CMME' @@ -1048,6 +1069,8 @@ IF (NSV >= 1 ) THEN TZFIELD%CUNITS = 'mol m-2' TZFIELD%CCOMMENT = 'X_Y_Accumulated moles of aqueous species at the surface' TZFIELD%NDIMS = 2 + TZFIELD%NDIMLIST(3) = TZFIELD%NDIMLIST(4) ! Necessary if LTIMEDEP=.TRUE. + TZFIELD%NDIMLIST(4:) = NMNHDIM_UNUSED ZWORK2D(:,:) = XACPRAQ(:,:,JSV-NSV_CHACBEG-NSV_CHAC/2+1) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK2D) END DO @@ -1066,16 +1089,17 @@ IF (NSV >= 1 ) THEN WHERE ((ZWORK2D(:,:) < 1E-1).AND.(ZWORK2D(:,:) > 1E-14)) ZWORK2D(:,:) = -LOG10(ZWORK2D(:,:)) ! mean pH of surface water END WHERE - TZFIELD%CMNHNAME = 'MEANPHR' - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'MEANPHR' - TZFIELD%CUNITS = '1' - TZFIELD%CDIR = 'XY' - TZFIELD%CCOMMENT = 'X_Y_MEAN_PH' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 2 - TZFIELD%LTIMEDEP = .TRUE. + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'MEANPHR', & + CSTDNAME = '', & + CLONGNAME = 'MEANPHR', & + CUNITS = '1', & + CDIR = 'XY', & + CCOMMENT = 'X_Y_MEAN_PH', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 2, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,ZWORK2D) ENDIF ENDIF @@ -2013,9 +2037,8 @@ SELECT CASE(CMETH_EOL) CDIR = '--', & NGRID = 1, & NTYPE = TYPEREAL, & + NDIMS = 1, & LTIMEDEP = .TRUE. ) -! - TZFIELD%NDIMS = 1 ! TZFIELD%CMNHNAME = 'THRUT' TZFIELD%CLONGNAME = 'THRUSTT_EOL' @@ -2035,7 +2058,14 @@ SELECT CASE(CMETH_EOL) TZFIELD%CCOMMENT = 'RID instantaneous power (W) of wind turbines' CALL IO_Field_write(TPFILE,TZFIELD,XPOWT) ! - TZFIELD%NDIMS = 3 + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'generic for ALM variables', & !Temporary name to ease identification + CSTDNAME = '', & + CDIR = '--', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) ! TZFIELD%CMNHNAME = 'ELT_RAD' TZFIELD%CLONGNAME = 'ELT_RAD' @@ -2061,7 +2091,14 @@ SELECT CASE(CMETH_EOL) TZFIELD%CCOMMENT = 'RID_BID_EID instantaneous drag (N) in relative frame' CALL IO_Field_write(TPFILE,TZFIELD,XFDRAG_GLB) ! - TZFIELD%NDIMS = 4 + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'generic for ALM variables', & !Temporary name to ease identification + CSTDNAME = '', & + CDIR = '--', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 4, & + LTIMEDEP = .TRUE. ) ! TZFIELD%CMNHNAME = 'FAERO_RE' TZFIELD%CLONGNAME = 'AERODYNAMIC FORCE RE' @@ -2083,9 +2120,8 @@ SELECT CASE(CMETH_EOL) CDIR = '--', & NGRID = 1, & NTYPE = TYPEREAL, & + NDIMS = 1, & LTIMEDEP = .TRUE. ) -! - TZFIELD%NDIMS = 1 ! TZFIELD%CMNHNAME = 'THRUMME' TZFIELD%CLONGNAME = 'MEAN_THRUST_EOL' @@ -2105,20 +2141,30 @@ SELECT CASE(CMETH_EOL) TZFIELD%CCOMMENT = 'RID mean power of the wind turbines (W)' CALL IO_Field_write(TPFILE,TZFIELD,XPOW_SUM/MEAN_COUNT) ! - TZFIELD%NDIMS = 3 -! - TZFIELD%CMNHNAME = 'AOAMME' - TZFIELD%CLONGNAME = 'MEAN_ANGLE_OF_ATTACK' - TZFIELD%CUNITS = 'rad' - TZFIELD%CCOMMENT = 'RID_BID_EID mean angle of attack (rad)' + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'AOAMME', & + CSTDNAME = '', & + CLONGNAME = 'MEAN_ANGLE_OF_ATTACK', & + CUNITS = 'rad', & + CDIR = '--', & + CCOMMENT = 'RID_BID_EID mean angle of attack (rad)', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 3, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,XAOA_SUM/MEAN_COUNT) ! - TZFIELD%NDIMS = 4 -! - TZFIELD%CMNHNAME = 'FAEROMME_RE' - TZFIELD%CLONGNAME = 'MEAN_AERODYNAMIC_FORCE_RE' - TZFIELD%CUNITS = 'N' - TZFIELD%CCOMMENT = 'RID_BID_EID_XYZ mean forces (N) in RE' + TZFIELD = TFIELDMETADATA( & + CMNHNAME = 'FAEROMME_RE', & + CSTDNAME = '', & + CLONGNAME = 'MEAN_AERODYNAMIC_FORCE_RE', & + CUNITS = 'N', & + CDIR = '--', & + CCOMMENT = 'RID_BID_EID_XYZ mean forces (N) in RE', & + NGRID = 1, & + NTYPE = TYPEREAL, & + NDIMS = 4, & + LTIMEDEP = .TRUE. ) CALL IO_Field_write(TPFILE,TZFIELD,XFAERO_RE_SUM/MEAN_COUNT) ! END IF -- GitLab