@@ -1555,6 +1555,24 @@ subroutine SetServices ( GC, RC )
1555
1555
RC= STATUS )
1556
1556
VERIFY_(STATUS)
1557
1557
1558
+ call MAPL_AddExportSpec(GC, &
1559
+ LONG_NAME = ' ocean_icefall' ,&
1560
+ UNITS = ' kg m-2 s-1' ,&
1561
+ SHORT_NAME = ' ICEFOCN' ,&
1562
+ DIMS = MAPL_DimsHorzOnly ,&
1563
+ VLOCATION = MAPL_VLocationNone ,&
1564
+ RC= STATUS )
1565
+ VERIFY_(STATUS)
1566
+
1567
+ call MAPL_AddExportSpec(GC, &
1568
+ LONG_NAME = ' ocean_snow_and_icefall' ,&
1569
+ UNITS = ' kg m-2 s-1' ,&
1570
+ SHORT_NAME = ' SPTOTOCN' ,&
1571
+ DIMS = MAPL_DimsHorzOnly ,&
1572
+ VLOCATION = MAPL_VLocationNone ,&
1573
+ RC= STATUS )
1574
+ VERIFY_(STATUS)
1575
+
1558
1576
call MAPL_AddExportSpec(GC, &
1559
1577
LONG_NAME = ' ocean_rainfall' ,&
1560
1578
UNITS = ' kg m-2 s-1' ,&
@@ -5482,6 +5500,8 @@ subroutine RUN2 ( GC, IMPORT, EXPORT, CLOCK, RC )
5482
5500
real , pointer , dimension (:,:) :: LWNDICE = > NULL ()
5483
5501
real , pointer , dimension (:,:) :: SWNDICE = > NULL ()
5484
5502
real , pointer , dimension (:,:) :: SNOWOCN = > NULL ()
5503
+ real , pointer , dimension (:,:) :: ICEFOCN = > NULL ()
5504
+ real , pointer , dimension (:,:) :: SPTOTOCN = > NULL ()
5485
5505
real , pointer , dimension (:,:) :: RAINOCN = > NULL ()
5486
5506
real , pointer , dimension (:,:) :: TSKINW = > NULL ()
5487
5507
real , pointer , dimension (:,:) :: TSKINICE = > NULL ()
@@ -5800,6 +5820,8 @@ subroutine RUN2 ( GC, IMPORT, EXPORT, CLOCK, RC )
5800
5820
real , pointer , dimension (:) :: LWNDICETILE = > NULL ()
5801
5821
real , pointer , dimension (:) :: SWNDICETILE = > NULL ()
5802
5822
real , pointer , dimension (:) :: SNOWOCNTILE = > NULL ()
5823
+ real , pointer , dimension (:) :: ICEFOCNTILE = > NULL ()
5824
+ real , pointer , dimension (:) :: SPTOTOCNTILE = > NULL ()
5803
5825
real , pointer , dimension (:) :: RAINOCNTILE = > NULL ()
5804
5826
real , pointer , dimension (:) :: TSKINWTILE = > NULL ()
5805
5827
real , pointer , dimension (:) :: TSKINICETILE = > NULL ()
@@ -6401,8 +6423,8 @@ subroutine RUN2 ( GC, IMPORT, EXPORT, CLOCK, RC )
6401
6423
call MAPL_GetPointer(EXPORT, ICE , ' ICE' , alloc= .true. , RC= STATUS); VERIFY_(STATUS)
6402
6424
call MAPL_GetPointer(EXPORT, FRZR, ' FRZR' , alloc= .true. , RC= STATUS); VERIFY_(STATUS)
6403
6425
6404
- ! These are the precips exported by moist
6405
- !- ---------------------------------------
6426
+ ! These are the precips imported from moist
6427
+ !- -----------------------------------------
6406
6428
6407
6429
call MAPL_GetPointer(IMPORT, PCU , ' PCU' , RC= STATUS); VERIFY_(STATUS)
6408
6430
call MAPL_GetPointer(IMPORT, PLS , ' PLS' , RC= STATUS); VERIFY_(STATUS)
@@ -6463,8 +6485,12 @@ subroutine RUN2 ( GC, IMPORT, EXPORT, CLOCK, RC )
6463
6485
allocate ( PRECSUM(IM,JM), stat= STATUS )
6464
6486
VERIFY_(STATUS)
6465
6487
6466
- PRECSUM = RCU+ RLS+ SNO+ ICE+ FRZR
6467
-
6488
+ ! PRECSUM = uncorrected total precip
6489
+ ! PTTe = total precip from file
6490
+
6491
+ PRECSUM = RCU+ RLS+ SNO+ ICE ! do *not* add FRZR, which is liquid not solid and (probably) incl. in RCU+RLS
6492
+ ! see comment re. FRZR in GEOS_CatchGridComp.F90 by reichle, 6/6/2025
6493
+
6468
6494
where (PTTe == MAPL_UNDEF)
6469
6495
RCU = PCU
6470
6496
RLS = PLS
@@ -6708,6 +6734,8 @@ subroutine RUN2 ( GC, IMPORT, EXPORT, CLOCK, RC )
6708
6734
call MAPL_GetPointer(EXPORT , LWNDICE , ' LWNDICE' , RC= STATUS); VERIFY_(STATUS)
6709
6735
call MAPL_GetPointer(EXPORT , SWNDICE , ' SWNDICE' , RC= STATUS); VERIFY_(STATUS)
6710
6736
call MAPL_GetPointer(EXPORT , SNOWOCN , ' SNOWOCN' , RC= STATUS); VERIFY_(STATUS)
6737
+ call MAPL_GetPointer(EXPORT , ICEFOCN , ' ICEFOCN' , RC= STATUS); VERIFY_(STATUS)
6738
+ call MAPL_GetPointer(EXPORT , SPTOTOCN , ' SPTOTOCN' , RC= STATUS); VERIFY_(STATUS)
6711
6739
call MAPL_GetPointer(EXPORT , RAINOCN , ' RAINOCN' , RC= STATUS); VERIFY_(STATUS)
6712
6740
call MAPL_GetPointer(EXPORT , TSKINW , ' TSKINW' , alloc= .true. , RC= STATUS); VERIFY_(STATUS)
6713
6741
call MAPL_GetPointer(EXPORT , TSKINICE , ' TSKINICE' , RC= STATUS); VERIFY_(STATUS)
@@ -7310,6 +7338,8 @@ subroutine RUN2 ( GC, IMPORT, EXPORT, CLOCK, RC )
7310
7338
call MKTILE(LWNDICE ,LWNDICETILE ,NT,RC= STATUS); VERIFY_(STATUS)
7311
7339
call MKTILE(SWNDICE ,SWNDICETILE ,NT,RC= STATUS); VERIFY_(STATUS)
7312
7340
call MKTILE(SNOWOCN ,SNOWOCNTILE ,NT,RC= STATUS); VERIFY_(STATUS)
7341
+ call MKTILE(ICEFOCN ,ICEFOCNTILE ,NT,RC= STATUS); VERIFY_(STATUS)
7342
+ call MKTILE(SPTOTOCN ,SPTOTOCNTILE ,NT,RC= STATUS); VERIFY_(STATUS)
7313
7343
call MKTILE(RAINOCN ,RAINOCNTILE ,NT,RC= STATUS); VERIFY_(STATUS)
7314
7344
call MKTILE(TSKINW, TSKINWTILE ,NT,RC= STATUS); VERIFY_(STATUS)
7315
7345
call MKTILE(TSKINICE, TSKINICETILE ,NT,RC= STATUS); VERIFY_(STATUS)
@@ -7647,7 +7677,7 @@ subroutine RUN2 ( GC, IMPORT, EXPORT, CLOCK, RC )
7647
7677
VERIFY_(STATUS)
7648
7678
7649
7679
if (PRECIP_FILE /= " null" ) then
7650
- TMPTILE = PCUTILE + PLSTILE + SNOFLTILE + ICEFLTILE + FRZRFLTILE
7680
+ TMPTILE = PCUTILE + PLSTILE + SNOFLTILE + ICEFLTILE ! do *not* add FRZR, which is liquid not solid and (probably) incl. in PCUTILE+PCSTILE
7651
7681
call MAPL_LocStreamTransform( LOCSTREAM, PRECTOT, TMPTILE, RC= STATUS)
7652
7682
VERIFY_(STATUS)
7653
7683
else
@@ -8123,6 +8153,16 @@ subroutine RUN2 ( GC, IMPORT, EXPORT, CLOCK, RC )
8123
8153
VERIFY_(STATUS)
8124
8154
endif
8125
8155
8156
+ if (associated ( ICEFOCN)) then
8157
+ call MAPL_LocStreamTransform( LOCSTREAM, ICEFOCN, ICEFOCNTILE, RC= STATUS)
8158
+ VERIFY_(STATUS)
8159
+ endif
8160
+
8161
+ if (associated ( SPTOTOCN)) then
8162
+ call MAPL_LocStreamTransform( LOCSTREAM, SPTOTOCN, SPTOTOCNTILE, RC= STATUS)
8163
+ VERIFY_(STATUS)
8164
+ endif
8165
+
8126
8166
8127
8167
if (associated ( EVAPOU)) then
8128
8168
call MAPL_LocStreamTransform( LOCSTREAM, EVAPOU, EVAPOUTILE, RC= STATUS)
@@ -8891,6 +8931,8 @@ subroutine RUN2 ( GC, IMPORT, EXPORT, CLOCK, RC )
8891
8931
if (associated (LWNDICETILE )) deallocate (LWNDICETILE )
8892
8932
if (associated (SWNDICETILE )) deallocate (SWNDICETILE )
8893
8933
if (associated (SNOWOCNTILE )) deallocate (SNOWOCNTILE )
8934
+ if (associated (ICEFOCNTILE )) deallocate (ICEFOCNTILE )
8935
+ if (associated (SPTOTOCNTILE )) deallocate (SPTOTOCNTILE )
8894
8936
if (associated (RAINOCNTILE )) deallocate (RAINOCNTILE )
8895
8937
if (associated (TSKINWTILE )) deallocate (TSKINWTILE )
8896
8938
if (associated (TSKINICETILE )) deallocate (TSKINICETILE )
@@ -9479,6 +9521,10 @@ subroutine DOTYPE(type,RC)
9479
9521
VERIFY_(STATUS)
9480
9522
call MAPL_GetPointer(GEX(type), dum, ' SNOWOCN' , ALLOC= associated (SNOWOCNTILE ), notFoundOK= .true. , RC= STATUS)
9481
9523
VERIFY_(STATUS)
9524
+ call MAPL_GetPointer(GEX(type), dum, ' ICEFOCN' , ALLOC= associated (ICEFOCNTILE ), notFoundOK= .true. , RC= STATUS)
9525
+ VERIFY_(STATUS)
9526
+ call MAPL_GetPointer(GEX(type), dum, ' SPTOTOCN' , ALLOC= associated (SPTOTOCNTILE), notFoundOK= .true. , RC= STATUS)
9527
+ VERIFY_(STATUS)
9482
9528
call MAPL_GetPointer(GEX(type), dum, ' TSKINW' , ALLOC= associated (TSKINWTILE ), notFoundOK= .true. , RC= STATUS)
9483
9529
VERIFY_(STATUS)
9484
9530
call MAPL_GetPointer(GEX(type), dum, ' TSKINICE' , ALLOC= associated (TSKINICETILE ), notFoundOK= .true. , RC= STATUS)
@@ -10209,6 +10255,14 @@ subroutine DOTYPE(type,RC)
10209
10255
call FILLOUT_TILE(GEX(type), ' SNOWOCN' , SNOWOCNTILE, XFORM, RC= STATUS)
10210
10256
VERIFY_(STATUS)
10211
10257
end if
10258
+ if (associated (ICEFOCNTILE)) then
10259
+ call FILLOUT_TILE(GEX(type), ' ICEFOCN' , ICEFOCNTILE, XFORM, RC= STATUS)
10260
+ VERIFY_(STATUS)
10261
+ end if
10262
+ if (associated (SPTOTOCNTILE)) then
10263
+ call FILLOUT_TILE(GEX(type), ' SPTOTOCN' , SPTOTOCNTILE,XFORM, RC= STATUS)
10264
+ VERIFY_(STATUS)
10265
+ end if
10212
10266
10213
10267
if (associated (HLWUPTILE)) then
10214
10268
call FILLOUT_TILE(GEX(type), ' HLWUP' , HLWUPTILE, XFORM, RC= STATUS)
0 commit comments