| 1 | MODULE YOPHLC |
|---|
| 2 | |
|---|
| 3 | USE PARKIND1 ,ONLY : JPIM ,JPRB |
|---|
| 4 | |
|---|
| 5 | IMPLICIT NONE |
|---|
| 6 | |
|---|
| 7 | SAVE |
|---|
| 8 | |
|---|
| 9 | ! ----------------------------------------------------------------- |
|---|
| 10 | !* ** *YOPHLC* - SWITCHES FOR SIMPLE PHYSICS |
|---|
| 11 | ! ----------------------------------------------------------------- |
|---|
| 12 | |
|---|
| 13 | ! * E.C.M.W.F. PHYSICS PACKAGE * |
|---|
| 14 | |
|---|
| 15 | REAL(KIND=JPRB) :: ALPHA |
|---|
| 16 | REAL(KIND=JPRB) :: AH0 |
|---|
| 17 | REAL(KIND=JPRB) :: USTARL |
|---|
| 18 | REAL(KIND=JPRB) :: USTARS |
|---|
| 19 | REAL(KIND=JPRB) :: ALANDZ0 |
|---|
| 20 | REAL(KIND=JPRB) :: ASEAZ0 |
|---|
| 21 | LOGICAL :: LSPHLC |
|---|
| 22 | LOGICAL :: LVDFLC |
|---|
| 23 | LOGICAL :: LSDRLC |
|---|
| 24 | LOGICAL :: LCZDEB |
|---|
| 25 | LOGICAL :: LZMCON |
|---|
| 26 | LOGICAL :: LKEXP |
|---|
| 27 | LOGICAL :: LVDFDS |
|---|
| 28 | LOGICAL :: LSDRDS |
|---|
| 29 | ! ------------------------------------------------------------------ |
|---|
| 30 | ! NAME TYPE PURPOSE |
|---|
| 31 | ! ---- : ---- : --------------------------------------------------- |
|---|
| 32 | ! LSPHLC : LOGICAL : SWITCH TO TURN ON THE SIMPLE PHYSICS SCHEME |
|---|
| 33 | ! LVDFLC : LOGICAL : TO TURN ON THE VERTICAL DIFFUSION ON U,V |
|---|
| 34 | ! LVDFDS : LOGICAL : TO TURN ON THE VERT DIFF ALSO ON THE DRY STATIC ENERGY |
|---|
| 35 | ! LSDRLC : LOGICAL : TO TURN ON THE SURFACE DRAG ON U,V |
|---|
| 36 | ! LSDRDS : LOGICAL : TO TURN ON THE SURFACE DRAG ALSO ON THE DRY STATIC ENERGY |
|---|
| 37 | ! LCZDEB : LOGICAL : IF TRUE PRINT VALUES FOR DEBUGGING |
|---|
| 38 | ! LZMCON : LOGICAL : IF TRUE THE VERT DIFF COEFF K IS CONSTANT |
|---|
| 39 | ! LKEXP : LOGICAL : EXPONENTIAL APPROXIMATION OF THE CONSTANT K |
|---|
| 40 | ! ALPHA : REAL : COEFFICIENT FOR THE IMPLICIT TIME STEP SCHEME |
|---|
| 41 | ! AH0 : REAL : REFERENCE HEIGHT FOR CONSTANT VERT DIFF (M) |
|---|
| 42 | ! USTARL : REAL : CONSTANT USTAR OVER LAND (M SEC-1) |
|---|
| 43 | ! USTARS : REAL : CONSTANT USTAR OVER SEA (M SEC-1) |
|---|
| 44 | ! ALANDZ0: REAL : CONSTANT Z0 OVER LAND (M) |
|---|
| 45 | ! ASEAZ0 : REAL : CONSTANT Z0 OVER SEA (M) |
|---|
| 46 | ! NDIFLC : INTEGER : CONTROL DIFFERENT VERT DIFF SCHEMES |
|---|
| 47 | ! - 1: CALL VDIFLCZ (DIRECT+TL+ADJ): |
|---|
| 48 | ! X(T+1)-X(T-1)=K*X(T+1) |
|---|
| 49 | ! K=CONSTANT |
|---|
| 50 | ! - 2: CALL VDIFLCZ1 (DIRECT): |
|---|
| 51 | ! X(T*)-X(T)=K(X(T))*(ALPHA*X(T*)+(1-ALPHA)*X(T)) |
|---|
| 52 | ! DX=X(T*)-X(T) |
|---|
| 53 | ! X(T+1)=X(T-1)+2*DX |
|---|
| 54 | ! ----------------------------------------------------------------- |
|---|
| 55 | !$OMP THREADPRIVATE(ah0,alandz0,alpha,aseaz0,lczdeb,lkexp,lsdrds,lsdrlc,lsphlc,lvdfds,lvdflc,lzmcon,ustarl,ustars) |
|---|
| 56 | END MODULE YOPHLC |
|---|