SURFEX v7.3
General documentation of Surfex
|
00001 ! ################################################################################# 00002 SUBROUTINE PREP_SURF_ATM(HPROGRAM,HATMFILE,HATMFILETYPE,HPGDFILE,HPGDFILETYPE) 00003 ! ################################################################################# 00004 ! 00005 !!**** *PREP_SURF_ATM* - driver for surface fields preparation 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 ! 00010 !!** METHOD 00011 !! ------ 00012 !! 00013 !! REFERENCE 00014 !! --------- 00015 !! 00016 !! 00017 !! AUTHOR 00018 !! ------ 00019 !! V. Masson 00020 !! 00021 !! MODIFICATIONS 00022 !! ------------- 00023 !! Original 01/2004 00024 !! P. Le Moigne 10/2005, Phasage Arome 00025 !!------------------------------------------------------------------ 00026 ! 00027 00028 ! 00029 USE MODD_SURF_ATM_n, ONLY : NDIM_SEA, NDIM_TOWN, NDIM_NATURE, NDIM_WATER 00030 ! 00031 USE MODI_PREP_NATURE 00032 USE MODI_PREP_SEA 00033 USE MODI_PREP_INLAND_WATER 00034 USE MODI_PREP_TOWN 00035 ! 00036 USE MODE_READ_GRIB 00037 ! 00038 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00039 USE PARKIND1 ,ONLY : JPRB 00040 ! 00041 USE MODI_SURF_VERSION 00042 ! 00043 IMPLICIT NONE 00044 ! 00045 !* 0.1 declarations of arguments 00046 ! 00047 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling surf. schemes 00048 CHARACTER(LEN=28), INTENT(IN) :: HATMFILE ! name of the Atmospheric file 00049 CHARACTER(LEN=6), INTENT(IN) :: HATMFILETYPE! type of the Atmospheric file 00050 CHARACTER(LEN=28), INTENT(IN) :: HPGDFILE ! name of the Atmospheric file 00051 CHARACTER(LEN=6), INTENT(IN) :: HPGDFILETYPE! type of the Atmospheric file 00052 ! 00053 !* 0.2 declarations of local variables 00054 CHARACTER(LEN=28) :: YATMFILE ! name of the Atmospheric file 00055 CHARACTER(LEN=6) :: YATMFILETYPE! type of the Atmospheric file 00056 CHARACTER(LEN=28) :: YPGDFILE ! name of the Atmospheric file 00057 CHARACTER(LEN=6) :: YPGDFILETYPE! type of the Atmospheric file 00058 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00059 00060 ! 00061 !------------------------------------------------------------------------------------- 00062 IF (LHOOK) CALL DR_HOOK('PREP_SURF_ATM',0,ZHOOK_HANDLE) 00063 CALL SURF_VERSION 00064 !------------------------------------------------------------------------------------- 00065 ! 00066 IF ( LEN_TRIM(HATMFILE)>0 ) THEN 00067 YATMFILE=HATMFILE 00068 ELSE 00069 YATMFILE=' ' 00070 ENDIF 00071 ! 00072 IF ( LEN_TRIM(HPGDFILE)>0 ) THEN 00073 YPGDFILE=HPGDFILE 00074 ELSE 00075 YPGDFILE=' ' 00076 ENDIF 00077 ! 00078 IF ( LEN_TRIM(HATMFILETYPE)>0 ) THEN 00079 YATMFILETYPE=HATMFILETYPE 00080 ELSE 00081 YATMFILETYPE=' ' 00082 ENDIF 00083 ! 00084 IF ( LEN_TRIM(HPGDFILETYPE)>0 ) THEN 00085 YPGDFILETYPE=HPGDFILETYPE 00086 ELSE 00087 YPGDFILETYPE=' ' 00088 ENDIF 00089 ! 00090 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00091 ! SEA Tile calculations: 00092 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00093 ! 00094 IF(NDIM_SEA>0) CALL PREP_SEA(HPROGRAM,YATMFILE,YATMFILETYPE,YPGDFILE,YPGDFILETYPE) 00095 ! 00096 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00097 ! INLAND WATER Tile calculations: 00098 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00099 ! 00100 IF(NDIM_WATER>0) CALL PREP_INLAND_WATER(HPROGRAM,YATMFILE,YATMFILETYPE,YPGDFILE,YPGDFILETYPE) 00101 ! 00102 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00103 ! NATURAL SURFACE Tile calculations: 00104 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00105 ! 00106 IF(NDIM_NATURE>0) CALL PREP_NATURE(HPROGRAM,YATMFILE,YATMFILETYPE,YPGDFILE,YPGDFILETYPE) 00107 ! 00108 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00109 ! URBAN Tile calculations: 00110 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00111 ! 00112 IF(NDIM_TOWN>0) CALL PREP_TOWN(HPROGRAM,YATMFILE,YATMFILETYPE,YPGDFILE,YPGDFILETYPE) 00113 ! 00114 CALL CLEAR_GRIB_INDEX 00115 ! 00116 IF (LHOOK) CALL DR_HOOK('PREP_SURF_ATM',1,ZHOOK_HANDLE) 00117 ! 00118 !------------------------------------------------------------------------------------- 00119 ! 00120 END SUBROUTINE PREP_SURF_ATM