Page 1 Source Listing CALRH2 2014-12-17 20:47 CALRH2.f 1 SUBROUTINE CALRH2(P1,T1,Q1,ICE1,RH,IM,JM) 2 C$$$ SUBPROGRAM DOCUMENTATION BLOCK 3 C . . . 4 C SUBPROGRAM: CALRH2 COMPUTES RELATIVE HUMIDITY 5 C PRGRMMR: TREADON ORG: W/NP2 DATE: 92-12-22 6 C 7 C ABSTRACT: 8 C THIS ROUTINE COMPUTES RELATIVE HUMIDITY GIVEN PRESSURE, 9 C TEMPERATURE, SPECIFIC HUMIDITY, CLOUD WATER, AND CLOUD 10 C ICE/WATER FLAG. THE CODE IS BASED ON SUBROUTINE GSCOND 11 C IN THE ETA MODEL. AN UPPER AND LOWER BOUND 12 C OF 100 AND 1 PERCENT RELATIVE HUMIDITY IS ENFORCED. WHEN 13 C THESE BOUNDS ARE APPLIED THE PASSED SPECIFIC HUMIDITY 14 C ARRAY IS ADJUSTED AS NECESSARY TO PRODUCE THE SET RELATIVE 15 C HUMIDITY. 16 C . 17 C 18 C PROGRAM HISTORY LOG: 19 C ??-??-?? DENNIS DEAVEN 20 C 92-12-22 RUSS TREADON - MODIFIED AS DESCRIBED ABOVE. 21 C 98-06-08 T BLACK - CONVERSION FROM 1-D TO 2-D 22 C 98-08-18 MIKE BALDWIN - MODIFY TO COMPUTE RH OVER ICE AS IN MODEL 23 C 98-12-16 GEOFF MANIKIN - UNDO RH COMPUTATION OVER ICE 24 C 00-01-04 JIM TUCCILLO - MPI VERSION 25 C 26 C USAGE: CALL CALRH2(P1,T1,Q1,ICE1,RH,IM,JM) 27 C INPUT ARGUMENT LIST: 28 C P1 - PRESSURE (PA) 29 C T1 - TEMPERATURE (K) 30 C Q1 - SPECIFIC HUMIDITY (KG/KG) 31 C ICE1 - CLOUD ICE (KG/KG) 32 C IM,JM - ARRAY DIMENSIONS 33 C 34 C OUTPUT ARGUMENT LIST: 35 C RH - RELATIVE HUMIDITY (DECIMAL FORM) 36 C Q1 - ADJUSTED SPECIFIC HUMIDITY (KG/KG) 37 C 38 C OUTPUT FILES: 39 C NONE 40 C 41 C SUBPROGRAMS CALLED: 42 C UTILITIES: 43 C LIBRARY: 44 C NONE 45 C 46 C ATTRIBUTES: 47 C LANGUAGE: FORTRAN 48 C MACHINE : CRAY C-90 49 C$$$ 50 C 51 INCLUDE "CTLBLK.comm" 52 C 53 C SET PARAMETER. 54 C 69 PARAMETER (A2=17.2693882,A3=273.16,A4=35.86, 70 & PQ0=379.90516) 71 C Page 2 Source Listing CALRH2 2014-12-17 20:47 CALRH2.f 72 C DECLARE VARIABLES. 73 C 74 C REAL QI,QINT,QC,P1(IM,JM),T1(IM,JM),Q1(IM,JM),RH(IM,JM) 75 REAL QC,P1(IM,JM),T1(IM,JM),Q1(IM,JM),RH(IM,JM) 76 C REAL ICE1(IM,JM) 77 C*************************************************************** 78 C** THE CODE WRITTEN TO ADD IN THE ICE COMPUTATION HAS BEEN 79 C** COMMENTED OUT. SIMPLY UNCOMMENT THE SECTIONS BELOW AND 80 C** COMMENT OUT THE 8 LINES USED 17 LINES BELOW THIS ONE 81 C** IF YOU WISH TO ADD THE ICE COMPUTATION BACK. 82 C 83 C START CALRH2. 84 C 85 C DO J=JSTA,JEND 86 C DO I=1,IM 87 C IF (ABS(P1(I,J)).GT.1) THEN 88 C TMT0=T1(I,J)-273.16 89 C TMT15=AMIN1(TMT0,-15.) 90 C AI=0.008855 91 C BI=1. 92 C IF(TMT0.LT.-20.)THEN 93 C AI=0.007225 94 C BI=0.9674 95 C ENDIF 96 C QW=PQ0/P1(I,J) 97 C 1 *EXP(A2*(T1(I,J)-A3)/(T1(I,J)-A4)) 98 C QI=QW*(BI+AI*AMIN1(TMT0,0.)) 99 C QINT=QW*(1.-0.00032*TMT15*(TMT15+15.)) 100 C 101 DO J=JSTA,JEND 102 DO I=1,IM 103 IF (ABS(P1(I,J)).GT.1) THEN 104 QC=PQ0/P1(I,J) 105 1 *EXP(A2*(T1(I,J)-A3)/(T1(I,J)-A4)) 106 C 107 C 108 RH(I,J)=Q1(I,J)/QC 109 110 C IF TEMP IS BELOW -15 C OR IF THERE IS ANY CLOUD ICE 111 C AND TEMP IS BETWEEN -15 AND 0 C, THEN DO RH OVER ICE 112 C 113 C IF(TMT0.LT.-15.)THEN 114 C QC=QI 115 C ELSEIF(TMT0.GE.0.)THEN 116 C QC=QINT 117 C ELSE 118 C IF(ICE1(I,J).GT.0.0) THEN 119 C QC=QI 120 C ELSE 121 C QC=QINT 122 C ENDIF 123 C ENDIF 124 C 125 C RH(I,J)=Q1(I,J)/QC 126 C 127 C BOUNDS CHECK 128 C Page 3 Source Listing CALRH2 2014-12-17 20:47 CALRH2.f 129 IF (RH(I,J).GT.1.0) THEN 130 RH(I,J)=1.0 131 Q1(I,J)=RH(I,J)*QC 132 ENDIF 133 IF (RH(I,J).LT.0.01) THEN 134 RH(I,J)=0.01 135 Q1(I,J)=RH(I,J)*QC 136 ENDIF 137 C 138 ENDIF 139 ENDDO 140 ENDDO 141 142 RETURN 143 END ENTRY POINTS Name calrh2_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References A2 Param 55 R(4) 4 scalar 91 A3 Param 55 R(4) 4 scalar 91 A4 Param 55 R(4) 4 scalar 91 ABS Func 89 scalar 89 CALRH2 Subr 1 CTLBLK Common 2 96 DT Scalar 4 R(4) 4 scalar COM EXP Func 91 scalar 91 FIRST Scalar 3 R(4) 4 scalar COM I Local 88 I(4) 4 scalar 88,89,90,91,94,115,116,117,119,120 ,121 ICE1 Dummy 1 I(4) 4 scalar ARG,INOUT ICNT Scalar 7 I(4) 4 1 1024 COM IDAT Scalar 3 I(4) 4 1 3 COM IDN Scalar 7 I(4) 4 scalar COM IDSP Scalar 7 I(4) 4 1 1024 COM IDTAD Scalar 4 I(4) 4 scalar COM IHRST Scalar 3 I(4) 4 scalar COM IM Dummy 1 I(4) 4 scalar ARG,INOUT 61,88 IOUT Scalar 3 I(4) 4 scalar COM IUP Scalar 7 I(4) 4 scalar COM J Local 87 I(4) 4 scalar 87,89,90,91,94,115,116,117,119,120 ,121 JEND Scalar 6 I(4) 4 scalar COM 87 JEND_2U Scalar 8 I(4) 4 scalar COM JEND_M Scalar 7 I(4) 4 scalar COM JEND_M2 Scalar 7 I(4) 4 scalar COM JM Dummy 1 I(4) 4 scalar ARG,INOUT 61 JSTA Scalar 6 I(4) 4 scalar COM 87 Page 4 Source Listing CALRH2 2014-12-17 20:47 Symbol Table CALRH2.f Name Object Declared Type Bytes Dimen Elements Attributes References JSTA_2L Scalar 8 I(4) 4 scalar COM JSTA_M Scalar 7 I(4) 4 scalar COM JSTA_M2 Scalar 7 I(4) 4 scalar COM LIST Scalar 3 I(4) 4 scalar COM ME Scalar 6 I(4) 4 scalar COM NBC Scalar 3 I(4) 4 scalar COM NBOCO Scalar 4 I(4) 4 scalar COM NCP Scalar 4 I(4) 4 scalar COM NDDAMP Scalar 4 I(4) 4 scalar COM NFCST Scalar 3 I(4) 4 scalar COM NPHS Scalar 5 I(4) 4 scalar COM NPREC Scalar 4 I(4) 4 scalar COM NRADL Scalar 5 I(4) 4 scalar COM NRADS Scalar 5 I(4) 4 scalar COM NSHDE Scalar 4 I(4) 4 scalar COM NTSD Scalar 4 I(4) 4 scalar COM NTSTM Scalar 4 I(4) 4 scalar COM NUM_PROCS Scalar 6 I(4) 4 scalar COM P1 Dummy 1 R(4) 4 2 0 ARG,INOUT 89,90 PARALLEL Common 9 8240 PQ0 Param 56 R(4) 4 scalar 90 Q1 Dummy 1 R(4) 4 2 0 ARG,INOUT 94,117,121 QC Local 61 R(4) 4 scalar 90,94,117,121 RESTRT Scalar 3 R(4) 4 scalar COM RH Dummy 1 R(4) 4 2 0 ARG,INOUT 94,115,116,117,119,120,121 RUN Scalar 3 R(4) 4 scalar COM SIGMA Scalar 3 R(4) 4 scalar COM T1 Dummy 1 R(4) 4 2 0 ARG,INOUT 91 Page 5 Source Listing CALRH2 2014-12-17 20:47 Subprograms/Common Blocks CALRH2.f SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References CALRH2 Subr 1 CTLBLK Common 2 96 PARALLEL Common 9 8240 COMPILER OPTIONS BEING USED -align nocommons -align nodcommons -align noqcommons -align records -align nosequence -align norec1byte -align norec2byte -align norec4byte -align norec8byte -align norec16byte -altparam -assume accuracy_sensitive -assume nobscc -assume nobuffered_io -assume byterecl -assume nocc_omp -assume nocstring -assume nodummy_aliases -assume nofpe_summary -assume noieee_fpe_flags -assume nominus0 -assume noold_boz -assume old_unit_star -assume old_ldout_format -assume noold_logical_ldio -assume old_maxminloc -assume old_xor -assume protect_constants -assume noprotect_parens -assume split_common -assume source_include -assume nostd_intent_in -assume nostd_mod_proc_name -assume norealloc_lhs -assume underscore -assume no2underscores no -auto -auto_scalar no -bintext -ccdefault default -check noargs -check noarg_temp_created -check nobounds -check noformat -check nooutput_conversion -check nooverflow -check nopointers -check power -check noshape -check nounderflow -check nouninitialized -coarray-num-procs 0 no -coarray-config-file -convert big_endian -cross_reference -D __INTEL_COMPILER=1210 -D __unix__ -D __unix -D __linux__ -D __linux -D __gnu_linux__ -D unix -D linux -D __ELF__ -D __x86_64 -D __x86_64__ -D _MT -D __INTEL_COMPILER_BUILD_DATE=20120612 -D __i686 -D __i686__ -D __pentiumpro -D __pentiumpro__ -D __pentium4 -D __pentium4__ -D __tune_pentium4__ -D __SSE2__ -D __SSE__ -D __MMX__ -double_size 64 no -d_lines no -Qdyncom -error_limit 30 no -f66 no -f77rtl no -fast -fpscomp nofilesfromcmd -fpscomp nogeneral -fpscomp noioformat -fpscomp noldio_spacing -fpscomp nologicals Page 6 Source Listing CALRH2 2014-12-17 20:47 CALRH2.f -fixed no -fpconstant -fpe3 -fprm nearest no -ftz -fp_model noprecise -fp_model fast -fp_model nostrict -fp_model nosource -fp_model nodouble -fp_model noextended -fp_model novery_fast -fp_model noexcept -fp_model nono_except -heap_arrays 0 no -threadprivate_compat -g2 -iface nomixed_str_len_arg -iface nono_mixed_str_len_arg no -intconstant -integer_size 32 no -mixed_str_len_arg no -module -names lowercase no -noinclude -O2 no -pad_source -real_size 32 no -recursive -reentrancy none no -sharable_localsaves -vec=simd -show noinclude -show map -show options no -syntax_only no -threadcom no -U no -vms -w noall -w nonone -w alignments -w noargument_checking -w nodeclarations -w general -w noignore_bounds -w noignore_loc -w nointerfaces -w notruncated_source -w uncalled -w uninitialized -w nounused -w usage -includepath : /gpfs/tp1/usrx/local/intel/composer_xe_2011_sp1.11.339/compiler/include/,.f,./.f,/usrx/local/intel/composerxe/mkl/include/.f, /usrx/local/intel/composerxe/tbb/include/.f,/gpfs/tp1/usrx/local/intel/composer_xe_2011_sp1.11.339/compiler/include/intel64/.f, /gpfs/tp1/usrx/local/intel/composer_xe_2011_sp1.11.339/compiler/include/.f,/usr/local/include/.f,/usr/lib/gcc/x86_64-redhat-linux/4.4.7/include/.f, /usr/include/.f,/usr/include/.f -list filename : CALRH2.lst -o filename : none COMPILER: Intel(R) Fortran 12.1-2100