Skip to content

Improve use of CCPP I/O reader in gravity wave drag schemes #321

@jimmielin

Description

@jimmielin

From review of GW #292

For moving mountain

    ! Allocate mfcc. "desc%maxh" and "desc%maxuh" are from the file, but the
    ! model determines wavenumber dimension.
    allocate (desc%mfcc(desc%maxh, -desc%maxuh:desc%maxuh, &
                        -band%ngwv:band%ngwv), stat=errflg, errmsg=errmsg)
    if(errflg /= 0) then
      return
    endif

    ! Get mfcc data.
    call reader%get_var('NEWMF', file_mfcc, errmsg, errflg)
    if (errflg /= 0) then
      return
    end if

    ! original formulation is
    ! desc%mfcc(:,-desc%maxuh:desc%maxuh,-band%ngwv:band%ngwv) = file_mfcc(:,:,ngwv_file-band%ngwv+1:)
    ! where band%ngwv = 0 -- this cannot be handled directly by the
    ! ccpp i/o reader, so copy it in from the temporary array.
    desc%mfcc(:, -desc%maxuh:desc%maxuh, 0) = file_mfcc(:, :)

@nusbaume wrote:

It might be good to eventually figure out what exactly can't be handled by the pio_reader here (maybe worth including in the "future work" issue?).

For Beres/convective:

    call reader%get_var('MW', tmp_var1d, errmsg, errflg)
    if (errflg /= 0) then
      return
    end if
    desc%maxuh = size(tmp_var1d)
    deallocate(tmp_var1d, stat=errflg)

@nusbaume wrote:

It would be good to replace this and the code below with a get_dim method at some point. Maybe worth adding to the "future work" issue?

@peverwhee wrote:

can we get these from the file instead of hard-coding them? Maybe this is part of #321 ?

for the moving mountain initialization code as well.

Metadata

Metadata

Assignees

No one assigned

    Labels

    cleanupThis issue indicates an opportunity for code cleanup.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions