SURFEX v7.3
General documentation of Surfex
|
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