|
[Fortran] 纯文本查看 复制代码 01 | subroutine calcvis 3 ( q , clw , rnw , ice , snow , t , prs , ista_num , vis 3 ) |
05 | real , dimension ( ista_num ) :: t , q , clw , ice , rnw , snow , prs , vis 3 |
06 | real , dimension ( ista_num ) :: vovermd , celkel , tice , coeflc , coeflp , coeffc , coeffp , exponlc , & |
07 | exponlp , exponfp , const 1 , rhoice , rhowat , tv , rhoair , beta , qprc , & |
08 | qcld , qrain , qsnow , qclw , qclice , rgas , exponfc , concfc , concfp , & |
13 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
30 | qprc ( k ) = rnw ( k ) + snow ( k ) |
36 | rhoair ( k ) = prs ( k ) / ( 287.04 * t ( k ) * ( 1 . +0.608 * q ( k ) ) ) |
37 | vovermd ( k ) = ( 1 . + q ( k ) / 1000 . ) / rhoair ( k ) + ( qclw ( k ) + qrain ( k ) ) & |
38 | / rhowat + ( qclice ( k ) + qsnow ( k ) ) / rhoice |
39 | conclc ( k ) = qclw ( k ) / vovermd ( k ) * 1000 . |
40 | conclp ( k ) = qrain ( k ) / vovermd ( k ) * 1000 . |
41 | concfc ( k ) = qclice ( k ) / vovermd ( k ) * 1000 . |
42 | concfp ( k ) = qsnow ( k ) / vovermd ( k ) * 1000 . |
44 | beta = coeffc * concfc ( k ) * * exponfc + coeffp * concfp ( k ) * * exponfp & |
45 | + coeflc * conclc ( k ) * * exponlc + coeflp * conclp ( k ) * * exponlp & |
47 | vis 3 ( k ) = min ( 25 . , const 1 / beta ) |
|
|