SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/get_seriesn.F90
Go to the documentation of this file.
00001 !     ########################################
00002       SUBROUTINE GET_SERIES_n(HPROGRAM,KI,KS,PFIELD)
00003 !     ########################################
00004 !
00005 !!****  *GET_SERIES_n* - routine to get some surface fields
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !!
00010 !!**  METHOD
00011 !!    ------
00012 !!
00013 !!    EXTERNAL
00014 !!    --------
00015 !!
00016 !!
00017 !!    IMPLICIT ARGUMENTS
00018 !!    ------------------
00019 !!
00020 !!    REFERENCE
00021 !!    ---------
00022 !!
00023 !!
00024 !!    AUTHOR
00025 !!    ------
00026 !!      P. Le Moigne   *Meteo France*   
00027 !!
00028 !!    MODIFICATIONS
00029 !!    -------------
00030 !!      Original    07/2010
00031 !-------------------------------------------------------------------------------
00032 !
00033 !*       0.    DECLARATIONS
00034 !              ------------
00035 !
00036 USE MODI_GET_LUOUT
00037 USE MODI_UNPACK_SAME_RANK
00038 USE MODD_SURF_PAR,        ONLY   : XUNDEF
00039 !
00040 USE MODD_FLAKE_n, ONLY   : XTS, XT_MNW, XT_BOT, XCT, XH_ML
00041 !
00042 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00043 USE PARKIND1  ,ONLY : JPRB
00044 !
00045 USE MODI_GET_1D_MASK
00046 IMPLICIT NONE
00047 !
00048 !*       0.1   Declarations of arguments
00049 !              -------------------------
00050 !
00051  CHARACTER(LEN=6),       INTENT(IN)     :: HPROGRAM
00052 INTEGER,                INTENT(IN)     :: KI        ! Number of points
00053 INTEGER,                INTENT(IN)     :: KS        ! Number of points
00054 REAL, DIMENSION(KI,KS), INTENT(OUT)    :: PFIELD    ! output field
00055 !
00056 !
00057 !*       0.2   Declarations of local variables
00058 !              -------------------------------
00059 !
00060 INTEGER :: ILUOUT
00061 INTEGER :: IS
00062 REAL, DIMENSION(SIZE(XTS),KS) :: ZINF
00063 INTEGER, DIMENSION(KI)        :: IMASK
00064 REAL, DIMENSION(KI)           :: ZOUT
00065 REAL, DIMENSION(SIZE(XTS))    :: ZAUX
00066 !
00067 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00068 !-------------------------------------------------------------------------------
00069  CALL GET_LUOUT(HPROGRAM,ILUOUT)
00070 !-------------------------------------------------------------------------------
00071 IF (LHOOK) CALL DR_HOOK('GET_SERIES_N',0,ZHOOK_HANDLE)
00072 !
00073 ZINF(:,1)=XTS
00074 ZINF(:,2)=XT_MNW
00075 ZINF(:,3)=XT_BOT
00076 ZINF(:,4)=XCT
00077 ZINF(:,5)=XH_ML
00078 IF (KS>5) ZINF(:,6:KS)=XUNDEF
00079 
00080 DO IS=1,KS
00081    ZAUX(:)=ZINF(:,IS)
00082    CALL GET_1D_MASK(SIZE(ZAUX),KI,ZAUX,IMASK)
00083    CALL UNPACK_SAME_RANK(IMASK,ZAUX(:),ZOUT(:))
00084    PFIELD(KI,IS)=ZOUT(KI)
00085 ENDDO
00086 !
00087 !           
00088 IF (LHOOK) CALL DR_HOOK('GET_SERIES_N',1,ZHOOK_HANDLE)
00089 !==============================================================================
00090 !
00091 END SUBROUTINE GET_SERIES_n