Changeset 2935 for trunk/LMDZ.MARS/libf


Ignore:
Timestamp:
Apr 12, 2023, 1:44:55 PM (20 months ago)
Author:
romain.vande
Message:

Mars newstart : Adapt routine lect_start_archive.F to the subslope parametrisation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/libf/dynphy_lonlat/phymars/lect_start_archive.F

    r2881 r2935  
    2323      USE comvert_mod, ONLY: ap,bp,aps,bps,preff
    2424      USE comconst_mod, ONLY: kappa,g,pi
     25      use comslope_mod, ONLY: nslope,def_slope,def_slope_mean,
     26     &             subslope_dist,end_comslope_h,ini_comslope_h
     27      use netcdf
    2528      implicit none
    2629
     
    4447      REAL,INTENT(OUT) :: h(iip1,jjp1,llm),ps(iip1,jjp1)
    4548      REAL,INTENT(OUT) :: q(iip1,jjp1,llm,nqtot)
    46       REAL,INTENT(OUT) :: tsurf(ngrid) ! surface temperature
    47       REAL,INTENT(OUT) :: tsoil(ngrid,nsoilmx) ! soil temperature
    48       REAL,INTENT(OUT) :: albedo(ngrid,2) ! surface albedo
    49       REAL,INTENT(OUT) :: emis(ngrid) ! ground emissivity
    50       REAL,INTENT(OUT) :: q2(ngrid,nlayer+1),qsurf(ngrid,nqtot)
     49      REAL,INTENT(OUT) :: tsurf(ngrid,nslope) ! surface temperature
     50      REAL,INTENT(OUT) :: tsoil(ngrid,nsoilmx,nslope) ! soil temperature
     51      REAL,INTENT(OUT) :: albedo(ngrid,2,nslope) ! surface albedo
     52      REAL,INTENT(OUT) :: emis(ngrid,nslope) ! ground emissivity
     53      REAL,INTENT(OUT) :: q2(ngrid,nlayer+1),qsurf(ngrid,nqtot,nslope)
    5154      REAL,INTENT(OUT) :: tauscaling(ngrid) ! dust conversion factor
    5255      REAL,INTENT(OUT) :: totcloudfrac(ngrid) ! sub grid cloud fraction
    53       REAL,INTENT(OUT) :: watercap(ngrid) ! infinite polar cap
     56      REAL,INTENT(OUT) :: watercap(ngrid,nslope) ! infinite polar cap
    5457      REAL,INTENT(OUT) :: phisold_newgrid(iip1,jjp1)
    5558      REAL,INTENT(OUT) :: t(iip1,jjp1,llm)
     
    128131c------------------------------------------------------
    129132      real us(iip1,jjp1,llm),vs(iip1,jjp1,llm)
    130       real tsurfS(iip1,jjp1),tsoilS(iip1,jjp1,nsoilmx)
     133      real tsurfS(iip1,jjp1,nslope),tsoilS(iip1,jjp1,nsoilmx,nslope)
    131134      real inertiedatS(iip1,jjp1,nsoilmx)
    132       real co2iceS(iip1,jjp1),emisS(iip1,jjp1)
    133       REAL q2S(iip1,jjp1,llm+1),qsurfS(iip1,jjp1,nqtot)
     135      real co2iceS(iip1,jjp1,nslope),emisS(iip1,jjp1,nslope)
     136      REAL q2S(iip1,jjp1,llm+1),qsurfS(iip1,jjp1,nqtot,nslope)
    134137      real tauscalingS(iip1,jjp1)
    135138      real totcloudfracS(iip1,jjp1)
    136       real watercapS(iip1,jjp1)
    137       real albedoS(iip1,jjp1)
     139      real watercapS(iip1,jjp1,nslope)
     140      real albedoS(iip1,jjp1,nslope)
    138141
    139142      real ptotal, co2icetotal
     
    153156      real, dimension(:), allocatable :: mlayerold
    154157      real, dimension(:,:,:), allocatable :: uold,vold,told,q2old
    155       real, dimension(:,:,:), allocatable :: tsoilold,qsurfold
    156       real, dimension(:,:,:),allocatable :: tsoiloldnew
     158      real, dimension(:,:,:,:), allocatable :: tsoilold,qsurfold
     159      real, dimension(:,:,:),allocatable :: tsoiloldnew_noslope
     160      real, dimension(:,:,:), allocatable :: tsoilold_noslope
     161      real, dimension(:,:,:), allocatable ::qsurfold_noslope
     162      real, dimension(:,:,:,:),allocatable :: tsoiloldnew
    157163! tsoiloldnew: old soil values, but along new subterranean grid
    158164      real, dimension(:,:,:), allocatable :: inertiedatold
     
    160166      real, dimension(:,:,:), allocatable :: inertiedatoldnew
    161167      real, dimension(:,:), allocatable :: psold,phisold
    162       real, dimension(:,:), allocatable :: co2iceold,tsurfold
    163       real, dimension(:,:), allocatable :: emisold
     168      real, dimension(:,:,:), allocatable :: co2iceold,tsurfold
     169      real, dimension(:,:), allocatable :: co2iceold_noslope
     170      real, dimension(:,:), allocatable :: tsurfold_noslope
     171      real, dimension(:,:,:), allocatable :: emisold
     172      real, dimension(:,:), allocatable :: emisold_noslope
    164173      real, dimension(:,:,:,:), allocatable :: qold
    165174      real, dimension(:,:), allocatable :: tauscalingold
    166175      real, dimension(:,:), allocatable :: totcloudfracold
    167       real, dimension(:,:), allocatable :: watercapold
    168       real, dimension(:,:), allocatable :: albedoold
     176      real, dimension(:,:,:), allocatable :: watercapold
     177      real, dimension(:,:), allocatable :: watercapold_noslope
     178      real, dimension(:,:,:), allocatable :: albedoold
     179      real, dimension(:,:), allocatable :: albedoold_noslope
     180
    169181
    170182      real tab_cntrl(100)
     
    200212      ! start_archive) and then .false.
    201213      logical :: old_co2ice=.false.
     214     
     215      ! flag to check if nslope is not present (old start_archive)
     216      integer :: nslope_read
     217      logical :: no_slope=.false.
     218      integer :: ndims
     219      integer, dimension(:), allocatable :: dimids
    202220c=======================================================================
    203221
     
    324342        depthinterpol=.true.
    325343      endif
     344     
     345     
     346! 1.2.1 find out the # of subgrid scale slope
     347      ierr= NF_INQ_DIMID(nid,"nslope",dimid)
     348      if (ierr.ne.NF_NOERR) then
     349         write(*,*) "nslope not present, old startarchive"
     350         write(*,*) "nslope=1"
     351         nslope=1
     352         no_slope=.true.
     353      else
     354         write(*,*) "nslope present"
     355         ierr= NF_INQ_DIMLEN(nid,dimid,nslope_read)
     356         if (ierr.ne.NF_NOERR) then
     357          write(*,*) 'lect_start_archive error: cannot
     358     & find nslope length'
     359          stop
     360         else
     361          write(*,*) "lect_start_archive: nslope_read=",nslope_read
     362          if(nslope_read.ne.1) then
     363            write(*,*) 'lect_start_archive only works with nslope=1'
     364            stop
     365          else
     366            nslope=1
     367            no_slope=.false.
     368          endif
     369         endif
     370      endif
     371      def_slope(1)=-90.
     372      def_slope(2)=90.
     373      def_slope_mean(1)=0.
     374      subslope_dist(:,:)=1.
    326375
    327376! 1.3 Report dimensions
     
    331380      write(*,*) "latitude: ",jmold
    332381      write(*,*) "altitude: ",lmold
     382      write(*,*) "nslope: ",nslope
    333383      if (nqold.gt.0) then
    334384        write(*,*) "old tracers q*: ",nqold
     
    358408      allocate(phisold(imold+1,jmold+1))
    359409      allocate(qold(imold+1,jmold+1,lmold,nqtot))
    360       allocate(co2iceold(imold+1,jmold+1))
    361       allocate(tsurfold(imold+1,jmold+1))
    362       allocate(emisold(imold+1,jmold+1))
     410      allocate(co2iceold(imold+1,jmold+1,nslope))
     411      allocate(tsurfold(imold+1,jmold+1,nslope))
     412      allocate(emisold(imold+1,jmold+1,nslope))
    363413      allocate(q2old(imold+1,jmold+1,lmold+1))
    364414!      allocate(tsoilold(imold+1,jmold+1,nsoilmx))
    365       allocate(tsoilold(imold+1,jmold+1,nsoilold))
    366       allocate(tsoiloldnew(imold+1,jmold+1,nsoilmx))
     415      allocate(tsoilold(imold+1,jmold+1,nsoilold,nslope))
     416      allocate(tsoiloldnew(imold+1,jmold+1,nsoilmx,nslope))
    367417      allocate(inertiedatold(imold+1,jmold+1,nsoilold)) ! soil thermal inertia
    368418      allocate(inertiedatoldnew(imold+1,jmold+1,nsoilmx))
     
    370420      allocate(surfithold(imold+1,jmold+1))
    371421      allocate(mlayerold(nsoilold))
    372       allocate(qsurfold(imold+1,jmold+1,nqtot))
     422      allocate(qsurfold(imold+1,jmold+1,nqtot,nslope))
    373423      allocate(tauscalingold(imold+1,jmold+1))
    374424      allocate(totcloudfracold(imold+1,jmold+1))
    375       allocate(watercapold(imold+1,jmold+1))
    376       allocate(albedoold(imold+1,jmold+1))
     425      allocate(watercapold(imold+1,jmold+1,nslope))
     426      allocate(albedoold(imold+1,jmold+1,nslope))
     427     
     428      if(no_slope) then
     429      allocate(co2iceold_noslope(imold+1,jmold+1))
     430      allocate(tsurfold_noslope(imold+1,jmold+1))
     431      allocate(emisold_noslope(imold+1,jmold+1))
     432      allocate(watercapold_noslope(imold+1,jmold+1))
     433      allocate(albedoold_noslope(imold+1,jmold+1))
     434      allocate(qsurfold_noslope(imold+1,jmold+1,nqtot))
     435      allocate(tsoilold_noslope(imold+1,jmold+1,nsoilold))
     436      allocate(tsoiloldnew_noslope(imold+1,jmold+1,nsoilmx))
     437      endif
    377438
    378439      allocate(var (imold+1,jmold+1,llm))
     
    722783        ENDIF
    723784      ENDIF
    724 #ifdef NC_DOUBLE
    725       ierr = NF_GET_VARA_DOUBLE(nid, nvarid,start,count,co2iceold)
    726 #else
    727       ierr = NF_GET_VARA_REAL(nid, nvarid,start,count,co2iceold)
    728 #endif
     785      if(no_slope) then
     786      ierr = nf90_get_var(nid, nvarid,co2iceold_noslope)
     787      co2iceold(:,:,1)=co2iceold_noslope(:,:)
     788      else
     789      ierr = nf90_get_var(nid, nvarid,co2iceold)
     790      endif
    729791      IF (ierr .NE. NF_NOERR) THEN
    730792        PRINT*, "lect_start_archive: Failed loading <co2ice>"
     
    738800         CALL abort
    739801      ENDIF
    740 #ifdef NC_DOUBLE
    741       ierr = NF_GET_VARA_DOUBLE(nid, nvarid,start,count,emisold)
    742 #else
    743       ierr = NF_GET_VARA_REAL(nid, nvarid,start,count,emisold)
    744 #endif
     802      if(no_slope) then
     803      ierr = nf90_get_var(nid, nvarid,emisold_noslope)
     804      emisold(:,:,1)=emisold_noslope(:,:)
     805      else
     806       ierr = nf90_get_var(nid, nvarid,emisold)
     807      endif
    745808      IF (ierr .NE. NF_NOERR) THEN
    746809         PRINT*, "lect_start_archive: Failed loading <emis>"
     
    768831         CALL abort
    769832      ENDIF
    770 #ifdef NC_DOUBLE
    771       ierr = NF_GET_VARA_DOUBLE(nid, nvarid,start,count,tsurfold)
    772 #else
    773       ierr = NF_GET_VARA_REAL(nid, nvarid,start,count,tsurfold)
    774 #endif
     833      if(no_slope) then
     834        ierr = nf90_get_var(nid, nvarid,tsurfold_noslope)
     835        tsurfold(:,:,1)=tsurfold_noslope(:,:)
     836      else
     837        ierr = nf90_get_var(nid, nvarid,tsurfold)
     838      endif
    775839      IF (ierr .NE. NF_NOERR) THEN
    776840         PRINT*, "lect_start_archive: Failed loading <tsurf>"
     
    832896      IF (ierr .NE. NF_NOERR) THEN
    833897         PRINT*, "lect_start_archive: <watercap> not in file"
    834          watercapold(:,:) = 0.
     898         watercapold(:,:,:) = 0.
    835899      ELSE
    836 #ifdef NC_DOUBLE
    837         ierr = NF_GET_VARA_DOUBLE(nid, nvarid,start,count,
    838      &                            watercapold)
    839 #else
    840         ierr = NF_GET_VARA_REAL(nid, nvarid,start,count,
    841      &                          watercapold)
    842 #endif
     900      if(no_slope) then
     901       ierr = nf90_get_var(nid, nvarid,watercapold_noslope)
     902       watercapold(:,:,1)=watercapold_noslope(:,:)
     903      else
     904       ierr = nf90_get_var(nid, nvarid,watercapold)
     905      endif
    843906        IF (ierr .NE. NF_NOERR) THEN
    844907           PRINT*, "lect_start_archive: Failed loading <watercap>"
     
    851914      IF (ierr .NE. NF_NOERR) THEN
    852915         PRINT*, "lect_start_archive: <albedo> not in file"
    853          albedoold(:,:) = 0.
     916         albedoold(:,:,:) = 0.
    854917      ELSE
    855 #ifdef NC_DOUBLE
    856         ierr = NF_GET_VARA_DOUBLE(nid,nvarid,start,count,
    857      &                            albedoold)
    858 #else
    859         ierr = NF_GET_VARA_REAL(nid,nvarid,start,count,
    860      &                          albedoold)
    861 #endif
     918      if(no_slope) then
     919       ierr = nf90_get_var(nid, nvarid,albedoold_noslope)
     920      albedoold(:,:,1)=albedoold_noslope(:,:)
     921      else
     922       ierr = nf90_get_var(nid, nvarid,albedoold)
     923      endif
    862924        IF (ierr .NE. NF_NOERR) THEN
    863925           PRINT*, "lect_start_archive: Failed loading <albedo>"
     
    876938c -------------------------------------------
    877939! Surface tracers:     
    878       qsurfold(1:imold+1,1:jmold+1,1:nqtot)=0
     940      qsurfold(1:imold+1,1:jmold+1,1:nqtot,1:nslope)=0
    879941
    880942      DO iq=1,nqtot
     
    906968          print*, "which (constant) value should it be initialized to?"
    907969          read(*,*) tmpval
    908           qsurfold(1:imold+1,1:jmold+1,iq)=tmpval
     970          qsurfold(1:imold+1,1:jmold+1,iq,1:nslope)=tmpval
    909971        ELSE ! tracer exists in file, load it
    910 #ifdef NC_DOUBLE
    911           ierr = NF_GET_VARA_DOUBLE(nid, nvarid,start,count,
    912      &          qsurfold(1,1,iq))
    913 #else
    914           ierr = NF_GET_VARA_REAL(nid, nvarid,start,count,
    915      &          qsurfold(1,1,iq))
    916 #endif
     972        if(no_slope) then
     973          ierr = nf90_get_var(nid, nvarid,qsurfold_noslope(:,:,iq))
     974          qsurfold(:,:,iq,1)=qsurfold_noslope(:,:,iq)
     975         else
     976           ierr = nf90_get_var(nid, nvarid,qsurfold(:,:,iq,:))
     977         endif
    917978          IF (ierr .NE. NF_NOERR) THEN
    918979            PRINT*, "lect_start_archive: ",
     
    9461007            CALL abort
    9471008         ENDIF
    948 #ifdef NC_DOUBLE
    949          ierr = NF_GET_VARA_DOUBLE(nid, nvarid,start,count,
    950      &          tsoilold(1,1,isoil))
    951 #else
    952          ierr = NF_GET_VARA_REAL(nid, nvarid,start,count,
    953      &          tsoilold(1,1,isoil))
    954 #endif
     1009         if(no_slope) then
     1010          ierr = nf90_get_var(nid, nvarid,tsoilold_noslope(:,:,isoil))
     1011         tsoilold(:,:,:,1)=tsoilold_noslope(:,:,:)
     1012         else
     1013          ierr = nf90_get_var(nid, nvarid,tsoilold(:,:,isoil,:))
     1014         endif
    9551015         IF (ierr .NE. NF_NOERR) THEN
    9561016            PRINT*, "lect_start_archive: ",
     
    9721032        call abort
    9731033       else
    974 #ifdef NC_DOUBLE
    975       ierr=NF_GET_VARA_DOUBLE(nid,nvarid,start,count,tsoilold)
    976 #else
    977       ierr=NF_GET_VARA_REAL(nid,nvarid,start,count,tsoilold)
    978 #endif
     1034       if(no_slope) then
     1035        ierr = nf90_get_var(nid, nvarid,tsoilold_noslope)
     1036        tsoilold(:,:,:,1)=tsoilold_noslope(:,:,:)
     1037      else
     1038        ierr = nf90_get_var(nid, nvarid,tsoilold)
     1039       endif
    9791040       endif ! of if (ierr.ne.NF_NOERR)
    9801041       
     
    11301191
    11311192c Glace CO2
    1132       call interp_horiz (co2iceold,co2ices,imold,jmold,iim,jjm,1,
    1133      &                   rlonuold,rlatvold,rlonu,rlatv)
     1193      call interp_horiz (co2iceold(:,:,1),co2ices(:,:,1),
     1194     & imold,jmold,iim,jjm,1,rlonuold,rlatvold,rlonu,rlatv)
    11341195
    11351196c Temperature de surface
    1136       call interp_horiz (tsurfold,tsurfs,imold,jmold,iim,jjm,1,
    1137      &                   rlonuold,rlatvold,rlonu,rlatv)
    1138       call gr_dyn_fi (1,iim+1,jjm+1,ngrid,tsurfs,tsurf)
     1197      call interp_horiz (tsurfold(:,:,1),tsurfs(:,:,1)
     1198     & ,imold,jmold,iim,jjm,1,rlonuold,rlatvold,rlonu,rlatv)
     1199      call gr_dyn_fi (1,iim+1,jjm+1,ngrid,tsurfs(:,:,1),tsurf(:,1))
    11391200c     write(44,*) 'tsurf', tsurf
    11401201
     
    11471208
    11481209c Emissivite de la surface
    1149       call interp_horiz (emisold,emiss,imold,jmold,iim,jjm,1,
    1150      &                   rlonuold,rlatvold,rlonu,rlatv)
    1151       call gr_dyn_fi (1,iim+1,jjm+1,ngrid,emiss,emis)
     1210      call interp_horiz (emisold(:,:,1),emiss(:,:,1)
     1211     & ,imold,jmold,iim,jjm,1,rlonuold,rlatvold,rlonu,rlatv)
     1212      call gr_dyn_fi (1,iim+1,jjm+1,ngrid,emiss(:,:,1),emis(:,1))
    11521213
    11531214c Dust conversion factor
     
    11621223
    11631224c Watercap
    1164       call interp_horiz (watercapold,watercaps,imold,jmold,iim,
    1165      &                   jjm,1,rlonuold,rlatvold,rlonu,rlatv)
    1166       call gr_dyn_fi (1,iim+1,jjm+1,ngrid,watercaps,watercap)
     1225      call interp_horiz (watercapold(:,:,1),watercaps(:,:,1),
     1226     &       imold,jmold,iim,jjm,1,rlonuold,rlatvold,rlonu,rlatv)
     1227      call gr_dyn_fi (1,iim+1,jjm+1,ngrid,watercaps(:,:,1),
     1228     &       watercap(:,1))
    11671229
    11681230c Surface albedo
    1169       call interp_horiz (albedoold,albedoS,imold,jmold,iim,
    1170      &                   jjm,1,rlonuold,rlatvold,rlonu,rlatv)
    1171       call gr_dyn_fi (1,iim+1,jjm+1,ngrid,albedoS,albedo(:,1))
     1231      call interp_horiz (albedoold(:,:,1),albedoS(:,:,1),
     1232     &      imold,jmold,iim,jjm,1,rlonuold,rlatvold,rlonu,rlatv)
     1233      call gr_dyn_fi (1,iim+1,jjm+1,ngrid,albedoS(:,:,1),albedo(:,1,1))
    11721234     
    1173       albedo(:,2)=albedo(:,1)
     1235      albedo(:,2,1)=albedo(:,1,1)
    11741236
    11751237c     write(46,*) 'emis',emis
     
    11911253         DO i=1,iim
    11921254            ptotal=ptotal+ps(i,j)*aire(i,j)/g
    1193             co2icetotal = co2icetotal + co2iceS(i,j)*aire(i,j)
     1255            co2icetotal = co2icetotal + co2iceS(i,j,1)*aire(i,j)
    11941256         END DO
    11951257      END DO
     
    12171279         DO j=1,jjp1
    12181280            DO i=1,iip1
    1219                co2iceS(i,j)=co2iceS(i,j) * co2icetotalold/co2icetotal
     1281               co2iceS(i,j,1)=co2iceS(i,j,1)*co2icetotalold/co2icetotal
    12201282            END DO
    12211283         END DO
     
    13041366         do j=1,jmold+1
    13051367           ! copy values
    1306            oldval(1)=tsurfold(i,j)
    1307            oldval(2:nsoilold+1)=tsoilold(i,j,1:nsoilold)
     1368           oldval(1)=tsurfold(i,j,1)
     1369           oldval(2:nsoilold+1)=tsoilold(i,j,1:nsoilold,1)
    13081370           ! build vertical coordinate
    13091371           oldgrid(1)=0. ! ground
     
    13171379     &                     mlayer,newval,nsoilmx)
    13181380         ! copy result in tsoilold
    1319          tsoiloldnew(i,j,1:nsoilmx)=newval(1:nsoilmx)
     1381         tsoiloldnew(i,j,1:nsoilmx,1)=newval(1:nsoilmx)
    13201382         enddo
    13211383        enddo
     
    13361398         do j=1,jmold+1
    13371399           ! copy values
    1338            oldval(1)=tsurfold(i,j)
    1339            oldval(2:nsoilold+1)=tsoilold(i,j,1:nsoilold)
     1400           oldval(1)=tsurfold(i,j,1)
     1401           oldval(2:nsoilold+1)=tsoilold(i,j,1:nsoilold,1)
    13401402          ! interpolate
    13411403          call interp_line(oldgrid,oldval,nsoilold+1,
    13421404     &                     mlayer,newval,nsoilmx)
    13431405         ! copy result in tsoilold
    1344          tsoiloldnew(i,j,1:nsoilmx)=newval(1:nsoilmx)
     1406         tsoiloldnew(i,j,1:nsoilmx,1)=newval(1:nsoilmx)
    13451407         enddo
    13461408        enddo
     
    13521414       
    13531415       else
    1354         tsoiloldnew(:,:,:)=tsoilold(:,:,:)
     1416        tsoiloldnew(:,:,:,1)=tsoilold(:,:,:,1)
    13551417       endif ! of if (depthinterpol)
    13561418      endif ! of if (olddepthdef)
    13571419
    13581420      ! Do the horizontal interpolation
    1359        call interp_horiz(tsoiloldnew,tsoilS,
     1421       call interp_horiz(tsoiloldnew(:,:,:,1),tsoilS(:,:,:,1),
    13601422     &                  imold,jmold,iim,jjm,nsoilmx,
    13611423     &                   rlonuold,rlatvold,rlonu,rlatv)
    13621424
    13631425      ! Reshape tsoilS to scalar grid as tsoil
    1364        call gr_dyn_fi (nsoilmx,iim+1,jjm+1,ngrid,tsoilS,tsoil)
     1426       call gr_dyn_fi (nsoilmx,iim+1,jjm+1,ngrid,tsoilS(:,:,:,1),
     1427     & tsoil(:,:,:))
    13651428
    13661429
     
    14321495c traceurs surface
    14331496      do iq = 1, nqtot
    1434             call interp_horiz(qsurfold(1,1,iq) ,qsurfs(1,1,iq),
     1497            call interp_horiz(qsurfold(1,1,iq,1) ,qsurfs(1,1,iq,1),
    14351498     &                  imold,jmold,iim,jjm,1,
    14361499     &                  rlonuold,rlatvold,rlonu,rlatv)
    14371500      enddo
    14381501
    1439       call gr_dyn_fi (nqtot,iim+1,jjm+1,ngrid,qsurfs,qsurf)
     1502      call gr_dyn_fi (nqtot,iim+1,jjm+1,ngrid,qsurfs(:,:,:,1),
     1503     &     qsurf(:,:,1))
    14401504
    14411505c traceurs 3D
     
    14881552      enddo
    14891553     
    1490       call gr_dyn_fi (1,iim+1,jjm+1,ngrid,co2ices,qsurf(:,igcm_co2))
     1554      call gr_dyn_fi (1,iim+1,jjm+1,ngrid,co2ices(:,:,1),
     1555     & qsurf(:,igcm_co2,1))
    14911556
    14921557c-----------------------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.