Skip to content
Snippets Groups Projects
ini_lb.f90 62.5 KiB
Newer Older
                PLBYSVM(:,:,:,JSV)=PLBYSVMM(:,:,:,JSV)
                WRITE(ILUOUT,*) 'Ice phase chemical PLBYSVM   will be initialized to 0'
              ELSE
!callabortstop
                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   = ''
  TZFIELD%NGRID      = 1
  TZFIELD%NTYPE      = TYPEREAL
  TZFIELD%NDIMS      = 3
  !
  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)))
          TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
          TZFIELD%CLBTYPE    = 'LBX'
          WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV
          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
                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)))
          TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
          TZFIELD%CLBTYPE    = 'LBY'
          WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV
          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
                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   = ''
  TZFIELD%NGRID      = 1
  TZFIELD%NTYPE      = TYPEREAL
  TZFIELD%NDIMS      = 3
  !
  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)))
          TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
          TZFIELD%CLBTYPE    = 'LBX'
          WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV
          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
                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))
          TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
          TZFIELD%CLBTYPE    = 'LBY'
          WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV
          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
                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   = ''
  TZFIELD%NGRID      = 1
  TZFIELD%NTYPE      = TYPEREAL
  TZFIELD%NDIMS      = 3
  !
  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)))
          TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
          TZFIELD%CLBTYPE    = 'LBX'
          WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV
          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
                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)))
          TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
          TZFIELD%CLBTYPE    = 'LBY'
          WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV
          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
                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   = ''
  TZFIELD%NGRID      = 1
  TZFIELD%NTYPE      = TYPEREAL
  TZFIELD%NDIMS      = 3
  !
  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)))
          TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
          TZFIELD%CLBTYPE    = 'LBX'
          WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV
          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
                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)))
          TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
          TZFIELD%CLBTYPE    = 'LBY'
          WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV
          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
                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   = ''
  TZFIELD%NGRID      = 1
  TZFIELD%NTYPE      = TYPEREAL
  TZFIELD%NDIMS      = 3
  !
  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)))
          TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
          TZFIELD%CLBTYPE    = 'LBX'
          WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV
          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
                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))
          TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
          TZFIELD%CLBTYPE    = 'LBY'
          WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV
          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
                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
! Passive pollutant variables
IF (NSV_PPEND>=NSV_PPBEG) THEN
  TZFIELD%CSTDNAME   = ''
  TZFIELD%CUNITS     = 'kg kg-1'
  TZFIELD%NGRID      = 1
  TZFIELD%NTYPE      = TYPEREAL
  TZFIELD%NDIMS      = 3
  !
  DO JSV = NSV_PPBEG, NSV_PPEND
    SELECT CASE(HGETSVM(JSV))
      CASE ('READ')
        IF ( KSIZELBXSV_ll /= 0 ) THEN
          TZFIELD%CMNHNAME   = 'LBX_PP'
          TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
          TZFIELD%CLBTYPE    = 'LBX'
          WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV
          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'
          TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
          TZFIELD%CLBTYPE    = 'LBY'
          WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV
          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'
  TZFIELD%NGRID      = 1
  TZFIELD%NTYPE      = TYPEREAL
  TZFIELD%NDIMS      = 3
  !
  DO JSV = NSV_FFBEG, NSV_FFEND
    SELECT CASE(HGETSVM(JSV))
      CASE ('READ')
        IF ( KSIZELBXSV_ll /= 0 ) THEN
          TZFIELD%CMNHNAME   = 'LBX_FF'
          TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
          TZFIELD%CLBTYPE    = 'LBX'
          WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV
          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
        !
        IF (KSIZELBYSV_ll  /= 0 ) THEN
          TZFIELD%CMNHNAME   = 'LBY_FF'
          TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
          TZFIELD%CLBTYPE    = 'LBY'
          WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV
          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
      CASE('INIT')
        IF ( SIZE(PLBXSVM,1) /= 0 ) PLBXSVM(:,:,:,JSV) = 0.
        IF ( SIZE(PLBYSVM,1) /= 0 ) PLBYSVM(:,:,:,JSV) = 0.
    END SELECT
  END DO
