Changes between Version 3 and Version 4 of WorkViovy


Ignore:
Timestamp:
11/24/10 09:23:51 (11 years ago)
Author:
mmaipsl
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WorkViovy

    v3 v4  
    1515== Work on convergence with sönke code == 
    1616 
    17 1/ a problem when using the old photosynthesis. In diffuco_trans_co2 there where a divide by gstop not protected by a test gstop>0 
    18 we have to replace: 
    19         ''DO inia=1,nia 
    20  
     17 1. a problem when using the old photosynthesis. In diffuco_trans_co2 there where a divide by gstop not protected by a test gstop>0 [[BR]] 
     18    we have to replace: 
     19{{{ 
     20        DO inia=1,nia 
    2121           ! 
    22  
    2322           iainia=index_assi(inia) 
    24  
    2523           ! 
    26  
    2724           rveget(iainia,jv) = 1./gstop(iainia) 
    28  
    2925           ! 
    30  
    31         ENDDO'' 
    32  
    33 by 
    34         ''DO inia=1,nia 
    35  
     26        ENDDO 
     27}}} 
     28    by 
     29{{{ 
     30        DO inia=1,nia 
    3631           ! 
    37  
    3832           iainia=index_assi(inia) 
    39  
    4033           ! 
    41  
    4234           IF (gstop(iainia) > min_sechiba) THEN 
    43  
    4435              rveget(iainia,jv) = 1./gstop(iainia) 
    45  
    4636           ELSE 
    47  
    4837               rveget(iainia,jv) = 1e5 
    49  
    50             ENDIF 
    51  
     38           ENDIF 
    5239           ! 
    53  
    54         ENDDO'' 
    55  
    56 and'' 
    57  
    58      DO inia=1,nia 
    59  
     40        ENDDO 
     41}}} 
     42    and 
     43{{{ 
     44        DO inia=1,nia 
    6045          ! 
    61  
    6246          iainia=index_assi(inia) 
    63  
    6447          ! 
    65  
    6648          ! rstruct is the difference between rtot (=1./gstot) and rveget 
    67  
    6849          ! 
    69  
    7050          rstruct(iainia,jv) = 1./gstot(iainia,jv) - & 
    71  
    7251               rveget(iainia,jv) 
    73  
    7452          ! 
    75  
    76         ENDDO'' 
    77  
    78 by 
    79        ''DO inia=1,nia 
    80  
     53        ENDDO 
     54}}} 
     55    by 
     56{{{ 
     57       DO inia=1,nia 
    8158          ! 
    82  
    8359          iainia=index_assi(inia) 
    84  
    8560          ! 
    86  
    8761          ! rstruct is the difference between rtot (=1./gstot) and rveget 
    88  
    8962          ! 
    90  
    9163          IF (gstot(iainia,jv) > min_sechiba) THEN 
    92  
    93           rstruct(iainia,jv) = 1./gstot(iainia,jv) - & 
    94  
     64            rstruct(iainia,jv) = 1./gstot(iainia,jv) - & 
    9565               rveget(iainia,jv) 
    96  
    9766          ELSE 
    98  
    9967            rstruct(iainia,jv) =0 
    100  
    101          ENDIF 
    102  
     68          ENDIF 
    10369          ! 
    104  
    105         ENDDO'' 
    106  
    107  
    108 2/ A problem in the first call to npp_calc. There is a line where scal = 1./ind(i,j) * cn_ind(i,j) whereas ind and cn_ind are not wet defined (so set to 0) 
    109 corrected by putting a return at the end of the initialisation block: 
     70        ENDDO 
     71}}} 
     72 1. A problem in the first call to npp_calc. There is a line where scal = 1./ind(i,j) * cn_ind(i,j) whereas ind and cn_ind are not wet defined (so set to 0) 
     73    corrected by putting a return at the end of the initialisation block: 
     74{{{ 
    11075IF (firstcall) THEN ..... 
    111  
    11276  firstcall= .FALSE. 
    113  
    11477  RETURN 
    115  
    11678ENDIF 
    117  
    118  
    119 3/ Somethink which is probably very machine dependent but on titane whish is very very sensitive to precision problem (also when using simple precision) but anyway better to correct it: 
    120 in stomate_season there is a calculation of rue_longterm 
    121   '' !  
    122  
    123    ! 14.1 longterm radiation use efficiency 
     79}}} 
     80 1. Something which is probably very machine dependent but on titane whish is very very sensitive to precision problem (also when using simple precision) but anyway better to correct it: in stomate_season there is a calculation of rue_longterm 
     81{{{ 
     82    !  
     83    ! 14.1 longterm radiation use efficiency 
    12484    ! 
    12585    DO j=2,nvm 
     
    12888                     gpp_daily(:,j) / (1. - exp(-0.5 * biomass(:,j,ileaf,icarbon)*sla(j))) * dt ) / (one_year) 
    12989       ENDWHERE 
    130     ENDDO'' 
    131 in some case there is un FP error since (1. - exp(-0.5 * biomass(:,j,ileaf,icarbon)*sla(j))) * dt ) is probably near 0 
    132 so I replaced the: 
    133 ''      WHERE(biomass(:,j,ileaf,icarbon)) .GT. min_stomate) 
    134 '' 
    135 by  
    136  ''   WHERE((1. - exp(-0.5 * biomass(:,j,ileaf,icarbon)*sla(j))) .GT. min_stomate) 
    137 ''  
     90    ENDDO 
     91}}} 
     92    in some case there is un FP error since (1. - exp(-0.5 * biomass(:,j,ileaf,icarbon)*sla(j))) * dt ) is probably near 0 so [[BR]] 
     93    I replaced the: 
     94{{{ 
     95     WHERE(biomass(:,j,ileaf,icarbon)) .GT. min_stomate) 
     96}}} 
     97    by  
     98{{{ 
     99     WHERE((1. - exp(-0.5 * biomass(:,j,ileaf,icarbon)*sla(j))) .GT. min_stomate) 
     100}}}  
    138101