Skip to content

Commit

Permalink
Merge pull request #2 from JianpingHuang-NOAA/aqm.v7.0.1
Browse files Browse the repository at this point in the history
update of aqm_cap for coordinate change
  • Loading branch information
BrianCurtis-NOAA authored May 26, 2022
2 parents 79ff7a9 + a1a67f8 commit 73da18b
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions src/aqm_cap.F90
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,9 @@ module AQM
/)

private

real(ESMF_KIND_R8), parameter :: pi = 3.1415926535897931
real(ESMF_KIND_R8), parameter :: rad2deg = 180./pi

public SetServices

Expand Down Expand Up @@ -247,6 +250,7 @@ subroutine DataInitialize(model, rc)
type(ESMF_GeomType_flag) :: geomtype
type(ESMF_DistGrid) :: distgrid
type(ESMF_Array) :: array

integer :: de, item, localrc, localDe, tile
integer :: comm, localPet
real(ESMF_KIND_R8), dimension(:,:), pointer :: coord
Expand All @@ -261,7 +265,11 @@ subroutine DataInitialize(model, rc)
real(ESMF_KIND_R8) :: dts
type(ESMF_Time) :: startTime
type(ESMF_TimeInterval) :: TimeStep
type(ESMF_CoordSys_Flag) :: aqmGridCoordSys
character(len=ESMF_MAXSTR) :: msgString, name
!test:
integer :: tlb(2), tub(2)


! begin
rc = ESMF_SUCCESS
Expand Down Expand Up @@ -322,6 +330,7 @@ subroutine DataInitialize(model, rc)

if (geomtype == ESMF_GEOMTYPE_GRID) then
call ESMF_FieldGet(field, grid=grid, array=array, rc=rc)

if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
line=__LINE__, &
file=__FILE__)) &
Expand Down Expand Up @@ -413,14 +422,26 @@ subroutine DataInitialize(model, rc)
end if

! -- get local coordinate arrays
call ESMF_GridGet(grid, coordSys=aqmGridCoordSys, rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
line=__LINE__, &
file=__FILE__)) &
return ! bail out

do item = 1, 2
call ESMF_GridGetCoord(grid, coordDim=item, staggerloc=ESMF_STAGGERLOC_CENTER, &
totalLBound=tlb, totalUBound=tub, &
localDE=localDe, farrayPtr=coord, rc=rc)
if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
line=__LINE__, &
file=__FILE__)) &
return ! bail out
if (aqmGridCoordSys == ESMF_COORDSYS_SPH_RAD) then
coord = coord * rad2deg
endif

call aqm_model_domain_coord_set(item, coord, de=localDe, rc=rc)

if (aqm_rc_check(rc)) then
call ESMF_LogSetError(ESMF_RC_INTNRL_BAD, &
msg="Failed to set coordinates for air quality model", &
Expand Down

0 comments on commit 73da18b

Please sign in to comment.