Changeset 4070


Ignore:
Timestamp:
Feb 13, 2026, 3:23:54 PM (14 hours ago)
Author:
emillour
Message:

Venus PCM:
Code cleanup: turn "YOEGWD.h" into module "YOEGWD_mod.F90",
and while at it, turn some of the related routines into modules.
EM

Location:
trunk/LMDZ.VENUS/libf/phyvenus
Files:
8 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.VENUS/libf/phyvenus/YOEGWD_mod.F90

    r4069 r4070  
     1module YOEGWD_mod
    12!     -----------------------------------------------------------------
    23!*    *COMMON* *YOEGWD* - PARAMETERS FOR GRAVITY WAVE DRAG CALCULATIONS
    34!     -----------------------------------------------------------------
    4 !
    5       integer :: NKTOPG,NTOP
    6       real    :: GFRCRIT,GKWAKE,GRCRIT,GVCRIT,GKDRAG,GKLIFT
    7       real    :: GHMAX,GRAHILO,GSIGCR,GSSEC,GTSEC,GVSEC
    8       real    :: TAUBS
    9       integer :: LEVBS
    10       COMMON/YOEGWD/ GFRCRIT,GKWAKE,GRCRIT,GVCRIT,GKDRAG,GKLIFT         &
    11      &   ,GHMAX,GRAHILO,GSIGCR,NKTOPG,NTOP,GSSEC,GTSEC,GVSEC            &
    12      &   ,TAUBS,LEVBS
     5implicit none
    136
     7  integer,save :: NKTOPG
     8  integer,save :: NTOP
     9!$OMP THREADPRIVATE(NKTOPG,NTOP)
     10
     11  real,save :: GFRCRIT
     12  real,save :: GKWAKE
     13  real,save :: GRCRIT
     14!$OMP THREADPRIVATE(GFRCRIT,GKWAKE,GRCRIT)
     15
     16  real,save :: GVCRIT
     17  real,save :: GKDRAG
     18  real,save :: GKLIFT
     19!$OMP THREADPRIVATE(GVCRIT,GKDRAG,GKLIFT)
     20
     21  real,save :: GHMAX
     22  real,save :: GRAHILO
     23  real,save :: GSIGCR
     24!$OMP THREADPRIVATE(GHMAX,GRAHILO,GSIGCR)
     25
     26  real,save :: GSSEC,GTSEC,GVSEC
     27!$OMP THREADPRIVATE(GSSEC,GTSEC,GVSEC)
     28
     29  real,save :: TAUBS
     30!$OMP THREADPRIVATE(TAUBS)
     31
     32  integer,save :: LEVBS
     33!$OMP THREADPRIVATE(LEVBS)
     34
     35end module YOEGWD_mod
  • trunk/LMDZ.VENUS/libf/phyvenus/drag_noro.F

    r3885 r4070  
    1 
    2 C  SUBROUTINE DE PARAMETRISATION DES MONTAGNES D ECHELLE SOUS MAILLE
     1      MODULE drag_noro_mod
     2     
     3      IMPLICIT NONE
     4     
     5      CONTAINS
     6     
     7C  PARAMETRISATION OF THE EFFECT OF SUB-GRID-SCALE MOUNTAINS
    38
    49      SUBROUTINE drag_noro (nlon,nlev,dtime,paprs,pplay,pgeop,pn2,
     
    1116     s                   ptau,tau0,knu2,kbreak)
    1217c
    13       use dimphy
    14       use YOMCST_mod
     18      use dimphy, only: klon,klev
     19      use YOMCST_mod, only: rg
     20      use orodrag_mod, only: orodrag
    1521      IMPLICIT none
    1622
     
    7379c
    7480c======================================================================
    75 
    76 c#include "YOMCST.h"
    77 #include "YOEGWD.h"
    7881
    7982c  ARGUMENTS
     
    181184      ENDDO
    182185c
    183       RETURN
    184       END
    185186
     187      END SUBROUTINE drag_noro
     188
     189      END MODULE drag_noro_mod
  • trunk/LMDZ.VENUS/libf/phyvenus/flott_gwd_ran.F90

    r3884 r4070  
     1      MODULE flott_gwd_ran_mod
     2     
     3      IMPLICIT NONE
     4     
     5      CONTAINS
     6     
    17      SUBROUTINE FLOTT_GWD_RAN(NLON,NLEV,DTIME, pp, pn2,  &
    28                  tt,uu,vv, plevmoy, &
     
    1420    !---------------------------------------------------------------------
    1521
    16       use dimphy
     22      use dimphy, only: klon,klev
    1723      USE geometry_mod, only: cell_area, latitude_deg
    18       USE YOMCST_mod
     24      USE YOMCST_mod, only: rpi, rg, rd
    1925      implicit none
    20 
    21 #include "YOEGWD.h"
    22 !#include "YOMCST.h"
    2326
    2427    ! 0. DECLARATIONS:
     
    470473!===================================================================
    471474
    472       FUNCTION ALEAS (R)
     475      REAL FUNCTION ALEAS (R)
    473476!***BEGIN PROLOGUE  ALEAS
    474477!***PURPOSE  Generate a uniformly distributed random number.
     
    563566!   891214  Prologue converted to Version 4.0 format.  (BAB)
    564567!***END PROLOGUE  RAND
    565       SAVE IA1, IA0, IA1MA0, IC, IX1, IX0
    566       DATA IA1, IA0, IA1MA0 /1536, 1029, 507/
    567       DATA IC /1731/
    568       DATA IX1, IX0 /0, 0/
     568      REAL,INTENT(IN) :: R
     569      INTEGER,SAVE :: IA1=1536
     570      INTEGER,SAVE :: IA0=1029
     571      INTEGER,SAVE :: IA1MA0=507
     572      INTEGER,SAVE :: IC=1731
     573      INTEGER,SAVE :: IX1=0
     574      INTEGER,SAVE :: IX0=0
     575!$OMP THREADPRIVATE(IA1,IA0,IA1MA0,IC,IX1,IX0)
     576      INTEGER :: IY0
     577      INTEGER :: IY1
    569578!***FIRST EXECUTABLE STATEMENT  RAND
    570579!
     
    591600      RETURN
    592601
    593       END
    594 
    595 
     602      END FUNCTION ALEAS
     603
     604      END MODULE flott_gwd_ran_mod
  • trunk/LMDZ.VENUS/libf/phyvenus/gwprofil.F

    r3884 r4070  
     1      module gwprofil_mod
     2     
     3      implicit none
     4     
     5      contains
     6     
    17      subroutine gwprofil
    28     *         ( nlon, nlev
     
    3743C     ntop.                                         
    3844C
    39       use dimphy
    40       use YOMCST_mod
     45      use dimphy, only: klon,klev,kidia,kfdia
     46      use YOEGWD_mod, only: grahilo,grcrit,gssec,gtsec,levbs,ntop,taubs
    4147      IMPLICIT NONE
    42 
    43 C#include "YOMCST.h"
    44 #include "YOEGWD.h"
    4548
    4649C-----------------------------------------------------------------------
     
    251254
    252255
    253       return
    254       end
    255 
     256      end subroutine gwprofil
     257
     258      end module gwprofil_mod
  • trunk/LMDZ.VENUS/libf/phyvenus/gwstress.F

    r3884 r4070  
    1       SUBROUTINE gwstress
     1      module gwstress_mod
     2     
     3      implicit none
     4     
     5      contains
     6     
     7      subroutine gwstress
    28     *         (  nlon  , nlev
    39     *         , kkcrit, ksect, kkhlim, ktest, kkcrith, kcrit, kkenvh
     
    5359c
    5460c-----------------------------------------------------------------------
    55       use dimphy
    56       use YOMCST_mod
     61      use dimphy, only: klev,kidia,kfdia
     62      use YOEGWD_mod, only: gfrcrit,gkdrag
    5763      implicit none
    58 
    59 c#include "YOMCST.h"
    60 #include "YOEGWD.h"
    6164
    6265c-----------------------------------------------------------------------
     
    140143c      write(21)(ptau(jl,klev+1),jl=kidia,kfdia)
    141144 
    142       return
    143       end
     145      end subroutine gwstress
     146     
     147      end module gwstress_mod
    144148
    145149
  • trunk/LMDZ.VENUS/libf/phyvenus/orodrag.F

    r3884 r4070  
    1       SUBROUTINE orodrag( nlon,nlev
     1      module orodrag_mod
     2     
     3      contains
     4     
     5      subroutine orodrag( nlon,nlev
    26     i                 , kgwd,  kdx, ktest
    37     r                 , ptsphy
     
    1115     r                 , ztau,iknu2,ikbreak)
    1216     
    13       use dimphy
    14       use YOMCST_mod
     17      use dimphy, only: klon, klev, kidia, kfdia
     18      use YOMCST_mod, only: rg, rcpd
     19      use YOEGWD_mod, only: gkwake, ntop
     20      use orosetup_mod, only: orosetup
     21      use gwprofil_mod, only: gwprofil
     22      use gwstress_mod, only: gwstress
    1523      IMPLICIT NONE
    1624
     
    93101c
    94102c
    95 c#include "YOMCST.h"
    96 #include "YOEGWD.h"
    97103
    98104c-----------------------------------------------------------------------
     
    378384  501 continue
    379385
    380       return
    381       end
    382 
     386      end subroutine orodrag
     387
     388      end module orodrag_mod
  • trunk/LMDZ.VENUS/libf/phyvenus/orosetup.F

    r3884 r4070  
    1       SUBROUTINE orosetup
     1      module orosetup_mod
     2     
     3      implicit none
     4     
     5      contains
     6     
     7      subroutine orosetup
    28     *         ( nlon   , nlev  , ktest
    39     *         , kkcrit, kkcrith, kcrit, ksect , kkhlim
     
    95101c
    96102c-----------------------------------------------------------------------
    97       use dimphy
    98       use YOMCST_mod
     103      use dimphy, only: klon, klev, kidia, kfdia
     104      use YOMCST_mod, only: rd, rg, rpi
     105      use YOEGWD_mod, only: gfrcrit,grcrit,gsigcr,gssec,gtsec,gvsec,
     106     &                      nktopg
    99107      implicit none
    100 
    101 c#include "YOMCST.h"
    102 #include "YOEGWD.h"
    103108
    104109c-----------------------------------------------------------------------
     
    547552 254  continue
    548553
    549       return
    550       end
    551 
    552 
     554      end subroutine orosetup
     555     
     556      end module orosetup_mod
     557
     558
  • trunk/LMDZ.VENUS/libf/phyvenus/physiq_mod.F

    r4069 r4070  
    9090      use clmain_mod, only: clmain
    9191      use clmain_ideal_mod, only: clmain_ideal
     92      use drag_noro_mod, only: drag_noro
     93      use flott_gwd_ran_mod, only: flott_gwd_ran
     94      use sugwd_mod, only: sugwd
    9295      use clesphys_mod
    9396      use YOMCST_mod
  • trunk/LMDZ.VENUS/libf/phyvenus/sugwd.F

    r2047 r4070  
     1      MODULE SUGWD_MOD
     2     
     3      IMPLICIT NONE
     4     
     5      CONTAINS
     6     
    17      SUBROUTINE SUGWD(NLON,NLEV,paprs,pplay)
    28C     
     
    7480C        LAST:  99-07-09     (FRANCOIS LOTT,LMD)
    7581C     ------------------------------------------------------------------
    76       use dimphy
     82      use dimphy, only : klon
     83      use YOEGWD_mod, only: GFRCRIT,GHMAX,GKDRAG,GKLIFT,GKWAKE,GRAHILO,
     84     &                      GRCRIT,GSIGCR,GSSEC,GTSEC,GVCRIT,GVSEC,
     85     &                      LEVBS, nktopg, ntop, TAUBS
    7786      IMPLICIT NONE
    7887
    79 #include "YOEGWD.h"
    8088C
    8189C  ARGUMENTS
     
    197205      GTSEC=1.e-7
    198206C
    199       RETURN
    200       END
    201 
     207      END SUBROUTINE SUGWD
     208
     209      END MODULE SUGWD_MOD
Note: See TracChangeset for help on using the changeset viewer.