From f5e5aec663cd11f6e2a179c3eb9f6aa9dd30cb49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Vi=C3=A9?= <benoit.vie@meteo.fr> Date: Thu, 22 Sep 2022 11:31:23 +0200 Subject: [PATCH] correct index of LIMA_COLD_NAMES for fields read & write --- src/MNH/ini_lb.f90 | 8 ++++---- src/MNH/read_field.f90 | 20 ++++++++++++++++---- src/MNH/spawn_field2.f90 | 20 ++++++++++++++++---- src/MNH/write_aircraft_balloon.f90 | 11 +++++++---- src/MNH/write_lbn.f90 | 4 ++-- src/MNH/write_profilern.f90 | 14 ++++++++++---- 6 files changed, 55 insertions(+), 22 deletions(-) diff --git a/src/MNH/ini_lb.f90 b/src/MNH/ini_lb.f90 index 054d5f50f..b07d03d4c 100644 --- a/src/MNH/ini_lb.f90 +++ b/src/MNH/ini_lb.f90 @@ -764,9 +764,9 @@ IF (CCLOUD=='LIMA' ) THEN .OR. ( TPINIFILE%NMNHVERSION(1) == 5 .AND. TPINIFILE%NMNHVERSION(2) < 5 ) & .OR. ( TPINIFILE%NMNHVERSION(1) == 5 .AND. TPINIFILE%NMNHVERSION(2) == 5 & .AND. TPINIFILE%NMNHVERSION(3) < 1 ) ) THEN - TZFIELD%CMNHNAME = 'LBX_'//TRIM(UPCASE(CLIMA_COLD_NAMES(2)))//INDICE + TZFIELD%CMNHNAME = 'LBX_'//TRIM(UPCASE(CLIMA_COLD_NAMES(5)))//INDICE ELSE - TZFIELD%CMNHNAME = 'LBX_'//TRIM(UPCASE(CLIMA_COLD_NAMES(2)))//INDICE + TZFIELD%CMNHNAME = 'LBX_'//TRIM(UPCASE(CLIMA_COLD_NAMES(5)))//INDICE END IF TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' @@ -790,9 +790,9 @@ IF (CCLOUD=='LIMA' ) THEN .OR. ( TPINIFILE%NMNHVERSION(1) == 5 .AND. TPINIFILE%NMNHVERSION(2) < 5 ) & .OR. ( TPINIFILE%NMNHVERSION(1) == 5 .AND. TPINIFILE%NMNHVERSION(2) == 5 & .AND. TPINIFILE%NMNHVERSION(3) < 1 ) ) THEN - TZFIELD%CMNHNAME = 'LBY_'//TRIM(UPCASE(CLIMA_COLD_NAMES(2)))//INDICE + TZFIELD%CMNHNAME = 'LBY_'//TRIM(UPCASE(CLIMA_COLD_NAMES(5)))//INDICE ELSE - TZFIELD%CMNHNAME = 'LBY_'//TRIM(UPCASE(CLIMA_COLD_NAMES(2)))//INDICE + TZFIELD%CMNHNAME = 'LBY_'//TRIM(UPCASE(CLIMA_COLD_NAMES(5)))//INDICE END IF TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' diff --git a/src/MNH/read_field.f90 b/src/MNH/read_field.f90 index d83171513..e5a8ff123 100644 --- a/src/MNH/read_field.f90 +++ b/src/MNH/read_field.f90 @@ -933,24 +933,36 @@ DO JSV = NSV_LIMA_BEG,NSV_LIMA_END IF (JSV .EQ. NSV_LIMA_NI) THEN TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(1))//'T' END IF +! Ns + IF (JSV .EQ. NSV_LIMA_NS) THEN + TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(2))//'T' + END IF +! Ng + IF (JSV .EQ. NSV_LIMA_NG) THEN + TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(3))//'T' + END IF +! Nh + IF (JSV .EQ. NSV_LIMA_NH) THEN + TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(4))//'T' + END IF ! N IFN free IF (JSV .GE. NSV_LIMA_IFN_FREE .AND. JSV .LT. NSV_LIMA_IFN_NUCL) THEN WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_FREE + 1) - TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(2))//INDICE//'T' + TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(5))//INDICE//'T' END IF ! N IFN nucl IF (JSV .GE. NSV_LIMA_IFN_NUCL .AND. JSV .LT. NSV_LIMA_IFN_NUCL + NMOD_IFN) THEN WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_NUCL + 1) - TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(3))//INDICE//'T' + TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(6))//INDICE//'T' END IF ! N IMM nucl IF (JSV .GE. NSV_LIMA_IMM_NUCL .AND. JSV .LT. NSV_LIMA_IMM_NUCL + NMOD_IMM) THEN WRITE(INDICE,'(I2.2)')(NINDICE_CCN_IMM(JSV - NSV_LIMA_IMM_NUCL + 1)) - TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(4))//INDICE//'T' + TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(7))//INDICE//'T' END IF ! Hom. freez. of CCN IF (JSV .EQ. NSV_LIMA_HOM_HAZE) THEN - TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(5))//'T' + TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(8))//'T' END IF ! ! Super saturation diff --git a/src/MNH/spawn_field2.f90 b/src/MNH/spawn_field2.f90 index 44aa7c3ce..881fd4e6b 100644 --- a/src/MNH/spawn_field2.f90 +++ b/src/MNH/spawn_field2.f90 @@ -916,24 +916,36 @@ IF (PRESENT(TPSONFILE)) THEN IF (JSV .EQ. NSV_LIMA_NI) THEN TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(1))//'T' END IF + ! Ns + IF (JSV .EQ. NSV_LIMA_NS) THEN + TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(2))//'T' + END IF + ! Ng + IF (JSV .EQ. NSV_LIMA_NG) THEN + TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(3))//'T' + END IF + ! Nh + IF (JSV .EQ. NSV_LIMA_NH) THEN + TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(4))//'T' + END IF ! N IFN free IF (JSV .GE. NSV_LIMA_IFN_FREE .AND. JSV .LT. NSV_LIMA_IFN_NUCL) THEN WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_FREE + 1) - TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(2))//INDICE//'T' + TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(5))//INDICE//'T' END IF ! N IFN nucl IF (JSV .GE. NSV_LIMA_IFN_NUCL .AND. JSV .LT. NSV_LIMA_IFN_NUCL + NMOD_IFN) THEN WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_NUCL + 1) - TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(3))//INDICE//'T' + TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(6))//INDICE//'T' END IF ! N IMM nucl IF (JSV .GE. NSV_LIMA_IMM_NUCL .AND. JSV .LT. NSV_LIMA_IMM_NUCL + NMOD_IMM) THEN WRITE(INDICE,'(I2.2)')(NINDICE_CCN_IMM(JSV - NSV_LIMA_IMM_NUCL + 1)) - TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(4))//INDICE//'T' + TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(7))//INDICE//'T' END IF ! Hom. freez. of CCN IF (JSV .EQ. NSV_LIMA_HOM_HAZE) THEN - TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(5))//'T' + TZFIELD%CMNHNAME = TRIM(CLIMA_COLD_NAMES(8))//'T' END IF ! Supersaturation IF (JSV .EQ. NSV_LIMA_SPRO) THEN diff --git a/src/MNH/write_aircraft_balloon.f90 b/src/MNH/write_aircraft_balloon.f90 index e132daa83..f9295b656 100644 --- a/src/MNH/write_aircraft_balloon.f90 +++ b/src/MNH/write_aircraft_balloon.f90 @@ -452,19 +452,22 @@ IF (SIZE(TPFLYER%SV,2)>=1) THEN YUNIT (JPROC) = 'kg kg-1' ENDIF IF (JSV==NSV_LIMA_NI) YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(1))//'T' + IF (JSV==NSV_LIMA_NS) YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(2))//'T' + IF (JSV==NSV_LIMA_NG) YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(3))//'T' + IF (JSV==NSV_LIMA_NH) YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(4))//'T' IF (JSV .GE. NSV_LIMA_IFN_FREE .AND. JSV .LT. NSV_LIMA_IFN_NUCL) THEN WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_FREE + 1) - YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(2))//INDICE//'T' + YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(5))//INDICE//'T' ENDIF IF (JSV .GE. NSV_LIMA_IFN_NUCL .AND. JSV .LT. NSV_LIMA_IFN_NUCL + NMOD_IFN) THEN WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_NUCL + 1) - YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(3))//INDICE//'T' + YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(6))//INDICE//'T' ENDIF IF (JSV .GE. NSV_LIMA_IMM_NUCL .AND. JSV .LT. NSV_LIMA_IMM_NUCL + NMOD_IMM) THEN WRITE(INDICE,'(I2.2)')(NINDICE_CCN_IMM(JSV - NSV_LIMA_IMM_NUCL + 1)) - YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(4))//INDICE//'T' + YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(7))//INDICE//'T' ENDIF - IF (JSV .EQ. NSV_LIMA_HOM_HAZE) YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(5))//'T' + IF (JSV .EQ. NSV_LIMA_HOM_HAZE) YTITLE(JPROC)=TRIM(CLIMA_COLD_NAMES(8))//'T' IF (JSV .EQ. NSV_LIMA_SPRO) YTITLE(JPROC)=TRIM(CLIMA_WARM_NAMES(5))//'T' ZWORK6 (1,1,1,:,1,JPROC) = TPFLYER%SV(:,JSV) END DO diff --git a/src/MNH/write_lbn.f90 b/src/MNH/write_lbn.f90 index b06f5bc8e..3e00b993e 100644 --- a/src/MNH/write_lbn.f90 +++ b/src/MNH/write_lbn.f90 @@ -400,7 +400,7 @@ IF (NSV >=1) THEN DO JSV = NSV_LIMA_IFN_FREE,NSV_LIMA_IFN_FREE+NMOD_IFN-1 WRITE(INDICE,'(I2.2)')(JSV - NSV_LIMA_IFN_FREE + 1) IF(NSIZELBXSV_ll /= 0) THEN - TZFIELD%CMNHNAME = 'LBX_'//TRIM(UPCASE(CLIMA_COLD_NAMES(2)))//INDICE + TZFIELD%CMNHNAME = 'LBX_'//TRIM(UPCASE(CLIMA_COLD_NAMES(5)))//INDICE TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBX' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV @@ -408,7 +408,7 @@ IF (NSV >=1) THEN END IF ! IF(NSIZELBYSV_ll /= 0) THEN - TZFIELD%CMNHNAME = 'LBY_'//TRIM(UPCASE(CLIMA_COLD_NAMES(2)))//INDICE + TZFIELD%CMNHNAME = 'LBY_'//TRIM(UPCASE(CLIMA_COLD_NAMES(5)))//INDICE TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME) TZFIELD%CLBTYPE = 'LBY' WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV diff --git a/src/MNH/write_profilern.f90 b/src/MNH/write_profilern.f90 index fcef2068c..6b26649a2 100644 --- a/src/MNH/write_profilern.f90 +++ b/src/MNH/write_profilern.f90 @@ -231,17 +231,23 @@ if ( Size( tprofiler%sv, 4 ) > 0 ) then yunits = 'kg kg-1' else if ( jsv == nsv_lima_ni ) then yname = Trim( clima_cold_names(1) ) // 'T' + else if ( jsv == nsv_lima_ns ) then + yname = Trim( clima_cold_names(2) ) // 'T' + else if ( jsv == nsv_lima_ng ) then + yname = Trim( clima_cold_names(3) ) // 'T' + else if ( jsv == nsv_lima_nh ) then + yname = Trim( clima_cold_names(4) ) // 'T' else if ( jsv >= nsv_lima_ifn_free .and. jsv < nsv_lima_ifn_free + nmod_ifn ) then Write( yidx, '( i2.2 )' ) jsv - nsv_lima_ifn_free + 1 - yname = Trim( clima_cold_names(2) ) // yidx // 'T' + yname = Trim( clima_cold_names(5) ) // yidx // 'T' else if ( jsv >= nsv_lima_ifn_nucl .and. jsv < nsv_lima_ifn_nucl + nmod_ifn ) then Write( yidx, '( i2.2 )' ) jsv - nsv_lima_ifn_nucl + 1 - yname = Trim( clima_cold_names(3) ) // yidx // 'T' + yname = Trim( clima_cold_names(6) ) // yidx // 'T' else if ( jsv >= nsv_lima_imm_nucl .and. jsv < nsv_lima_imm_nucl + nmod_imm ) then write( yidx, '( i2.2 )' ) nindice_ccn_imm(jsv - nsv_lima_imm_nucl + 1) - yname = Trim( clima_cold_names(4) ) // yidx // 'T' + yname = Trim( clima_cold_names(7) ) // yidx // 'T' else if ( jsv == nsv_lima_hom_haze ) then - yname = Trim( clima_cold_names(5) ) // 'T' + yname = Trim( clima_cold_names(8) ) // 'T' else if ( jsv == nsv_lima_spro ) then yname = Trim( clima_warm_names(5) ) // 'T' end if -- GitLab