Index: trunk/LMDZ.PLUTO/libf/dynphy_lonlat/phypluto/newstart.F
===================================================================
--- trunk/LMDZ.PLUTO/libf/dynphy_lonlat/phypluto/newstart.F	(revision 3743)
+++ trunk/LMDZ.PLUTO/libf/dynphy_lonlat/phypluto/newstart.F	(revision 3744)
@@ -616,4 +616,5 @@
         write(*,*) 'qname : change tracer name'
         write(*,*) 't=profile  : read temperature profile in profile.in'
+        write(*,*) 'tgrad : temperature profile + horizontal gradient'
         write(*,*) 'q=0 : ALL tracer =zero'
         write(*,*) 'q=x : give a specific uniform value to one tracer'
@@ -937,4 +938,71 @@
              endif
 
+c       t=gradient : initialize temperature with a given profile and add an horizontal gradient
+c       ---------------------------------------------------------------------------------------
+        else if (modif(1:len_trim(modif)) .eq. 'tgrad') then
+             write(*,*) 'Temperature profile from ASCII file'
+             write(*,*) "'profile.in' e.g. 1D output"
+             write(*,*) "(one value per line in file; starting with"
+             write(*,*) "surface value, the 1st atmospheric layer"
+             write(*,*) "followed by 2nd, etc. up to top of atmosphere)"
+             txt="profile.in"
+             open(33,file=trim(txt),status='old',form='formatted',
+     &            iostat=ierr)
+             if (ierr.eq.0) then
+               ! OK, found file 'profile_...', load the profile
+               do l=1,llm+1
+                 read(33,*,iostat=ierr) profile(l)
+                 write(*,*) profile(l)
+                 if (ierr.ne.0) then ! something went wrong
+                   exit ! quit loop
+                 endif
+               enddo
+               if (ierr.eq.0) then
+                 tsurf(1:ngridmx)=profile(1)
+                 tsoil(1:ngridmx,1:nsoilmx)=profile(1)
+                 do j=1,jjp1
+                  do l=1,llm
+                    if (rlatu(j)*180./pi .ge. 85) then
+                      Tset(1:iip1,j,l)=profile(l+1) + 20
+                      flagtset=.true.
+                    elseif (rlatu(j)*180./pi .ge. 80) then
+                      Tset(1:iip1,j,l)=profile(l+1) + 18
+                      flagtset=.true.
+                    elseif (rlatu(j)*180./pi .ge. 75) then
+                      Tset(1:iip1,j,l)=profile(l+1) + 15
+                      flagtset=.true.
+                    elseif (rlatu(j)*180./pi .ge. 70) then
+                      Tset(1:iip1,j,l)=profile(l+1) + 13
+                      flagtset=.true.
+                    elseif (rlatu(j)*180./pi .ge. 65) then
+                      Tset(1:iip1,j,l)=profile(l+1) + 10
+                      flagtset=.true.
+                    elseif (rlatu(j)*180./pi .ge. 60) then
+                      Tset(1:iip1,j,l)=profile(l+1) + 8
+                      flagtset=.true.
+                    elseif (rlatu(j)*180./pi .ge. 55) then
+                      Tset(1:iip1,j,l)=profile(l+1) + 5
+                      flagtset=.true.
+                    elseif (rlatu(j)*180./pi .ge. 50) then
+                      Tset(1:iip1,j,l)=profile(l+1) + 3
+                      flagtset=.true.
+                    else
+                      Tset(1:iip1,j,l)=profile(l+1)
+                      flagtset=.true.
+                    endif
+                  enddo
+                 enddo
+                 ucov(1:iip1,1:jjp1,1:llm)=0.
+                 vcov(1:iip1,1:jjm,1:llm)=0.
+                 q2(1:ngridmx,1:llm+1)=0.
+               else
+                 write(*,*)'problem reading file ',trim(txt),' !'
+                 write(*,*)'No modifications to temperature'
+               endif
+             else
+               write(*,*)'Could not find file ',trim(txt),' !'
+               write(*,*)'No modifications to temperature'
+             endif
+
 c       q=profile : initialize tracer with a given profile
 c       --------------------------------------------------
