Changeset 3744


Ignore:
Timestamp:
Apr 29, 2025, 10:25:48 AM (2 months ago)
Author:
debatzbr
Message:

Add option to initialize temperature with a given profile and add an horizontal gradient

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.PLUTO/libf/dynphy_lonlat/phypluto/newstart.F

    r3640 r3744  
    616616        write(*,*) 'qname : change tracer name'
    617617        write(*,*) 't=profile  : read temperature profile in profile.in'
     618        write(*,*) 'tgrad : temperature profile + horizontal gradient'
    618619        write(*,*) 'q=0 : ALL tracer =zero'
    619620        write(*,*) 'q=x : give a specific uniform value to one tracer'
     
    937938             endif
    938939
     940c       t=gradient : initialize temperature with a given profile and add an horizontal gradient
     941c       ---------------------------------------------------------------------------------------
     942        else if (modif(1:len_trim(modif)) .eq. 'tgrad') then
     943             write(*,*) 'Temperature profile from ASCII file'
     944             write(*,*) "'profile.in' e.g. 1D output"
     945             write(*,*) "(one value per line in file; starting with"
     946             write(*,*) "surface value, the 1st atmospheric layer"
     947             write(*,*) "followed by 2nd, etc. up to top of atmosphere)"
     948             txt="profile.in"
     949             open(33,file=trim(txt),status='old',form='formatted',
     950     &            iostat=ierr)
     951             if (ierr.eq.0) then
     952               ! OK, found file 'profile_...', load the profile
     953               do l=1,llm+1
     954                 read(33,*,iostat=ierr) profile(l)
     955                 write(*,*) profile(l)
     956                 if (ierr.ne.0) then ! something went wrong
     957                   exit ! quit loop
     958                 endif
     959               enddo
     960               if (ierr.eq.0) then
     961                 tsurf(1:ngridmx)=profile(1)
     962                 tsoil(1:ngridmx,1:nsoilmx)=profile(1)
     963                 do j=1,jjp1
     964                  do l=1,llm
     965                    if (rlatu(j)*180./pi .ge. 85) then
     966                      Tset(1:iip1,j,l)=profile(l+1) + 20
     967                      flagtset=.true.
     968                    elseif (rlatu(j)*180./pi .ge. 80) then
     969                      Tset(1:iip1,j,l)=profile(l+1) + 18
     970                      flagtset=.true.
     971                    elseif (rlatu(j)*180./pi .ge. 75) then
     972                      Tset(1:iip1,j,l)=profile(l+1) + 15
     973                      flagtset=.true.
     974                    elseif (rlatu(j)*180./pi .ge. 70) then
     975                      Tset(1:iip1,j,l)=profile(l+1) + 13
     976                      flagtset=.true.
     977                    elseif (rlatu(j)*180./pi .ge. 65) then
     978                      Tset(1:iip1,j,l)=profile(l+1) + 10
     979                      flagtset=.true.
     980                    elseif (rlatu(j)*180./pi .ge. 60) then
     981                      Tset(1:iip1,j,l)=profile(l+1) + 8
     982                      flagtset=.true.
     983                    elseif (rlatu(j)*180./pi .ge. 55) then
     984                      Tset(1:iip1,j,l)=profile(l+1) + 5
     985                      flagtset=.true.
     986                    elseif (rlatu(j)*180./pi .ge. 50) then
     987                      Tset(1:iip1,j,l)=profile(l+1) + 3
     988                      flagtset=.true.
     989                    else
     990                      Tset(1:iip1,j,l)=profile(l+1)
     991                      flagtset=.true.
     992                    endif
     993                  enddo
     994                 enddo
     995                 ucov(1:iip1,1:jjp1,1:llm)=0.
     996                 vcov(1:iip1,1:jjm,1:llm)=0.
     997                 q2(1:ngridmx,1:llm+1)=0.
     998               else
     999                 write(*,*)'problem reading file ',trim(txt),' !'
     1000                 write(*,*)'No modifications to temperature'
     1001               endif
     1002             else
     1003               write(*,*)'Could not find file ',trim(txt),' !'
     1004               write(*,*)'No modifications to temperature'
     1005             endif
     1006
    9391007c       q=profile : initialize tracer with a given profile
    9401008c       --------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.