266 use sfc_input_data,
only : canopy_mc_input_grid, &
269 landsea_mask_input_grid, &
271 seaice_depth_input_grid, &
272 seaice_fract_input_grid, &
273 seaice_skin_temp_input_grid, &
274 skin_temp_input_grid, &
275 snow_depth_input_grid, &
276 snow_liq_equiv_input_grid, &
277 soil_temp_input_grid, &
278 soil_type_input_grid, &
279 soilm_tot_input_grid, &
284 veg_type_input_grid, &
286 veg_type_landice_input, &
287 veg_greenness_input_grid, &
288 max_veg_greenness_input_grid, &
289 min_veg_greenness_input_grid, &
292 use nst_input_data,
only : c_d_input_grid, &
295 dt_cool_input_grid, &
340 integer,
intent(in) :: localpet
342 integer :: l(1), u(1)
343 integer :: i, j, ij, rc, tile
344 integer :: clb_target(2), cub_target(2)
345 integer :: isrctermprocessing
346 integer :: num_fields
347 integer :: vgfrc_ind, mmvg_ind, lai_ind
348 integer,
allocatable :: search_nums(:)
349 integer(esmf_kind_i4),
pointer :: unmapped_ptr(:)
350 integer(esmf_kind_i4),
pointer :: mask_input_ptr(:,:)
351 integer(esmf_kind_i4),
pointer :: mask_target_ptr(:,:)
352 integer(esmf_kind_i8),
pointer :: landmask_target_ptr(:,:)
353 integer(esmf_kind_i8),
allocatable :: mask_target_one_tile(:,:)
354 integer(esmf_kind_i8),
allocatable :: water_target_one_tile(:,:)
355 integer(esmf_kind_i8),
allocatable :: land_target_one_tile(:,:)
356 integer(esmf_kind_i8),
pointer :: seamask_target_ptr(:,:)
358 real(esmf_kind_r8),
allocatable :: data_one_tile(:,:)
359 real(esmf_kind_r8),
allocatable :: data_one_tile2(:,:)
360 real(esmf_kind_r8),
allocatable :: data_one_tile_3d(:,:,:)
361 real(esmf_kind_r8),
allocatable :: latitude_one_tile(:,:)
362 real(esmf_kind_r8),
allocatable :: fice_target_one_tile(:,:)
363 real(esmf_kind_r8),
pointer :: seaice_fract_target_ptr(:,:)
364 real(esmf_kind_r8),
pointer :: srflag_target_ptr(:,:)
365 real(esmf_kind_r8),
pointer :: terrain_from_input_ptr(:,:)
366 real(esmf_kind_r8),
pointer :: veg_type_target_ptr(:,:)
367 real(esmf_kind_r8),
pointer :: soil_type_target_ptr(:,:)
368 real(esmf_kind_r8),
pointer :: landmask_input_ptr(:,:)
369 real(esmf_kind_r8),
pointer :: veg_type_input_ptr(:,:)
370 real(esmf_kind_r8),
allocatable :: veg_type_target_one_tile(:,:)
371 real(esmf_kind_r8) :: ice_lim
373 type(esmf_regridmethod_flag) :: method
374 type(esmf_routehandle) :: regrid_bl_no_mask
375 type(esmf_routehandle) :: regrid_all_land
376 type(esmf_routehandle) :: regrid_land
377 type(esmf_routehandle) :: regrid_landice
378 type(esmf_routehandle) :: regrid_nonland
379 type(esmf_routehandle) :: regrid_seaice
380 type(esmf_routehandle) :: regrid_water
382 type(esmf_fieldbundle) :: bundle_all_target, bundle_all_input
383 type(esmf_fieldbundle) :: bundle_seaice_target, bundle_seaice_input
384 type(esmf_fieldbundle) :: bundle_water_target, bundle_water_input
385 type(esmf_fieldbundle) :: bundle_allland_target, bundle_allland_input
386 type(esmf_fieldbundle) :: bundle_landice_target, bundle_landice_input
387 type(esmf_fieldbundle) :: bundle_nolandice_target, bundle_nolandice_input
389 logical,
allocatable :: dozero(:)
395 method=esmf_regridmethod_bilinear
397 isrctermprocessing = 1
399 print*,
"- CALL FieldRegridStore FOR NON-MASKED BILINEAR INTERPOLATION."
400 call esmf_fieldregridstore(t2m_input_grid, &
402 polemethod=esmf_polemethod_allavg, &
403 srctermprocessing=isrctermprocessing, &
404 routehandle=regrid_bl_no_mask, &
405 regridmethod=method, rc=rc)
406 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
407 call error_handler(
"IN FieldRegridStore", rc)
409 bundle_all_target = esmf_fieldbundlecreate(name=
"all points target", rc=rc)
410 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
411 call error_handler(
"IN FieldBundleCreate", rc)
412 bundle_all_input = esmf_fieldbundlecreate(name=
"all points input", rc=rc)
413 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
414 call error_handler(
"IN FieldBundleCreate", rc)
416 call esmf_fieldbundleadd(bundle_all_target, (/t2m_target_grid,q2m_target_grid,tprcp_target_grid, &
417 f10m_target_grid,ffmm_target_grid,ustar_target_grid,srflag_target_grid/), &
419 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
420 call error_handler(
"IN FieldBundleAdd", rc)
421 call esmf_fieldbundleadd(bundle_all_input, (/t2m_input_grid,q2m_input_grid,tprcp_input_grid, &
422 f10m_input_grid,ffmm_input_grid,ustar_input_grid,srflag_input_grid/), &
424 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
425 call error_handler(
"IN FieldBundleAdd", rc)
427 call esmf_fieldbundleget(bundle_all_target,fieldcount=num_fields,rc=rc)
428 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
429 call error_handler(
"IN FieldBundleGet", rc)
431 allocate(dozero(num_fields))
434 call regrid_many(bundle_all_input,bundle_all_target,num_fields,regrid_bl_no_mask,dozero)
437 call esmf_fieldbundledestroy(bundle_all_target,rc=rc)
438 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
439 call error_handler(
"IN FieldBundleDestroy", rc)
440 call esmf_fieldbundledestroy(bundle_all_input,rc=rc)
441 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
442 call error_handler(
"IN FieldBundleDestroy", rc)
444 print*,
"- CALL FieldGet FOR SRFLAG."
445 call esmf_fieldget(srflag_target_grid, &
446 farrayptr=srflag_target_ptr, rc=rc)
447 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
448 call error_handler(
"IN FieldGet", rc)
455 srflag_target_ptr = nint(srflag_target_ptr)
457 print*,
"- CALL FieldRegridRelease."
458 call esmf_fieldregridrelease(routehandle=regrid_bl_no_mask, rc=rc)
459 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
460 call error_handler(
"IN FieldRegridRelease", rc)
466 print*,
"- CALL GridAddItem FOR TARGET GRID."
468 itemflag=esmf_griditem_mask, &
469 staggerloc=esmf_staggerloc_center, rc=rc)
470 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
471 call error_handler(
"IN GridAddItem", rc)
473 print*,
"- CALL GridGetItem FOR TARGET GRID."
475 itemflag=esmf_griditem_mask, &
476 farrayptr=mask_target_ptr, rc=rc)
477 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
478 call error_handler(
"IN GridGetItem", rc)
480 print*,
"- CALL FieldGet FOR TARGET GRID SEAMASK."
482 computationallbound=clb_target, &
483 computationalubound=cub_target, &
484 farrayptr=seamask_target_ptr, rc=rc)
485 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
486 call error_handler(
"IN FieldGet", rc)
488 print*,
"- CALL FieldGet FOR TARGET GRID LANDMASK."
490 farrayptr=landmask_target_ptr, rc=rc)
491 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
492 call error_handler(
"IN FieldGet", rc)
494 print*,
"- CALL GridAddItem FOR INPUT GRID SEAMASK."
496 itemflag=esmf_griditem_mask, &
497 staggerloc=esmf_staggerloc_center, rc=rc)
498 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
499 call error_handler(
"IN GridAddItem", rc)
501 print*,
"- CALL FieldGet FOR INPUT GRID LANDMASK."
502 call esmf_fieldget(landsea_mask_input_grid, &
503 farrayptr=landmask_input_ptr, rc=rc)
504 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
505 call error_handler(
"IN FieldGet", rc)
507 print*,
"- CALL GridGetItem FOR INPUT GRID LANDMASK."
509 itemflag=esmf_griditem_mask, &
510 farrayptr=mask_input_ptr, rc=rc)
511 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
512 call error_handler(
"IN GridGetItem", rc)
514 if (localpet == 0)
then
519 allocate(data_one_tile(0,0))
520 allocate(data_one_tile_3d(0,0,0))
521 allocate(mask_target_one_tile(0,0))
529 method=esmf_regridmethod_nearest_stod
531 isrctermprocessing = 1
534 where (nint(landmask_input_ptr) == 1) mask_input_ptr = 1
537 where (landmask_target_ptr == 1) mask_target_ptr = 1
539 print*,
"- CALL FieldCreate FOR TERRAIN FROM INPUT GRID LAND."
541 typekind=esmf_typekind_r8, &
542 staggerloc=esmf_staggerloc_center, rc=rc)
543 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
544 call error_handler(
"IN FieldCreate", rc)
546 print*,
"- CALL FieldRegridStore for land fields."
549 srcmaskvalues=(/0/), &
550 dstmaskvalues=(/0/), &
551 polemethod=esmf_polemethod_none, &
552 srctermprocessing=isrctermprocessing, &
553 unmappedaction=esmf_unmappedaction_ignore, &
554 normtype=esmf_normtype_fracarea, &
555 routehandle=regrid_all_land, &
556 regridmethod=method, &
557 unmappeddstlist=unmapped_ptr, rc=rc)
558 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
559 call error_handler(
"IN FieldRegridStore", rc)
561 print*,
"- CALL Field_Regrid TERRAIN."
564 routehandle=regrid_all_land, &
565 termorderflag=esmf_termorder_srcseq, rc=rc)
566 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
567 call error_handler(
"IN FieldRegrid", rc)
569 print*,
"- CALL FieldGet FOR terrain from input grid at land."
571 farrayptr=terrain_from_input_ptr, rc=rc)
572 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
573 call error_handler(
"IN FieldGet", rc)
575 l = lbound(unmapped_ptr)
576 u = ubound(unmapped_ptr)
580 terrain_from_input_ptr(i,j) = -9999.9
582 nullify(terrain_from_input_ptr)
586 print*,
"- CALL FieldGather FOR TARGET LANDMASK TILE: ", tile
588 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
589 call error_handler(
"IN FieldGather", rc)
591 print*,
"- CALL FieldGather FOR TERRAIN FROM INPUT GRID: ", tile
593 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
594 call error_handler(
"IN FieldGather", rc)
596 if (localpet == 0)
then
598 land_target_one_tile = 0
599 where(mask_target_one_tile == 1) land_target_one_tile = 1
601 deallocate(land_target_one_tile)
604 print*,
"- CALL FieldScatter FOR TERRAIN FROM INPUT GRID: ", tile
606 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
607 call error_handler(
"IN FieldScatter", rc)
612 print*,
"- CALL FieldRegrid VEG TYPE."
613 call esmf_fieldregrid(veg_type_input_grid, &
615 routehandle=regrid_all_land, &
616 termorderflag=esmf_termorder_srcseq, rc=rc)
617 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
618 call error_handler(
"IN FieldRegrid", rc)
620 print*,
"- CALL FieldGet FOR TARGET grid veg type."
622 farrayptr=veg_type_target_ptr, rc=rc)
623 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
624 call error_handler(
"IN FieldGet", rc)
626 l = lbound(unmapped_ptr)
627 u = ubound(unmapped_ptr)
631 veg_type_target_ptr(i,j) = -9999.9
635 print*,
"- CALL FieldGather FOR TARGET GRID VEG TYPE TILE: ", tile
637 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
638 call error_handler(
"IN FieldGather", rc)
640 print*,
"- CALL FieldGather FOR TARGET LANDMASK TILE: ", tile
642 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
643 call error_handler(
"IN FieldGather", rc)
645 if (localpet == 0)
then
647 land_target_one_tile = 0
648 where(mask_target_one_tile == 1) land_target_one_tile = 1
650 deallocate(land_target_one_tile)
653 print*,
"- CALL FieldScatter FOR TARGET GRID VEG TYPE: ", tile
655 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
656 call error_handler(
"IN FieldScatter", rc)
658 nullify(veg_type_target_ptr)
661 print*,
"- CALL FieldRegridRelease."
662 call esmf_fieldregridrelease(routehandle=regrid_all_land, rc=rc)
663 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
664 call error_handler(
"IN FieldRegridRelease", rc)
674 where (nint(landmask_input_ptr) == 1) mask_input_ptr = 0
681 mask_target_ptr = int(seamask_target_ptr,kind=esmf_kind_i4)
683 method=esmf_regridmethod_conserve
685 isrctermprocessing = 1
687 print*,
"- CALL FieldRegridStore for sea ice fraction."
688 call esmf_fieldregridstore(seaice_fract_input_grid, &
689 seaice_fract_target_grid, &
690 srcmaskvalues=(/0/), &
691 dstmaskvalues=(/0/), &
692 polemethod=esmf_polemethod_none, &
693 srctermprocessing=isrctermprocessing, &
694 unmappedaction=esmf_unmappedaction_ignore, &
695 normtype=esmf_normtype_fracarea, &
696 routehandle=regrid_nonland, &
697 regridmethod=method, &
698 unmappeddstlist=unmapped_ptr, rc=rc)
699 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
700 call error_handler(
"IN FieldRegridStore", rc)
702 print*,
"- CALL Field_Regrid for sea ice fraction."
703 call esmf_fieldregrid(seaice_fract_input_grid, &
704 seaice_fract_target_grid, &
705 routehandle=regrid_nonland, &
706 termorderflag=esmf_termorder_srcseq, rc=rc)
707 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
708 call error_handler(
"IN FieldRegrid", rc)
710 print*,
"- CALL FieldGet FOR TARGET grid sea ice fraction."
711 call esmf_fieldget(seaice_fract_target_grid, &
712 farrayptr=seaice_fract_target_ptr, rc=rc)
713 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
714 call error_handler(
"IN FieldGet", rc)
716 l = lbound(unmapped_ptr)
717 u = ubound(unmapped_ptr)
721 seaice_fract_target_ptr(i,j) = -9999.9
726 if (localpet == 0)
then
729 allocate(latitude_one_tile(0,0))
734 print*,
"- CALL FieldGather FOR TARGET GRID SEAICE FRACTION TILE: ", tile
735 call esmf_fieldgather(seaice_fract_target_grid, data_one_tile, rootpet=0, tile=tile, rc=rc)
736 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
737 call error_handler(
"IN FieldGather", rc)
739 print*,
"- CALL FieldGather FOR TARGET GRID MASK TILE: ", tile
740 call esmf_fieldgather(
seamask_target_grid, mask_target_one_tile, rootpet=0, tile=tile, rc=rc)
741 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
742 call error_handler(
"IN FieldGather", rc)
744 print*,
"- CALL FieldGather FOR TARGET LATITUDE TILE: ", tile
746 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
747 call error_handler(
"IN FieldGather", rc)
749 if (localpet == 0)
then
751 latitude=latitude_one_tile)
759 ice_lim = 0.95_esmf_kind_r8
761 if (localpet == 0)
then
764 if (data_one_tile(i,j) > ice_lim)
then
765 data_one_tile(i,j) = 1.0_esmf_kind_r8
767 if (data_one_tile(i,j) < 0.15_esmf_kind_r8) data_one_tile(i,j) = 0.0_esmf_kind_r8
772 print*,
"- CALL FieldScatter FOR TARGET GRID SEAICE FRACTION TILE: ", tile
773 call esmf_fieldscatter(seaice_fract_target_grid, data_one_tile, rootpet=0, tile=tile, rc=rc)
774 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
775 call error_handler(
"IN FieldScatter", rc)
779 deallocate(latitude_one_tile)
781 print*,
"- CALL FieldRegridRelease."
782 call esmf_fieldregridrelease(routehandle=regrid_nonland, rc=rc)
783 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
784 call error_handler(
"IN FieldRegridRelease", rc)
792 where (nint(landmask_input_ptr) == 2) mask_input_ptr = 1
795 do j = clb_target(2), cub_target(2)
796 do i = clb_target(1), cub_target(1)
797 if (seaice_fract_target_ptr(i,j) > 0.0) mask_target_ptr(i,j) = 1
801 method=esmf_regridmethod_nearest_stod
802 isrctermprocessing = 1
804 print*,
"- CALL FieldRegridStore for 3d seaice fields."
805 call esmf_fieldregridstore(soil_temp_input_grid, &
806 ice_temp_target_grid, &
807 srcmaskvalues=(/0/), &
808 dstmaskvalues=(/0/), &
809 polemethod=esmf_polemethod_none, &
810 srctermprocessing=isrctermprocessing, &
811 unmappedaction=esmf_unmappedaction_ignore, &
812 normtype=esmf_normtype_fracarea, &
813 routehandle=regrid_seaice, &
814 regridmethod=method, &
815 unmappeddstlist=unmapped_ptr, rc=rc)
817 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
818 call error_handler(
"IN FieldRegridStore", rc)
820 bundle_seaice_target = esmf_fieldbundlecreate(name=
"sea ice target", rc=rc)
821 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
822 call error_handler(
"IN FieldBundleCreate", rc)
823 bundle_seaice_input = esmf_fieldbundlecreate(name=
"sea ice input", rc=rc)
824 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
825 call error_handler(
"IN FieldBundleCreate", rc)
827 call esmf_fieldbundleadd(bundle_seaice_target, (/seaice_depth_target_grid, snow_depth_at_ice_target_grid, &
828 snow_liq_equiv_at_ice_target_grid, seaice_skin_temp_target_grid, &
829 ice_temp_target_grid/), rc=rc)
831 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
832 call error_handler(
"IN FieldBundleAdd", rc)
834 call esmf_fieldbundleadd(bundle_seaice_input, (/seaice_depth_input_grid, snow_depth_input_grid, &
835 snow_liq_equiv_input_grid, seaice_skin_temp_input_grid, &
836 soil_temp_input_grid/), rc=rc)
837 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
838 call error_handler(
"IN FieldBundleAdd", rc)
840 call esmf_fieldbundleget(bundle_seaice_target,fieldcount=num_fields,rc=rc)
841 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
842 call error_handler(
"IN FieldBundleGet", rc)
844 allocate(search_nums(num_fields))
845 allocate(dozero(num_fields))
847 search_nums = (/92,66,65,21,21/)
850 l = lbound(unmapped_ptr)
851 u = ubound(unmapped_ptr)
853 call regrid_many(bundle_seaice_input,bundle_seaice_target,num_fields,regrid_seaice,dozero, &
854 unmapped_ptr=unmapped_ptr )
856 call esmf_fieldbundledestroy(bundle_seaice_input,rc=rc)
857 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
858 call error_handler(
"IN FieldBundleDestroy", rc)
860 if (localpet == 0)
then
863 allocate(fice_target_one_tile(0,0))
868 print*,
"- CALL FieldGather FOR TARGET LANDMASK TILE: ", tile
869 call esmf_fieldgather(seaice_fract_target_grid, fice_target_one_tile, rootpet=0, tile=tile, rc=rc)
870 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
871 call error_handler(
"IN FieldGather", rc)
873 if (localpet == 0)
then
874 mask_target_one_tile = 0
875 where(fice_target_one_tile > 0.0) mask_target_one_tile = 1
876 call search_many(num_fields,bundle_seaice_target,tile, search_nums,localpet, &
877 mask=mask_target_one_tile)
879 call search_many(num_fields,bundle_seaice_target, tile,search_nums,localpet)
884 deallocate(search_nums)
886 call esmf_fieldbundledestroy(bundle_seaice_target,rc=rc)
887 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__))&
888 call error_handler(
"IN FieldBundleDestroy", rc)
890 print*,
"- CALL FieldRegridRelease."
891 call esmf_fieldregridrelease(routehandle=regrid_seaice, rc=rc)
892 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
893 call error_handler(
"IN FieldRegridRelease", rc)
900 where (nint(landmask_input_ptr) == 0) mask_input_ptr = 1
907 where (seamask_target_ptr == 1) mask_target_ptr = 1
908 where (seaice_fract_target_ptr == 1.0_esmf_kind_r8) mask_target_ptr = 0
910 method=esmf_regridmethod_conserve
911 isrctermprocessing = 1
913 print*,
"- CALL FieldRegridStore for water fields."
914 call esmf_fieldregridstore(skin_temp_input_grid, &
916 srcmaskvalues=(/0/), &
917 dstmaskvalues=(/0/), &
918 polemethod=esmf_polemethod_none, &
919 srctermprocessing=isrctermprocessing, &
920 unmappedaction=esmf_unmappedaction_ignore, &
921 normtype=esmf_normtype_fracarea, &
922 routehandle=regrid_water, &
923 regridmethod=method, &
924 unmappeddstlist=unmapped_ptr, rc=rc)
925 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
926 call error_handler(
"IN FieldRegridStore", rc)
928 bundle_water_target = esmf_fieldbundlecreate(name=
"water target", rc=rc)
929 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
930 call error_handler(
"IN FieldBundleCreate", rc)
931 bundle_water_input = esmf_fieldbundlecreate(name=
"water input", rc=rc)
932 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
933 call error_handler(
"IN FieldBundleCreate", rc)
935 call esmf_fieldbundleadd(bundle_water_target, (/sst_target_grid, z0_water_target_grid/), rc=rc)
937 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
938 call error_handler(
"IN FieldBundleAdd", rc)
940 call esmf_fieldbundleadd(bundle_water_input, (/skin_temp_input_grid, z0_input_grid/), rc=rc)
941 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
942 call error_handler(
"IN FieldBundleAdd", rc)
946 call esmf_fieldbundleadd(bundle_water_target, (/c_d_target_grid,c_0_target_grid,d_conv_target_grid, &
947 dt_cool_target_grid,ifd_target_grid,qrain_target_grid,tref_target_grid, &
948 w_d_target_grid,w_0_target_grid,xs_target_grid,xt_target_grid,xu_target_grid, &
949 xv_target_grid,xz_target_grid,xtts_target_grid,xzts_target_grid, &
950 z_c_target_grid,zm_target_grid/), rc=rc)
951 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
952 call error_handler(
"IN FieldBundleAdd", rc)
954 call esmf_fieldbundleadd(bundle_water_input, (/c_d_input_grid,c_0_input_grid,d_conv_input_grid, &
955 dt_cool_input_grid,ifd_input_grid,qrain_input_grid,tref_input_grid, &
956 w_d_input_grid,w_0_input_grid,xs_input_grid,xt_input_grid,xu_input_grid, &
957 xv_input_grid,xz_input_grid,xtts_input_grid,xzts_input_grid, &
958 z_c_input_grid,zm_input_grid/), rc=rc)
959 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
960 call error_handler(
"IN FieldBundleAdd", rc)
961 call esmf_fieldbundleget(bundle_water_target,fieldcount=num_fields,rc=rc)
962 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
963 call error_handler(
"IN FieldBundleGet", rc)
965 allocate(search_nums(num_fields))
966 allocate(dozero(num_fields))
968 search_nums(:)=(/11,83,0,0,0,0,1,0,11,0,0,0,0,0,0,30,0,0,0,0/)
972 call esmf_fieldbundleget(bundle_water_target,fieldcount=num_fields,rc=rc)
973 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
974 call error_handler(
"IN FieldBundleGet", rc)
976 allocate(search_nums(num_fields))
977 allocate(dozero(num_fields))
978 search_nums(:)=(/11,83/)
982 call regrid_many(bundle_water_input,bundle_water_target,num_fields,regrid_water,dozero, &
983 unmapped_ptr=unmapped_ptr, resetifd=.true.)
985 call esmf_fieldbundledestroy(bundle_water_input,rc=rc)
986 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
987 call error_handler(
"IN FieldBundleDestroy", rc)
990 if (localpet == 0)
then
993 allocate(latitude_one_tile(0,0))
998 print*,
"- CALL FieldGather FOR TARGET SEAMASK TILE: ", tile
999 call esmf_fieldgather(
seamask_target_grid, mask_target_one_tile, rootpet=0, tile=tile, rc=rc)
1000 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1001 call error_handler(
"IN FieldGather", rc)
1003 print*,
"- CALL FieldGather FOR TARGET LANDMASK TILE: ", tile
1004 call esmf_fieldgather(seaice_fract_target_grid, fice_target_one_tile, rootpet=0, tile=tile, rc=rc)
1005 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1006 call error_handler(
"IN FieldGather", rc)
1008 print*,
"- CALL FieldGather FOR TARGET LATITUDE TILE: ", tile
1010 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1011 call error_handler(
"IN FieldGather", rc)
1014 if (localpet == 0)
then
1016 water_target_one_tile = 0
1017 where(mask_target_one_tile == 1) water_target_one_tile = 1
1018 where(fice_target_one_tile == 1.0_esmf_kind_r8) water_target_one_tile = 0
1019 call search_many(num_fields,bundle_water_target, tile,search_nums,localpet, &
1020 latitude=latitude_one_tile,mask=water_target_one_tile)
1022 call search_many(num_fields,bundle_water_target, tile,search_nums,localpet)
1025 if (localpet == 0)
deallocate(water_target_one_tile)
1029 deallocate(latitude_one_tile,search_nums,fice_target_one_tile)
1031 call esmf_fieldbundledestroy(bundle_water_target,rc=rc)
1032 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1033 call error_handler(
"IN FieldBundleDestroy", rc)
1035 print*,
"- CALL FieldRegridRelease."
1036 call esmf_fieldregridrelease(routehandle=regrid_water, rc=rc)
1037 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1038 call error_handler(
"IN FieldRegridRelease", rc)
1045 where (nint(landmask_input_ptr) == 1) mask_input_ptr = 1
1048 where (landmask_target_ptr == 1) mask_target_ptr = 1
1050 method=esmf_regridmethod_conserve
1051 isrctermprocessing = 1
1053 print*,
"- CALL FieldRegridStore for land fields."
1054 call esmf_fieldregridstore(snow_depth_input_grid, &
1055 snow_depth_target_grid, &
1056 srcmaskvalues=(/0/), &
1057 dstmaskvalues=(/0/), &
1058 polemethod=esmf_polemethod_none, &
1059 srctermprocessing=isrctermprocessing, &
1060 unmappedaction=esmf_unmappedaction_ignore, &
1061 normtype=esmf_normtype_fracarea, &
1062 routehandle=regrid_all_land, &
1063 regridmethod=method, &
1064 unmappeddstlist=unmapped_ptr, rc=rc)
1065 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1066 call error_handler(
"IN FieldRegridStore", rc)
1068 bundle_allland_target = esmf_fieldbundlecreate(name=
"all land target", rc=rc)
1069 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1070 call error_handler(
"IN FieldBundleCreate", rc)
1071 bundle_allland_input = esmf_fieldbundlecreate(name=
"all land input", rc=rc)
1072 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1073 call error_handler(
"IN FieldBundleCreate", rc)
1074 call esmf_fieldbundleadd(bundle_allland_target, (/snow_depth_target_grid, &
1075 snow_liq_equiv_target_grid/), rc=rc)
1076 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1077 call error_handler(
"IN FieldBundleAdd", rc)
1078 call esmf_fieldbundleadd(bundle_allland_input, (/snow_depth_input_grid, &
1079 snow_liq_equiv_input_grid/), rc=rc)
1080 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1081 call error_handler(
"IN FieldBundleAdd", rc)
1082 call esmf_fieldbundleget(bundle_allland_target,fieldcount=num_fields,rc=rc)
1083 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1084 call error_handler(
"IN FieldBundleGet", rc)
1086 allocate(search_nums(num_fields))
1087 allocate(dozero(num_fields))
1089 search_nums = (/66,65/)
1090 dozero=(/.false.,.false./)
1092 call regrid_many(bundle_allland_input,bundle_allland_target,num_fields,regrid_all_land,dozero, &
1093 unmapped_ptr=unmapped_ptr)
1095 call esmf_fieldbundledestroy(bundle_allland_input,rc=rc)
1096 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1097 call error_handler(
"IN FieldBundleDestroy", rc)
1101 print*,
"- CALL FieldGather FOR TARGET LANDMASK TILE: ", tile
1103 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1104 call error_handler(
"IN FieldGather", rc)
1106 if (localpet == 0)
then
1108 land_target_one_tile = 0
1109 where(mask_target_one_tile == 1) land_target_one_tile = 1
1111 call search_many(num_fields,bundle_allland_target, &
1112 tile,search_nums,localpet, mask=land_target_one_tile)
1114 call search_many(num_fields,bundle_allland_target, tile,search_nums,localpet)
1117 if (localpet == 0)
deallocate(land_target_one_tile)
1120 deallocate(search_nums)
1121 call esmf_fieldbundledestroy(bundle_allland_target,rc=rc)
1122 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1123 call error_handler(
"IN FieldBundleDestroy", rc)
1125 print*,
"- CALL FieldRegridRelease."
1126 call esmf_fieldregridrelease(routehandle=regrid_all_land, rc=rc)
1127 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1128 call error_handler(
"IN FieldRegridRelease", rc)
1134 print*,
"- CALL FieldGet FOR INPUT GRID VEG TYPE."
1135 call esmf_fieldget(veg_type_input_grid, &
1136 farrayptr=veg_type_input_ptr, rc=rc)
1137 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1138 call error_handler(
"IN FieldGet", rc)
1141 where (nint(veg_type_input_ptr) == veg_type_landice_input) mask_input_ptr = 1
1143 print*,
"- CALL FieldGet FOR TARGET GRID VEG TYPE."
1145 farrayptr=veg_type_target_ptr, rc=rc)
1146 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1147 call error_handler(
"IN FieldGet", rc)
1152 method=esmf_regridmethod_nearest_stod
1153 isrctermprocessing = 1
1155 print*,
"- CALL FieldRegridStore for landice fields."
1156 call esmf_fieldregridstore(soil_temp_input_grid, &
1157 soil_temp_target_grid, &
1158 srcmaskvalues=(/0/), &
1159 dstmaskvalues=(/0/), &
1160 polemethod=esmf_polemethod_none, &
1161 srctermprocessing=isrctermprocessing, &
1162 unmappedaction=esmf_unmappedaction_ignore, &
1163 normtype=esmf_normtype_fracarea, &
1164 routehandle=regrid_landice, &
1165 regridmethod=method, &
1166 unmappeddstlist=unmapped_ptr, rc=rc)
1167 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1168 call error_handler(
"IN FieldRegridStore", rc)
1170 bundle_landice_target = esmf_fieldbundlecreate(name=
"landice target", rc=rc)
1171 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1172 call error_handler(
"IN FieldBundleCreate", rc)
1173 bundle_landice_input = esmf_fieldbundlecreate(name=
"landice input", rc=rc)
1174 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1175 call error_handler(
"IN FieldBundleCreate", rc)
1177 soil_temp_target_grid/), rc=rc)
1178 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1179 call error_handler(
"IN FieldBundleAdd", rc)
1180 call esmf_fieldbundleadd(bundle_landice_input, (/skin_temp_input_grid,
terrain_input_grid,&
1181 soil_temp_input_grid/), rc=rc)
1182 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__))&
1183 call error_handler(
"IN FieldBundleAdd", rc)
1186 call esmf_fieldbundleadd(bundle_landice_input, (/soil_type_input_grid/),rc=rc)
1187 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__))&
1188 call error_handler(
"IN FieldBundleAdd", rc)
1190 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__))&
1191 call error_handler(
"IN FieldBundleAdd", rc)
1194 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1195 call error_handler(
"IN FieldBundleAdd", rc)
1196 call esmf_fieldbundleget(bundle_landice_target,fieldcount=num_fields,rc=rc)
1197 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1198 call error_handler(
"IN FieldBundleGet", rc)
1200 allocate(search_nums(num_fields))
1201 allocate(dozero(num_fields))
1204 search_nums = (/21,7,21/)
1207 search_nums = (/21,7,21,231/)
1208 dozero(:)=(/.false.,.false.,.false.,.true./)
1211 call regrid_many(bundle_landice_input,bundle_landice_target,num_fields,regrid_landice,dozero, &
1212 unmapped_ptr=unmapped_ptr )
1214 call esmf_fieldbundledestroy(bundle_landice_input,rc=rc)
1215 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1216 call error_handler(
"IN FieldBundleDestroy", rc)
1218 if (localpet == 0)
then
1223 allocate (veg_type_target_one_tile(0,0))
1224 allocate (land_target_one_tile(0,0))
1225 allocate (data_one_tile2(0,0))
1229 print*,
"- CALL FieldGather FOR TARGET VEG TYPE TILE: ", tile
1230 call esmf_fieldgather(
veg_type_target_grid, veg_type_target_one_tile, rootpet=0, tile=tile, rc=rc)
1231 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1232 call error_handler(
"IN FieldGather", rc)
1234 if (localpet == 0)
then
1235 land_target_one_tile = 0
1239 print*,
"- CALL FieldGather FOR TERRAIN FROM INPUT GRID LAND, TILE: ", tile
1241 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1242 call error_handler(
"IN FieldGather", rc)
1244 if (localpet==0)
then
1245 call search_many(num_fields,bundle_landice_target,tile,search_nums,localpet,&
1246 terrain_land=data_one_tile2,mask=land_target_one_tile)
1248 call search_many(num_fields,bundle_landice_target,tile,search_nums,localpet)
1252 deallocate (veg_type_target_one_tile)
1253 deallocate (land_target_one_tile)
1254 deallocate(search_nums)
1256 call esmf_fieldbundledestroy(bundle_landice_target,rc=rc)
1257 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1258 call error_handler(
"IN FieldBundleDestroy", rc)
1260 print*,
"- CALL FieldRegridRelease."
1261 call esmf_fieldregridrelease(routehandle=regrid_landice, rc=rc)
1262 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1263 call error_handler(
"IN FieldRegridRelease", rc)
1270 where (nint(landmask_input_ptr) == 1) mask_input_ptr = 1
1271 where (nint(veg_type_input_ptr) == veg_type_landice_input) mask_input_ptr = 0
1274 where (landmask_target_ptr == 1) mask_target_ptr = 1
1277 method=esmf_regridmethod_nearest_stod
1278 isrctermprocessing = 1
1280 print*,
"- CALL FieldRegridStore for 3d land (but no land ice) fields."
1281 call esmf_fieldregridstore(soilm_tot_input_grid, &
1282 soilm_tot_target_grid, &
1283 srcmaskvalues=(/0/), &
1284 dstmaskvalues=(/0/), &
1285 polemethod=esmf_polemethod_none, &
1286 srctermprocessing=isrctermprocessing, &
1287 unmappedaction=esmf_unmappedaction_ignore, &
1288 normtype=esmf_normtype_fracarea, &
1289 routehandle=regrid_land, &
1290 regridmethod=method, &
1291 unmappeddstlist=unmapped_ptr, rc=rc)
1292 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1293 call error_handler(
"IN FieldRegridStore", rc)
1295 bundle_nolandice_target = esmf_fieldbundlecreate(name=
"land no landice target", rc=rc)
1296 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1297 call error_handler(
"IN FieldBundleCreate", rc)
1299 bundle_nolandice_input = esmf_fieldbundlecreate(name=
"land no landice input", rc=rc)
1300 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1301 call error_handler(
"IN FieldBundleCreate", rc)
1305 canopy_mc_target_grid/), rc=rc)
1306 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1307 call error_handler(
"IN FieldBundleAdd", rc)
1309 call esmf_fieldbundleadd(bundle_nolandice_input, (/skin_temp_input_grid,
terrain_input_grid,&
1310 soil_type_input_grid,soilm_tot_input_grid,soil_temp_input_grid,&
1311 canopy_mc_input_grid/), rc=rc)
1312 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1313 call error_handler(
"IN FieldBundleAdd", rc)
1317 print*,
"- CALL Field_Regrid ."
1318 call esmf_fieldregrid(soil_type_input_grid, &
1320 routehandle=regrid_land, &
1321 zeroregion=esmf_region_select, &
1322 termorderflag=esmf_termorder_srcseq, rc=rc)
1323 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1324 call error_handler(
"IN FieldRegrid", rc)
1327 farrayptr=soil_type_target_ptr, rc=rc)
1328 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1329 call error_handler(
"IN FieldGet", rc)
1331 l = lbound(unmapped_ptr)
1332 u = ubound(unmapped_ptr)
1336 soil_type_target_ptr(i,j) = -9999.9
1342 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1343 call error_handler(
"IN FieldBundleAdd", rc)
1344 call esmf_fieldbundleadd(bundle_nolandice_input, (/veg_greenness_input_grid/), rc=rc)
1345 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1346 call error_handler(
"IN FieldBundleAdd", rc)
1347 call esmf_fieldbundleget(bundle_nolandice_target,fieldcount=num_fields,rc=rc)
1348 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1349 call error_handler(
"IN FieldBundleGet", rc)
1350 vgfrc_ind = num_fields
1354 call esmf_fieldbundleadd(bundle_nolandice_target, (/lai_target_grid/), rc=rc)
1355 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1356 call error_handler(
"IN FieldBundleAdd", rc)
1357 call esmf_fieldbundleadd(bundle_nolandice_input, (/lai_input_grid/), rc=rc)
1358 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1359 call error_handler(
"IN FieldBundleAdd", rc)
1360 call esmf_fieldbundleget(bundle_nolandice_target,fieldcount=num_fields,rc=rc)
1361 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1362 call error_handler(
"IN FieldBundleGet", rc)
1363 lai_ind = num_fields
1368 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1369 call error_handler(
"IN FieldBundleAdd", rc)
1370 call esmf_fieldbundleadd(bundle_nolandice_input, (/max_veg_greenness_input_grid/), rc=rc)
1371 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1372 call error_handler(
"IN FieldBundleAdd", rc)
1375 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1376 call error_handler(
"IN FieldBundleAdd", rc)
1377 call esmf_fieldbundleadd(bundle_nolandice_input, (/min_veg_greenness_input_grid/), rc=rc)
1378 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1379 call error_handler(
"IN FieldBundleAdd", rc)
1381 call esmf_fieldbundleget(bundle_nolandice_target,fieldcount=num_fields,rc=rc)
1382 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1383 call error_handler(
"IN FieldBundleGet", rc)
1385 mmvg_ind = num_fields-1
1388 call esmf_fieldbundleget(bundle_nolandice_target,fieldcount=num_fields,rc=rc)
1389 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1390 call error_handler(
"IN FieldBundleGet", rc)
1392 allocate(search_nums(num_fields))
1393 allocate(dozero(num_fields))
1395 search_nums(1:6) = (/85,7,224,85,86,223/)
1396 dozero(1:6) = (/.false.,.false.,.true.,.true.,.false.,.true./)
1399 search_nums(vgfrc_ind) = 224
1400 dozero(vgfrc_ind) = .true.
1404 search_nums(lai_ind) = 229
1405 dozero(lai_ind) = .true.
1409 search_nums(mmvg_ind) = 227
1410 dozero(mmvg_ind) = .true.
1412 search_nums(mmvg_ind+1) = 228
1413 dozero(mmvg_ind+1) = .true.
1416 call regrid_many(bundle_nolandice_input,bundle_nolandice_target,num_fields,regrid_land,dozero, &
1417 unmapped_ptr=unmapped_ptr)
1419 call esmf_fieldbundledestroy(bundle_nolandice_input,rc=rc)
1420 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1421 call error_handler(
"IN FieldBundleDestroy", rc)
1423 if (localpet == 0)
then
1426 allocate (veg_type_target_one_tile(0,0))
1431 print*,
"- CALL FieldGather FOR TARGET LANDMASK TILE: ", tile
1433 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1434 call error_handler(
"IN FieldGather", rc)
1436 print*,
"- CALL FieldGather FOR TARGET VEG TYPE TILE: ", tile
1437 call esmf_fieldgather(
veg_type_target_grid, veg_type_target_one_tile, rootpet=0, tile=tile, rc=rc)
1438 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1439 call error_handler(
"IN FieldGather", rc)
1441 if (localpet == 0)
then
1445 print*,
"- CALL FieldGather FOR SOIL TYPE TARGET GRID, TILE: ", tile
1447 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__))&
1448 call error_handler(
"IN FieldGather", rc)
1449 if (localpet==0)
then
1450 call search_many(num_fields,bundle_nolandice_target,tile,search_nums,localpet, &
1451 soilt_climo=data_one_tile2, mask=mask_target_one_tile)
1453 call search_many(num_fields,bundle_nolandice_target, tile,search_nums,localpet)
1456 print*,
"- CALL FieldGather FOR TARGET GRID TOTAL SOIL MOISTURE, TILE: ", tile
1457 call esmf_fieldgather(soilm_tot_target_grid, data_one_tile_3d, rootpet=0, tile=tile, rc=rc)
1458 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1459 call error_handler(
"IN FieldGather", rc)
1461 if (localpet == 0)
then
1463 data_one_tile = data_one_tile_3d(:,:,j)
1465 data_one_tile_3d(:,:,j) = data_one_tile
1469 print*,
"- CALL FieldGather FOR TARGET GRID SOIL TEMPERATURE, TILE: ", tile
1470 call esmf_fieldgather(soil_temp_target_grid, data_one_tile_3d, rootpet=0, tile=tile, rc=rc)
1471 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1472 call error_handler(
"IN FieldGather", rc)
1475 print*,
"- CALL FieldScatter FOR TARGET GRID SUBSTRATE TEMPERATURE, TILE: ", tile
1477 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1478 call error_handler(
"IN FieldScatter", rc)
1482 print*,
"- CALL FieldGather FOR SOIL TYPE TARGET GRID LAND, TILE: ",tile
1484 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__))&
1485 call error_handler(
"IN FieldGather", rc)
1487 if (localpet == 0)
then
1491 print*,
"- CALL FieldScatter FOR SOIL TYPE TARGET GRID, TILE: ", tile
1493 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__))&
1494 call error_handler(
"IN FieldScatter", rc)
1499 deallocate(search_nums)
1500 call esmf_fieldbundledestroy(bundle_nolandice_target,rc=rc)
1501 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1502 call error_handler(
"IN FieldBundleDestroy", rc)
1504 print*,
"- CALL FieldRegridRelease."
1505 call esmf_fieldregridrelease(routehandle=regrid_land, rc=rc)
1506 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
1507 call error_handler(
"IN FieldRegridRelease", rc)
1509 deallocate(veg_type_target_one_tile)
1511 deallocate(data_one_tile, data_one_tile2)
1512 deallocate(data_one_tile_3d)
1513 deallocate(mask_target_one_tile)
2774 real(esmf_kind_r8),
pointer :: target_ptr(:,:), target_ptr_3d(:,:,:)
2775 real :: init_val = -999.9
2777 print*,
"- CALL FieldCreate FOR TARGET GRID T2M."
2779 typekind=esmf_typekind_r8, &
2780 name=
"t2m_target_grid", &
2781 staggerloc=esmf_staggerloc_center, rc=rc)
2782 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2783 call error_handler(
"IN FieldCreate", rc)
2785 print*,
"- INITIALIZE TARGET grid t2m."
2786 call esmf_fieldget(t2m_target_grid, &
2787 farrayptr=target_ptr, rc=rc)
2788 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2789 call error_handler(
"IN FieldGet", rc)
2791 target_ptr = init_val
2793 print*,
"- CALL FieldCreate FOR TARGET GRID Q2M."
2795 typekind=esmf_typekind_r8, &
2796 name=
"q2m_target_grid", &
2797 staggerloc=esmf_staggerloc_center, rc=rc)
2798 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2799 call error_handler(
"IN FieldCreate", rc)
2801 print*,
"- INITIALIZE TARGET grid q2m."
2802 call esmf_fieldget(q2m_target_grid, &
2803 farrayptr=target_ptr, rc=rc)
2804 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2805 call error_handler(
"IN FieldGet", rc)
2807 target_ptr = init_val
2809 print*,
"- CALL FieldCreate FOR TARGET GRID TPRCP."
2810 tprcp_target_grid = esmf_fieldcreate(
target_grid, &
2811 typekind=esmf_typekind_r8, &
2812 name=
"tprcp_target_grid", &
2813 staggerloc=esmf_staggerloc_center, rc=rc)
2814 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2815 call error_handler(
"IN FieldCreate", rc)
2817 print*,
"- INITIALIZE TARGET grid tprcp."
2818 call esmf_fieldget(tprcp_target_grid, &
2819 farrayptr=target_ptr, rc=rc)
2820 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2821 call error_handler(
"IN FieldGet", rc)
2823 target_ptr = init_val
2825 print*,
"- CALL FieldCreate FOR TARGET GRID F10M."
2826 f10m_target_grid = esmf_fieldcreate(
target_grid, &
2827 typekind=esmf_typekind_r8, &
2828 name=
"f10m_target_grid", &
2829 staggerloc=esmf_staggerloc_center, rc=rc)
2830 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2831 call error_handler(
"IN FieldCreate", rc)
2833 print*,
"- INITIALIZE TARGET grid f10m."
2834 call esmf_fieldget(f10m_target_grid, &
2835 farrayptr=target_ptr, rc=rc)
2836 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2837 call error_handler(
"IN FieldGet", rc)
2839 target_ptr = init_val
2841 print*,
"- CALL FieldCreate FOR TARGET GRID FFMM."
2842 ffmm_target_grid = esmf_fieldcreate(
target_grid, &
2843 typekind=esmf_typekind_r8, &
2844 name=
"ffmm_target_grid", &
2845 staggerloc=esmf_staggerloc_center, rc=rc)
2846 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2847 call error_handler(
"IN FieldCreate", rc)
2849 print*,
"- INITIALIZE TARGET grid ffmm."
2850 call esmf_fieldget(ffmm_target_grid, &
2851 farrayptr=target_ptr, rc=rc)
2852 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2853 call error_handler(
"IN FieldGet", rc)
2855 target_ptr = init_val
2857 print*,
"- CALL FieldCreate FOR TARGET GRID USTAR."
2858 ustar_target_grid = esmf_fieldcreate(
target_grid, &
2859 typekind=esmf_typekind_r8, &
2860 name=
"ustar_target_grid", &
2861 staggerloc=esmf_staggerloc_center, rc=rc)
2862 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2863 call error_handler(
"IN FieldCreate", rc)
2865 print*,
"- INITIALIZE TARGET grid ustar."
2866 call esmf_fieldget(ustar_target_grid, &
2867 farrayptr=target_ptr, rc=rc)
2868 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2869 call error_handler(
"IN FieldGet", rc)
2871 target_ptr = init_val
2873 print*,
"- CALL FieldCreate FOR TARGET GRID SNOW LIQ EQUIV."
2874 snow_liq_equiv_target_grid = esmf_fieldcreate(
target_grid, &
2875 typekind=esmf_typekind_r8, &
2876 name=
"snow_liq_equiv_target_grid", &
2877 staggerloc=esmf_staggerloc_center, rc=rc)
2878 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2879 call error_handler(
"IN FieldCreate", rc)
2881 print*,
"- INITIALIZE TARGET grid snow liq equiv."
2882 call esmf_fieldget(snow_liq_equiv_target_grid, &
2883 farrayptr=target_ptr, rc=rc)
2884 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2885 call error_handler(
"IN FieldGet", rc)
2887 target_ptr = init_val
2889 print*,
"- CALL FieldCreate FOR TARGET GRID SNOW LIQ EQUIV AT SEA ICE."
2890 snow_liq_equiv_at_ice_target_grid = esmf_fieldcreate(
target_grid, &
2891 typekind=esmf_typekind_r8, &
2892 name=
"snow_liq_equiv_at_ice_target_grid", &
2893 staggerloc=esmf_staggerloc_center, rc=rc)
2894 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2895 call error_handler(
"IN FieldCreate", rc)
2897 print*,
"- INITIALIZE TARGET grid snow liq equiv at sea ice."
2898 call esmf_fieldget(snow_liq_equiv_at_ice_target_grid, &
2899 farrayptr=target_ptr, rc=rc)
2900 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2901 call error_handler(
"IN FieldGet", rc)
2903 target_ptr = init_val
2905 print*,
"- CALL FieldCreate FOR TARGET GRID SNOW DEPTH."
2906 snow_depth_target_grid = esmf_fieldcreate(
target_grid, &
2907 typekind=esmf_typekind_r8, &
2908 name=
"snow_depth_target_grid", &
2909 staggerloc=esmf_staggerloc_center, rc=rc)
2910 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2911 call error_handler(
"IN FieldCreate", rc)
2913 print*,
"- INITIALIZE TARGET grid snow depth."
2914 call esmf_fieldget(snow_depth_target_grid, &
2915 farrayptr=target_ptr, rc=rc)
2916 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2917 call error_handler(
"IN FieldGet", rc)
2919 target_ptr = init_val
2921 print*,
"- CALL FieldCreate FOR TARGET GRID SNOW DEPTH AT SEA ICE."
2922 snow_depth_at_ice_target_grid = esmf_fieldcreate(
target_grid, &
2923 typekind=esmf_typekind_r8, &
2924 name=
"snow_depth_at_ice_target_grid", &
2925 staggerloc=esmf_staggerloc_center, rc=rc)
2926 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2927 call error_handler(
"IN FieldCreate", rc)
2929 print*,
"- INITIALIZE TARGET grid snow depth at sea ice."
2930 call esmf_fieldget(snow_depth_at_ice_target_grid, &
2931 farrayptr=target_ptr, rc=rc)
2932 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2933 call error_handler(
"IN FieldGet", rc)
2935 target_ptr = init_val
2937 print*,
"- CALL FieldCreate FOR TARGET GRID SEA ICE FRACTION."
2938 seaice_fract_target_grid = esmf_fieldcreate(
target_grid, &
2939 typekind=esmf_typekind_r8, &
2940 name=
"seaice_fract_target_grid", &
2941 staggerloc=esmf_staggerloc_center, rc=rc)
2942 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2943 call error_handler(
"IN FieldCreate", rc)
2945 print*,
"- INITIALIZE TARGET grid sea ice fraction."
2946 call esmf_fieldget(seaice_fract_target_grid, &
2947 farrayptr=target_ptr, rc=rc)
2948 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2949 call error_handler(
"IN FieldGet", rc)
2951 target_ptr = init_val
2953 print*,
"- CALL FieldCreate FOR TARGET GRID SEA ICE DEPTH."
2954 seaice_depth_target_grid = esmf_fieldcreate(
target_grid, &
2955 typekind=esmf_typekind_r8, &
2956 name=
"seaice_depth_target_grid", &
2957 staggerloc=esmf_staggerloc_center, rc=rc)
2958 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2959 call error_handler(
"IN FieldCreate", rc)
2961 print*,
"- INITIALIZE TARGET sea ice depth."
2962 call esmf_fieldget(seaice_depth_target_grid, &
2963 farrayptr=target_ptr, rc=rc)
2964 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2965 call error_handler(
"IN FieldGet", rc)
2967 target_ptr = init_val
2969 print*,
"- CALL FieldCreate FOR TARGET GRID sst."
2971 typekind=esmf_typekind_r8, &
2972 name=
"sst_target_grid", &
2973 staggerloc=esmf_staggerloc_center, rc=rc)
2974 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2975 call error_handler(
"IN FieldCreate", rc)
2977 print*,
"- INITIALIZE TARGET sst."
2978 call esmf_fieldget(sst_target_grid, &
2979 farrayptr=target_ptr, rc=rc)
2980 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2981 call error_handler(
"IN FieldGet", rc)
2983 target_ptr = init_val
2985 print*,
"- CALL FieldCreate FOR TARGET GRID SEA ICE SKIN TEMP."
2986 seaice_skin_temp_target_grid = esmf_fieldcreate(
target_grid, &
2987 typekind=esmf_typekind_r8, &
2988 name=
"seaice_skin_temp_target_grid", &
2989 staggerloc=esmf_staggerloc_center, rc=rc)
2990 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2991 call error_handler(
"IN FieldCreate", rc)
2993 print*,
"- INITIALIZE TARGET sea ice skin temp."
2994 call esmf_fieldget(seaice_skin_temp_target_grid, &
2995 farrayptr=target_ptr, rc=rc)
2996 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
2997 call error_handler(
"IN FieldGet", rc)
2999 target_ptr = init_val
3001 print*,
"- CALL FieldCreate FOR TARGET GRID SRFLAG."
3002 srflag_target_grid = esmf_fieldcreate(
target_grid, &
3003 typekind=esmf_typekind_r8, &
3004 name=
"srflag_target_grid", &
3005 staggerloc=esmf_staggerloc_center, rc=rc)
3006 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3007 call error_handler(
"IN FieldCreate", rc)
3009 print*,
"- INITIALIZE TARGET srflag."
3010 call esmf_fieldget(srflag_target_grid, &
3011 farrayptr=target_ptr, rc=rc)
3012 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3013 call error_handler(
"IN FieldGet", rc)
3015 target_ptr = init_val
3017 print*,
"- CALL FieldCreate FOR TARGET GRID SKIN TEMPERATURE."
3018 skin_temp_target_grid = esmf_fieldcreate(
target_grid, &
3019 typekind=esmf_typekind_r8, &
3020 name=
"skin_temp_target_grid", &
3021 staggerloc=esmf_staggerloc_center, rc=rc)
3022 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3023 call error_handler(
"IN FieldCreate", rc)
3025 print*,
"- INITIALIZE TARGET grid skin temp."
3026 call esmf_fieldget(skin_temp_target_grid, &
3027 farrayptr=target_ptr, rc=rc)
3028 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3029 call error_handler(
"IN FieldGet", rc)
3031 target_ptr = init_val
3033 print*,
"- CALL FieldCreate FOR TARGET GRID CANOPY MOISTURE CONTENT."
3034 canopy_mc_target_grid = esmf_fieldcreate(
target_grid, &
3035 typekind=esmf_typekind_r8, &
3036 name=
"canopy_mc_target_grid", &
3037 staggerloc=esmf_staggerloc_center, rc=rc)
3038 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3039 call error_handler(
"IN FieldCreate", rc)
3041 print*,
"- INITIALIZE TARGET grid canopy moisture."
3042 call esmf_fieldget(canopy_mc_target_grid, &
3043 farrayptr=target_ptr, rc=rc)
3044 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3045 call error_handler(
"IN FieldGet", rc)
3047 target_ptr = init_val
3049 print*,
"- CALL FieldCreate FOR TARGET GRID LEAF AREA INDEX."
3051 typekind=esmf_typekind_r8, &
3052 name=
"lai_target_grid",&
3053 staggerloc=esmf_staggerloc_center, rc=rc)
3054 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3055 call error_handler(
"IN FieldCreate", rc)
3057 print*,
"- INITIALIZE TARGET leaf area index."
3058 call esmf_fieldget(lai_target_grid, &
3059 farrayptr=target_ptr, rc=rc)
3060 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3061 call error_handler(
"IN FieldGet", rc)
3063 target_ptr = init_val
3065 print*,
"- CALL FieldCreate FOR TARGET GRID Z0_ICE."
3066 z0_ice_target_grid = esmf_fieldcreate(
target_grid, &
3067 typekind=esmf_typekind_r8, &
3068 name=
"z0_ice_target_grid", &
3069 staggerloc=esmf_staggerloc_center, rc=rc)
3070 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3071 call error_handler(
"IN FieldCreate", rc)
3073 print*,
"- INITIALIZE TARGET grid z0_ice."
3074 call esmf_fieldget(z0_ice_target_grid, &
3075 farrayptr=target_ptr, rc=rc)
3076 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3077 call error_handler(
"IN FieldGet", rc)
3079 target_ptr = init_val
3081 print*,
"- CALL FieldCreate FOR TARGET GRID Z0_WATER."
3082 z0_water_target_grid = esmf_fieldcreate(
target_grid, &
3083 typekind=esmf_typekind_r8, &
3084 name=
"z0_water_target_grid", &
3085 staggerloc=esmf_staggerloc_center, rc=rc)
3086 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3087 call error_handler(
"IN FieldCreate", rc)
3089 print*,
"- INITIALIZE TARGET grid z0_water."
3090 call esmf_fieldget(z0_water_target_grid, &
3091 farrayptr=target_ptr, rc=rc)
3092 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3093 call error_handler(
"IN FieldGet", rc)
3095 target_ptr = init_val
3097 print*,
"- CALL FieldCreate FOR INTERPOLATED TARGET GRID TERRAIN."
3099 typekind=esmf_typekind_r8, &
3100 name=
"terrain_from_input_grid", &
3101 staggerloc=esmf_staggerloc_center, rc=rc)
3102 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3103 call error_handler(
"IN FieldCreate", rc)
3105 print*,
"- INITIALIZE TARGET grid interpolated terrain."
3107 farrayptr=target_ptr, rc=rc)
3108 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3109 call error_handler(
"IN FieldGet", rc)
3111 target_ptr = init_val
3113 print*,
"- CALL FieldCreate FOR INTERPOLATED TARGET GRID SOIL TYPE."
3115 typekind=esmf_typekind_r8, &
3116 staggerloc=esmf_staggerloc_center, &
3117 name=
"soil_type_from_input_grid", rc=rc)
3118 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3119 call error_handler(
"IN FieldCreate", rc)
3121 print*,
"- INITIALIZE TARGET grid soil type"
3123 farrayptr=target_ptr, rc=rc)
3124 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3125 call error_handler(
"IN FieldGet", rc)
3127 target_ptr = init_val
3129 print*,
"- CALL FieldCreate FOR TARGET GRID SEA ICE COLUMN TEMPERATURE."
3130 ice_temp_target_grid = esmf_fieldcreate(
target_grid, &
3131 typekind=esmf_typekind_r8, &
3132 staggerloc=esmf_staggerloc_center, &
3133 name=
"ice_temp_target_grid", &
3134 ungriddedlbound=(/1/), &
3136 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3137 call error_handler(
"IN FieldCreate", rc)
3139 print*,
"- INITIALIZE TARGET grid ice temp"
3140 call esmf_fieldget(ice_temp_target_grid, &
3141 farrayptr=target_ptr_3d, rc=rc)
3142 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3143 call error_handler(
"IN FieldGet", rc)
3145 target_ptr_3d = init_val
3147 print*,
"- CALL FieldCreate FOR TARGET GRID SOIL TEMPERATURE."
3148 soil_temp_target_grid = esmf_fieldcreate(
target_grid, &
3149 typekind=esmf_typekind_r8, &
3150 staggerloc=esmf_staggerloc_center, &
3151 name=
"soil_temp_target_grid", &
3152 ungriddedlbound=(/1/), &
3154 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3155 call error_handler(
"IN FieldCreate", rc)
3157 print*,
"- INITIALIZE TARGET grid soil temp"
3158 call esmf_fieldget(soil_temp_target_grid, &
3159 farrayptr=target_ptr_3d, rc=rc)
3160 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3161 call error_handler(
"IN FieldGet", rc)
3163 target_ptr_3d = init_val
3165 print*,
"- CALL FieldCreate FOR TARGET GRID TOTAL SOIL MOISTURE."
3166 soilm_tot_target_grid = esmf_fieldcreate(
target_grid, &
3167 typekind=esmf_typekind_r8, &
3168 staggerloc=esmf_staggerloc_center, &
3169 name=
"soilm_tot_target_grid", &
3170 ungriddedlbound=(/1/), &
3172 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3173 call error_handler(
"IN FieldCreate", rc)
3175 print*,
"- INITIALIZE TARGET grid soil moist"
3176 call esmf_fieldget(soilm_tot_target_grid, &
3177 farrayptr=target_ptr_3d, rc=rc)
3178 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3179 call error_handler(
"IN FieldGet", rc)
3181 target_ptr_3d = init_val
3183 print*,
"- CALL FieldCreate FOR TARGET GRID LIQUID SOIL MOISTURE."
3184 soilm_liq_target_grid = esmf_fieldcreate(
target_grid, &
3185 typekind=esmf_typekind_r8, &
3186 staggerloc=esmf_staggerloc_center, &
3187 name=
"soilm_liq_target_grid", &
3188 ungriddedlbound=(/1/), &
3190 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3191 call error_handler(
"IN FieldCreate", rc)
3193 print*,
"- INITIALIZE TARGET grid soil liq"
3194 call esmf_fieldget(soilm_liq_target_grid, &
3195 farrayptr=target_ptr_3d, rc=rc)
3196 if(esmf_logfounderror(rctocheck=rc,msg=esmf_logerr_passthru,line=__line__,file=__file__)) &
3197 call error_handler(
"IN FieldGet", rc)
3199 target_ptr_3d = init_val