|
SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE PGD_SNAP_TEMP_PROFILE(HPROGRAM,HFILENAME,PSNAP_COEF, & 00003 KSNAP,KTPS,HSNAP_TIME_REF ) 00004 ! ############################################################## 00005 ! 00006 !!**** *PGD_SNAP_TEMP_PROFILE* reads a temporal emission profile 00007 !! 00008 !! PURPOSE 00009 !! ------- 00010 !! 00011 !! AUTHOR 00012 !! ------ 00013 !! 00014 !! S. QUEGUINER Meteo-France 00015 !! 00016 !! MODIFICATION 00017 !! ------------ 00018 !! 00019 !! Original 09/2011 00020 !! 00021 !---------------------------------------------------------------------------- 00022 ! 00023 !* 0. DECLARATION 00024 ! ----------- 00025 ! 00026 00027 USE MODI_OPEN_FILE 00028 USE MODI_CLOSE_FILE 00029 USE MODI_GET_LUOUT 00030 USE MODI_TEST_NAM_VAR_SURF 00031 ! 00032 ! 00033 USE MODD_SURF_PAR, ONLY : XUNDEF 00034 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00035 USE PARKIND1 ,ONLY : JPRB 00036 IMPLICIT NONE 00037 ! 00038 !* 0.1 Declaration of arguments 00039 ! ------------------------ 00040 ! 00041 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! Type of program 00042 CHARACTER(LEN=28), INTENT(IN) :: HFILENAME ! Name of the field file. 00043 REAL, DIMENSION(:,:), INTENT(OUT):: PSNAP_COEF ! Snap coefficient 00044 INTEGER, INTENT(IN) :: KTPS ! Number of time step 00045 INTEGER, INTENT(IN) :: KSNAP ! Number of snaps 00046 CHARACTER(LEN=5), OPTIONAL, INTENT(OUT):: HSNAP_TIME_REF ! Reference time 00047 ! ! 'UTC ' : UTC time 00048 ! ! 'SOLAR' : SOLAR time 00049 ! ! 'LEGAL' : LEGAL time 00050 ! 00051 !* 0.2 Declaration of local variables 00052 ! ------------------------------ 00053 ! 00054 INTEGER :: IUNIT ! logical unit 00055 INTEGER :: JSNAP ! loop counter on snaps 00056 CHARACTER(LEN=200) :: YCOMMENT 00057 REAL, DIMENSION(KTPS) :: ZSNAP_COEF ! snap temporal coefficient 00058 INTEGER :: ISNAP ! snap number 00059 INTEGER :: ILUOUT ! output listing 00060 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00061 !---------------------------------------------------------------------------- 00062 ! 00063 !* 1. Open the file 00064 ! ------------- 00065 ! 00066 IF (LHOOK) CALL DR_HOOK('PGD_SNAP_TEMP_PROFILE',0,ZHOOK_HANDLE) 00067 ! 00068 CALL OPEN_FILE(HPROGRAM,IUNIT,HFILENAME,'FORMATTED',HACTION='READ') 00069 ! 00070 CALL GET_LUOUT(HPROGRAM,ILUOUT) 00071 ! 00072 !---------------------------------------------------------------------------- 00073 READ(IUNIT,'(A)') YCOMMENT 00074 !---------------------------------------------------------------------------- 00075 ! 00076 !* 2. Reading of time reference for hourly profiles 00077 ! --------------------------------------------- 00078 ! 00079 IF (PRESENT(HSNAP_TIME_REF)) THEN 00080 READ(IUNIT,'(A)') HSNAP_TIME_REF 00081 CALL TEST_NAM_VAR_SURF(ILUOUT,'CSNAP_TIME_REF',HSNAP_TIME_REF,'UTC ','SOLAR','LEGAL') 00082 END IF 00083 ! 00084 !---------------------------------------------------------------------------- 00085 READ(IUNIT,'(A)') YCOMMENT 00086 !---------------------------------------------------------------------------- 00087 ! 00088 !* 3. Reading of snaps temporal coefficients 00089 ! -------------------------------------- 00090 ! 00091 PSNAP_COEF(:,:)=0. 00092 ! 00093 DO JSNAP=1,KSNAP 00094 READ(IUNIT,*,END=2000) ISNAP,ZSNAP_COEF(1:KTPS) 00095 PSNAP_COEF(:,ISNAP)=ZSNAP_COEF(:) 00096 ENDDO 00097 ! 00098 !---------------------------------------------------------------------------- 00099 ! 00100 !* 8. Closing of the data file 00101 ! ------------------------ 00102 ! 00103 2000 CALL CLOSE_FILE (HPROGRAM,IUNIT) 00104 ! 00105 IF (LHOOK) CALL DR_HOOK('PGD_SNAP_TEMP_PROFILE',1,ZHOOK_HANDLE) 00106 ! 00107 !------------------------------------------------------------------------------- 00108 ! 00109 END SUBROUTINE PGD_SNAP_TEMP_PROFILE
1.8.0