Changeset 1484 for trunk/LMDZ.GENERIC
- Timestamp:
- Oct 15, 2015, 2:35:35 PM (9 years ago)
- Location:
- trunk/LMDZ.GENERIC
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.GENERIC/README
r1483 r1484 1094 1094 == 14/10/2015 == MT 1095 1095 - Cleanup of callcorrk.F90 1096 1097 == 15/10/2015 == MT 1098 - Harmonization of the calculation of the surface tracer tendencies in physiq.F90. -
trunk/LMDZ.GENERIC/libf/phystd/condense_co2.F90
r1482 r1484 2 2 pcapcal,pplay,pplev,ptsrf,pt, & 3 3 pphi,pdt,pdu,pdv,pdtsrf,pu,pv,pq,pdq, & 4 piceco2, albedo,pemisurf,&4 piceco2,pdqsurfc,albedo,pemisurf, & 5 5 albedo_bareground,albedo_co2_ice_SPECTV, & 6 6 pdtc,pdtsrfc,pdpsrf,pduc,pdvc, & … … 89 89 REAL,INTENT(OUT) :: pdvc(ngrid,nlayer) 90 90 REAL,INTENT(OUT) :: pdqc(ngrid,nlayer,nq) 91 REAL,INTENT(OUT) :: pdqsurfc(ngrid) 91 92 92 93 !----------------------------------------------------------------------- … … 102 103 REAL ztnuc (ngrid,nlayer) 103 104 REAL ztcondsol(ngrid) 104 REAL zdiceco2(ngrid)105 105 REAL zcondicea(ngrid,nlayer), zcondices(ngrid) 106 106 REAL zfallice(ngrid), Mfallice(ngrid) … … 225 225 pdpsrf(ig) = 0. 226 226 condsub(ig) = .false. 227 zdiceco2(ig) = 0.227 pdqsurfc(ig) = 0. 228 228 ENDDO 229 229 … … 435 435 ! Changing CO2 ice amount and pressure 436 436 437 zdiceco2(ig) = zcondices(ig) + zfallice(ig)438 piceco2(ig) = piceco2(ig) + zdiceco2(ig)*ptimestep439 pdpsrf(ig) = - zdiceco2(ig)*g437 pdqsurfc(ig) = zcondices(ig) + zfallice(ig) 438 piceco2(ig) = piceco2(ig) + pdqsurfc(ig)*ptimestep 439 pdpsrf(ig) = -pdqsurfc(ig)*g 440 440 441 441 IF(ABS(pdpsrf(ig)*ptimestep).GT.pplev(ig,1)) THEN … … 461 461 if(.not.piceco2(ig).ge.0.) THEN 462 462 if(piceco2(ig).le.-1.e-8) print*, & 463 'WARNINGin condense_co2cloud: piceco2(',ig,')=', piceco2(ig)463 'WARNING : in condense_co2cloud: piceco2(',ig,')=', piceco2(ig) 464 464 piceco2(ig)=0. 465 465 endif 466 if (piceco2(ig) .gt. 1.) then ! CO2 Albedo condition changed to 1 mm coverage. Change by MT2015.466 if (piceco2(ig) .gt. 1.) then ! CO2 Albedo condition changed to ~1 mm coverage. Change by MT2015. 467 467 DO nw=1,L_NSPECTV 468 468 albedo(ig,nw) = albedo_co2_ice_SPECTV(nw) … … 476 476 pemisurf(ig) = emissiv 477 477 end if 478 479 piceco2(ig) = piceco2(ig) - pdqsurfc(ig)*ptimestep ! This line was added so that tendencies are added outside the routine. MT2015. 480 if(.not.piceco2(ig).ge.0.) THEN 481 if(piceco2(ig).le.-1.e-8) print*, & 482 'WARNING 2 : in condense_co2cloud: piceco2(',ig,')=', piceco2(ig) 483 piceco2(ig)=0. 484 endif 485 478 486 end do 479 487 -
trunk/LMDZ.GENERIC/libf/phystd/hydrol.F90
r1482 r1484 393 393 394 394 395 do ig=1,ngrid 396 dqs_hyd(ig,iliq)=(zqsurf(ig,iliq) - qsurf(ig,iliq))/ptimestep 397 dqs_hyd(ig,iice)=(zqsurf(ig,iice) - qsurf(ig,iice))/ptimestep 395 do ig=1,ngrid ! We calculate here the tracer tendencies. Don't forget that we have to retrieve the dqsurf tendencies we added at the beginning of the routine ! 396 dqs_hyd(ig,iliq)=(zqsurf(ig,iliq) - qsurf(ig,iliq))/ptimestep - dqsurf(ig,iliq) 397 dqs_hyd(ig,iice)=(zqsurf(ig,iice) - qsurf(ig,iice))/ptimestep - dqsurf(ig,iice) 398 398 enddo 399 399 -
trunk/LMDZ.GENERIC/libf/phystd/physiq.F90
r1482 r1484 279 279 ! For Surface Tracers : (kg/m2/s) 280 280 real dqsurf(ngrid,nq) ! Cumulated tendencies. 281 real zdqs lscale(ngrid,nq) ! Largescaleroutine.281 real zdqsurfc(ngrid) ! Condense_co2 routine. 282 282 real zdqsdif(ngrid,nq) ! Turbdiff/vdifc routines. 283 283 real zdqssed(ngrid,nq) ! Callsedim routine. … … 1200 1200 capcal,pplay,pplev,tsurf,pt, & 1201 1201 pphi,pdt,pdu,pdv,zdtsurf,pu,pv,pq,pdq, & 1202 qsurf(1,igcm_co2_ice),albedo,emis, & 1202 qsurf(1:ngrid,igcm_co2_ice),zdqsurfc, & 1203 albedo,emis, & 1203 1204 albedo_bareground,albedo_co2_ice_SPECTV, & 1204 1205 zdtc,zdtsurfc,pdpsrf,zduc,zdvc, & 1205 1206 zdqc) 1206 1207 1207 pdt(1:ngrid,1:nlayer)=pdt(1:ngrid,1:nlayer)+zdtc(1:ngrid,1:nlayer) 1208 pdv(1:ngrid,1:nlayer)=pdv(1:ngrid,1:nlayer)+zdvc(1:ngrid,1:nlayer) 1209 pdu(1:ngrid,1:nlayer)=pdu(1:ngrid,1:nlayer)+zduc(1:ngrid,1:nlayer) 1210 zdtsurf(1:ngrid) = zdtsurf(1:ngrid) + zdtsurfc(1:ngrid) 1211 1212 pdq(1:ngrid,1:nlayer,1:nq)=pdq(1:ngrid,1:nlayer,1:nq)+ zdqc(1:ngrid,1:nlayer,1:nq) 1208 pdt(1:ngrid,1:nlayer) = pdt(1:ngrid,1:nlayer)+zdtc(1:ngrid,1:nlayer) 1209 pdv(1:ngrid,1:nlayer) = pdv(1:ngrid,1:nlayer)+zdvc(1:ngrid,1:nlayer) 1210 pdu(1:ngrid,1:nlayer) = pdu(1:ngrid,1:nlayer)+zduc(1:ngrid,1:nlayer) 1211 zdtsurf(1:ngrid) = zdtsurf(1:ngrid) + zdtsurfc(1:ngrid) 1212 1213 pdq(1:ngrid,1:nlayer,1:nq) = pdq(1:ngrid,1:nlayer,1:nq)+ zdqc(1:ngrid,1:nlayer,1:nq) 1214 dqsurf(1:ngrid,igcm_co2_ice) = dqsurf(1:ngrid,igcm_co2_ice) + zdqsurfc(1:ngrid) 1213 1215 1214 1216 ! test energy conservation … … 1503 1505 sea_ice) 1504 1506 1505 zdtsurf(1:ngrid) = zdtsurf(1:ngrid) + zdtsurf_hyd(1:ngrid) 1506 qsurf(1:ngrid,1:nq) = qsurf(1:ngrid,1:nq) + ptimestep*dqs_hyd(1:ngrid,1:nq) 1507 zdtsurf(1:ngrid) = zdtsurf(1:ngrid) + zdtsurf_hyd(1:ngrid) 1508 dqsurf(1:ngrid,1:nq) = dqsurf(1:ngrid,1:nq) + dqs_hyd(1:ngrid,1:nq) 1509 1510 qsurf(1:ngrid,1:nq) = qsurf(1:ngrid,1:nq) + ptimestep*dqsurf(1:ngrid,1:nq) 1507 1511 1508 1512 ! Test energy conservation … … 1525 1529 else ! of if (hydrology) 1526 1530 1527 qsurf(1:ngrid,1:nq) =qsurf(1:ngrid,1:nq)+ptimestep*dqsurf(1:ngrid,1:nq)1531 qsurf(1:ngrid,1:nq) = qsurf(1:ngrid,1:nq) + ptimestep*dqsurf(1:ngrid,1:nq) 1528 1532 1529 1533 end if ! of if (hydrology)
Note: See TracChangeset
for help on using the changeset viewer.