Newer
Older
PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV)
WRITE(ILUOUT,*) 'Ice phase chemical PLBYSVM will be initialized to 0'
ELSE
!callabortstop

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize ice phase chemical PLBYSVM')
ENDIF
END IF
END IF
END IF
CASE('INIT')
IF ( SIZE(PLBXSVM,1) /= 0 ) PLBXSVM(:,:,:,JSV) = 0.
IF ( SIZE(PLBYSVM,1) /= 0 ) PLBYSVM(:,:,:,JSV) = 0.
END SELECT
END DO
END IF
! Orilam aerosol scalar variables
IF (NSV_AEREND>=NSV_AERBEG) THEN
TZFIELD%CSTDNAME = ''

RODIER Quentin
committed
TZFIELD%CUNITS = 'ppp'

WAUTELET Philippe
committed
TZFIELD%CDIR = ''
TZFIELD%NGRID = 1
TZFIELD%NTYPE = TYPEREAL
TZFIELD%NDIMS = 3
TZFIELD%LTIMEDEP = .TRUE.
!
DO JSV = NSV_AERBEG, NSV_AEREND
SELECT CASE(HGETSVM(JSV))
CASE ('READ')
IF ( KSIZELBXSV_ll /= 0 ) THEN
TZFIELD%CMNHNAME = 'LBX_'//TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1)))

WAUTELET Philippe
committed
TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME)
TZFIELD%CLBTYPE = 'LBX'
WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV

WAUTELET Philippe
committed
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
PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV)
WRITE(ILUOUT,*) 'Aerosol PLBXSVM will be initialized to 0'
ELSE
!callabortstop

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize aerosol PLBXSVM')
ENDIF
END IF
END IF
END IF
!
IF (KSIZELBYSV_ll /= 0 ) THEN
TZFIELD%CMNHNAME = 'LBY_'//TRIM(UPCASE(CAERONAMES(JSV-NSV_AERBEG+1)))

WAUTELET Philippe
committed
TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME)
TZFIELD%CLBTYPE = 'LBY'
WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV

WAUTELET Philippe
committed
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
PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV)
WRITE(ILUOUT,*) 'Aerosol PLBYSVM will be initialized to 0'
ELSE
!callabortstop

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize aerosol PLBYSVM')
ENDIF
END IF
END IF
END IF
CASE('INIT')
IF ( SIZE(PLBXSVM,1) /= 0 ) PLBXSVM(:,:,:,JSV) = 0.
IF ( SIZE(PLBYSVM,1) /= 0 ) PLBYSVM(:,:,:,JSV) = 0.
END SELECT
END DO
END IF
! Orilam aerosols moist scalar variables
IF (NSV_AERDEPEND>=NSV_AERDEPBEG) THEN
TZFIELD%CSTDNAME = ''

RODIER Quentin
committed
TZFIELD%CUNITS = 'ppp'

WAUTELET Philippe
committed
TZFIELD%CDIR = ''
TZFIELD%NGRID = 1
TZFIELD%NTYPE = TYPEREAL
TZFIELD%NDIMS = 3
TZFIELD%LTIMEDEP = .TRUE.
!
DO JSV = NSV_AERDEPBEG, NSV_AERDEPEND
SELECT CASE(HGETSVM(JSV))
CASE ('READ')
IF ( KSIZELBXSV_ll /= 0 ) THEN
TZFIELD%CMNHNAME = 'LBX_'//TRIM(UPCASE(CDEAERNAMES(JSV-NSV_AERDEPBEG+1)))

WAUTELET Philippe
committed
TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME)
TZFIELD%CLBTYPE = 'LBX'
WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV

WAUTELET Philippe
committed
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
PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV)
WRITE(ILUOUT,*) 'Aerosol PLBXSVM will be initialized to 0'
ELSE
!callabortstop

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize aerosol PLBXSVM')
ENDIF
END IF
END IF
END IF
!
IF (KSIZELBYSV_ll /= 0 ) THEN
TZFIELD%CMNHNAME = 'LBY_'//TRIM(CDEAERNAMES(JSV-NSV_AERDEPBEG+1))

WAUTELET Philippe
committed
TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME)
TZFIELD%CLBTYPE = 'LBY'
WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV

