Ignore:
Timestamp:
Aug 2, 2024, 2:12:03 PM (3 months ago)
Author:
abarral
Message:

Add missing klon on strataer_emiss_mod.F90
Correct various missing explicit declarations
Replace tabs by spaces (tabs are not part of the fortran charset)
Continue cleaning modules
Removed unused arguments and variables

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/lmdz_old_1dconv.f90

    r5144 r5158  
    22  PRIVATE  ! -- We'd love to put IMPLICIT NONE;  here...
    33  PUBLIC get_uvd, copie, get_uvd2, rdgrads, spaces
     4
     5  REAL play(100)  !pression en Pa au milieu de chaque couche GCM
     6  INTEGER JM(100) !pression en Pa au milieu de chaque couche GCM
     7  REAL coef1(100) !coefficient d interpolation
     8  REAL coef2(100) !coefficient d interpolation
     9  INTEGER klev
     10
     11  INTEGER nblvlm !nombre de niveau de pression du mesoNH
     12  REAL playm(100)  !pression en Pa au milieu de chaque couche Meso-NH
     13  REAL hplaym(100) !pression en hPa milieux des couches Meso-NH
     14
     15
    416CONTAINS
    517
     
    1628    ! pouvoir calculer la convergence et le cisaillement dans la physiq
    1729    !cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
    18 
    19     INTEGER klev
    20     REAL play(100)  !pression en Pa au milieu de chaque couche GCM
    21     INTEGER JM(100) !pression en Pa au milieu de chaque couche GCM
    22     REAL coef1(100) !coefficient d interpolation
    23     REAL coef2(100) !coefficient d interpolation
    24 
    25     INTEGER nblvlm !nombre de niveau de pression du mesoNH
    26     REAL playm(100)  !pression en Pa au milieu de chaque couche Meso-NH
    27     REAL hplaym(100) !pression en hPa milieux des couches Meso-NH
    28 
    2930    INTEGER i, j, k, ll, in
    30 
    3131    CHARACTER*80 file_forctl, file_fordat
    32 
    33     COMMON/com1_phys_gcss/play, coef1, coef2, JM, klev
    34     COMMON/com2_phys_gcss/playm, hplaym, nblvlm
    3532
    3633    !======================================================================
     
    162159    !*** precedent en format gcm                                     ***
    163160    IF(pas>pasprev)THEN
    164       do i = 1, klev
     161      DO i = 1, klev
    165162        htbef(i) = htaft(i)
    166163        hqbef(i) = hqaft(i)
     
    192189      IF(Tp_fcg) THEN
    193190        !     (le forcage est donne en temperature potentielle)
    194         do i = 1, nblvlm
     191        DO i = 1, nblvlm
    195192          ht_mes(i) = ht_mes(i) * (hplaym(i) / 1000.)**rkappa
    196193        enddo
    197194      endif ! Tp_fcg
    198195      IF(Turb_fcg) THEN
    199         do i = 1, nblvlm
     196        DO i = 1, nblvlm
    200197          hThTurb_mes(i) = hThTurb_mes(i) * (hplaym(i) / 1000.)**rkappa
    201198        enddo
     
    216213      !*** on interpole les champs meso_NH sur les niveaux de pression***
    217214      !*** gcm . on obtient le nouveau champ after                    ***
    218       do k = 1, klev
     215      DO k = 1, klev
    219216        IF (JM(k) == 0) THEN
    220217          htaft(k) = ht_mes(jm(k) + 1)
     
    254251    !*** on conserve les derniers champs calcules                    ***
    255252    IF(temps>=pasmax)THEN
    256       do ll = 1, klev
     253      DO ll = 1, klev
    257254        ht(ll) = htaft(ll)
    258255        hq(ll) = hqaft(ll)
     
    267264      !*** on interpole sur les pas de temps de 10mn du gcm a partir   ***
    268265      !** des pas de temps de 1h du meso_NH                            ***
    269       do j = 1, klev
     266      DO j = 1, klev
    270267        ht(j) = ((timeaft - time) * htbef(j) + (time - timebef) * htaft(j)) / dt
    271268        hq(j) = ((timeaft - time) * hqbef(j) + (time - timebef) * hqaft(j)) / dt
     
    287284    print *, ' time,timebef,timeaft', time, timebef, timeaft
    288285    print *, ' ht,htbef,htaft,hthturb,hthturbbef,hthturbaft'
    289     do j = 1, klev
     286    DO j = 1, klev
    290287      print *, j, ht(j), htbef(j), htaft(j), &
    291288              &             hthturb(j), hthturbbef(j), hthturbaft(j)
    292289    enddo
    293290    print *, ' hq,hqbef,hqaft,hqturb,hqturbbef,hqturbaft'
    294     do j = 1, klev
     291    DO j = 1, klev
    295292      print *, j, hq(j), hqbef(j), hqaft(j), &
    296293              &             hqturb(j), hqturbbef(j), hqturbaft(j)
     
    317314
    318315    !------------------
    319     do i = 1, 1000
     316    DO i = 1, 1000
    320317      read(97, 1000, end = 999) string
    321318      1000 format (a4)
     
    373370    !------------------------------------------------------------------------
    374371    IF(Tp_fcg) THEN
    375       do i = 1, nblvlm
     372      DO i = 1, nblvlm
    376373        ht_mes(i) = ht_mes(i) * (hplaym(i) / 1000.)**rkappa
    377374      enddo
     
    393390    ! on interpole sur les niveaux du gcm(niveau pression bien sur!)
    394391    !-----------------------------------------------------------------------
    395     do k = 1, klev
     392    DO k = 1, klev
    396393      IF (JM(k) == 0) THEN
    397394        !FKC bug? ne faut il pas convertir tsol en tendance ????
     
    426423    tsaft = ts_subr
    427424    ! valeurs initiales des champs de convergence
    428     do k = 1, klev
     425    DO k = 1, klev
    429426      ht(k) = htaft(k)
    430427      hq(k) = hqaft(k)
     
    473470    data alx, aly /100000., 150000./
    474471
    475     do k = 1, klev
     472    DO k = 1, klev
    476473      du = abs(vu_f(k) - cx) / alx
    477474      dv = abs(vv_f(k) - cy) / aly
     
    489486    IMPLICIT NONE
    490487
    491     !cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
    492     ! cette routine remplit les COMMON com1_phys_gcss et com2_phys_gcss.h
    493     !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
    494 
    495     INTEGER klev !nombre de niveau de pression du GCM
    496     REAL play(100)  !pression en Pa au milieu de chaque couche GCM
    497     INTEGER JM(100)
    498     REAL coef1(100)   !coefficient d interpolation
    499     REAL coef2(100)   !coefficient d interpolation
    500 
    501     INTEGER nblvlm !nombre de niveau de pression du mesoNH
    502     REAL playm(100) !pression en Pa au milieu de chaque couche Meso-NH
    503     REAL hplaym(100)!pression en hecto-Pa des milieux de couche Meso-NH
    504 
    505     COMMON/com1_phys_gcss/play, coef1, coef2, JM, klev
    506     COMMON/com2_phys_gcss/playm, hplaym, nblvlm
    507 
    508488    INTEGER k, klevgcm
    509489    REAL playgcm(klevgcm) ! pression en milieu de couche du gcm
     
    518498    !---------------------------------------------------------------------
    519499
    520     do k = 1, klev
     500    DO k = 1, klev
    521501      play(k) = playgcm(k)
    522502      PRINT*, 'la pression gcm est:', play(k)
     
    526506    ! lecture du descripteur des donnees Meso-NH (forcing.ctl):
    527507    !  -> nb niveaux du meso.NH (nblvlm) + pressions meso.NH
    528     ! (on remplit le COMMON com2_phys_gcss)
    529508    !----------------------------------------------------------------------
    530509
     
    536515    ! etude de la correspondance entre les niveaux meso.NH et GCM;
    537516    ! calcul des coefficients d interpolation coef1 et coef2
    538     ! (on remplit le COMMON com1_phys_gcss)
    539517    !----------------------------------------------------------------------
    540518
     
    549527    WRITE(*, *) '--------------------------------------'
    550528    WRITE(*, *) 'GCM: nb niveaux:', klev, ' et pression, coeffs:'
    551     do k = 1, klev
     529    DO k = 1, klev
    552530      WRITE(*, *) play(k), coef1(k), coef2(k)
    553531    enddo
    554532    WRITE(*, *) 'MESO-NH: nb niveaux:', nblvlm, ' et pression:'
    555     do k = 1, nblvlm
     533    DO k = 1, nblvlm
    556534      WRITE(*, *) playm(k), hplaym(k)
    557535    enddo
     
    570548    !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
    571549
    572     INTEGER nblvlm !nombre de niveau de pression du mesoNH
    573     REAL playm(100)  !pression en Pa milieu de chaque couche Meso-NH
    574     REAL hplaym(100) !pression en hPa des milieux de couche Meso-NH
    575     COMMON/com2_phys_gcss/playm, hplaym, nblvlm
    576 
    577550    INTEGER i, lu, mlz, mlzh
    578551
     
    586559    open(lu, file = file_forctl, form = 'formatted')
    587560
    588     do i = 1, 1000
     561    DO i = 1, 1000
    589562      read(lu, 1000, end = 999) a
    590563      IF (a == 'ZDEF') go to 100
     
    608581    !      Si la pression est en HPa, la multiplier par 100
    609582    IF (playm(1) < 10000.) THEN
    610       do mlz = 1, nblvlm
     583      DO mlz = 1, nblvlm
    611584        playm(mlz) = playm(mlz) * 100.
    612585      enddo
     
    617590
    618591    PRINT*, ' '
    619     do mlzh = 1, nblvlm
     592    DO mlzh = 1, nblvlm
    620593      hplaym(mlzh) = playm(mlzh) / 100.
    621594    enddo
     
    644617    icomp = icount
    645618
    646     do k = 1, nl
     619    DO k = 1, nl
    647620      icomp = icomp + 1
    648621      read(itape, rec = icomp)z(k)
    649622      print *, 'icomp,k,z(k) ', icomp, k, z(k)
    650623    enddo
    651     do k = 1, nl
     624    DO k = 1, nl
    652625      icomp = icomp + 1
    653626      read(itape, rec = icomp)hT(k)
    654627      PRINT*, hT(k), k
    655628    enddo
    656     do k = 1, nl
     629    DO k = 1, nl
    657630      icomp = icomp + 1
    658631      read(itape, rec = icomp)hQ(k)
     
    660633
    661634    IF(turb_fcg) THEN
    662       do k = 1, nl
     635      DO k = 1, nl
    663636        icomp = icomp + 1
    664637        read(itape, rec = icomp)hThTur(k)
    665638      enddo
    666       do k = 1, nl
     639      DO k = 1, nl
    667640        icomp = icomp + 1
    668641        read(itape, rec = icomp)hqTur(k)
     
    672645
    673646    IF(imp_fcg) THEN
    674       do k = 1, nl
     647      DO k = 1, nl
    675648        icomp = icomp + 1
    676649        read(itape, rec = icomp)hu(k)
    677650      enddo
    678       do k = 1, nl
     651      DO k = 1, nl
    679652        icomp = icomp + 1
    680653        read(itape, rec = icomp)hv(k)
     
    683656    endif
    684657
    685     do k = 1, nl
     658    DO k = 1, nl
    686659      icomp = icomp + 1
    687660      read(itape, rec = icomp)hw(k)
     
    707680    !ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
    708681
    709     INTEGER klev    !nombre de niveau de pression du GCM
    710     REAL play(100)  !pression en Pa au milieu de chaque couche GCM
    711     INTEGER JM(100)
    712     REAL coef1(100) !coefficient d interpolation
    713     REAL coef2(100) !coefficient d interpolation
    714 
    715     INTEGER nblvlm !nombre de niveau de pression du mesoNH
    716     REAL playm(100) !pression en Pa milieu de chaque couche Meso-NH
    717     REAL hplaym(100)!pression en hPa des milieux de couche Meso-NH
    718 
    719     COMMON/com1_phys_gcss/play, coef1, coef2, JM, klev
    720     COMMON/com2_phys_gcss/playm, hplaym, nblvlm
    721 
    722682    REAL psol
    723683    REAL val
    724684    INTEGER k, mlz
    725685
    726     do k = 1, klev
     686    DO k = 1, klev
    727687      val = play(k)
    728688      IF (val > playm(1)) THEN
     
    732692        coef2(1) = (val - psol) / (playm(mlz + 1) - psol)
    733693      ELSE IF (val > playm(nblvlm)) THEN
    734         do mlz = 1, nblvlm
     694        DO mlz = 1, nblvlm
    735695          IF (val <= playm(mlz).AND. val > playm(mlz + 1))THEN
    736696            JM(k) = mlz
Note: See TracChangeset for help on using the changeset viewer.