SURFEX v7.3
General documentation of Surfex
 All Classes Files Functions Variables Typedefs
/home/dasprezs/EXPORT_v7_3/src/SURFEX/pgd_dummy.F90
Go to the documentation of this file.
00001 !     #########
00002       SUBROUTINE PGD_DUMMY(HPROGRAM)
00003 !     ##############################################################
00004 !
00005 !!**** *PGD_DUMMY* monitor for averaging and interpolations of physiographic fields
00006 !!
00007 !!    PURPOSE
00008 !!    -------
00009 !!
00010 !!    METHOD
00011 !!    ------
00012 !!   
00013 !
00014 !!    EXTERNAL
00015 !!    --------
00016 !!
00017 !!    IMPLICIT ARGUMENTS
00018 !!    ------------------
00019 !!
00020 !!    REFERENCE
00021 !!    ---------
00022 !!
00023 !!    AUTHOR
00024 !!    ------
00025 !!
00026 !!    V. Masson        Meteo-France
00027 !!
00028 !!    MODIFICATION
00029 !!    ------------
00030 !!
00031 !!    Original    10/12/97
00032 !!
00033 !----------------------------------------------------------------------------
00034 !
00035 !*    0.     DECLARATION
00036 !            -----------
00037 !
00038 USE MODD_PGD_GRID,           ONLY : NL
00039 USE MODD_PGDWORK,            ONLY : CATYPE
00040 USE MODD_SURF_PAR,           ONLY : XUNDEF
00041 USE MODD_DUMMY_SURF_FIELDS_n, ONLY : NDUMMY_NBR, CDUMMY_AREA, CDUMMY_NAME, XDUMMY_FIELDS
00042 !
00043 USE MODI_GET_LUOUT
00044 USE MODI_PGD_FIELD
00045 USE MODI_READ_NAM_PGD_DUMMY
00046 !
00047 !
00048 USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
00049 USE PARKIND1  ,ONLY : JPRB
00050 !
00051 IMPLICIT NONE
00052 !
00053 !*    0.1    Declaration of arguments
00054 !            ------------------------
00055 !
00056  CHARACTER(LEN=6),    INTENT(IN)    :: HPROGRAM     ! Type of program
00057 !
00058 !
00059 !*    0.2    Declaration of local variables
00060 !            ------------------------------
00061 !
00062 INTEGER                           :: ILUOUT    ! output listing logical unit
00063 INTEGER                           :: JNBR      ! loop counter on dummy fields
00064 !
00065 !*    0.3    Declaration of namelists
00066 !            ------------------------
00067 !
00068 INTEGER                             :: IDUMMY_NBR
00069  CHARACTER(LEN=20), DIMENSION(1000)  :: YDUMMY_NAME
00070  CHARACTER(LEN=3),  DIMENSION(1000)  :: YDUMMY_AREA
00071  CHARACTER(LEN=3),  DIMENSION(1000)  :: CDUMMY_ATYPE    ! avg type for dummy pgd fields
00072 !                                                      ! 'ARI' , 'INV'
00073  CHARACTER(LEN=28), DIMENSION(1000)  :: CDUMMY_FILE     ! data files
00074  CHARACTER(LEN=6),  DIMENSION(1000)  :: CDUMMY_FILETYPE ! type of these files
00075 REAL(KIND=JPRB) :: ZHOOK_HANDLE
00076 !
00077 !-------------------------------------------------------------------------------
00078 !
00079 !*    1.      Initializations of defaults
00080 !             ---------------------------
00081 !
00082 IF (LHOOK) CALL DR_HOOK('PGD_DUMMY',0,ZHOOK_HANDLE)
00083  CALL GET_LUOUT(HPROGRAM,ILUOUT)
00084 !
00085 !-------------------------------------------------------------------------------
00086 !
00087 !*    2.      Reading of namelist
00088 !             -------------------
00089 !
00090  CALL READ_NAM_PGD_DUMMY(HPROGRAM, IDUMMY_NBR, YDUMMY_NAME, YDUMMY_AREA, &
00091                           CDUMMY_ATYPE, CDUMMY_FILE, CDUMMY_FILETYPE      )  
00092 !
00093 NDUMMY_NBR     = IDUMMY_NBR
00094 CDUMMY_NAME(:) = YDUMMY_NAME(:)
00095 CDUMMY_AREA(:) = YDUMMY_AREA(:)
00096 !
00097 !-------------------------------------------------------------------------------
00098 !
00099 !*    3.      Allocation
00100 !             ----------
00101 !
00102 ALLOCATE(XDUMMY_FIELDS(NL,NDUMMY_NBR))
00103 !
00104 !-------------------------------------------------------------------------------
00105 !
00106 !*    4.      Computations
00107 !             ------------
00108 !
00109 DO JNBR=1,NDUMMY_NBR
00110   CATYPE = CDUMMY_ATYPE(JNBR)
00111   CALL PGD_FIELD(HPROGRAM,CDUMMY_NAME(JNBR),CDUMMY_AREA(JNBR),CDUMMY_FILE(JNBR), &
00112                    CDUMMY_FILETYPE(JNBR),XUNDEF,XDUMMY_FIELDS(:,JNBR)              )  
00113   CATYPE = 'ARI'
00114 END DO
00115 IF (LHOOK) CALL DR_HOOK('PGD_DUMMY',1,ZHOOK_HANDLE)
00116 !
00117 !-------------------------------------------------------------------------------
00118 !
00119 END SUBROUTINE PGD_DUMMY