Skip to content
Snippets Groups Projects
Commit 53f31871 authored by Juan Escobar's avatar Juan Escobar
Browse files

Julien Pergaud(via J.Escobar) 10/2018 : correction for GFS undef=9999. temperature values

parent 4795789f
No related branches found
No related tags found
No related merge requests found
......@@ -406,8 +406,6 @@ SELECT CASE (HINMODEL)
CALL READ_GRIB(HGRIB,KLUOUT,172,IRET,PMASK)
CASE ('NCEP ')
CALL READ_GRIB(HGRIB,KLUOUT,172,IRET,PMASK)
CASE ('ARPEGE','ALADIN','MOCAGE')
CALL READ_GRIB(HGRIB,KLUOUT,81,IRET,PMASK)
CASE ('HIRLAM')
......@@ -651,6 +649,9 @@ END SUBROUTINE READ_GRIB_SST
SUBROUTINE READ_GRIB_TSWATER(HGRIB,KLUOUT,HINMODEL,PMASK,PTS)
! ###########################
!
! MODIFICATIONS
! Julien Pergaud(via J.Escobar) 10/2018 : correction for GFS undef=9999. temperature values
!
USE MODD_SURF_PAR, ONLY : XUNDEF
!
IMPLICIT NONE
......@@ -676,7 +677,7 @@ SELECT CASE (HINMODEL)
CALL ABOR1_SFX('MODE_READ_GRIB:READ_GRIB_TSWATER:OPTION NOT SUPPORTED '//HINMODEL)
END SELECT
!
IF (SIZE(PMASK)==SIZE(PTS)) WHERE (PMASK(:)/=1.) PTS = XUNDEF
IF (SIZE(PMASK)==SIZE(PTS)) WHERE ((PMASK(:)/=1.) .OR. ((PMASK(:)==1.) .AND.(PTS(:)==9999.))) PTS = XUNDEF
!
IF (LHOOK) CALL DR_HOOK('MODE_READ_GRIB:READ_GRIB_TSWATER',1,ZHOOK_HANDLE)
END SUBROUTINE READ_GRIB_TSWATER
......@@ -741,6 +742,9 @@ END SUBROUTINE READ_GRIB_T2
SUBROUTINE READ_GRIB_T2_LAND(HGRIB,KLUOUT,HINMODEL,PMASK,ZFIELD)
! ###########################
!
! MODIFICATIONS
! Julien Pergaud(via J.Escobar) 10/2018 : correction for GFS undef=9999. temperature values
!
USE MODD_SURF_PAR, ONLY : XUNDEF
!
IMPLICIT NONE
......@@ -758,7 +762,7 @@ IF (LHOOK) CALL DR_HOOK('MODE_READ_GRIB:READ_GRIB_T2_LAND',0,ZHOOK_HANDLE)
!
CALL READ_GRIB_T2(HGRIB,KLUOUT,HINMODEL,PMASK,ZFIELD)
!
IF (SIZE(PMASK)==SIZE(ZFIELD)) WHERE (PMASK(:)/=1.) ZFIELD = XUNDEF
IF (SIZE(PMASK)==SIZE(ZFIELD)) WHERE ((PMASK(:)/=1.) .OR. ((PMASK(:)==1.) .AND.(ZFIELD(:)==9999.))) ZFIELD = XUNDEF
!
IF (LHOOK) CALL DR_HOOK('MODE_READ_GRIB:READ_GRIB_T2_LAND',1,ZHOOK_HANDLE)
END SUBROUTINE READ_GRIB_T2_LAND
......@@ -802,6 +806,9 @@ END SUBROUTINE PUT_LAYER_DEPTH
SUBROUTINE FILL_PFIELD(KLUOUT,HROUT,KNLAYERDEEP,PDIN,PFIELDIN,PMASK,PFIELDOUT,PDOUT)
! #######################
!
! MODIFICATIONS
! Julien Pergaud(via J.Escobar) 10/2018 : correction for GFS undef=9999. temperature values
!
USE MODD_SURF_PAR, ONLY : XUNDEF
!
IMPLICIT NONE
......@@ -836,9 +843,10 @@ DO JL=1,KNLAYERDEEP
PDOUT(:,JL)=SUM(PDIN(1:JL))
PFIELDOUT(:,JL)=PFIELDIN(:,JL)
IF (SIZE(PMASK)==SIZE(PFIELDOUT,1)) &
WHERE (PMASK(:)/=1.) PFIELDOUT(:,JL) = XUNDEF
WHERE ((PMASK(:)/=1.) .OR. ((PMASK(:)==1.) .AND.(PFIELDOUT(:,JL)==9999.))) PFIELDOUT(:,JL) = XUNDEF
ENDDO
!
IF (LHOOK) CALL DR_HOOK('MODE_READ_GRIB:FILL_PFIELD',1,ZHOOK_HANDLE)
END SUBROUTINE FILL_PFIELD
!-------------------------------------------------------------------
......@@ -2305,7 +2313,7 @@ REAL, DIMENSION(:,:), POINTER :: PD ! thickness of each layer
!* local variables
! ---------------
INTEGER(KIND=kindOfInt) :: IRET ! return code
INTEGER :: ILTYPE ! type of level (Grib code table 3)
INTEGER :: ILTYPE,ITER ! type of level (Grib code table 3)
INTEGER :: ILEV1 ! level definition
INTEGER :: ILEV2 ! level definition
INTEGER :: JL ! layer loop counter
......@@ -2335,6 +2343,8 @@ ZLEV1= 0.0
ZLEV2= 0.1
CALL READ_GRIB(HGRIB,KLUOUT,228139,IRET,ZFIELD,KLTYPE=ILTYPE,KLEV1=ILEV1,KLEV2=ILEV2,HTYPELEVEL=YTYPELEVEL,PLEV1=ZLEV1,PLEV2=ZLEV2)
!
IF (IRET== 0) THEN
ZD(1)=(ZLEV2 - ZLEV1)
......@@ -2356,6 +2366,7 @@ ZLEV2= 2.0
!
CALL READ_GRIB(HGRIB,KLUOUT,228139,IRET,ZFIELD,KLTYPE=ILTYPE,KLEV1=ILEV1,KLEV2=ILEV2,HTYPELEVEL=YTYPELEVEL,PLEV1=ZLEV1,PLEV2=ZLEV2)
IF (IRET == 0) THEN
INLAYERDEEP = 4
ZD(4)=(ZLEV2 - ZLEV1)
......@@ -2377,6 +2388,7 @@ ZLEV2= 1.0
CALL READ_GRIB(HGRIB,KLUOUT,228139,IRET,ZFIELD,KLTYPE=ILTYPE,KLEV1=ILEV1,KLEV2=ILEV2,HTYPELEVEL=YTYPELEVEL,PLEV1=ZLEV1,PLEV2=ZLEV2)
!
IF (IRET == 0) THEN
ZD(3)=(ZLEV2 - ZLEV1)
ZTG(:,3)=ZFIELD
......@@ -2394,6 +2406,8 @@ ZLEV1= 0.1
ZLEV2= 0.4
CALL READ_GRIB(HGRIB,KLUOUT,228139,IRET,ZFIELD,KLTYPE=ILTYPE,KLEV1=ILEV1,KLEV2=ILEV2,HTYPELEVEL=YTYPELEVEL,PLEV1=ZLEV1,PLEV2=ZLEV2)
!
IF (IRET== 0) THEN
ZD(2)=(ZLEV2 - ZLEV1)
ZTG(:,2)=ZFIELD
......@@ -2414,7 +2428,6 @@ IF(SUM(ZD(1:INLAYERDEEP)) < 3.) THEN
write(KLUOUT,'(a,i3,i3)') 'editionNumber MAKE_GRIB_INDEX',INLAYERDEEP
ZD(INLAYERDEEP)=3.-SUM(ZD(1:INLAYERDEEP-1))
write(KLUOUT,*) 'ZD',ZD
ZTG(:,INLAYERDEEP)=ZTG(:,INLAYERDEEP-1)
ENDIF
......@@ -2431,7 +2444,7 @@ WRITE (KLUOUT,'(A)') 'MODE_READ_GRIB: FILL PROFILE'
DEALLOCATE(ZD)
DEALLOCATE(ZTG)
!
!write(KLUOUT,*) 'OUT FILL ZD',PD,PTG
IF (LHOOK) CALL DR_HOOK('MODE_READ_GRIB:READ_GRIB_TG_NCEP',1,ZHOOK_HANDLE)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment