Changeset 386 for branches


Ignore:
Timestamp:
2011-08-05T15:58:48+02:00 (13 years ago)
Author:
didier.solyga
Message:

Correct2 wrong loops in slowproc when dgvm is activated. Replace PRINT instructions by WRITE instructions. Add a call to ipslerr in stomate alloc in case of wrong values of L0 and R0

Location:
branches/ORCHIDEE_EXT/ORCHIDEE
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/ORCHIDEE_EXT/ORCHIDEE/src_sechiba/condveg.f90

    r311 r386  
    682682  ALLOCATE(lat_rel(iml,jml), STAT=ALLOC_ERR) 
    683683  IF (ALLOC_ERR/=0) THEN 
    684      PRINT *,"ERROR IN ALLOCATION of lat_rel : ",ALLOC_ERR 
     684     WRITE(numout,*) "ERROR IN ALLOCATION of lat_rel : ",ALLOC_ERR 
    685685     STOP  
    686686  ENDIF 
     
    688688  ALLOCATE(lon_rel(iml,jml), STAT=ALLOC_ERR) 
    689689  IF (ALLOC_ERR/=0) THEN 
    690      PRINT *,"ERROR IN ALLOCATION of lon_rel : ",ALLOC_ERR 
     690     WRITE(numout,*) "ERROR IN ALLOCATION of lon_rel : ",ALLOC_ERR 
    691691     STOP  
    692692  ENDIF 
     
    694694  ALLOCATE(mask(iml,jml), STAT=ALLOC_ERR) 
    695695  IF (ALLOC_ERR/=0) THEN 
    696      PRINT *,"ERROR IN ALLOCATION of mask : ",ALLOC_ERR 
     696     WRITE(numout,*) "ERROR IN ALLOCATION of mask : ",ALLOC_ERR 
    697697     STOP  
    698698  ENDIF 
     
    700700  ALLOCATE(soilcol(iml,jml), STAT=ALLOC_ERR) 
    701701  IF (ALLOC_ERR/=0) THEN 
    702      PRINT *,"ERROR IN ALLOCATION of soiltext : ",ALLOC_ERR 
     702     WRITE(numout,*) "ERROR IN ALLOCATION of soiltext : ",ALLOC_ERR 
    703703     STOP  
    704704  ENDIF 
     
    739739     ALLOCATE(sub_area(nbpt,nbvmax), STAT=ALLOC_ERR) 
    740740     IF (ALLOC_ERR/=0) THEN 
    741         PRINT *,"ERROR IN ALLOCATION of sub_area : ",ALLOC_ERR 
     741         WRITE(numout,*) "ERROR IN ALLOCATION of sub_area : ",ALLOC_ERR 
    742742        STOP  
    743743     ENDIF 
     
    746746     ALLOCATE(sub_index(nbpt,nbvmax,2), STAT=ALLOC_ERR) 
    747747     IF (ALLOC_ERR/=0) THEN 
    748         PRINT *,"ERROR IN ALLOCATION of sub_index : ",ALLOC_ERR 
     748        WRITE(numout,*) "ERROR IN ALLOCATION of sub_index : ",ALLOC_ERR 
    749749        STOP  
    750750     ENDIF 
  • branches/ORCHIDEE_EXT/ORCHIDEE/src_sechiba/slowproc.f90

    r381 r386  
    536536    ALLOCATE(frac_nobio_nextyear(kjpindex, nnobio), STAT=ier) 
    537537    IF (ier/=0) THEN 
    538       PRINT *,"ERROR IN ALLOCATION of frac_nobio_nextyear : ",ier 
     538      WRITE(numout,*) "ERROR IN ALLOCATION of frac_nobio_nextyear : ",ier 
    539539      STOP  
    540540    ENDIF 
     
    544544    ALLOCATE(totfrac_nobio_nextyear(kjpindex), STAT=ier) 
    545545    IF (ier/=0) THEN 
    546       PRINT *,"ERROR IN ALLOCATION of totfrac_nobio_nextyear : ",ier 
     546      WRITE(numout,*) "ERROR IN ALLOCATION of totfrac_nobio_nextyear : ",ier 
    547547      STOP  
    548548    ENDIF 
     
    871871                      IF (natural(jv)) THEN  
    872872                         veget_max(:,jv)=zero 
    873                       ELSE 
    874                          sum_veget_max = zero 
    875                          DO ji = 1, kjpindex 
    876                             ! we sum only on the indexes corresponding to the non_natural pfts 
     873                      ENDIF 
     874                   ENDDO 
     875                   ! 
     876                   sum_veget_max = zero 
     877                   DO ji = 1, kjpindex 
     878                      ! we sum only on the indexes corresponding to the non_natural pfts 
     879                      DO jv = 2,nvm 
     880                         IF (.NOT. natural(jv)) THEN 
    877881                            sum_veget_max = sum_veget_max + veget_max(ji,jv) 
    878 !                            veget_max(ji,1) = un - SUM(veget_max(ji,jv))-SUM(frac_nobio(ji,:)) 
    879                          ENDDO 
    880                          veget_max(ji,1) = un - sum_veget_max - SUM(frac_nobio(ji,:)) 
    881                       ENDIF 
    882                    ENDDO !- end loop nvm 
     882                         ENDIF 
     883                      ENDDO 
     884                      veget_max(ji,1) = un - sum_veget_max - SUM(frac_nobio(ji,:)) 
     885                   ENDDO 
    883886                ELSE 
    884887                   veget_max(:,:) = zero 
     
    908911                      IF (natural(jv)) THEN  
    909912                         veget_max(:,jv)=zero 
    910                       ELSE 
    911                          ! Add 15/03/2011 
    912                          sum_veget_max = zero 
    913                          DO ji = 1, kjpindex 
     913                      ENDIF 
     914                   ENDDO 
     915                   ! 
     916                   sum_veget_max = zero 
     917                   DO ji = 1, kjpindex 
     918                      DO jv = 2, nvm 
     919                         IF(.NOT. natural(jv)) THEN 
    914920                            sum_veget_max = sum_veget_max + veget_max(ji,jv) 
    915                          ENDDO                             
    916                          veget_max(ji,1) = un - sum_veget_max- SUM(frac_nobio(ji,:))    
    917                       ENDIF 
    918                    ENDDO !- end loop nvm 
     921                         ENDIF 
     922                      ENDDO 
     923                      veget_max(ji,1) = un - sum_veget_max- SUM(frac_nobio(ji,:))    
     924                   ENDDO 
    919925                ELSE 
    920926                   veget_max(:,:) = zero 
     
    929935             ! 
    930936       ELSE 
    931              ! WITH restarts for vegetation and DGVM and NO AGRICULTURE 
    932              IF ( control%ok_dgvm  ) THEN 
     937          ! WITH restarts for vegetation and DGVM and NO AGRICULTURE 
     938          IF ( control%ok_dgvm  ) THEN 
    933939             ! 
    934940             ! If we are dealing with dynamic vegetation then all 
     
    937943             ! set to 0 as well 
    938944             ! 
    939 !             IF (.NOT. agriculture) THEN 
    940 !                DO ji = 1, kjpindex 
    941 !                   veget_max(ji,1) = veget_max(ji,1) + SUM(veget_max(ji,nvm-1:nvm)) 
    942 !                ENDDO 
    943 !                veget_max(ji,nvm-1:nvm) = zero 
    944 !             ENDIF 
    945  
    946945!$$$ 25/10/10 :: Modif DS & NV :: attention garde t'on la masse de C !!! 
    947946             IF (.NOT. agriculture) THEN 
    948947                DO jv = 2, nvm   
    949948                   DO ji = 1, kjpindex 
    950                         IF ( .NOT. natural (jv))  THEN 
     949                      IF ( .NOT. natural (jv))  THEN 
    951950                         veget_max(ji,1) = veget_max(ji,1) + veget_max(ji,jv) 
    952951                         veget_max(ji,jv) = zero 
    953                         ENDIF   
     952                      ENDIF 
    954953                   ENDDO 
    955954                ENDDO 
     
    27272726    CHARACTER(LEN=80) :: filename 
    27282727    INTEGER(i_std) :: iml, jml, lml, tml, fid, ib, ip, jp, vid 
    2729     REAL(r_std) :: lev(1), date, dt, coslat, pi 
     2728    REAL(r_std) :: lev(1), date, dt, coslat 
    27302729    INTEGER(i_std) :: itau(1) 
    27312730    REAL(r_std), ALLOCATABLE, DIMENSION(:) :: lat_ful, lon_ful, vegmap 
     
    39633962    INTEGER(i_std), INTENT(out)                  :: inear 
    39643963 
    3965 !    REAL(r_std)                                  :: pi 
    39663964    REAL(r_std)                                  :: pa, p 
    39673965    REAL(r_std)                                  :: coscolat, sincolat 
  • branches/ORCHIDEE_EXT/ORCHIDEE/src_stomate/stomate_alloc.f90

    r257 r386  
    152152    ! 
    153153    L0 = 1. - R0 - S0  ! defined in constantes.f90 
    154     IF ((L0 .LT. zero) .OR. (S0 .EQ. un)) STOP 'L0 negative or division by zero if S0 = 1'  
     154    IF ((L0 .LT. zero) .OR. (S0 .EQ. un)) THEN 
     155       CALL ipslerr (3,'in module stomate_alloc', & 
     156            &           'Something wrong happened', & 
     157            &           'L0 negative or division by zero if S0 = 1', & 
     158            &           '(Check your parameters.)') 
     159    ENDIF 
    155160 
    156161    ! 
Note: See TracChangeset for help on using the changeset viewer.