SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/detect_field.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE DETECT_FIELD(HPROGRAM,PFIELD,OITSHERE)
00003 !     ################################################
00004 !
00005 !!****  *DETECT_FIELD* - generic routine to check is a field is non-zero
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !
00010 !
00011 !!**  METHOD
00012 !!    ------
00013 !!    
00014 !!    
00015 !!
00016 !!    EXTERNAL
00017 !!    --------
00018 !!
00019 !!       
00020 !!    IMPLICIT ARGUMENTS
00021 !!    ------------------ 
00022 !!
00023 !!    REFERENCE
00024 !!    ---------
00025 !!
00026 !!      
00027 !!
00028 !!    AUTHOR
00029 !!    ------
00030 !!      S.Malardel       * Meteo France *
00031 !!
00032 !!    MODIFICATIONS
00033 !!    -------------
00034 !!      Original      02/2003
00035 !-----------------------------------------------------------------------------
00036 !
00037 !*       0.    DECLARATIONS
00038 !
00039 !
00040 #ifdef MNH
00041 USE MODI_DETECT_FIELD_MNH
00042 #endif
00043 !
00044 !
00045 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00046 USE PARKIND1  ,ONLY : JPRB
00047 !
00048 IMPLICIT NONE
00049 !
00050 !*       0.1   declarations of arguments
00051 !
00052  CHARACTER (LEN=6),  INTENT(IN) :: HPROGRAM   ! program
00053 !
00054 REAL, DIMENSION(:,:), INTENT(IN)::PFIELD ! array containing the data field
00055 !
00056 LOGICAL    , INTENT(OUT)         :: OITSHERE  ! T --> PFIELD is non zero somewhere
00057 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00058 !
00059 !
00060 !*       0.2   declarations of local variables
00061 !
00062 !
00063 !-------------------------------------------------------------------------------
00064 !-------------------------------------------------------------------------------
00065 !
00066 IF (LHOOK) CALL DR_HOOK('DETECT_FIELD',0,ZHOOK_HANDLE)
00067 IF (HPROGRAM=='MESONH') THEN
00068 !
00069 #ifdef MNH
00070   CALL DETECT_FIELD_MNH(HPROGRAM,SIZE(PFIELD,1),SIZE(PFIELD,2),PFIELD,OITSHERE)
00071 #endif
00072 !
00073 ELSEIF (HPROGRAM=='OFFLIN' .OR. HPROGRAM=='ASCII ' .OR. HPROGRAM=='TEXTE ' &
00074    .OR. HPROGRAM=='FA    ' .OR. HPROGRAM=='BINARY' .OR. HPROGRAM=='LFI   ') THEN
00075 !
00076   OITSHERE = .TRUE.
00077 !
00078 ELSEIF (HPROGRAM=='AROME ') THEN
00079 !
00080 #ifdef ARO
00081   CALL DETECT_FIELD_ARO(HPROGRAM,SIZE(PFIELD,1),SIZE(PFIELD,2),PFIELD,OITSHERE)
00082 #endif
00083 !
00084 ENDIF
00085 IF (LHOOK) CALL DR_HOOK('DETECT_FIELD',1,ZHOOK_HANDLE)
00086 !
00087 !-------------------------------------------------------------------------------
00088 !
00089 END SUBROUTINE DETECT_FIELD