SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE READ_DUMMY_n(HPROGRAM) 00003 ! ################################# 00004 ! 00005 !!**** *READ_DUMMY_n* - routine to READ dummy surface fields 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 !! 00010 !! AUTHOR 00011 !! ------ 00012 !! V. Masson *Meteo France* 00013 !! 00014 !! MODIFICATIONS 00015 !! ------------- 00016 !! Original 03/2004 00017 !------------------------------------------------------------------------------- 00018 ! 00019 !* 0. DECLARATIONS 00020 ! ------------ 00021 ! 00022 USE MODD_DUMMY_SURF_FIELDS_n, ONLY : NDUMMY_NBR, CDUMMY_NAME, & 00023 CDUMMY_AREA, XDUMMY_FIELDS 00024 USE MODD_SURF_ATM_n , ONLY : NSIZE_FULL 00025 ! 00026 USE MODI_READ_SURF 00027 ! 00028 ! 00029 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00030 USE PARKIND1 ,ONLY : JPRB 00031 ! 00032 IMPLICIT NONE 00033 ! 00034 !* 0.1 Declarations of arguments 00035 ! ------------------------- 00036 ! 00037 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! 00038 ! 00039 !* 0.2 Declarations of local variables 00040 ! ------------------------------- 00041 ! 00042 INTEGER :: JDUMMY ! loop counter 00043 ! 00044 CHARACTER(LEN=20 ):: YSTRING20 ! string 00045 CHARACTER(LEN=3 ):: YSTRING03 ! string 00046 ! 00047 INTEGER :: IRESP ! IRESP : return-code if a problem appears 00048 CHARACTER(LEN=12) :: YRECFM ! Name of the article to be read 00049 CHARACTER(LEN=100):: YCOMMENT ! Comment string 00050 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00051 ! 00052 !------------------------------------------------------------------------------- 00053 ! 00054 !* 2. Number of dummy fields : 00055 ! ---------------------- 00056 ! 00057 IF (LHOOK) CALL DR_HOOK('READ_DUMMY_N',0,ZHOOK_HANDLE) 00058 YRECFM='DUMMY_GR_NBR' 00059 YCOMMENT=' ' 00060 ! 00061 CALL READ_SURF(HPROGRAM,YRECFM,NDUMMY_NBR,IRESP,HCOMMENT=YCOMMENT) 00062 ! 00063 CDUMMY_NAME(:) = ' ' 00064 CDUMMY_AREA(:) = ' ' 00065 00066 !------------------------------------------------------------------------------- 00067 ! 00068 !* 3. Dummy fields : 00069 ! ------------ 00070 ! 00071 ALLOCATE(XDUMMY_FIELDS(NSIZE_FULL,NDUMMY_NBR)) 00072 ! 00073 ! 00074 DO JDUMMY=1,NDUMMY_NBR 00075 ! 00076 WRITE(YRECFM,FMT='(A8,I3.3,A5)') 'DUMMY_GR',JDUMMY,' ' 00077 CALL READ_SURF(HPROGRAM,YRECFM,XDUMMY_FIELDS(:,JDUMMY),IRESP,HCOMMENT=YCOMMENT) 00078 ! 00079 ! 00080 YSTRING20=YCOMMENT(21:40) 00081 YSTRING03=YCOMMENT(41:43) 00082 ! 00083 CDUMMY_NAME(JDUMMY) = YSTRING20 00084 CDUMMY_AREA(JDUMMY) = YSTRING03 00085 ! 00086 END DO 00087 IF (LHOOK) CALL DR_HOOK('READ_DUMMY_N',1,ZHOOK_HANDLE) 00088 ! 00089 !------------------------------------------------------------------------------- 00090 ! 00091 END SUBROUTINE READ_DUMMY_n