Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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)

Comment thread
BrianCurtis-NOAA marked this conversation as resolved.

! 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