NCAR / NCAR/ccpp-framework

Weird Capgen fortran parsing error?

Open
#757 3 comments 0 reactions 1 assignee View on GitHub

@climbfuji is already working on this.

Since May 13, 2026.

bug capgen
Dominant language
Python
Stars
25
Forks
67
Avg merge
3d 8h
Merged PRs (30d)
2

Description

Description

When parsing sfc_diff.f, something strange happens.

All of the scheme arguments are skipped, but the trailing comment in the first line of subroutine call is registered as an argument, ['& !intent(in']

Syntax error: Invalid dummy argument, 'ivegsrc', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:88
Syntax error: Invalid dummy argument, 'sfc_z0_type', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:89
Syntax error: Invalid dummy argument, 'use_oceanuv', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:90
Syntax error: Invalid dummy argument, 'vegtype', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:92
Syntax error: Invalid dummy argument, 'redrag', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:94
Syntax error: Invalid dummy argument, 'flag_iter', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:95
Syntax error: Invalid dummy argument, 'dry', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:95
Syntax error: Invalid dummy argument, 'icy', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:95
Syntax error: Invalid dummy argument, 'flag_lakefreeze', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:96
Syntax error: Invalid dummy argument, 'wet', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:97
Syntax error: Invalid dummy argument, 'thsfc_loc', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:99
Syntax error: Invalid dummy argument, 'u10m', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:101
Syntax error: Invalid dummy argument, 'v10m', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:101
Syntax error: Invalid dummy argument, 'u1', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:102
Syntax error: Invalid dummy argument, 'v1', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:102
Syntax error: Invalid dummy argument, 'usfco', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:103
Syntax error: Invalid dummy argument, 'vsfco', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:103
Syntax error: Invalid dummy argument, 'ps', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:105
Syntax error: Invalid dummy argument, 't1', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:105
Syntax error: Invalid dummy argument, 'q1', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:105
Syntax error: Invalid dummy argument, 'z1', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:105
Syntax error: Invalid dummy argument, 'garea', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:105
Syntax error: Invalid dummy argument, 'prsl1', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:105
Syntax error: Invalid dummy argument, 'prslki', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:105
Syntax error: Invalid dummy argument, 'prsik1', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:105
Syntax error: Invalid dummy argument, 'prslk1', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:105
Syntax error: Invalid dummy argument, 'wind', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:105
Syntax error: Invalid dummy argument, 'sigmaf', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:105
Syntax error: Invalid dummy argument, 'shdmax', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:105
Syntax error: Invalid dummy argument, 'z0pert', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:105
Syntax error: Invalid dummy argument, 'ztpert', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:105
Syntax error: Invalid dummy argument, 'lakefrac', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:109
Syntax error: Invalid dummy argument, 'fice', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:110
Syntax error: Invalid dummy argument, 'tskin_wat', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:111
Syntax error: Invalid dummy argument, 'tskin_lnd', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:111
Syntax error: Invalid dummy argument, 'tskin_ice', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:111
Syntax error: Invalid dummy argument, 'tsurf_wat', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:111
Syntax error: Invalid dummy argument, 'tsurf_lnd', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:111
Syntax error: Invalid dummy argument, 'tsurf_ice', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:111
Syntax error: Invalid dummy argument, 'z0rl_wav', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:115
Syntax error: Invalid dummy argument, 'z0rl_wat', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'z0rl_lnd', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'z0rl_ice', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'ustar_wat', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'ustar_lnd', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'ustar_ice', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'cm_wat', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'cm_lnd', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'cm_ice', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'ch_wat', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'ch_lnd', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'ch_ice', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'rb_wat', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'rb_lnd', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'rb_ice', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'stress_wat', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'stress_lnd', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'stress_ice', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'fm_wat', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'fm_lnd', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'fm_ice', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'fh_wat', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'fh_lnd', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'fh_ice', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'fm10_wat', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'fm10_lnd', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'fm10_ice', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'fh2_wat', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'fh2_lnd', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'fh2_ice', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'ztmax_wat', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'ztmax_lnd', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'ztmax_ice', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:116
Syntax error: Invalid dummy argument, 'zvfun', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:128
Syntax error: Invalid dummy argument, 'errmsg', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:130
Syntax error: Invalid dummy argument, 'errflg', at /glade/work/dswales/SCM/CI/meta_to_source_comp/ccpp-scm/ccpp/physics/physics/SFC_Layer/UFS/sfc_diff.f:131
Missing local_variables, ['&  !intent(in'] in sfc_diff_run

If I remove the trailing comment at the top of the subroutine (line 57), the error vanishes. This was discovered by chance.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.