Changeset 3004 for trunk/LMDZ.MARS/libf


Ignore:
Timestamp:
Jul 21, 2023, 7:26:15 AM (18 months ago)
Author:
emillour
Message:

Mars PCM:
Some code cleanup. Remove obsolete "comg1d.h" and "writeg1d.F" (were used to
specifically output for Grads in 1D).
Also turned lwi and lwflux into modules while at it.
EM

Location:
trunk/LMDZ.MARS/libf/phymars
Files:
2 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/libf/phymars/dyn1d/testphys1d.F

    r3003 r3004  
    8181!#include "control.h"
    8282      include "netcdf.inc"
    83       include "comg1d.h"
    8483!#include "advtrac.h"
    8584
     
    829828      endif
    830829
    831 
    832 c    Initialization for GRADS outputs in "g1d.dat" and "g1d.ctl"
    833 c    ----------------------------------------------------------------
    834 c    (output done in "writeg1d", typically called by "physiq.F")
    835 
    836         g1d_nlayer=nlayer
    837         g1d_nomfich='g1d.dat'
    838         g1d_unitfich=40
    839         g1d_nomctl='g1d.ctl'
    840         g1d_unitctl=41
    841         g1d_premier=.true.
    842         g2d_premier=.true.
    843 
    844830c  Write a "startfi" file
    845831c  --------------------
     
    994980      ENDIF
    995981
    996 c    ========================================================
    997 c    OUTPUTS
    998 c    ========================================================
    999 
    1000 c    finalize and close grads files "g1d.dat" and "g1d.ctl"
    1001 
    1002 c        CALL endg1d(1,nlayer,zphi/(g*1000.),ndt)
    1003         CALL endg1d(1,nlayer,zlay/1000.,ndt)
    1004 
    1005982      write(*,*) "testphys1d: Everything is cool."
    1006983
  • trunk/LMDZ.MARS/libf/phymars/lwflux.F

    r1917 r3004  
    1        subroutine lwflux (ig0,kdlon,kflev,dp
     1      module lwflux_mod
     2     
     3      implicit none
     4     
     5      contains
     6     
     7      subroutine lwflux (ig0,kdlon,kflev,dp
    28     .                   ,bsurf,btop,blev,blay,dbsublay
    39     .                   ,tlay, tlev, dt0      ! pour sortie dans g2d uniquement
     
    1622 
    1723      include "callkeys.h"
    18       include "comg1d.h"
    1924
    2025c----------------------------------------------------------------------
     
    347352        end do
    348353       end do
    349       END IF
    350 
    351 c----------------------------------------------------------------------
    352 c         7.0   outputs Grads 2D
    353 c               ----------------
    354 
    355 c ig1d: point de la grille physique ou on veut faire la sortie
    356 c ig0+1:  point du decoupage de la grille physique
    357 
    358       if (callg2d) then
    359 
    360       ig1d = kdlon/2 + 1
    361 c     ig1d = kdlon
    362 
    363       if ((ig0+1).LE.ig1d .and. ig1d.LE.(ig0+kdlon)
    364      .    .OR.  kdlon.EQ.1   ) then
    365 
    366           ig = ig1d-ig0
    367         print*, 'Sortie g2d: ig1d, ig, ig0', ig1d, ig, ig0
    368 
    369 c--------------------------------------------
    370 c   Ouverture de g2d.dat
    371 c--------------------------------------------
    372       if (g2d_premier) then
    373         open (47,file='g2d.dat'
    374 clmd     &       ,form='unformatted',access='direct',recl=4)
    375      &        ,form='unformatted',access='direct',recl=1
    376      &        ,status='unknown')
    377         g2d_irec=0
    378         g2d_appel=0
    379         g2d_premier=.false.
    380       endif
    381         g2d_appel = g2d_appel+1
    382 
    383 c--------------------------------------------
    384 c   Sortie g2d des xi proches + distants
    385 c--------------------------------------------
    386 cl                               if (nflev .NE. 500) then
    387       do ja = 1,nuco2
    388         do j = 0,nlaylte+1
    389           do i = 0,nlaylte+1
    390             g2d_irec=g2d_irec+1
    391             reel4 = xi(ig1d,ja,i,j)
    392             write(47,rec=g2d_irec) reel4
    393           enddo
    394         enddo
    395       enddo
    396 cl                               endif
    397 
    398 c------------------------------------------------------
    399 c   Writeg2d des ksidb
    400 c------------------------------------------------------
    401       do ja = 1,nuco2
    402 c       ja=1
    403         do j = 0,nlaylte+1
    404           do i = 0,nlaylte+1
    405             g2d_irec=g2d_irec+1
    406             reel4 = ksidb(ig,ja,i,j)
    407             write(47,rec=g2d_irec) reel4
    408           enddo
    409         enddo
    410       enddo
    411 
    412       do j = 0,nlaylte+1
    413         do i = 0,nlaylte+1
    414           g2d_irec=g2d_irec+1
    415           reel4 = ksidb(ig,3,i,j)
    416           write(47,rec=g2d_irec) reel4
    417         enddo
    418       enddo
    419 
    420 c------------------------------------------------------
    421 c  Writeg2d dpsgcp
    422 c------------------------------------------------------
    423 
    424         do j = 1 , nlaylte
    425           do i = 0 , nlaylte+1
    426             dpsgcp(i,j) = dp(ig,j) / gcp
    427           enddo
    428         enddo
    429 
    430         do i = 0 , nlaylte+1
    431 c         dpsgcp(i,0) = 0.0002  ! (rapport ~ entre 1000 et 10000 pour le sol)
    432           dpsgcp(i,0) = 1.      ! (pour regler l'echelle des sorties)
    433           dpsgcp(i,nlaylte+1) = 0.
    434         enddo
    435 
    436 c     print*
    437 c     print*,'gcp: ',gcp
    438 c     print*
    439 c       do i = 0 , nlaylte+1
    440 c     print*,i,'dp: ',dp(ig,i)
    441 c       enddo
    442 c     print*
    443 c       do i = 0 , nlaylte+1
    444 c     print*,i,'dpsgcp: ',dpsgcp(i,1)
    445 c       enddo
    446  
    447       do j = 0,nlaylte+1
    448         do i = 0,nlaylte+1
    449           g2d_irec=g2d_irec+1
    450           reel4 = dpsgcp(i,j)
    451           write(47,rec=g2d_irec) reel4
    452         enddo
    453       enddo
    454 
    455 c------------------------------------------------------
    456 c  Writeg2d temperature
    457 c------------------------------------------------------
    458 
    459         do j = 1 , nlaylte
    460           do i = 0 , nlaylte+1
    461             temp(i,j) = tlay(ig,j)
    462           enddo
    463         enddo
    464 
    465         do i = 0 , nlaylte+1
    466           temp(i,0) = tlev(ig,1)+dt0(ig)     ! temperature surface
    467           temp(i,nlaylte+1) = 0.               ! temperature espace  (=0)
    468         enddo
    469 
    470       do j = 0,nlaylte+1
    471         do i = 0,nlaylte+1
    472           g2d_irec=g2d_irec+1
    473           reel4 = temp(i,j)
    474           write(47,rec=g2d_irec) reel4
    475         enddo
    476       enddo
    477 
    478         write(76,*) 'ig1d, ig, ig0', ig1d, ig, ig0
    479         write(76,*) 'nlaylte', nlaylte
    480         write(76,*) 'nflev', nflev
    481         write(76,*) 'kdlon', kdlon
    482         write(76,*) 'ndlo2', ndlo2
    483         write(76,*) 'ndlon', ndlon
    484       do ja=1,4
    485         write(76,*) 'bsurf', ja, bsurf(ig,ja)
    486         write(76,*) 'btop', ja, btop(ig,ja)
    487 
    488         do j=1,nlaylte+1
    489           write(76,*) 'blev', ja, j, blev(ig,ja,j)
    490         enddo
    491 
    492         do j=1,nlaylte
    493           write(76,*) 'blay', ja, j, blay(ig,ja,j)
    494         enddo
    495 
    496         do j=1,2*nlaylte
    497           write(76,*) 'dbsublay', ja, j, dbsublay(ig,ja,j)
    498         enddo
    499       enddo
    500 
    501       endif
    502 c************************************************************************
    503       endif  !   callg2d
    504 
    505       end
     354      END IF ! of IF (computeflux)
     355
     356      end subroutine lwflux
     357     
     358      end module lwflux_mod
  • trunk/LMDZ.MARS/libf/phymars/lwi.F

    r1524 r3004  
     1      module lwi_mod
     2     
     3      implicit none
     4     
     5      contains
     6
    17      subroutine lwi (ig0,kdlon,kflev
    28     .                ,psi,zdblay,pdp
     
    1016      implicit none
    1117
    12 #include "comg1d.h"
    13 #include "callkeys.h"
     18      include "callkeys.h"
    1419 
    1520CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
     
    3338c
    3439 
    35       integer ig0,kdlon,kflev
    36 
    37       real    psi(ndlo2,kflev)
    38      .     ,  zdblay(ndlo2,nir,kflev)
    39      .     ,  pdp(ndlo2,kflev)
    40 
    41 
    42       real    newpcolc(ndlo2,kflev)
     40      integer,intent(in) :: ig0
     41      integer,intent(in) :: kdlon
     42      integer,intent(in) :: kflev
     43
     44      real,intent(in) :: psi(ndlo2,kflev)
     45      real,intent(in) :: zdblay(ndlo2,nir,kflev)
     46      real,intent(in) :: pdp(ndlo2,kflev)
     47
     48      real,intent(out) :: newpcolc(ndlo2,kflev)
    4349
    4450c-------------------------------------------------------------------------
     
    215221
    216222c-------------------------------------------------------------------------
    217       RETURN
    218       END
     223
     224      end subroutine lwi
     225     
     226      end module lwi_mod
  • trunk/LMDZ.MARS/libf/phymars/lwmain_mod.F

    r1983 r3004  
    2121      use dimradmars_mod, only: naerkind
    2222      use yomlw_h, only: nlaylte, xi
     23      use lwi_mod, only: lwi
     24      use lwflux_mod, only: lwflux
     25     
    2326      implicit none
    2427     
     
    2629c     -------------   
    2730      include "callkeys.h"
    28       include "comg1d.h"
    2931
    3032c----------------------------------------------------------------------
  • trunk/LMDZ.MARS/libf/phymars/physiq_mod.F

    r3000 r3004  
    213213
    214214      include "callkeys.h"
    215       include "comg1d.h"
    216215      include "nlteparams.h"
    217216      include "netcdf.inc"
Note: See TracChangeset for help on using the changeset viewer.