Ignore:
Timestamp:
Jul 20, 2024, 6:08:57 PM (6 months ago)
Author:
abarral
Message:

Move lmdz_netcdf_format.F90 -> lmdz_cppkeys_wrapper.F90 to handle other CPP keys
Replace all (except wrapper) use of CPP_PHYS by fortran logical

Location:
LMDZ6/branches/Amaury_dev/libf/dynphy_lonlat
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev/libf/dynphy_lonlat/calfis.F

    r5086 r5090  
    2727     $                  pdpsfi)
    2828c
    29 c    Auteur :  P. Le Van, F. Hourdin 
     29c    Auteur :  P. Le Van, F. Hourdin
    3030c   .........
    3131      USE infotrac, ONLY: nqtot, tracers
    3232      USE control_mod, ONLY: planet_type, nsplit_phys
    33 #ifdef CPP_PHYS
    3433      USE callphysiq_mod, ONLY: call_physiq
    35 #endif
     34      USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_PHYS
    3635      USE comconst_mod, ONLY: cpp, daysec, dtphys, dtvr, kappa, pi
    3736      USE comvert_mod, ONLY: preff, presnivs
    38      
     37
    3938      IMPLICIT NONE
    4039c=======================================================================
     
    4847c   ----------
    4948c
    50 c    - les vents sont donnes dans la physique par leurs composantes 
     49c    - les vents sont donnes dans la physique par leurs composantes
    5150c      naturelles.
    5251c    - la variable thermodynamique de la physique est une variable
    53 c      intensive :   T 
     52c      intensive :   T
    5453c      pour la dynamique on prend    T * ( preff / p(l) ) **kappa
    5554c    - les deux seules variables dependant de la geometrie necessaires
    56 c      pour la physique sont la latitude pour le rayonnement et 
    57 c      l'aire de la maille quand on veut integrer une grandeur 
     55c      pour la physique sont la latitude pour le rayonnement et
     56c      l'aire de la maille quand on veut integrer une grandeur
    5857c      horizontalement.
    59 c    - les points de la physique sont les points scalaires de la 
     58c    - les points de la physique sont les points scalaires de la
    6059c      la dynamique; numerotation:
    6160c          1 pour le pole nord
     
    6766c     -------
    6867c       pucov           covariant zonal velocity
    69 c       pvcov           covariant meridional velocity 
     68c       pvcov           covariant meridional velocity
    7069c       pteta           potential temperature
    7170c       pps             surface pressure
     
    7776c    --------
    7877c        pdufi          tendency for the natural zonal velocity (ms-1)
    79 c        pdvfi          tendency for the natural meridional velocity 
     78c        pdvfi          tendency for the natural meridional velocity
    8079c        pdhfi          tendency for the potential temperature
    8180c        pdtsfi         tendency for the surface temperature
     
    165164      REAL flxwfi(ngridmx,llm)  ! Flux de masse verticale sur la grille physiq
    166165c
    167      
     166
    168167      REAL SSUM
    169168
     
    201200c   ----------------------------------
    202201
    203        
     202
    204203      zpsrf(1) = pps(1,1)
    205204
     
    217216c   -----------------------------------------------------------------
    218217c     .... zplev  definis aux (llm +1) interfaces des couches  ....
    219 c     .... zplay  definis aux (  llm )    milieux des couches  .... 
     218c     .... zplay  definis aux (  llm )    milieux des couches  ....
    220219c   -----------------------------------------------------------------
    221220
     
    329328
    330329c   ....  Calcul de la vitesse  verticale  ( en Pa*m*s  ou Kg/s )  ....
    331 c JG : ancien calcule de omega utilise dans physiq.F. Maintenant le flux 
    332 c    de masse est calclue dans advtrac.F 
     330c JG : ancien calcule de omega utilise dans physiq.F. Maintenant le flux
     331c    de masse est calclue dans advtrac.F
    333332c      DO l=1,llm
    334333c        pvervel(1,l)=pw(1,1,l) * g /apoln
     
    351350         DO j=2,jjm
    352351            ig0 = 1+(j-2)*iim
    353             zufi(ig0+1,l)= 0.5 * 
     352            zufi(ig0+1,l)= 0.5 *
    354353     $      ( pucov(iim,j,l)/cu(iim,j) + pucov(1,j,l)/cu(1,j) )
    355             pcvgu(ig0+1,l)= 0.5 * 
     354            pcvgu(ig0+1,l)= 0.5 *
    356355     $      ( pducov(iim,j,l)/cu(iim,j) + pducov(1,j,l)/cu(1,j) )
    357356            DO i=2,iim
     
    373372          do j=1,jjm
    374373            zrot(i,j,l) = (pvcov(i+1,j,l) - pvcov(i,j,l)
    375      $                   + pucov(i,j+1,l) - pucov(i,j,l)) 
    376      $                   / (cu(i,j)+cu(i,j+1)) 
     374     $                   + pucov(i,j+1,l) - pucov(i,j,l))
     375     $                   / (cu(i,j)+cu(i,j+1))
    377376     $                   / (cv(i+1,j)+cv(i,j)) *4
    378377          enddo
     
    402401
    403402
    404 c   47. champs de vents aux pole nord   
     403c   47. champs de vents aux pole nord
    405404c   ------------------------------
    406405c        U = 1 / pi  *  integrale [ v * cos(long) * d long ]
     
    475474      zdqfic(:,:,:)=0.
    476475
    477 #ifdef CPP_PHYS
     476       IF (CPPKEY_PHYS) THEN
    478477
    479478       do isplit=1,nsplit_phys
     
    500499!     .             nqtot,          !! nq
    501500!     .             tracers(:)%name,!! tracer names from dynamical core (given in infotrac)
    502 !     .             debut_split,    !! firstcall 
     501!     .             debut_split,    !! firstcall
    503502!     .             lafin_split,    !! lastcall
    504503!     .             jD_cur,         !! pday. see leapfrog
     
    534533       enddo ! of do isplit=1,nsplit_phys
    535534
    536 #endif
    537 ! of #ifdef CPP_PHYS
     535       END IF
    538536
    539537      zdufi(:,:)=zdufic(:,:)/nsplit_phys
     
    541539      zdtfi(:,:)=zdtfic(:,:)/nsplit_phys
    542540      zdqfi(:,:,:)=zdqfic(:,:,:)/nsplit_phys
    543 
    544 
    545 500   CONTINUE
    546541
    547542c-----------------------------------------------------------------------
     
    681676
    682677c-----------------------------------------------------------------------
    683 
    684 700   CONTINUE
    685  
    686678      firstcal = .FALSE.
    687679
  • LMDZ6/branches/Amaury_dev/libf/dynphy_lonlat/lmdz_calfis_loc.F90

    r5066 r5090  
    2828          pdqfi, &
    2929          pdpsfi)
    30 #ifdef CPP_PHYS
    31     ! If using physics
    32     !
    33     !    Auteur :  P. Le Van, F. Hourdin
    34     !   .........
     30
    3531    USE dimphy
    3632    USE mod_phys_lmdz_mpi_data, mpi_root_xx=>mpi_master
     
    3935    USE mod_interface_dyn_phys
    4036    USE IOPHY
    41 #endif
     37
    4238    USE lmdz_mpi
    4339
     
    4945    USE infotrac, ONLY : nqtot, tracers
    5046    USE control_mod, ONLY : planet_type, nsplit_phys
    51 #ifdef CPP_PHYS
    5247    USE callphysiq_mod, ONLY: call_physiq
    53 #endif
     48    USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_PHYS
     49
    5450    USE comvert_mod, ONLY : preff, presnivs
    5551    USE comconst_mod, ONLY : cpp, daysec, dtphys, dtvr, kappa, pi
     
    146142    REAL, INTENT(OUT) :: pdpsfi(iip1, jjb_u:jje_u) ! tendency on surface pressure (Pa/s)
    147143
    148 #ifdef CPP_PHYS
     144
    149145  ! Ehouarn: for now calfis_p needs some informations from physics to compile
    150146  !    Local variables :
     
    237233  INTEGER :: jjb,jje
    238234
     235    IF (CPPKEY_PHYS) THEN
     236
    239237  !
    240238  !-----------------------------------------------------------------------
     
    249247  IF ( firstcal )  THEN
    250248    debut = .TRUE.
    251     IF (ngridmx.NE.2+(jjm-1)*iim) THEN
     249    IF (ngridmx/=2+(jjm-1)*iim) THEN
    252250      write(lunout,*) 'STOP dans calfis'
    253251      write(lunout,*) &
     
    719717  zdqfic_omp(:,:,:)=0.
    720718
    721 #ifdef CPP_PHYS
    722719  do isplit=1,nsplit_phys
    723720
     
    750747  enddo
    751748
    752 #endif
    753   ! of #ifdef CPP_PHYS
    754 
    755749
    756750  zdufi_omp(:,:)=zdufic_omp(:,:)/nsplit_phys
     
    847841
    848842  klon=klon_mpi
    849 500   CONTINUE
    850843!$OMP BARRIER
    851844
     
    12041197  !-----------------------------------------------------------------------
    12051198
    1206 700   CONTINUE
    1207 
    12081199  firstcal = .FALSE.
    1209 #endif
    1210   ! of #ifdef CPP_PHYS
     1200END IF
    12111201  END SUBROUTINE calfis_loc
    12121202
  • LMDZ6/branches/Amaury_dev/libf/dynphy_lonlat/phylmd/limit_netcdf.F90

    r5088 r5090  
    7676                  NF90_CLOBBER, NF90_ENDDEF,  NF90_UNLIMITED, NF90_FLOAT,      &
    7777                  NF90_64BIT_OFFSET
    78   USE lmdz_netcdf_format, ONLY: nf90_format
     78  USE lmdz_cppkeys_wrapper, ONLY: nf90_format
    7979  USE inter_barxy_m,      ONLY: inter_barxy
    8080  USE netcdf95,           ONLY: nf95_def_var, nf95_put_att, nf95_put_var
Note: See TracChangeset for help on using the changeset viewer.