diff --git a/src/MNH/write_lbn.f90 b/src/MNH/write_lbn.f90 index 66e791e5fd33e3fba791bc80843abadba7c56be4..3f2304d869ea5e5133dceb252a4504919fc4a40d 100644 --- a/src/MNH/write_lbn.f90 +++ b/src/MNH/write_lbn.f90 @@ -131,7 +131,7 @@ TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File characteristics ! !* 0.2 Declarations of local variables ! -INTEGER :: ILUOUT ! logical unit +INTEGER :: ILUOUT ! logical unit INTEGER :: IRESP ! IRESP : return-code for fmwrit INTEGER :: IGRID ! IGRID : grid indicator CHARACTER (LEN=2) :: YDIR ! Type of the data field @@ -149,12 +149,12 @@ CHARACTER (LEN=1), DIMENSION (7) :: YC ! array with the prefix of the moist v LOGICAL, DIMENSION (7) :: GUSER ! array with the use indicator of the moist variables REAL, DIMENSION(SIZE(XLBXSVM, 1), SIZE(XLBXSVM,2), SIZE(XLBXSVM,3)) :: ZRHODREFX REAL, DIMENSION(SIZE(XLBYSVM, 1), SIZE(XLBYSVM,2), SIZE(XLBYSVM,3)) :: ZRHODREFY -INTEGER :: JK +INTEGER :: JK ! Integers, counters for dust modes -INTEGER :: JMOM, IMOMENTS, JMODE, ISV_NAME_IDX -INTEGER :: IMI ! Current model index -CHARACTER(LEN=2) :: INDICE ! to index CCN and IFN fields of LIMA scheme -TYPE(TFIELDDATA) :: TZFIELD +INTEGER :: JMOM, IMOMENTS, JMODE, ISV_NAME_IDX +INTEGER :: IMI ! Current model index +CHARACTER(LEN=2) :: INDICE ! to index CCN and IFN fields of LIMA scheme +TYPE(TFIELDDATA) :: TZFIELD !------------------------------------------------------------------------------- ! !* 1. SOME INITIALIZATIONS @@ -210,30 +210,31 @@ IF (NRR >=1) THEN GHORELAX_R = LHORELAX_RV .OR. LHORELAX_RC .OR. LHORELAX_RR .OR. & LHORELAX_RI .OR. LHORELAX_RS .OR. LHORELAX_RG .OR. & LHORELAX_RH -! + ! TZFIELD%CMNHNAME = 'HORELAX_R' TZFIELD%CSTDNAME = '' TZFIELD%CLONGNAME = 'MesoNH: HORELAX_R' TZFIELD%CUNITS = '' TZFIELD%CDIR = '--' TZFIELD%CCOMMENT = 'Switch to activate the HOrizontal RELAXation' + TZFIELD%CLBTYPE = 'NONE' TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPELOG TZFIELD%NDIMS = 0 -! + ! CALL IO_WRITE_FIELD(TPFILE,TZFIELD,CLUOUT,IRESP,GHORELAX_R) -! + ! GUSER(:)=(/LUSERV,LUSERC,LUSERR,LUSERI,LUSERS,LUSERG,LUSERH/) YC(:)=(/"V","C","R","I","S","G","H"/) IRR=0 -! + ! TZFIELD%CSTDNAME = '' TZFIELD%CUNITS = 'kg kg-1' - TZFIELD%CDIR = '--' + TZFIELD%CDIR = 'XY' TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 -! Loop on moist variables + ! Loop on moist variables DO JRR=1,7 IF (GUSER(JRR)) THEN IRR=IRR+1 @@ -244,7 +245,7 @@ IF (NRR >=1) THEN TZFIELD%CCOMMENT = '2_Y_Z_LBXR'//YC(JRR)//'M' CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,CLUOUT,NSIZELBXR_ll,IRESP,XLBXRM(:,:,:,IRR)) END IF -! + ! IF(NSIZELBYR_ll /= 0) THEN TZFIELD%CMNHNAME = 'LBYR'//YC(JRR)//'M' TZFIELD%CLONGNAME = 'MesoNH: LBYR'//YC(JRR)//'M' @@ -256,12 +257,10 @@ IF (NRR >=1) THEN END DO END IF ! -TZFIELD%CLBTYPE = 'NONE' !Just to be careful ! !* 7 LB-SV ! ----- ! - IF (NSV >=1) THEN GHORELAX_SV=ANY ( LHORELAX_SV ) ! @@ -271,6 +270,7 @@ IF (NSV >=1) THEN TZFIELD%CUNITS = '' TZFIELD%CDIR = '--' TZFIELD%CCOMMENT = '' + TZFIELD%CLBTYPE = 'NONE' TZFIELD%NGRID = 0 TZFIELD%NTYPE = TYPELOG TZFIELD%NDIMS = 0 @@ -279,81 +279,93 @@ IF (NSV >=1) THEN IGRID=1 IRIMX =(NSIZELBXSV_ll-2*JPHEXT)/2 IRIMY =(NSIZELBYSV_ll-2*JPHEXT)/2 - DO JSV = 1,NSV_USER - IF(NSIZELBXSV_ll /= 0) THEN - WRITE(TZFIELD%CMNHNAME,'(A6,I3.3)')'LBXSVM',JSV - TZFIELD%CSTDNAME = '' - TZFIELD%CLONGNAME = 'MesoNH: '//TRIM(TZFIELD%CMNHNAME) - TZFIELD%CLBTYPE = 'LBX' - TZFIELD%CUNITS = 'kg kg-1' - TZFIELD%CDIR = '--' - WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3,A8)')'2_Y_Z_','LBXSVM',JSV - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 - CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,CLUOUT,NSIZELBXSV_ll,IRESP,XLBXSVM(:,:,:,JSV)) - END IF -! - IF(NSIZELBYSV_ll /= 0) THEN - WRITE(YRECFM,'(A6,I3.3)')'LBYSVM',JSV - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'X_2_Z_','LBYSVM',JSV,' (KG/KG)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBY",XLBYSVM(:,:,:,JSV),IRIMY,NSIZELBYSV_ll,& - & IGRID,ILENCH,YCOMMENT,IRESP) - END IF - END DO + IF (NSV_USER>0) THEN + TZFIELD%CSTDNAME = '' + TZFIELD%CUNITS = 'kg kg-1' + TZFIELD%CDIR = 'XY' + TZFIELD%NGRID = 1 + TZFIELD%NTYPE = TYPEREAL + TZFIELD%NDIMS = 3 + ! + DO JSV = 1,NSV_USER + IF(NSIZELBXSV_ll /= 0) THEN + WRITE(TZFIELD%CMNHNAME,'(A6,I3.3)')'LBXSVM',JSV + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBXSV_ll,IRESP,XLBXSVM(:,:,:,JSV)) + END IF + ! + IF(NSIZELBYSV_ll /= 0) THEN + WRITE(TZFIELD%CMNHNAME,'(A6,I3.3)')'LBYSVM',JSV + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBYSV_ll,IRESP,XLBYSVM(:,:,:,JSV)) + END IF + END DO + END IF ! IF (NSV_C2R2END>=NSV_C2R2BEG) THEN TZFIELD%CSTDNAME = '' TZFIELD%CUNITS = 'm-3' - TZFIELD%CDIR = '--' + TZFIELD%CDIR = 'XY' TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 ! DO JSV = NSV_C2R2BEG,NSV_C2R2END IF(NSIZELBXSV_ll /= 0) THEN - TZFIELD%CLBTYPE = 'LBX' TZFIELD%CMNHNAME = 'LBX_'//TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1)) TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBXSV_ll,IRESP,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN - TZFIELD%CLBTYPE = 'LBY' TZFIELD%CMNHNAME = 'LBY_'//TRIM(C2R2NAMES(JSV-NSV_C2R2BEG+1)) TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBYSV_ll,IRESP,XLBYSVM(:,:,:,JSV)) END IF END DO END IF ! - DO JSV = NSV_C1R3BEG,NSV_C1R3END - IF(NSIZELBXSV_ll /= 0) THEN - YRECFM='LBX_'//TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1)) - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'2_Y_Z_','LBXSVM',JSV,' (/M3)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBX",XLBXSVM(:,:,:,JSV),IRIMX,NSIZELBXSV_ll,& - & IGRID,ILENCH,YCOMMENT,IRESP) - END IF -! - IF(NSIZELBYSV_ll /= 0) THEN - YRECFM='LBY_'//TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1)) - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'X_2_Z_','LBYSVM',JSV,' (/M3)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBY",XLBYSVM(:,:,:,JSV),IRIMY,NSIZELBYSV_ll,& - & IGRID,ILENCH,YCOMMENT,IRESP) - END IF - END DO + IF (NSV_C1R3END>=NSV_C1R3BEG) THEN + TZFIELD%CSTDNAME = '' + TZFIELD%CUNITS = 'm-3' + TZFIELD%CDIR = 'XY' + TZFIELD%NGRID = 1 + TZFIELD%NTYPE = TYPEREAL + TZFIELD%NDIMS = 3 + ! + DO JSV = NSV_C1R3BEG,NSV_C1R3END + IF(NSIZELBXSV_ll /= 0) THEN + TZFIELD%CMNHNAME = 'LBX_'//TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1)) + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBXSV_ll,IRESP,XLBXSVM(:,:,:,JSV)) + END IF + ! + IF(NSIZELBYSV_ll /= 0) THEN + TZFIELD%CMNHNAME = 'LBY_'//TRIM(C1R3NAMES(JSV-NSV_C1R3BEG+1)) + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBYSV_ll,IRESP,XLBYSVM(:,:,:,JSV)) + END IF + END DO + END IF ! ! LIMA: CCN and IFN scalar variables ! IF (CCLOUD=='LIMA' ) THEN TZFIELD%CSTDNAME = '' TZFIELD%CUNITS = 'kg-1' - TZFIELD%CDIR = '--' + TZFIELD%CDIR = 'XY' TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 @@ -367,7 +379,7 @@ IF (NSV >=1) THEN WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,CLUOUT,NSIZELBXSV_ll,IRESP,XLBXSVM(:,:,:,JSV)) END IF -! + ! IF(NSIZELBYSV_ll /= 0) THEN TZFIELD%CMNHNAME = 'LBY_'//TRIM(UPCASE(CLIMA_WARM_NAMES(3))//INDICE) TZFIELD%CLONGNAME = 'MesoNH: '//TRIM(TZFIELD%CMNHNAME) @@ -376,7 +388,7 @@ IF (NSV >=1) THEN CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,CLUOUT,NSIZELBYSV_ll,IRESP,XLBYSVM(:,:,:,JSV)) END IF END DO -! + ! 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 @@ -386,7 +398,7 @@ IF (NSV >=1) THEN WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,CLUOUT,NSIZELBXSV_ll,IRESP,XLBXSVM(:,:,:,JSV)) END IF -! + ! IF(NSIZELBYSV_ll /= 0) THEN TZFIELD%CMNHNAME = 'LBY_'//TRIM(UPCASE(CLIMA_COLD_NAMES(2))//INDICE) TZFIELD%CLONGNAME = 'MesoNH: '//TRIM(TZFIELD%CMNHNAME) @@ -402,7 +414,7 @@ IF (NSV >=1) THEN IF (NSV_ELECEND>=NSV_ELECBEG) THEN TZFIELD%CSTDNAME = '' TZFIELD%CUNITS = 'kg kg-1' - TZFIELD%CDIR = '--' + TZFIELD%CDIR = 'XY' TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 @@ -415,7 +427,7 @@ IF (NSV >=1) THEN WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,CLUOUT,NSIZELBXSV_ll,IRESP,XLBXSVM(:,:,:,JSV)) END IF -! + ! IF(NSIZELBYSV_ll /= 0) THEN TZFIELD%CMNHNAME = 'LBY_'//TRIM(CELECNAMES(JSV-NSV_ELECBEG+1)) TZFIELD%CLONGNAME = 'MesoNH: '//TRIM(TZFIELD%CMNHNAME) @@ -452,51 +464,52 @@ IF (NSV >=1) THEN CALL CH_AER_REALLFI_n(XLBYSVM(:,:,:,NSV_AERBEG:NSV_AEREND),XLBYSVM(:,:,:,NSV_CHEMBEG-1+JP_CH_CO),ZRHODREFY) END IF ! + TZFIELD%CSTDNAME = '' + TZFIELD%CUNITS = 'kg kg-1' + TZFIELD%CDIR = 'XY' + TZFIELD%NGRID = 1 + TZFIELD%NTYPE = TYPEREAL + TZFIELD%NDIMS = 3 + ! DO JSV = NSV_AERBEG,NSV_AEREND IF(NSIZELBXSV_ll /= 0) THEN - YRECFM = 'LBX_'//TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1))) - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'2_Y_Z_','LBXSVM',JSV,' (KG/KG)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBX",XLBXSVM(:,:,:,JSV),IRIMX,NSIZELBXSV_ll,& - & IGRID,ILENCH,YCOMMENT,IRESP) + TZFIELD%CMNHNAME = 'LBX_'//TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1))) + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBXSV_ll,IRESP,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN - YRECFM = 'LBY_'//TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1))) - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'X_2_Z_','LBYSVM',JSV,' (KG/KG)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBY",XLBYSVM(:,:,:,JSV),IRIMY,NSIZELBYSV_ll,& - & IGRID,ILENCH,YCOMMENT,IRESP) + TZFIELD%CMNHNAME = 'LBY_'//TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1))) + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBYSV_ll,IRESP,XLBYSVM(:,:,:,JSV)) END IF END DO - IF (LDEPOS_AER(IMI)) THEN + ! + IF (LDEPOS_AER(IMI)) THEN DO JSV = NSV_AERDEPBEG,NSV_AERDEPEND IF(NSIZELBXSV_ll /= 0) THEN - YRECFM = 'LBX_'//TRIM(CDEAERNAMES(JSV-NSV_AERDEPBEG+1)) - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'2_Y_Z_','LBXSVM',JSV,' (KG/KG)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBX",XLBXSVM(:,:,:,JSV),IRIMX,NSIZELBXSV_ll,& - & IGRID,ILENCH,YCOMMENT,IRESP) + TZFIELD%CMNHNAME = 'LBX_'//TRIM(CDEAERNAMES(JSV-NSV_AERDEPBEG+1)) + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBXSV_ll,IRESP,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN - YRECFM = 'LBY_'//TRIM(CDEAERNAMES(JSV-NSV_AERDEPBEG+1)) - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'X_2_Z_','LBYSVM',JSV,' (KG/KG)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBY",XLBYSVM(:,:,:,JSV),IRIMY,NSIZELBYSV_ll,& - & IGRID,ILENCH,YCOMMENT,IRESP) + TZFIELD%CMNHNAME = 'LBY_'//TRIM(CDEAERNAMES(JSV-NSV_AERDEPBEG+1)) + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBYSV_ll,IRESP,XLBYSVM(:,:,:,JSV)) END IF END DO - END IF - + END IF END IF ! - TZFIELD%CSTDNAME = '' - TZFIELD%CUNITS = 'kg kg-1' - TZFIELD%CDIR = '--' - TZFIELD%NGRID = 1 - TZFIELD%NTYPE = TYPEREAL - TZFIELD%NDIMS = 3 DO JSV = NSV_CHEMBEG,NSV_CHEMEND IF(NSIZELBXSV_ll /= 0) THEN TZFIELD%CMNHNAME = 'LBX_'//TRIM(UPCASE(CNAMES(JSV-NSV_CHEMBEG+1))) @@ -505,7 +518,7 @@ IF (NSV >=1) THEN WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,CLUOUT,NSIZELBXSV_ll,IRESP,XLBXSVM(:,:,:,JSV)) END IF -! + ! IF(NSIZELBYSV_ll /= 0) THEN TZFIELD%CMNHNAME = 'LBY_'//TRIM(UPCASE(CNAMES(JSV-NSV_CHEMBEG+1))) TZFIELD%CLONGNAME = 'MesoNH: '//TRIM(TZFIELD%CMNHNAME) @@ -523,7 +536,7 @@ IF (NSV >=1) THEN WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV CALL IO_WRITE_FIELD_LB(TPFILE,TZFIELD,CLUOUT,NSIZELBXSV_ll,IRESP,XLBXSVM(:,:,:,JSV)) END IF -! + ! IF(NSIZELBYSV_ll /= 0) THEN TZFIELD%CMNHNAME = 'LBY_'//TRIM(UPCASE(CICNAMES(JSV-NSV_CHICBEG+1))) TZFIELD%CLONGNAME = 'MesoNH: '//TRIM(TZFIELD%CMNHNAME) @@ -535,19 +548,19 @@ IF (NSV >=1) THEN ! DO JSV = NSV_LNOXBEG,NSV_LNOXEND IF(NSIZELBXSV_ll /= 0) THEN - YRECFM = 'LBX_LINOX' - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'2_Y_Z_','LBXSVM',JSV,' (KG/KG)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBX",XLBXSVM(:,:,:,JSV),IRIMX,NSIZELBXSV_ll,& - & IGRID,ILENCH,YCOMMENT,IRESP) + TZFIELD%CMNHNAME = 'LBX_LINOX' + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBXSV_ll,IRESP,XLBXSVM(:,:,:,JSV)) END IF -! + ! IF(NSIZELBYSV_ll /= 0) THEN - YRECFM = 'LBY_LINOX' - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'X_2_Z_','LBYSVM',JSV,' (KG/KG)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBY",XLBYSVM(:,:,:,JSV),IRIMY,NSIZELBYSV_ll,& - & IGRID,ILENCH,YCOMMENT,IRESP) + TZFIELD%CMNHNAME = 'LBY_LINOX' + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBYSV_ll,IRESP,XLBYSVM(:,:,:,JSV)) END IF END DO ! @@ -595,7 +608,7 @@ IF (NSV >=1) THEN ! TZFIELD%CSTDNAME = '' TZFIELD%CUNITS = 'ppp' - TZFIELD%CDIR = '--' + TZFIELD%CDIR = 'XY' TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 @@ -630,7 +643,7 @@ IF (NSV >=1) THEN JSV = (JMODE-1)*IMOMENTS & !Number of moments previously counted + JMOM & !Number of moments in this mode + (NSV_DSTBEG -1) -! + ! IF(NSIZELBXSV_ll /= 0) THEN !Check on border points in X direction TZFIELD%CMNHNAME = 'LBX_'//TRIM(YPDUST_INI(ISV_NAME_IDX)) TZFIELD%CLONGNAME = 'MesoNH: '//TRIM(TZFIELD%CMNHNAME) @@ -655,7 +668,7 @@ IF (NSV >=1) THEN ! TZFIELD%CSTDNAME = '' TZFIELD%CUNITS = 'kg kg-1' - TZFIELD%CDIR = '--' + TZFIELD%CDIR = 'XY' TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 @@ -680,19 +693,19 @@ IF (NSV >=1) THEN IF (LDEPOS_DST(IMI)) THEN DO JSV = NSV_DSTDEPBEG,NSV_DSTDEPEND IF(NSIZELBXSV_ll /= 0) THEN - YRECFM = 'LBX_'//TRIM(CDEDSTNAMES(JSV-NSV_DSTDEPBEG+1)) - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'2_Y_Z_','LBXSVM',JSV,' (KG/KG)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBX",XLBXSVM(:,:,:,JSV),IRIMX,NSIZELBXSV_ll,& - & IGRID,ILENCH,YCOMMENT,IRESP) + TZFIELD%CMNHNAME = 'LBX_'//TRIM(CDEDSTNAMES(JSV-NSV_DSTDEPBEG+1)) + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBXSV_ll,IRESP,XLBXSVM(:,:,:,JSV)) END IF - ! + ! IF(NSIZELBYSV_ll /= 0) THEN - YRECFM = 'LBY_'//TRIM(CDEDSTNAMES(JSV-NSV_DSTDEPBEG+1)) - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'X_2_Z_','LBYSVM',JSV,' (KG/KG)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBY",XLBYSVM(:,:,:,JSV),IRIMY,NSIZELBYSV_ll,& - & IGRID,ILENCH,YCOMMENT,IRESP) + TZFIELD%CMNHNAME = 'LBY_'//TRIM(CDEDSTNAMES(JSV-NSV_DSTDEPBEG+1)) + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBYSV_ll,IRESP,XLBYSVM(:,:,:,JSV)) END IF END DO END IF @@ -741,7 +754,15 @@ IF (NSV >=1) THEN CALL CLOSE_ll(CLUOUT,IOSTAT=IRESP) CALL ABORT STOP - END IF ! Test IMOMENTS + END IF ! Test IMOMENTS + ! + TZFIELD%CSTDNAME = '' + TZFIELD%CUNITS = 'ppp' + TZFIELD%CDIR = 'XY' + TZFIELD%NGRID = 1 + TZFIELD%NTYPE = TYPEREAL + TZFIELD%NDIMS = 3 + ! IF (IMOMENTS == 1) THEN DO JMODE=1, NMODE_SLT !Index from which names are picked @@ -751,19 +772,18 @@ IF (NSV >=1) THEN + (NSV_SLTBEG -1) !Previous list of tracers IF(NSIZELBXSV_ll /= 0) THEN !Check on border points in X direction - YRECFM = 'LBX_'//TRIM(YPSALT_INI(ISV_NAME_IDX)) - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'2_Y_Z_','LBXSVM',JSV,' (ppp)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBX",XLBXSVM(:,:,:,JSV),& - IRIMX,NSIZELBXSV_ll, IGRID,ILENCH,YCOMMENT,IRESP) + TZFIELD%CMNHNAME = 'LBX_'//TRIM(YPSALT_INI(ISV_NAME_IDX)) + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBXSV_ll,IRESP,XLBXSVM(:,:,:,JSV)) ENDIF !Check on border points in X direction IF(NSIZELBYSV_ll /= 0) THEN - YRECFM = 'LBY_'//TRIM(YPSALT_INI(ISV_NAME_IDX)) - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'X_2_Z_','LBYSVM',JSV,' (ppp)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBY",XLBYSVM(:,:,:,JSV),& - IRIMY,NSIZELBYSV_ll, IGRID,ILENCH,YCOMMENT,IRESP) - + TZFIELD%CMNHNAME = 'LBY_'//TRIM(YPSALT_INI(ISV_NAME_IDX)) + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBYSV_ll,IRESP,XLBYSVM(:,:,:,JSV)) ENDIF !Check on points in Y direction ENDDO ! Loop on mode ELSE ! valeur IMOMENTS =/ 1 @@ -775,19 +795,18 @@ IF (NSV >=1) THEN + (NSV_SLTBEG -1) IF(NSIZELBXSV_ll /= 0) THEN !Check on border points in X direction - YRECFM = 'LBX_'//TRIM(YPSALT_INI(ISV_NAME_IDX)) - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'2_Y_Z_','LBXSVM',JSV,' (ppp)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBX",XLBXSVM(:,:,:,JSV),& - IRIMX,NSIZELBXSV_ll, IGRID,ILENCH,YCOMMENT,IRESP) + TZFIELD%CMNHNAME = 'LBX_'//TRIM(YPSALT_INI(ISV_NAME_IDX)) + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBXSV_ll,IRESP,XLBXSVM(:,:,:,JSV)) ENDIF !Check on border points in X direction IF(NSIZELBYSV_ll /= 0) THEN - YRECFM = 'LBY_'//TRIM(YPSALT_INI(ISV_NAME_IDX)) - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'X_2_Z_','LBYSVM',JSV,' (ppp)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBY",XLBYSVM(:,:,:,JSV),& - IRIMY,NSIZELBYSV_ll, IGRID,ILENCH,YCOMMENT,IRESP) - + TZFIELD%CMNHNAME = 'LBY_'//TRIM(YPSALT_INI(ISV_NAME_IDX)) + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBYSV_ll,IRESP,XLBYSVM(:,:,:,JSV)) ENDIF !Check on points in Y direction ENDDO ! Loop on moments ENDDO ! Loop on modes @@ -795,50 +814,57 @@ IF (NSV >=1) THEN ELSE ! Test CPROGRAM ! We are in the subprogram MESONH, CSALTNAMES are allocated and are !in the same order as the variables in XSVM (i.e. following JPSALTORDER) + TZFIELD%CSTDNAME = '' + TZFIELD%CUNITS = 'kg kg-1' + TZFIELD%CDIR = 'XY' + TZFIELD%NGRID = 1 + TZFIELD%NTYPE = TYPEREAL + TZFIELD%NDIMS = 3 + ! DO JSV = NSV_SLTBEG,NSV_SLTEND IF(NSIZELBXSV_ll /= 0) THEN - YRECFM = 'LBX_'//TRIM(CSALTNAMES(JSV-NSV_SLTBEG+1)) - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'2_Y_Z_','LBXSVM',JSV,' (KG/KG)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBX",XLBXSVM(:,:,:,JSV),IRIMX,NSIZELBXSV_ll,& - & IGRID,ILENCH,YCOMMENT,IRESP) + TZFIELD%CMNHNAME = 'LBX_'//TRIM(CSALTNAMES(JSV-NSV_SLTBEG+1)) + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBXSV_ll,IRESP,XLBXSVM(:,:,:,JSV)) END IF ! IF(NSIZELBYSV_ll /= 0) THEN - YRECFM = 'LBY_'//TRIM(CSALTNAMES(JSV-NSV_SLTBEG+1)) - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'X_2_Z_','LBYSVM',JSV,' (KG/KG)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBY",XLBYSVM(:,:,:,JSV),IRIMY,NSIZELBYSV_ll,& - & IGRID,ILENCH,YCOMMENT,IRESP) + TZFIELD%CMNHNAME = 'LBY_'//TRIM(CSALTNAMES(JSV-NSV_SLTBEG+1)) + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBYSV_ll,IRESP,XLBYSVM(:,:,:,JSV)) END IF END DO IF (LDEPOS_SLT(IMI)) THEN DO JSV = NSV_SLTDEPBEG,NSV_SLTDEPEND IF(NSIZELBXSV_ll /= 0) THEN - YRECFM = 'LBX_'//TRIM(CDESLTNAMES(JSV-NSV_SLTDEPBEG+1)) - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'2_Y_Z_','LBXSVM',JSV,' (KG/KG)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBX",XLBXSVM(:,:,:,JSV),IRIMX,NSIZELBXSV_ll,& - & IGRID,ILENCH,YCOMMENT,IRESP) + TZFIELD%CMNHNAME = 'LBX_'//TRIM(CDESLTNAMES(JSV-NSV_SLTDEPBEG+1)) + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBXSV_ll,IRESP,XLBXSVM(:,:,:,JSV)) END IF - ! + ! IF(NSIZELBYSV_ll /= 0) THEN - YRECFM = 'LBY_'//TRIM(CDESLTNAMES(JSV-NSV_SLTDEPBEG+1)) - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'X_2_Z_','LBYSVM',JSV,' (KG/KG)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBY",XLBYSVM(:,:,:,JSV),IRIMY,NSIZELBYSV_ll,& - & IGRID,ILENCH,YCOMMENT,IRESP) + TZFIELD%CMNHNAME = 'LBY_'//TRIM(CDESLTNAMES(JSV-NSV_SLTDEPBEG+1)) + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBYSV_ll,IRESP,XLBYSVM(:,:,:,JSV)) END IF END DO END IF END IF ENDIF -! + ! ! lagrangian variables IF (NSV_LGEND>=NSV_LGBEG) THEN TZFIELD%CSTDNAME = '' TZFIELD%CUNITS = 'm' - TZFIELD%CDIR = '--' + TZFIELD%CDIR = 'XY' TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 @@ -861,69 +887,88 @@ IF (NSV >=1) THEN END IF END DO END IF - ! passive pollutants - DO JSV = NSV_PPBEG,NSV_PPEND + ! passive pollutants + IF (NSV_PPEND>=NSV_PPBEG) THEN TZFIELD%CSTDNAME = '' TZFIELD%CUNITS = 'kg kg-1' - TZFIELD%CDIR = '--' + TZFIELD%CDIR = 'XY' TZFIELD%NGRID = 1 TZFIELD%NTYPE = TYPEREAL TZFIELD%NDIMS = 3 ! - IF(NSIZELBXSV_ll /= 0) THEN - TZFIELD%CMNHNAME = 'LBX_PP' - TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBXSV_ll,IRESP,XLBXSVM(:,:,:,JSV)) - END IF -! - IF(NSIZELBYSV_ll /= 0) THEN - TZFIELD%CMNHNAME = 'LBY_PP' - TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBYSV_ll,IRESP,XLBYSVM(:,:,:,JSV)) - END IF - END DO - + DO JSV = NSV_PPBEG,NSV_PPEND + IF(NSIZELBXSV_ll /= 0) THEN + TZFIELD%CMNHNAME = 'LBX_PP' + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBXSV_ll,IRESP,XLBXSVM(:,:,:,JSV)) + END IF + ! + IF(NSIZELBYSV_ll /= 0) THEN + TZFIELD%CMNHNAME = 'LBY_PP' + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBYSV_ll,IRESP,XLBYSVM(:,:,:,JSV)) + END IF + END DO + END IF ! conditional sampling - DO JSV = NSV_CSBEG,NSV_CSEND - IF(NSIZELBXSV_ll /= 0) THEN - YRECFM = 'LBX_CS' - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'2_Y_Z_','LBXSVM',JSV,' (KG/KG)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBX",XLBXSVM(:,:,:,JSV),IRIMX,NSIZELBXSV_ll,& - & IGRID,ILENCH,YCOMMENT,IRESP) - END IF -! - IF(NSIZELBYSV_ll /= 0) THEN - YRECFM = 'LBY_CS' - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'X_2_Z_','LBYSVM',JSV,' (KG/KG)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBY",XLBYSVM(:,:,:,JSV),IRIMY,NSIZELBYSV_ll,& - & IGRID,ILENCH,YCOMMENT,IRESP) - END IF - END DO + IF (NSV_CSEND>=NSV_CSBEG) THEN + TZFIELD%CSTDNAME = '' + TZFIELD%CUNITS = 'kg kg-1' + TZFIELD%CDIR = 'XY' + TZFIELD%NGRID = 1 + TZFIELD%NTYPE = TYPEREAL + TZFIELD%NDIMS = 3 + ! + DO JSV = NSV_CSBEG,NSV_CSEND + IF(NSIZELBXSV_ll /= 0) THEN + TZFIELD%CMNHNAME = 'LBX_CS' + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBXSV_ll,IRESP,XLBXSVM(:,:,:,JSV)) + END IF + ! + IF(NSIZELBYSV_ll /= 0) THEN + TZFIELD%CMNHNAME = 'LBY_CS' + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBYSV_ll,IRESP,XLBYSVM(:,:,:,JSV)) + END IF + END DO + END IF #ifdef MNH_FOREFIRE ! ForeFire scalar variables - DO JSV = NSV_FFBEG,NSV_FFEND - IF(NSIZELBXSV_ll /= 0) THEN - YRECFM = 'LBX_FF' - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'2_Y_Z_','LBX_FF',JSV,' (KG/KG)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBX",XLBXSVM(:,:,:,JSV),IRIMX,NSIZELBXSV_ll,& - & IGRID,ILENCH,YCOMMENT,IRESP) - END IF -! - IF(NSIZELBYSV_ll /= 0) THEN - YRECFM = 'LBY_FF' - WRITE(YCOMMENT,'(A6,A6,I3.3,A8)')'X_2_Z_','LBY_FF',JSV,' (KG/KG)' - ILENCH=LEN(YCOMMENT) - CALL FMWRIT_LB(YFMFILE,YRECFM,CLUOUT,"LBY",XLBYSVM(:,:,:,JSV),IRIMY,NSIZELBYSV_ll,& - & IGRID,ILENCH,YCOMMENT,IRESP) - END IF - END DO + IF (NSV_FFEND>=NSV_FFBEG) THEN + TZFIELD%CSTDNAME = '' + TZFIELD%CUNITS = 'kg kg-1' + TZFIELD%CDIR = 'XY' + TZFIELD%NGRID = 1 + TZFIELD%NTYPE = TYPEREAL + TZFIELD%NDIMS = 3 + ! + DO JSV = NSV_FFBEG,NSV_FFEND + IF(NSIZELBXSV_ll /= 0) THEN + TZFIELD%CMNHNAME = 'LBX_FF' + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBXSV_ll,IRESP,XLBXSVM(:,:,:,JSV)) + END IF + ! + IF(NSIZELBYSV_ll /= 0) THEN + TZFIELD%CMNHNAME = 'LBY_FF' + TZFIELD%CLONGNAME = 'MesoNH: '//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,CLUOUT,NSIZELBYSV_ll,IRESP,XLBYSVM(:,:,:,JSV)) + END IF + END DO + END IF #endif END IF ! @@ -931,4 +976,3 @@ END IF ! ! END SUBROUTINE WRITE_LB_n -