WAUTELET Philippe
committed
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
PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV)
WRITE(ILUOUT,*) 'Aerosol PLBYSVM will be initialized to 0'
ELSE
!callabortstop

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize aerosol PLBYSVM')
ENDIF
END IF
END IF
END IF
CASE('INIT')
IF ( SIZE(PLBXSVM,1) /= 0 ) PLBXSVM(:,:,:,JSV) = 0.
IF ( SIZE(PLBYSVM,1) /= 0 ) PLBYSVM(:,:,:,JSV) = 0.
END SELECT
END DO
END IF
! Dust scalar variables
IF (NSV_DSTEND>=NSV_DSTBEG) THEN
TZFIELD%CSTDNAME = ''

RODIER Quentin
committed
TZFIELD%CUNITS = 'ppp'

WAUTELET Philippe
committed
TZFIELD%CDIR = ''
TZFIELD%NGRID = 1
TZFIELD%NTYPE = TYPEREAL
TZFIELD%NDIMS = 3
TZFIELD%LTIMEDEP = .TRUE.
!
DO JSV = NSV_DSTBEG, NSV_DSTEND
SELECT CASE(HGETSVM(JSV))
CASE ('READ')
IF ( KSIZELBXSV_ll /= 0 ) THEN
TZFIELD%CMNHNAME = 'LBX_'//TRIM(UPCASE(CDUSTNAMES(JSV-NSV_DSTBEG+1)))

WAUTELET Philippe
committed
TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME)
TZFIELD%CLBTYPE = 'LBX'
WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV

WAUTELET Philippe
committed
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
PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV)
WRITE(ILUOUT,*) 'Dust PLBXSVM will be initialized to 0'
ELSE
!callabortstop

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize dust PLBXSVM')
ENDIF
END IF
END IF
END IF
!
IF (KSIZELBYSV_ll /= 0 ) THEN
TZFIELD%CMNHNAME = 'LBY_'//TRIM(UPCASE(CDUSTNAMES(JSV-NSV_DSTBEG+1)))

WAUTELET Philippe
committed
TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME)
TZFIELD%CLBTYPE = 'LBY'
WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV

WAUTELET Philippe
committed
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
PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV)
WRITE(ILUOUT,*) 'Dust PLBYSVM will be initialized to 0'
ELSE
!callabortstop

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize dust PLBYSVM')
ENDIF
END IF
END IF
END IF
CASE('INIT')
IF ( SIZE(PLBXSVM,1) /= 0 ) PLBXSVM(:,:,:,JSV) = 0.
IF ( SIZE(PLBYSVM,1) /= 0 ) PLBYSVM(:,:,:,JSV) = 0.
END SELECT
END DO
END IF
!
IF (NSV_DSTDEPEND>=NSV_DSTDEPBEG) THEN
TZFIELD%CSTDNAME = ''

RODIER Quentin
committed
TZFIELD%CUNITS = 'ppp'

WAUTELET Philippe
committed
TZFIELD%CDIR = ''
TZFIELD%NGRID = 1
TZFIELD%NTYPE = TYPEREAL
TZFIELD%NDIMS = 3
TZFIELD%LTIMEDEP = .TRUE.
!
DO JSV = NSV_DSTDEPBEG, NSV_DSTDEPEND
SELECT CASE(HGETSVM(JSV))
CASE ('READ')
IF ( KSIZELBXSV_ll /= 0 ) THEN
TZFIELD%CMNHNAME = 'LBX_'//TRIM(UPCASE(CDEDSTNAMES(JSV-NSV_DSTDEPBEG+1)))

WAUTELET Philippe
committed
TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME)
TZFIELD%CLBTYPE = 'LBX'
WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV

WAUTELET Philippe
committed
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
PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV)
WRITE(ILUOUT,*) 'Dust Desposition PLBXSVM will be initialized to 0'
ELSE
!callabortstop

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize dust PLBXSVM')
ENDIF
END IF
END IF
END IF
!
IF (KSIZELBYSV_ll /= 0 ) THEN
TZFIELD%CMNHNAME = 'LBY_'//TRIM(UPCASE(CDEDSTNAMES(JSV-NSV_DSTDEPBEG+1)))