END IF
! Conditional sampling variables
IF (NSV_CSEND>=NSV_CSBEG) THEN
  TZFIELD%CSTDNAME   = ''
  TZFIELD%CUNITS     = 'kg kg-1'
  TZFIELD%NGRID      = 1
  TZFIELD%NTYPE      = TYPEREAL
  TZFIELD%NDIMS      = 3
  !
  DO JSV = NSV_CSBEG, NSV_CSEND
    SELECT CASE(HGETSVM(JSV))
      CASE ('READ')
        IF ( KSIZELBXSV_ll /= 0 ) THEN
          TZFIELD%CMNHNAME   = 'LBX_CS'
          TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
          TZFIELD%CLBTYPE    = 'LBX'
          WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV
          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'
          TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
          TZFIELD%CLBTYPE    = 'LBY'
          WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV
          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
! Linox scalar variables
IF (NSV_LNOXEND>=NSV_LNOXBEG) THEN
  TZFIELD%CSTDNAME   = ''
  TZFIELD%CUNITS     = 'kg kg-1'
  TZFIELD%NGRID      = 1
  TZFIELD%NTYPE      = TYPEREAL
  TZFIELD%NDIMS      = 3
  !
  DO JSV = NSV_LNOXBEG, NSV_LNOXEND
    SELECT CASE(HGETSVM(JSV))
      CASE ('READ')
        IF ( KSIZELBXSV_ll /= 0 ) THEN
          TZFIELD%CMNHNAME   = 'LBX_LINOX'
          TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
          TZFIELD%CLBTYPE    = 'LBX'
          WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV
          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
!callabortstop
                CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize linox PLBXSVM')
        !
        IF (KSIZELBYSV_ll  /= 0 ) THEN
          TZFIELD%CMNHNAME   = 'LBY_LINOX'
          TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
          TZFIELD%CLBTYPE    = 'LBY'
          WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV
          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
!calla bortstop
                CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize linox PLBYSVM')
      CASE('INIT')
        IF ( SIZE(PLBXSVM,1) /= 0 ) PLBXSVM(:,:,:,JSV) = 0.
        IF ( SIZE(PLBYSVM,1) /= 0 ) PLBYSVM(:,:,:,JSV) = 0.
    END SELECT
  END DO
END IF
! Lagrangian variables
IF (NSV_LGEND>=NSV_LGBEG) THEN
  TZFIELD%CSTDNAME   = ''
  TZFIELD%CUNITS     = 'm'
  TZFIELD%NGRID      = 1
  TZFIELD%NTYPE      = TYPEREAL
  TZFIELD%NDIMS      = 3
  !
  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))
          TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
          TZFIELD%CLBTYPE    = 'LBX'
          WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'2_Y_Z_','LBXSVM',JSV
          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
!callabortstop
                CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize lagrangian PLBXSVM')
        !
        IF (KSIZELBYSV_ll  /= 0 ) THEN
          TZFIELD%CMNHNAME   = 'LBY_'//TRIM(CLGNAMES(JSV-NSV_LGBEG+1))
          TZFIELD%CLONGNAME  = TRIM(TZFIELD%CMNHNAME)
          TZFIELD%CLBTYPE    = 'LBY'
          WRITE(TZFIELD%CCOMMENT,'(A6,A6,I3.3)')'X_2_Z_','LBYSVM',JSV
          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
!callabortstop
                CALL PRINT_MSG(NVERB_FATAL,'GEN','INI_LB','problem to initialize lagrangian PLBYSVM')
      !
      CASE('INIT')
        IF ( SIZE(PLBXSVM,1) /= 0 ) PLBXSVM(:,:,:,JSV) = 0.
        IF ( SIZE(PLBYSVM,1) /= 0 ) PLBYSVM(:,:,:,JSV) = 0.
    END SELECT
  END DO
END IF
!-------------------------------------------------------------------------------
!
!*       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