diff --git a/reg_tests/chgres_cube/driver.jet.sh b/reg_tests/chgres_cube/driver.jet.sh index 6f76db74c..b256b64c3 100755 --- a/reg_tests/chgres_cube/driver.jet.sh +++ b/reg_tests/chgres_cube/driver.jet.sh @@ -34,8 +34,8 @@ module load netcdf/4.2.1.1 module list export OUTDIR=/mnt/lfs3/projects/emcda/$LOGNAME/stmp/chgres_reg_tests -PROJECT_CODE="emcda" -QUEUE="windfall" +PROJECT_CODE="hfv3gfs" +QUEUE="debug" #----------------------------------------------------------------------------- # Should not have to change anything below here. HOMEufs is the root diff --git a/sorc/chgres_cube.fd/surface.F90 b/sorc/chgres_cube.fd/surface.F90 index 4b6ea37da..d68f704a9 100644 --- a/sorc/chgres_cube.fd/surface.F90 +++ b/sorc/chgres_cube.fd/surface.F90 @@ -2723,6 +2723,7 @@ subroutine qc_check real(esmf_kind_r8), pointer :: seaice_skint_ptr(:,:) real(esmf_kind_r8), pointer :: skint_ptr(:,:) real(esmf_kind_r8), pointer :: fice_ptr(:,:) + real(esmf_kind_r8), pointer :: hice_ptr(:,:) print*,"- CALL FieldGet FOR TARGET GRID LAND-SEA MASK." call ESMF_FieldGet(landmask_target_grid, & @@ -2732,11 +2733,7 @@ subroutine qc_check if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldGet", rc) -!--------------------------------------------------------------------------------------------- -! Set slope type flag value at non-land points. -!--------------------------------------------------------------------------------------------- - - print*,"- CALL FieldGet FOR TARGET GRID SLOPE TYPE." + print*,"- SET NON-LAND FLAG FOR TARGET GRID SLOPE TYPE." call ESMF_FieldGet(slope_type_target_grid, & farrayPtr=data_ptr, rc=rc) if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & @@ -2748,7 +2745,7 @@ subroutine qc_check enddo enddo - print*,"- CALL FieldGet FOR TARGET GRID SOIL TYPE." + print*,"- SET NON-LAND FLAG FOR TARGET GRID SOIL TYPE." call ESMF_FieldGet(soil_type_target_grid, & farrayPtr=data_ptr, rc=rc) if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & @@ -2760,7 +2757,7 @@ subroutine qc_check enddo enddo - print*,"- CALL FieldGet FOR TARGET GRID VEGETATION TYPE." + print*,"- SET NON-LAND FLAG FOR TARGET GRID VEGETATION TYPE." call ESMF_FieldGet(veg_type_target_grid, & farrayPtr=veg_type_ptr, rc=rc) if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & @@ -2772,7 +2769,7 @@ subroutine qc_check enddo enddo - print*,"- CALL FieldGet FOR TARGET GRID ALVSF." + print*,"- SET TARGET GRID ALVSF AT NON-LAND." call ESMF_FieldGet(alvsf_target_grid, & farrayPtr=data_ptr, rc=rc) if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & @@ -2784,7 +2781,7 @@ subroutine qc_check enddo enddo - print*,"- CALL FieldGet FOR TARGET GRID ALVWF." + print*,"- SET TARGET GRID ALVWF AT NON-LAND." call ESMF_FieldGet(alvwf_target_grid, & farrayPtr=data_ptr, rc=rc) if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & @@ -2796,7 +2793,7 @@ subroutine qc_check enddo enddo - print*,"- CALL FieldGet FOR TARGET GRID ALNSF." + print*,"- SET TARGET GRID ALNSF AT NON-LAND." call ESMF_FieldGet(alnsf_target_grid, & farrayPtr=data_ptr, rc=rc) if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & @@ -2808,7 +2805,7 @@ subroutine qc_check enddo enddo - print*,"- CALL FieldGet FOR TARGET GRID ALNWF." + print*,"- SET TARGET GRID ALNWF AT NON-LAND." call ESMF_FieldGet(alnwf_target_grid, & farrayPtr=data_ptr, rc=rc) if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & @@ -2820,7 +2817,7 @@ subroutine qc_check enddo enddo - print*,"- CALL FieldGet FOR TARGET GRID FACSF." + print*,"- SET NON-LAND FLAG FOR TARGET GRID FACSF." call ESMF_FieldGet(facsf_target_grid, & farrayPtr=data_ptr, rc=rc) if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & @@ -2832,7 +2829,7 @@ subroutine qc_check enddo enddo - print*,"- CALL FieldGet FOR TARGET GRID FAWSF." + print*,"- SET NON-LAND FLAG FOR TARGET GRID FACSF." call ESMF_FieldGet(facwf_target_grid, & farrayPtr=data_ptr, rc=rc) if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & @@ -2844,7 +2841,7 @@ subroutine qc_check enddo enddo - print*,"- CALL FieldGet FOR TARGET GRID MAXIMUM GREENNESS." + print*,"- SET NON-LAND FLAG FOR TARGET GRID MAXIMUM GREENNESS." call ESMF_FieldGet(max_veg_greenness_target_grid, & farrayPtr=data_ptr, rc=rc) if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & @@ -2856,7 +2853,7 @@ subroutine qc_check enddo enddo - print*,"- CALL FieldGet FOR TARGET GRID MINIMUM GREENNESS." + print*,"- SET NON-LAND FLAG FOR TARGET GRID MINIMUM GREENNESS." call ESMF_FieldGet(min_veg_greenness_target_grid, & farrayPtr=data_ptr, rc=rc) if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & @@ -2868,7 +2865,7 @@ subroutine qc_check enddo enddo - print*,"- CALL FieldGet FOR TARGET GRID VEGETATION GREENNESS." + print*,"- SET NON-LAND FLAG FOR TARGET GRID VEGETATION GREENNESS." call ESMF_FieldGet(veg_greenness_target_grid, & farrayPtr=veg_greenness_ptr, rc=rc) if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & @@ -2880,7 +2877,7 @@ subroutine qc_check enddo enddo - print*,"- CALL FieldGet FOR TARGET GRID MAX SNOW ALBEDO." + print*,"- SET NON-LAND FLAG FOR TARGET GRID MAX SNOW ALBEDO." call ESMF_FieldGet(mxsno_albedo_target_grid, & farrayPtr=data_ptr, rc=rc) if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & @@ -2892,7 +2889,7 @@ subroutine qc_check enddo enddo - print*,"- CALL FieldGet FOR TARGET GRID CANOPY MOISTURE CONTENT." + print*,"- ZERO OUT TARGET GRID CANOPY MOISTURE CONTENT WHERE NO PLANTS." call ESMF_FieldGet(canopy_mc_target_grid, & farrayPtr=data_ptr, rc=rc) if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & @@ -2910,7 +2907,7 @@ subroutine qc_check if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldGet", rc) - print*,"- CALL FieldGet FOR TARGET GRID SKIN TEMP." + print*,"- SET TARGET GRID SKIN TEMP AT ICE POINTS." call ESMF_FieldGet(skin_temp_target_grid, & farrayPtr=skint_ptr, rc=rc) if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & @@ -2922,6 +2919,12 @@ subroutine qc_check if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldGet", rc) + print*,"- SET TARGET GRID SEA ICE DEPTH TO ZERO AT NON-ICE POINTS." + call ESMF_FieldGet(seaice_depth_target_grid, & + farrayPtr=hice_ptr, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + do j = clb(2), cub(2) do i = clb(1), cub(1) if (fice_ptr(i,j) > 0.0) then @@ -2929,11 +2932,12 @@ subroutine qc_check ( (1.0 - fice_ptr(i,j)) * frz_ice ) else seaice_skint_ptr(i,j) = skint_ptr(i,j) + hice_ptr(i,j) = 0.0 endif enddo enddo - print*,"- CALL FieldGet FOR TARGET GRID SUBSTRATE TEMP." + print*,"- SET TARGET GRID SUBSTRATE TEMP AT ICE." call ESMF_FieldGet(substrate_temp_target_grid, & farrayPtr=data_ptr, rc=rc) if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & @@ -2949,13 +2953,41 @@ subroutine qc_check enddo enddo - print*,"- CALL FieldGet FOR TARGET GRID TOTAL SOIL MOISTURE." + print*,"- ZERO OUT TARGET GRID SNOW DEPTH AT OPEN WATER." + call ESMF_FieldGet(snow_depth_target_grid, & + farrayPtr=data_ptr, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + + do j = clb(2), cub(2) + do i = clb(1), cub(1) + if (landmask_ptr(i,j) == 0) then ! open water + data_ptr(i,j) = 0.0 + end if + enddo + enddo + + print*,"- ZERO OUT TARGET GRID SNOW LIQ AT OPEN WATER." + call ESMF_FieldGet(snow_liq_equiv_target_grid, & + farrayPtr=data_ptr, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + + do j = clb(2), cub(2) + do i = clb(1), cub(1) + if (landmask_ptr(i,j) == 0) then ! open water + data_ptr(i,j) = 0.0 + endif + enddo + enddo + + print*,"- SET NON-LAND FLAG VALUE FOR TARGET GRID TOTAL SOIL MOISTURE." call ESMF_FieldGet(soilm_tot_target_grid, & farrayPtr=soilmt_ptr, rc=rc) if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldGet", rc) - print*,"- CALL FieldGet FOR TARGET GRID LIQUID SOIL MOISTURE." + print*,"- SET NON-LAND FLAG VALUE FOR TARGET GRID LIQUID SOIL MOISTURE." call ESMF_FieldGet(soilm_liq_target_grid, & farrayPtr=soilml_ptr, rc=rc) if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & @@ -2971,7 +3003,7 @@ subroutine qc_check enddo enddo - print*,"- CALL FieldGet FOR TARGET GRID SOIL TEMPERATURE." + print*,"- SET OPEN WATER FLAG FOR TARGET GRID SOIL TEMPERATURE." call ESMF_FieldGet(soil_temp_target_grid, & farrayPtr=data3d_ptr, rc=rc) if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & @@ -3206,7 +3238,10 @@ subroutine create_surface_esmf_fields implicit none - integer :: rc + integer :: rc + + real(esmf_kind_r8), pointer :: target_ptr(:,:), target_ptr_3d(:,:,:) + real :: init_val = -999.9 print*,"- CALL FieldCreate FOR TARGET GRID T2M." t2m_target_grid = ESMF_FieldCreate(target_grid, & @@ -3215,6 +3250,14 @@ subroutine create_surface_esmf_fields if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldCreate", rc) + print*,"- INITIALIZE TARGET grid t2m." + call ESMF_FieldGet(t2m_target_grid, & + farrayPtr=target_ptr, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + + target_ptr = init_val + print*,"- CALL FieldCreate FOR TARGET GRID Q2M." q2m_target_grid = ESMF_FieldCreate(target_grid, & typekind=ESMF_TYPEKIND_R8, & @@ -3222,6 +3265,14 @@ subroutine create_surface_esmf_fields if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldCreate", rc) + print*,"- INITIALIZE TARGET grid q2m." + call ESMF_FieldGet(q2m_target_grid, & + farrayPtr=target_ptr, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + + target_ptr = init_val + print*,"- CALL FieldCreate FOR TARGET GRID TPRCP." tprcp_target_grid = ESMF_FieldCreate(target_grid, & typekind=ESMF_TYPEKIND_R8, & @@ -3229,6 +3280,14 @@ subroutine create_surface_esmf_fields if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldCreate", rc) + print*,"- INITIALIZE TARGET grid tprcp." + call ESMF_FieldGet(tprcp_target_grid, & + farrayPtr=target_ptr, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + + target_ptr = init_val + print*,"- CALL FieldCreate FOR TARGET GRID F10M." f10m_target_grid = ESMF_FieldCreate(target_grid, & typekind=ESMF_TYPEKIND_R8, & @@ -3236,6 +3295,14 @@ subroutine create_surface_esmf_fields if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldCreate", rc) + print*,"- INITIALIZE TARGET grid f10m." + call ESMF_FieldGet(f10m_target_grid, & + farrayPtr=target_ptr, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + + target_ptr = init_val + print*,"- CALL FieldCreate FOR TARGET GRID FFMM." ffmm_target_grid = ESMF_FieldCreate(target_grid, & typekind=ESMF_TYPEKIND_R8, & @@ -3243,6 +3310,14 @@ subroutine create_surface_esmf_fields if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldCreate", rc) + print*,"- INITIALIZE TARGET grid ffmm." + call ESMF_FieldGet(ffmm_target_grid, & + farrayPtr=target_ptr, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + + target_ptr = init_val + print*,"- CALL FieldCreate FOR TARGET GRID USTAR." ustar_target_grid = ESMF_FieldCreate(target_grid, & typekind=ESMF_TYPEKIND_R8, & @@ -3250,6 +3325,14 @@ subroutine create_surface_esmf_fields if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldCreate", rc) + print*,"- INITIALIZE TARGET grid ustar." + call ESMF_FieldGet(ustar_target_grid, & + farrayPtr=target_ptr, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + + target_ptr = init_val + print*,"- CALL FieldCreate FOR TARGET GRID SNOW LIQ EQUIV." snow_liq_equiv_target_grid = ESMF_FieldCreate(target_grid, & typekind=ESMF_TYPEKIND_R8, & @@ -3257,6 +3340,14 @@ subroutine create_surface_esmf_fields if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldCreate", rc) + print*,"- INITIALIZE TARGET grid snow liq equiv." + call ESMF_FieldGet(snow_liq_equiv_target_grid, & + farrayPtr=target_ptr, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + + target_ptr = init_val + print*,"- CALL FieldCreate FOR TARGET GRID SNOW DEPTH." snow_depth_target_grid = ESMF_FieldCreate(target_grid, & typekind=ESMF_TYPEKIND_R8, & @@ -3264,6 +3355,14 @@ subroutine create_surface_esmf_fields if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldCreate", rc) + print*,"- INITIALIZE TARGET grid snow depth." + call ESMF_FieldGet(snow_depth_target_grid, & + farrayPtr=target_ptr, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + + target_ptr = init_val + print*,"- CALL FieldCreate FOR TARGET GRID SEA ICE FRACTION." seaice_fract_target_grid = ESMF_FieldCreate(target_grid, & typekind=ESMF_TYPEKIND_R8, & @@ -3271,6 +3370,14 @@ subroutine create_surface_esmf_fields if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldCreate", rc) + print*,"- INITIALIZE TARGET grid sea ice fraction." + call ESMF_FieldGet(seaice_fract_target_grid, & + farrayPtr=target_ptr, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + + target_ptr = init_val + print*,"- CALL FieldCreate FOR TARGET GRID SEA ICE DEPTH." seaice_depth_target_grid = ESMF_FieldCreate(target_grid, & typekind=ESMF_TYPEKIND_R8, & @@ -3278,6 +3385,14 @@ subroutine create_surface_esmf_fields if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldCreate", rc) + print*,"- INITIALIZE TARGET sea ice depth." + call ESMF_FieldGet(seaice_depth_target_grid, & + farrayPtr=target_ptr, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + + target_ptr = init_val + print*,"- CALL FieldCreate FOR TARGET GRID SEA ICE SKIN TEMP." seaice_skin_temp_target_grid = ESMF_FieldCreate(target_grid, & typekind=ESMF_TYPEKIND_R8, & @@ -3285,6 +3400,14 @@ subroutine create_surface_esmf_fields if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldCreate", rc) + print*,"- INITIALIZE TARGET sea ice skin temp." + call ESMF_FieldGet(seaice_skin_temp_target_grid, & + farrayPtr=target_ptr, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + + target_ptr = init_val + print*,"- CALL FieldCreate FOR TARGET GRID SRFLAG." srflag_target_grid = ESMF_FieldCreate(target_grid, & typekind=ESMF_TYPEKIND_R8, & @@ -3292,6 +3415,14 @@ subroutine create_surface_esmf_fields if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldCreate", rc) + print*,"- INITIALIZE TARGET srflag." + call ESMF_FieldGet(srflag_target_grid, & + farrayPtr=target_ptr, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + + target_ptr = init_val + print*,"- CALL FieldCreate FOR TARGET GRID SKIN TEMPERATURE." skin_temp_target_grid = ESMF_FieldCreate(target_grid, & typekind=ESMF_TYPEKIND_R8, & @@ -3299,6 +3430,14 @@ subroutine create_surface_esmf_fields if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldCreate", rc) + print*,"- INITIALIZE TARGET grid skin temp." + call ESMF_FieldGet(skin_temp_target_grid, & + farrayPtr=target_ptr, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + + target_ptr = init_val + print*,"- CALL FieldCreate FOR TARGET GRID CANOPY MOISTURE CONTENT." canopy_mc_target_grid = ESMF_FieldCreate(target_grid, & typekind=ESMF_TYPEKIND_R8, & @@ -3306,6 +3445,14 @@ subroutine create_surface_esmf_fields if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldCreate", rc) + print*,"- INITIALIZE TARGET grid canopy moisture." + call ESMF_FieldGet(canopy_mc_target_grid, & + farrayPtr=target_ptr, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + + target_ptr = init_val + print*,"- CALL FieldCreate FOR TARGET GRID Z0." z0_target_grid = ESMF_FieldCreate(target_grid, & typekind=ESMF_TYPEKIND_R8, & @@ -3313,6 +3460,14 @@ subroutine create_surface_esmf_fields if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldCreate", rc) + print*,"- INITIALIZE TARGET grid z0." + call ESMF_FieldGet(z0_target_grid, & + farrayPtr=target_ptr, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + + target_ptr = init_val + print*,"- CALL FieldCreate FOR INTERPOLATED TARGET GRID TERRAIN." terrain_from_input_grid = ESMF_FieldCreate(target_grid, & typekind=ESMF_TYPEKIND_R8, & @@ -3320,6 +3475,14 @@ subroutine create_surface_esmf_fields if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldCreate", rc) + print*,"- INITIALIZE TARGET grid interpolated terrain." + call ESMF_FieldGet(terrain_from_input_grid, & + farrayPtr=target_ptr, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + + target_ptr = init_val + print*,"- CALL FieldCreate FOR INTERPOLATED TARGET GRID SOIL TYPE." soil_type_from_input_grid = ESMF_FieldCreate(target_grid, & typekind=ESMF_TYPEKIND_R8, & @@ -3327,6 +3490,14 @@ subroutine create_surface_esmf_fields if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldCreate", rc) + print*,"- INITIALIZE TARGET grid soil type" + call ESMF_FieldGet(soil_type_from_input_grid, & + farrayPtr=target_ptr, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + + target_ptr = init_val + print*,"- CALL FieldCreate FOR TARGET GRID SOIL TEMPERATURE." soil_temp_target_grid = ESMF_FieldCreate(target_grid, & typekind=ESMF_TYPEKIND_R8, & @@ -3336,6 +3507,14 @@ subroutine create_surface_esmf_fields if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldCreate", rc) + print*,"- INITIALIZE TARGET grid soil temp" + call ESMF_FieldGet(soil_temp_target_grid, & + farrayPtr=target_ptr_3d, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + + target_ptr_3d = init_val + print*,"- CALL FieldCreate FOR TARGET GRID TOTAL SOIL MOISTURE." soilm_tot_target_grid = ESMF_FieldCreate(target_grid, & typekind=ESMF_TYPEKIND_R8, & @@ -3345,6 +3524,14 @@ subroutine create_surface_esmf_fields if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldCreate", rc) + print*,"- INITIALIZE TARGET grid soil moist" + call ESMF_FieldGet(soilm_tot_target_grid, & + farrayPtr=target_ptr_3d, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + + target_ptr_3d = init_val + print*,"- CALL FieldCreate FOR TARGET GRID LIQUID SOIL MOISTURE." soilm_liq_target_grid = ESMF_FieldCreate(target_grid, & typekind=ESMF_TYPEKIND_R8, & @@ -3354,6 +3541,14 @@ subroutine create_surface_esmf_fields if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & call error_handler("IN FieldCreate", rc) + print*,"- INITIALIZE TARGET grid soil liq" + call ESMF_FieldGet(soilm_liq_target_grid, & + farrayPtr=target_ptr_3d, rc=rc) + if(ESMF_logFoundError(rcToCheck=rc,msg=ESMF_LOGERR_PASSTHRU,line=__line__,file=__file__)) & + call error_handler("IN FieldGet", rc) + + target_ptr_3d = init_val + end subroutine create_surface_esmf_fields subroutine create_nst_esmf_fields