WAUTELET Philippe
committed
TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME)
TZFIELD%CLBTYPE = 'LBY'
WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV

WAUTELET Philippe
committed
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
PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV)
WRITE(ILUOUT,*) 'Dust Depoistion PLBYSVM will be initialized to 0'
ELSE
WRITE(ILUOUT,*) 'Pb to initialize dust PLBYSVM '
!callabortstop

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize dust PLBYSVM')
ENDIF
END IF
END IF
END IF
CASE('INIT')
IF ( SIZE(PLBXSVM,1) /= 0 ) PLBXSVM(:,:,:,JSV) = 0.
IF ( SIZE(PLBYSVM,1) /= 0 ) PLBYSVM(:,:,:,JSV) = 0.
END SELECT
END DO
END IF
! Sea salt scalar variables
IF (NSV_SLTEND>=NSV_SLTBEG) THEN
TZFIELD%CSTDNAME = ''

RODIER Quentin
committed
TZFIELD%CUNITS = 'ppp'

WAUTELET Philippe
committed
TZFIELD%CDIR = ''
TZFIELD%NGRID = 1
TZFIELD%NTYPE = TYPEREAL
TZFIELD%NDIMS = 3
TZFIELD%LTIMEDEP = .TRUE.
!
DO JSV = NSV_SLTBEG, NSV_SLTEND
SELECT CASE(HGETSVM(JSV))
CASE ('READ')
IF ( KSIZELBXSV_ll /= 0 ) THEN
TZFIELD%CMNHNAME = 'LBX_'//TRIM(UPCASE(CSALTNAMES(JSV-NSV_SLTBEG+1)))

WAUTELET Philippe
committed
TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME)
TZFIELD%CLBTYPE = 'LBX'
WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV

WAUTELET Philippe
committed
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
PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV)
WRITE(ILUOUT,*) 'Sea Salt PLBXSVM will be initialized to 0'
ELSE
!callabortstop

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize sea salt PLBXSVM')
ENDIF
END IF
END IF
END IF
!
IF (KSIZELBYSV_ll /= 0 ) THEN
TZFIELD%CMNHNAME = 'LBY_'//TRIM(CSALTNAMES(JSV-NSV_SLTBEG+1))

WAUTELET Philippe
committed
TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME)
TZFIELD%CLBTYPE = 'LBY'
WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV

WAUTELET Philippe
committed
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
PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV)
WRITE(ILUOUT,*) 'Sea Salt PLBYSVM will be initialized to 0'
ELSE
!callabortstop

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize sea salt PLBYSVM')
ENDIF
END IF
END IF
END IF
CASE('INIT')
IF ( SIZE(PLBXSVM,1) /= 0 ) PLBXSVM(:,:,:,JSV) = 0.
IF ( SIZE(PLBYSVM,1) /= 0 ) PLBYSVM(:,:,:,JSV) = 0.
END SELECT
END DO
END IF
IF (NSV_PPEND>=NSV_PPBEG) THEN
TZFIELD%CSTDNAME = ''
TZFIELD%CUNITS = 'kg kg-1'

WAUTELET Philippe
committed
TZFIELD%CDIR = ''
TZFIELD%NGRID = 1
TZFIELD%NTYPE = TYPEREAL
TZFIELD%NDIMS = 3
TZFIELD%LTIMEDEP = .TRUE.
!
DO JSV = NSV_PPBEG, NSV_PPEND
SELECT CASE(HGETSVM(JSV))
CASE ('READ')
IF ( KSIZELBXSV_ll /= 0 ) THEN
TZFIELD%CMNHNAME = 'LBX_PP'

WAUTELET Philippe
committed
TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME)
TZFIELD%CLBTYPE = 'LBX'
WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV

WAUTELET Philippe
committed
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
PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV)
WRITE(ILUOUT,*) 'Passive pollutant PLBXSVM will be initialized to 0'
ELSE
PLBXSVM(:,:,:,JSV)=0.
WRITE(ILUOUT,*) 'Passive pollutant PLBXSVM will be initialized to 0'
ENDIF
END IF
END IF
!
IF (KSIZELBYSV_ll /= 0 ) THEN
TZFIELD%CMNHNAME = 'LBY_PP'

