Changeset 5252 for LMDZ6/trunk/libf/phylmd/rrtm
- Timestamp:
- Oct 22, 2024, 2:09:45 PM (2 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/rrtm/lwu.F90
r4389 r5252 6 6 & PAER , PCCO2, PDP , PPMB, PQOF , PTAVE, PVIEW, PWV,& 7 7 & PABCU & 8 & ) 8 & ) 9 9 10 10 !**** *LWU* - LONGWAVE EFFECTIVE ABSORBER AMOUNTS … … 71 71 USE YOELW , ONLY : NSIL ,NUA ,NG1 ,NG1P1 ,& 72 72 & ALWT ,BLWT ,RO3T ,RT1 ,TREF ,& 73 & RVGCO2 ,RVGH2O ,RVGO3 73 & RVGCO2 ,RVGH2O ,RVGO3 74 74 !USE YOERDI , ONLY : RCH4 ,RN2O ,RCFC11 ,RCFC12 75 75 USE YOERDU , ONLY : R10E ,REPSCO ,REPSCQ 76 #ifdef REPROBUS 77 USE chem_rep, ONLY: rch42d, rn2o2d, rcfc112d, rcfc122d, ok_rtime2d 76 USE lmdz_reprobus_wrappers, ONLY: rch42d, rn2o2d, rcfc112d, rcfc122d, ok_rtime2d 78 77 USE infotrac_phy, ONLY : type_trac 79 #endif 80 78 USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_REPROBUS 81 79 82 80 IMPLICIT NONE 83 81 84 INTEGER(KIND=JPIM),INTENT(IN) :: KLON 85 INTEGER(KIND=JPIM),INTENT(IN) :: KLEV 86 INTEGER(KIND=JPIM),INTENT(IN) :: KIDIA 87 INTEGER(KIND=JPIM),INTENT(IN) :: KFDIA 88 REAL(KIND=JPRB) ,INTENT(IN) :: PAER(KLON,6,KLEV) 89 REAL(KIND=JPRB) ,INTENT(IN) :: PCCO2 90 REAL(KIND=JPRB) ,INTENT(IN) :: PDP(KLON,KLEV) 91 REAL(KIND=JPRB) ,INTENT(IN) :: PPMB(KLON,KLEV+1) 92 REAL(KIND=JPRB) ,INTENT(IN) :: PQOF(KLON,KLEV) 93 REAL(KIND=JPRB) ,INTENT(IN) :: PTAVE(KLON,KLEV) 94 REAL(KIND=JPRB) ,INTENT(IN) :: PVIEW(KLON) 95 REAL(KIND=JPRB) ,INTENT(IN) :: PWV(KLON,KLEV) 96 REAL(KIND=JPRB) ,INTENT(OUT) :: PABCU(KLON,NUA,3*KLEV+1) 82 INTEGER(KIND=JPIM),INTENT(IN) :: KLON 83 INTEGER(KIND=JPIM),INTENT(IN) :: KLEV 84 INTEGER(KIND=JPIM),INTENT(IN) :: KIDIA 85 INTEGER(KIND=JPIM),INTENT(IN) :: KFDIA 86 REAL(KIND=JPRB) ,INTENT(IN) :: PAER(KLON,6,KLEV) 87 REAL(KIND=JPRB) ,INTENT(IN) :: PCCO2 88 REAL(KIND=JPRB) ,INTENT(IN) :: PDP(KLON,KLEV) 89 REAL(KIND=JPRB) ,INTENT(IN) :: PPMB(KLON,KLEV+1) 90 REAL(KIND=JPRB) ,INTENT(IN) :: PQOF(KLON,KLEV) 91 REAL(KIND=JPRB) ,INTENT(IN) :: PTAVE(KLON,KLEV) 92 REAL(KIND=JPRB) ,INTENT(IN) :: PVIEW(KLON) 93 REAL(KIND=JPRB) ,INTENT(IN) :: PWV(KLON,KLEV) 94 REAL(KIND=JPRB) ,INTENT(OUT) :: PABCU(KLON,NUA,3*KLEV+1) 97 95 98 96 #include "clesphys.h" … … 107 105 REAL(KIND=JPRB) :: ZABLY(KLON,7,3*KLEV+1) , ZDPM(KLON,3*KLEV)& 108 106 & , ZDUC(KLON, 3*KLEV+1) , ZFACT(KLON)& 109 & , ZUPM(KLON,3*KLEV) 107 & , ZUPM(KLON,3*KLEV) 110 108 REAL(KIND=JPRB) :: ZPHIO(KLON),ZPSC2(KLON) , ZPSC3(KLON), ZPSH1(KLON)& 111 109 & , ZPSH2(KLON),ZPSH3(KLON) , ZPSH4(KLON), ZPSH5(KLON)& 112 110 & , ZPSH6(KLON),ZPSIO(KLON) , ZTCON(KLON)& 113 & , ZPHM6(KLON),ZPSM6(KLON) , ZPHN6(KLON), ZPSN6(KLON) 111 & , ZPHM6(KLON),ZPSM6(KLON) , ZPHN6(KLON), ZPSN6(KLON) 114 112 REAL(KIND=JPRB) :: ZSSIG(KLON,3*KLEV+1) , ZTAVI(KLON)& 115 & , ZUAER(KLON,NSIL) , ZXOZ(KLON) , ZXWV(KLON) 113 & , ZUAER(KLON,NSIL) , ZXOZ(KLON) , ZXWV(KLON) 116 114 117 115 INTEGER(KIND=JPIM) :: IAE1, IAE2, IAE3, IC, ICP1, IG1, IJ, IJPN,& 118 116 & IKIP1, IKJ, IKJP, IKJPN, IKJR, IKL, JA, JAE, & 119 & JK, JKI, JKK, JL 117 & JK, JKI, JKK, JL 120 118 121 119 REAL(KIND=JPRB) :: ZALUP, ZCAC8, ZCAH1, ZCAH2, ZCAH3, ZCAH4,& … … 123 121 & ZCBH4, ZCBH5, ZCBH6, ZDIFF, ZDPMG, ZDPMP0, & 124 122 & ZFPPW, ZTX, ZTX2, ZU6, ZUP, ZUPMCO2, ZUPMG, & 125 & ZUPMH2O, ZUPMO3, ZZABLY 123 & ZUPMH2O, ZUPMO3, ZZABLY 126 124 REAL(KIND=JPRB) :: ZHOOK_HANDLE 127 125 … … 153 151 DO JL = KIDIA,KFDIA 154 152 ZSSIG(JL,IKJ)= (ZSSIG(JL,IKJR) + ZSSIG(JL,IKJP)) * 0.5_JPRB & 155 & + RT1(IG1) * (ZSSIG(JL,IKJP) - ZSSIG(JL,IKJR)) * 0.5_JPRB 153 & + RT1(IG1) * (ZSSIG(JL,IKJP) - ZSSIG(JL,IKJR)) * 0.5_JPRB 156 154 ENDDO 157 155 ENDDO … … 237 235 & +RAER(JAE,3)*PAER(JL,3,JK)+RAER(JAE,4)*PAER(JL,4,JK)& 238 236 & +RAER(JAE,5)*PAER(JL,5,JK)+RAER(JAE,6)*PAER(JL,6,JK))& 239 & /(ZDUC(JL,IAE1)+ZDUC(JL,IAE2)+ZDUC(JL,IAE3)) 237 & /(ZDUC(JL,IAE1)+ZDUC(JL,IAE2)+ZDUC(JL,IAE3)) 240 238 ENDDO 241 239 ENDDO … … 297 295 DO JL = KIDIA,KFDIA 298 296 ZDIFF = PVIEW(JL) 299 !- H2O continuum 297 !- H2O continuum 300 298 PABCU(JL,10,IC)=PABCU(JL,10,ICP1)+ ZABLY(JL,4,IC) *ZDIFF 301 299 PABCU(JL,11,IC)=PABCU(JL,11,ICP1)+ ZABLY(JL,5,IC)*ZTCON(JL)*ZDIFF 302 !- O3 300 !- O3 303 301 PABCU(JL,12,IC)=PABCU(JL,12,ICP1)+ ZABLY(JL,6,IC)*ZPHIO(JL)*ZDIFF 304 302 PABCU(JL,13,IC)=PABCU(JL,13,ICP1)+ ZABLY(JL,7,IC)*ZPSIO(JL)*ZDIFF … … 320 318 PABCU(JL,17,IC)=PABCU(JL,17,ICP1)+ ZUAER(JL,4) *ZDUC(JL,IC)*ZDIFF 321 319 PABCU(JL,18,IC)=PABCU(JL,18,ICP1)+ ZUAER(JL,5) *ZDUC(JL,IC)*ZDIFF 322 #ifdef REPROBUS 323 IF (type_trac=='repr'.and. ok_rtime2d) THEN 320 IF (CPPKEY_REPROBUS .AND. type_trac=='repr'.AND. ok_rtime2d) THEN 324 321 !- CH4 325 322 PABCU(JL,19,IC)=PABCU(JL,19,ICP1)& … … 340 337 341 338 ELSE 342 #endif343 339 !- CH4 344 340 PABCU(JL,19,IC)=PABCU(JL,19,ICP1)& 345 & + ZABLY(JL,2,IC)*RCH4/PCCO2*ZPHM6(JL)*ZDIFF 341 & + ZABLY(JL,2,IC)*RCH4/PCCO2*ZPHM6(JL)*ZDIFF 346 342 PABCU(JL,20,IC)=PABCU(JL,20,ICP1)& 347 & + ZABLY(JL,3,IC)*RCH4/PCCO2*ZPSM6(JL)*ZDIFF 343 & + ZABLY(JL,3,IC)*RCH4/PCCO2*ZPSM6(JL)*ZDIFF 348 344 !- N2O 349 345 PABCU(JL,21,IC)=PABCU(JL,21,ICP1)& 350 & + ZABLY(JL,2,IC)*RN2O/PCCO2*ZPHN6(JL)*ZDIFF 346 & + ZABLY(JL,2,IC)*RN2O/PCCO2*ZPHN6(JL)*ZDIFF 351 347 PABCU(JL,22,IC)=PABCU(JL,22,ICP1)& 352 & + ZABLY(JL,3,IC)*RN2O/PCCO2*ZPSN6(JL)*ZDIFF 348 & + ZABLY(JL,3,IC)*RN2O/PCCO2*ZPSN6(JL)*ZDIFF 353 349 !- CFC11 354 350 PABCU(JL,23,IC)=PABCU(JL,23,ICP1)& 355 & + ZABLY(JL,2,IC)*RCFC11/PCCO2 *ZDIFF 351 & + ZABLY(JL,2,IC)*RCFC11/PCCO2 *ZDIFF 356 352 !- CFC12 357 353 PABCU(JL,24,IC)=PABCU(JL,24,ICP1)& 358 & + ZABLY(JL,2,IC)*RCFC12/PCCO2 *ZDIFF 359 #ifdef REPROBUS 354 & + ZABLY(JL,2,IC)*RCFC12/PCCO2 *ZDIFF 360 355 END IF 361 #endif362 356 ENDDO 363 357 ENDDO
Note: See TracChangeset
for help on using the changeset viewer.