module_sf_sfcdiags.F
References to this file elsewhere.
1 !WRF:MODEL_LAYER:PHYSICS
2 !
3 MODULE module_sf_sfcdiags
4
5 CONTAINS
6
7 SUBROUTINE SFCDIAGS(HFX,QFX,TSK,QSFC,CHS2,CQS2,T2,TH2,Q2, &
8 PSFC,CP,R_d,ROVCP, &
9 ids,ide, jds,jde, kds,kde, &
10 ims,ime, jms,jme, kms,kme, &
11 its,ite, jts,jte, kts,kte )
12 !-------------------------------------------------------------------
13 IMPLICIT NONE
14 !-------------------------------------------------------------------
15 INTEGER, INTENT(IN ) :: ids,ide, jds,jde, kds,kde, &
16 ims,ime, jms,jme, kms,kme, &
17 its,ite, jts,jte, kts,kte
18 REAL, DIMENSION( ims:ime, jms:jme ) , &
19 INTENT(IN) :: HFX, &
20 QFX, &
21 TSK, &
22 QSFC
23 REAL, DIMENSION( ims:ime, jms:jme ) , &
24 INTENT(INOUT) :: Q2, &
25 TH2, &
26 T2
27 REAL, DIMENSION( ims:ime, jms:jme ) , &
28 INTENT(IN) :: PSFC, &
29 CHS2, &
30 CQS2
31 REAL, INTENT(IN ) :: CP,R_d,ROVCP
32 ! LOCAL VARS
33 INTEGER :: I,J
34 REAL :: RHO
35
36 DO J=jts,jte
37 DO I=its,ite
38 RHO = PSFC(I,J)/(R_d * TSK(I,J))
39 if(CQS2(I,J).lt.1.E-5) then
40 Q2(I,J)=QSFC(I,J)
41 else
42 Q2(I,J) = QSFC(I,J) - QFX(I,J)/(RHO*CQS2(I,J))
43 endif
44 if(CHS2(I,J).lt.1.E-5) then
45 T2(I,J) = TSK(I,J)
46 else
47 T2(I,J) = TSK(I,J) - HFX(I,J)/(RHO*CP*CHS2(I,J))
48 endif
49 TH2(I,J) = T2(I,J)*(1.E5/PSFC(I,J))**ROVCP
50 ENDDO
51 ENDDO
52
53 END SUBROUTINE SFCDIAGS
54
55 END MODULE module_sf_sfcdiags