| Directory: | ./ |
|---|---|
| File: | rad/suphy2.f90 |
| Date: | 2022-01-11 19:19:34 |
| Exec | Total | Coverage | |
|---|---|---|---|
| Lines: | 30 | 34 | 88.2% |
| Branches: | 5 | 12 | 41.7% |
| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | !OPTIONS XOPT(NOEVAL) | ||
| 2 | 1 | SUBROUTINE SUPHY2(KULOUT) | |
| 3 | |||
| 4 | !**** *SUPHY2* - Initialize common YOMPHY2 physics controlling | ||
| 5 | ! constants | ||
| 6 | |||
| 7 | ! Purpose. | ||
| 8 | ! -------- | ||
| 9 | ! Initialize YOMPHY2, the common that contains the parameters | ||
| 10 | ! for the control part of the physics of the model. | ||
| 11 | |||
| 12 | !** Interface. | ||
| 13 | ! ---------- | ||
| 14 | ! *CALL* *SUPHY2(KULOUT) | ||
| 15 | |||
| 16 | ! Explicit arguments : | ||
| 17 | ! -------------------- | ||
| 18 | ! KULOUT : Logical unit for the output | ||
| 19 | |||
| 20 | ! Implicit arguments : | ||
| 21 | ! -------------------- | ||
| 22 | ! COMMON YOMPHY2 | ||
| 23 | |||
| 24 | ! Method. | ||
| 25 | ! ------- | ||
| 26 | ! See documentation | ||
| 27 | |||
| 28 | ! Externals. | ||
| 29 | ! ---------- | ||
| 30 | |||
| 31 | ! Reference. | ||
| 32 | ! ---------- | ||
| 33 | ! Documentation ARPEGE | ||
| 34 | |||
| 35 | ! Author. | ||
| 36 | ! ------- | ||
| 37 | ! J.-F. Geleyn . | ||
| 38 | ! Original : 90-9-1 | ||
| 39 | |||
| 40 | ! Modifications. | ||
| 41 | ! -------------- | ||
| 42 | ! R. EL Khatib : 93-04-02 Set-up defaults controled by LECMWF | ||
| 43 | ! J.-F. Geleyn : 93-08-19 New cloudiness diagnostics. | ||
| 44 | ! J.-F. Geleyn : 95-04-10 Anti-fibril. Girard-Delage. | ||
| 45 | ! P. Marquet : 97-02-18 Value of VETAF=VAH/VP00+VBH. | ||
| 46 | ! J.M. Piriou : 97-04-17 XMULAF default value. | ||
| 47 | ! E. Bazile : 98-03-10 Introduce XMUCVPP. | ||
| 48 | ! W. Owcarz : 2000-03-27 Set a default value for TSPHY | ||
| 49 | ! R. EL Khatib : 2000-06-13 RIPBLC | ||
| 50 | ! R. EL Khatib : 2000-08-21 Turbulent gusts setup | ||
| 51 | ! J.M. Piriou : 2002-01-10 set default values to operational ones. | ||
| 52 | ! Modified by R. EL Khatib : 02-03-29 Control XMULAF<0 ; add LMULAF | ||
| 53 | ! Modified by D. Banciu : 02-12-09 Introduction of XDAMP | ||
| 54 | ! M.Hamrud 01-Oct-2003 CY28 Cleaning | ||
| 55 | ! ------------------------------------------------------------------ | ||
| 56 | |||
| 57 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
| 58 | USE YOMHOOK ,ONLY : LHOOK, DR_HOOK | ||
| 59 | |||
| 60 | ! Ce qui concerne NULNAM commente par MPL le 15.04.09 | ||
| 61 | !USE YOMLUN , ONLY : NULNAM | ||
| 62 | USE YOMCT0B , ONLY : LECMWF | ||
| 63 | ! commente par MPL 25.11.08 | ||
| 64 | !USE YOMGEM , ONLY : VALH ,VBH | ||
| 65 | USE YOMDIM , ONLY : NFLEVG | ||
| 66 | USE YOMPHY2 , ONLY : NTSHM ,NTSML ,XMUCVPP ,LMULAF ,& | ||
| 67 | & XMULAF ,XDAMP ,HCLP ,HTCLS ,& | ||
| 68 | & RIPBLC ,& | ||
| 69 | & LRAFTUR ,GZ0RAF ,FACRAF ,& | ||
| 70 | & HVCLS ,HTSHM ,HTSML ,& | ||
| 71 | & TSPHY | ||
| 72 | |||
| 73 | IMPLICIT NONE | ||
| 74 | |||
| 75 | INTEGER(KIND=JPIM),INTENT(IN) :: KULOUT | ||
| 76 | INTEGER(KIND=JPIM) :: JLEV | ||
| 77 | |||
| 78 | REAL(KIND=JPRB) :: ZVETAF | ||
| 79 | REAL(KIND=JPRB) :: ZHOOK_HANDLE | ||
| 80 | |||
| 81 | INTERFACE | ||
| 82 | SUBROUTINE ABOR1(CDTEXT) | ||
| 83 | CHARACTER(LEN=*) :: CDTEXT | ||
| 84 | END SUBROUTINE ABOR1 | ||
| 85 | END INTERFACE | ||
| 86 | INTERFACE | ||
| 87 | SUBROUTINE POSNAM(KULNAM,CDNAML) | ||
| 88 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
| 89 | INTEGER(KIND=JPIM),INTENT(IN) :: KULNAM | ||
| 90 | CHARACTER(LEN=*) ,INTENT(IN) :: CDNAML | ||
| 91 | END SUBROUTINE POSNAM | ||
| 92 | END INTERFACE | ||
| 93 | |||
| 94 | ! ------------------------------------------------------------------ | ||
| 95 | NAMELIST/NAMPHY2/& | ||
| 96 | &XMUCVPP,XMULAF,XDAMP,LMULAF,& | ||
| 97 | &HCLP,& | ||
| 98 | &RIPBLC,& | ||
| 99 | &GZ0RAF,FACRAF,LRAFTUR,& | ||
| 100 | &HTSHM,HTSML | ||
| 101 | ! ------------------------------------------------------------------ | ||
| 102 | |||
| 103 | ! ------------------------------------------------------------------ | ||
| 104 | |||
| 105 | !* 1. Set default values. | ||
| 106 | ! ------------------- | ||
| 107 | |||
| 108 | ! 1.1 Set implicit default values | ||
| 109 | |||
| 110 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (LHOOK) CALL DR_HOOK('SUPHY2',0,ZHOOK_HANDLE) |
| 111 | 1 | XMULAF=-1.75_JPRB | |
| 112 | 1 | XMUCVPP=0._JPRB | |
| 113 | 1 | XDAMP=0._JPRB | |
| 114 | 1 | HCLP=1500._JPRB | |
| 115 | 1 | HTCLS=2._JPRB | |
| 116 | 1 | HVCLS=10._JPRB | |
| 117 | 1 | HTSHM=0.450_JPRB | |
| 118 | 1 | HTSML=0.785_JPRB | |
| 119 | 1 | TSPHY=1._JPRB | |
| 120 | 1 | RIPBLC=0.5_JPRB | |
| 121 | 1 | LRAFTUR=.FALSE. | |
| 122 | 1 | GZ0RAF=10.0_JPRB | |
| 123 | 1 | FACRAF=15.0_JPRB | |
| 124 | 1 | LMULAF=.FALSE. | |
| 125 | |||
| 126 | ! 1.2 Modify default values according to LECMWF | ||
| 127 | |||
| 128 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (LECMWF) THEN |
| 129 | ELSE | ||
| 130 | 1 | LRAFTUR=.TRUE. | |
| 131 | ENDIF | ||
| 132 | |||
| 133 | ! Remark : values for TSPHY, NTSHM/ML are calculated and not set up. | ||
| 134 | |||
| 135 | ! ------------------------------------------------------------------ | ||
| 136 | |||
| 137 | !* 2. Modify default values. | ||
| 138 | ! ---------------------- | ||
| 139 | |||
| 140 | ! Ce qui concerne NAMPHY2 commente par MPL le 15.04.09 | ||
| 141 | !CALL POSNAM(NULNAM,'NAMPHY2') | ||
| 142 | !READ(NULNAM,NAMPHY2) | ||
| 143 | ! ------------------------------------------------------------------ | ||
| 144 | |||
| 145 | !* 3. Compute cloud transition indexes. | ||
| 146 | ! --------------------------------- | ||
| 147 | |||
| 148 | 1 | NTSHM=0 | |
| 149 | 1 | NTSML=0 | |
| 150 | ! commente par MPL 25.11.08 | ||
| 151 | !DO JLEV=1,NFLEVG | ||
| 152 | ! ZVETAF=(VALH(JLEV)+VBH(JLEV)+VALH(JLEV-1)+VBH(JLEV-1))*0.5_JPRB | ||
| 153 | ! IF (ZVETAF <= HTSHM) THEN | ||
| 154 | ! NTSHM=JLEV | ||
| 155 | ! ENDIF | ||
| 156 | ! IF (ZVETAF <= HTSML) THEN | ||
| 157 | ! NTSML=JLEV | ||
| 158 | ! ENDIF | ||
| 159 | !ENDDO | ||
| 160 | |||
| 161 | ! ------------------------------------------------------------------ | ||
| 162 | |||
| 163 | !* 4. Print final values. | ||
| 164 | ! ------------------- | ||
| 165 | |||
| 166 | 1 | WRITE(UNIT=KULOUT,FMT='('' COMMON YOMPHY2 '')') | |
| 167 | WRITE(UNIT=KULOUT,FMT='('' XMUCVPP = '',E10.4,'' XMULAF = '',E10.4 & | ||
| 168 | & ,'' XDAMP = '',E10.4 & | ||
| 169 | & ,'' LMULAF = '',L2,/,'' HTCLS = '',E10.4 & | ||
| 170 | & ,'' HVCLS = '',E10.4,'' HCLP = '',E10.4,/& | ||
| 171 | & ,'' RIPBLC = '',F8.4 & | ||
| 172 | & ,'' LRAFTUR = '',L2,'' GZ0RAF = '',E10.4,'' FACRAF = '',E10.4 & | ||
| 173 | & ,'' HTSHM = '',F8.4,'' NTSHM = '',I3,'' HTSML = '',F8.4 & | ||
| 174 | & ,'' NTSML = '',I3 & | ||
| 175 | & )')& | ||
| 176 | 1 | & XMUCVPP,XMULAF,XDAMP,LMULAF,& | |
| 177 | 1 | & HTCLS,HVCLS,HCLP,& | |
| 178 | 1 | & RIPBLC,& | |
| 179 | 1 | & LRAFTUR,GZ0RAF,FACRAF,& | |
| 180 | 2 | & HTSHM,NTSHM,HTSML,NTSML | |
| 181 | |||
| 182 | !* 5. Control | ||
| 183 | ! ------- | ||
| 184 | |||
| 185 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF (XMULAF > 0.0_JPRB) THEN |
| 186 | ✗ | WRITE(KULOUT,*) 'XMULAF SHOULD BE NEGATIVE' | |
| 187 | ✗ | CALL ABOR1('SUPHY2 : ABOR1 CALLED') | |
| 188 | ENDIF | ||
| 189 | |||
| 190 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
1 | IF ((XDAMP /= 0.0_JPRB).AND.(XMUCVPP /= 0.0_JPRB)) THEN |
| 191 | ✗ | WRITE(UNIT=KULOUT,FMT='(A)') 'INCONSISTENCY BETWEEN XDAMP AND XMUCVPP !' | |
| 192 | ✗ | CALL ABOR1('XDAMP/=0. IMPLIES XMUCVPP=0.!...') | |
| 193 | ENDIF | ||
| 194 | |||
| 195 | ! ------------------------------------------------------------------ | ||
| 196 | |||
| 197 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (LHOOK) CALL DR_HOOK('SUPHY2',1,ZHOOK_HANDLE) |
| 198 | 1 | END SUBROUTINE SUPHY2 | |
| 199 |