@@ -495,18 +495,6 @@ subroutine GFDL_1M_Run (GC, IMPORT, EXPORT, CLOCK, RC)
495495 ALLOCATE ( DQST3(IM,JM,LM ) )
496496 ALLOCATE ( QST3(IM,JM,LM ) )
497497 ALLOCATE ( TMP3D(IM,JM,LM ) )
498- ! Local tendencies
499- ALLOCATE ( DQVDTmic(IM,JM,LM ) )
500- ALLOCATE ( DQLDTmic(IM,JM,LM ) )
501- ALLOCATE ( DQIDTmic(IM,JM,LM ) )
502- ALLOCATE ( DQRDTmic(IM,JM,LM ) )
503- ALLOCATE ( DQSDTmic(IM,JM,LM ) )
504- ALLOCATE ( DQGDTmic(IM,JM,LM ) )
505- ALLOCATE ( DQADTmic(IM,JM,LM ) )
506- ALLOCATE ( DUDTmic(IM,JM,LM ) )
507- ALLOCATE ( DVDTmic(IM,JM,LM ) )
508- ALLOCATE ( DTDTmic(IM,JM,LM ) )
509- ALLOCATE ( DWDTmic(IM,JM,LM ) )
510498 ! 2D Variables
511499 ALLOCATE ( TMP2D (IM,JM ) )
512500 ! 1D Variables
@@ -657,10 +645,6 @@ subroutine GFDL_1M_Run (GC, IMPORT, EXPORT, CLOCK, RC)
657645 do L= 1 ,LM
658646 do J= 1 ,JM
659647 do I= 1 ,IM
660- ! cleanup clouds
661- call FIX_UP_CLOUDS( Q(I,J,L), T(I,J,L), QLLS(I,J,L), QILS(I,J,L), CLLS(I,J,L), &
662- QLCN(I,J,L), QICN(I,J,L), CLCN(I,J,L), &
663- REMOVE_CLOUDS= (L < KLID) )
664648 ! Send the condensates through the pdf after convection [0:1 , unstable:stable]
665649 facEIS = MAX (0.0 ,MIN (1.0 ,EIS(I,J)/ 10.0 ))** 2
666650 ! determine combined minrhcrit in unstable/stable regimes
@@ -775,10 +759,6 @@ subroutine GFDL_1M_Run (GC, IMPORT, EXPORT, CLOCK, RC)
775759 SUBLC(I,J,L) = ( Q(I,J,L) - SUBLC(I,J,L) ) / DT_MOIST
776760 endif
777761 endif
778- ! cleanup clouds
779- call FIX_UP_CLOUDS( Q(I,J,L), T(I,J,L), QLLS(I,J,L), QILS(I,J,L), CLLS(I,J,L), &
780- QLCN(I,J,L), QICN(I,J,L), CLCN(I,J,L), &
781- REMOVE_CLOUDS= (L < KLID) )
782762 end do ! IM loop
783763 end do ! JM loop
784764 end do ! LM loop
@@ -871,17 +851,6 @@ subroutine GFDL_1M_Run (GC, IMPORT, EXPORT, CLOCK, RC)
871851
872852 ! Delta-Z layer thickness (gfdl expects this to be negative)
873853 DZ = - 1.0 * DZET
874- ! Zero-out local microphysics tendencies
875- DQVDTmic = 0 .
876- DQLDTmic = 0 .
877- DQRDTmic = 0 .
878- DQIDTmic = 0 .
879- DQSDTmic = 0 .
880- DQGDTmic = 0 .
881- DQADTmic = 0 .
882- DUDTmic = 0 .
883- DVDTmic = 0 .
884- DTDTmic = 0 .
885854 ! Zero-out 3D Precipitation Fluxes
886855 ! Ice
887856 PFI_LS = 0 .
@@ -914,9 +883,6 @@ subroutine GFDL_1M_Run (GC, IMPORT, EXPORT, CLOCK, RC)
914883 PRCP_WATER, PRCP_RAIN, PRCP_ICE, PRCP_SNOW, PRCP_GRAUPEL, &
915884 ! constant grid/time information
916885 LHYDROSTATIC, 1 , IM* JM, 1 ,LM, KLID, &
917- ! Output tendencies
918- DQVDTmic, DQLDTmic, DQRDTmic, DQIDTmic, &
919- DQSDTmic, DQGDTmic, DQADTmic, DTDTmic, DUDTmic, DVDTmic, DWDTmic, &
920886 ! Output rain re-evaporation and sublimation
921887 REV_LS, RSU_LS, &
922888 ! Output mass flux during sedimentation (Pa kg/kg)
@@ -930,6 +896,18 @@ subroutine GFDL_1M_Run (GC, IMPORT, EXPORT, CLOCK, RC)
930896 PFS_LS = PFS_LS/ (86400.0 )
931897 PFG_LS = PFG_LS/ (86400.0 )
932898 else
899+ ! Local tendencies
900+ ALLOCATE ( DQVDTmic(IM,JM,LM ) )
901+ ALLOCATE ( DQLDTmic(IM,JM,LM ) )
902+ ALLOCATE ( DQIDTmic(IM,JM,LM ) )
903+ ALLOCATE ( DQRDTmic(IM,JM,LM ) )
904+ ALLOCATE ( DQSDTmic(IM,JM,LM ) )
905+ ALLOCATE ( DQGDTmic(IM,JM,LM ) )
906+ ALLOCATE ( DQADTmic(IM,JM,LM ) )
907+ ALLOCATE ( DUDTmic(IM,JM,LM ) )
908+ ALLOCATE ( DVDTmic(IM,JM,LM ) )
909+ ALLOCATE ( DTDTmic(IM,JM,LM ) )
910+ ALLOCATE ( DWDTmic(IM,JM,LM ) )
933911 call gfdl_cloud_microphys_driver( &
934912 ! Input water/cloud species and liquid+ice CCN NACTL & NACTI (#/m^3)
935913 RAD_QV, RAD_QL, RAD_QR, RAD_QI, RAD_QS, RAD_QG, RAD_CF, NACTL, NACTI, &
@@ -958,19 +936,19 @@ subroutine GFDL_1M_Run (GC, IMPORT, EXPORT, CLOCK, RC)
958936 PFR_LS = 0.0
959937 PFS_LS = 0.0
960938 PFG_LS = 0.0
961- endif
962- ! Apply tendencies
963- T = T + DTDTmic * DT_MOIST
964- U = U + DUDTmic * DT_MOIST
965- V = V + DVDTmic * DT_MOIST
966- ! Apply moist/cloud species tendencies
967- RAD_QV = MAX (RAD_QV + DQVDTmic * DT_MOIST, 1.e-12 )
968- RAD_QL = MAX (RAD_QL + DQLDTmic * DT_MOIST, 0.0 )
969- RAD_QR = MAX (RAD_QR + DQRDTmic * DT_MOIST, 0.0 )
970- RAD_QI = MAX (RAD_QI + DQIDTmic * DT_MOIST, 0.0 )
971- RAD_QS = MAX (RAD_QS + DQSDTmic * DT_MOIST, 0.0 )
972- RAD_QG = MAX (RAD_QG + DQGDTmic * DT_MOIST, 0.0 )
973- RAD_CF = MIN ( 1.0 , MAX ( 0.0 ,RAD_CF + DQADTmic * DT_MOIST))
939+ ! Apply tendencies
940+ T = T + DTDTmic * DT_MOIST
941+ U = U + DUDTmic * DT_MOIST
942+ V = V + DVDTmic * DT_MOIST
943+ ! Apply moist/cloud species tendencies
944+ RAD_QV = RAD_QV + DQVDTmic * DT_MOIST
945+ RAD_QL = RAD_QL + DQLDTmic * DT_MOIST
946+ RAD_QR = RAD_QR + DQRDTmic * DT_MOIST
947+ RAD_QI = RAD_QI + DQIDTmic * DT_MOIST
948+ RAD_QS = RAD_QS + DQSDTmic * DT_MOIST
949+ RAD_QG = RAD_QG + DQGDTmic * DT_MOIST
950+ RAD_CF = MIN ( 1.0 , MAX (0.0 ,RAD_CF + DQADTmic * DT_MOIST) )
951+ endif
974952 ! CleanUp Negative Water Vapor, cloud liquid/ice, and condensates
975953 if (REPORT_GFDL_1M_NEGATIVES) then
976954 call FILLQ2ZERO(RAD_QV, MASS, WARNING_LABEL= " QV After GFDL_1M Driver" , VM= VMG, RC= STATUS); VERIFY_(STATUS)
@@ -996,36 +974,6 @@ subroutine GFDL_1M_Run (GC, IMPORT, EXPORT, CLOCK, RC)
996974 QRAIN = RAD_QR
997975 QSNOW = RAD_QS
998976 QGRAUPEL = RAD_QG
999-
1000- if (DEBUG_TQ_ERRORS) then
1001- do L = 1 , LM
1002- do J = 1 , JM
1003- do I = 1 , IM
1004- if ( ( T(I,J,L) > 333.0 ) .OR. ( T(I,J,L) /= T(I,J,L)) .OR. &
1005- ( Q(I,J,L) < 0.0 ) .OR. ( Q(I,J,L) /= Q(I,J,L)) .OR. &
1006- ( QLLS(I,J,L) < 0.0 ) .OR. ( QLLS(I,J,L) /= QLLS(I,J,L)) .OR. &
1007- ( QLCN(I,J,L) < 0.0 ) .OR. ( QLCN(I,J,L) /= QLCN(I,J,L)) .OR. &
1008- ( QILS(I,J,L) < 0.0 ) .OR. ( QILS(I,J,L) /= QILS(I,J,L)) .OR. &
1009- ( QICN(I,J,L) < 0.0 ) .OR. ( QICN(I,J,L) /= QICN(I,J,L)) .OR. &
1010- ( QRAIN(I,J,L) < 0.0 ) .OR. ( QRAIN(I,J,L) /= QRAIN(I,J,L)) .OR. &
1011- ( QSNOW(I,J,L) < 0.0 ) .OR. ( QSNOW(I,J,L) /= QSNOW(I,J,L)) .OR. &
1012- (QGRAUPEL(I,J,L) < 0.0 ) .OR. (QGRAUPEL(I,J,L) /= QGRAUPEL(I,J,L)) ) then
1013- print * , " T or Q spike detected : " , T(I,J,L)
1014- print * , " GFDL DTDTmic Temp Increment : " , DTDTmic(I,J,L) * DT_MOIST
1015- print * , " Latitude =" , LATS(I,J)* 180.0 / MAPL_PI
1016- print * , " Longitude =" , LONS(I,J)* 180.0 / MAPL_PI
1017- print * , " Pressure (mb) =" , PLmb(I,J,L)
1018- print * , " CLLS=" , CLLS(I,J,L), " CLCN=" , CLCN(I,J,L)
1019- print * , " RAD_QL=" , RAD_QL(I,J,L), " RAD_QI=" , RAD_QI(I,J,L)
1020- print * , " QV=" , Q(I,J,L), " QLLS=" , QLLS(I,J,L), " QLCN=" , QLCN(I,J,L)
1021- print * , " QILS=" , QILS(I,J,L), " QICN=" , QICN(I,J,L)
1022- print * , " QR=" , QRAIN(I,J,L), " QS=" , QSNOW(I,J,L), " QG=" , QGRAUPEL(I,J,L)
1023- endif
1024- enddo
1025- enddo
1026- enddo
1027- endif
1028-
1029977 ! Get fill negative export pointers if requested
1030978 ! ----------------------------------------------
1031979 call MAPL_GetPointer(EXPORT, DQVDT_FILL, ' DQVDT_FILL_CLDMICRO' , RC= STATUS); VERIFY_(STATUS)
@@ -1039,14 +987,14 @@ subroutine GFDL_1M_Run (GC, IMPORT, EXPORT, CLOCK, RC)
1039987 ! Cleanup negative water species
1040988 ! ------------------------------
1041989 if (REPORT_GFDL_1M_NEGATIVES) then
1042- call FILLQ2ZERO( Q , MASS, DT= DT_MOIST, DQDT= DQVDT_FILL, WARNING_LABEL= " QV After GFDL_1M Cloud Microphysics " , VM= VMG, RC= STATUS); VERIFY_(STATUS)
1043- call FILLQ2ZERO( QLLS , MASS, DT= DT_MOIST, DQDT= DQLLSDT_FILL, WARNING_LABEL= " QLLS After GFDL_1M Cloud Microphysics " , VM= VMG, RC= STATUS); VERIFY_(STATUS)
1044- call FILLQ2ZERO( QLCN , MASS, DT= DT_MOIST, DQDT= DQLCNDT_FILL, WARNING_LABEL= " QLCN After GFDL_1M Cloud Microphysics " , VM= VMG, RC= STATUS); VERIFY_(STATUS)
1045- call FILLQ2ZERO( QILS , MASS, DT= DT_MOIST, DQDT= DQILSDT_FILL, WARNING_LABEL= " QILS After GFDL_1M Cloud Microphysics " , VM= VMG, RC= STATUS); VERIFY_(STATUS)
1046- call FILLQ2ZERO( QICN , MASS, DT= DT_MOIST, DQDT= DQICNDT_FILL, WARNING_LABEL= " QICN After GFDL_1M Cloud Microphysics " , VM= VMG, RC= STATUS); VERIFY_(STATUS)
1047- call FILLQ2ZERO( QRAIN , MASS, DT= DT_MOIST, DQDT= DQRDT_FILL, WARNING_LABEL= " QR After GFDL_1M Cloud Microphysics " , VM= VMG, RC= STATUS); VERIFY_(STATUS)
1048- call FILLQ2ZERO( QSNOW , MASS, DT= DT_MOIST, DQDT= DQSDT_FILL, WARNING_LABEL= " QS After GFDL_1M Cloud Microphysics " , VM= VMG, RC= STATUS); VERIFY_(STATUS)
1049- call FILLQ2ZERO( QGRAUPEL, MASS, DT= DT_MOIST, DQDT= DQGDT_FILL, WARNING_LABEL= " QG After GFDL_1M Cloud Microphysics " , VM= VMG, RC= STATUS); VERIFY_(STATUS)
990+ call FILLQ2ZERO( Q , MASS, DT= DT_MOIST, DQDT= DQVDT_FILL, WARNING_LABEL= " QV After GFDL_1M REDISTRIBUTE_CLOUDS " , VM= VMG, RC= STATUS); VERIFY_(STATUS)
991+ call FILLQ2ZERO( QLLS , MASS, DT= DT_MOIST, DQDT= DQLLSDT_FILL, WARNING_LABEL= " QLLS After GFDL_1M REDISTRIBUTE_CLOUDS " , VM= VMG, RC= STATUS); VERIFY_(STATUS)
992+ call FILLQ2ZERO( QLCN , MASS, DT= DT_MOIST, DQDT= DQLCNDT_FILL, WARNING_LABEL= " QLCN After GFDL_1M REDISTRIBUTE_CLOUDS " , VM= VMG, RC= STATUS); VERIFY_(STATUS)
993+ call FILLQ2ZERO( QILS , MASS, DT= DT_MOIST, DQDT= DQILSDT_FILL, WARNING_LABEL= " QILS After GFDL_1M REDISTRIBUTE_CLOUDS " , VM= VMG, RC= STATUS); VERIFY_(STATUS)
994+ call FILLQ2ZERO( QICN , MASS, DT= DT_MOIST, DQDT= DQICNDT_FILL, WARNING_LABEL= " QICN After GFDL_1M REDISTRIBUTE_CLOUDS " , VM= VMG, RC= STATUS); VERIFY_(STATUS)
995+ call FILLQ2ZERO( QRAIN , MASS, DT= DT_MOIST, DQDT= DQRDT_FILL, WARNING_LABEL= " QR After GFDL_1M REDISTRIBUTE_CLOUDS " , VM= VMG, RC= STATUS); VERIFY_(STATUS)
996+ call FILLQ2ZERO( QSNOW , MASS, DT= DT_MOIST, DQDT= DQSDT_FILL, WARNING_LABEL= " QS After GFDL_1M REDISTRIBUTE_CLOUDS " , VM= VMG, RC= STATUS); VERIFY_(STATUS)
997+ call FILLQ2ZERO( QGRAUPEL, MASS, DT= DT_MOIST, DQDT= DQGDT_FILL, WARNING_LABEL= " QG After GFDL_1M REDISTRIBUTE_CLOUDS " , VM= VMG, RC= STATUS); VERIFY_(STATUS)
1050998 else
1051999 call FILLQ2ZERO( Q , MASS, DT= DT_MOIST, DQDT= DQVDT_FILL, VM= VMG, RC= STATUS); VERIFY_(STATUS)
10521000 call FILLQ2ZERO( QLLS , MASS, DT= DT_MOIST, DQDT= DQLLSDT_FILL, VM= VMG, RC= STATUS); VERIFY_(STATUS)
@@ -1095,10 +1043,6 @@ subroutine GFDL_1M_Run (GC, IMPORT, EXPORT, CLOCK, RC)
10951043 QLLS(I,J,L) , &
10961044 QILS(I,J,L) )
10971045 endif
1098- ! cleanup clouds
1099- call FIX_UP_CLOUDS( Q(I,J,L), T(I,J,L), QLLS(I,J,L), QILS(I,J,L), CLLS(I,J,L), &
1100- QLCN(I,J,L), QICN(I,J,L), CLCN(I,J,L), &
1101- REMOVE_CLOUDS= (L < KLID) )
11021046 ! get radiative properties
11031047 call RADCOUPLE ( T(I,J,L), PLmb(I,J,L), CLLS(I,J,L), CLCN(I,J,L), &
11041048 Q(I,J,L), QLLS(I,J,L), QILS(I,J,L), QLCN(I,J,L), QICN(I,J,L), QRAIN(I,J,L), QSNOW(I,J,L), QGRAUPEL(I,J,L), NACTL(I,J,L), NACTI(I,J,L), &
@@ -1177,7 +1121,7 @@ subroutine GFDL_1M_Run (GC, IMPORT, EXPORT, CLOCK, RC)
11771121 print * , " RAD_QL=" , RAD_QL(I,J,L), " RAD_QI=" , RAD_QI(I,J,L)
11781122 print * , " QV=" , Q(I,J,L), " QLLS=" , QLLS(I,J,L), " QLCN=" , QLCN(I,J,L)
11791123 print * , " QILS=" , QILS(I,J,L), " QICN=" , QICN(I,J,L)
1180- print * , " QR=" , QRAIN(I,J,L), " QS=" , QSNOW(I,J,L), " QG=" , QGRAUPEL(I,J,L)
1124+ print * , " QR=" ,QRAIN(I,J,L)," QS=" , QSNOW(I,J,L), " QG=" , QGRAUPEL(I,J,L)
11811125 endif
11821126 enddo
11831127 enddo
0 commit comments