WAUTELET Philippe
committed
TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME)
TZFIELD%CLBTYPE = 'LBY'
WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV

WAUTELET Philippe
committed
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
PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV)
WRITE(ILUOUT,*) 'Passive pollutant PLBYSVM will be initialized to 0'
ELSE
PLBYSVM(:,:,:,JSV)=0.
WRITE(ILUOUT,*) 'Passive pollutant PLBYSVM will be initialized to 0'
ENDIF
END IF
END IF
CASE('INIT')
IF ( SIZE(PLBXSVM,1) /= 0 ) PLBXSVM(:,:,:,JSV) = 0.
IF ( SIZE(PLBYSVM,1) /= 0 ) PLBYSVM(:,:,:,JSV) = 0.
END SELECT
END DO
END IF
#ifdef MNH_FOREFIRE
! ForeFire scalar variables
IF (NSV_FFEND>=NSV_FFBEG) THEN
TZFIELD%CSTDNAME = ''
TZFIELD%CUNITS = 'kg kg-1'

WAUTELET Philippe
committed
TZFIELD%CDIR = ''
TZFIELD%NGRID = 1
TZFIELD%NTYPE = TYPEREAL
TZFIELD%NDIMS = 3
TZFIELD%LTIMEDEP = .TRUE.
!
DO JSV = NSV_FFBEG, NSV_FFEND
SELECT CASE(HGETSVM(JSV))
CASE ('READ')
IF ( KSIZELBXSV_ll /= 0 ) THEN
TZFIELD%CMNHNAME = 'LBX_FF'

WAUTELET Philippe
committed
TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME)
TZFIELD%CLBTYPE = 'LBX'
WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV

WAUTELET Philippe
committed
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
IF (PRESENT(PLBXSVMM)) THEN
PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV)
WRITE(ILUOUT,*) 'ForeFire pollutant PLBXSVM will be initialized to 0'
ELSE
PLBXSVM(:,:,:,JSV)=0.
WRITE(ILUOUT,*) 'ForeFire pollutant PLBXSVM will be initialized to 0'
ENDIF
END IF
END IF
END IF
!
IF (KSIZELBYSV_ll /= 0 ) THEN
TZFIELD%CMNHNAME = 'LBY_FF'

WAUTELET Philippe
committed
TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME)
TZFIELD%CLBTYPE = 'LBY'
WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV

WAUTELET Philippe
committed
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
PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV)
WRITE(ILUOUT,*) 'ForeFire scalar variable PLBYSVM will be initialized to 0'
ELSE
PLBYSVM(:,:,:,JSV)=0.
WRITE(ILUOUT,*) 'ForeFire scalar variable PLBYSVM will be initialized to 0'
ENDIF
END IF
END IF
END IF
CASE('INIT')
IF ( SIZE(PLBXSVM,1) /= 0 ) PLBXSVM(:,:,:,JSV) = 0.
IF ( SIZE(PLBYSVM,1) /= 0 ) PLBYSVM(:,:,:,JSV) = 0.
END SELECT
END DO
END IF
#endif
IF (NSV_CSEND>=NSV_CSBEG) THEN
TZFIELD%CSTDNAME = ''
TZFIELD%CUNITS = 'kg kg-1'

WAUTELET Philippe
committed
TZFIELD%CDIR = ''
TZFIELD%NGRID = 1
TZFIELD%NTYPE = TYPEREAL
TZFIELD%NDIMS = 3
TZFIELD%LTIMEDEP = .TRUE.
!
DO JSV = NSV_CSBEG, NSV_CSEND
SELECT CASE(HGETSVM(JSV))
CASE ('READ')
IF ( KSIZELBXSV_ll /= 0 ) THEN
TZFIELD%CMNHNAME = 'LBX_CS'

WAUTELET Philippe
committed
TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME)
TZFIELD%CLBTYPE = 'LBX'
WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV

WAUTELET Philippe
committed
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
PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV)
WRITE(ILUOUT,*) 'Conditional sampling LBXSVM will be initialized to 0'
ELSE
PLBXSVM(:,:,:,JSV)=0.
WRITE(ILUOUT,*) 'Conditional sampling PLBXSVM will be initialized to 0'
ENDIF
END IF
END IF
!
IF (KSIZELBYSV_ll /= 0 ) THEN
TZFIELD%CMNHNAME = 'LBY_CS'

