Changeset 4682 for palm/trunk/SOURCE
- Timestamp:
- Sep 17, 2020 2:13:27 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/surface_mod.f90
r4671 r4682 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Fix indexing of horizontal surfaces in write restart for full-3D cases 28 ! 29 ! 4671 2020-09-09 20:27:58Z pavelkrc 27 30 ! Implementation of downward facing USM and LSM surfaces 28 31 ! … … 3175 3178 IF ( l < 2 ) THEN 3176 3179 DO m = surf_lsm_h(l)%start_index(j,i), surf_lsm_h(l)%end_index(j,i) 3177 IF ( ALLOCATED( surf_lsm_h(l)%us ) ) surf_h( 0)%us(mm(0)) = surf_lsm_h(l)%us(m)3178 IF ( ALLOCATED( surf_lsm_h(l)%ts ) ) surf_h( 0)%ts(mm(0)) = surf_lsm_h(l)%ts(m)3179 IF ( ALLOCATED( surf_lsm_h(l)%qs ) ) surf_h( 0)%qs(mm(0)) = surf_lsm_h(l)%qs(m)3180 IF ( ALLOCATED( surf_lsm_h(l)%ss ) ) surf_h( 0)%ss(mm(0)) = surf_lsm_h(l)%ss(m)3181 IF ( ALLOCATED( surf_lsm_h(l)%qcs ) ) surf_h( 0)%qcs(mm(0)) = surf_lsm_h(l)%qcs(m)3182 IF ( ALLOCATED( surf_lsm_h(l)%ncs ) ) surf_h( 0)%ncs(mm(0)) = surf_lsm_h(l)%ncs(m)3183 IF ( ALLOCATED( surf_lsm_h(l)%qis ) ) surf_h( 0)%qis(mm(0)) = surf_lsm_h(l)%qis(m)3184 IF ( ALLOCATED( surf_lsm_h(l)%nis ) ) surf_h( 0)%nis(mm(0)) = surf_lsm_h(l)%nis(m)3185 IF ( ALLOCATED( surf_lsm_h(l)%qrs ) ) surf_h( 0)%qrs(mm(0)) = surf_lsm_h(l)%qrs(m)3186 IF ( ALLOCATED( surf_lsm_h(l)%nrs ) ) surf_h( 0)%nrs(mm(0)) = surf_lsm_h(l)%nrs(m)3187 IF ( ALLOCATED( surf_lsm_h(l)%ol ) ) surf_h( 0)%ol(mm(0)) = surf_lsm_h(l)%ol(m)3188 IF ( ALLOCATED( surf_lsm_h(l)%rib ) ) surf_h( 0)%rib(mm(0)) = surf_lsm_h(l)%rib(m)3180 IF ( ALLOCATED( surf_lsm_h(l)%us ) ) surf_h(l)%us(mm(l)) = surf_lsm_h(l)%us(m) 3181 IF ( ALLOCATED( surf_lsm_h(l)%ts ) ) surf_h(l)%ts(mm(l)) = surf_lsm_h(l)%ts(m) 3182 IF ( ALLOCATED( surf_lsm_h(l)%qs ) ) surf_h(l)%qs(mm(l)) = surf_lsm_h(l)%qs(m) 3183 IF ( ALLOCATED( surf_lsm_h(l)%ss ) ) surf_h(l)%ss(mm(l)) = surf_lsm_h(l)%ss(m) 3184 IF ( ALLOCATED( surf_lsm_h(l)%qcs ) ) surf_h(l)%qcs(mm(l)) = surf_lsm_h(l)%qcs(m) 3185 IF ( ALLOCATED( surf_lsm_h(l)%ncs ) ) surf_h(l)%ncs(mm(l)) = surf_lsm_h(l)%ncs(m) 3186 IF ( ALLOCATED( surf_lsm_h(l)%qis ) ) surf_h(l)%qis(mm(l)) = surf_lsm_h(l)%qis(m) 3187 IF ( ALLOCATED( surf_lsm_h(l)%nis ) ) surf_h(l)%nis(mm(l)) = surf_lsm_h(l)%nis(m) 3188 IF ( ALLOCATED( surf_lsm_h(l)%qrs ) ) surf_h(l)%qrs(mm(l)) = surf_lsm_h(l)%qrs(m) 3189 IF ( ALLOCATED( surf_lsm_h(l)%nrs ) ) surf_h(l)%nrs(mm(l)) = surf_lsm_h(l)%nrs(m) 3190 IF ( ALLOCATED( surf_lsm_h(l)%ol ) ) surf_h(l)%ol(mm(l)) = surf_lsm_h(l)%ol(m) 3191 IF ( ALLOCATED( surf_lsm_h(l)%rib ) ) surf_h(l)%rib(mm(l)) = surf_lsm_h(l)%rib(m) 3189 3192 IF ( ALLOCATED( surf_lsm_h(l)%pt_surface ) ) & 3190 3193 surf_h(l)%pt_surface(mm(l)) = surf_lsm_h(l)%pt_surface(m) … … 3193 3196 IF ( ALLOCATED( surf_def_h(l)%vpt_surface ) ) & 3194 3197 surf_h(l)%vpt_surface(mm(l)) = surf_lsm_h(l)%vpt_surface(m) 3195 IF ( ALLOCATED( surf_lsm_h(l)%usws ) ) surf_h( 0)%usws(mm(0)) = surf_lsm_h(l)%usws(m)3196 IF ( ALLOCATED( surf_lsm_h(l)%vsws ) ) surf_h( 0)%vsws(mm(0)) = surf_lsm_h(l)%vsws(m)3197 IF ( ALLOCATED( surf_lsm_h(l)%shf ) ) surf_h( 0)%shf(mm(0)) = surf_lsm_h(l)%shf(m)3198 IF ( ALLOCATED( surf_lsm_h(l)%qsws ) ) surf_h( 0)%qsws(mm(0)) = surf_lsm_h(l)%qsws(m)3199 IF ( ALLOCATED( surf_lsm_h(l)%ssws ) ) surf_h( 0)%ssws(mm(0)) = surf_lsm_h(l)%ssws(m)3198 IF ( ALLOCATED( surf_lsm_h(l)%usws ) ) surf_h(l)%usws(mm(l)) = surf_lsm_h(l)%usws(m) 3199 IF ( ALLOCATED( surf_lsm_h(l)%vsws ) ) surf_h(l)%vsws(mm(l)) = surf_lsm_h(l)%vsws(m) 3200 IF ( ALLOCATED( surf_lsm_h(l)%shf ) ) surf_h(l)%shf(mm(l)) = surf_lsm_h(l)%shf(m) 3201 IF ( ALLOCATED( surf_lsm_h(l)%qsws ) ) surf_h(l)%qsws(mm(l)) = surf_lsm_h(l)%qsws(m) 3202 IF ( ALLOCATED( surf_lsm_h(l)%ssws ) ) surf_h(l)%ssws(mm(l)) = surf_lsm_h(l)%ssws(m) 3200 3203 IF ( ALLOCATED( surf_lsm_h(l)%css ) ) THEN 3201 3204 DO lsp = 1, nvar 3202 surf_h( 0)%css(lsp,mm(0)) = surf_lsm_h(l)%css(lsp,m)3205 surf_h(l)%css(lsp,mm(l)) = surf_lsm_h(l)%css(lsp,m) 3203 3206 ENDDO 3204 3207 ENDIF 3205 3208 IF ( ALLOCATED( surf_lsm_h(l)%cssws ) ) THEN 3206 3209 DO lsp = 1, nvar 3207 surf_h( 0)%cssws(lsp,mm(0)) = surf_lsm_h(l)%cssws(lsp,m)3210 surf_h(l)%cssws(lsp,mm(l)) = surf_lsm_h(l)%cssws(lsp,m) 3208 3211 ENDDO 3209 3212 ENDIF 3210 3213 IF ( ALLOCATED( surf_lsm_h(l)%qcsws ) ) & 3211 surf_h( 0)%qcsws(mm(0)) = surf_lsm_h(l)%qcsws(m)3214 surf_h(l)%qcsws(mm(l)) = surf_lsm_h(l)%qcsws(m) 3212 3215 IF ( ALLOCATED( surf_lsm_h(l)%qisws ) ) & 3213 surf_h( 0)%qisws(mm(0)) = surf_lsm_h(l)%qisws(m)3216 surf_h(l)%qisws(mm(l)) = surf_lsm_h(l)%qisws(m) 3214 3217 IF ( ALLOCATED( surf_lsm_h(l)%qrsws ) ) & 3215 surf_h( 0)%qrsws(mm(0)) = surf_lsm_h(l)%qrsws(m)3218 surf_h(l)%qrsws(mm(l)) = surf_lsm_h(l)%qrsws(m) 3216 3219 IF ( ALLOCATED( surf_lsm_h(l)%ncsws ) ) & 3217 surf_h( 0)%ncsws(mm(0)) = surf_lsm_h(l)%ncsws(m)3220 surf_h(l)%ncsws(mm(l)) = surf_lsm_h(l)%ncsws(m) 3218 3221 IF ( ALLOCATED( surf_lsm_h(l)%nisws ) ) & 3219 surf_h( 0)%nisws(mm(0)) = surf_lsm_h(l)%nisws(m)3222 surf_h(l)%nisws(mm(l)) = surf_lsm_h(l)%nisws(m) 3220 3223 IF ( ALLOCATED( surf_lsm_h(l)%nrsws ) ) & 3221 surf_h( 0)%nrsws(mm(0)) = surf_lsm_h(l)%nrsws(m)3224 surf_h(l)%nrsws(mm(l)) = surf_lsm_h(l)%nrsws(m) 3222 3225 IF ( ALLOCATED( surf_lsm_h(l)%sasws ) ) & 3223 surf_h( 0)%sasws(mm(0)) = surf_lsm_h(l)%sasws(m)3226 surf_h(l)%sasws(mm(l)) = surf_lsm_h(l)%sasws(m) 3224 3227 3225 3228 mm(l) = mm(l) + 1 … … 3229 3232 DO m = surf_usm_h(l)%start_index(j,i), surf_usm_h(l)%end_index(j,i) 3230 3233 IF ( ALLOCATED( surf_usm_h(l)%us ) ) & 3231 surf_h( 0)%us(mm(0)) = surf_usm_h(l)%us(m)3234 surf_h(l)%us(mm(l)) = surf_usm_h(l)%us(m) 3232 3235 IF ( ALLOCATED( surf_usm_h(l)%ts ) ) & 3233 surf_h( 0)%ts(mm(0)) = surf_usm_h(l)%ts(m)3236 surf_h(l)%ts(mm(l)) = surf_usm_h(l)%ts(m) 3234 3237 IF ( ALLOCATED( surf_usm_h(l)%qs ) ) & 3235 surf_h( 0)%qs(mm(0)) = surf_usm_h(l)%qs(m)3238 surf_h(l)%qs(mm(l)) = surf_usm_h(l)%qs(m) 3236 3239 IF ( ALLOCATED( surf_usm_h(l)%ss ) ) & 3237 surf_h( 0)%ss(mm(0)) = surf_usm_h(l)%ss(m)3240 surf_h(l)%ss(mm(l)) = surf_usm_h(l)%ss(m) 3238 3241 IF ( ALLOCATED( surf_usm_h(l)%qcs ) ) & 3239 surf_h( 0)%qcs(mm(0)) = surf_usm_h(l)%qcs(m)3242 surf_h(l)%qcs(mm(l)) = surf_usm_h(l)%qcs(m) 3240 3243 IF ( ALLOCATED( surf_usm_h(l)%ncs ) ) & 3241 surf_h( 0)%ncs(mm(0)) = surf_usm_h(l)%ncs(m)3244 surf_h(l)%ncs(mm(l)) = surf_usm_h(l)%ncs(m) 3242 3245 IF ( ALLOCATED( surf_usm_h(l)%qis ) ) & 3243 surf_h( 0)%qis(mm(0)) = surf_usm_h(l)%qis(m)3246 surf_h(l)%qis(mm(l)) = surf_usm_h(l)%qis(m) 3244 3247 IF ( ALLOCATED( surf_usm_h(l)%nis ) ) & 3245 surf_h( 0)%nis(mm(0)) = surf_usm_h(l)%nis(m)3248 surf_h(l)%nis(mm(l)) = surf_usm_h(l)%nis(m) 3246 3249 IF ( ALLOCATED( surf_usm_h(l)%qrs ) ) & 3247 surf_h( 0)%qrs(mm(0)) = surf_usm_h(l)%qrs(m)3250 surf_h(l)%qrs(mm(l)) = surf_usm_h(l)%qrs(m) 3248 3251 IF ( ALLOCATED( surf_usm_h(l)%nrs ) ) & 3249 surf_h( 0)%nrs(mm(0)) = surf_usm_h(l)%nrs(m)3252 surf_h(l)%nrs(mm(l)) = surf_usm_h(l)%nrs(m) 3250 3253 IF ( ALLOCATED( surf_usm_h(l)%ol ) ) & 3251 surf_h( 0)%ol(mm(0)) = surf_usm_h(l)%ol(m)3254 surf_h(l)%ol(mm(l)) = surf_usm_h(l)%ol(m) 3252 3255 IF ( ALLOCATED( surf_usm_h(l)%rib ) ) & 3253 surf_h( 0)%rib(mm(0)) = surf_usm_h(l)%rib(m)3256 surf_h(l)%rib(mm(l)) = surf_usm_h(l)%rib(m) 3254 3257 IF ( ALLOCATED( surf_usm_h(l)%pt_surface ) ) & 3255 3258 surf_h(l)%pt_surface(mm(l)) = surf_usm_h(l)%pt_surface(m) … … 3259 3262 surf_h(l)%vpt_surface(mm(l)) = surf_usm_h(l)%vpt_surface(m) 3260 3263 IF ( ALLOCATED( surf_usm_h(l)%usws ) ) & 3261 surf_h( 0)%usws(mm(0)) = surf_usm_h(l)%usws(m)3264 surf_h(l)%usws(mm(l)) = surf_usm_h(l)%usws(m) 3262 3265 IF ( ALLOCATED( surf_usm_h(l)%vsws ) ) & 3263 surf_h( 0)%vsws(mm(0)) = surf_usm_h(l)%vsws(m)3266 surf_h(l)%vsws(mm(l)) = surf_usm_h(l)%vsws(m) 3264 3267 IF ( ALLOCATED( surf_usm_h(l)%shf ) ) & 3265 surf_h( 0)%shf(mm(0)) = surf_usm_h(l)%shf(m)3268 surf_h(l)%shf(mm(l)) = surf_usm_h(l)%shf(m) 3266 3269 IF ( ALLOCATED( surf_usm_h(l)%qsws ) ) & 3267 surf_h( 0)%qsws(mm(0)) = surf_usm_h(l)%qsws(m)3270 surf_h(l)%qsws(mm(l)) = surf_usm_h(l)%qsws(m) 3268 3271 IF ( ALLOCATED( surf_usm_h(l)%ssws ) ) & 3269 surf_h( 0)%ssws(mm(0)) = surf_usm_h(l)%ssws(m)3272 surf_h(l)%ssws(mm(l)) = surf_usm_h(l)%ssws(m) 3270 3273 IF ( ALLOCATED( surf_usm_h(l)%css ) ) THEN 3271 3274 DO lsp = 1, nvar 3272 surf_h( 0)%css(lsp,mm(0)) = surf_usm_h(l)%css(lsp,m)3275 surf_h(l)%css(lsp,mm(l)) = surf_usm_h(l)%css(lsp,m) 3273 3276 ENDDO 3274 3277 ENDIF 3275 3278 IF ( ALLOCATED( surf_usm_h(l)%cssws ) ) THEN 3276 3279 DO lsp = 1, nvar 3277 surf_h( 0)%cssws(lsp,mm(0)) = surf_usm_h(l)%cssws(lsp,m)3280 surf_h(l)%cssws(lsp,mm(l)) = surf_usm_h(l)%cssws(lsp,m) 3278 3281 ENDDO 3279 3282 ENDIF 3280 3283 IF ( ALLOCATED( surf_usm_h(l)%qcsws ) ) & 3281 surf_h( 0)%qcsws(mm(0)) = surf_usm_h(l)%qcsws(m)3284 surf_h(l)%qcsws(mm(l)) = surf_usm_h(l)%qcsws(m) 3282 3285 IF ( ALLOCATED( surf_usm_h(l)%qisws ) ) & 3283 surf_h( 0)%qisws(mm(0)) = surf_usm_h(l)%qisws(m)3286 surf_h(l)%qisws(mm(l)) = surf_usm_h(l)%qisws(m) 3284 3287 IF ( ALLOCATED( surf_usm_h(l)%qrsws ) ) & 3285 surf_h( 0)%qrsws(mm(0)) = surf_usm_h(l)%qrsws(m)3288 surf_h(l)%qrsws(mm(l)) = surf_usm_h(l)%qrsws(m) 3286 3289 IF ( ALLOCATED( surf_usm_h(l)%ncsws ) ) & 3287 surf_h( 0)%ncsws(mm(0)) = surf_usm_h(l)%ncsws(m)3290 surf_h(l)%ncsws(mm(l)) = surf_usm_h(l)%ncsws(m) 3288 3291 IF ( ALLOCATED( surf_usm_h(l)%nrsws ) ) & 3289 surf_h( 0)%nrsws(mm(0)) = surf_usm_h(l)%nrsws(m)3292 surf_h(l)%nrsws(mm(l)) = surf_usm_h(l)%nrsws(m) 3290 3293 IF ( ALLOCATED( surf_usm_h(l)%nisws ) ) & 3291 surf_h( 0)%nisws(mm(0)) = surf_usm_h(l)%nisws(m)3294 surf_h(l)%nisws(mm(l)) = surf_usm_h(l)%nisws(m) 3292 3295 IF ( ALLOCATED( surf_usm_h(l)%sasws ) ) & 3293 surf_h( 0)%sasws(mm(0)) = surf_usm_h(l)%sasws(m)3296 surf_h(l)%sasws(mm(l)) = surf_usm_h(l)%sasws(m) 3294 3297 3295 3298 mm(l) = mm(l) + 1
Note: See TracChangeset
for help on using the changeset viewer.