Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

How to add qndrop to the output variable?

This post was from a previous version of the WRF&MPAS-A Support Forum. New replies have been disabled and if you have follow up questions related to this post, then please start a new thread from the forum home page.

cxyiyh

Member
Hi, friends,

When I set progn==0 in Morrison microphysics scheme, I want to kown how to add qndrop to the output variable.
And I did some code modifications in Rregistry of WRF model.
Here is the modifications.
2864 package noprogn progn==0 - -
2865 package progndrop progn==1 - scalar:qndrop;dfi_scalar:dfi_qndrop;state:qndropsource

changed to:

2864 package noprogn progn==0 - scalar:qndrop;dfi_scalar:dfi_qndrop
2865 package progndrop progn==1 - scalar:qndrop;dfi_scalar:dfi_qndrop;state:qndropsource

After running the integration for 12 hours, WRF model collapsed and the display is as follows.
Code:
==> rsl.error.0008 <==
newnucbb avgs   2.58E+02  4.22E-01  1.56E-10  8.19E-13  7.36E-11  2.25E+02
newnucbb hinuc  2.33E+02  3.34E-01  9.07E-11  4.54E-13  3.60E-13  8.48E+05
newnucbb dtnuc  9.00E+01
newnucbb ncnt      22572        11         0         0         0         0         0
coagbb ncntaa      22572         0       628      1280      3163         0         0         0         0         0
-------------- FATAL CALLED ---------------
FATAL CALLED FROM FILE:  module_sf_ruclsm.b  LINE:    6481
  Crash in surface energy budget
-------------------------------------------
Abort(1) on node 8 (rank 8 in comm 0): application called MPI_Abort(MPI_COMM_WORLD, 1) - process 8



And I noticed this procedure called module_sf_ruclsm have a subroutine issued this error instruction. Here is the VILKA subroutine.
Code:
 SUBROUTINE VILKA(TN,D1,D2,PP,QS,TS,TT,NSTEP,ii,j,iland,isoil)
!--------------------------------------------------------------
!--- VILKA finds the solution of energy budget at the surface
!--- using table T,QS computed from Clausius-Klapeiron
!--------------------------------------------------------------
   REAL,     DIMENSION(1:5001),  INTENT(IN   )   ::  TT
   REAL,     INTENT(IN  )   ::  TN,D1,D2,PP
   INTEGER,  INTENT(IN  )   ::  NSTEP,ii,j,iland,isoil

   REAL,     INTENT(OUT  )  ::  QS, TS

   REAL    ::  F1,T1,T2,RN
   INTEGER ::  I,I1
       I=(TN-1.7315E2)/.05+1
       T1=173.1+FLOAT(I)*.05
       F1=T1+D1*TT(I)-D2
       I1=I-F1/(.05+D1*(TT(I+1)-TT(I)))
       I=I1
       IF(I.GT.5000.OR.I.LT.1) GOTO 1
  10   I1=I
       T1=173.1+FLOAT(I)*.05
       F1=T1+D1*TT(I)-D2
       RN=F1/(.05+D1*(TT(I+1)-TT(I)))
       I=I-INT(RN)                      
       IF(I.GT.5000.OR.I.LT.1) GOTO 1
       IF(I1.NE.I) GOTO 10
       TS=T1-.05*RN
       QS=(TT(I)+(TT(I)-TT(I+1))*RN)/PP
       GOTO 20
!   1   PRINT *,'Crash in surface energy budget - STOP'
   1   PRINT *,'     AVOST IN VILKA     Table index= ',I
!       PRINT *,TN,D1,D2,PP,NSTEP,I,TT(i),ii,j,iland,isoil
       print *,'I,J=',ii,j,'LU_index = ',iland, 'Psfc[hPa] = ',pp, 'Tsfc = ',tn
       CALL wrf_error_fatal ('  Crash in surface energy budget  ' )
   20  CONTINUE
!-----------------------------------------------------------------------
   END SUBROUTINE VILKA
Is the modification I made inappropriate?
How should I modify it to get the qndrop variable in the case of progn=0?

Best Regards!

yours sicerely,
Cxyiyh.
 
Hi,
If you'd like to output qndrop, you should only need to add it to the packaged info for the Morrison scheme in the Registry.EM_COMMON file. So look for this line:
Code:
package   morr_two_moment mp_physics==10               -             moist:qv,qc,qr,qi,qs,qg;scalar:qni,qns,qnr,qng;state:rqrcuten,rqscuten,rqicuten

and since it's a scalar, just add it to that list.
Code:
package   morr_two_moment mp_physics==10               -             moist:qv,qc,qr,qi,qs,qg;scalar:qni,qns,qnr,qng,qndrop;state:rqrcuten,rqscuten,rqicuten

After that, of course you'll need to do a "./clean -a" and then reconfigure and recompile the code.
 
Top