Custom Query (986 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (658 - 660 of 986)

Ticket Owner Reporter Resolution Summary
#790 arango Done Change allocation of FOURDVAR structure
Description
  • For the convenience of allocating and deallocating, the arrays in the structure FOURDVAR(ng) are now declared as allocatable instead of a pointer in mod_fourdvar.F. So now we have:
    !
    !  Define module structure.
    !
            TYPE T_FOURDVAR
    
              integer , allocatable :: NobsSurvey(:)
              integer , allocatable :: ObsCount(:)
              integer , allocatable :: ObsReject(:)
              ...
            END TYPE T_FOURDVAR
    
            TYPE (T_FOURDVAR), allocatable :: FOURDVAR(:)
    
    The change is made to facilitate new 4D-Var algorithms currently under development.
  • Also, corrected a minor bug in read_asspar.F when processing keywords Iprovenance and P_bgqc:
    #  ifdef BGQC
                ...
    
                CASE ('Iprovenance')
                  Mval=MAXVAL(Nprovenance)
                  Npts=load_i(Nval, Rval, Mval, Ngrids, Iprovenance)
                CASE ('P_bgqc')
                  Mval=MAXVAL(Nprovenance)
                  Npts=load_r(Nval, Rval, Mval, Ngrids, P_bgqc)
    #  endif
    
    because it has the wrong number of arguments to load_i and load_r since both Iprovenance and P_bgqc are 2D arrays.
#792 m.hadfield Fixed Invalid calls to load_i in read_couplepar.F
Description

When ROMS/SWAN coupling is enabled, compilation of ROMS/Utility/read_couplepar.F fails on several blocks of code like this one

            CASE ('Nthreads(ocean)')
              IF ((0.lt.Iocean).and.(Iocean.le.Nmodels)) THEN
                Npts=load_i(Nval, Rval, 1, Nthreads(Iocean))
              END IF

The fix is to rewrite them like this

            CASE ('Nthreads(ocean)')
              IF ((0.lt.Iocean).and.(Iocean.le.Nmodels)) THEN
                Npts=load_i(Nval, Rval, 1, Ivalue)
                Nthreads(Iocean)=Ivalue(1)
              END IF

A corrected version is attached.

#793 arango Fixed VERY IMPORTANT: Corrected several minor bugs
Description

Several minor bugs were corrected:

  • nesting.F: improved the random issues associated with the linear interpolation weights in put_refine2d and put_refine3d:
    !
    !  Set linear time interpolation weights. Fractional seconds are
    !  rounded to the nearest milliseconds integer towards zero in the
    !  time interpolation weights.
    !
          SecScale=1000.0_dp              ! seconds to milliseconds
    !
          Wold=ANINT((RollingTime(tnew,cr)-time(ng))*SecScale,dp)
          Wnew=ANINT((time(ng)-RollingTime(told,cr))*SecScale,dp)
          fac=1.0_dp/(Wold+Wnew)
          Wold=fac*Wold
          Wnew=fac*Wnew 
    
    Notice that the scaling from seconds to milliseconds does not affect the values of the weighting coefficients Wold and Wnew. They still range between 0 and 1 since we multiple and divide by SecScale. Many thanks to Takumu Iwamoto for bringing this to my attention.
  • metrics.F: Similar random issues are found when checking the grid refinement timestep when using the mod(dt(dg), dt(rg)):
    !
    !  Check refined grid time-step.  The time-step size for refined grids
    !  needs to be an exact mode multiple of its coarser donor grid.  In
    !  principle, it can be a "RefineScale" factor smaller.  However, other
    !  integer smaller or larger factor is allowed such that:
    !
    !    MOD(dt(dg)*SecScale, dt(rg)*SecScale) = 0   dg:  donor  coarse grid
    !                                                rg:  receiver fine grid
    !
    !  Notice that SecScale is used to avoid roundoff when the timestep
    !  between donor and receiver grids are small and less than one.
    !
            SecScale=1000.0_dp              ! seconds to milliseconds
            DO ig=1,Ngrids
              IF (RefinedGrid(ig).and.(RefineScale(ig).gt.0)) THEN
                dg=CoarserDonor(ig)
                IF (MOD(dt(dg)*SecScale,dt(ig)*SecScale).ne.0.0_dp) THEN
                  IF (DOMAIN(ng)%SouthWest_Test(tile)) THEN
                    IF (Master) THEN
                      WRITE (stdout,100) ig, dt(ig), dg, dt(dg),            &
         &                               MOD(dt(dg),dt(ig))
    
    The conditional MOD(dt(dg)*SecScale, dt(rg)*SecScale) must be zero to not trigger an error. Again, many thanks to Takumu Iwamoto for reporting this problem.
  • dateclock.F: Corrected typo in routine datenum when computing its values in seconds:
    !
    !  Fractional date number (units=second).
    !
          DateNumber(2)=REAL(MyDay,dp)*86400.0_dp+                          &
         &              REAL(MyHour,dp)*3600.0_dp+                          &
         &              REAL(MyMinutes,dp)*60.0_dp+                         &
         &              MySeconds
    
    
    We needed a factor of 3600 instead of 360. Many thanks to Rafael Soutelino for reporting this bug.
  • rpcg_lanczos.F: Corrected a parallel bug before calling cg_write_rpcg, which writes several parameters (Jf, Jdata, Jmod, Jopt, Jb, Jobs, Jact, preducv, preducy) that are only known by the master node. We need to broadcast their values to other nodes:
         CALL mp_bcastf (ng, model, Jf)
         CALL mp_bcastf (ng, model, Jdata)
         CALL mp_bcastf (ng, model, Jmod)
         CALL mp_bcastf (ng, model, Jopt)
         CALL mp_bcastf (ng, model, Jobs)
         CALL mp_bcastf (ng, model, Jact)
         CALL mp_bcastf (ng, model, preducv)
         CALL mp_bcastf (ng, model, preducy)
    
    since all the nodes participate in the writing. Many thanks to Andy Moore for bringing this to my attention.
  • mod_scalars.F: Added value for Jerlov water type 7:
            real(r8), dimension(9) :: lmd_mu1 =                             &
         &            (/ 0.35_r8, 0.6_r8,  1.0_r8,  1.5_r8, 1.4_r8,         
         &               0.42_r8, 0.37_r8, 0.33_r8, 0.00468592_r8 /)
    
    instead of a zero value. Many thnaks to Pierre St-Laurent for bringing this to my attention.
  • fennel.h: Added masing for wetting and drying. Many thanks to John Wilkin for reporting this issue.
  • mod_kinds.F: Included cppdef.h to have access to defined C-preprocessing options. Many thanks to Aaron Tsang for reporting this problem.
  • ana_psource.h: Improved condtional:
          IF (iic(ng).eq.ntstart(ng).or.(iic(ng).eq.0)) THEN
    
    so we can have anlitical initial conditions since iic(ng)=0. Many thanks to Jamie Pringle for reporting it.

Also, I updated set_ngfld.F, set_2dfld.F, set_3dfld.F, set_ngfldr.F, set_2dfldr.F, set_3dfldr.F for the correct double precision operations when SINGLE_PRECISION is activated. Recall that double precision is need for few variables fo guarantee accuracy.

Batch Modify
Note: See TracBatchModify for help on using batch modify.
Note: See TracQuery for help on using queries.