Custom Query (2547 matches)
Results (40 - 42 of 2547)
Ticket | Resolution | Summary | Owner | Reporter |
---|---|---|---|---|
#1323 | fixed | New development branch for surface wave components | acc | acc |
Description |
Creation of the 2014/dev_r4642_WavesWG branch. This is a new development branch for combining the surface wave components from several members of the Waves Working Group. The first action on this branch will be to incorporate the changes from the 2013/dev_ECMWF_waves branch which this new branch replaces. INGV will then incorporate their developments and rationalise the two approaches into a single interface. Additional comments will be added to the wiki:ticket/1323_WavesWG page. |
|||
#1325 | fixed | Incorrect output restart filenames generated if files exist and ln_clobber is .true. | nemo | acc |
Description |
With ln_clobber set to .true. it should be possible to repeat runs and overwrite earlier versions of output files. The logic is currently flawed in that the processor number is appended to the base filename for checking if the file exists in iom_open and again in iom_nf90_open for output files. The string variable is reset between calls if the file does not exist but not if the file exists and ln_clobber is .true. The result is an extra set of restart files with names such as: ORCA2_00000465_restart_0000_0000.nc Changing: IF( llwrt .AND. .NOT. ln_clobber ) THEN ! we stop as we want to write in a new file CALL ctl_stop( TRIM(clinfo), 'We want to write in a new file but '//TRIM(clname)//' already exists...' ) istop = nstop + 1 ! make sure that istop /= nstop so we don't open the file ENDIF to: IF( llwrt .AND. .NOT. ln_clobber ) THEN ! we stop as we want to write in a new file CALL ctl_stop( TRIM(clinfo), 'We want to write in a new file but '//TRIM(clname)//' already exists...' ) istop = nstop + 1 ! make sure that istop /= nstop so we don't open the file ELSEIF( llwrt ) THEN ! the file exists and we are in write mode with permission to clname = cltmpn ! overwrite so get back the file name without the cpu number ENDIF in iom.F90 gives the correct behaviour. |
|||
#1351 | fixed | Problems with AMM12 SETTE tests with -O3 optimisation (ifort compiler) | nemo | acc |
Description |
My initial attempts to run the AMM12 SETTE tests with a v3.6 trunk (rev 4673) failed when using the ifort compiler (v14) and a -O3 optimisation level. The failure was CFL breaches after 12 time steps. The tests ran successfully at -O2 and below for AMM12 and at -O3 for all other tests (except AGRIF). Eventually tracked the cause to this block at line 291 in dynspg_ts.F90 ( key_vectopt_loop is not defined ): DO jk = 1, jpkm1 #if defined key_vectopt_loop DO jj = 1, 1 !Vector opt. => forced unrolling DO ji = 1, jpij #else DO jj = 1, jpj DO ji = 1, jpi #endif zu_frc(ji,jj) = zu_frc(ji,jj) + fse3u_n(ji,jj,jk) * ua(ji,jj,jk) * umask(ji,jj,jk) zv_frc(ji,jj) = zv_frc(ji,jj) + fse3v_n(ji,jj,jk) * va(ji,jj,jk) * vmask(ji,jj,jk) END DO END DO END DO which looks harmless but adding a compiler directive to suppress loop fusion enables a successful SETTE test at -O3 optimisation. I.e.: DO jk = 1, jpkm1 !DIR$ NOFUSION #if defined key_vectopt_loop DO jj = 1, 1 !Vector opt. => forced unrolling DO ji = 1, jpij #else DO jj = 1, jpj DO ji = 1, jpi #endif zu_frc(ji,jj) = zu_frc(ji,jj) + fse3u_n(ji,jj,jk) * ua(ji,jj,jk) * umask(ji,jj,jk) zv_frc(ji,jj) = zv_frc(ji,jj) + fse3v_n(ji,jj,jk) * va(ji,jj,jk) * vmask(ji,jj,jk) END DO END DO END DO Does anyone have a clue what might be happening here? |