NOAA-EMC / UPP

Other
35 stars 95 forks source link

Fix doxygen warnings, turn on WARN_AS_ERROR #392

Open edwardhartnett opened 2 years ago

edwardhartnett commented 2 years ago

Doxygen gives warnings when things aren't quite right. I've added the current list of warnings, they can also be seen in the CI runs (after #390 is merged).

Once all these warnings are fixed, we can turn on the WARN_AS_ERROR flag, and that will cause the CI build to break if someone commits code without proper doxygen documentation. This is very worthwhile as it enforces some documentation standards automatically.

/home/ed/UPP/sorc/ncep_post.fd/AVIATION.f:231: warning: Member calcat(U, V, H, U_OLD, V_OLD, H_OLD, CAT) (function) of file AVIATION.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/AVIATION.f:498: warning: Member calceiling(CLDZ, TCLD, CEILING) (function) of file AVIATION.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/AVIATION.f:569: warning: Member calfltcnd(CEILING, FLTCND) (function) of file AVIATION.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/AVIATION.f:153: warning: Member calicing(T1, RH, OMGA, ICING) (function) of file AVIATION.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/AVIATION.f:82: warning: parameters of member calllws are not (all) documented
Generating docs for file BNDLYR.f...
/home/ed/UPP/sorc/ncep_post.fd/BNDLYR.f:67: warning: parameters of member bndlyr are not (all) documented
Generating docs for file BOUND.f...
/home/ed/UPP/sorc/ncep_post.fd/BOUND.f:43: warning: parameters of member bound are not (all) documented
Generating docs for file CALDRG.f...
/home/ed/UPP/sorc/ncep_post.fd/CALDRG.f:40: warning: parameters of member caldrg are not (all) documented
Generating docs for file CALDWP.f...
/home/ed/UPP/sorc/ncep_post.fd/CALDWP.f:40: warning: parameters of member caldwp are not (all) documented
Generating docs for file CALGUST.f...
/home/ed/UPP/sorc/ncep_post.fd/CALGUST.f:44: warning: parameters of member calgust are not (all) documented
Generating docs for file CALHEL.f...
/home/ed/UPP/sorc/ncep_post.fd/CALHEL.f:78: warning: parameters of member calhel are not (all) documented
Generating docs for file CALHEL2.f...
/home/ed/UPP/sorc/ncep_post.fd/CALHEL2.f:82: warning: parameters of member calhel2 are not (all) documented
Generating docs for file CALHEL3.f...
/home/ed/UPP/sorc/ncep_post.fd/CALHEL3.f:80: warning: parameters of member calhel3 are not (all) documented
Generating docs for file CALLCL.f...
/home/ed/UPP/sorc/ncep_post.fd/CALLCL.f:48: warning: parameters of member callcl are not (all) documented
Generating docs for file CALMCVG.f...
/home/ed/UPP/sorc/ncep_post.fd/CALMCVG.f:51: warning: parameters of member calmcvg are not (all) documented
Generating docs for file CALMICT.f...
/home/ed/UPP/sorc/ncep_post.fd/CALMICT.f:321: warning: Member calmict_old(P1D, T1D, Q1D, C1D, FI1D, FR1D, FS1D, CUREFL, QW1, QI1, QR1, QS1, DBZ1, DBZR1, DBZI1, DBZC1, NLICE1, NRAIN1) (function) of file CALMICT.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/CALMICT.f:56: warning: parameters of member calmict_new are not (all) documented
Generating docs for file CALPBL.f...
/home/ed/UPP/sorc/ncep_post.fd/CALPBL.f:32: warning: parameters of member calpbl are not (all) documented
Generating docs for file CALPBLREGIME.f...
/home/ed/UPP/sorc/ncep_post.fd/CALPBLREGIME.f:45: warning: parameters of member calpblregime are not (all) documented
Generating docs for file CALPOT.f...
/home/ed/UPP/sorc/ncep_post.fd/CALPOT.f:37: warning: parameters of member calpot are not (all) documented
Generating docs for file CALPW.f...
/home/ed/UPP/sorc/ncep_post.fd/CALPW.f:59: warning: parameters of member calpw are not (all) documented
Generating docs for file CALRAD_WCLOUD_newcrtm.f...
/home/ed/UPP/sorc/ncep_post.fd/CALRAD_WCLOUD_newcrtm.f:2135: warning: Member effr(pmid, t, q, qqw, qqi, qqr, f_rimef, nlice, nrain, qqs, qqg, qqnr, qqni, qqnw, mp_opt, species) (function) of file CALRAD_WCLOUD_newcrtm.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/CALRAD_WCLOUD_newcrtm.f:2751: warning: Member gammln(XX) (function) of file CALRAD_WCLOUD_newcrtm.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/CALRAD_WCLOUD_newcrtm.f:2775: warning: Member wgamma(y) (function) of file CALRAD_WCLOUD_newcrtm.f is not documented.
Generating docs for file CALRCH.f...
/home/ed/UPP/sorc/ncep_post.fd/CALRCH.f:41: warning: parameters of member calrch are not (all) documented
Generating docs for file CALSTRM.f...
/home/ed/UPP/sorc/ncep_post.fd/CALSTRM.f:41: warning: parameters of member calstrm are not (all) documented
Generating docs for file CALTAU.f...
/home/ed/UPP/sorc/ncep_post.fd/CALTAU.f:44: warning: parameters of member caltau are not (all) documented
Generating docs for file CALTHTE.f...
/home/ed/UPP/sorc/ncep_post.fd/CALTHTE.f:39: warning: parameters of member calthte are not (all) documented
Generating docs for file CALUPDHEL.f...
/home/ed/UPP/sorc/ncep_post.fd/CALUPDHEL.f:36: warning: parameters of member calupdhel are not (all) documented
Generating docs for file CALVOR.f...
/home/ed/UPP/sorc/ncep_post.fd/CALVOR.f:413: warning: Member caldiv(UWND, VWND, DIV) (function) of file CALVOR.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/CALVOR.f:685: warning: Member calgradps(PS, PSX, PSY) (function) of file CALVOR.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/CALVOR.f:45: warning: parameters of member calvor are not (all) documented
Generating docs for file CALWXT_BOURG.f...
/home/ed/UPP/sorc/ncep_post.fd/CALWXT_BOURG.f:67: warning: parameters of member calwxt_bourg_post are not (all) documented
Generating docs for file CLDRAD.f...
/home/ed/UPP/sorc/ncep_post.fd/CLDRAD.f:5609: warning: Member cb_cover(cbcov) (function) of file CLDRAD.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/CLDRAD.f:5664: warning: Member wrt_aero_diag(igetfld, nbin, data) (function) of file CLDRAD.f is not documented.
Generating docs for file COLLECT.f...
/home/ed/UPP/sorc/ncep_post.fd/COLLECT.f:33: warning: parameters of member collect are not (all) documented
Generating docs for file COLLECT_LOC.f...
/home/ed/UPP/sorc/ncep_post.fd/COLLECT_LOC.f:33: warning: parameters of member collect_loc are not (all) documented
Generating docs for file DEALLOCATE.f...
Generating docs for file DEWPOINT.f...
/home/ed/UPP/sorc/ncep_post.fd/DEWPOINT.f:48: warning: parameters of member dewpoint are not (all) documented
Generating docs for file EXCH.f...
/home/ed/UPP/sorc/ncep_post.fd/EXCH.f:80: warning: Member exch_f(a) (function) of file EXCH.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/EXCH.f:35: warning: parameters of member exch are not (all) documented
Generating docs for file FDLVL.f...
/home/ed/UPP/sorc/ncep_post.fd/FDLVL.f:798: warning: Member fdlvl_mass(ITYPE, NFD, PTFD, HTFD, NIN, QIN, QTYPE, QFD) (function) of file FDLVL.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/FDLVL.f:471: warning: Member fdlvl_uv(ITYPE, NFD, HTFD, UFD, VFD) (function) of file FDLVL.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/FDLVL.f:69: warning: parameters of member fdlvl are not (all) documented
Generating docs for file FILL_PSETFLD.f...
/home/ed/UPP/sorc/ncep_post.fd/FILL_PSETFLD.f:37: warning: parameters of member fill_psetfld are not (all) documented
Generating docs for file FIXED.f...
Generating docs for file FRZLVL.f...
/home/ed/UPP/sorc/ncep_post.fd/FRZLVL.f:65: warning: parameters of member frzlvl are not (all) documented
Generating docs for file FRZLVL2.f...
/home/ed/UPP/sorc/ncep_post.fd/FRZLVL2.f:64: warning: parameters of member frzlvl2 are not (all) documented
Generating docs for file GET_BITS.f...
/home/ed/UPP/sorc/ncep_post.fd/GET_BITS.f:94: warning: Member fndbit(rmin, rmax, rdb, nmbts, iscale, iret) (function) of file GET_BITS.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/GET_BITS.f:44: warning: parameters of member get_bits are not (all) documented
Generating docs for file GFSPOST.F...
/home/ed/UPP/sorc/ncep_post.fd/GFSPOST.F:580: warning: Member mptgen(mpirank, mpisize, nd, jt1, jt2, j1, j2, jx, jm, jn) (function) of file GFSPOST.F is not documented.
/home/ed/UPP/sorc/ncep_post.fd/GFSPOST.F:645: warning: Member mptranr4(mpicomm, mpisize, im, ida, idb, jm, jma, jmb, jda, km, kma, kmb, kdb, a, b, ta, tb) (function) of file GFSPOST.F is not documented.
/home/ed/UPP/sorc/ncep_post.fd/GFSPOST.F:476: warning: Member mxwind(km, p, u, v, t, h, pmw, umw, vmw, tmw, hmw) (function) of file GFSPOST.F is not documented.
/home/ed/UPP/sorc/ncep_post.fd/GFSPOST.F:164: warning: Member p2pv(km, pvu, h, t, p, u, v, kpv, pv, pvpt, pvpb, lpv, upv, vpv, hpv, tpv, ppv, spv) (function) of file GFSPOST.F is not documented.
/home/ed/UPP/sorc/ncep_post.fd/GFSPOST.F:94: warning: Member p2th(km, theta, u, v, h, t, pvu, sigma, rh, omga, kth, th, lth, uth, vth, hth, tth, zth, sigmath, rhth, oth) (function) of file GFSPOST.F is not documented.
/home/ed/UPP/sorc/ncep_post.fd/GFSPOST.F:279: warning: Member rsearch1(km1, z1, km2, z2, l2) (function) of file GFSPOST.F is not documented.
/home/ed/UPP/sorc/ncep_post.fd/GFSPOST.F:374: warning: Member tpause(km, p, u, v, t, h, ptp, utp, vtp, ttp, htp, shrtp) (function) of file GFSPOST.F is not documented.
/home/ed/UPP/sorc/ncep_post.fd/GFSPOST.F:54: warning: parameters of member pvetc are not (all) documented
Generating docs for file GFSPOSTSIG.F...
/home/ed/UPP/sorc/ncep_post.fd/GFSPOSTSIG.F:662: warning: Member getomega(jcap, nc, km, idvc, idvm, idrt, idsl, nvcoord, vcoord, lonb, latb, ijn, j1, j2, jc, sd, sps, psi, ti, ui, vi, wi, pm, pd) (function) of file GFSPOSTSIG.F is not documented.
/home/ed/UPP/sorc/ncep_post.fd/GFSPOSTSIG.F:251: warning: Member modstuff(km, idvc, idsl, nvcoord, vcoord, ps, psx, psy, d, u, v, pi, pm, om) (function) of file GFSPOSTSIG.F is not documented.
/home/ed/UPP/sorc/ncep_post.fd/GFSPOSTSIG.F:334: warning: Member modstuff2(im, ix, km, idvc, idsl, nvcoord, vcoord, ps, psx, psy, d, u, v, pi, pm, om, me) (function) of file GFSPOSTSIG.F is not documented.
/home/ed/UPP/sorc/ncep_post.fd/GFSPOSTSIG.F:446: warning: Member trssc(jcap, nc, km, ntrac, idvc, idvm, idsl, nvcoord, vcoord, cpi, idrt, lonb, latb, ijl, ijn, j1, j2, jc, chgq0, szs, sps, st, sd, sz, sq, gfszs, gfsps, gfsp, gfsdp, gfst, gfsu, gfsv, gfsq, gfsw) (function) of file GFSPOSTSIG.F is not documented.
/home/ed/UPP/sorc/ncep_post.fd/GFSPOSTSIG.F:75: warning: parameters of member rtsig are not (all) documented
Generating docs for file GPVS.f...
/home/ed/UPP/sorc/ncep_post.fd/GPVS.f:66: warning: Member fpvs(T) (function) of file GPVS.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/GPVS.f:123: warning: Member fpvs0(T, NX, C1XPVS0, C2XPVS0, TBPVS0) (function) of file GPVS.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/GPVS.f:145: warning: Member fpvsx(T) (function) of file GPVS.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/GPVS.f:206: warning: Member fpvsx0(T) (function) of file GPVS.f is not documented.
Generating docs for file INITPOST.F...
Generating docs for file INITPOST_GFS_NEMS.f...
/home/ed/UPP/sorc/ncep_post.fd/INITPOST_GFS_NEMS.f:43: warning: parameters of member initpost_gfs_nems are not (all) documented
Generating docs for file INITPOST_GFS_NEMS_MPIIO.f...
/home/ed/UPP/sorc/ncep_post.fd/INITPOST_GFS_NEMS_MPIIO.f:4196: warning: Member gg2rg(im, jm, numi, a) (function) of file INITPOST_GFS_NEMS_MPIIO.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/INITPOST_GFS_NEMS_MPIIO.f:4236: warning: Member intlon(iord, imsk, m1, m2, k1, f1, f2) (function) of file INITPOST_GFS_NEMS_MPIIO.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/INITPOST_GFS_NEMS_MPIIO.f:4177: warning: Member rg2gg(im, jm, numi, a) (function) of file INITPOST_GFS_NEMS_MPIIO.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/INITPOST_GFS_NEMS_MPIIO.f:4216: warning: Member uninterpred(iord, kmsk, lonsperlat, lonr, latr, fi, f) (function) of file INITPOST_GFS_NEMS_MPIIO.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/INITPOST_GFS_NEMS_MPIIO.f:49: warning: parameters of member initpost_gfs_nems_mpiio are not (all) documented
Generating docs for file INITPOST_GFS_NETCDF.f...
/home/ed/UPP/sorc/ncep_post.fd/INITPOST_GFS_NETCDF.f:37: warning: parameters of member initpost_gfs_netcdf are not (all) documented
Generating docs for file INITPOST_GFS_NETCDF_PARA.f...
/home/ed/UPP/sorc/ncep_post.fd/INITPOST_GFS_NETCDF_PARA.f:2613: warning: Member read_netcdf_2d_para(ncid, im, jsta, jsta_2l, jend, jend_2u, spval, VarName, buf) (function) of file INITPOST_GFS_NETCDF_PARA.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/INITPOST_GFS_NETCDF_PARA.f:2579: warning: Member read_netcdf_3d_para(ncid, im, jm, jsta, jsta_2l, jend, jend_2u, spval, varname, buf, lm) (function) of file INITPOST_GFS_NETCDF_PARA.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/INITPOST_GFS_NETCDF_PARA.f:37: warning: parameters of member initpost_gfs_netcdf_para are not (all) documented
Generating docs for file INITPOST_GFS_SIGIO.f...
/home/ed/UPP/sorc/ncep_post.fd/INITPOST_GFS_SIGIO.f:39: warning: parameters of member initpost_gfs_sigio are not (all) documented
Generating docs for file INITPOST_NEMS.f...
/home/ed/UPP/sorc/ncep_post.fd/INITPOST_NEMS.f:37: warning: parameters of member initpost_nems are not (all) documented
Generating docs for file INITPOST_NEMS_MPIIO.f...
Generating docs for file INITPOST_NETCDF.f...
/home/ed/UPP/sorc/ncep_post.fd/INITPOST_NETCDF.f:3513: warning: Member read_netcdf_2d_scatter(me, ncid, ifhr, im, jm, jsta, jsta_2l, jend_2u, MPI_COMM_COMP, icnt, idsp, spval, VarName, buf) (function) of file INITPOST_NETCDF.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/INITPOST_NETCDF.f:3457: warning: Member read_netcdf_3d_scatter(me, ncid, ifhr, im, jm, jsta, jsta_2l, jend_2u, MPI_COMM_COMP, icnt, idsp, spval, VarName, lm, buf) (function) of file INITPOST_NETCDF.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/INITPOST_NETCDF.f:37: warning: parameters of member initpost_netcdf are not (all) documented
Generating docs for file INITPOST_NMM.f...
Generating docs for file kinds_mod.F...
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:45: warning: Member i_byte (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:75: warning: Member i_kind (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:49: warning: Member i_llong (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:47: warning: Member i_long (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:46: warning: Member i_short (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:52: warning: Member num_bytes_for_i_byte (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:76: warning: Member num_bytes_for_i_kind (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:55: warning: Member num_bytes_for_i_llong (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:54: warning: Member num_bytes_for_i_long (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:53: warning: Member num_bytes_for_i_short (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:90: warning: Member num_bytes_for_r_double (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:107: warning: Member num_bytes_for_r_kind (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:91: warning: Member num_bytes_for_r_quad (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:89: warning: Member num_bytes_for_r_single (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:84: warning: Member r_double (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:106: warning: Member r_kind (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:86: warning: Member r_quad (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:83: warning: Member r_single (variable) of module kinds is not documented.
Generating docs for file LFMFLD.f...
/home/ed/UPP/sorc/ncep_post.fd/LFMFLD.f:69: warning: parameters of member lfmfld are not (all) documented
Generating docs for file LFMFLD_GFS.f...
/home/ed/UPP/sorc/ncep_post.fd/LFMFLD_GFS.f:72: warning: parameters of member lfmfld_gfs are not (all) documented
Generating docs for file MDL2AGL.f...
Generating docs for file MDL2P.f...
/home/ed/UPP/sorc/ncep_post.fd/MDL2P.f:62: warning: parameters of member mdl2p are not (all) documented
Generating docs for file MDL2SIGMA.f...
Generating docs for file MDL2SIGMA2.f...
Generating docs for file MDL2STD_P.f...
/home/ed/UPP/sorc/ncep_post.fd/MDL2STD_P.f:541: warning: Member p2h(p) (function) of file MDL2STD_P.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/MDL2STD_P.f:560: warning: Member relabel(p) (function) of file MDL2STD_P.f is not documented.
Generating docs for file MDL2THANDPV.f...
/home/ed/UPP/sorc/ncep_post.fd/MDL2THANDPV.f:42: warning: parameters of member mdl2thandpv are not (all) documented
Generating docs for file MDLFLD.f...
Generating docs for file MISCLN.f...
Generating docs for file MPI_FIRST.f...
Generating docs for file MPI_LAST.f...
Generating docs for file MSFPS.f...
/home/ed/UPP/sorc/ncep_post.fd/MSFPS.f:23: warning: parameters of member msfps are not (all) documented
Generating docs for file native_endianness.f...
/home/ed/UPP/sorc/ncep_post.fd/native_endianness.f:48: warning: Member is_little_endian() (function) of module native_endianness is not documented.
/home/ed/UPP/sorc/ncep_post.fd/native_endianness.f:44: warning: Member byte_swap (variable) of module native_endianness is not documented.
Generating docs for file NGMFLD.f...
/home/ed/UPP/sorc/ncep_post.fd/NGMFLD.f:79: warning: parameters of member ngmfld are not (all) documented
Generating docs for file NGMSLP.f...
Generating docs for file OTLFT.f...
/home/ed/UPP/sorc/ncep_post.fd/OTLFT.f:48: warning: parameters of member otlft are not (all) documented
Generating docs for file OTLIFT.f...
/home/ed/UPP/sorc/ncep_post.fd/OTLIFT.f:42: warning: parameters of member otlift are not (all) documented
Generating docs for file PARA_RANGE.f...
/home/ed/UPP/sorc/ncep_post.fd/PARA_RANGE.f:35: warning: parameters of member para_range are not (all) documented
Generating docs for file PROCESS.f...
/home/ed/UPP/sorc/ncep_post.fd/PROCESS.f:51: warning: parameters of member process are not (all) documented
Generating docs for file READ_xml.f...
Generating docs for file READCNTRL.F...
/home/ed/UPP/sorc/ncep_post.fd/READCNTRL.F:46: warning: parameters of member readcntrl are not (all) documented
Generating docs for file retrieve_index.f...
/home/ed/UPP/sorc/ncep_post.fd/retrieve_index.f:29: warning: parameters of member retrieve_index are not (all) documented
Generating docs for file SCLFLD.f...
/home/ed/UPP/sorc/ncep_post.fd/SCLFLD.f:40: warning: parameters of member sclfld are not (all) documented
Generating docs for file SELECT_CHANNELS.f...
/home/ed/UPP/sorc/ncep_post.fd/SELECT_CHANNELS.f:55: warning: Member select_channels_l(channelinfo, nchannels, channels, L, igot) (function) of file SELECT_CHANNELS.f is not documented.
Generating docs for file SERVER.f...
Generating docs for file SET_OUTFLDS.f...
/home/ed/UPP/sorc/ncep_post.fd/SET_OUTFLDS.f:41: warning: parameters of member set_outflds are not (all) documented
Generating docs for file SETUP_SERVERS.f...
/home/ed/UPP/sorc/ncep_post.fd/SETUP_SERVERS.f:54: warning: parameters of member setup_servers are not (all) documented
Generating docs for file SMOOTH.f...
/home/ed/UPP/sorc/ncep_post.fd/SMOOTH.f:144: warning: Member smoothc(FIELD, HOLD, IX, IY, SMTH) (function) of file SMOOTH.f is not documented.
/home/ed/UPP/sorc/ncep_post.fd/SMOOTH.f:43: warning: parameters of member smooth are not (all) documented
Generating docs for file SURFCE.f...
Generating docs for file TRPAUS.f...
/home/ed/UPP/sorc/ncep_post.fd/TRPAUS.f:51: warning: parameters of member trpaus are not (all) documented
Generating docs for file TRPAUS_NAM.f...
/home/ed/UPP/sorc/ncep_post.fd/TRPAUS_NAM.f:41: warning: parameters of member trpaus are not (all) documented
Generating docs for file UPP_MATH.f...
/home/ed/UPP/sorc/ncep_post.fd/UPP_MATH.f:42: warning: Member dvdxdudy(uwnd, vwnd) (function) of module upp_math is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_MATH.f:114: warning: Member h2u(ingrid, outgrid) (function) of module upp_math is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_MATH.f:172: warning: Member h2v(ingrid, outgrid) (function) of module upp_math is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_MATH.f:218: warning: Member u2h(ingrid, outgrid) (function) of module upp_math is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_MATH.f:263: warning: Member v2h(ingrid, outgrid) (function) of module upp_math is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_MATH.f:34: warning: Member ddudy (variable) of module upp_math is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_MATH.f:33: warning: Member ddvdx (variable) of module upp_math is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_MATH.f:35: warning: Member uuavg (variable) of module upp_math is not documented.
Generating docs for file UPP_PHYSICS.f...
/home/ed/UPP/sorc/ncep_post.fd/UPP_PHYSICS.f:491: warning: Member calcape(ITYPE, DPBND, P1D, T1D, Q1D, L1D, CAPE, CINS, PPARC, ZEQL, THUND) (function) of module upp_physics is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_PHYSICS.f:992: warning: Member calcape2(ITYPE, DPBND, P1D, T1D, Q1D, L1D, CAPE, CINS, LFC, ESRHL, ESRHH, DCAPE, DGLD, ESP) (function) of module upp_physics is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_PHYSICS.f:52: warning: Member calrh(P1, T1, Q1, RH) (function) of module upp_physics is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_PHYSICS.f:170: warning: Member calrh_gfs(P1, T1, Q1, RH) (function) of module upp_physics is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_PHYSICS.f:281: warning: Member calrh_gsd(P1, T1, Q1, RHB) (function) of module upp_physics is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_PHYSICS.f:71: warning: Member calrh_nam(P1, T1, Q1, RH) (function) of module upp_physics is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_PHYSICS.f:321: warning: Member calrh_pw(RHPW) (function) of module upp_physics is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_PHYSICS.f:388: warning: Member fpvsnew(t) (function) of module upp_physics is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_PHYSICS.f:1776: warning: Member tvirtual(T, Q) (function) of module upp_physics is not documented.
Generating docs for file WETFRZLVL.f...
/home/ed/UPP/sorc/ncep_post.fd/WETFRZLVL.f:50: warning: parameters of member wetfrzlvl are not (all) documented
Generating docs for file WRFPOST.f...
/home/ed/UPP/sorc/ncep_post.fd/WRFPOST.f:64: warning: return type of member wrfpost is not documented
Generating docs for file ZENSUN.f...
/home/ed/UPP/sorc/ncep_post.fd/ZENSUN.f:73: warning: parameters of member zensun are not (all) documented
Generating page documentation...
Generating group documentation...
Generating class documentation...
Generating namespace index...
Generating docs for compound ctlblk_mod::field_info...
/home/ed/UPP/sorc/ncep_post.fd/CTLBLK.f:17: warning: Member ifld (variable) of type ctlblk_mod::field_info is not documented.
/home/ed/UPP/sorc/ncep_post.fd/CTLBLK.f:18: warning: Member lvl (variable) of type ctlblk_mod::field_info is not documented.
/home/ed/UPP/sorc/ncep_post.fd/CTLBLK.f:19: warning: Member lvl1 (variable) of type ctlblk_mod::field_info is not documented.
/home/ed/UPP/sorc/ncep_post.fd/CTLBLK.f:19: warning: Member lvl2 (variable) of type ctlblk_mod::field_info is not documented.
/home/ed/UPP/sorc/ncep_post.fd/CTLBLK.f:20: warning: Member ntrange (variable) of type ctlblk_mod::field_info is not documented.
/home/ed/UPP/sorc/ncep_post.fd/CTLBLK.f:21: warning: Member tinvstat (variable) of type ctlblk_mod::field_info is not documented.
Generating docs for namespace kinds
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:45: warning: Member i_byte (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:75: warning: Member i_kind (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:49: warning: Member i_llong (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:47: warning: Member i_long (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:46: warning: Member i_short (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:52: warning: Member num_bytes_for_i_byte (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:76: warning: Member num_bytes_for_i_kind (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:55: warning: Member num_bytes_for_i_llong (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:54: warning: Member num_bytes_for_i_long (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:53: warning: Member num_bytes_for_i_short (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:90: warning: Member num_bytes_for_r_double (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:107: warning: Member num_bytes_for_r_kind (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:91: warning: Member num_bytes_for_r_quad (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:89: warning: Member num_bytes_for_r_single (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:84: warning: Member r_double (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:106: warning: Member r_kind (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:86: warning: Member r_quad (variable) of module kinds is not documented.
/home/ed/UPP/sorc/ncep_post.fd/kinds_mod.F:83: warning: Member r_single (variable) of module kinds is not documented.
Generating docs for namespace native_endianness
/home/ed/UPP/sorc/ncep_post.fd/native_endianness.f:48: warning: Member is_little_endian() (function) of module native_endianness is not documented.
/home/ed/UPP/sorc/ncep_post.fd/native_endianness.f:44: warning: Member byte_swap (variable) of module native_endianness is not documented.
Generating docs for compound severitymaps::scenarios_t...
/home/ed/UPP/sorc/ncep_post.fd/GFIP3.f:1112: warning: Member all_snow (variable) of type severitymaps::scenarios_t is not documented.
/home/ed/UPP/sorc/ncep_post.fd/GFIP3.f:1113: warning: Member cold_rain (variable) of type severitymaps::scenarios_t is not documented.
/home/ed/UPP/sorc/ncep_post.fd/GFIP3.f:1116: warning: Member convection (variable) of type severitymaps::scenarios_t is not documented.
/home/ed/UPP/sorc/ncep_post.fd/GFIP3.f:1115: warning: Member freezing_precipitaion (variable) of type severitymaps::scenarios_t is not documented.
/home/ed/UPP/sorc/ncep_post.fd/GFIP3.f:1109: warning: Member no_precipitaion (variable) of type severitymaps::scenarios_t is not documented.
/home/ed/UPP/sorc/ncep_post.fd/GFIP3.f:1111: warning: Member precipitaion_above_warmnose (variable) of type severitymaps::scenarios_t is not documented.
/home/ed/UPP/sorc/ncep_post.fd/GFIP3.f:1110: warning: Member precipitaion_below_warmnose (variable) of type severitymaps::scenarios_t is not documented.
/home/ed/UPP/sorc/ncep_post.fd/GFIP3.f:1114: warning: Member warm_precipitaion (variable) of type severitymaps::scenarios_t is not documented.
Generating docs for namespace upp_math
/home/ed/UPP/sorc/ncep_post.fd/UPP_MATH.f:42: warning: Member dvdxdudy(uwnd, vwnd) (function) of module upp_math is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_MATH.f:114: warning: Member h2u(ingrid, outgrid) (function) of module upp_math is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_MATH.f:172: warning: Member h2v(ingrid, outgrid) (function) of module upp_math is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_MATH.f:218: warning: Member u2h(ingrid, outgrid) (function) of module upp_math is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_MATH.f:263: warning: Member v2h(ingrid, outgrid) (function) of module upp_math is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_MATH.f:34: warning: Member ddudy (variable) of module upp_math is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_MATH.f:33: warning: Member ddvdx (variable) of module upp_math is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_MATH.f:35: warning: Member uuavg (variable) of module upp_math is not documented.
Generating docs for namespace upp_physics
/home/ed/UPP/sorc/ncep_post.fd/UPP_PHYSICS.f:491: warning: Member calcape(ITYPE, DPBND, P1D, T1D, Q1D, L1D, CAPE, CINS, PPARC, ZEQL, THUND) (function) of module upp_physics is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_PHYSICS.f:992: warning: Member calcape2(ITYPE, DPBND, P1D, T1D, Q1D, L1D, CAPE, CINS, LFC, ESRHL, ESRHH, DCAPE, DGLD, ESP) (function) of module upp_physics is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_PHYSICS.f:52: warning: Member calrh(P1, T1, Q1, RH) (function) of module upp_physics is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_PHYSICS.f:170: warning: Member calrh_gfs(P1, T1, Q1, RH) (function) of module upp_physics is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_PHYSICS.f:281: warning: Member calrh_gsd(P1, T1, Q1, RHB) (function) of module upp_physics is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_PHYSICS.f:71: warning: Member calrh_nam(P1, T1, Q1, RH) (function) of module upp_physics is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_PHYSICS.f:321: warning: Member calrh_pw(RHPW) (function) of module upp_physics is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_PHYSICS.f:388: warning: Member fpvsnew(t) (function) of module upp_physics is not documented.
/home/ed/UPP/sorc/ncep_post.fd/UPP_PHYSICS.f:1776: warning: Member tvirtual(T, Q) (function) of module upp_physics is not documented.
fossell commented 2 years ago

@edwardhartnett - Thank you for providing this list. The DTC would like to help with the effort to initiate proper documentation in the existing code base as well as establish documentation standards for code developers. Would you be able/willing to meet to help get us started in the right direction or perhaps you have resources, examples already you can point us to?

edwardhartnett commented 2 years ago

I'm absolutely happy to help by meeting at any time.

Most of the warnings are pretty self-explanatory. Let's take an example:

/home/ed/UPP/sorc/ncep_post.fd/AVIATION.f:231: warning: Member calcat(U, V, H, U_OLD, V_OLD, H_OLD, CAT) (function) of file AVIATION.f is not documented.

So when I look at AVIATION.f, around line 231, here's what I see:

      SUBROUTINE CALCAT(U,V,H,U_OLD,V_OLD,H_OLD,CAT)
!$$$  SUBPROGRAM DOCUMENTATION BLOCK
!                .      .    .     
! SUBPROGRAM:    CALCAT       COMPUTES Clear Air Turbulence Index 
!   PRGRMMR: Binbin Zhou      /NCEP/EMC  DATE: 2005-08-16       
!     
! ABSTRACT:  
!    This program computes the Clear Air Turbulence condition
!    which is expressed as Index with Ellrod Algorithm 
!    (Gary P. Ellrod: Wea. and Forecast,1992) and Ri number 
!    suggested by S. Silberberg of AWC. But Ri number is still
!    not classified into 3 level CAT, so current version does
!    not use Ri as suggested by S. Silberberg
!
! PROGRAM HISTORY LOG:
!
!   05-09-19  H CHUANG - MODIFIED TO COMPUTE GRADIENTS FOR BOTH A AND E GRIDS
!
!
!    According to Ellrod, the CAT is classied into 3 levels (index)
!    Light:  CAT = 1     
!    Middle: CAT = 2
!    Severe: CAT = 3
!    No CAT: CAT = 0 
!
! USAGE:    CALL CALCAT(U,V,H,L,CAT)
!   INPUT ARGUMENT LIST:
!     U     - U wind profile (m/s) (at pressure level)
!     V     - V wind (m/s)         (at pressure level)
!     H     - Height (m)           (at pressure level)
!     L     - # of pressure level
!
!   OUTPUT ARGUMENT LIST: 
!     CAT     - CAT Index
!     
!   OUTPUT FILES:
!     NONE
!     
!   SUBPROGRAMS CALLED:
!     UTILITIES:
!     LIBRARY:
!       NONE
!     
!   ATTRIBUTES:
!     LANGUAGE: FORTRAN 90/77
!     MACHINE : BLUE AT NCEP
!$$$  
      use masks, only: dx, dy

So the problem here is that the legacy documentation has not been converted to doxygen. THe legacy documentation block should be removed, and a doxygen documentation block added, just before the SUBROUTINE line, which contains the documentation for this subroutine.

Once this documentation is converted to doxygen, this warning will go away.

fossell commented 2 years ago

@WenMeng-NOAA - Our team is starting to tackle this issue of translating current UPP routines to use Doxygen documentation syntax. As we make progress, would you prefer PRs for sets of files as they're ready, or wait until we make changes in all routines and submit the bulk of these documentation updates in one PR?

WenMeng-NOAA commented 2 years ago

@fossell Multiple PRs would be easy for reviewing and merging. Thanks!

edwardhartnett commented 2 years ago

I strongly recommend that each programmer working on doxygen conversion start with one code file, and put that up for PR, tagging me for review. As we work through the issues, each programmer will learn how to do documentation in a way that's similar to the way the rest of the UPP documentation is done.

Doxygen offers many alternatives - we don't want each programmer finding their own way of doing things - we want to follow common doxygen idioms, and have all our doxygen look similar. We have worked out a lot of the problems on the NCEPLIBS team, and the UPP team should not have to re-engineer all that.

Once each programmer gets one or two single-file doxygen PRs through, they can start doing 5 or 6 files per PR. No more than that please, if you want effective review. At that point I will bring in some other members of the NCEPLIBS team to help review the doxygen.

Also, please make all doxygen PRs separate from code changes. Doxygen PRs should have changes only to lines of comments - never to any lines of code. Keep your code changes for a separate PR after the documentation is done. This makes it easy to make large numbers of changes (as is required) without any chance of breaking code.

fossell commented 2 years ago

@edwardhartnett - thanks for your suggestions, this all sounds good to me. Appreciate your willingness to review these PRs and help us learn leverage from your experience. Our initial plan is to just convert the existing content to doxygen syntax, like you did with AVIATION.f, and not pursue any further enhancements at this time. Does that sound like a reasonable approach or do you recommend other things to consider?

edwardhartnett commented 2 years ago

That is a good approach and there is plenty of work there. In doing that, every programmer will learn the common doxygen tags, and such fancy tricks as tables, lists, and references.

Once that is complete, all the programmers involved will have a good understanding of doxygen. Those who are interested can read the documentation and tutorials to learn more advanced doxygen techniques and more ways to make the documentation beautiful as well as informative.

fossell commented 2 years ago

@WenMeng-NOAA - @kayeekayee is going to be ramping up work on these doxygen updates which means a handful of PRs coming through. We'd like to have @edwardhartnett review them, or at least an initial batch, to provide comments and suggestions before merging. Ka Yee had issues assigning Ed as a reviewer, but I'll work with her to resolve that problem. As future PRs for this come in we'll wait for Ed's review initially until we have a good feel for it. If you'd like us to take a different approach in coordinating these PRs with you, just let us know.

@edwardhartnett - Let us know if you're still willing to review a few of these for us. #451 has already been merged, but feel free to look or just comment on forthcoming PRs.

kayeekayee commented 2 years ago

@edwardhartnett @fossell Please review this PR if all the warnings are being fixed or not. Let me know if I missed any. Thank you.

edwardhartnett commented 2 years ago

Turn on WARN_AS_ERROR in your Doxyfile.in and doxygen will tell you. ;-)

fossell commented 2 years ago

@kayeekayee - It looks like the version of doxygen on Cheyenne is 1.8.6 and it's not recognizing the WARN_AS_ERROR tag, so it doesn't immediately fail when encountering an error. I tried on my laptop with v1.9.3 and it does fail as soon as there is an error. Even without this tag, on Cheyenne when I make the docs it produces a list of warnings about what is not completely documented yet. (I'm not sure about what version is on Hera and what the behavior is there)

In many cases it looks like it's certain parameters of routines you already started to translate to doxygen are not documented. I'm guessing that this is just a result of documentation that was never developers never put in there in the first place or updates to the code that were never documented, so during this initial phase of translating only what's existing, these are still missing complete documentation. For example, CALGUST.f produces a warning about LPBL, ZPBL, and GUST not being documented, because LPBL and ZPBL are not listed with an @param in the doxygen block, and GUST is listed as out, when in fact in the code it's inout.

Other routines may not have been updated at all, e.g. VRBLS2Dmod.f. In fact most module routines are not doxygenated. @edwardhartnett - Is there a flag/tag in the doxyfile.in that will list the files only (not all members of all files) that are not documented at all given a certain source directory? Without spitting out all of the warnings? The WARN* options I looked at didn't seem to quite get at that. Or is it best to just make run down the list of files in our source directory? Do all routines need to have a @something for doxygen to even consider it?

@kayeekayee - I think we have two things to attack here, 1) make sure all source code is being recognized and included by doxygen for the documentation, and 2) updating routines with incomplete documentation.

edwardhartnett commented 2 years ago

Doxygen will consider all files which are included in the Doxyfile INPUT field, and which have at the top of the file:

!> @file

There is not a lot of warning control. You get what you get. I think there is a separate warning setting for warnings for undocumented functions and warnings for missing parameters.

Indeed, different versions of doxygen respond slightly differently to warnings. On the NCEPLIBS project, we take 1.8.7 (IIRC) as canonical because that's what GitHub CI uses in its ubuntu-latest distribution.

It's expected that hand-maintained documentation will drift and contain mistakes, so it's not at all surprising that there are missing or incorrect parameters. You must simply work through the list and fix all the warnings. Then the WARN_AS_ERROR flag can be turned on, and you will never have to do it again. ;-)

Fortunately, fixing doxygen warnings is easy work.

fossell commented 2 years ago

@edwardhartnett - Thanks! This is very helpful. We will keep tackling this with the goal of being able to turn that WARN_AS_ERROR flag on and never look back. :)

fossell commented 2 years ago

@camshe - This is an ongoing effort so probably one to be aware of.

edwardhartnett commented 3 weeks ago

Can this issue be closed?