!-----------------------------------------------------------------------------
Subroutine Define_Drought_Events
! D1: Mild or more intense drought, D2: Moderate more intense drought, D3: Severe of more intense drought, D4: Extreme drought
Integer :: ilon, ilat, ireg, it, DR1, DR0
D1=Miss; D2=Miss; D3=Miss; OD1=Miss; OD2=Miss; OD3=Miss
Do ilon=1, Nlon
   Do ilat=1, Nlat
      Do it=1, Ntime
         if (PDSI(ilon,ilat,it)/=Miss.AND.PDSI(ilon,ilat,it)<=Thre_1) then; D1(ilon,ilat,it)=1; OD1(ilon,ilat,it)=0; else; D1(ilon,ilat,it)=0; OD1(ilon,ilat,it)=1; endif
         if (PDSI(ilon,ilat,it)/=Miss.AND.PDSI(ilon,ilat,it)<=Thre_2) then; D2(ilon,ilat,it)=1; OD2(ilon,ilat,it)=0; else; D2(ilon,ilat,it)=0; OD2(ilon,ilat,it)=1; endif
         if (PDSI(ilon,ilat,it)/=Miss.AND.PDSI(ilon,ilat,it)<=Thre_3) then; D3(ilon,ilat,it)=1; OD3(ilon,ilat,it)=0; else; D3(ilon,ilat,it)=0; OD3(ilon,ilat,it)=1; endif
      Enddo
   Enddo
Enddo
D1_reg=Miss; D2_reg=Miss; D3_reg=Miss; OD1_reg=Miss; OD2_reg=Miss; OD3_reg=Miss
Do ireg=1, Nreg
   Do it=1, Ntime
      Call Reg_Drought_Event(PDSI,ireg,it,Thre_1, Dr1, Dr0); D1_Reg(ireg,it)=Dr1; OD1_Reg(ireg,it)=Dr0
      Call Reg_Drought_Event(PDSI,ireg,it,Thre_2, Dr1, Dr0); D2_Reg(ireg,it)=Dr1; OD2_Reg(ireg,it)=Dr0
      Call Reg_Drought_Event(PDSI,ireg,it,Thre_3, Dr1, Dr0); D3_Reg(ireg,it)=Dr1; OD3_Reg(ireg,it)=Dr0
!      if (PDSI_Reg(it,ireg)/=Miss.AND.PDSI_Reg(it,ireg)<=Thre_1) then; D1_Reg(ireg,it)=1; OD1_Reg(ireg,it)=0; else; D1_Reg(ireg,it)=0; OD1_Reg(ireg,it)=1; endif
!      if (PDSI_Reg(it,ireg)/=Miss.AND.PDSI_Reg(it,ireg)<=Thre_2) then; D2_Reg(ireg,it)=1; OD2_Reg(ireg,it)=0; else; D2_Reg(ireg,it)=0; OD2_Reg(ireg,it)=1; endif
!      if (PDSI_Reg(it,ireg)/=Miss.AND.PDSI_Reg(it,ireg)<=Thre_3) then; D3_Reg(ireg,it)=1; OD3_Reg(ireg,it)=0; else; D3_Reg(ireg,it)=0; OD3_Reg(ireg,it)=1; endif
   Enddo
Enddo
End Subroutine Define_Drought_Events
!-----------------------------------------------------------------------------

