SURFEX v7.3
General documentation of Surfex
|
00001 ! ######### 00002 SUBROUTINE READ_PGD_SCHEMES(HPROGRAM,HNATURE,HSEA,HTOWN,HWATER) 00003 ! ###################################### 00004 !! 00005 !! PURPOSE 00006 !! ------- 00007 !! initializes the surface SCHEMES. 00008 !! 00009 !! METHOD 00010 !! ------ 00011 !! 00012 !! EXTERNAL 00013 !! -------- 00014 !! 00015 !! 00016 !! IMPLICIT ARGUMENTS 00017 !! ------------------ 00018 !! 00019 !! 00020 !! REFERENCE 00021 !! --------- 00022 !! 00023 !! AUTHOR 00024 !! ------ 00025 !! 00026 !! V. Masson Meteo-France 00027 !! 00028 !! MODIFICATION 00029 !! ------------ 00030 !! 00031 !! Original 13/10/03 00032 !---------------------------------------------------------------------------- 00033 ! 00034 !* 0. DECLARATION 00035 ! ----------- 00036 ! 00037 USE MODI_DEFAULT_SCHEMES 00038 USE MODI_TEST_NAM_VAR_SURF 00039 USE MODI_OPEN_NAMELIST 00040 USE MODI_CLOSE_NAMELIST 00041 USE MODI_GET_LUOUT 00042 ! 00043 USE MODN_PGD_SCHEMES 00044 ! 00045 USE MODE_POS_SURF 00046 ! 00047 ! 00048 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00049 USE PARKIND1 ,ONLY : JPRB 00050 ! 00051 IMPLICIT NONE 00052 ! 00053 !* 0.1 Declaration of dummy arguments 00054 ! ------------------------------ 00055 ! 00056 CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling READ_PGD 00057 CHARACTER(LEN=6), INTENT(OUT) :: HNATURE ! scheme for natural surfaces 00058 CHARACTER(LEN=6), INTENT(OUT) :: HSEA ! scheme for sea 00059 CHARACTER(LEN=6), INTENT(OUT) :: HTOWN ! scheme for towns 00060 CHARACTER(LEN=6), INTENT(OUT) :: HWATER ! scheme for inland water 00061 ! 00062 ! 00063 !* 0.2 Declaration of local variables 00064 ! ------------------------------ 00065 ! 00066 INTEGER :: ILUOUT ! logical unit 00067 INTEGER :: ILUNAM ! logical unit 00068 ! 00069 LOGICAL :: GFOUND 00070 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00071 ! 00072 !------------------------------------------------------------------------------ 00073 ! 00074 !* 1. defaults 00075 ! 00076 IF (LHOOK) CALL DR_HOOK('READ_PGD_SCHEMES',0,ZHOOK_HANDLE) 00077 CALL DEFAULT_SCHEMES(HPROGRAM,CNATURE,CSEA,CTOWN,CWATER) 00078 ! 00079 !------------------------------------------------------------------------------ 00080 ! 00081 !* 2. opening of namelist 00082 ! 00083 CALL GET_LUOUT(HPROGRAM,ILUOUT) 00084 ! 00085 CALL OPEN_NAMELIST(HPROGRAM,ILUNAM) 00086 ! 00087 !------------------------------------------------------------------------------- 00088 ! 00089 !* 3. reading of namelist 00090 ! 00091 CALL POSNAM(ILUNAM,'NAM_PGD_SCHEMES',GFOUND,ILUOUT) 00092 IF (GFOUND) READ(UNIT=ILUNAM,NML=NAM_PGD_SCHEMES) 00093 ! 00094 !------------------------------------------------------------------------------- 00095 ! 00096 !* 4. check of file type 00097 ! 00098 CALL TEST_NAM_VAR_SURF(ILUOUT,'CNATURE',CNATURE,'NONE ','ISBA ','TSZ0 ','FLUX ') 00099 CALL TEST_NAM_VAR_SURF(ILUOUT,'CSEA ',CSEA ,'NONE ','SEAFLX','FLUX ') 00100 CALL TEST_NAM_VAR_SURF(ILUOUT,'CTOWN ',CTOWN ,'NONE ','TEB ','FLUX ') 00101 CALL TEST_NAM_VAR_SURF(ILUOUT,'CWATER ',CWATER ,'NONE ','WATFLX','FLUX ','FLAKE ') 00102 ! 00103 HNATURE = CNATURE 00104 HSEA = CSEA 00105 HTOWN = CTOWN 00106 HWATER = CWATER 00107 !------------------------------------------------------------------------------ 00108 ! 00109 !* 5. close namelist file 00110 ! 00111 CALL CLOSE_NAMELIST(HPROGRAM,ILUNAM) 00112 IF (LHOOK) CALL DR_HOOK('READ_PGD_SCHEMES',1,ZHOOK_HANDLE) 00113 ! 00114 !------------------------------------------------------------------------------- 00115 ! 00116 END SUBROUTINE READ_PGD_SCHEMES