WAUTELET Philippe
committed
TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME)
TZFIELD%CLBTYPE = 'LBY'
WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV

WAUTELET Philippe
committed
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
PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV)
WRITE(ILUOUT,*) 'Conditional sampling PLBYSVM will be initialized to 0'
ELSE
PLBYSVM(:,:,:,JSV)=0.
WRITE(ILUOUT,*) 'Conditional sampling PLBYSVM will be initialized to 0'
ENDIF
END IF
END IF
CASE('INIT')
IF ( SIZE(PLBXSVM,1) /= 0 ) PLBXSVM(:,:,:,JSV) = 0.
IF ( SIZE(PLBYSVM,1) /= 0 ) PLBYSVM(:,:,:,JSV) = 0.
END SELECT
END DO
END IF
IF (NSV_LNOXEND>=NSV_LNOXBEG) THEN
TZFIELD%CSTDNAME = ''
TZFIELD%CUNITS = 'kg kg-1'

WAUTELET Philippe
committed
TZFIELD%CDIR = ''
TZFIELD%NGRID = 1
TZFIELD%NTYPE = TYPEREAL
TZFIELD%NDIMS = 3
TZFIELD%LTIMEDEP = .TRUE.
!
DO JSV = NSV_LNOXBEG, NSV_LNOXEND
SELECT CASE(HGETSVM(JSV))
CASE ('READ')
IF ( KSIZELBXSV_ll /= 0 ) THEN
TZFIELD%CMNHNAME = 'LBX_LINOX'

WAUTELET Philippe
committed
TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME)
TZFIELD%CLBTYPE = 'LBX'
WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV

WAUTELET Philippe
committed
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
PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV)
WRITE(ILUOUT,*) 'Linox PLBXSVM will be initialized to 0'
ELSE

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize linox PLBXSVM')
ENDIF
END IF
END IF
!
IF (KSIZELBYSV_ll /= 0 ) THEN
TZFIELD%CMNHNAME = 'LBY_LINOX'

WAUTELET Philippe
committed
TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME)
TZFIELD%CLBTYPE = 'LBY'
WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV

WAUTELET Philippe
committed
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
PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV)
WRITE(ILUOUT,*) 'Linox PLBYSVM will be initialized to 0'
ELSE

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize linox PLBYSVM')
ENDIF
END IF
END IF
CASE('INIT')
IF ( SIZE(PLBXSVM,1) /= 0 ) PLBXSVM(:,:,:,JSV) = 0.
IF ( SIZE(PLBYSVM,1) /= 0 ) PLBYSVM(:,:,:,JSV) = 0.
END SELECT
END DO
END IF
IF (NSV_LGEND>=NSV_LGBEG) THEN
TZFIELD%CSTDNAME = ''
TZFIELD%CUNITS = 'm'

WAUTELET Philippe
committed
TZFIELD%CDIR = ''
TZFIELD%NGRID = 1
TZFIELD%NTYPE = TYPEREAL
TZFIELD%NDIMS = 3
TZFIELD%LTIMEDEP = .TRUE.
!
DO JSV = NSV_LGBEG, NSV_LGEND
SELECT CASE(HGETSVM(JSV))
CASE ('READ')
IF ( KSIZELBXSV_ll /= 0 ) THEN
TZFIELD%CMNHNAME = 'LBX_'//TRIM(CLGNAMES(JSV-NSV_LGBEG+1))

WAUTELET Philippe
committed
TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME)
TZFIELD%CLBTYPE = 'LBX'
WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV

WAUTELET Philippe
committed
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
PLBXSVM(:,:,:,JSV)=PLBXSVMM(:,:,:,JSV)
WRITE(ILUOUT,*) 'lagrangian PLBXSVM will be initialized to 0'
ELSE

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize lagrangian PLBXSVM')
ENDIF
END IF
END IF
!
IF (KSIZELBYSV_ll /= 0 ) THEN
TZFIELD%CMNHNAME = 'LBY_'//TRIM(CLGNAMES(JSV-NSV_LGBEG+1))

