= Current Bugs = List of bugs that need to be fixed. They are ordered by priority from the top to the bottom. == Forcesoil == The orchidee (r3022) can not run after one time of forcesoil, it showed a error "floating overflow" The error can be found in this file: /home/users/yhuang/job/orchidee/test_f/oe.yfpe0f.g.nrouting.Ye.ori And the output are all in: /home/orchidee04/yhuang/test/spinup/g/yfpe0f.g.nrouting.Ye.ori/ Reported by Ye == compiling error == gmake driver met a error showed as below: {{{ mpif90 -c -cpp -DCPP_PARA -p -g -fpe0 -traceback -fp-stack-check -ftrapuv -check bounds -i4 -r8 -I../../../lib -module ../../../lib -I/usr/local/install/netcdf-4.3.2p/include sechiba.f90 sechiba.f90(44): error #7002: Error in opening the compiled module file. Check INCLUDE paths. [THERMOSOILC] USE thermosoilc ------^ compilation aborted for sechiba.f90 (code 1) gmake[2]: *** [../../../lib/libsechiba.a(sechiba.o)] Error 1 gmake[2]: Leaving directory `/home/users/yhuang/modipsl/modeles/ORCHIDEE/src_sechiba' gmake[1]: *** [all] Error 2 gmake[1]: Leaving directory `/home/users/yhuang/modipsl/modeles/ORCHIDEE/src_sechiba' gmake: *** [libsechiba] Error 2 thermosoilc.f90 is just a copy of thermosoil.f90, but sechiba.f90 used module thermosoilc (at line 44 in sechiba.f90), but there is no command dealing with thermosoilc.f90 in AA_make in the same directory, I think that is why I can not use gmake driver to compile. }}} Reported Ye == flags consistency == Check flags consistency between VEGET_UPDATE= 1Y and IMPOSE_VEG= y. VEGET_UPDATE= 0Y:: -> Pour les crops on utilise la première carte lue. VEGET_UPDATE= 1Y:: -> On active le LUC, on lit la carte de vegétation seulement pour prendre en compte les crops qui évoluent alors ; le DGVM continue de gérer les PFTs naturels en fonction des conditions climatiques (enfin c'est ce que j'ai compris). Il ne faut surtout pas mettre IMPOSE_VEG= y puisque si on impose la végétation elle ne va pas pouvoir évoluer en fonction du climat (je n'ai pas testé mais ce fonctionnement semble absurde, il faudrait arrêter avec un message d'erreur). == Spitfire == === Multiple floating point exceptions at reat_of_spread === There is a floating overflow exception at exp(XXXX) from lpj_spitfire.f90 -> rate_of_spread {{{ ! reaction intensity a(:)=8.9033*(sigma(:)**(-0.7913)) WHERE (a(:).le.0.00001 .OR. bet(:).le.0.00001) dummy(:)=0.0 ELSEWHERE dummy(:)=exp(a(:)*(1.0-bet(:))) ENDWHERE }}} Proposed solution: set sigma values to 10000. FAILED {{{ !calculate mass weighted surface-area-to-volume ratio by fuel types. WHERE (dead_fuel(:).gt.min_stomate) sigma(:)=(fuel_1hr_total(:) * sigma_1hr + & fuel_10hr_total(:) * sigma_10hr + & fuel_100hr_total(:) * sigma_100hr) / dead_fuel(:) ELSEWHERE sigma(:)=0.00001 -> 10000 ENDWHERE }}} Proposed solution: check sigma instead of a. OK (Accepted by Chao and Fabienne) {{{ ! reaction intensity a(:)=8.9033*(sigma(:)**(-0.7913)) WHERE (sigma(:).le.0.00001 .OR. bet(:).le.0.00001) dummy(:)=0.0 ELSEWHERE dummy(:)=exp(a(:)*(1.0-bet(:))) ENDWHERE }}} This is not the root of the problem here. It comes from somewhere else but it triggers at this point. Proposal not applied. Attention: the use of WHERE statement with min_stomate is a bad practice which leads to potential bugs. What if the value is negative? In this case it would be ignored. = Merge Issues = The following points show the problems when merging. They need to be solved. == Revision 3059 == [https://forge.ipsl.jussieu.fr/orchidee/changeset/3059/trunk/ORCHIDEE r3059] === enerbil.f90 === snowflx is deleted. But In trunk it does not exist this form: {{{ <<<<<<< .working (MICT) IF (SUM(snowdz(ji,:)) .GT. snowcritd_thermal .AND. ok_explicitsnow) THEN sum_old = netrad(ji) + sensfl_old + larsub_old + lareva_old + snowflx(ji) ELSE sum_old = netrad(ji) + sensfl_old + larsub_old + lareva_old + soilflx(ji) ENDIF ======= (TRUNK) sum_old = netrad(ji) + sensfl_old + larsub_old + lareva_old + soilflx(ji) >>>>>>> .merge-right.r3059 }}} {{{ <<<<<<< .working (MICT) IF (SUM(snowdz(ji,:)) .GT. snowcritd_thermal .AND. ok_explicitsnow) THEN dtheta = dt_sechiba * sum_old / (zicp(ji) * snowcap(ji) + dt_sechiba * sum_sns) ELSE dtheta = dt_sechiba * sum_old / (zicp(ji) * soilcap(ji) + dt_sechiba * sum_sns) ENDIF ======= (TRUNK) dtheta = dt_sechiba * sum_old / (zicp(ji) * soilcap(ji) + dt_sechiba * sum_sns) >>>>>>> .merge-right.r3059 }}}