SURFEX v7.3
General documentation of Surfex
|
00001 ! ###################### 00002 MODULE MODD_DIAG_SURF_ATM_n 00003 ! ###################### 00004 ! 00005 !!**** *MODD_DIAG_SURF_ATM - declaration of diagnostics for the surface 00006 !! 00007 !! PURPOSE 00008 !! ------- 00009 ! 00010 !! 00011 !!** IMPLICIT ARGUMENTS 00012 !! ------------------ 00013 !! None 00014 !! 00015 !! REFERENCE 00016 !! --------- 00017 !! 00018 !! AUTHOR 00019 !! ------ 00020 !! V. Masson *Meteo France* 00021 !! 00022 !! MODIFICATIONS 00023 !! ------------- 00024 !! Original 01/2004 00025 !! Modified 01/2006 : sea flux parameterization. 00026 !! Modified 04/2009 : precip for/from restart file. 00027 !! Modified 08/2009 : BUDGETC for all tiles 00028 ! 00029 !* 0. DECLARATIONS 00030 ! ------------ 00031 ! 00032 USE MODD_TYPE_DATE_SURF 00033 ! 00034 ! 00035 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00036 USE PARKIND1 ,ONLY : JPRB 00037 ! 00038 IMPLICIT NONE 00039 00040 TYPE DIAG_SURF_ATM_t 00041 !------------------------------------------------------------------------------ 00042 ! 00043 REAL :: XDIAG_TSTEP ! time step for diagnostics writing 00044 ! 00045 INTEGER :: N2M ! flag for 2 meters (and 10 meters) quantities 00046 LOGICAL :: L2M_MIN_ZS ! flag for 2 meters quantities evaluated on 00047 ! ! the minimum orographyy of the grid 00048 LOGICAL :: LSURF_BUDGET ! flag for surface energy budget 00049 LOGICAL :: LRAD_BUDGET ! flag for radiative energy budget 00050 LOGICAL :: LCOEF ! flag for transfer coefficients 00051 LOGICAL :: LSURF_VARS ! flag for surface variables 00052 LOGICAL :: LFRAC ! flag for writing fractions of each four tiles 00053 LOGICAL :: LDIAG_GRID ! flag for mean grid diag 00054 LOGICAL :: LSURF_BUDGETC ! flag for surface cumulated energy budget 00055 LOGICAL :: LRESET_BUDGETC ! flag for surface cumulated energy budget 00056 LOGICAL :: LREAD_BUDGETC ! flag for surface cumulated energy budget 00057 LOGICAL :: LPROVAR_TO_DIAG ! switch to write (or not) prognostic variable 00058 ! and allows puting field in diagnostics 00059 LOGICAL :: LSELECT ! switch to control which fields are written 00060 ! (only those whose naem appears in in text array) 00061 ! 00062 TYPE(DATE_TIME):: TIME_BUDGETC 00063 ! 00064 !* variables for each tile 00065 ! 00066 REAL, POINTER, DIMENSION(:,:) :: XRI_TILE ! Bulk-Richardson number (-) 00067 REAL, POINTER, DIMENSION(:,:) :: XCD_TILE ! drag coefficient for wind (W/s2) 00068 REAL, POINTER, DIMENSION(:,:) :: XCH_TILE ! drag coefficient for heat (W/s) 00069 REAL, POINTER, DIMENSION(:,:) :: XCE_TILE ! drag coefficient for vapor (W/s/K) 00070 REAL, POINTER, DIMENSION(:,:) :: XRN_TILE ! net radiation at surface (W/m2) 00071 REAL, POINTER, DIMENSION(:,:) :: XH_TILE ! sensible heat flux (W/m2) 00072 REAL, POINTER, DIMENSION(:,:) :: XLE_TILE ! total latent heat flux (W/m2) 00073 REAL, POINTER, DIMENSION(:,:) :: XLEI_TILE ! sublimation latent heat flux (W/m2) 00074 REAL, POINTER, DIMENSION(:,:) :: XGFLUX_TILE ! net soil-vegetation flux (W/m2) 00075 REAL, POINTER, DIMENSION(:,:) :: XTS_TILE ! surface temperature (K) 00076 REAL, POINTER, DIMENSION(:,:) :: XT2M_TILE ! air temperature at 2 meters (K) 00077 REAL, POINTER, DIMENSION(:,:) :: XT2M_MIN_TILE! Minimum air temperature at 2 meters (K) 00078 REAL, POINTER, DIMENSION(:,:) :: XT2M_MAX_TILE! Maximum air temperature at 2 meters (K) 00079 REAL, POINTER, DIMENSION(:,:) :: XQ2M_TILE ! air humidity at 2 meters (kg/kg) 00080 REAL, POINTER, DIMENSION(:,:) :: XHU2M_TILE ! air relative humidity at 2 meters(-) 00081 REAL, POINTER, DIMENSION(:,:) :: XHU2M_MIN_TILE! Minimum air relative humidity at 2 meters(-) 00082 REAL, POINTER, DIMENSION(:,:) :: XHU2M_MAX_TILE! Maximum air relative humidity at 2 meters(-) 00083 REAL, POINTER, DIMENSION(:,:) :: XZON10M_TILE ! zonal wind at 10 meters (m/s) 00084 REAL, POINTER, DIMENSION(:,:) :: XMER10M_TILE ! meridian wind at 10 meters (m/s) 00085 REAL, POINTER, DIMENSION(:,:) :: XWIND10M_TILE! wind at 10 meters (m/s) 00086 REAL, POINTER, DIMENSION(:,:) :: XWIND10M_MAX_TILE ! Maximumwind at 10 meters (m/s) 00087 REAL, POINTER, DIMENSION(:,:) :: XQS_TILE 00088 REAL, POINTER, DIMENSION(:,:) :: XZ0_TILE ! roughness length for momentum (m) 00089 REAL, POINTER, DIMENSION(:,:) :: XZ0H_TILE ! roughness length for heat (m) 00090 REAL, POINTER, DIMENSION(:,:) :: XSWD_TILE ! short wave downward radiation (W/m2) 00091 REAL, POINTER, DIMENSION(:,:) :: XSWU_TILE ! short wave upward radiation (W/m2) 00092 REAL, POINTER, DIMENSION(:,:) :: XLWD_TILE ! longt wave downward radiation (W/m2) 00093 REAL, POINTER, DIMENSION(:,:) :: XLWU_TILE ! longt wave upward radiation (W/m2) 00094 REAL, POINTER, DIMENSION(:,:,:) :: XSWBD_TILE ! short wave downward radiation by spectral band(W/m2) 00095 REAL, POINTER, DIMENSION(:,:,:) :: XSWBU_TILE ! short wave upward radiation by spectral band(W/m2) 00096 REAL, POINTER, DIMENSION(:,:) :: XFMU_TILE ! zonal friction 00097 REAL, POINTER, DIMENSION(:,:) :: XFMV_TILE ! meridian friction 00098 ! 00099 !* Cumulated variables for each tile 00100 ! 00101 REAL, POINTER, DIMENSION(:,:) :: XRNC_TILE ! net radiation at surface (J/m2) 00102 REAL, POINTER, DIMENSION(:,:) :: XHC_TILE ! sensible heat flux (J/m2) 00103 REAL, POINTER, DIMENSION(:,:) :: XLEC_TILE ! total latent heat flux (J/m2) 00104 REAL, POINTER, DIMENSION(:,:) :: XLEIC_TILE ! sublimation latent heat flux (J/m2) 00105 REAL, POINTER, DIMENSION(:,:) :: XGFLUXC_TILE ! net soil-vegetation flux (J/m2) 00106 REAL, POINTER, DIMENSION(:,:) :: XSWDC_TILE ! short wave downward radiation (J/m2) 00107 REAL, POINTER, DIMENSION(:,:) :: XSWUC_TILE ! short wave upward radiation (J/m2) 00108 REAL, POINTER, DIMENSION(:,:) :: XLWDC_TILE ! longt wave downward radiation (J/m2) 00109 REAL, POINTER, DIMENSION(:,:) :: XLWUC_TILE ! longt wave upward radiation (J/m2) 00110 REAL, POINTER, DIMENSION(:,:) :: XFMUC_TILE ! zonal friction 00111 REAL, POINTER, DIMENSION(:,:) :: XFMVC_TILE ! meridian friction 00112 ! 00113 !* averaged variables 00114 ! 00115 REAL, POINTER, DIMENSION(:) :: XAVG_RI ! Bulk-Richardson number (-) 00116 REAL, POINTER, DIMENSION(:) :: XAVG_CD ! drag coefficient for wind (W/s2) 00117 REAL, POINTER, DIMENSION(:) :: XAVG_CH ! drag coefficient for heat (W/s) 00118 REAL, POINTER, DIMENSION(:) :: XAVG_CE ! drag coefficient for vapor (W/s/K) 00119 REAL, POINTER, DIMENSION(:) :: XAVG_RN ! net radiation at surface (W/m2) 00120 REAL, POINTER, DIMENSION(:) :: XAVG_H ! sensible heat flux (W/m2) 00121 REAL, POINTER, DIMENSION(:) :: XAVG_LE ! total latent heat flux (W/m2) 00122 REAL, POINTER, DIMENSION(:) :: XAVG_LEI ! sublimation latent heat flux (W/m2) 00123 REAL, POINTER, DIMENSION(:) :: XAVG_GFLUX ! net soil-vegetation flux (W/m2) 00124 REAL, POINTER, DIMENSION(:) :: XAVG_TS ! surface temperature (K) 00125 REAL, POINTER, DIMENSION(:) :: XAVG_T2M ! air temperature at 2 meters (K) 00126 REAL, POINTER, DIMENSION(:) :: XAVG_Q2M ! air humidity at 2 meters (kg/kg) 00127 REAL, POINTER, DIMENSION(:) :: XAVG_HU2M ! air relative humidity at 2 meters(-) 00128 REAL, POINTER, DIMENSION(:) :: XAVG_ZON10M ! zonal wind at 10 meters (m/s) 00129 REAL, POINTER, DIMENSION(:) :: XAVG_MER10M ! meridian wind at 10 meters (m/s) 00130 REAL, POINTER, DIMENSION(:) :: XAVG_SFCO2 ! CO2 flux (kg/m2/s) 00131 REAL, POINTER, DIMENSION(:) :: XAVG_T2M_MIN_ZS ! air temperature at 2 meters (K) 00132 REAL, POINTER, DIMENSION(:) :: XAVG_Q2M_MIN_ZS ! air humidity at 2 meters (kg/kg) 00133 REAL, POINTER, DIMENSION(:) :: XAVG_HU2M_MIN_ZS! air relative humidity at 2 m (-) 00134 REAL, POINTER, DIMENSION(:) :: XPS ! air pressure at the surface (Pa) 00135 REAL, POINTER, DIMENSION(:) :: XRHOA ! air density at the surface (kg/m3) 00136 REAL, POINTER, DIMENSION(:) :: XAVG_QS 00137 REAL, POINTER, DIMENSION(:) :: XAVG_Z0 ! roughness length for momentum (m) 00138 REAL, POINTER, DIMENSION(:) :: XAVG_Z0H ! roughness length for heat (m) 00139 REAL, POINTER, DIMENSION(:) :: XAVG_SWD ! short wave downward radiation (W/m2) 00140 REAL, POINTER, DIMENSION(:) :: XAVG_SWU ! short wave upward radiation (W/m2) 00141 REAL, POINTER, DIMENSION(:) :: XAVG_LWD ! longt wave downward radiation (W/m2) 00142 REAL, POINTER, DIMENSION(:) :: XAVG_LWU ! longt wave upward radiation (W/m2) 00143 REAL, POINTER, DIMENSION(:,:) :: XAVG_SWBD ! short wave downward radiation by spectral band(W/m2) 00144 REAL, POINTER, DIMENSION(:,:) :: XAVG_SWBU ! short wave upward radiation by spectral band(W/m2) 00145 REAL, POINTER, DIMENSION(:) :: XAVG_FMU ! zonal friction 00146 REAL, POINTER, DIMENSION(:) :: XAVG_FMV ! meridian friction 00147 REAL, POINTER, DIMENSION(:) :: XSSO_FMU ! zonal friction (with SSO) (Pa) 00148 REAL, POINTER, DIMENSION(:) :: XSSO_FMV ! meridian friction (with SSO) (Pa) 00149 ! 00150 REAL, POINTER, DIMENSION(:) :: XDIAG_UREF ! reference height for momentum (m) 00151 REAL, POINTER, DIMENSION(:) :: XDIAG_ZREF ! reference height for heat (m) 00152 REAL, POINTER, DIMENSION(:) :: XDIAG_TRAD ! radiative temperature at t (K) 00153 REAL, POINTER, DIMENSION(:) :: XDIAG_EMIS ! surface emissivity at t (-) 00154 ! 00155 REAL, POINTER, DIMENSION(:) :: XAVG_T2M_MIN ! Minimun air temperature at 2 meters (K) 00156 REAL, POINTER, DIMENSION(:) :: XAVG_T2M_MAX ! Maximum air temperature at 2 meters (K) 00157 REAL, POINTER, DIMENSION(:) :: XAVG_HU2M_MIN! Minimun air relative humidity at 2 meters(-) 00158 REAL, POINTER, DIMENSION(:) :: XAVG_HU2M_MAX! Maximum air relative humidity at 2 meters(-) 00159 REAL, POINTER, DIMENSION(:) :: XAVG_WIND10M ! wind at 10 meters (m/s) 00160 REAL, POINTER, DIMENSION(:) :: XAVG_WIND10M_MAX ! Maximum wind at 10 meters (m/s) 00161 ! 00162 !* cumulated averaged variables 00163 ! 00164 REAL, POINTER, DIMENSION(:) :: XAVG_RNC ! net radiation at surface (J/m2) 00165 REAL, POINTER, DIMENSION(:) :: XAVG_HC ! sensible heat flux (J/m2) 00166 REAL, POINTER, DIMENSION(:) :: XAVG_LEC ! total latent heat flux (J/m2) 00167 REAL, POINTER, DIMENSION(:) :: XAVG_LEIC ! sublimation latent heat flux (J/m2) 00168 REAL, POINTER, DIMENSION(:) :: XAVG_GFLUXC ! net soil-vegetation flux (J/m2) 00169 REAL, POINTER, DIMENSION(:) :: XAVG_SWDC ! short wave downward radiation (J/m2) 00170 REAL, POINTER, DIMENSION(:) :: XAVG_SWUC ! short wave upward radiation (J/m2) 00171 REAL, POINTER, DIMENSION(:) :: XAVG_LWDC ! longt wave downward radiation (J/m2) 00172 REAL, POINTER, DIMENSION(:) :: XAVG_LWUC ! longt wave upward radiation (J/m2) 00173 REAL, POINTER, DIMENSION(:) :: XAVG_FMUC ! zonal friction 00174 REAL, POINTER, DIMENSION(:) :: XAVG_FMVC ! meridian friction 00175 ! 00176 !* restart variables (for ARPEGE/ALADAIN) 00177 ! 00178 REAL, POINTER, DIMENSION(:) :: XRW_RAIN ! Init/End rainfall rate (kg/m2/s) 00179 REAL, POINTER, DIMENSION(:) :: XRW_SNOW ! Init/End snowfall rate (kg/m2/s) 00180 ! 00181 CHARACTER(LEN=12), POINTER, DIMENSION(:) :: CSELECT ! Name of ouput fields if LSELECT=true 00182 ! 00183 !------------------------------------------------------------------------------ 00184 ! 00185 00186 END TYPE DIAG_SURF_ATM_t 00187 00188 TYPE(DIAG_SURF_ATM_t), ALLOCATABLE, TARGET, SAVE :: DIAG_SURF_ATM_MODEL(:) 00189 00190 REAL, POINTER :: XDIAG_TSTEP=>NULL() 00191 !$OMP THREADPRIVATE(XDIAG_TSTEP) 00192 INTEGER, POINTER :: N2M=>NULL() 00193 !$OMP THREADPRIVATE(N2M) 00194 LOGICAL, POINTER :: L2M_MIN_ZS=>NULL() 00195 !$OMP THREADPRIVATE(L2M_MIN_ZS) 00196 LOGICAL, POINTER :: LSURF_BUDGET=>NULL() 00197 !$OMP THREADPRIVATE(LSURF_BUDGET) 00198 LOGICAL, POINTER :: LRAD_BUDGET=>NULL() 00199 !$OMP THREADPRIVATE(LRAD_BUDGET) 00200 LOGICAL, POINTER :: LCOEF=>NULL() 00201 !$OMP THREADPRIVATE(LCOEF) 00202 LOGICAL, POINTER :: LSURF_VARS=>NULL() 00203 !$OMP THREADPRIVATE(LSURF_VARS) 00204 LOGICAL, POINTER :: LFRAC=>NULL() 00205 !$OMP THREADPRIVATE(LFRAC) 00206 LOGICAL, POINTER :: LDIAG_GRID=>NULL() 00207 !$OMP THREADPRIVATE(LDIAG_GRID) 00208 LOGICAL, POINTER :: LSURF_BUDGETC=>NULL() 00209 !$OMP THREADPRIVATE(LSURF_BUDGETC) 00210 LOGICAL, POINTER :: LRESET_BUDGETC=>NULL() 00211 !$OMP THREADPRIVATE(LRESET_BUDGETC) 00212 LOGICAL, POINTER :: LREAD_BUDGETC=>NULL() 00213 !$OMP THREADPRIVATE(LREAD_BUDGETC) 00214 LOGICAL, POINTER :: LPROVAR_TO_DIAG=>NULL() 00215 !$OMP THREADPRIVATE(LPROVAR_TO_DIAG) 00216 LOGICAL, POINTER :: LSELECT=>NULL() 00217 !$OMP THREADPRIVATE(LSELECT) 00218 CHARACTER(LEN=12), DIMENSION(:), POINTER :: CSELECT=>NULL() 00219 !$OMP THREADPRIVATE(CSELECT) 00220 TYPE(DATE_TIME), POINTER :: TIME_BUDGETC=>NULL() 00221 !$OMP THREADPRIVATE(TIME_BUDGETC) 00222 REAL, POINTER, DIMENSION(:,:) :: XRI_TILE=>NULL() 00223 !$OMP THREADPRIVATE(XRI_TILE) 00224 REAL, POINTER, DIMENSION(:,:) :: XCD_TILE=>NULL() 00225 !$OMP THREADPRIVATE(XCD_TILE) 00226 REAL, POINTER, DIMENSION(:,:) :: XCH_TILE=>NULL() 00227 !$OMP THREADPRIVATE(XCH_TILE) 00228 REAL, POINTER, DIMENSION(:,:) :: XCE_TILE=>NULL() 00229 !$OMP THREADPRIVATE(XCE_TILE) 00230 REAL, POINTER, DIMENSION(:,:) :: XRN_TILE=>NULL() 00231 !$OMP THREADPRIVATE(XRN_TILE) 00232 REAL, POINTER, DIMENSION(:,:) :: XH_TILE=>NULL() 00233 !$OMP THREADPRIVATE(XH_TILE) 00234 REAL, POINTER, DIMENSION(:,:) :: XLE_TILE=>NULL() 00235 !$OMP THREADPRIVATE(XLE_TILE) 00236 REAL, POINTER, DIMENSION(:,:) :: XLEI_TILE=>NULL() 00237 !$OMP THREADPRIVATE(XLEI_TILE) 00238 REAL, POINTER, DIMENSION(:,:) :: XGFLUX_TILE=>NULL() 00239 !$OMP THREADPRIVATE(XGFLUX_TILE) 00240 REAL, POINTER, DIMENSION(:,:) :: XTS_TILE=>NULL() 00241 !$OMP THREADPRIVATE(XTS_TILE) 00242 REAL, POINTER, DIMENSION(:,:) :: XT2M_TILE=>NULL() 00243 !$OMP THREADPRIVATE(XT2M_TILE) 00244 REAL, POINTER, DIMENSION(:,:) :: XT2M_MAX_TILE=>NULL() 00245 !$OMP THREADPRIVATE(XT2M_MAX_TILE) 00246 REAL, POINTER, DIMENSION(:,:) :: XT2M_MIN_TILE=>NULL() 00247 !$OMP THREADPRIVATE(XT2M_MIN_TILE) 00248 REAL, POINTER, DIMENSION(:,:) :: XQ2M_TILE=>NULL() 00249 !$OMP THREADPRIVATE(XQ2M_TILE) 00250 REAL, POINTER, DIMENSION(:,:) :: XHU2M_TILE=>NULL() 00251 !$OMP THREADPRIVATE(XHU2M_TILE) 00252 REAL, POINTER, DIMENSION(:,:) :: XHU2M_MAX_TILE=>NULL() 00253 !$OMP THREADPRIVATE(XHU2M_MAX_TILE) 00254 REAL, POINTER, DIMENSION(:,:) :: XHU2M_MIN_TILE=>NULL() 00255 !$OMP THREADPRIVATE(XHU2M_MIN_TILE) 00256 REAL, POINTER, DIMENSION(:,:) :: XZON10M_TILE=>NULL() 00257 !$OMP THREADPRIVATE(XZON10M_TILE) 00258 REAL, POINTER, DIMENSION(:,:) :: XMER10M_TILE=>NULL() 00259 !$OMP THREADPRIVATE(XMER10M_TILE) 00260 REAL, POINTER, DIMENSION(:,:) :: XWIND10M_TILE=>NULL() 00261 !$OMP THREADPRIVATE(XWIND10M_TILE) 00262 REAL, POINTER, DIMENSION(:,:) :: XWIND10M_MAX_TILE=>NULL() 00263 !$OMP THREADPRIVATE(XWIND10M_MAX_TILE) 00264 REAL, POINTER, DIMENSION(:,:) :: XQS_TILE=>NULL() 00265 !$OMP THREADPRIVATE(XQS_TILE) 00266 REAL, POINTER, DIMENSION(:,:) :: XZ0_TILE=>NULL() 00267 !$OMP THREADPRIVATE(XZ0_TILE) 00268 REAL, POINTER, DIMENSION(:,:) :: XZ0H_TILE=>NULL() 00269 !$OMP THREADPRIVATE(XZ0H_TILE) 00270 REAL, POINTER, DIMENSION(:,:) :: XSWD_TILE=>NULL() 00271 !$OMP THREADPRIVATE(XSWD_TILE) 00272 REAL, POINTER, DIMENSION(:,:) :: XSWU_TILE=>NULL() 00273 !$OMP THREADPRIVATE(XSWU_TILE) 00274 REAL, POINTER, DIMENSION(:,:) :: XLWD_TILE=>NULL() 00275 !$OMP THREADPRIVATE(XLWD_TILE) 00276 REAL, POINTER, DIMENSION(:,:) :: XLWU_TILE=>NULL() 00277 !$OMP THREADPRIVATE(XLWU_TILE) 00278 REAL, POINTER, DIMENSION(:,:,:) :: XSWBD_TILE=>NULL() 00279 !$OMP THREADPRIVATE(XSWBD_TILE) 00280 REAL, POINTER, DIMENSION(:,:,:) :: XSWBU_TILE=>NULL() 00281 !$OMP THREADPRIVATE(XSWBU_TILE) 00282 REAL, POINTER, DIMENSION(:,:) :: XFMU_TILE=>NULL() 00283 !$OMP THREADPRIVATE(XFMU_TILE) 00284 REAL, POINTER, DIMENSION(:,:) :: XFMV_TILE=>NULL() 00285 !$OMP THREADPRIVATE(XFMV_TILE) 00286 REAL, POINTER, DIMENSION(:,:) :: XRNC_TILE=>NULL() 00287 !$OMP THREADPRIVATE(XRNC_TILE) 00288 REAL, POINTER, DIMENSION(:,:) :: XHC_TILE=>NULL() 00289 !$OMP THREADPRIVATE(XHC_TILE) 00290 REAL, POINTER, DIMENSION(:,:) :: XLEC_TILE=>NULL() 00291 !$OMP THREADPRIVATE(XLEC_TILE) 00292 REAL, POINTER, DIMENSION(:,:) :: XLEIC_TILE=>NULL() 00293 !$OMP THREADPRIVATE(XLEIC_TILE) 00294 REAL, POINTER, DIMENSION(:,:) :: XGFLUXC_TILE=>NULL() 00295 !$OMP THREADPRIVATE(XGFLUXC_TILE) 00296 REAL, POINTER, DIMENSION(:,:) :: XSWDC_TILE=>NULL() 00297 !$OMP THREADPRIVATE(XSWDC_TILE) 00298 REAL, POINTER, DIMENSION(:,:) :: XSWUC_TILE=>NULL() 00299 !$OMP THREADPRIVATE(XSWUC_TILE) 00300 REAL, POINTER, DIMENSION(:,:) :: XLWDC_TILE=>NULL() 00301 !$OMP THREADPRIVATE(XLWDC_TILE) 00302 REAL, POINTER, DIMENSION(:,:) :: XLWUC_TILE=>NULL() 00303 !$OMP THREADPRIVATE(XLWUC_TILE) 00304 REAL, POINTER, DIMENSION(:,:) :: XFMUC_TILE=>NULL() 00305 !$OMP THREADPRIVATE(XFMUC_TILE) 00306 REAL, POINTER, DIMENSION(:,:) :: XFMVC_TILE=>NULL() 00307 !$OMP THREADPRIVATE(XFMVC_TILE) 00308 REAL, POINTER, DIMENSION(:) :: XAVG_RI=>NULL() 00309 !$OMP THREADPRIVATE(XAVG_RI) 00310 REAL, POINTER, DIMENSION(:) :: XAVG_CD=>NULL() 00311 !$OMP THREADPRIVATE(XAVG_CD) 00312 REAL, POINTER, DIMENSION(:) :: XAVG_CH=>NULL() 00313 !$OMP THREADPRIVATE(XAVG_CH) 00314 REAL, POINTER, DIMENSION(:) :: XAVG_CE=>NULL() 00315 !$OMP THREADPRIVATE(XAVG_CE) 00316 REAL, POINTER, DIMENSION(:) :: XAVG_RN=>NULL() 00317 !$OMP THREADPRIVATE(XAVG_RN) 00318 REAL, POINTER, DIMENSION(:) :: XAVG_H=>NULL() 00319 !$OMP THREADPRIVATE(XAVG_H) 00320 REAL, POINTER, DIMENSION(:) :: XAVG_LE=>NULL() 00321 !$OMP THREADPRIVATE(XAVG_LE) 00322 REAL, POINTER, DIMENSION(:) :: XAVG_LEI=>NULL() 00323 !$OMP THREADPRIVATE(XAVG_LEI) 00324 REAL, POINTER, DIMENSION(:) :: XAVG_GFLUX=>NULL() 00325 !$OMP THREADPRIVATE(XAVG_GFLUX) 00326 REAL, POINTER, DIMENSION(:) :: XAVG_TS=>NULL() 00327 !$OMP THREADPRIVATE(XAVG_TS) 00328 REAL, POINTER, DIMENSION(:) :: XAVG_T2M=>NULL() 00329 !$OMP THREADPRIVATE(XAVG_T2M) 00330 REAL, POINTER, DIMENSION(:) :: XAVG_T2M_MIN=>NULL() 00331 !$OMP THREADPRIVATE(XAVG_T2M_MIN) 00332 REAL, POINTER, DIMENSION(:) :: XAVG_T2M_MAX=>NULL() 00333 !$OMP THREADPRIVATE(XAVG_T2M_MAX) 00334 REAL, POINTER, DIMENSION(:) :: XAVG_Q2M=>NULL() 00335 !$OMP THREADPRIVATE(XAVG_Q2M) 00336 REAL, POINTER, DIMENSION(:) :: XAVG_HU2M=>NULL() 00337 !$OMP THREADPRIVATE(XAVG_HU2M) 00338 REAL, POINTER, DIMENSION(:) :: XAVG_HU2M_MIN=>NULL() 00339 !$OMP THREADPRIVATE(XAVG_HU2M_MIN) 00340 REAL, POINTER, DIMENSION(:) :: XAVG_HU2M_MAX=>NULL() 00341 !$OMP THREADPRIVATE(XAVG_HU2M_MAX) 00342 REAL, POINTER, DIMENSION(:) :: XAVG_ZON10M=>NULL() 00343 !$OMP THREADPRIVATE(XAVG_ZON10M) 00344 REAL, POINTER, DIMENSION(:) :: XAVG_MER10M=>NULL() 00345 !$OMP THREADPRIVATE(XAVG_MER10M) 00346 REAL, POINTER, DIMENSION(:) :: XAVG_WIND10M=>NULL() 00347 !$OMP THREADPRIVATE(XAVG_WIND10M) 00348 REAL, POINTER, DIMENSION(:) :: XAVG_WIND10M_MAX=>NULL() 00349 !$OMP THREADPRIVATE(XAVG_WIND10M_MAX) 00350 REAL, POINTER, DIMENSION(:) :: XAVG_SFCO2=>NULL() 00351 !$OMP THREADPRIVATE(XAVG_SFCO2) 00352 REAL, POINTER, DIMENSION(:) :: XAVG_T2M_MIN_ZS=>NULL() 00353 !$OMP THREADPRIVATE(XAVG_T2M_MIN_ZS) 00354 REAL, POINTER, DIMENSION(:) :: XAVG_Q2M_MIN_ZS=>NULL() 00355 !$OMP THREADPRIVATE(XAVG_Q2M_MIN_ZS) 00356 REAL, POINTER, DIMENSION(:) :: XAVG_HU2M_MIN_ZS=>NULL() 00357 !$OMP THREADPRIVATE(XAVG_HU2M_MIN_ZS) 00358 REAL, POINTER, DIMENSION(:) :: XPS=>NULL() 00359 !$OMP THREADPRIVATE(XPS) 00360 REAL, POINTER, DIMENSION(:) :: XRHOA=>NULL() 00361 !$OMP THREADPRIVATE(XRHOA) 00362 REAL, POINTER, DIMENSION(:) :: XAVG_QS=>NULL() 00363 !$OMP THREADPRIVATE(XAVG_QS) 00364 REAL, POINTER, DIMENSION(:) :: XAVG_Z0=>NULL() 00365 !$OMP THREADPRIVATE(XAVG_Z0) 00366 REAL, POINTER, DIMENSION(:) :: XAVG_Z0H=>NULL() 00367 !$OMP THREADPRIVATE(XAVG_Z0H) 00368 REAL, POINTER, DIMENSION(:) :: XAVG_SWD=>NULL() 00369 !$OMP THREADPRIVATE(XAVG_SWD) 00370 REAL, POINTER, DIMENSION(:) :: XAVG_SWU=>NULL() 00371 !$OMP THREADPRIVATE(XAVG_SWU) 00372 REAL, POINTER, DIMENSION(:) :: XAVG_LWD=>NULL() 00373 !$OMP THREADPRIVATE(XAVG_LWD) 00374 REAL, POINTER, DIMENSION(:) :: XAVG_LWU=>NULL() 00375 !$OMP THREADPRIVATE(XAVG_LWU) 00376 REAL, POINTER, DIMENSION(:,:) :: XAVG_SWBD=>NULL() 00377 !$OMP THREADPRIVATE(XAVG_SWBD) 00378 REAL, POINTER, DIMENSION(:,:) :: XAVG_SWBU=>NULL() 00379 !$OMP THREADPRIVATE(XAVG_SWBU) 00380 REAL, POINTER, DIMENSION(:) :: XAVG_FMU=>NULL() 00381 !$OMP THREADPRIVATE(XAVG_FMU) 00382 REAL, POINTER, DIMENSION(:) :: XAVG_FMV=>NULL() 00383 !$OMP THREADPRIVATE(XAVG_FMV) 00384 REAL, POINTER, DIMENSION(:) :: XSSO_FMU=>NULL() 00385 !$OMP THREADPRIVATE(XSSO_FMU) 00386 REAL, POINTER, DIMENSION(:) :: XSSO_FMV=>NULL() 00387 !$OMP THREADPRIVATE(XSSO_FMV) 00388 REAL, POINTER, DIMENSION(:) :: XDIAG_ZREF=>NULL() 00389 !$OMP THREADPRIVATE(XDIAG_ZREF) 00390 REAL, POINTER, DIMENSION(:) :: XDIAG_UREF=>NULL() 00391 !$OMP THREADPRIVATE(XDIAG_UREF) 00392 REAL, POINTER, DIMENSION(:) :: XDIAG_TRAD=>NULL() 00393 !$OMP THREADPRIVATE(XDIAG_TRAD) 00394 REAL, POINTER, DIMENSION(:) :: XDIAG_EMIS=>NULL() 00395 !$OMP THREADPRIVATE(XDIAG_EMIS) 00396 REAL, POINTER, DIMENSION(:) :: XAVG_RNC=>NULL() 00397 !$OMP THREADPRIVATE(XAVG_RNC) 00398 REAL, POINTER, DIMENSION(:) :: XAVG_HC=>NULL() 00399 !$OMP THREADPRIVATE(XAVG_HC) 00400 REAL, POINTER, DIMENSION(:) :: XAVG_LEC=>NULL() 00401 !$OMP THREADPRIVATE(XAVG_LEC) 00402 REAL, POINTER, DIMENSION(:) :: XAVG_LEIC=>NULL() 00403 !$OMP THREADPRIVATE(XAVG_LEIC) 00404 REAL, POINTER, DIMENSION(:) :: XAVG_GFLUXC=>NULL() 00405 !$OMP THREADPRIVATE(XAVG_GFLUXC) 00406 REAL, POINTER, DIMENSION(:) :: XAVG_SWDC=>NULL() 00407 !$OMP THREADPRIVATE(XAVG_SWDC) 00408 REAL, POINTER, DIMENSION(:) :: XAVG_SWUC=>NULL() 00409 !$OMP THREADPRIVATE(XAVG_SWUC) 00410 REAL, POINTER, DIMENSION(:) :: XAVG_LWDC=>NULL() 00411 !$OMP THREADPRIVATE(XAVG_LWDC) 00412 REAL, POINTER, DIMENSION(:) :: XAVG_LWUC=>NULL() 00413 !$OMP THREADPRIVATE(XAVG_LWUC) 00414 REAL, POINTER, DIMENSION(:) :: XAVG_FMUC=>NULL() 00415 !$OMP THREADPRIVATE(XAVG_FMUC) 00416 REAL, POINTER, DIMENSION(:) :: XAVG_FMVC=>NULL() 00417 !$OMP THREADPRIVATE(XAVG_FMVC) 00418 ! 00419 REAL, POINTER, DIMENSION(:) :: XRW_RAIN=>NULL() 00420 !$OMP THREADPRIVATE(XRW_RAIN) 00421 REAL, POINTER, DIMENSION(:) :: XRW_SNOW=>NULL() 00422 !$OMP THREADPRIVATE(XRW_SNOW) 00423 00424 CONTAINS 00425 00426 SUBROUTINE DIAG_SURF_ATM_GOTO_MODEL(KFROM, KTO, LKFROM) 00427 LOGICAL, INTENT(IN) :: LKFROM 00428 INTEGER, INTENT(IN) :: KFROM, KTO 00429 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00430 ! 00431 ! Save current state for allocated arrays 00432 IF (LKFROM) THEN 00433 DIAG_SURF_ATM_MODEL(KFROM)%CSELECT=>CSELECT 00434 DIAG_SURF_ATM_MODEL(KFROM)%XRI_TILE=>XRI_TILE 00435 DIAG_SURF_ATM_MODEL(KFROM)%XCD_TILE=>XCD_TILE 00436 DIAG_SURF_ATM_MODEL(KFROM)%XCH_TILE=>XCH_TILE 00437 DIAG_SURF_ATM_MODEL(KFROM)%XCE_TILE=>XCE_TILE 00438 DIAG_SURF_ATM_MODEL(KFROM)%XRN_TILE=>XRN_TILE 00439 DIAG_SURF_ATM_MODEL(KFROM)%XH_TILE=>XH_TILE 00440 DIAG_SURF_ATM_MODEL(KFROM)%XLE_TILE=>XLE_TILE 00441 DIAG_SURF_ATM_MODEL(KFROM)%XLEI_TILE=>XLEI_TILE 00442 DIAG_SURF_ATM_MODEL(KFROM)%XGFLUX_TILE=>XGFLUX_TILE 00443 DIAG_SURF_ATM_MODEL(KFROM)%XTS_TILE=>XTS_TILE 00444 DIAG_SURF_ATM_MODEL(KFROM)%XT2M_TILE=>XT2M_TILE 00445 DIAG_SURF_ATM_MODEL(KFROM)%XT2M_MIN_TILE=>XT2M_MIN_TILE 00446 DIAG_SURF_ATM_MODEL(KFROM)%XT2M_MAX_TILE=>XT2M_MAX_TILE 00447 DIAG_SURF_ATM_MODEL(KFROM)%XQ2M_TILE=>XQ2M_TILE 00448 DIAG_SURF_ATM_MODEL(KFROM)%XHU2M_TILE=>XHU2M_TILE 00449 DIAG_SURF_ATM_MODEL(KFROM)%XHU2M_MIN_TILE=>XHU2M_MIN_TILE 00450 DIAG_SURF_ATM_MODEL(KFROM)%XHU2M_MAX_TILE=>XHU2M_MAX_TILE 00451 DIAG_SURF_ATM_MODEL(KFROM)%XZON10M_TILE=>XZON10M_TILE 00452 DIAG_SURF_ATM_MODEL(KFROM)%XMER10M_TILE=>XMER10M_TILE 00453 DIAG_SURF_ATM_MODEL(KFROM)%XWIND10M_TILE=>XWIND10M_TILE 00454 DIAG_SURF_ATM_MODEL(KFROM)%XWIND10M_MAX_TILE=>XWIND10M_MAX_TILE 00455 DIAG_SURF_ATM_MODEL(KFROM)%XQS_TILE=>XQS_TILE 00456 DIAG_SURF_ATM_MODEL(KFROM)%XZ0_TILE=>XZ0_TILE 00457 DIAG_SURF_ATM_MODEL(KFROM)%XZ0H_TILE=>XZ0H_TILE 00458 DIAG_SURF_ATM_MODEL(KFROM)%XSWD_TILE=>XSWD_TILE 00459 DIAG_SURF_ATM_MODEL(KFROM)%XSWU_TILE=>XSWU_TILE 00460 DIAG_SURF_ATM_MODEL(KFROM)%XLWD_TILE=>XLWD_TILE 00461 DIAG_SURF_ATM_MODEL(KFROM)%XLWU_TILE=>XLWU_TILE 00462 DIAG_SURF_ATM_MODEL(KFROM)%XSWBD_TILE=>XSWBD_TILE 00463 DIAG_SURF_ATM_MODEL(KFROM)%XSWBU_TILE=>XSWBU_TILE 00464 DIAG_SURF_ATM_MODEL(KFROM)%XFMU_TILE=>XFMU_TILE 00465 DIAG_SURF_ATM_MODEL(KFROM)%XFMV_TILE=>XFMV_TILE 00466 DIAG_SURF_ATM_MODEL(KFROM)%XRNC_TILE=>XRNC_TILE 00467 DIAG_SURF_ATM_MODEL(KFROM)%XHC_TILE=>XHC_TILE 00468 DIAG_SURF_ATM_MODEL(KFROM)%XLEC_TILE=>XLEC_TILE 00469 DIAG_SURF_ATM_MODEL(KFROM)%XLEIC_TILE=>XLEIC_TILE 00470 DIAG_SURF_ATM_MODEL(KFROM)%XGFLUXC_TILE=>XGFLUXC_TILE 00471 DIAG_SURF_ATM_MODEL(KFROM)%XSWDC_TILE=>XSWDC_TILE 00472 DIAG_SURF_ATM_MODEL(KFROM)%XSWUC_TILE=>XSWUC_TILE 00473 DIAG_SURF_ATM_MODEL(KFROM)%XLWDC_TILE=>XLWDC_TILE 00474 DIAG_SURF_ATM_MODEL(KFROM)%XLWUC_TILE=>XLWUC_TILE 00475 DIAG_SURF_ATM_MODEL(KFROM)%XFMUC_TILE=>XFMUC_TILE 00476 DIAG_SURF_ATM_MODEL(KFROM)%XFMVC_TILE=>XFMVC_TILE 00477 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_RI=>XAVG_RI 00478 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_CD=>XAVG_CD 00479 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_CH=>XAVG_CH 00480 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_CE=>XAVG_CE 00481 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_RN=>XAVG_RN 00482 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_H=>XAVG_H 00483 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_LE=>XAVG_LE 00484 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_LEI=>XAVG_LEI 00485 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_GFLUX=>XAVG_GFLUX 00486 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_TS=>XAVG_TS 00487 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_T2M=>XAVG_T2M 00488 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_T2M_MIN=>XAVG_T2M_MIN 00489 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_T2M_MAX=>XAVG_T2M_MAX 00490 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_Q2M=>XAVG_Q2M 00491 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_HU2M=>XAVG_HU2M 00492 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_HU2M_MIN=>XAVG_HU2M_MIN 00493 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_HU2M_MAX=>XAVG_HU2M_MAX 00494 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_ZON10M=>XAVG_ZON10M 00495 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_MER10M=>XAVG_MER10M 00496 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_WIND10M=>XAVG_WIND10M 00497 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_WIND10M_MAX=>XAVG_WIND10M_MAX 00498 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_SFCO2=>XAVG_SFCO2 00499 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_T2M_MIN_ZS=>XAVG_T2M_MIN_ZS 00500 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_Q2M_MIN_ZS=>XAVG_Q2M_MIN_ZS 00501 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_HU2M_MIN_ZS=>XAVG_HU2M_MIN_ZS 00502 DIAG_SURF_ATM_MODEL(KFROM)%XPS=>XPS 00503 DIAG_SURF_ATM_MODEL(KFROM)%XRHOA=>XRHOA 00504 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_QS=>XAVG_QS 00505 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_Z0=>XAVG_Z0 00506 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_Z0H=>XAVG_Z0H 00507 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_SWD=>XAVG_SWD 00508 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_SWU=>XAVG_SWU 00509 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_LWD=>XAVG_LWD 00510 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_LWU=>XAVG_LWU 00511 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_SWBD=>XAVG_SWBD 00512 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_SWBU=>XAVG_SWBU 00513 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_FMU=>XAVG_FMU 00514 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_FMV=>XAVG_FMV 00515 DIAG_SURF_ATM_MODEL(KFROM)%XSSO_FMU=>XSSO_FMU 00516 DIAG_SURF_ATM_MODEL(KFROM)%XSSO_FMV=>XSSO_FMV 00517 DIAG_SURF_ATM_MODEL(KFROM)%XDIAG_UREF=>XDIAG_UREF 00518 DIAG_SURF_ATM_MODEL(KFROM)%XDIAG_ZREF=>XDIAG_ZREF 00519 DIAG_SURF_ATM_MODEL(KFROM)%XDIAG_TRAD=>XDIAG_TRAD 00520 DIAG_SURF_ATM_MODEL(KFROM)%XDIAG_EMIS=>XDIAG_EMIS 00521 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_RNC=>XAVG_RNC 00522 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_HC=>XAVG_HC 00523 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_LEC=>XAVG_LEC 00524 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_LEIC=>XAVG_LEIC 00525 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_GFLUXC=>XAVG_GFLUXC 00526 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_SWDC=>XAVG_SWDC 00527 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_SWUC=>XAVG_SWUC 00528 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_LWDC=>XAVG_LWDC 00529 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_LWUC=>XAVG_LWUC 00530 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_FMUC=>XAVG_FMUC 00531 DIAG_SURF_ATM_MODEL(KFROM)%XAVG_FMVC=>XAVG_FMVC 00532 ! 00533 DIAG_SURF_ATM_MODEL(KFROM)%XRW_RAIN=>XRW_RAIN 00534 DIAG_SURF_ATM_MODEL(KFROM)%XRW_SNOW=>XRW_SNOW 00535 ENDIF 00536 ! 00537 ! Current model is set to model KTO 00538 IF (LHOOK) CALL DR_HOOK('MODD_DIAG_SURF_ATM_N:DIAG_SURF_ATM_GOTO_MODEL',0,ZHOOK_HANDLE) 00539 XDIAG_TSTEP=>DIAG_SURF_ATM_MODEL(KTO)%XDIAG_TSTEP 00540 N2M=>DIAG_SURF_ATM_MODEL(KTO)%N2M 00541 L2M_MIN_ZS=>DIAG_SURF_ATM_MODEL(KTO)%L2M_MIN_ZS 00542 LSURF_BUDGET=>DIAG_SURF_ATM_MODEL(KTO)%LSURF_BUDGET 00543 LRAD_BUDGET=>DIAG_SURF_ATM_MODEL(KTO)%LRAD_BUDGET 00544 LCOEF=>DIAG_SURF_ATM_MODEL(KTO)%LCOEF 00545 LSURF_VARS=>DIAG_SURF_ATM_MODEL(KTO)%LSURF_VARS 00546 LFRAC=>DIAG_SURF_ATM_MODEL(KTO)%LFRAC 00547 LDIAG_GRID=>DIAG_SURF_ATM_MODEL(KTO)%LDIAG_GRID 00548 LSURF_BUDGETC=>DIAG_SURF_ATM_MODEL(KTO)%LSURF_BUDGETC 00549 LRESET_BUDGETC=>DIAG_SURF_ATM_MODEL(KTO)%LRESET_BUDGETC 00550 LREAD_BUDGETC=>DIAG_SURF_ATM_MODEL(KTO)%LREAD_BUDGETC 00551 LPROVAR_TO_DIAG=>DIAG_SURF_ATM_MODEL(KTO)%LPROVAR_TO_DIAG 00552 LSELECT=>DIAG_SURF_ATM_MODEL(KTO)%LSELECT 00553 CSELECT=>DIAG_SURF_ATM_MODEL(KTO)%CSELECT 00554 TIME_BUDGETC=>DIAG_SURF_ATM_MODEL(KTO)%TIME_BUDGETC 00555 XRI_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XRI_TILE 00556 XCD_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XCD_TILE 00557 XCH_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XCH_TILE 00558 XCE_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XCE_TILE 00559 XRN_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XRN_TILE 00560 XH_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XH_TILE 00561 XLE_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XLE_TILE 00562 XLEI_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XLEI_TILE 00563 XGFLUX_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XGFLUX_TILE 00564 XTS_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XTS_TILE 00565 XT2M_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XT2M_TILE 00566 XT2M_MIN_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XT2M_MIN_TILE 00567 XT2M_MAX_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XT2M_MAX_TILE 00568 XQ2M_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XQ2M_TILE 00569 XHU2M_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XHU2M_TILE 00570 XHU2M_MIN_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XHU2M_MIN_TILE 00571 XHU2M_MAX_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XHU2M_MAX_TILE 00572 XZON10M_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XZON10M_TILE 00573 XMER10M_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XMER10M_TILE 00574 XWIND10M_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XWIND10M_TILE 00575 XWIND10M_MAX_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XWIND10M_MAX_TILE 00576 XQS_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XQS_TILE 00577 XZ0_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XZ0_TILE 00578 XZ0H_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XZ0H_TILE 00579 XSWD_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XSWD_TILE 00580 XSWU_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XSWU_TILE 00581 XLWD_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XLWD_TILE 00582 XLWU_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XLWU_TILE 00583 XSWBD_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XSWBD_TILE 00584 XSWBU_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XSWBU_TILE 00585 XFMU_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XFMU_TILE 00586 XFMV_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XFMV_TILE 00587 XRNC_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XRNC_TILE 00588 XHC_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XHC_TILE 00589 XLEC_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XLEC_TILE 00590 XLEIC_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XLEIC_TILE 00591 XGFLUXC_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XGFLUXC_TILE 00592 XSWDC_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XSWDC_TILE 00593 XSWUC_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XSWUC_TILE 00594 XLWDC_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XLWDC_TILE 00595 XLWUC_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XLWUC_TILE 00596 XFMUC_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XFMUC_TILE 00597 XFMVC_TILE=>DIAG_SURF_ATM_MODEL(KTO)%XFMVC_TILE 00598 XAVG_RI=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_RI 00599 XAVG_CD=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_CD 00600 XAVG_CH=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_CH 00601 XAVG_CE=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_CE 00602 XAVG_RN=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_RN 00603 XAVG_H=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_H 00604 XAVG_LE=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_LE 00605 XAVG_LEI=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_LEI 00606 XAVG_GFLUX=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_GFLUX 00607 XAVG_TS=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_TS 00608 XAVG_T2M=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_T2M 00609 XAVG_T2M_MIN=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_T2M_MIN 00610 XAVG_T2M_MAX=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_T2M_MAX 00611 XAVG_Q2M=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_Q2M 00612 XAVG_HU2M=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_HU2M 00613 XAVG_HU2M_MIN=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_HU2M_MIN 00614 XAVG_HU2M_MAX=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_HU2M_MAX 00615 XAVG_ZON10M=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_ZON10M 00616 XAVG_MER10M=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_MER10M 00617 XAVG_WIND10M=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_WIND10M 00618 XAVG_WIND10M_MAX=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_WIND10M_MAX 00619 XAVG_SFCO2=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_SFCO2 00620 XAVG_T2M_MIN_ZS=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_T2M_MIN_ZS 00621 XAVG_Q2M_MIN_ZS=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_Q2M_MIN_ZS 00622 XAVG_HU2M_MIN_ZS=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_HU2M_MIN_ZS 00623 XPS=>DIAG_SURF_ATM_MODEL(KTO)%XPS 00624 XRHOA=>DIAG_SURF_ATM_MODEL(KTO)%XRHOA 00625 XAVG_QS=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_QS 00626 XAVG_Z0=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_Z0 00627 XAVG_Z0H=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_Z0H 00628 XAVG_SWD=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_SWD 00629 XAVG_SWU=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_SWU 00630 XAVG_LWD=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_LWD 00631 XAVG_LWU=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_LWU 00632 XAVG_SWBD=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_SWBD 00633 XAVG_SWBU=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_SWBU 00634 XAVG_FMU=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_FMU 00635 XAVG_FMV=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_FMV 00636 XSSO_FMU=>DIAG_SURF_ATM_MODEL(KTO)%XSSO_FMU 00637 XSSO_FMV=>DIAG_SURF_ATM_MODEL(KTO)%XSSO_FMV 00638 XDIAG_UREF=>DIAG_SURF_ATM_MODEL(KTO)%XDIAG_UREF 00639 XDIAG_ZREF=>DIAG_SURF_ATM_MODEL(KTO)%XDIAG_ZREF 00640 XDIAG_TRAD=>DIAG_SURF_ATM_MODEL(KTO)%XDIAG_TRAD 00641 XDIAG_EMIS=>DIAG_SURF_ATM_MODEL(KTO)%XDIAG_EMIS 00642 XAVG_RNC=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_RNC 00643 XAVG_HC=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_HC 00644 XAVG_LEC=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_LEC 00645 XAVG_LEIC=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_LEIC 00646 XAVG_GFLUXC=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_GFLUXC 00647 XAVG_SWDC=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_SWDC 00648 XAVG_SWUC=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_SWUC 00649 XAVG_LWDC=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_LWDC 00650 XAVG_LWUC=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_LWUC 00651 XAVG_FMUC=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_FMUC 00652 XAVG_FMVC=>DIAG_SURF_ATM_MODEL(KTO)%XAVG_FMVC 00653 ! 00654 XRW_RAIN=>DIAG_SURF_ATM_MODEL(KTO)%XRW_RAIN 00655 XRW_SNOW=>DIAG_SURF_ATM_MODEL(KTO)%XRW_SNOW 00656 IF (LHOOK) CALL DR_HOOK('MODD_DIAG_SURF_ATM_N:DIAG_SURF_ATM_GOTO_MODEL',1,ZHOOK_HANDLE) 00657 ! 00658 END SUBROUTINE DIAG_SURF_ATM_GOTO_MODEL 00659 00660 SUBROUTINE DIAG_SURF_ATM_ALLOC(KMODEL) 00661 INTEGER, INTENT(IN) :: KMODEL 00662 INTEGER :: J 00663 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00664 IF (LHOOK) CALL DR_HOOK("MODD_DIAG_SURF_ATM_N:DIAG_SURF_ATM_ALLOC",0,ZHOOK_HANDLE) 00665 ALLOCATE(DIAG_SURF_ATM_MODEL(KMODEL)) 00666 DO J=1,KMODEL 00667 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XRI_TILE) 00668 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XCD_TILE) 00669 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XCH_TILE) 00670 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XCE_TILE) 00671 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XRN_TILE) 00672 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XH_TILE) 00673 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XLE_TILE) 00674 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XLEI_TILE) 00675 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XGFLUX_TILE) 00676 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XTS_TILE) 00677 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XT2M_TILE) 00678 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XT2M_MIN_TILE) 00679 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XT2M_MAX_TILE) 00680 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XQ2M_TILE) 00681 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XHU2M_TILE) 00682 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XHU2M_MIN_TILE) 00683 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XHU2M_MAX_TILE) 00684 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XZON10M_TILE) 00685 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XMER10M_TILE) 00686 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XWIND10M_TILE) 00687 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XWIND10M_MAX_TILE) 00688 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XQS_TILE) 00689 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XZ0_TILE) 00690 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XZ0H_TILE) 00691 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XSWD_TILE) 00692 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XSWU_TILE) 00693 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XLWD_TILE) 00694 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XLWU_TILE) 00695 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XSWBD_TILE) 00696 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XSWBU_TILE) 00697 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XFMU_TILE) 00698 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XFMV_TILE) 00699 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XRNC_TILE) 00700 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XHC_TILE) 00701 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XLEC_TILE) 00702 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XLEIC_TILE) 00703 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XGFLUXC_TILE) 00704 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XSWDC_TILE) 00705 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XSWUC_TILE) 00706 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XLWDC_TILE) 00707 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XLWUC_TILE) 00708 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XFMUC_TILE) 00709 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XFMVC_TILE) 00710 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_RI) 00711 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_CD) 00712 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_CH) 00713 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_CE) 00714 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_RN) 00715 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_H) 00716 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_LE) 00717 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_LEI) 00718 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_GFLUX) 00719 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_TS) 00720 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_T2M) 00721 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_Q2M) 00722 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_HU2M) 00723 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_ZON10M) 00724 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_MER10M) 00725 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_SFCO2) 00726 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_T2M_MIN_ZS) 00727 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_Q2M_MIN_ZS) 00728 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_HU2M_MIN_ZS) 00729 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XPS) 00730 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XRHOA) 00731 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_QS) 00732 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_Z0) 00733 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_Z0H) 00734 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_SWD) 00735 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_SWU) 00736 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_LWD) 00737 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_LWU) 00738 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_SWBD) 00739 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_SWBU) 00740 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_FMU) 00741 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_FMV) 00742 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XSSO_FMU) 00743 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XSSO_FMV) 00744 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XDIAG_UREF) 00745 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XDIAG_ZREF) 00746 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XDIAG_TRAD) 00747 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XDIAG_EMIS) 00748 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_T2M_MIN) 00749 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_T2M_MAX) 00750 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_HU2M_MIN) 00751 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_HU2M_MAX) 00752 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_WIND10M) 00753 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_WIND10M_MAX) 00754 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_RNC) 00755 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_HC) 00756 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_LEC) 00757 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_LEIC) 00758 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_GFLUXC) 00759 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_SWDC) 00760 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_SWUC) 00761 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_LWDC) 00762 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_LWUC) 00763 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_FMUC) 00764 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XAVG_FMVC) 00765 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XRW_RAIN) 00766 NULLIFY(DIAG_SURF_ATM_MODEL(J)%XRW_SNOW) 00767 NULLIFY(DIAG_SURF_ATM_MODEL(J)%CSELECT) 00768 ENDDO 00769 DIAG_SURF_ATM_MODEL(:)%XDIAG_TSTEP=0. 00770 DIAG_SURF_ATM_MODEL(:)%N2M=0 00771 DIAG_SURF_ATM_MODEL(:)%L2M_MIN_ZS=.FALSE. 00772 DIAG_SURF_ATM_MODEL(:)%LSURF_BUDGET=.FALSE. 00773 DIAG_SURF_ATM_MODEL(:)%LRAD_BUDGET=.FALSE. 00774 DIAG_SURF_ATM_MODEL(:)%LCOEF=.FALSE. 00775 DIAG_SURF_ATM_MODEL(:)%LSURF_VARS=.FALSE. 00776 DIAG_SURF_ATM_MODEL(:)%LFRAC=.FALSE. 00777 DIAG_SURF_ATM_MODEL(:)%LDIAG_GRID=.FALSE. 00778 DIAG_SURF_ATM_MODEL(:)%LSURF_BUDGETC=.FALSE. 00779 DIAG_SURF_ATM_MODEL(:)%LRESET_BUDGETC=.FALSE. 00780 DIAG_SURF_ATM_MODEL(:)%LREAD_BUDGETC=.FALSE. 00781 DIAG_SURF_ATM_MODEL(:)%LPROVAR_TO_DIAG=.FALSE. 00782 DIAG_SURF_ATM_MODEL(:)%LSELECT=.FALSE. 00783 IF (LHOOK) CALL DR_HOOK("MODD_DIAG_SURF_ATM_N:DIAG_SURF_ATM_ALLOC",1,ZHOOK_HANDLE) 00784 END SUBROUTINE DIAG_SURF_ATM_ALLOC 00785 00786 SUBROUTINE DIAG_SURF_ATM_DEALLO 00787 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00788 IF (LHOOK) CALL DR_HOOK("MODD_DIAG_SURF_ATM_N:DIAG_SURF_ATM_DEALLO",0,ZHOOK_HANDLE) 00789 IF (ALLOCATED(DIAG_SURF_ATM_MODEL)) DEALLOCATE(DIAG_SURF_ATM_MODEL) 00790 IF (LHOOK) CALL DR_HOOK("MODD_DIAG_SURF_ATM_N:DIAG_SURF_ATM_DEALLO",1,ZHOOK_HANDLE) 00791 END SUBROUTINE DIAG_SURF_ATM_DEALLO 00792 00793 END MODULE MODD_DIAG_SURF_ATM_n