WAUTELET Philippe
committed
TZFIELD%CLONGNAME = TRIM(TZFIELD%CMNHNAME)
TZFIELD%CLBTYPE = 'LBY'
WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV

WAUTELET Philippe
committed
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
PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV)
WRITE(ILUOUT,*) 'lagrangian PLBYSVM will be initialized to 0'
ELSE

WAUTELET Philippe
committed
CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize lagrangian PLBYSVM')
ENDIF
END IF
END IF
!
CASE('INIT')
IF ( SIZE(PLBXSVM,1) /= 0 ) PLBXSVM(:,:,:,JSV) = 0.
IF ( SIZE(PLBYSVM,1) /= 0 ) PLBYSVM(:,:,:,JSV) = 0.
END SELECT
END DO
END IF
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
!-------------------------------------------------------------------------------
!
!* 3. COMPUTE THE LB SOURCES
! -----------------------
!
! IN case of initialization of LB source terms (OLSOURCE=T) :
! xxxM are LB source terms
! xxxMM are LB fields at time t -dt
IF (OLSOURCE) THEN
IF (PRESENT(PLBXUMM).AND.PRESENT(PLBYUMM)) THEN
PLBXUM(:,:,:) = (PLBXUM(:,:,:) - PLBXUMM(:,:,:)) / PLENG
PLBYUM(:,:,:) = (PLBYUM(:,:,:) - PLBYUMM(:,:,:)) / PLENG
ENDIF
IF (PRESENT(PLBXVMM).AND.PRESENT(PLBYVMM)) THEN
PLBXVM(:,:,:) = (PLBXVM(:,:,:) - PLBXVMM(:,:,:)) / PLENG
PLBYVM(:,:,:) = (PLBYVM(:,:,:) - PLBYVMM(:,:,:)) / PLENG
ENDIF
IF (PRESENT(PLBXWMM).AND.PRESENT(PLBYWMM)) THEN
PLBXWM(:,:,:) = (PLBXWM(:,:,:) - PLBXWMM(:,:,:)) / PLENG
PLBYWM(:,:,:) = (PLBYWM(:,:,:) - PLBYWMM(:,:,:)) / PLENG
ENDIF
IF (PRESENT(PLBXTHMM).AND.PRESENT(PLBYTHMM)) THEN
PLBXTHM(:,:,:) = (PLBXTHM(:,:,:) - PLBXTHMM(:,:,:)) / PLENG
PLBYTHM(:,:,:) = (PLBYTHM(:,:,:) - PLBYTHMM(:,:,:)) / PLENG
ENDIF
IF (HGETTKEM =='READ') THEN
IF (PRESENT(PLBXTKEMM).AND.PRESENT(PLBYTKEMM)) THEN
PLBXTKEM(:,:,:) = (PLBXTKEM(:,:,:) - PLBXTKEMM(:,:,:)) / PLENG
PLBYTKEM(:,:,:) = (PLBYTKEM(:,:,:) - PLBYTKEMM(:,:,:)) / PLENG
ENDIF
ENDIF
IF (HGETTKEM =='INIT') THEN
PLBXTKEM(:,:,:) = 0.
PLBYTKEM(:,:,:) = 0.
ENDIF
! LB moist variables
IRR=0
IF (PRESENT(PLBXRMM).AND.PRESENT(PLBYRMM)) THEN
DO JRR=1,7
IF (YGETRXM(JRR) == 'READ') THEN
IRR=IRR+1
PLBXRM(:,:,:,IRR) = (PLBXRM(:,:,:,IRR) - PLBXRMM(:,:,:,IRR)) / PLENG
PLBYRM(:,:,:,IRR) = (PLBYRM(:,:,:,IRR) - PLBYRMM(:,:,:,IRR)) / PLENG
ENDIF
END DO
ENDIF
! LB-scalar variables
DO JSV=1,KSV
IF (HGETSVM(JSV) == 'READ') THEN
PLBXSVM(:,:,:,JSV) = (PLBXSVM(:,:,:,JSV) - PLBXSVMM(:,:,:,JSV)) / PLENG
PLBYSVM(:,:,:,JSV) = (PLBYSVM(:,:,:,JSV) - PLBYSVMM(:,:,:,JSV)) / PLENG
ENDIF
END DO
ENDIF
!
END SUBROUTINE INI_LB