| Directory: | ./ |
|---|---|
| File: | rad/su_aerw.f90 |
| Date: | 2022-01-11 19:19:34 |
| Exec | Total | Coverage | |
|---|---|---|---|
| Lines: | 46 | 71 | 64.8% |
| Branches: | 7 | 30 | 23.3% |
| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | 1 | SUBROUTINE SU_AERW | |
| 2 | |||
| 3 | !**** *SU_AERW* - DEFINES INDICES AND PARAMETERS FOR VARIOUS AEROSOL VARIABLES | ||
| 4 | |||
| 5 | ! PURPOSE. | ||
| 6 | ! -------- | ||
| 7 | ! INITIALIZE YOEAERATM, YOEAERSRC, YOEAERSNK, THE MODULES THAT CONTAINS INDICES | ||
| 8 | ! ALLOWING TO GET THE AEROSOL PARAMETERS RELEVANT FOR THE PROGNOSTIC AEROSOL | ||
| 9 | ! CONFIGURATION. | ||
| 10 | |||
| 11 | !** INTERFACE. | ||
| 12 | ! ---------- | ||
| 13 | ! *CALL* *SU_AERW | ||
| 14 | |||
| 15 | ! EXPLICIT ARGUMENTS : | ||
| 16 | ! -------------------- | ||
| 17 | ! NONE | ||
| 18 | |||
| 19 | ! IMPLICIT ARGUMENTS : | ||
| 20 | ! -------------------- | ||
| 21 | ! YOEAERW | ||
| 22 | |||
| 23 | ! METHOD. | ||
| 24 | ! ------- | ||
| 25 | ! SEE DOCUMENTATION | ||
| 26 | |||
| 27 | ! EXTERNALS. | ||
| 28 | ! ---------- | ||
| 29 | |||
| 30 | ! REFERENCE. | ||
| 31 | ! ---------- | ||
| 32 | ! ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE IFS | ||
| 33 | |||
| 34 | ! AUTHOR. | ||
| 35 | ! ------- | ||
| 36 | ! JEAN-JACQUES MORCRETTE *ECMWF* | ||
| 37 | |||
| 38 | ! MODIFICATIONS. | ||
| 39 | ! -------------- | ||
| 40 | ! ORIGINAL : 2005-07-08 | ||
| 41 | |||
| 42 | ! ------------------------------------------------------------------ | ||
| 43 | |||
| 44 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
| 45 | USE YOMHOOK ,ONLY : LHOOK, DR_HOOK | ||
| 46 | |||
| 47 | USE YOEAERATM, ONLY : LAERGBUD, LAERSCAV ,LAERSEDIM, LAERSURF, LAER6SDIA, & | ||
| 48 | & LAERCLIMG, LAERCLIMZ, LAERCLIST, LAERDRYDP, LAERNGAT, LAERPRNT, & | ||
| 49 | & REPSCAER , INDBG | ||
| 50 | |||
| 51 | USE YOEAERSRC, ONLY : JKBIN, JKTYP, LEPAERO , & | ||
| 52 | & NBINAER, NINDAER , NMAXTAER, NTAER , NTYPAER, RGELAV , RGEMUV , & | ||
| 53 | & RDGLAV , RDGMUV , RCLONV , RSLONV , RDCLONV, RDSLONV, LAEREXTR, & | ||
| 54 | & RSSFLX , RLATVOL , RLONVOL , NDDUST | ||
| 55 | |||
| 56 | USE YOEPHY , ONLY : LE4ALB | ||
| 57 | |||
| 58 | USE YOEDBUG , ONLY : KSTPDBG | ||
| 59 | |||
| 60 | USE YOMCST , ONLY : RPI | ||
| 61 | USE YOMGC , ONLY : GELAM | ||
| 62 | USE YOMGEM , ONLY : NGPTOT | ||
| 63 | USE YOMLEG , ONLY : RMU | ||
| 64 | ! Ce qui concerne NULNAM commente par MPL le 15.04.09 | ||
| 65 | !USE YOMLUN , ONLY : NULNAM, NULOUT | ||
| 66 | USE YOMLUN , ONLY : NULOUT | ||
| 67 | |||
| 68 | USE YOM_YGFL, ONLY : NAERO | ||
| 69 | |||
| 70 | IMPLICIT NONE | ||
| 71 | |||
| 72 | INTEGER(KIND=JPIM) :: IAER, ICAER, ITAER | ||
| 73 | INTEGER(KIND=JPIM) :: J, JAER, JL | ||
| 74 | |||
| 75 | REAL(KIND=JPRB) :: ZHOOK_HANDLE | ||
| 76 | ! ---------------------------------------------------------------- | ||
| 77 | |||
| 78 | INTERFACE | ||
| 79 | SUBROUTINE POSNAM(KULNAM,CDNAML) | ||
| 80 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
| 81 | INTEGER(KIND=JPIM),INTENT(IN) :: KULNAM | ||
| 82 | CHARACTER(LEN=*) ,INTENT(IN) :: CDNAML | ||
| 83 | END SUBROUTINE POSNAM | ||
| 84 | END INTERFACE | ||
| 85 | |||
| 86 | INTERFACE | ||
| 87 | SUBROUTINE SU_AERP | ||
| 88 | END SUBROUTINE SU_AERP | ||
| 89 | END INTERFACE | ||
| 90 | INTERFACE | ||
| 91 | SUBROUTINE SU_AEROP | ||
| 92 | END SUBROUTINE SU_AEROP | ||
| 93 | END INTERFACE | ||
| 94 | ! ---------------------------------------------------------------- | ||
| 95 | |||
| 96 | ! ----------------------------------------------------------------- | ||
| 97 | NAMELIST/NAEAER/& | ||
| 98 | & LEPAERO , LAERCLIMG, LAERCLIMZ, LAERCLIST, LAERDRYDP, LAEREXTR , & | ||
| 99 | & LAERGBUD , LAERNGAT , LAERPRNT , LAERSCAV , LAERSEDIM, LAERSURF , & | ||
| 100 | & LAER6SDIA, & | ||
| 101 | & NTAER , NTYPAER , INDBG , NDDUST , & | ||
| 102 | & RLATVOL , RLONVOL , KSTPDBG | ||
| 103 | ! ----------------------------------------------------------------- | ||
| 104 | |||
| 105 | |||
| 106 | ! ---------------------------------------------------------------- | ||
| 107 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (LHOOK) CALL DR_HOOK('SU_AERW',0,ZHOOK_HANDLE) |
| 108 | |||
| 109 | !* 1. DEFAULT VALUES OF PARAMETERS | ||
| 110 | ! ---------------------------- | ||
| 111 | |||
| 112 | 1 | print *,'DANS SU_AERW' | |
| 113 | 1 | NBINAER(:) = (/ 3, 3, 2, 2, 1, 1, 1, 1, 1 /) | |
| 114 | |||
| 115 | 1 | NMAXTAER=9 | |
| 116 | 1 | NTYPAER(:) = 0 | |
| 117 | 1 | JKBIN(:) = 0 | |
| 118 | 1 | JKTYP(:) = 0 | |
| 119 | |||
| 120 | 1 | LEPAERO=.FALSE. | |
| 121 | 1 | LAERCLIMG=.FALSE. | |
| 122 | 1 | LAERCLIMZ=.FALSE. | |
| 123 | 1 | LAERCLIST=.FALSE. | |
| 124 | 1 | LAERDRYDP=.FALSE. | |
| 125 | 1 | LAEREXTR=.FALSE. | |
| 126 | 1 | LAERGBUD=.FALSE. | |
| 127 | 1 | LAERNGAT=.FALSE. | |
| 128 | 1 | LAERPRNT=.FALSE. | |
| 129 | 1 | LAERSCAV=.FALSE. | |
| 130 | 1 | LAERSEDIM=.FALSE. | |
| 131 | 1 | LAERSURF=.FALSE. | |
| 132 | 1 | LAER6SDIA=.FALSE. | |
| 133 | 1 | INDBG=1 | |
| 134 | 1 | NTAER =0 | |
| 135 | 1 | NDDUST =2 | |
| 136 | |||
| 137 | ! the 9 types and assumed number of bins are: | ||
| 138 | ! NTYPAER bins type | ||
| 139 | ! 1 1- 3 sea-salt 0.03 - 0.5 - 5 - 20 microns | ||
| 140 | ! 2 4- 6 dust 0.03 - 0.5 - 0.9 - 20 microns | ||
| 141 | ! 3 7- 8 POM hydrophilic, hydrophobic | ||
| 142 | ! 4 9-10 BC hydrophilic, hydrophobic | ||
| 143 | ! 5 11 sulfate | ||
| 144 | ! 6 12 fly ash | ||
| 145 | ! 7 13 pseudo-prognostic stratospheric aerosols | ||
| 146 | ! 8 14 pseudo-prognostic volcanic aerosols | ||
| 147 | ! 9 15 prognostic stratospheric aerosols | ||
| 148 | |||
| 149 |
2/2✓ Branch 0 taken 9 times.
✓ Branch 1 taken 1 times.
|
10 | DO JAER=1,NMAXTAER |
| 150 | 10 | NTYPAER(JAER)=0 | |
| 151 | ENDDO | ||
| 152 | |||
| 153 | 1 | RLATVOL=-999._JPRB | |
| 154 | 1 | RLONVOL=-999._JPRB | |
| 155 | 1 | RGELAV =-999._JPRB | |
| 156 | 1 | RGEMUV =-999._JPRB | |
| 157 | 1 | RDGLAV = 999._JPRB | |
| 158 | 1 | RDGMUV = 999._JPRB | |
| 159 | 1 | RCLONV =-999._JPRB | |
| 160 | 1 | RSLONV =-999._JPRB | |
| 161 | 1 | RDCLONV= 999._JPRB | |
| 162 | 1 | RDSLONV= 999._JPRB | |
| 163 |
2/2✓ Branch 0 taken 3 times.
✓ Branch 1 taken 1 times.
|
4 | DO J=1,3 |
| 164 | 4 | KSTPDBG(J)=-999 | |
| 165 | ENDDO | ||
| 166 | |||
| 167 | 1 | REPSCAER=1.E-15_JPRB | |
| 168 | |||
| 169 | ! ------------------------------------------------------------------ | ||
| 170 | |||
| 171 | !* 2. READ VALUES OF PROGNOSTIC AEROSOL CONFIGURATION | ||
| 172 | ! ----------------------------------------------- | ||
| 173 | ! Ce qui concerne NAEAER commente par MPL le 15.04.09 | ||
| 174 | !IF(NAERO > 0) THEN | ||
| 175 | ! CALL POSNAM(NULNAM,'NAEAER') | ||
| 176 | ! READ (NULNAM,NAEAER) | ||
| 177 | !ENDIF | ||
| 178 | |||
| 179 | IF (.NOT.LE4ALB) THEN | ||
| 180 | NDDUST=2 | ||
| 181 | ENDIF | ||
| 182 | ! ------------------------------------------------------------------ | ||
| 183 | |||
| 184 | !* 3. INITIALIZE PROGNOSTIC AEROSOL PHYSICAL AND OPTICAL PARAMETERS | ||
| 185 | ! ------------------------------------------------------------- | ||
| 186 | |||
| 187 | 1 | CALL SU_AERP | |
| 188 | 1 | print *,'SU_AERW: apres SU_AERP' | |
| 189 | 1 | CALL SU_AEROP | |
| 190 | 1 | print *,'SU_AERW: apres SU_AEROP' | |
| 191 | |||
| 192 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF (LEPAERO) THEN |
| 193 | |||
| 194 | ! define a composite index for each bin of each different aerosol type to be used | ||
| 195 | ! in source, sedimentation and deposition routines | ||
| 196 | |||
| 197 | ICAER=0 | ||
| 198 | ✗ | DO JAER=1,NMAXTAER | |
| 199 | ✗ | IF (NTYPAER(JAER) /= 0) THEN | |
| 200 | ✗ | NTAER=NTAER+1 | |
| 201 | ITAER=NTYPAER(JAER) | ||
| 202 | ✗ | DO IAER=1,ITAER | |
| 203 | ✗ | ICAER=ICAER+1 | |
| 204 | ✗ | NINDAER(ICAER)=JAER*10+IAER | |
| 205 | ✗ | JKTYP(ICAER)=JAER | |
| 206 | ✗ | JKBIN(ICAER)=IAER | |
| 207 | ENDDO | ||
| 208 | ENDIF | ||
| 209 | ENDDO | ||
| 210 | |||
| 211 | !-- if volcanic aerosols, define the model coordinates | ||
| 212 | |||
| 213 | ✗ | IF (NTYPAER(9) /= 0) THEN | |
| 214 | ✗ | RGEMUV=(RLATVOL+90._JPRB)*RPI/180._JPRB | |
| 215 | ✗ | RGELAV=RLONVOL*RPI/180._JPRB | |
| 216 | ✗ | RCLONV=COS(RGELAV) | |
| 217 | ✗ | RSLONV=SIN(RGELAV) | |
| 218 | ✗ | DO J=1,NGPTOT-1 | |
| 219 | IF (RGELAV > GELAM(J) .AND. RGELAV <= GELAM(J+1) .AND. & | ||
| 220 | ✗ | & RGEMUV < RMU(JL) .AND. RGEMUV >= RMU(JL+1) ) THEN | |
| 221 | ✗ | RDGMUV=ABS( RMU(J+1) - RMU(J)) | |
| 222 | ✗ | RDGLAV=ABS( GELAM(J+1)-GELAM(J) ) | |
| 223 | ✗ | RDSLONV=ABS( SIN(GELAM(JL+1))-SIN(GELAM(JL)) ) | |
| 224 | ✗ | RDCLONV=ABS( COS(GELAM(JL+1))-COS(GELAM(JL)) ) | |
| 225 | ENDIF | ||
| 226 | ENDDO | ||
| 227 | ENDIF | ||
| 228 | |||
| 229 | ! ---------------------------------------------------------------- | ||
| 230 | |||
| 231 | !* 4. PRINT FINAL VALUES. | ||
| 232 | ! ------------------- | ||
| 233 | |||
| 234 | WRITE(UNIT=NULOUT,FMT='('' LEPAERO = '',L5 & | ||
| 235 | & ,'' NTAER = '',I2 ,'' NDDUST = '',I1,/& | ||
| 236 | & ,'' NTYPAER = '',9I3,/ & | ||
| 237 | & ,'' NBINAER = '',9I3,/ & | ||
| 238 | & ,'' JKTYP = '',15I3,/& | ||
| 239 | & ,'' JKBIN = '',15I3 & | ||
| 240 | & )')& | ||
| 241 | ✗ | & LEPAERO,NTAER,(NTYPAER(JAER),JAER=1,9),(NBINAER(JAER),JAER=1,9), & | |
| 242 | ✗ | & (JKTYP(JAER),JAER=1,15),(JKBIN(JAER),JAER=1,15) | |
| 243 | WRITE(UNIT=NULOUT,FMT='('' LAERGBUD = '',L3 & | ||
| 244 | & ,'' LAERNGAT = '',L3 & | ||
| 245 | & ,'' LAERDRYDP= '',L3 & | ||
| 246 | & ,'' LAERSEDIM= '',L3 & | ||
| 247 | & ,'' LAERSCAV = '',L3 & | ||
| 248 | & ,'' LAER6SDIA= '',L3 & | ||
| 249 | & ,'' LAERCLIMZ= '',L3 & | ||
| 250 | & ,'' LAERCLIMG= '',L3 & | ||
| 251 | & ,'' LAERCLIST= '',L3 & | ||
| 252 | & )')& | ||
| 253 | ✗ | & LAERGBUD,LAERNGAT, LAERDRYDP,LAERSEDIM,LAERSCAV,LAER6SDIA,LAERCLIMZ,LAERCLIMG,LAERCLIST | |
| 254 | ✗ | WRITE(UNIT=NULOUT,FMT='('' RSSFLX= '',10E10.3)') RSSFLX | |
| 255 | ✗ | IF (NTYPAER(9) /= 0) THEN | |
| 256 | WRITE(UNIT=NULOUT,FMT='('' RLATVOL= '',F5.2 & | ||
| 257 | & ,'' RLONVOL= '',F6.2,'' RGEMUV= '',F6.4,'' RGELAV= '',F6.4 & | ||
| 258 | & ,'' RCLONV = '',F6.4,'' RSLONV= '',F6.4,'' RDGMUV= '',F6.4 & | ||
| 259 | & ,'' RDGLAV = '',F6.4,'' RDCLONV= '',F6.4,'' RDSLONV= '',F6.4 & | ||
| 260 | & )')& | ||
| 261 | ✗ | & RLATVOL,RLONVOL,RGEMUV,RGELAV,RCLONV,RSLONV,RDGMUV,RDGLAV,RDCLONV,RDSLONV | |
| 262 | ENDIF | ||
| 263 | ENDIF | ||
| 264 | |||
| 265 | ! ---------------------------------------------------------------- | ||
| 266 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (LHOOK) CALL DR_HOOK('SU_AERW',1,ZHOOK_HANDLE) |
| 267 | 1 | END SUBROUTINE SU_AERW | |
| 268 | |||
| 269 | |||
| 270 | |||
| 271 | |||
| 272 | |||
| 273 | |||
| 274 | |||
| 275 | |||
| 276 | |||
| 277 | |||
| 278 | |||
| 279 | |||
| 280 | |||
| 281 | |||
| 282 | |||
| 283 | |||
| 284 | |||
| 285 | |||
| 286 | |||
| 287 | |||
| 288 | |||
| 289 | |||
| 290 | |||
| 291 | |||
| 292 | |||
| 293 | |||
| 294 | |||
| 295 | |||
| 296 | |||
| 297 | |||
| 298 | |||
| 299 | |||
| 300 | |||
| 301 | |||
| 302 | |||
| 303 | |||
| 304 |