Page 1 Source Listing SURFCE 2025-03-12 18:22 /tmp/ifort51oBkM.i 1 # 1 "SURFCE.F" 2 SUBROUTINE SURFCE(APE,ZINT,CKLQ) 3 C$$$ SUBPROGRAM DOCUMENTATION BLOCK 4 C . . . 5 C SUBPROGRAM: SURFCE CALCULATE SURFACE CONDITIONS 6 C PRGRMMR: JANJIC ORG: W/NP22 DATE: 95-03-23 7 C 8 C ABSTRACT: 9 C THIS ROUTINE IS THE DRIVER FOR COMPUTATION OF GROUND 10 C CONDITIONS. FOR GCIP, ACCUMULATOR AND OTHER 11 C INSTANTANEOUS HOLDING ARRAYS ARE INCLUDED. 12 C 13 C PROGRAM HISTORY LOG: 14 C 95-03-23 JANJIC - ORIGINATOR 15 C 95-03-28 BLACK - CONVERSION FROM 1-D TO 2-D IN HORIZONTAL 16 C 96-03-29 BLACK - REMOVED SCRCH COMMON 17 C 12-11-14 EBISUZAKI INITIALIZE IERR1 and IERR2 18 C 19 C USAGE: CALL SURFCE FROM SUBROUTINE TURBL 20 C INPUT ARGUMENT LIST: 21 C APE - EXNER FUNCTION 22 C ZINT - INTERFACE HEIGHTS 23 C CKLQ - MASK VALUE 24 C 25 C OUTPUT ARGUMENT LIST: 26 C NONE 27 C 28 C OUTPUT FILES: 29 C NONE 30 C 31 C SUBPROGRAMS CALLED: 32 C SFLX 33 C 34 C UTILITIES: 35 C NONE 36 C LIBRARY: 37 C COMMON - CTLBLK 38 C LOOPS 39 C MASKS 40 C PHYS 41 C VRBLS 42 C PVRBLS 43 C SOIL 44 C ACMSFC 45 C ACMPRE 46 C ACMRDS 47 C ACMRDL 48 C OPTIONS 49 C 50 C 51 C ATTRIBUTES: 52 C LANGUAGE: FORTRAN 90 53 C MACHINE : IBM SP 54 C$$$ 55 C 56 C SET LOCAL PARAMETERS. 57 C----------------------------------------------------------------------- Page 2 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 58 P A R A M E T E R 59 & (EPSWET=.001 60 &, PQ0=379.90516,SEAFC=.98,TRESH=.95 61 &, A2=17.2693882,A3=273.16,A4=35.86 62 &, T0=273.16,T1=274.16,CAPA=0.28589641 63 &, CP=1004.6,STBOL=5.67E-8,R=287.04,ROW=1.E3 64 &, ELWV=2.50E6,ELIV=2.834E6,ELIW=.334E6) 65 C 66 P A R A M E T E R 67 & (A23M4=A2*(A3-A4),PQ0SEA=PQ0*SEAFC,PQ0C=PQ0*TRESH 68 &, RLIVWV=ELIV/ELWV,ROWLIW=ROW*ELIW,ROWLIV=ROW*ELIV) 69 C----------------------------------------------------------------------- 70 C*** INCLUDE GLOBAL PARAMETERS. 71 C----------------------------------------------------------------------- 72 INCLUDE "parmeta" 95 INCLUDE "parm.tbl" 97 INCLUDE "parmsoil" 99 INCLUDE "mpp.h" 100 # 1 "./sp.h" 1 101 # 4 102 103 # 76 "SURFCE.F" 2 104 C----------------------------------------------------------------------- 105 C*** SET LOCAL PARAMETERS DEPENDENT ON GLOBAL PARAMETERS. 106 C----------------------------------------------------------------------- 165 P A R A M E T E R 166 & (LP1=LM+1,JAM=6+2*(JM-10)) 167 C----------------------------------------------------------------------- 168 L O G I C A L 169 & RUN,FIRST,RESTRT,SIGMA 170 C----------------------------------------------------------------------- 171 D I M E N S I O N 172 & ZLM (idim1:idim2,jdim1:jdim2) 173 &,PS (idim1:idim2,jdim1:jdim2),APES (idim1:idim2,jdim1:jdim2) 174 &,ETALM (idim1:idim2,jdim1:jdim2),PLM (idim1:idim2,jdim1:jdim2) 175 &,APELM (idim1:idim2,jdim1:jdim2),RDSIN (idim1:idim2,jdim1:jdim2) 176 &,TLM (idim1:idim2,jdim1:jdim2),THLM (idim1:idim2,jdim1:jdim2) 177 &,QLM (idim1:idim2,jdim1:jdim2),QLMS (idim1:idim2,jdim1:jdim2) 178 &,DQSDT (idim1:idim2,jdim1:jdim2) 179 &,CKLQ (idim1:idim2,jdim1:jdim2) 180 &,FFS (idim1:idim2,jdim1:jdim2),QFC1 (idim1:idim2,jdim1:jdim2) 181 &,APE (idim1:idim2,jdim1:jdim2,LM) 182 &,ZINT (idim1:idim2,jdim1:jdim2,LP1) 183 C----------------------------------------------------------------------- 184 D I M E N S I O N 185 c Ek 18 Jan 2000 - add SH2OK array 186 & SMCK (NSOIL),STCK (NSOIL), SH2OK (NSOIL) 187 C----------------------------------------------------------------------- 188 C 189 c Ek 10 Feb 2000 - add declarations 190 C DECLARATIONS 191 C 192 LOGICAL LFIRST 193 LOGICAL LFIRSTa 194 C 195 INTEGER ICE 196 INTEGER ISLTPK Page 3 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 197 INTEGER IVGTPK 198 C 12-12 WNE defined in parmsoil INTEGER NSOIL 199 INTEGER ISPTPK 200 C 201 REAL ALB 202 REAL ALB2D 203 REAL ALBASE 204 REAL ALBEDO 205 REAL DQSDTK 206 REAL DTK 207 REAL CHK 208 REAL CMCK 209 REAL ELFLX 210 REAL GFLX 211 REAL HFLX 212 REAL LWDN 213 Cdule REAL MXSNAL 214 REAL PLFLX 215 REAL PRCP 216 REAL PTU 217 REAL Q1K 218 REAL Q2K 219 REAL Q2SAT 220 REAL RNOF1K 221 REAL RNOF2K 222 REAL SFCPRS 223 REAL SFCSPD 224 REAL SFCTH2 225 REAL SFCTMP 226 REAL SH2OK 227 REAL SI 228 REAL SLDPTH 229 REAL SMCK 230 REAL SMELTK 231 REAL SNDENS 232 REAL SNO 233 REAL SNOALB 234 REAL SNODPK 235 REAL SNOWH 236 REAL SOILQM 237 REAL SOILQW 238 REAL SOLDN 239 REAL STCK 240 REAL T1K 241 REAL TBOT 242 REAL VGFRCK 243 REAL Z 244 C----------------------------------------------------------------------- 245 C*** INCLUDE COMMON BLOCKS. 246 C*** COMMON BLOCKS SOIL, ACMPRE, ACMSFC WERE ADDED FOR GCIP. 247 C*** COMMON BLOCK OPTIONS WAS ADDED FOR THE POST. 248 C----------------------------------------------------------------------- 249 INCLUDE "CTLBLK.comm" 250 C----------------------------------------------------------------------- 260 INCLUDE "LOOPS.comm" 261 C----------------------------------------------------------------------- 268 INCLUDE "MASKS.comm" Page 4 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 269 C----------------------------------------------------------------------- 280 INCLUDE "PHYS.comm" 281 C----------------------------------------------------------------------- 309 INCLUDE "VRBLS.comm" 310 C----------------------------------------------------------------------- 320 INCLUDE "PVRBLS.comm" 321 C----------------------------------------------------------------------- 351 INCLUDE "SOIL.comm" 352 C----------------------------------------------------------------------- 365 INCLUDE "ACMPRE.comm" 366 C----------------------------------------------------------------------- 373 INCLUDE "ACMSFC.comm" 374 C----------------------------------------------------------------------- 384 INCLUDE "ACMRDS.comm" 385 C----------------------------------------------------------------------- 394 INCLUDE "ACMRDL.comm" 395 C----------------------------------------------------------------------- 404 INCLUDE "OPTIONS.comm" 405 C----------------------------------------------------------------------- 447 C H A R A C T E R 448 & WORD*80 449 DATA LFIRST /.TRUE./ 450 C DATA LFIRST /.FALSE./ 451 DATA LFIRSTa /.TRUE./ 452 C*********************************************************************** 453 C START SURFCE HERE 454 C 455 C 456 C*** initial ize errors WNE 2012-11 457 IERR1 = 0 458 IERR2 = 0 459 460 C*** INITIALIZE SOME WORKING ARRAYS 461 C 462 CALL ZERO2(QLM) 463 CALL ZERO2(QLM) 464 CALL ZERO2(QLMS) 465 C*** 466 C*** SET CONSTANTS CALCULATED HERE FOR CLARITY. 467 C*** 468 FDTLIW=DTQ2/ROWLIW 469 FDTLIV=DTQ2/ROWLIV 470 FDTW=DTQ2/2.5E9 471 C*** 472 C*** SET NOAH LSM CONSTANTS AND TIME INDEPENDENT VARIABLES 473 C*** INITIALIZE NOAH LSM HISTORICAL VARIABLES 474 C*** 475 C----------------------------------------------------------------------- 476 IF(NTSD.LT.NPHS)THEN 477 !$omp parallel do private(i,j) 478 DO 50 J=MYJS,MYJE 479 DO 50 I=MYIS,MYIE 480 PS(I,J)=PD(I,J)+PT 481 APES(I,J)=(1.E5/PS(I,J))**CAPA 482 PCTSNO(I,J)=-999.0 483 484 C Page 5 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 485 C ---------------------------------------------------------------------- 486 C Set default values for sea-ice or ocean states 487 C open ocean, SM=1 488 C sea-ice, SM=0, SICE=1 489 C land, SM=0, SICE=0 490 C*** SET ZERO-VALUE FOR SOME OUTPUT DIAGNOSTIC ARRAYS 491 IF(SM(I,J).LT.0.5)THEN 492 IF(SICE(I,J).GT.0.5) THEN 493 C*** SEA-ICE CASE 494 SMSTAV(I,J)=1.0 495 SMSTOT(I,J)=1.0 496 SSROFF(I,J)=0.0 497 BGROFF(I,J)=0.0 498 CMC(I,J)=0.0 499 DO NS=1,NSOIL 500 SMC(I,J,NS)=1.0 501 SH2O(I,J,NS)=1.0 502 ENDDO 503 ENDIF 504 ELSE 505 C*** Water Case 506 SMSTAV(I,J)=1.0 507 SMSTOT(I,J)=1.0 508 SSROFF(I,J)=0.0 509 BGROFF(I,J)=0.0 510 SOILTB(I,J)=280.99 511 GRNFLX(I,J)=0. 512 SUBSHX(I,J)=0.0 513 ACSNOW(I,J)=0.0 514 ACSNOM(I,J)=0.0 515 SNOPCX(I,J)=0.0 516 CMC(I,J)=0.0 517 SNO(I,J)=0.0 518 c add SI (snow depth), ^^^SNO=snow water equivalent 519 SI(I,J)=0.0 520 DO NS=1,NSOIL 521 SMC(I,J,NS)=1.0 522 SH2O(I,J,NS)=1.0 523 STC(I,J,NS)=273.16 524 ENDDO 525 ENDIF 526 C 527 50 CONTINUE 528 ENDIF 529 C----------------------------------------------------------------------- 530 C*** 531 C*** SET LOWEST MODEL LAYER VARIABLES. 532 C*** 533 !$omp parallel do private(i,j,llmh) 534 DO 100 J=MYJS2,MYJE2 535 DO 100 I=MYIS,MYIE 536 LLMH=LMH(I,J) 537 ETALM(I,J)=AETA(LLMH) 538 APELM(I,J)=APE(I,J,LLMH) 539 TLM(I,J)=T(I,J,LLMH) 540 QLM(I,J)=Q(I,J,LLMH) 541 ZLM(I,J)=(ZINT(I,J,LLMH)-ZINT(I,J,LLMH+1))*0.50 Page 6 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 542 100 CONTINUE 543 C 544 !$omp parallel do private(i,j) 545 DO 110 J=MYJS2,MYJE2 546 DO 110 I=MYIS,MYIE 547 PS(I,J)=PD(I,J)+PT 548 APES(I,J)=(1.E5/PS(I,J))**CAPA 549 PLM(I,J)=ETALM(I,J)*PD(I,J)*RES(I,J)+PT 550 QLMS(I,J)=((1.-SM(I,J))*PQ0+SM(I,J)*PQ0SEA) 551 1 /PLM(I,J)*EXP(A2*(TLM(I,J)-A3)/(TLM(I,J)-A4)) 552 DQSDT(I,J)=QLMS(I,J)*A23M4/(TLM(I,J)-A4)**2 553 FFSK=AKHS(I,J)*PLM(I,J)*HBM2(I,J)/((QLM(I,J)*.608+1.)*TLM(I,J)*R) 554 QFC1(I,J)=APES(I,J)*FFSK*ELWV 555 FFS(I,J)=FFSK*CP 556 110 CONTINUE 557 C----------------------------------------------------------------------- 558 !$omp parallel do private(i,j,factrs,factrl,tlmh) 559 DO 120 J=MYJS2,MYJE2 560 DO 120 I=MYIS,MYIE 561 C*** 562 C*** COMPUTE RADIN AND RDSIN FOR THIS TIMESTEP 563 C*** CZEN IS IN PHYS COMMON AND IS CURRENT FROM CALL TO RDTEMP 564 C*** 565 IF(CZMEAN(I,J).GT.0.)THEN 566 FACTRS=CZEN(I,J)/CZMEAN(I,J) 567 ELSE 568 FACTRS=0. 569 ENDIF 570 C 571 IF(SIGT4(I,J).GT.0.)THEN 572 TLMH=TLM(I,J) 573 FACTRL=STBOL*TLMH*TLMH*TLMH*TLMH/SIGT4(I,J) 574 ELSE 575 FACTRL=0. 576 ENDIF 577 C 578 c Ek 10 feb 2000 - RADIN no longer needed in SFLX (via FK) 579 c now use RADIN array for incoming longwave 580 c perhaps change the name later to e.g. RDLIN for consistency 581 c RADIN(I,J)=((RSWIN(I,J)-RSWOUT(I,J))*FACTRS+ 582 c & RLWIN(I,J)*FACTRL)*HBM2(I,J) 583 c if(i.eq.25.and.j.eq.31.and.mype.eq.1) then 584 c print*,'RLWIN,FACTRL,HBM2=',rlwin(i,j),factrl,hbm2(i,j) 585 c endif 586 RADIN(I,J)= RLWIN(I,J)*FACTRL*HBM2(I,J) 587 RDSIN(I,J)= RSWIN(I,J)*FACTRS*HBM2(I,J) 588 C*** 589 C*** DIAGNOSTIC RADIATION ACCUMULATION 590 C*** 591 ASWIN (I,J)=ASWIN (I,J)+RSWIN (I,J)*HBM2(I,J)*FACTRS 592 ASWOUT(I,J)=ASWOUT(I,J)-RSWOUT(I,J)*HBM2(I,J)*FACTRS 593 ASWTOA(I,J)=ASWTOA(I,J)+RSWTOA(I,J)*HBM2(I,J)*FACTRS 594 ALWIN (I,J)=ALWIN (I,J)+RLWIN (I,J)*HBM2(I,J)*FACTRL 595 ALWOUT(I,J)=ALWOUT(I,J)-RADOT (I,J)*HBM2(I,J) 596 ALWTOA(I,J)=ALWTOA(I,J)+RLWTOA(I,J)*HBM2(I,J) 597 C*** 598 C*** CHECK FOR SATURATION AT THE LOWEST MODEL LEVEL Page 7 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 599 C*** 600 IF((QLM(I,J).GE.QLMS(I,J)*TRESH).AND.(QLM(I,J).LT.QZ0(I,J)))THEN 601 CKLQ(I,J)=0. 602 ELSE 603 CKLQ(I,J)=HBM2(I,J) 604 ENDIF 605 120 CONTINUE 606 C----------------------------------------------------------------------- 607 C*** 608 C*** THS, THLM, CHEATING WET FOR PROFS 609 C*** 610 !$omp parallel do private(i,j) 611 DO 130 J=MYJS2,MYJE2 612 DO 130 I=MYIS,MYIE 613 THLM(I,J)=TLM(I,J)*APELM(I,J) 614 QFC1(I,J)=QFC1(I,J)*CKLQ(I,J) 615 130 CONTINUE 616 C 617 c Ek 10 feb 2000 - update these private statements 618 c add new variables: alb2d,snoalb,alb,ISPTPK 619 c remove old variables no longer needed: 620 C 621 !!$omp parallel do 622 !!$omp& private(chk,chkff,cmck,dqsdtk,dtk,elflx,fk,gflx) 623 !!$omp& private (hflx,i,ice,isltpk,ivgtpk,j,ns,plflx,prcp) 624 !!$omp& private (q1k,q2k,q2sat,rnof1k,rnof2k,satflg,scheck) 625 !!$omp& private (sfcprs,sfcth2,sfctmp,smck,smeltk,snodpk) 626 !!$omp& private (soilqm,soilqw,soldn,stck,t1k,tbot,vgfrck,z) 627 c Ek 10 feb 2000 - private statements 628 c add new variables 629 c remove old variables no longer needed later 630 !!$omp& private (lwdn,sh2ok,alb2d,snoalb,alb,ISPTPK,snowh) 631 C 632 C Ek 18 jan 2000 - temporarily set ISPTPK=1 (2-D fixed field: x,y) 633 c comes from ISLSCP data set 2-d fixed field 634 ISPTPK=1 635 C ---------------------------------------------------------------------- 636 C Begin main 'workhorse' loop over entire model domain 637 C ---------------------------------------------------------------------- 638 DO 160 J=MYJS2,MYJE2 639 DO 155 I=MYIS,MYIE 640 C ---------------------------------------------------------------------- 641 IF(HBM2(I,J).LT.0.5)GO TO 155 642 c Check to see that when ocean, ALBASE=ALBEDO=0.06,MXSNAL=0, 643 IF (SM(I,J) .GT. 0.5) THEN 644 IF ((ALBASE(I,J) .NE. 0.0) .OR. 645 . (ALBEDO(I,J) .LT. 0.059) .OR. 646 . (ALBEDO(I,J) .GT. 0.061) .OR. 647 . (MXSNAL(I,J) .NE. 0.0) ) THEN 648 WRITE(6,*)'ALBo:I,J,MYPE,ICE,SNODPK,ALB,ALB2D,SNOALB=', 649 . I,J,MYPE,ICE,SNO(I,J),ALBASE(I,J),ALBEDO(I,J),MXSNAL(I,J) 650 IERR1=1 651 ENDIF 652 ENDIF 653 C ---------------------------------------------------------------------- 654 IF(SM(I,J).GT.0.5)THEN 655 THS(I,J)=SST(I,J)*APES(I,J) Page 8 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 656 QS(I,J)=HBM2(I,J)*PQ0SEA/PS(I,J) 657 1 *EXP(A2*(THS(I,J)-A3*APES(I,J))/(THS(I,J)-A4*APES(I,J))) 658 ENDIF 659 C ---------------------------------------------------------------------- 660 C Land or sea-ice 661 C ---------------------------------------------------------------------- 662 C*** 663 C*** LOADING AND UNLOADING NOAH LSM LAND SOIL VARIABLES 664 C*** 665 IF(SM(I,J).LT.0.5)THEN 666 c ICE=INT(SICE(I,J)+0.3) 667 ICE=NINT(SICE(I,J)) 668 c Ek 10 feb 2000 - SATFLG no longer needed in SFLX 669 c SATFLG=CKLQ(I,J) 670 C 671 DTK=DTQ2 672 Z=ZLM(I,J) 673 c Ek 10 feb 2000 - FK no longer needed in SFLX 674 c FK=RADIN(I,J) 675 c Ek 18 jan 2000 - add longwave radiation calc needed for call SFLX 676 LWDN=RADIN(I,J) 677 SOLDN=RDSIN(I,J) 678 SFCPRS=PLM(I,J) 679 PRCP=PREC(I,J)*ROW/DTQ2 680 Q2K=QLM(I,J) 681 Q2SAT=QLMS(I,J) 682 C ---------------------------------------------------------------------- 683 C Q2K may slightly exceed Q2SAT in some cases due to atmospheric physics 684 C parameterizations previously called 685 IF (Q2K .GT. Q2SAT) Q2K=Q2SAT 686 DQSDTK=DQSDT(I,J) 687 TBOT=TG(I,J) 688 CHK=AKHS(I,J) 689 CHKFF=FFS(I,J) 690 IVGTPK=IVGTYP(I,J) 691 ISLTPK=ISLTYP(I,J) 692 C MEB PREVENT ROUTINES IN SFLX FROM GOING OUT OF BOUNDS 693 IF (IVGTPK.EQ.0) IVGTPK=13 694 IF (ISLTPK.EQ.0) ISLTPK=9 695 C MEB PREVENT ROUTINES IN SFLX FROM GOING OUT OF BOUNDS 696 VGFRCK=VEGFRC(I,J) 697 Q1K=QS(I,J) 698 SFCTMP=THLM(I,J)/APELM(I,J) 699 SFCTH2=THLM(I,J)/APES(I,J) 700 T1K=THS(I,J)/APES(I,J) 701 CMCK=CMC(I,J) 702 SNODPK=SNO(I,J) 703 c use 2-d prognostic field of snowdepth, SI(x,y) for 704 C SNOWH (local snowdepth variable) 705 C Ek 17 Jan 2001 706 SNOWH=SI(I,J) 707 C 708 DO 140 NS=1,NSOIL 709 SMCK(NS)=SMC(I,J,NS) 710 c print*,'i,j,ns,smc(i,j,ns),smck(ns)=', 711 c * i,j,ns,smc(i,j,ns),smck(ns) 712 C use 3-d prognostic field of liquid soil moisture, SH2O(x,y,4) for Page 9 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 713 C SH2OK(NS) (local liquid soil moisture variable) 714 C Ek 11 Jan 2001 715 SH2OK(NS)=SH2O(I,J,NS) 716 c print*,'mype,i,j,ns,sh2ok=',mype,i,j,ns,sh2ok(ns) 717 C 718 STCK(NS)=STC(I,J,NS) 719 c if(mype.eq.13) then 720 c print*,'i,j,ns,stc(i,j,ns)=',i,j,ns,stc(i,j,ns) 721 c endif 722 140 CONTINUE 723 C 724 c OLD CALL SFLX 725 C----------------------------------------------------------------------- 726 c CALL SFLX 727 c & (ICE ,SATFLG,DTK ,Z, NSOIL, NROOT, SLDPTH 728 c &, FK ,SOLDN ,SFCPRS,PRCP ,SFCTMP,SFCTH2 729 c &, Q2K ,Q2SAT ,DQSDTK,TBOT ,CHK, CHKFF 730 c &, IVGTPK,ISLTPK,VGFRCK 731 c &, PLFLX ,ELFLX ,HFLX ,GFLX ,RNOF1K,RNOF2K 732 c &, Q1K ,SMELTK,T1K ,CMCK ,SMCK ,STCK ,SNODPK 733 c &, SOILQW,SOILQM ) 734 C----------------------------------------------------------------------- 735 C 736 C Ek 18 jan 2000 - temporarily set ISPTPK=1 (2-D fixed field: x,y) 737 c comes from ISLSCP data set 2-d fixed field 738 c ISPTPK=1 739 C SNOALB (fixed value, max snow albedo) from MXSNAL 740 c via 2-d fixed field from David Robinson 741 SNOALB=MXSNAL(I,J) 742 C ALB (fixed value, snow-free albedo) from ALBASE 743 C via 2-d fixed field from Matthews 744 ALB=ALBASE(I,J) 745 C Set dynamic albedo from the dynamic albedo 2-d array, which is updated 746 C only for the land in SFLX, not for sea-ice, so we must 'pass through' 747 C ALB2D=0.60 for sea-ice. 748 C turn this off, and instead, do it within SFLX 749 c ALB2D=ALBEDO(I,J) 750 C 751 C ---------------------------------------------------------------------- 752 c Initial range check for variables/parameters for entire I,J domain for 753 C first timestep (when LFIRST=true). Set LFIRST=false after end of the 754 C 155/160 loop. 755 756 IF (LFIRST) THEN 757 c IF ( (LFIRST) .OR. 758 c . (NTSD .EQ. 2) .OR. 759 c . (NTSD .EQ. 3) .OR. 760 c . (NTSD .EQ. NTSTM/2) .OR. 761 c . (NTSD .EQ. NTSTM) ) THEN 762 C ---------------------------------------------------------------------- 763 C land OR sea-ice checks 764 C land checks first 765 IF (ICE .LT. 0.5) THEN 766 C ---------------------------------------------------------------------- 767 C albedo checks 768 C ALB = ALBASE(I,J) = snow free albedo 769 C min = 0.11 (Matthews data base) Page 10 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 770 C max = 0.80 (Matthews data base) 771 C ALBEDO(I,J) = dynamic albedo (=ALBASE when SNODPK=0) 772 C (=ALB2D on return from SFLX) 773 C SNOALB = MAXSNAL(I,J) = maximum snow albedo 774 C min = 0.21 (Robinson data base) 775 C max = 0.75 (Robinson data base) 776 IF ( (ALB .GT.(SNOALB+0.051)) .OR. 777 . (ALB .GT.(ALBEDO(I,J)+0.051)) .OR. 778 . (ALBEDO(I,J) .GT.(SNOALB+0.051) ) ) THEN 779 write(6,*)'ALBl1:I,J,MYPE,ICE,SNODPK,ALB,ALB2D,SNOALB=', 780 . I,J,MYPE,ICE,SNODPK,ALB,ALBEDO(I,J),SNOALB 781 IERR1=1 782 ENDIF 783 IF ( (ALB .LT. 0.10) .OR. 784 . (ALB .GT. 0.81) .OR. 785 . (SNOALB .LT. 0.20) .OR. 786 . (SNOALB .GT. 0.81) ) THEN 787 write(6,*)'ALBl2:I,J,MYPE,ICE,SNODPK,ALB,ALB2D,SNOALB=', 788 . I,J,MYPE,ICE,SNODPK,ALB,ALBEDO(I,J),SNOALB 789 IERR1=1 790 ENDIF 791 C ---------------------------------------------------------------------- 792 C Veg,soil,slope type, veg fraction, No. soil layers checks 793 IF ( ( (IVGTPK .LT. 1) .OR. (IVGTPK .GT. 13) ) .OR. 794 . ( (ISLTPK .LT. 1) .OR. (ISLTPK .GT. 9) ) .OR. 795 . (ISPTPK .NE. 1) .OR. 796 . ( (VGFRCK .LT. 0.) .OR. (VGFRCK .GT. 1.) ) .OR. 797 . (NSOIL .NE. 4) ) THEN 798 WRITE(6,*)'LANDSFC:I,J,MYPE,IVGTPK,ISLTPK,ISPTPK,VGFRCK=', 799 . I,J,MYPE,IVGTPK,ISLTPK,ISPTPK,VGFRCK 800 IERR1=1 801 ENDIF 802 C ---------------------------------------------------------------------- 803 DO index=1,NSOIL 804 c do index=1,nsoil 805 C ---------------------------------------------------------------------- 806 C debug 807 indexp = min(index+1,nsoil) 808 indexm = max(index-1,1) 809 C ---------------------------------------------------------------------- 810 C Soil temp (STC) range check 811 c IF ((STCK(index) .LT. 223.15) .OR. 812 IF ((STCK(index) .LT. 200.00) .OR. 813 . (STCK(index) .GT. 323.15)) THEN 814 write(6,*)'STCl:INDEX,I,J,MYPE,STC=', 815 . index,I,J,MYPE,STCK(index) 816 IERR1=2 817 ENDIF 818 C ---------------------------------------------------------------------- 819 C Total soil moisture (SMC) check 820 IF ( (SMCK(index) .LT. 0.02) .OR. 821 . (SMCK(index) .GT. 0.468) ) THEN 822 write(6,*)'SMC:INDEX,I,J,MYPE,STCK,SMC,SH2O=', 823 . index,I,J,MYPE,STCK(index),SMCK(index),SH2OK(index) 824 IERR1=1 825 ENDIF 826 C ---------------------------------------------------------------------- Page 11 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 827 C Liquid soil moisture<=total soil moisture (SH2O<=SMC) maximum check 828 IF ( (SH2OK(index) .LT. 0.02) .OR. 829 . (SH2OK(index) .GT. SMCK(index)) ) THEN 830 write(6,*)'aSH2Ol1:INDEX,I,J,MYPE,ICE,STCK,SMC,SH2O=', 831 . index,I,J,MYPE,ICE,STCK(index),SMCK(index),SH2OK(index) 832 IERR1=1 833 ENDIF 834 C ---------------------------------------------------------------------- 835 C Note SH2O, SMC when STC > +1.5C 836 IF (STCK(index) .GT. T0+1.5) THEN 837 IF (SMCK(index)-SH2OK(index) .GT. 0.03) THEN 838 write(6,*)'SH2Ol2a:INDEX,I,J,MYPE,STCK,SMC,SH2O=', 839 . index,I,J,MYPE,STCK(index),SMCK(index),SH2OK(index) 840 write(6,*)'SH2Ol2a:I,J,MYPE,N-1,N,N+1, STCK(N-1),STCK(N),ST 841 *CK(N+1), =', 842 . I,J,MYPE,indexm,index,indexp, 843 . STCK(indexm),STCK(index),STCK(indexp) 844 IERR1=1 845 ENDIF 846 ELSEIF (STCK(index) .LT. T0-0.5) THEN 847 C Note SH2O, SMC when STC < -0.5C 848 IF (SMCK(index)-SH2OK(index) .LT. 0.005) THEN 849 write(6,*)'SH2Ol2b:INDEX,I,J,MYPE,STCK,SMC,SH2O=', 850 . index,I,J,MYPE,STCK(index),SMCK(index),SH2OK(index) 851 write(6,*)'SH2Ol2b:I,J,MYPE,N-1,N,N+1, STCK(N-1),STCK(N),ST 852 *CK(N+1), =', 853 . I,J,MYPE,indexm,index,indexp, 854 . STCK(indexm),STCK(index),STCK(indexp) 855 IERR1=1 856 ENDIF 857 ENDIF 858 C ---------------------------------------------------------------------- 859 c print*,'index at the end of loop=',i,j,index 860 END DO 861 C ---------------------------------------------------------------------- 862 C Soil column bottom temp (TBOT) check 863 c IF ((TBOT .LT. 223.15) .OR. (TBOT .GT. 323.15)) THEN 864 IF ((TBOT .LT. 200.00) .OR. (TBOT .GT. 323.15)) THEN 865 write(6,*)'TBOTl:INDEX,I,J,MYPE,TBOT=', 866 . index,I,J,MYPE,TBOT 867 IERR2=1 868 ENDIF 869 C ---------------------------------------------------------------------- 870 C sfc/skin temp (T1K) check 871 c IF ((T1K .LT. 223.15) .OR. (T1K .GT. 323.15)) THEN 872 IF ((T1K .LT. 200.00) .OR. (T1K .GT. 323.15)) THEN 873 write(6,*)'T1:INDEX,I,J,MYPE,T1=', 874 . index,I,J,MYPE,T1K 875 IERR2=1 876 ENDIF 877 C ---------------------------------------------------------------------- 878 C Canopy water content (CMC) check 879 IF ((CMCK .LT. 0.) .OR. (CMCK .GT. 0.5E-3)) THEN 880 write(6,*)'CMC:INDEX,I,J,MYPE,CMC=', 881 . index,I,J,MYPE,CMCK 882 c IERR1=1 883 ENDIF Page 12 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 884 C ---------------------------------------------------------------------- 885 C Snow water equivalent, snow depth check 886 IF (((SNODPK .GT. 0.) .AND. (SNOWH .LT. 1.0E-09)) .OR. 887 . ((SNODPK .LT. 1.0E-09) .AND. (SNOWH .GT. 0.)) .OR. 888 . (SNODPK .GT. SNOWH)) THEN 889 WRITE(6,*)'SNOW:I,J,MYPE,SNODPK,SNOWH=', 890 . I,J,MYPE,SNODPK,SNOWH 891 IERR1=1 892 ENDIF 893 C ---------------------------------------------------------------------- 894 C Snow density check 895 IF (SNODPK .GT. 0.) THEN 896 SNDENS=SNODPK/SNOWH 897 IF (SNDENS .LT. 0.05) THEN 898 WRITE(6,*)'SNDENS<5%:I,J,MYPE,SNODPK,SNOWH,SNDENS=', 899 . I,J,MYPE,SNODPK,SNOWH,SNDENS 900 IERR1=1 901 ENDIF 902 IF (SNDENS .GT. 0.42) THEN 903 WRITE(6,*)'SNDENS>42%:I,J,MYPE,SNODPK,SNOWH,SNDENS=', 904 . I,J,MYPE,SNODPK,SNOWH,SNDENS 905 IERR1=1 906 ENDIF 907 ENDIF 908 C ---------------------------------------------------------------------- 909 C end land checks 910 C ---------------------------------------------------------------------- 911 ELSE 912 C ---------------------------------------------------------------------- 913 C sea-ice checks next 914 C ---------------------------------------------------------------------- 915 C sea-ice bottom temp (TBOT) check 916 IF ( (TBOT .LT. 271.159) .OR. 917 . (TBOT .GT. 271.161) ) THEN 918 WRITE(6,*)'TBOTi:INDEX,I,J,MYPE,TBOT=', 919 . index,I,J,MYPE,TBOT 920 ENDIF 921 C ---------------------------------------------------------------------- 922 C sea-ice temp with depth (STC) range check 923 DO index=1,4 924 c IF ((STCK(index) .LT. 223.15) .OR. 925 IF ((STCK(index) .LT. 200.00) .OR. 926 c . (STCK(index) .GT. 323.15)) THEN 927 . (STCK(index) .GT. 274.15)) THEN 928 write(6,*)'STCi:INDEX,I,J,MYPE,STC=', 929 . index,I,J,MYPE,STCK(index) 930 c IERR1=2 931 ENDIF 932 END DO 933 C ---------------------------------------------------------------------- 934 C sfc/skin temp (T1K) check 935 c IF ((T1K .LT. 223.15) .OR. (T1K .GT. 323.15)) THEN 936 IF ((T1K .LT. 200.00) .OR. (T1K .GT. 323.15)) THEN 937 write(6,*)'T1:INDEX,I,J,MYPE,ICE,T1=', 938 . index,I,J,MYPE,ICE,T1K 939 IERR2=1 940 ENDIF Page 13 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 941 C ---------------------------------------------------------------------- 942 C Snow water equivalent, snow depth check 943 IF (((SNODPK .GT. 0.) .AND. (SNOWH .LT. 1.0E-09)) .OR. 944 . ((SNODPK .LT. 1.0E-09) .AND. (SNOWH .GT. 0.)) .OR. 945 . (SNODPK .GT. SNOWH)) THEN 946 WRITE(6,*)'SNOW:I,J,MYPE,SNODPK,SNOWH=', 947 . I,J,MYPE,SNODPK,SNOWH 948 IERR1=1 949 ENDIF 950 C ---------------------------------------------------------------------- 951 C Snow density check 952 IF (SNODPK .GT. 0.) THEN 953 SNDENS=SNODPK/SNOWH 954 IF (SNDENS .LT. 0.05) THEN 955 WRITE(6,*)'SNDENS<5%:I,J,MYPE,SNODPK,SNOWH,SNDENS=', 956 . I,J,MYPE,SNODPK,SNOWH,SNDENS 957 IERR1=1 958 ENDIF 959 IF (SNDENS .GT. 0.42) THEN 960 WRITE(6,*)'SNDENS>42%:I,J,MYPE,SNODPK,SNOWH,SNDENS=', 961 . I,J,MYPE,SNODPK,SNOWH,SNDENS 962 IERR1=1 963 ENDIF 964 ENDIF 965 C ---------------------------------------------------------------------- 966 c Check to see that when sea-ice, ALBASE=ALBEDO=0.65,MXSNAL=0, 967 IF ( (ALB .NE. 0.0) .OR. 968 . (ALBEDO(I,J) .LT. 0.64) .OR. 969 . (ALBEDO(I,J) .GT. 0.66) .OR. 970 . (SNOALB .NE. 0.0) ) THEN 971 WRITE(6,*)'ALBi:I,J,MYPE,ICE,SNODPK,ALB,ALB2D,SNOALB=', 972 . I,J,MYPE,ICE,SNODPK,ALB,ALBEDO(I,J),SNOALB 973 IERR1=1 974 ENDIF 975 C ---------------------------------------------------------------------- 976 c Check to see that when sea-ice, SH2O=SMC=1.0 977 DO index=1,4 978 IF ( (SMCK(index) .NE. 1.0) .OR. 979 . (SMCK(index) .NE. SH2OK(index)) ) THEN 980 write(6,*)'SMCi:INDEX,I,J,MYPE,ICE,STCK,SMC,SH2O=', 981 . index,I,J,MYPE,ICE,STCK(index),SMCK(index),SH2OK(index) 982 IERR1=1 983 ENDIF 984 END DO 985 C ---------------------------------------------------------------------- 986 C check to see that veg type=soil type=veg frac=0 987 IF ( (IVGTYP(I,J) .NE. 0 ) .OR. 988 . (ISLTYP(I,J) .NE. 0 ) .OR. 989 . (VGFRCK .GT. 0.) ) THEN 990 WRITE(6,*)'IVGTYPi:I,J,MYPE,IVGTYP,ISLTYP,VGFRCK=', 991 . I,J,MYPE,IVGTYP(I,J),ISLTYP(I,J),VGFRCK 992 WRITE(6,*)'IVGTYPi:I,J,MYPE,SNODPK,ALB,ALBEDO,SNOALB=', 993 . I,J,MYPE,SNODPK,ALB,ALBEDO(I,J),SNOALB 994 ENDIF 995 C ---------------------------------------------------------------------- 996 C end sea-ice checks 997 C end of separate land AND sea-ice checks Page 14 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 998 C ---------------------------------------------------------------------- 999 ENDIF 1000 C ---------------------------------------------------------------------- 1001 C both land AND sea-ice checks 1002 C Snow water equivalent, snow depth check 1003 IF (((SNODPK .GT. 0.) .AND. (SNOWH .LE. 0.)) .OR. 1004 . ((SNODPK .LE. 0.) .AND. (SNOWH .GT. 0.)) .OR. 1005 . (SNODPK .GT. SNOWH)) THEN 1006 WRITE(6,*)'SNOW:I,J,MYPE,SNODPK,SNOWH=', 1007 . I,J,MYPE,SNODPK,SNOWH 1008 c IERR1=1 1009 ENDIF 1010 C ---------------------------------------------------------------------- 1011 C Snow density check 1012 IF (SNODPK .GT. 0.) THEN 1013 SNDENS=SNODPK/SNOWH 1014 IF (SNDENS .LT. 0.05) THEN 1015 WRITE(6,*)'SNDENS<5%:I,J,MYPE,SNODPK,SNOWH,SNDENS=', 1016 . I,J,MYPE,SNODPK,SNOWH,SNDENS 1017 c IERR1=1 1018 ENDIF 1019 IF (SNDENS .GT. 0.42) THEN 1020 WRITE(6,*)'SNDENS>42%:I,J,MYPE,SNODPK,SNOWH,SNDENS=', 1021 . I,J,MYPE,SNODPK,SNOWH,SNDENS 1022 c IERR1=1 1023 ENDIF 1024 ENDIF 1025 C ---------------------------------------------------------------------- 1026 C sfc/skin temp (T1K) check 1027 c IF ((T1K .LT. 223.15) .OR. (T1K .GT. 323.15)) THEN 1028 IF ((T1K .LT. 200.00) .OR. (T1K .GT. 323.15)) THEN 1029 write(6,*)'T1:INDEX,I,J,MYPE,T1=', 1030 . index,I,J,MYPE,T1K 1031 c IERR2=1 1032 ENDIF 1033 C ---------------------------------------------------------------------- 1034 c check to see that 223.15K (-50C) =< SFCTMP,SFCTH2 <= 323.15K (+50C) 1035 C SFCTMP = lowest model level temp 1036 C SFCTH2 = lowest model level pot temp 1037 IF ( ( (SFCTMP .LT. 223.15) .OR. (SFCTMP .GT. 323.15) ) .OR. 1038 . ( (SFCTH2 .LT. 223.15) .OR. (SFCTH2 .GT. 323.15) ) ) THEN 1039 WRITE(6,*)'SFCTMP:I,J,MYPE,SFCTMP,SFCTH2=', 1040 . I,J,MYPE,SFCTMP,SFCTH2 1041 ENDIF 1042 C ---------------------------------------------------------------------- 1043 c check to see that 0W/m2 =< LWDN <= 500W/m2 1044 c check to see that 0W/m2 =< SOLDN <= 1200W/m2 1045 C LWDN = downward longwave radiation 1046 C SOLDN = downward solar radiation 1047 IF ( ( (LWDN .LT. 0.) .OR. (LWDN .GT. 500.) ) .OR. 1048 . ( (SOLDN .LT. 0.) .OR. (SOLDN .GT. 1200.) ) ) THEN 1049 WRITE(6,*)'LWSOLDN:I,J,MYPE,LWDN,SOLDN=', 1050 . I,J,MYPE,LWDN,SOLDN 1051 ENDIF 1052 C ---------------------------------------------------------------------- 1053 c check to see that 0g/kg < Q2K,Q2SAT <= 40g/kg 1054 c check to see that Q2K <= Q2SAT Page 15 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 1055 C Q2K = lowest model level spec hum 1056 C Q2SAT = lowest model level sat spec hum 1057 c IF ( ( (Q2K .LE. 0.) .OR. (Q2K .GT. 0.04) ) .OR. 1058 c . ( (Q2SAT .LE. 0.) .OR. (Q2SAT .GT. 0.04) ) .OR. 1059 IF ( ( (Q2K .LE. 0.) .OR. (Q2K .GT. 0.05) ) .OR. 1060 . ( (Q2SAT .LE. 0.) .OR. (Q2SAT .GT. 0.05) ) .OR. 1061 . (Q2K .GT. Q2SAT) ) THEN 1062 WRITE(6,*)'Q2:I,J,MYPE,Q2K,Q2SAT=', 1063 . I,J,MYPE,Q2K,Q2SAT 1064 ENDIF 1065 C ---------------------------------------------------------------------- 1066 c check to see that 600mb =< SFCPRS <= 1050mb 1067 C SFCPRS = surface pressure (Pa) 1068 IF ( (SFCPRS .LE. 60000.) .OR. (SFCPRS .GT. 105000.) ) THEN 1069 WRITE(6,*)'SFCPRS:I,J,MYPE,SFCPRS=', 1070 . I,J,MYPE,SFCPRS 1071 ENDIF 1072 C ---------------------------------------------------------------------- 1073 c check to see that 0 =< PRCP <= 0.04 KG M-2 S-1 (=0.04mm/s = 144mm/hr) 1074 C PRCP = precip rate (KG M-2 S-1) 1075 IF ( (PRCP .LT. 0.) .OR. (PRCP .GT. 0.04) ) THEN 1076 WRITE(6,*)'PRCP:I,J,MYPE,PRCP=', 1077 . I,J,MYPE,PRCP 1078 ENDIF 1079 C ---------------------------------------------------------------------- 1080 c check to see that 0m/s < CHK <= 0.1m/s 1081 C CHK = sfc heat exchange coeff (m/s) 1082 IF ( (CHK .LE. 0.) .OR. (CHK .GT. 0.1) ) THEN 1083 WRITE(6,*)'CH:I,J,MYPE,CHK=', 1084 . I,J,MYPE,CHK 1085 ENDIF 1086 C ---------------------------------------------------------------------- 1087 IF (IERR2 .EQ. 1) THEN 1088 WRITE(6,*) 'RANGE CHECK IN SURFCE: EXTREME VALUES BEFORE SFLX' 1089 ENDIF 1090 IF (IERR1 .EQ. 1) THEN 1091 c WRITE(6,*) 'RANGE CHECK FAILURE IN SURFCE - STOP' 1092 c STOP 1093 ENDIF 1094 C ---------------------------------------------------------------------- 1095 C End of initial (logical LFIRST) range check for variables/parameters. 1096 ENDIF 1097 C ---------------------------------------------------------------------- 1098 C Ek 18 jan 2000 - NEW CALL SFLX 1099 CALL SFLX 1100 I (ICE,DTK,Z,NSOIL,SLDPTH, 1101 I LWDN,SOLDN,SFCPRS,PRCP,SFCTMP,SFCTH2,Q2K,SFCSPD,Q2SAT,DQSDTK, 1102 I IVGTPK,ISLTPK,ISPTPK, 1103 I VGFRCK,PTU,TBOT,ALB,SNOALB, 1104 2 CMCK,T1K,STCK,SMCK,SH2OK,SNOWH,SNODPK,ALB2D,CHK,CMK, 1105 O PLFLX,ELFLX,HFLX,GFLX,RNOF1K,RNOF2K,Q1K,SMELTK, 1106 O SOILQW,SOILQM,DUM1,DUM2,DUM3,DUM4) 1107 C----------------------------------------------------------------------- 1108 IF (LFIRSTa) THEN 1109 c IF ( (LFIRST) .OR. 1110 c . (NTSD .EQ. 2) .OR. 1111 c . (NTSD .EQ. 3) .OR. Page 16 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 1112 c . (NTSD .EQ. NTSTM/2) .OR. 1113 c . (NTSD .EQ. NTSTM) ) THEN 1114 C ---------------------------------------------------------------------- 1115 C land OR sea-ice checks 1116 C land checks first 1117 IF (ICE .LT. 0.5) THEN 1118 C ---------------------------------------------------------------------- 1119 C albedo checks 1120 C ALB = ALBASE(I,J) = snow free albedo 1121 C min = 0.11 (Matthews data base) 1122 C max = 0.80 (Matthews data base) 1123 C ALBEDO(I,J) = dynamic albedo (=ALBASE when SNODPK=0) 1124 C (=ALB2D on return from SFLX) 1125 C SNOALB = MAXSNAL(I,J) = maximum snow albedo 1126 C min = 0.21 (Robinson data base) 1127 C max = 0.75 (Robinson data base) 1128 IF ( (ALB .GT.(SNOALB+0.051)) .OR. 1129 . (ALB .GT.(ALBEDO(I,J)+0.051)) .OR. 1130 . (ALBEDO(I,J) .GT.(SNOALB+0.051) ) ) THEN 1131 write(6,*)'ALBl1:I,J,MYPE,ICE,SNODPK,ALB,ALB2D,SNOALB=', 1132 . I,J,MYPE,ICE,SNODPK,ALB,ALBEDO(I,J),SNOALB 1133 IERR1=1 1134 ENDIF 1135 IF ( (ALB .LT. 0.10) .OR. 1136 . (ALB .GT. 0.81) .OR. 1137 . (SNOALB .LT. 0.20) .OR. 1138 . (SNOALB .GT. 0.81) ) THEN 1139 write(6,*)'ALBl2:I,J,MYPE,ICE,SNODPK,ALB,ALB2D,SNOALB=', 1140 . I,J,MYPE,ICE,SNODPK,ALB,ALBEDO(I,J),SNOALB 1141 IERR1=1 1142 ENDIF 1143 C ---------------------------------------------------------------------- 1144 C Veg,soil,slope type, veg fraction, No. soil layers checks 1145 IF ( ( (IVGTPK .LT. 1) .OR. (IVGTPK .GT. 13) ) .OR. 1146 . ( (ISLTPK .LT. 1) .OR. (ISLTPK .GT. 9) ) .OR. 1147 . (ISPTPK .NE. 1) .OR. 1148 . ( (VGFRCK .LT. 0.) .OR. (VGFRCK .GT. 1.) ) .OR. 1149 . (NSOIL .NE. 4) ) THEN 1150 WRITE(6,*)'LANDSFC:I,J,MYPE,IVGTPK,ISLTPK,ISPTPK,VGFRCK=', 1151 . I,J,MYPE,IVGTPK,ISLTPK,ISPTPK,VGFRCK 1152 IERR1=1 1153 ENDIF 1154 C ---------------------------------------------------------------------- 1155 DO index=1,NSOIL 1156 C ---------------------------------------------------------------------- 1157 C debug 1158 indexp = min(index+1,nsoil) 1159 indexm = max(index-1,1) 1160 C ---------------------------------------------------------------------- 1161 C Soil temp (STC) range check 1162 c IF ((STCK(index) .LT. 223.15) .OR. 1163 IF ((STCK(index) .LT. 200.00) .OR. 1164 . (STCK(index) .GT. 323.15)) THEN 1165 write(6,*)'STCl:INDEX,I,J,MYPE,STC=', 1166 . index,I,J,MYPE,STCK(index) 1167 IERR1=2 1168 ENDIF Page 17 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 1169 C ---------------------------------------------------------------------- 1170 C Total soil moisture (SMC) check 1171 IF ( (SMCK(index) .LT. 0.02) .OR. 1172 . (SMCK(index) .GT. 0.468) ) THEN 1173 write(6,*)'SMC:INDEX,I,J,MYPE,STCK,SMC,SH2O=', 1174 . index,I,J,MYPE,STCK(index),SMCK(index),SH2OK(index) 1175 IERR1=1 1176 ENDIF 1177 C ---------------------------------------------------------------------- 1178 C Liquid soil moisture<=total soil moisture (SH2O<=SMC) maximum check 1179 IF ( (SH2OK(index) .LT. 0.02) .OR. 1180 . (SH2OK(index) .GT. SMCK(index)) ) THEN 1181 write(6,*)'bSH2Ol1:INDEX,I,J,MYPE,ICE,STCK,SMC,SH2O=', 1182 . index,I,J,MYPE,STCK(index),SMCK(index),SH2OK(index) 1183 IERR1=1 1184 ENDIF 1185 C ---------------------------------------------------------------------- 1186 C Note SH2O, SMC when STC > +1.5C 1187 IF (STCK(index) .GT. T0+1.5) THEN 1188 IF (SMCK(index)-SH2OK(index) .GT. 0.005) THEN 1189 write(6,*)'SH2Ol2a:INDEX,I,J,MYPE,STCK,SMC,SH2O=', 1190 . index,I,J,MYPE,STCK(index),SMCK(index),SH2OK(index) 1191 write(6,*)'SH2Ol2a:I,J,MYPE,N-1,N,N+1, STCK(N-1),STCK(N),STCK 1192 *(N+1), =', 1193 . I,J,MYPE,indexm,index,indexp, 1194 . STCK(indexm),STCK(index),STCK(indexp) 1195 IERR1=1 1196 ENDIF 1197 ELSEIF (STCK(index) .LT. T0-0.5) THEN 1198 C Note SH2O, SMC when STC < -0.5C 1199 IF (SMCK(index)-SH2OK(index) .LT. 0.005) THEN 1200 write(6,*)'SH2Ol2b:INDEX,I,J,MYPE,STCK,SMC,SH2O=', 1201 . index,I,J,MYPE,STCK(index),SMCK(index),SH2OK(index) 1202 write(6,*)'SH2Ol2b:I,J,MYPE,N-1,N,N+1, STCK(N-1),STCK(N),STCK 1203 *(N+1), =', 1204 . I,J,MYPE,indexm,index,indexp, 1205 . STCK(indexm),STCK(index),STCK(indexp) 1206 IERR1=1 1207 ENDIF 1208 ENDIF 1209 C ---------------------------------------------------------------------- 1210 END DO 1211 C ---------------------------------------------------------------------- 1212 C Soil column bottom temp (TBOT) check 1213 c IF ((TBOT .LT. 223.15) .OR. (TBOT .GT. 323.15)) THEN 1214 IF ((TBOT .LT. 200.00) .OR. (TBOT .GT. 323.15)) THEN 1215 write(6,*)'TBOTl:INDEX,I,J,MYPE,TBOT=', 1216 . index,I,J,MYPE,TBOT 1217 IERR2=1 1218 ENDIF 1219 C ---------------------------------------------------------------------- 1220 C sfc/skin temp (T1K) check 1221 c IF ((T1K .LT. 223.15) .OR. (T1K .GT. 323.15)) THEN 1222 IF ((T1K .LT. 200.00) .OR. (T1K .GT. 323.15)) THEN 1223 write(6,*)'T1:INDEX,I,J,MYPE,T1=', 1224 . index,I,J,MYPE,T1K 1225 IERR2=1 Page 18 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 1226 ENDIF 1227 C ---------------------------------------------------------------------- 1228 C Canopy water content (CMC) check 1229 IF ((CMCK .LT. 0.) .OR. (CMCK .GT. 0.5E-3)) THEN 1230 write(6,*)'CMC:INDEX,I,J,MYPE,CMC=', 1231 . index,I,J,MYPE,CMCK 1232 IERR1=1 1233 ENDIF 1234 C ---------------------------------------------------------------------- 1235 C Snow water equivalent, snow depth check 1236 IF (((SNODPK .GT. 0.) .AND. (SNOWH .LT. 1.0E-09)) .OR. 1237 . ((SNODPK .LT. 1.0E-09) .AND. (SNOWH .GT. 0.)) .OR. 1238 . (SNODPK .GT. SNOWH)) THEN 1239 WRITE(6,*)'SNOW:I,J,MYPE,SNODPK,SNOWH=', 1240 . I,J,MYPE,SNODPK,SNOWH 1241 IERR1=1 1242 ENDIF 1243 C ---------------------------------------------------------------------- 1244 C Snow density check 1245 IF (SNODPK .GT. 0.) THEN 1246 SNDENS=SNODPK/SNOWH 1247 IF (SNDENS .LT. 0.05) THEN 1248 WRITE(6,*)'SNDENS<5%:I,J,MYPE,SNODPK,SNOWH,SNDENS=', 1249 . I,J,MYPE,SNODPK,SNOWH,SNDENS 1250 IERR1=1 1251 ENDIF 1252 IF (SNDENS .GT. 0.42) THEN 1253 WRITE(6,*)'SNDENS>42%:I,J,MYPE,SNODPK,SNOWH,SNDENS=', 1254 . I,J,MYPE,SNODPK,SNOWH,SNDENS 1255 IERR1=1 1256 ENDIF 1257 ENDIF 1258 C ---------------------------------------------------------------------- 1259 C end land checks 1260 C ---------------------------------------------------------------------- 1261 ELSE 1262 C ---------------------------------------------------------------------- 1263 C sea-ice checks next 1264 C ---------------------------------------------------------------------- 1265 C sea-ice bottom temp (TBOT) check 1266 IF ( (TBOT .LT. 271.159) .OR. 1267 . (TBOT .GT. 271.161) ) THEN 1268 WRITE(6,*)'TBOTi:INDEX,I,J,MYPE,TBOT=', 1269 . index,I,J,MYPE,TBOT 1270 ENDIF 1271 C ---------------------------------------------------------------------- 1272 C sea-ice temp with depth (STC) range check 1273 DO index=1,4 1274 c IF ((STCK(index) .LT. 223.15) .OR. 1275 IF ((STCK(index) .LT. 200.00) .OR. 1276 c . (STCK(index) .GT. 323.15)) THEN 1277 . (STCK(index) .GT. 274.15)) THEN 1278 write(6,*)'STCi:INDEX,I,J,MYPE,STC=', 1279 . index,I,J,MYPE,STCK(index) 1280 IERR1=2 1281 ENDIF 1282 END DO Page 19 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 1283 C ---------------------------------------------------------------------- 1284 C sfc/skin temp (T1K) check 1285 c IF ((T1K .LT. 223.15) .OR. (T1K .GT. 323.15)) THEN 1286 IF ((T1K .LT. 200.00) .OR. (T1K .GT. 323.15)) THEN 1287 write(6,*)'T1:INDEX,I,J,MYPE,ICE,T1=', 1288 . index,I,J,MYPE,ICE,T1K 1289 IERR2=1 1290 ENDIF 1291 C ---------------------------------------------------------------------- 1292 C Snow water equivalent, snow depth check 1293 IF (((SNODPK .GT. 0.) .AND. (SNOWH .LT. 1.0E-09)) .OR. 1294 . ((SNODPK .LT. 1.0E-09) .AND. (SNOWH .GT. 0.)) .OR. 1295 . (SNODPK .GT. SNOWH)) THEN 1296 WRITE(6,*)'SNOW:I,J,MYPE,SNODPK,SNOWH=', 1297 . I,J,MYPE,SNODPK,SNOWH 1298 IERR1=1 1299 ENDIF 1300 C ---------------------------------------------------------------------- 1301 C Snow density check 1302 IF (SNODPK .GT. 0.) THEN 1303 SNDENS=SNODPK/SNOWH 1304 IF (SNDENS .LT. 0.05) THEN 1305 WRITE(6,*)'SNDENS<5%:I,J,MYPE,SNODPK,SNOWH,SNDENS=', 1306 . I,J,MYPE,SNODPK,SNOWH,SNDENS 1307 IERR1=1 1308 ENDIF 1309 IF (SNDENS .GT. 0.42) THEN 1310 WRITE(6,*)'SNDENS>42%:I,J,MYPE,SNODPK,SNOWH,SNDENS=', 1311 . I,J,MYPE,SNODPK,SNOWH,SNDENS 1312 IERR1=1 1313 ENDIF 1314 ENDIF 1315 C ---------------------------------------------------------------------- 1316 c Check to see that when sea-ice, ALBASE=ALBEDO=0.65,MXSNAL=0, 1317 IF ( (ALB .NE. 0.0 ) .OR. 1318 . (ALBEDO(I,J) .LT. 0.64) .OR. 1319 . (ALBEDO(I,J) .GT. 0.66) .OR. 1320 . (SNOALB .NE. 0.0 ) ) THEN 1321 WRITE(6,*)'ALBi:I,J,MYPE,ICE,SNODPK,ALB,ALB2D,SNOALB=', 1322 . I,J,MYPE,ICE,SNODPK,ALB,ALBEDO(I,J),SNOALB 1323 IERR1=1 1324 ENDIF 1325 C ---------------------------------------------------------------------- 1326 c Check to see that when sea-ice, SH2O=SMC=1.0 1327 DO index=1,4 1328 IF ( (SMCK(index) .NE. 1.0) .OR. 1329 . (SMCK(index) .NE. SH2OK(index)) ) THEN 1330 write(6,*)'SMCi:INDEX,I,J,MYPE,ICE,STCK,SMC,SH2O=', 1331 . index,I,J,MYPE,ICE,STCK(index),SMCK(index),SH2OK(index) 1332 IERR1=1 1333 ENDIF 1334 END DO 1335 C ---------------------------------------------------------------------- 1336 C check to see that veg type=soil type=veg frac=0 1337 IF ( (IVGTYP(I,J) .NE. 0 ) .OR. 1338 . (ISLTYP(I,J) .NE. 0 ) .OR. 1339 . (VGFRCK .GT. 0.) ) THEN Page 20 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 1340 WRITE(6,*)'IVGTYPi:I,J,MYPE,IVGTYP,ISLTYP,VGFRCK=', 1341 . I,J,MYPE,IVGTYP(I,J),ISLTYP(I,J),VGFRCK 1342 WRITE(6,*)'IVGTYPi:I,J,MYPE,SNODPK,ALB,ALBEDO,SNOALB=', 1343 . I,J,MYPE,SNODPK,ALB,ALBEDO(I,J),SNOALB 1344 ENDIF 1345 C ---------------------------------------------------------------------- 1346 C end sea-ice checks 1347 C end of separate land AND sea-ice checks 1348 C ---------------------------------------------------------------------- 1349 ENDIF 1350 C ---------------------------------------------------------------------- 1351 C both land AND sea-ice checks 1352 C Snow water equivalent, snow depth check 1353 IF (((SNODPK .GT. 0.) .AND. (SNOWH .LE. 0.)) .OR. 1354 . ((SNODPK .LE. 0.) .AND. (SNOWH .GT. 0.)) .OR. 1355 . (SNODPK .GT. SNOWH)) THEN 1356 WRITE(6,*)'SNOW:I,J,MYPE,SNODPK,SNOWH=', 1357 . I,J,MYPE,SNODPK,SNOWH 1358 IERR1=1 1359 ENDIF 1360 C ---------------------------------------------------------------------- 1361 C Snow density check 1362 IF (SNODPK .GT. 0.) THEN 1363 SNDENS=SNODPK/SNOWH 1364 IF (SNDENS .LT. 0.05) THEN 1365 WRITE(6,*)'SNDENS<5%:I,J,MYPE,SNODPK,SNOWH,SNDENS=', 1366 . I,J,MYPE,SNODPK,SNOWH,SNDENS 1367 IERR1=1 1368 ENDIF 1369 IF (SNDENS .GT. 0.42) THEN 1370 WRITE(6,*)'SNDENS>42%:I,J,MYPE,SNODPK,SNOWH,SNDENS=', 1371 . I,J,MYPE,SNODPK,SNOWH,SNDENS 1372 IERR1=1 1373 ENDIF 1374 ENDIF 1375 C ---------------------------------------------------------------------- 1376 C sfc/skin temp (T1K) check 1377 c IF ((T1K .LT. 223.15) .OR. (T1K .GT. 323.15)) THEN 1378 IF ((T1K .LT. 200.00) .OR. (T1K .GT. 323.15)) THEN 1379 write(6,*)'T1:INDEX,I,J,MYPE,T1=', 1380 . index,I,J,MYPE,T1K 1381 IERR2=1 1382 ENDIF 1383 C ---------------------------------------------------------------------- 1384 c check to see that 223.15K (-50C) =< SFCTMP,SFCTH2 <= 323.15K (+50C) 1385 C SFCTMP = lowest model level temp 1386 C SFCTH2 = lowest model level pot temp 1387 IF ( ( (SFCTMP .LT. 223.15) .OR. (SFCTMP .GT. 323.15) ) .OR. 1388 . ( (SFCTH2 .LT. 223.15) .OR. (SFCTH2 .GT. 323.15) ) ) THEN 1389 WRITE(6,*)'SFCTMP:I,J,MYPE,SFCTMP,SFCTH2=', 1390 . I,J,MYPE,SFCTMP,SFCTH2 1391 ENDIF 1392 C ---------------------------------------------------------------------- 1393 c check to see that 0W/m2 =< LWDN <= 500W/m2 1394 c check to see that 0W/m2 =< SOLDN <= 1200W/m2 1395 C LWDN = downward longwave radiation 1396 C SOLDN = downward solar radiation Page 21 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 1397 IF ( ( (LWDN .LT. 0.) .OR. (LWDN .GT. 500.) ) .OR. 1398 . ( (SOLDN .LT. 0.) .OR. (SOLDN .GT. 1200.) ) ) THEN 1399 WRITE(6,*)'LWSOLDN:I,J,MYPE,LWDN,SOLDN=', 1400 . I,J,MYPE,LWDN,SOLDN 1401 ENDIF 1402 C ---------------------------------------------------------------------- 1403 c check to see that 0g/kg < Q2K,Q2SAT <= 40g/kg 1404 c check to see that Q2K <= Q2SAT 1405 C Q2K = lowest model level spec hum 1406 C Q2SAT = lowest model level sat spec hum 1407 c IF ( ( (Q2K .LE. 0.) .OR. (Q2K .GT. 0.04) ) .OR. 1408 c . ( (Q2SAT .LE. 0.) .OR. (Q2SAT .GT. 0.04) ) .OR. 1409 IF ( ( (Q2K .LE. 0.) .OR. (Q2K .GT. 0.05) ) .OR. 1410 . ( (Q2SAT .LE. 0.) .OR. (Q2SAT .GT. 0.05) ) .OR. 1411 . (Q2K .GT. Q2SAT) ) THEN 1412 WRITE(6,*)'Q2:I,J,MYPE,Q2K,Q2SAT=', 1413 . I,J,MYPE,Q2K,Q2SAT 1414 ENDIF 1415 C ---------------------------------------------------------------------- 1416 c check to see that 600mb =< SFCPRS <= 1050mb 1417 C SFCPRS = surface pressure (Pa) 1418 IF ( (SFCPRS .LE. 60000.) .OR. (SFCPRS .GT. 105000.) ) THEN 1419 WRITE(6,*)'SFCPRS:I,J,MYPE,SFCPRS=', 1420 . I,J,MYPE,SFCPRS 1421 ENDIF 1422 C ---------------------------------------------------------------------- 1423 c check to see that 0 =< PRCP <= 0.04 KG M-2 S-1 (=0.04mm/s = 144mm/hr) 1424 C PRCP = precip rate (KG M-2 S-1) 1425 IF ( (PRCP .LT. 0.) .OR. (PRCP .GT. 0.04) ) THEN 1426 WRITE(6,*)'PRCP:I,J,MYPE,PRCP=', 1427 . I,J,MYPE,PRCP 1428 ENDIF 1429 C ---------------------------------------------------------------------- 1430 c check to see that 0m/s < CHK <= 0.1m/s 1431 C CHK = sfc heat exchange coeff (m/s) 1432 IF ( (CHK .LE. 0.) .OR. (CHK .GT. 0.1) ) THEN 1433 WRITE(6,*)'CH:I,J,MYPE,CHK=', 1434 . I,J,MYPE,CHK 1435 ENDIF 1436 C ---------------------------------------------------------------------- 1437 IF (IERR2 .EQ. 1) THEN 1438 WRITE(6,*) 'RANGE CHECK IN SURFCE: EXTREME VALUES AFTER SFLX' 1439 ENDIF 1440 IF (IERR1 .EQ. 1) THEN 1441 c WRITE(6,*) 'RANGE CHECK FAILURE IN SURFCE - STOP' 1442 c STOP 1443 ENDIF 1444 C ---------------------------------------------------------------------- 1445 C End of initial (logical LFIRST) range check for variables/parameters. 1446 ENDIF 1447 C ---------------------------------------------------------------------- 1448 1449 SCHECK=Z*CHK 1450 IF(SCHECK.LE.1.3E-3)THEN 1451 PLFLX=0. 1452 ELFLX=0. 1453 ENDIF Page 22 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 1454 C*** 1455 C*** GCIP DIAGNOSTICS & MODIFICATION OF QFC1 OVER SNOW 1456 C*** 1457 SSROFF(I,J)=SSROFF(I,J)+RNOF1K*DTQ2 1458 BGROFF(I,J)=BGROFF(I,J)+RNOF2K*DTQ2 1459 SMSTAV(I,J)=SOILQW 1460 SOILTB(I,J)=TBOT 1461 SFCEXC(I,J)=CHK 1462 GRNFLX(I,J)=GFLX 1463 IF(SNO (I,J).GT.0..OR.SICE(I,J).GT.0.5)THEN 1464 QFC1(I,J)=QFC1(I,J)*RLIVWV 1465 ENDIF 1466 IF(SNO(I,J).GT.0.)THEN 1467 ACSNOM(I,J)=ACSNOM(I,J)+SMELTK 1468 SNOPCX(I,J)=SNOPCX(I,J)-SMELTK/FDTLIW 1469 ENDIF 1470 POTEVP(I,J)=POTEVP(I,J)+PLFLX*FDTW 1471 POTFLX(I,J)=POTFLX(I,J)-PLFLX 1472 SUBSHX(I,J)=SUBSHX(I,J)+GFLX 1473 C*** 1474 C*** ETA MODEL LOWER BOUNDARY CONDITIONS 1475 C*** 1476 C THS(I,J)=THLM(I,J)+HFLX*APES(I,J)/FFS(I,J) 1477 THS(I,J)=T1K*APES(I,J) 1478 IF(QFC1(I,J).GT.0.) 1479 1 QS(I,J)=QLM(I,J)+ELFLX*APES(I,J)/QFC1(I,J) 1480 C*** 1481 C*** HISTORICAL VARIABLES 1482 C*** 1483 c dynamic albedo, ALBEDO, to be passed to RADTN.f 1484 ALBEDO(I,J)=ALB2D 1485 SNO(I,J)=SNODPK 1486 c snow depth, SI 1487 SI(I,J)=SNOWH 1488 CMC(I,J)=CMCK 1489 SMSTOT(I,J)=SOILQM 1490 DO 150 NS=1,NSOIL 1491 SMC(I,J,NS)=SMCK(NS) 1492 c SH2O array (liquid soil moisture) 1493 SH2O(I,J,NS)=SH2OK(NS) 1494 STC(I,J,NS)=STCK(NS) 1495 150 CONTINUE 1496 ENDIF 1497 C 1498 155 CONTINUE 1499 160 CONTINUE 1500 C ---------------------------------------------------------------------- 1501 C Set LFIRST=false so that there are not variable/parameter range checks 1502 C for the next 155/160 loop 1503 LFIRSTa = .FALSE. 1504 LFIRST = .FALSE. 1505 C 1506 C*** VARIABLES TWBS AND QWBS COMPUTED HERE FOR GCIP. 1507 C*** ACCUMULATE SURFACE HEAT FLUXES HERE. 1508 C*** FOR GCIP ACCUMULATE ACTUAL AND POTENTIAL EVAPORATION. 1509 C*** FOR GCIP ACCUMULATE TOTAL SNOW MELT AND 1510 C*** THE ASSOCIATED NET HEAT FLUX. Page 23 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 1511 C 1512 !$omp parallel do private(i,j) 1513 DO 200 J=MYJS2,MYJE2 1514 DO 200 I=MYIS,MYIE 1515 TWBS(I,J)=(THLM(I,J)-THS(I,J)*(1.-SM(I,J))-THZ0(I,J)*SM(I,J)) 1516 1 *FFS (I,J)/APES(I,J) 1517 QWBS(I,J)=(QLM (I,J)-QS (I,J)*(1.-SM(I,J))-QZ0 (I,J)*SM(I,J)) 1518 1 *QFC1(I,J)/APES(I,J) 1519 SFCSHX(I,J)=SFCSHX(I,J)+TWBS(I,J) 1520 SFCLHX(I,J)=SFCLHX(I,J)+QWBS(I,J) 1521 SFCEVP(I,J)=SFCEVP(I,J)-QWBS(I,J)*FDTW 1522 POTEVP(I,J)=POTEVP(I,J)-QWBS(I,J)*SM(I,J)*FDTW 1523 POTFLX(I,J)=POTFLX(I,J)+QWBS(I,J)*SM(I,J) 1524 C 1525 C*** IF COLD ENOUGH, IT SNOWS (IN NOAH LSM)... 1526 C*** FOR GCIP ACCUMULATE TOTAL SNOWFALL. 1527 C 1528 IF(THLM(I,J)/APELM(I,J).LE.T0.AND.SICE(I,J)+SM(I,J).LT.0.5)THEN 1529 ACSNOW(I,J)=ACSNOW(I,J)+PREC(I,J) 1530 C*** 1531 C*** ... OTHERWISE IT RAINS. 1532 C*** 1533 ELSE 1534 ACCLIQ(I,J)=ACCLIQ(I,J)+PREC(I,J) 1535 ENDIF 1536 C 1537 PREC(I,J)=0. 1538 200 CONTINUE 1539 C*** 1540 C*** LONGWAVE OUTGOING RADIATION 1541 C*** 1542 !$omp parallel do private(i,j,tsfc,tsfc2) 1543 DO 210 J=MYJS2,MYJE2 1544 DO 210 I=MYIS,MYIE 1545 TSFC=THS(I,J)/APES(I,J) 1546 TSFC2=TSFC*TSFC 1547 RADOT(I,J)=HBM2(I,J)*EPSR(I,J)*STBOL*TSFC2*TSFC2 1548 210 CONTINUE 1549 C 1550 C----------------------------------------------------------------------- 1551 C 1552 C INCREMENT TIME STEP COUNTERS FOR USE IN COMPUTING TIME AVE VALUES 1553 C 1554 APHTIM = APHTIM + 1. 1555 ARDSW = ARDSW + 1. 1556 ARDLW = ARDLW + 1. 1557 ASRFC = ASRFC + 1. 1558 C----------------------------------------------------------------------- 1559 RETURN 1560 END Page 24 Source Listing SURFCE 2025-03-12 18:22 Entry Points SURFCE.F ENTRY POINTS Name surfce_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References 100 Label 542 534,535 110 Label 556 545,546 120 Label 605 559,560 130 Label 615 611,612 140 Label 722 708 150 Label 1495 1490 155 Label 1498 639,641 160 Label 1499 638 200 Label 1538 1513,1514 210 Label 1548 1543,1544 50 Label 527 478,479 A2 Param 61 R(4) 4 scalar 67,551,657 A23M4 Param 67 R(4) 4 scalar 552 A3 Param 61 R(4) 4 scalar 67,551,657 A4 Param 61 R(4) 4 scalar 67,551,552,657 ACMPRE Common 368 287284 SAVE ACMRDL Common 397 3662832 SAVE ACMRDS Common 387 3662832 SAVE ACMSFC Common 376 574576 SAVE ALB Local 201 R(4) 4 scalar 744,776,777,780,783,784,788,967,97 2,993,1103,1128,1129,1132,1135,113 6,1140,1317,1322,1343 ALB2D Local 202 R(4) 4 scalar 1104,1484 APE Dummy 2 R(4) 4 3 807975 ARG,INOUT 538 APELM Local 175 R(4) 4 2 17955 538,613,698,1528 APES Local 173 R(4) 4 2 17955 481,548,554,655,657,699,700,1477,1 479,1516,1518,1545 CAPA Param 62 R(4) 4 scalar 481,548 CHK Local 207 R(4) 4 scalar 688,1082,1084,1104,1432,1434,1449, 1461 CHKFF Local 689 R(4) 4 scalar 689 CKLQ Dummy 2 R(4) 4 2 17955 ARG,INOUT 601,603,614 CMCK Local 208 R(4) 4 scalar 701,879,881,1104,1229,1231,1488 CMK Local 1104 R(4) 4 scalar 1104 CP Param 63 R(4) 4 scalar 555 CTLBLK Common 254 112 SAVE DQSDT Local 178 R(4) 4 2 17955 552,686 DQSDTK Local 205 R(4) 4 scalar 686,1101 DTK Local 206 R(4) 4 scalar 671,1100 DUM1 Local 1106 R(4) 4 scalar 1106 DUM2 Local 1106 R(4) 4 scalar 1106 DUM3 Local 1106 R(4) 4 scalar 1106 DUM4 Local 1106 R(4) 4 scalar 1106 ELFLX Local 209 R(4) 4 scalar 1105,1452,1479 Page 25 Source Listing SURFCE 2025-03-12 18:22 Symbol Table SURFCE.F Name Object Declared Type Bytes Dimen Elements Attributes References ELIV Param 64 R(4) 4 scalar 68 ELIW Param 64 R(4) 4 scalar 68 ELWV Param 64 R(4) 4 scalar 68,554 EPSWET Param 59 R(4) 4 scalar ETALM Local 174 R(4) 4 2 17955 537,549 EXP Func 551 scalar 551,657 FACTRL Local 573 R(4) 4 scalar 573,575,586,594 FACTRS Local 566 R(4) 4 scalar 566,568,587,591,592,593 FDTLIV Local 469 R(4) 4 scalar 469 FDTLIW Local 468 R(4) 4 scalar 468,1468 FDTW Local 470 R(4) 4 scalar 470,1470,1521,1522 FFS Local 180 R(4) 4 2 17955 555,689,1516 FFSK Local 553 R(4) 4 scalar 553,554,555 GFLX Local 210 R(4) 4 scalar 1105,1462,1472 GLB_TABLE Common 143 128 SAVE HFLX Local 211 R(4) 4 scalar 1105 I Local 479 I(4) 4 scalar 479,480,481,482,491,492,494,495,49 6,497,498,500,501,506,507,508,509, 510,511,512,513,514,515,516,517,51 9,521,522,523,535,536,537,538,539, 540,541,546,547,548,549,550,551,55 2,553,554,555,560,565,566,571,572, 573,586,587,591,592,593,594,595,59 6,600,601,603,612,613,614,639,641, 643,644,645,646,647,649,654,655,65 6,657,665,667,672,676,677,678,679, 680,681,686,687,688,689,690,691,69 6,697,698,699,700,701,702,706,709, 715,718,741,744,777,778,780,788,79 9,815,823,831,839,842,850,853,866, 874,881,890,899,904,919,929,938,94 7,956,961,968,969,972,981,987,988, 991,993,1007,1016,1021,1030,1040,1 050,1063,1070,1077,1084,1129,1130, 1132,1140,1151,1166,1174,1182,1190 ,1193,1201,1204,1216,1224,1231,124 0,1249,1254,1269,1279,1288,1297,13 06,1311,1318,1319,1322,1331,1337,1 338,1341,1343,1357,1366,1371,1380, 1390,1400,1413,1420,1427,1434,1457 ,1458,1459,1460,1461,1462,1463,146 4,1466,1467,1468,1470,1471,1472,14 77,1478,1479,1484,1485,1487,1488,1 489,1491,1493,1494,1514,1515,1516, 1517,1518,1519,1520,1521,1522,1523 ,1528,1529,1534,1537,1544,1545,154 7 ICE Local 195 I(4) 4 scalar 649,667,765,780,788,831,938,972,98 1,1100,1117,1132,1140,1288,1322,13 31 IDIM1 Param 91 I(4) 4 scalar 172,173,174,175,176,177,178,179,18 0,181,182,265,272,273,275,276,277, 294,295,296,297,298,299,300,301,30 2,303,304,313,315,316,317,324,325, 326,327,328,329,330,331,332,333,33 Page 26 Source Listing SURFCE 2025-03-12 18:22 Symbol Table SURFCE.F Name Object Declared Type Bytes Dimen Elements Attributes References 4,335,336,337,338,339,340,342,347, 355,356,357,358,359,360,361,362,37 0,371,378,379,380,381,389,390,391, 392,399,400,401,402 IDIM2 Param 91 I(4) 4 scalar 172,173,174,175,176,177,178,179,18 0,181,182,265,272,273,275,276,277, 294,295,296,297,298,299,300,301,30 2,303,304,313,315,316,317,324,325, 326,327,328,329,330,331,332,333,33 4,335,336,337,338,339,340,342,347, 355,356,357,358,359,360,361,362,37 0,371,378,379,380,381,389,390,391, 392,399,400,401,402 IERR1 Local 457 I(4) 4 scalar 457,650,781,789,800,816,824,832,84 4,855,891,900,905,948,957,962,973, 982,1090,1133,1141,1152,1167,1175, 1183,1195,1206,1232,1241,1250,1255 ,1280,1298,1307,1312,1323,1332,135 8,1367,1372,1440 IERR2 Local 458 I(4) 4 scalar 458,867,875,939,1087,1217,1225,128 9,1381,1437 IGSTL Param 86 I(4) 4 scalar 91 IGSTR Param 86 I(4) 4 scalar 91 IM Param 75 I(4) 4 scalar 88,91,149,150,151,152,153,157,158, 163 INDEX Local 803 I(4) 4 scalar 803,807,808,812,813,815,820,821,82 3,828,829,831,836,837,839,842,843, 846,848,850,853,854,866,874,881,91 9,923,925,927,929,938,977,978,979, 981,1030,1155,1158,1159,1163,1164, 1166,1171,1172,1174,1179,1180,1182 ,1187,1188,1190,1193,1194,1197,119 9,1201,1204,1205,1216,1224,1231,12 69,1273,1275,1277,1279,1288,1327,1 328,1329,1331,1380 INDEXM Local 808 I(4) 4 scalar 808,842,843,853,854,1159,1193,1194 ,1204,1205 INDEXP Local 807 I(4) 4 scalar 807,842,843,853,854,1158,1193,1194 ,1204,1205 INPES Param 83 I(4) 4 scalar 88,91,133,134,135,144,145 ISLTPK Local 196 I(4) 4 scalar 691,694,794,799,1102,1146,1151 ISPTPK Local 199 I(4) 4 scalar 634,795,799,1102,1147,1151 ITAIL Param 88 I(4) 4 scalar ITB Param 96 I(4) 4 scalar 291,306 ITBQ Param 96 I(4) 4 scalar 292,306 IVGTPK Local 197 I(4) 4 scalar 690,693,793,799,1102,1145,1151 J Local 478 I(4) 4 scalar 478,480,481,482,491,492,494,495,49 6,497,498,500,501,506,507,508,509, 510,511,512,513,514,515,516,517,51 9,521,522,523,534,536,537,538,539, 540,541,545,547,548,549,550,551,55 2,553,554,555,559,565,566,571,572, 573,586,587,591,592,593,594,595,59 6,600,601,603,611,613,614,638,641, 643,644,645,646,647,649,654,655,65 Page 27 Source Listing SURFCE 2025-03-12 18:22 Symbol Table SURFCE.F Name Object Declared Type Bytes Dimen Elements Attributes References 6,657,665,667,672,676,677,678,679, 680,681,686,687,688,689,690,691,69 6,697,698,699,700,701,702,706,709, 715,718,741,744,777,778,780,788,79 9,815,823,831,839,842,850,853,866, 874,881,890,899,904,919,929,938,94 7,956,961,968,969,972,981,987,988, 991,993,1007,1016,1021,1030,1040,1 050,1063,1070,1077,1084,1129,1130, 1132,1140,1151,1166,1174,1182,1190 ,1193,1201,1204,1216,1224,1231,124 0,1249,1254,1269,1279,1288,1297,13 06,1311,1318,1319,1322,1331,1337,1 338,1341,1343,1357,1366,1371,1380, 1390,1400,1413,1420,1427,1434,1457 ,1458,1459,1460,1461,1462,1463,146 4,1466,1467,1468,1470,1471,1472,14 77,1478,1479,1484,1485,1487,1488,1 489,1491,1493,1494,1513,1515,1516, 1517,1518,1519,1520,1521,1522,1523 ,1528,1529,1534,1537,1543,1545,154 7 JAM Param 166 I(4) 4 scalar 264 JDIM1 Param 92 I(4) 4 scalar 172,173,174,175,176,177,178,179,18 0,181,182,265,272,273,275,276,277, 294,295,296,297,298,299,300,301,30 2,303,304,313,315,316,317,324,325, 326,327,328,329,330,331,332,333,33 4,335,336,337,338,339,340,342,347, 355,356,357,358,359,360,361,362,37 0,371,378,379,380,381,389,390,391, 392,399,400,401,402 JDIM2 Param 92 I(4) 4 scalar 172,173,174,175,176,177,178,179,18 0,181,182,265,272,273,275,276,277, 294,295,296,297,298,299,300,301,30 2,303,304,313,315,316,317,324,325, 326,327,328,329,330,331,332,333,33 4,335,336,337,338,339,340,342,347, 355,356,357,358,359,360,361,362,37 0,371,378,379,380,381,389,390,391, 392,399,400,401,402 JGSTL Param 87 I(4) 4 scalar 92 JGSTR Param 87 I(4) 4 scalar 92 JM Param 75 I(4) 4 scalar 89,92,149,150,151,152,153,157,158, 163,166 JNPES Param 83 I(4) 4 scalar 89,92,133,134,135,144,145 JTAIL Param 89 I(4) 4 scalar JTB Param 96 I(4) 4 scalar 291,306 JTBQ Param 96 I(4) 4 scalar 306 LFIRST Local 192 L(4) 4 scalar 449,756,1504 LFIRSTA Local 193 L(4) 4 scalar 451,1108,1503 LLMH Local 536 I(4) 4 scalar 536,537,538,539,540,541 LM Param 75 I(4) 4 scalar 158,166,181,275,276,290,315,316,34 2,392,402 LOOPS Common 263 158840 SAVE Page 28 Source Listing SURFCE 2025-03-12 18:22 Symbol Table SURFCE.F Name Object Declared Type Bytes Dimen Elements Attributes References LP1 Param 166 I(4) 4 scalar 182,290 LSM Param 75 I(4) 4 scalar LWDN Local 212 R(4) 4 scalar 676,1047,1050,1101,1397,1400 MAPPINGS Common 162 5024 SAVE MASKS Common 271 6894720 SAVE MAX Func 808 scalar 808,1159 MIN Func 807 scalar 807,1158 MPPCOM Common 107 1464 SAVE NINT Func 667 scalar 667 NROOT Param 98 I(4) 4 scalar NS Local 499 I(4) 4 scalar 499,500,501,520,521,522,523,708,70 9,715,718,1490,1491,1493,1494 NSOIL Param 98 I(4) 4 scalar 186,360,361,362,499,520,708,797,80 3,807,1100,1149,1155,1158,1490 OPTIONS Common 445 24 SAVE PHYS Common 285 1788916 SAVE PLFLX Local 214 R(4) 4 scalar 1105,1451,1470,1471 PLM Local 174 R(4) 4 2 17955 549,551,553,678 PQ0 Param 60 R(4) 4 scalar 67,550 PQ0C Param 67 R(4) 4 scalar PQ0SEA Param 67 R(4) 4 scalar 550,656 PRCP Local 215 R(4) 4 scalar 679,1075,1077,1101,1425,1427 PS Local 173 R(4) 4 2 17955 480,481,547,548,656 PTU Local 216 R(4) 4 scalar 1103 PVRBLS Common 323 5530140 SAVE Q1K Local 217 R(4) 4 scalar 697,1105 Q2K Local 218 R(4) 4 scalar 680,685,1059,1061,1063,1101,1409,1 411,1413 Q2SAT Local 219 R(4) 4 scalar 681,685,1060,1061,1063,1101,1410,1 411,1413 QFC1 Local 180 R(4) 4 2 17955 554,614,1464,1478,1479,1518 QLM Local 177 R(4) 4 2 17955 462,463,540,553,600,680,1479,1517 QLMS Local 177 R(4) 4 2 17955 464,550,552,600,681 R Param 63 R(4) 4 scalar 553 RDSIN Local 175 R(4) 4 2 17955 587,677 RLIVWV Param 68 R(4) 4 scalar 1464 RNOF1K Local 220 R(4) 4 scalar 1105,1457 RNOF2K Local 221 R(4) 4 scalar 1105,1458 ROW Param 63 R(4) 4 scalar 68,679 ROWLIV Param 68 R(4) 4 scalar 469 ROWLIW Param 68 R(4) 4 scalar 468 SCHECK Local 1449 R(4) 4 scalar 1449,1450 SEAFC Param 60 R(4) 4 scalar 67 SFCPRS Local 222 R(4) 4 scalar 678,1068,1070,1101,1418,1420 SFCSPD Local 223 R(4) 4 scalar 1101 SFCTH2 Local 224 R(4) 4 scalar 699,1038,1040,1101,1388,1390 SFCTMP Local 225 R(4) 4 scalar 698,1037,1040,1101,1387,1390 SFLX Subr 1099 1099 SH2OK Local 186 R(4) 4 1 4 715,823,828,829,831,837,839,848,85 0,979,981,1104,1174,1179,1180,1182 ,1188,1190,1199,1201,1329,1331,149 3 SINGLRST Local 252 L(4) 4 scalar SMCK Local 186 R(4) 4 1 4 709,820,821,823,829,831,837,839,84 8,850,978,979,981,1104,1171,1172,1 Page 29 Source Listing SURFCE 2025-03-12 18:22 Symbol Table SURFCE.F Name Object Declared Type Bytes Dimen Elements Attributes References 174,1180,1182,1188,1190,1199,1201, 1328,1329,1331,1491 SMELTK Local 230 R(4) 4 scalar 1105,1467,1468 SNDENS Local 231 R(4) 4 scalar 896,897,899,902,904,953,954,956,95 9,961,1013,1014,1016,1019,1021,124 6,1247,1249,1252,1254,1303,1304,13 06,1309,1311,1363,1364,1366,1369,1 371 SNOALB Local 233 R(4) 4 scalar 741,776,778,780,785,786,788,970,97 2,993,1103,1128,1130,1132,1137,113 8,1140,1320,1322,1343 SNODPK Local 234 R(4) 4 scalar 702,780,788,886,887,888,890,895,89 6,899,904,943,944,945,947,952,953, 956,961,972,993,1003,1004,1005,100 7,1012,1013,1016,1021,1104,1132,11 40,1236,1237,1238,1240,1245,1246,1 249,1254,1293,1294,1295,1297,1302, 1303,1306,1311,1322,1343,1353,1354 ,1355,1357,1362,1363,1366,1371,148 5 SNOWH Local 235 R(4) 4 scalar 706,886,887,888,890,896,899,904,94 3,944,945,947,953,956,961,1003,100 4,1005,1007,1013,1016,1021,1104,12 36,1237,1238,1240,1246,1249,1254,1 293,1294,1295,1297,1303,1306,1311, 1353,1354,1355,1357,1363,1366,1371 ,1487 SOIL Common 354 1651892 SAVE SOILQM Local 236 R(4) 4 scalar 1106,1489 SOILQW Local 237 R(4) 4 scalar 1106,1459 SOLDN Local 238 R(4) 4 scalar 677,1048,1050,1101,1398,1400 STBOL Param 63 R(4) 4 scalar 573,1547 STCK Local 186 R(4) 4 1 4 718,812,813,815,823,831,836,839,84 3,846,850,854,925,927,929,981,1104 ,1163,1164,1166,1174,1182,1187,119 0,1194,1197,1201,1205,1275,1277,12 79,1331,1494 SURFCE Subr 2 T0 Param 62 R(4) 4 scalar 836,846,1187,1197,1528 T1 Param 62 R(4) 4 scalar T1K Local 240 R(4) 4 scalar 700,872,874,936,938,1028,1030,1104 ,1222,1224,1286,1288,1378,1380,147 7 TBOT Local 241 R(4) 4 scalar 687,864,866,916,917,919,1103,1214, 1216,1266,1267,1269,1460 TEMPCOM Common 148 6603768 SAVE THLM Local 176 R(4) 4 2 17955 613,698,699,1515,1528 TLM Local 176 R(4) 4 2 17955 539,551,552,553,572,613 TLMH Local 572 R(4) 4 scalar 572,573 TOPO Common 156 17478548 SAVE TRESH Param 60 R(4) 4 scalar 67,600 TSFC Local 1545 R(4) 4 scalar 1545,1546 TSFC2 Local 1546 R(4) 4 scalar 1546,1547 VGFRCK Local 242 R(4) 4 scalar 696,796,799,989,991,1103,1148,1151 ,1339,1341 Page 30 Source Listing SURFCE 2025-03-12 18:22 Symbol Table SURFCE.F Name Object Declared Type Bytes Dimen Elements Attributes References VRBLS Common 312 13143060 SAVE WORD Local 448 CHAR 80 scalar Z Local 243 R(4) 4 scalar 672,1100,1449 ZERO2 Subr 462 462,463,464 ZINT Dummy 2 R(4) 4 3 825930 ARG,INOUT 541 ZLM Local 172 R(4) 4 2 17955 541,672 TYPE COMPONENTS/COMMON VARIABLES Name Type Bytes Offset Dimen Elements Attributes References ACCLIQ R(4) 4 1292760 2 17955 COM 1534 ACPREC R(4) 4 1220940 2 17955 COM ACSNOM R(4) 4 71824 2 17955 COM 514,1467 ACSNOW R(4) 4 4 2 17955 COM 513,1529 AETA R(4) 4 264 1 45 COM 537 AFSI R(4) 4 5458320 2 17955 COM AKHS R(4) 4 646380 2 17955 COM 553,688 AKMS R(4) 4 574560 2 17955 COM ALBASE R(4) 4 1009004 2 17955 COM 644,649,744 ALBEDO R(4) 4 1080824 2 17955 COM 645,646,649,777,778,780,788,968,96 9,972,993,1129,1130,1132,1140,1318 ,1319,1322,1343,1484 ALWIN R(4) 4 215472 2 17955 COM 594 ALWOUT R(4) 4 287292 2 17955 COM 595 ALWTOA R(4) 4 359112 2 17955 COM 596 APHTIM R(4) 4 574572 scalar COM 1554 ARDLW R(4) 4 8 scalar COM 1556 ARDSW R(4) 4 8 scalar COM 1555 ASRFC R(4) 4 8 scalar COM 1557 ASWIN R(4) 4 215472 2 17955 COM 591 ASWOUT R(4) 4 287292 2 17955 COM 592 ASWTOA R(4) 4 359112 2 17955 COM 593 BGROFF R(4) 4 215464 2 17955 COM 497,509,1458 CI R(4) 4 40 scalar COM CLDEFI R(4) 4 1077300 2 17955 COM CMC R(4) 4 718200 2 17955 COM 498,516,701,1488 CNVBOT R(4) 4 721724 2 17955 COM CNVTOP R(4) 4 649904 2 17955 COM CS R(4) 4 28 scalar COM CUPREC R(4) 4 1364580 2 17955 COM CZEN R(4) 4 434444 2 17955 COM 566 CZMEAN R(4) 4 1296284 2 17955 COM 565,566 DETA R(4) 4 84 1 45 COM DFRLG R(4) 4 444 1 46 COM DI R(4) 4 44 scalar COM DS R(4) 4 32 scalar COM DT R(4) 4 48 scalar COM DTD R(4) 4 16 scalar COM DTQ2 R(4) 4 8 scalar COM 468,469,470,671,679,1457,1458 EPSR R(4) 4 75344 2 17955 COM 1547 FIRST L(4) 4 24 scalar COM FIS R(4) 4 12999420 2 17955 COM G2LI I(4) 4 0 1 239 COM Page 31 Source Listing SURFCE 2025-03-12 18:22 Symbol Table SURFCE.F Name Type Bytes Offset Dimen Elements Attributes References G2LJ I(4) 4 1912 1 389 COM GFFC R(4) 4 865364 2 17955 COM GLAT R(4) 4 290804 2 17955 COM GLON R(4) 4 362624 2 17955 COM GRNFLX R(4) 4 287280 2 17955 COM 511,1462 HBM2 R(4) 4 6751080 2 17955 COM 553,586,587,591,592,593,594,595,59 6,603,641,656,1547 HBM3 R(4) 4 6822900 2 17955 COM HBOT R(4) 4 578084 2 17955 COM HDAC R(4) 4 1152644 2 17955 COM HDACV R(4) 4 1224464 2 17955 COM HTM R(4) 4 287280 3 807975 COM HTMG R(4) 4 743768 3 4183695 COM HTOP R(4) 4 506264 2 17955 COM IBESSL I(4) 4 4 scalar COM IBROW I(4) 4 404 scalar COM ICHUNKTAB I(4) 4 620 1 8 COM IDAT I(4) 4 8 1 3 COM IDTAD I(4) 4 72 scalar COM IE_GLB_TABLE I(4) 4 32 1 8 COM IE_LOC_TABLE I(4) 4 556 1 8 COM IFLAG I(4) 4 16 scalar COM IHHA I(4) 4 3040 1 760 COM IHLA I(4) 4 0 1 760 COM IHRST I(4) 4 20 scalar COM ILCOL I(4) 4 396 scalar COM ILPAD1 I(4) 4 412 scalar COM ILPAD2 I(4) 4 416 scalar COM ILPAD3 I(4) 4 420 scalar COM ILPAD4 I(4) 4 424 scalar COM ILPAD5 I(4) 4 428 scalar COM INUMQ I(4) 4 1064 1 100 COM IOFFS I(4) 4 12 scalar COM IOUT I(4) 4 44 scalar COM IQUILT_GROUP I(4) 4 1060 scalar COM IRCOL I(4) 4 400 scalar COM IRPAD1 I(4) 4 432 scalar COM IRPAD2 I(4) 4 436 scalar COM IRPAD3 I(4) 4 440 scalar COM IRPAD4 I(4) 4 444 scalar COM IRPAD5 I(4) 4 448 scalar COM ISLOPE I(4) 4 574560 2 17955 COM ISLTYP I(4) 4 502740 2 17955 COM 691,988,991,1338,1341 IS_GLB_TABLE I(4) 4 0 1 8 COM IS_LOC_TABLE I(4) 4 492 1 8 COM ITEMP I(4) 4 5870016 2 91719 COM ITEMP2 I(4) 4 6236892 2 91719 COM ITROW I(4) 4 408 scalar COM IVGTYP I(4) 4 430920 2 17955 COM 690,987,991,1337,1341 IVHA I(4) 4 9120 1 760 COM IVLA I(4) 4 6080 1 760 COM JBPAD1 I(4) 4 452 scalar COM JBPAD2 I(4) 4 456 scalar COM JBPAD3 I(4) 4 460 scalar COM JBPAD4 I(4) 4 464 scalar COM Page 32 Source Listing SURFCE 2025-03-12 18:22 Symbol Table SURFCE.F Name Type Bytes Offset Dimen Elements Attributes References JBPAD5 I(4) 4 468 scalar COM JE_GLB_TABLE I(4) 4 96 1 8 COM JE_LOC_TABLE I(4) 4 588 1 8 COM JRA I(4) 4 12160 1 760 COM JS_GLB_TABLE I(4) 4 64 1 8 COM JS_LOC_TABLE I(4) 4 524 1 8 COM JTPAD1 I(4) 4 472 scalar COM JTPAD2 I(4) 4 476 scalar COM JTPAD3 I(4) 4 480 scalar COM JTPAD4 I(4) 4 484 scalar COM JTPAD5 I(4) 4 488 scalar COM KSB I(4) 4 8 scalar COM KTM I(4) 4 0 scalar COM L2GI I(4) 4 956 1 239 COM L2GJ I(4) 4 3468 1 389 COM LIST I(4) 4 40 scalar COM LMH I(4) 4 15200 2 17955 COM 536 LMV I(4) 4 87020 2 17955 COM MPI_COMM_COMP I(4) 4 652 scalar COM MPI_COMM_INTER I(4) 4 656 scalar COM MPI_COMM_INTER_ARRAY I(4) 4 660 1 100 COM MXSNAL R(4) 4 3524 2 17955 COM 647,649,741 MYIE I(4) 4 52 scalar COM 479,535,546,560,612,639,1514,1544 MYIE1 I(4) 4 56 scalar COM MYIE1_P1 I(4) 4 120 scalar COM MYIE1_P2 I(4) 4 124 scalar COM MYIE1_P3 I(4) 4 128 scalar COM MYIE1_P4 I(4) 4 132 scalar COM MYIE2 I(4) 4 60 scalar COM MYIE2_P1 I(4) 4 136 scalar COM MYIE_P1 I(4) 4 100 scalar COM MYIE_P2 I(4) 4 104 scalar COM MYIE_P3 I(4) 4 108 scalar COM MYIE_P4 I(4) 4 112 scalar COM MYIE_P5 I(4) 4 116 scalar COM MYIS I(4) 4 40 scalar COM 479,535,546,560,612,639,1514,1544 MYIS1 I(4) 4 44 scalar COM MYIS1_P1 I(4) 4 84 scalar COM MYIS1_P2 I(4) 4 88 scalar COM MYIS1_P3 I(4) 4 92 scalar COM MYIS1_P4 I(4) 4 96 scalar COM MYIS2 I(4) 4 48 scalar COM MYIS_P1 I(4) 4 64 scalar COM MYIS_P2 I(4) 4 68 scalar COM MYIS_P3 I(4) 4 72 scalar COM MYIS_P4 I(4) 4 76 scalar COM MYIS_P5 I(4) 4 80 scalar COM MYJE I(4) 4 236 scalar COM 478 MYJE1 I(4) 4 240 scalar COM MYJE1_P1 I(4) 4 280 scalar COM MYJE1_P2 I(4) 4 284 scalar COM MYJE1_P3 I(4) 4 288 scalar COM MYJE1_P4 I(4) 4 292 scalar COM MYJE2 I(4) 4 244 scalar COM 534,545,559,611,638,1513,1543 MYJE2_P1 I(4) 4 296 scalar COM Page 33 Source Listing SURFCE 2025-03-12 18:22 Symbol Table SURFCE.F Name Type Bytes Offset Dimen Elements Attributes References MYJE2_P2 I(4) 4 300 scalar COM MYJE2_P3 I(4) 4 304 scalar COM MYJE2_P4 I(4) 4 308 scalar COM MYJE3 I(4) 4 248 scalar COM MYJE3_P4 I(4) 4 312 scalar COM MYJE4 I(4) 4 252 scalar COM MYJE4_P1 I(4) 4 316 scalar COM MYJE4_P4 I(4) 4 320 scalar COM MYJE5 I(4) 4 256 scalar COM MYJE5_P1 I(4) 4 324 scalar COM MYJE5_P2 I(4) 4 328 scalar COM MYJE_P1 I(4) 4 260 scalar COM MYJE_P2 I(4) 4 264 scalar COM MYJE_P3 I(4) 4 268 scalar COM MYJE_P4 I(4) 4 272 scalar COM MYJE_P5 I(4) 4 276 scalar COM MYJS I(4) 4 140 scalar COM 478 MYJS1 I(4) 4 144 scalar COM MYJS1_P1 I(4) 4 184 scalar COM MYJS1_P2 I(4) 4 188 scalar COM MYJS1_P3 I(4) 4 192 scalar COM MYJS1_P4 I(4) 4 196 scalar COM MYJS2 I(4) 4 148 scalar COM 534,545,559,611,638,1513,1543 MYJS2_P1 I(4) 4 200 scalar COM MYJS2_P2 I(4) 4 204 scalar COM MYJS2_P3 I(4) 4 208 scalar COM MYJS2_P4 I(4) 4 212 scalar COM MYJS3 I(4) 4 152 scalar COM MYJS3_P4 I(4) 4 216 scalar COM MYJS4 I(4) 4 156 scalar COM MYJS4_P1 I(4) 4 220 scalar COM MYJS4_P4 I(4) 4 224 scalar COM MYJS5 I(4) 4 160 scalar COM MYJS5_P1 I(4) 4 228 scalar COM MYJS5_P2 I(4) 4 232 scalar COM MYJS_P1 I(4) 4 164 scalar COM MYJS_P2 I(4) 4 168 scalar COM MYJS_P3 I(4) 4 172 scalar COM MYJS_P4 I(4) 4 176 scalar COM MYJS_P5 I(4) 4 180 scalar COM MYPE I(4) 4 0 scalar COM 649,780,788,799,815,823,831,839,84 2,850,853,866,874,881,890,899,904, 919,929,938,947,956,961,972,981,99 1,993,1007,1016,1021,1030,1040,105 0,1063,1070,1077,1084,1132,1140,11 51,1166,1174,1182,1190,1193,1201,1 204,1216,1224,1231,1240,1249,1254, 1269,1279,1288,1297,1306,1311,1322 ,1331,1341,1343,1357,1366,1371,138 0,1390,1400,1413,1420,1427,1434 MY_E I(4) 4 336 scalar COM MY_IE_GLB I(4) 4 12 scalar COM MY_IE_LOC I(4) 4 28 scalar COM MY_IS_GLB I(4) 4 8 scalar COM MY_IS_LOC I(4) 4 24 scalar COM Page 34 Source Listing SURFCE 2025-03-12 18:22 Symbol Table SURFCE.F Name Type Bytes Offset Dimen Elements Attributes References MY_JE_GLB I(4) 4 20 scalar COM MY_JE_LOC I(4) 4 36 scalar COM MY_JS_GLB I(4) 4 16 scalar COM MY_JS_LOC I(4) 4 32 scalar COM MY_N I(4) 4 332 scalar COM MY_NE I(4) 4 348 scalar COM MY_NEB I(4) 4 364 1 8 COM MY_NW I(4) 4 360 scalar COM MY_S I(4) 4 340 scalar COM MY_SE I(4) 4 352 scalar COM MY_SW I(4) 4 356 scalar COM MY_W I(4) 4 344 scalar COM NBC I(4) 4 36 scalar COM NBOCO I(4) 4 76 scalar COM NCNVC I(4) 4 92 scalar COM NCP I(4) 4 84 scalar COM NEST I(4) 4 108 scalar COM NFCST I(4) 4 32 scalar COM NPES I(4) 4 4 scalar COM NPHS I(4) 4 88 scalar COM 476 NPREC I(4) 4 68 scalar COM NRADL I(4) 4 100 scalar COM NRADS I(4) 4 96 scalar COM NRDLW I(4) 4 4 scalar COM NRDSW I(4) 4 4 scalar COM NSHDE I(4) 4 80 scalar COM NSRFC I(4) 4 4 scalar COM NSTART I(4) 4 60 scalar COM NTDDMP I(4) 4 64 scalar COM NTSD I(4) 4 52 scalar COM 476 NTSTM I(4) 4 56 scalar COM PCTSNO R(4) 4 359100 2 17955 COM 482 PD R(4) 4 0 2 17955 COM 480,547,549 PL R(4) 4 48 scalar COM PLQ R(4) 4 72 scalar COM POTEVP R(4) 4 430932 2 17955 COM 1470,1522 POTFLX R(4) 4 502752 2 17955 COM 1471,1523 PREC R(4) 4 1149120 2 17955 COM 679,1529,1534,1537 PSHLTR R(4) 4 2154600 2 17955 COM PT R(4) 4 4 scalar COM 480,547,549 PTBL R(4) 4 1439924 2 10184 COM Q R(4) 4 9767520 3 807975 COM 540 Q10 R(4) 4 1795500 2 17955 COM Q2 R(4) 4 2226420 3 807975 COM Q30 R(4) 4 1508220 2 17955 COM QS R(4) 4 502740 2 17955 COM 656,697,1479,1517 QS0 R(4) 4 628 1 134 COM QSHLTR R(4) 4 2082780 2 17955 COM QWBS R(4) 4 861840 2 17955 COM 1517,1520,1521,1522,1523 QZ0 R(4) 4 359100 2 17955 COM 600,1517 RADIN R(4) 4 147164 2 17955 COM 586,676 RADOT R(4) 4 218984 2 17955 COM 595,1547 RDP R(4) 4 64 scalar COM RDPQ R(4) 4 76 scalar COM RDQ R(4) 4 56 scalar COM Page 35 Source Listing SURFCE 2025-03-12 18:22 Symbol Table SURFCE.F Name Type Bytes Offset Dimen Elements Attributes References RDTH R(4) 4 60 scalar COM RDTHE R(4) 4 68 scalar COM RDTHEQ R(4) 4 80 scalar COM RES R(4) 4 13071240 2 17955 COM 549 RESTRT L(4) 4 28 scalar COM RF R(4) 4 718200 2 17955 COM RLWIN R(4) 4 12 2 17955 COM 586,594 RLWOUT R(4) 4 71832 2 17955 COM RLWTOA R(4) 4 143652 2 17955 COM 596 RLWTT R(4) 4 430932 3 807975 COM ROI R(4) 4 36 scalar COM ROS R(4) 4 24 scalar COM RSWIN R(4) 4 12 2 17955 COM 587,591 RSWOUT R(4) 4 71832 2 17955 COM 592 RSWTOA R(4) 4 143652 2 17955 COM 593 RSWTT R(4) 4 430932 3 807975 COM RTDPTH R(4) 4 1364596 1 4 COM RUN L(4) 4 4 scalar COM SATDEL R(4) 4 20 scalar COM SFCEVP R(4) 4 359112 2 17955 COM 1521 SFCEXC R(4) 4 71820 2 17955 COM 1461 SFCLHX R(4) 4 71832 2 17955 COM 1520 SFCSHX R(4) 4 12 2 17955 COM 1519 SFCUVX R(4) 4 287292 2 17955 COM SH2O R(4) 4 1364612 3 71820 COM 501,522,715,1493 SI R(4) 4 1005480 2 17955 COM 519,706,1487 SICE R(4) 4 215460 2 17955 COM 492,667,1463,1528 SIGMA L(4) 4 0 scalar COM SIGT4 R(4) 4 1368104 2 17955 COM 571,573 SLDPTH R(4) 4 1364580 1 4 COM 1100 SM R(4) 4 143640 2 17955 COM 491,550,643,654,665,1515,1517,1522 ,1523,1528 SMC R(4) 4 790020 3 71820 COM 500,521,709,1491 SMSTAV R(4) 4 143640 2 17955 COM 494,506,1459 SMSTOT R(4) 4 215460 2 17955 COM 495,507,1489 SNO R(4) 4 933660 2 17955 COM 517,649,702,1463,1466,1485 SNOPCX R(4) 4 215472 2 17955 COM 515,1468 SOILTB R(4) 4 0 2 17955 COM 510,1460 SPVAL R(4) 4 0 scalar COM SQS R(4) 4 1164 1 134 COM SSROFF R(4) 4 143644 2 17955 COM 496,508,1457 SST R(4) 4 937184 2 17955 COM 655 STC R(4) 4 1077300 3 71820 COM 523,718,1494 STHE R(4) 4 2004 1 76 COM STHEQ R(4) 4 2916 1 152 COM SUBPOST L(4) 4 104 scalar COM SUBSHX R(4) 4 143652 2 17955 COM 512,1472 T R(4) 4 71820 3 807975 COM 539 TDTD R(4) 4 20 scalar COM TDTQ2 R(4) 4 12 scalar COM TEMP1 R(4) 4 0 2 91719 COM TEMP10 R(4) 4 3301884 2 91719 COM TEMP11 R(4) 4 3668760 2 91719 COM TEMP12 R(4) 4 4035636 2 91719 COM TEMP13 R(4) 4 4402512 2 91719 COM Page 36 Source Listing SURFCE 2025-03-12 18:22 Symbol Table SURFCE.F Name Type Bytes Offset Dimen Elements Attributes References TEMP14 R(4) 4 4769388 2 91719 COM TEMP15 R(4) 4 5136264 2 91719 COM TEMP16 R(4) 4 5503140 2 91719 COM TEMP2 R(4) 4 366876 2 91719 COM TEMP2X R(4) 4 0 2 92971 COM TEMP3 R(4) 4 733752 2 91719 COM TEMP4 R(4) 4 1100628 2 91719 COM TEMP5 R(4) 4 1467504 2 91719 COM TEMP6 R(4) 4 1834380 2 91719 COM TEMP7 R(4) 4 2201256 2 91719 COM TEMP8 R(4) 4 2568132 2 91719 COM TEMP9 R(4) 4 2935008 2 91719 COM TG R(4) 4 793544 2 17955 COM 687 TH10 R(4) 4 1723680 2 17955 COM TH30 R(4) 4 1436400 2 17955 COM THE0 R(4) 4 1700 1 76 COM THE0Q R(4) 4 2308 1 152 COM THL R(4) 4 52 scalar COM THS R(4) 4 430920 2 17955 COM 655,657,700,1477,1515,1545 THZ0 R(4) 4 287280 2 17955 COM 1515 TPREC R(4) 4 0 scalar COM TRDLW R(4) 4 0 scalar COM TRDSW R(4) 4 0 scalar COM TSHLTR R(4) 4 2010960 2 17955 COM TSRFC R(4) 4 0 scalar COM TTBL R(4) 4 1480660 2 10184 COM TTBLQ R(4) 4 1521396 2 66880 COM TTVG R(4) 4 371884 2 92971 COM TWBS R(4) 4 790020 2 17955 COM 1515,1519 U R(4) 4 3303720 3 807975 COM U10 R(4) 4 1867320 2 17955 COM U30 R(4) 4 1580040 2 17955 COM USTAR R(4) 4 71820 2 17955 COM UZ0 R(4) 4 143640 2 17955 COM V R(4) 4 6535620 3 807975 COM V10 R(4) 4 1939140 2 17955 COM V30 R(4) 4 1651860 2 17955 COM VBM2 R(4) 4 0 2 17955 COM VBM3 R(4) 4 71820 2 17955 COM VEGFRC R(4) 4 646380 2 17955 COM 696 VTM R(4) 4 3519180 3 807975 COM VZ0 R(4) 4 215460 2 17955 COM Z0 R(4) 4 0 2 17955 COM Page 37 Source Listing SURFCE 2025-03-12 18:22 SURFCE.F 1561 C 1562 BLOCK DATA OPT 1563 COMMON /OPTIONS/ SPVAL,IBESSL,KSB,IOFFS,IFLAG,SATDEL 1564 DATA SPVAL / 99999 / 1565 DATA IBESSL / 0 / 1566 DATA KSB / 3 / 1567 DATA IOFFS / 2 / 1568 DATA IFLAG / 0 / 1569 DATA SATDEL / 0.05 / 1570 END BLOCK DATA OPT SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References OPT Block 1562 scalar OPTIONS Common 1563 24 TYPE COMPONENTS/COMMON VARIABLES Name Type Bytes Offset Dimen Elements Attributes References IBESSL I(4) 4 4 scalar COM,SAVE 1565 IFLAG I(4) 4 16 scalar COM,SAVE 1568 IOFFS I(4) 4 12 scalar COM,SAVE 1567 KSB I(4) 4 8 scalar COM,SAVE 1566 SATDEL R(4) 4 20 scalar COM,SAVE 1569 SPVAL R(4) 4 0 scalar COM,SAVE 1564 Page 38 Source Listing OPT 2025-03-12 18:22 Subprograms/Common Blocks SURFCE.F SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References ACMPRE Common 368 287284 SAVE ACMRDL Common 397 3662832 SAVE ACMRDS Common 387 3662832 SAVE ACMSFC Common 376 574576 SAVE CTLBLK Common 254 112 SAVE GLB_TABLE Common 143 128 SAVE LOOPS Common 263 158840 SAVE MAPPINGS Common 162 5024 SAVE MASKS Common 271 6894720 SAVE MPPCOM Common 107 1464 SAVE OPT Block 1562 scalar OPTIONS Common 445 24 SAVE OPTIONS Common 1563 24 PHYS Common 285 1788916 SAVE PVRBLS Common 323 5530140 SAVE SOIL Common 354 1651892 SAVE SURFCE Subr 2 TEMPCOM Common 148 6603768 SAVE TOPO Common 156 17478548 SAVE VRBLS Common 312 13143060 SAVE COMPILER OPTIONS BEING USED -align noall -align nonone -align nocommons -align nodcommons -align noqcommons -align nozcommons -align records -align nosequence -align norec1byte -align norec2byte -align norec4byte -align norec8byte -align norec16byte -align norec32byte -align norec64byte -align noarray8byte -align noarray16byte -align noarray32byte -align noarray64byte -align noarray128byte -align noarray256byte -altparam -assume accuracy_sensitive -assume nobscc -assume nobuffered_io -assume nobuffered_stdout -assume byterecl -assume nocontiguous_assumed_shape -assume nocontiguous_pointer -assume nocc_omp -assume nocstring -assume nodummy_aliases -assume nofpe_summary -assume noieee_fpe_flags -assume nominus0 -assume noold_boz -assume old_complex_align -assume old_unit_star -assume old_inquire_recl -assume old_ldout_format -assume old_ldout_zero -assume noold_logical_assign -assume noold_logical_ldio -assume old_maxminloc -assume old_xor -assume noprotect_allocates -assume protect_constants -assume noprotect_parens -assume split_common -assume source_include -assume nostd_intent_in -assume std_minus0_rounding -assume nostd_mod_proc_name -assume std_value -assume realloc_lhs -assume underscore Page 39 Source Listing OPT 2025-03-12 18:22 SURFCE.F -assume no2underscores -assume norecursion no -auto -auto_scalar no -bintext -ccdefault default -check noarg_temp_created -check noassume -check nobounds -check nocontiguous -check noformat -check nooutput_conversion -check nooverflow -check nopointers -check noshape -check nostack -check nouninitialized -check noudio_iostat -coarray-num-procs 0 no -coarray-config-file -convert big_endian -cross_reference -D __INTEL_COMPILER=1910 -D __INTEL_COMPILER_UPDATE=3 -D __unix__ -D __unix -D __linux__ -D __linux -D __gnu_linux__ -D unix -D linux -D __ELF__ -D __x86_64 -D __x86_64__ -D __amd64 -D __amd64__ -D __INTEL_COMPILER_BUILD_DATE=20200925 -D __INTEL_OFFLOAD -D __MMX__ -D __SSE__ -D __SSE_MATH__ -D __SSE2__ -D __SSE2_MATH__ -D __SSE3__ -D __SSSE3__ -D __SSE4_1__ -D __SSE4_2__ -D __POPCNT__ -D __PCLMUL__ -D __AES__ -D __AVX__ -D __F16C__ -D __AVX_I__ -D __RDRND__ -D __FMA__ -D __FP_FAST_FMA -D __FP_FAST_FMAF -D __BMI__ -D __LZCNT__ -D __AVX2__ -D __haswell -D __haswell__ -D __tune_haswell__ -D __core_avx2 -D __core_avx2__ -D __tune_core_avx2__ -D __CRAY_X86_ROME -D __CRAYXT_COMPUTE_LINUX_TARGET -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 -fixed no -fpconstant -fpe3 -fprm nearest no -ftz -fp_model precise -fp_model nofast -fp_model nostrict -fp_model nosource -fp_model nodouble -fp_model noextended -fp_model novery_fast -fp_model noexcept -fp_model nono_except -fp_modbits nofp_contract -fp_modbits nono_fp_contract -fp_modbits nofenv_access -fp_modbits nono_fenv_access -fp_modbits nocx_limited_range -fp_modbits nono_cx_limited_range -fp_modbits noprec_div -fp_modbits nono_prec_div -fp_modbits noprec_sqrt -fp_modbits nono_prec_sqrt -fp_modbits noftz -fp_modbits no_ftz -fp_modbits nointrin_limited_range -fp_modbits nono_intrin_limited_range -fp_modbits notrunc_compares -fp_modbits nono_trunc_compares -fp_modbits noieee_nan_compares -fp_modbits nono_ieee_nan_compares -fp_modbits nohonor_f32_conversion -fp_modbits nono_honor_f32_conversion Page 40 Source Listing OPT 2025-03-12 18:22 SURFCE.F -fp_modbits nohonor_f64_conversion -fp_modbits nono_honor_f64_conversion -fp_modbits nono_x87_copy -fp_modbits nono_no_x87_copy -fp_modbits noexception_semantics -fp_modbits nono_exception_semantics -fp_modbits noprecise_libm_functions -fp_modbits nono_precise_libm_functions -heap_arrays 0 no -threadprivate_compat -g2 -iface nomixed_str_len_arg -iface nono_mixed_str_len_arg -init noarrays -init nohuge -init noinfinity -init nominus_huge -init nominus_infinity -init nominus_tiny -init nonan -init nosnan -init notiny -init nozero no -intconstant -integer_size 32 no -mixed_str_len_arg no -module -names lowercase no -noinclude no -o -offload-build=host -openmp-simd -O2 no -pad_source -real_size 32 no -recursive -reentrancy threaded -vec=simd -show nofullpath -show noinclude -show map -show options no -syntax_only no -threadcom no -U no -vms -w noall -w nonone -w alignments -w nodeclarations -w noexternals -w general -w noignore_bounds -w noignore_loc -w nointerfaces -w noshape -w notruncated_source -w uncalled -w uninitialized -w nounused -w usage no -wrap-margins -includepath : /pe/intel/compilers_and_libraries_2020.4.304/linux/pstl/include/,/pe/intel/compilers_and_libraries_2020.4.304/linux/compiler/include/, .f90,./.f90,/opt/cray/pe/mpich/8.1.12/ofi/intel/19.0/include/.f90,/pe/intel/compilers_and_libraries_2020.4.304/linux/ipp/include/.f90, /pe/intel/compilers_and_libraries_2020.4.304/linux/mkl/include/.f90,/pe/intel/compilers_and_libraries_2020.4.304/linux/pstl/include/.f90, /pe/intel/compilers_and_libraries_2020.4.304/linux/pstl/stdlib/.f90,/pe/intel/compilers_and_libraries_2020.4.304/linux/tbb/include/.f90, /pe/intel/compilers_and_libraries_2020.4.304/linux/compiler/include/intel64/.f90,/pe/intel/compilers_and_libraries_2020.4.304/linux/compiler/include/icc/.f90, /pe/intel/compilers_and_libraries_2020.4.304/linux/compiler/include/.f90,/usr/lib64/gcc/x86_64-suse-linux/7/include/.f90, /usr/lib64/gcc/x86_64-suse-linux/7/include-fixed/.f90,/usr/include/.f90,/usr/include/.f90,/usr/include/.f90 -list filename : SURFCE.lst no -o COMPILER: Intel(R) Fortran 19.1-1655