@@ -3564,6 +3564,19 @@ subroutine set_postvars_fv3(wrt_int_state,grid_id,mype,mpicomp)
3564
3564
enddo
3565
3565
endif
3566
3566
3567
+ ! model level omga
3568
+ if (trim (fieldname)==' omga' ) then
3569
+ ! $omp parallel do default(none) private(i,j,l) shared(lm,jsta,jend,ista,iend,omga,arrayr43d,fillvalue,spval)
3570
+ do l= 1 ,lm
3571
+ do j= jsta,jend
3572
+ do i= ista, iend
3573
+ omga(i,j,l) = arrayr4 3d(i,j,l)
3574
+ if (abs (arrayr4 3d(i,j,l)- fillvalue)<small) omga(i,j,l) = spval
3575
+ enddo
3576
+ enddo
3577
+ enddo
3578
+ endif
3579
+
3567
3580
! soilt
3568
3581
if (trim (fieldname)==' soilt' ) then
3569
3582
! $omp parallel do default(none) private(i,j,l) shared(nsoil,jsta,jend,ista,iend,stc,arrayr43d,sm,sice,fillvalue,spval)
@@ -4268,22 +4281,6 @@ subroutine set_postvars_fv3(wrt_int_state,grid_id,mype,mpicomp)
4268
4281
enddo
4269
4282
enddo
4270
4283
4271
- do l= lm,1 ,- 1
4272
- ! $omp parallel do default(none) private(i,j) shared(l,jsta,jend,omga,wh,dpres,zint,spval,ista,iend)
4273
- do j= jsta,jend
4274
- do i= ista,iend
4275
- if (wh(i,j,l) /= spval) then
4276
- omga(i,j,l) = (- 1 .) * wh(i,j,l) * dpres(i,j,l)/ zint(i,j,l)
4277
- zint(i,j,l) = zint(i,j,l) + zint(i,j,l+1 )
4278
- else
4279
- omga(i,j,l) = spval
4280
- zint(i,j,l) = spval
4281
- endif
4282
- enddo
4283
- enddo
4284
- enddo
4285
- ! print *,'in post_lam,omga 3d=',maxval(omga(ista:iend,jsta:jend,1)),minval(omga(ista:iend,jsta:jend,1)), &
4286
- ! 'lm=',maxval(omga(ista:iend,jsta:jend,lm)),minval(omga(ista:iend,jsta:jend,lm))
4287
4284
4288
4285
! compute pint from top down
4289
4286
! $omp parallel do default(none) private(i,j) shared(jsta,jend,ak5,pint,ista,iend)
@@ -4343,6 +4340,29 @@ subroutine set_postvars_fv3(wrt_int_state,grid_id,mype,mpicomp)
4343
4340
end do
4344
4341
end do
4345
4342
4343
+ do l= lm,1 ,- 1
4344
+ ! $omp parallel do default(none) private(i,j) shared(l,jsta,jend,omga,wh,dpres,zint,alpint,q,t,spval,ista,iend)
4345
+ do j= jsta,jend
4346
+ do i= ista,iend
4347
+ if (wh(i,j,l) /= spval) then
4348
+ if (omga(i,j,l) == spval .and. dpres(i,j,l) /= spval .and. zint(i,j,l) /= spval) &
4349
+ omga(i,j,l) = (- 1 .) * wh(i,j,l) * dpres(i,j,l)/ zint(i,j,l)
4350
+ if (zint(i,j,l+1 ) /= spval .and. zint(i,j,l) /= spval) &
4351
+ zint(i,j,l) = zint(i,j,l) + zint(i,j,l+1 )
4352
+ else
4353
+ if (zint(i,j,l+1 ) /= spval .and. t(i,j,l) /= spval .and. alpint(i,j,l+1 ) /= spval &
4354
+ .and. alpint(i,j,l) /= spval .and. q(i,j,l) /= spval) then
4355
+ zint(i,j,l) = zint(i,j,l+1 )+ (rgas/ grav)* t(i,j,l)* (1 .+ fv* q(i,j,l))* (alpint(i,j,l+1 )- alpint(i,j,l))
4356
+ else
4357
+ zint(i,j,l) = spval
4358
+ endif
4359
+ endif
4360
+ enddo
4361
+ enddo
4362
+ enddo
4363
+ ! print *,'in post_lam,omga 3d=',maxval(omga(ista:iend,jsta:jend,1)),minval(omga(ista:iend,jsta:jend,1)), &
4364
+ ! 'lm=',maxval(omga(ista:iend,jsta:jend,lm)),minval(omga(ista:iend,jsta:jend,lm))
4365
+
4346
4366
! compute zmid
4347
4367
do l= lm,1 ,- 1
4348
4368
! $omp parallel do default(none) private(i,j) shared(l,jsta,jend,zmid,zint,pmid,alpint,spval,ista,iend)
@@ -4359,6 +4379,7 @@ subroutine set_postvars_fv3(wrt_int_state,grid_id,mype,mpicomp)
4359
4379
end do
4360
4380
end do
4361
4381
4382
+
4362
4383
! surface potential T, and potential T at roughness length
4363
4384
! $omp parallel do default(none) private(i,j) shared(jsta,jend,ista,iend,spval,lp1,sm,ths,sst,thz0,sice,pint)
4364
4385
do j= jsta,jend
0 commit comments