Ignore:
Timestamp:
Jul 25, 2024, 5:47:25 PM (12 months ago)
Author:
abarral
Message:

Correct bug in vlspltqs_loc.f90 from r2270 where we call SSUM with incorrect arguments.
Merge the three different versions of abort_gcm into one
Fix seq, para 3D compilation broken from r5107 onwards
(lint) usual + Remove uneeded fixed-form continuations

Location:
LMDZ6/branches/Amaury_dev/libf/dyn3d
Files:
1 deleted
16 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/bilan_dyn.F90

    r5118 r5128  
    1414  USE temps_mod, ONLY: annee_ref, day_ref, itau_dyn
    1515  USE lmdz_iniprint, ONLY: lunout, prt_level
     16
    1617
    1718  IMPLICIT NONE
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/check_isotopes.F90

    r5117 r5128  
    33   USE infotrac,    ONLY: nqtot, niso, nphas, isotope, isoCheck, iqIsoPha, isoSelect, &
    44                          ntiso, iH2O, nzone, tracers, isoName,  itZonIso, getKey
     5
    56   IMPLICIT NONE
    67   include "dimensions.h"
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/conf_gcm.f90

    r5118 r5128  
    1717  USE temps_mod, ONLY: calend, year_len
    1818  USE lmdz_iniprint, ONLY: lunout, prt_level
     19
    1920
    2021  IMPLICIT NONE
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/dynetat0.F90

    r5118 r5128  
    2222  USE lmdz_description, ONLY: descript
    2323  USE lmdz_iniprint, ONLY: lunout, prt_level
     24
    2425
    2526  IMPLICIT NONE
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/dynredem_mod.F90

    r5101 r5128  
    11MODULE dynredem_mod
    22
    3   USE netcdf, ONLY: nf90_strerror,nf90_noerr,nf90_redef,nf90_put_var,nf90_enddef,nf90_put_att,&
    4           nf90_inq_varid,nf90_get_var,nf90_def_var
     3  USE netcdf, ONLY: nf90_strerror, nf90_noerr, nf90_redef, nf90_put_var, nf90_enddef, nf90_put_att, &
     4          nf90_inq_varid, nf90_get_var, nf90_def_var
    55  USE lmdz_cppkeys_wrapper, ONLY: nf90_format
    66  IMPLICIT NONE; PRIVATE
     
    99  include "dimensions.h"
    1010  include "paramet.h"
    11   CHARACTER(LEN=256), SAVE :: fil, modname
    12   INTEGER,            SAVE :: nvarid
     11  CHARACTER(LEN = 256), SAVE :: fil, modname
     12  INTEGER, SAVE :: nvarid
    1313
    1414
     
    1616
    1717
    18 !===============================================================================
    19 
    20 SUBROUTINE dynredem_write_u(ncid,id,var,ll)
    21 
    22 !===============================================================================
    23 ! Arguments:
    24   INTEGER,          INTENT(IN) :: ncid
    25   CHARACTER(LEN=*), INTENT(IN) :: id
    26   REAL,             INTENT(IN) :: var(iip1,jjp1,ll)
    27   INTEGER,          INTENT(IN) :: ll
    28 !===============================================================================
    29 ! Local variables:
    30   INTEGER :: start(4), count(4)
    31 !===============================================================================
    32   start(:)=[1,1,1,1]; count(:)=[iip1,jjp1,ll,1]
    33   CALL err(nf90_inq_varid(ncid,id,nvarid),"inq",id)
    34   CALL err(nf90_put_var(ncid,nvarid,var,start,count),"put",id)
    35  
    36 END SUBROUTINE dynredem_write_u
    37 
    38 !===============================================================================
    39 
    40 
    41 !===============================================================================
    42 
    43 SUBROUTINE dynredem_write_v(ncid,id,var,ll)
    44 
    45 !===============================================================================
    46 ! Arguments:
    47   INTEGER,          INTENT(IN) :: ncid
    48   CHARACTER(LEN=*), INTENT(IN) :: id
    49   REAL,             INTENT(IN) :: var(iip1,jjm,ll)
    50   INTEGER,          INTENT(IN) :: ll
    51 !===============================================================================
    52 ! Local variables:
    53   INTEGER :: start(4), count(4)
    54 !===============================================================================
    55   start(:)=[1,1,1,1]; count(:)=[iip1,jjm,ll,1]
    56   CALL err(nf90_inq_varid(ncid,id,nvarid),"inq",id)
    57   CALL err(nf90_put_var(ncid,nvarid,var,start,count),"put",id)
    58  
    59 END SUBROUTINE dynredem_write_v
    60 
    61 !===============================================================================
    62 
    63 
    64 !===============================================================================
    65 
    66 SUBROUTINE dynredem_read_u(ncid,id,var,ll)
    67 
    68 !===============================================================================
    69 ! Arguments:
    70   INTEGER,          INTENT(IN) :: ncid
    71   CHARACTER(LEN=*), INTENT(IN) :: id
    72   REAL,             INTENT(OUT) :: var(iip1,jjp1,ll)
    73   INTEGER,          INTENT(IN) :: ll
    74 !===============================================================================
    75 ! Local variables:
    76   INTEGER :: start(4), count(4)
    77 !===============================================================================
    78   start(:)=[1,1,1,1]; count(:)=[iip1,jjp1,ll,1]
    79   CALL err(nf90_inq_varid(ncid,id,nvarid),"inq",id)
    80   CALL err(nf90_get_var(ncid,nvarid,var,start,count),"get",id)
    81  
    82 END SUBROUTINE dynredem_read_u   
    83 
    84 !===============================================================================
    85 
    86 
    87 !===============================================================================
    88 
    89 SUBROUTINE cre_var(ncid,var,title,did,units)
    90 
    91 !===============================================================================
    92 ! Arguments:
    93   INTEGER,                    INTENT(IN) :: ncid
    94   CHARACTER(LEN=*),          INTENT(IN) :: var, title
    95   INTEGER,                    INTENT(IN) :: did(:)
    96   CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: units
    97 !===============================================================================
    98   CALL err(nf90_def_var(ncid,var,nf90_format,did,nvarid),"inq",var)
    99   IF(title/="")      CALL err(nf90_put_att(ncid,nvarid,"title",title),var)
    100   IF(PRESENT(units)) CALL err(nf90_put_att(ncid,nvarid,"units",units),var)
    101 
    102 END SUBROUTINE cre_var
    103 
    104 !===============================================================================
    105 
    106 
    107 !===============================================================================
    108 
    109 SUBROUTINE put_var1(ncid,var,title,did,v,units)
    110 
    111 !===============================================================================
    112 ! Arguments:
    113   INTEGER,                    INTENT(IN) :: ncid
    114   CHARACTER(LEN=*),          INTENT(IN) :: var, title
    115   INTEGER,                    INTENT(IN) :: did(1)
    116   REAL,                      INTENT(IN) :: v(:)
    117   CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: units
    118 !===============================================================================
    119   IF(     PRESENT(units)) CALL cre_var(ncid,var,title,did,units)
    120   IF(.NOT.PRESENT(units)) CALL cre_var(ncid,var,title,did)
    121   CALL err(nf90_enddef(ncid))
    122   CALL err(nf90_put_var(ncid,nvarid,v),"put",var)
    123   CALL err(nf90_redef(ncid))
    124 
    125 END SUBROUTINE put_var1
    126 
    127 !===============================================================================
    128 
    129 
    130 !===============================================================================
    131 
    132 SUBROUTINE put_var2(ncid,var,title,did,v,units)
    133 
    134 !===============================================================================
    135 ! Arguments:
    136   INTEGER,                    INTENT(IN) :: ncid
    137   CHARACTER(LEN=*),          INTENT(IN) :: var, title
    138   INTEGER,                    INTENT(IN) :: did(2)
    139   REAL,                       INTENT(IN) :: v(:,:)
    140   CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: units
    141 !===============================================================================
    142   IF(     PRESENT(units)) CALL cre_var(ncid,var,title,did,units)
    143   IF(.NOT.PRESENT(units)) CALL cre_var(ncid,var,title,did)
    144   CALL err(nf90_enddef(ncid))
    145   CALL err(nf90_put_var(ncid,nvarid,v),"put",var)
    146   CALL err(nf90_redef(ncid))
    147 
    148 END SUBROUTINE put_var2
    149 
    150 !===============================================================================
    151 
    152 
    153 !===============================================================================
    154 
    155 FUNCTION msg(typ,nam)
    156 
    157 !===============================================================================
    158 ! Arguments:
    159   CHARACTER(LEN=256)                    :: msg    !--- STANDARDIZED MESSAGE
    160   CHARACTER(LEN=*),          INTENT(IN) :: typ    !--- TYPE OF OPERATION
    161   CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: nam    !--- FIELD NAME
    162 !===============================================================================
    163   SELECT CASE(typ)
    164     CASE('open');  msg="Opening failed for <"//TRIM(fil)//">"
    165     CASE('close'); msg="Closing failed for <"//TRIM(fil)//">"
    166     CASE('get');   msg="Reading failed for <"//TRIM(nam)//">"
    167     CASE('put');   msg="Writting failed for <"//TRIM(nam)//">"
    168     CASE('inq');   msg="Missing field <"//TRIM(nam)//">"
    169     CASE('fnd');   msg="Found field <"//TRIM(nam)//">"
    170   END SELECT
    171   msg=TRIM(msg)//" in file <"//TRIM(fil)//">"
    172 
    173 END FUNCTION msg
    174 
    175 !===============================================================================
    176 
    177 
    178 !===============================================================================
    179 
    180 SUBROUTINE err(ierr,typ,nam)
    181 
    182 !===============================================================================
    183 ! Arguments:
    184   INTEGER,                    INTENT(IN) :: ierr   !--- NetCDF ERROR CODE
    185   CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: typ    !--- TYPE OF OPERATION
    186   CHARACTER(LEN=*), OPTIONAL, INTENT(IN) :: nam    !--- FIELD NAME
    187 !===============================================================================
    188   IF(ierr==nf90_noerr) RETURN
    189   IF(.NOT.PRESENT(typ)) THEN
    190     CALL ABORT_gcm(modname,nf90_strerror(ierr),ierr)
    191   ELSE
    192     CALL ABORT_gcm(modname,msg(typ,nam),ierr)
    193   END IF
    194 
    195 END SUBROUTINE err
    196 
    197 !===============================================================================
     18  !===============================================================================
     19
     20  SUBROUTINE dynredem_write_u(ncid, id, var, ll)
     21
     22    !===============================================================================
     23    ! Arguments:
     24    INTEGER, INTENT(IN) :: ncid
     25    CHARACTER(LEN = *), INTENT(IN) :: id
     26    REAL, INTENT(IN) :: var(iip1, jjp1, ll)
     27    INTEGER, INTENT(IN) :: ll
     28    !===============================================================================
     29    ! Local variables:
     30    INTEGER :: start(4), count(4)
     31    !===============================================================================
     32    start(:) = [1, 1, 1, 1]; count(:) = [iip1, jjp1, ll, 1]
     33    CALL err(nf90_inq_varid(ncid, id, nvarid), "inq", id)
     34    CALL err(nf90_put_var(ncid, nvarid, var, start, count), "put", id)
     35
     36  END SUBROUTINE dynredem_write_u
     37
     38  !===============================================================================
     39
     40
     41  !===============================================================================
     42
     43  SUBROUTINE dynredem_write_v(ncid, id, var, ll)
     44
     45    !===============================================================================
     46    ! Arguments:
     47    INTEGER, INTENT(IN) :: ncid
     48    CHARACTER(LEN = *), INTENT(IN) :: id
     49    REAL, INTENT(IN) :: var(iip1, jjm, ll)
     50    INTEGER, INTENT(IN) :: ll
     51    !===============================================================================
     52    ! Local variables:
     53    INTEGER :: start(4), count(4)
     54    !===============================================================================
     55    start(:) = [1, 1, 1, 1]; count(:) = [iip1, jjm, ll, 1]
     56    CALL err(nf90_inq_varid(ncid, id, nvarid), "inq", id)
     57    CALL err(nf90_put_var(ncid, nvarid, var, start, count), "put", id)
     58
     59  END SUBROUTINE dynredem_write_v
     60
     61  !===============================================================================
     62
     63
     64  !===============================================================================
     65
     66  SUBROUTINE dynredem_read_u(ncid, id, var, ll)
     67
     68    !===============================================================================
     69    ! Arguments:
     70    INTEGER, INTENT(IN) :: ncid
     71    CHARACTER(LEN = *), INTENT(IN) :: id
     72    REAL, INTENT(OUT) :: var(iip1, jjp1, ll)
     73    INTEGER, INTENT(IN) :: ll
     74    !===============================================================================
     75    ! Local variables:
     76    INTEGER :: start(4), count(4)
     77    !===============================================================================
     78    start(:) = [1, 1, 1, 1]; count(:) = [iip1, jjp1, ll, 1]
     79    CALL err(nf90_inq_varid(ncid, id, nvarid), "inq", id)
     80    CALL err(nf90_get_var(ncid, nvarid, var, start, count), "get", id)
     81
     82  END SUBROUTINE dynredem_read_u
     83
     84  !===============================================================================
     85
     86
     87  !===============================================================================
     88
     89  SUBROUTINE cre_var(ncid, var, title, did, units)
     90
     91    !===============================================================================
     92    ! Arguments:
     93    INTEGER, INTENT(IN) :: ncid
     94    CHARACTER(LEN = *), INTENT(IN) :: var, title
     95    INTEGER, INTENT(IN) :: did(:)
     96    CHARACTER(LEN = *), OPTIONAL, INTENT(IN) :: units
     97    !===============================================================================
     98    CALL err(nf90_def_var(ncid, var, nf90_format, did, nvarid), "inq", var)
     99    IF(title/="")      CALL err(nf90_put_att(ncid, nvarid, "title", title), var)
     100    IF(PRESENT(units)) CALL err(nf90_put_att(ncid, nvarid, "units", units), var)
     101
     102  END SUBROUTINE cre_var
     103
     104  !===============================================================================
     105
     106
     107  !===============================================================================
     108
     109  SUBROUTINE put_var1(ncid, var, title, did, v, units)
     110
     111    !===============================================================================
     112    ! Arguments:
     113    INTEGER, INTENT(IN) :: ncid
     114    CHARACTER(LEN = *), INTENT(IN) :: var, title
     115    INTEGER, INTENT(IN) :: did(1)
     116    REAL, INTENT(IN) :: v(:)
     117    CHARACTER(LEN = *), OPTIONAL, INTENT(IN) :: units
     118    !===============================================================================
     119    IF(PRESENT(units)) CALL cre_var(ncid, var, title, did, units)
     120    IF(.NOT.PRESENT(units)) CALL cre_var(ncid, var, title, did)
     121    CALL err(nf90_enddef(ncid))
     122    CALL err(nf90_put_var(ncid, nvarid, v), "put", var)
     123    CALL err(nf90_redef(ncid))
     124
     125  END SUBROUTINE put_var1
     126
     127  !===============================================================================
     128
     129
     130  !===============================================================================
     131
     132  SUBROUTINE put_var2(ncid, var, title, did, v, units)
     133
     134    !===============================================================================
     135    ! Arguments:
     136    INTEGER, INTENT(IN) :: ncid
     137    CHARACTER(LEN = *), INTENT(IN) :: var, title
     138    INTEGER, INTENT(IN) :: did(2)
     139    REAL, INTENT(IN) :: v(:, :)
     140    CHARACTER(LEN = *), OPTIONAL, INTENT(IN) :: units
     141    !===============================================================================
     142    IF(PRESENT(units)) CALL cre_var(ncid, var, title, did, units)
     143    IF(.NOT.PRESENT(units)) CALL cre_var(ncid, var, title, did)
     144    CALL err(nf90_enddef(ncid))
     145    CALL err(nf90_put_var(ncid, nvarid, v), "put", var)
     146    CALL err(nf90_redef(ncid))
     147
     148  END SUBROUTINE put_var2
     149
     150  !===============================================================================
     151
     152
     153  !===============================================================================
     154
     155  FUNCTION msg(typ, nam)
     156
     157    !===============================================================================
     158    ! Arguments:
     159    CHARACTER(LEN = 256) :: msg    !--- STANDARDIZED MESSAGE
     160    CHARACTER(LEN = *), INTENT(IN) :: typ    !--- TYPE OF OPERATION
     161    CHARACTER(LEN = *), OPTIONAL, INTENT(IN) :: nam    !--- FIELD NAME
     162    !===============================================================================
     163    SELECT CASE(typ)
     164    CASE('open');  msg = "Opening failed for <" // TRIM(fil) // ">"
     165    CASE('close'); msg = "Closing failed for <" // TRIM(fil) // ">"
     166    CASE('get');   msg = "Reading failed for <" // TRIM(nam) // ">"
     167    CASE('put');   msg = "Writting failed for <" // TRIM(nam) // ">"
     168    CASE('inq');   msg = "Missing field <" // TRIM(nam) // ">"
     169    CASE('fnd');   msg = "Found field <" // TRIM(nam) // ">"
     170    END SELECT
     171    msg = TRIM(msg) // " in file <" // TRIM(fil) // ">"
     172
     173  END FUNCTION msg
     174
     175  !===============================================================================
     176
     177
     178  !===============================================================================
     179
     180  SUBROUTINE err(ierr, typ, nam)
     181
     182    !===============================================================================
     183    ! Arguments:
     184    INTEGER, INTENT(IN) :: ierr   !--- NetCDF ERROR CODE
     185    CHARACTER(LEN = *), OPTIONAL, INTENT(IN) :: typ    !--- TYPE OF OPERATION
     186    CHARACTER(LEN = *), OPTIONAL, INTENT(IN) :: nam    !--- FIELD NAME
     187    !===============================================================================
     188    IF(ierr==nf90_noerr) RETURN
     189    IF(.NOT.PRESENT(typ)) THEN
     190      CALL ABORT_gcm(modname, nf90_strerror(ierr), ierr)
     191    ELSE
     192      CALL ABORT_gcm(modname, msg(typ, nam), ierr)
     193    END IF
     194
     195  END SUBROUTINE err
     196
     197  !===============================================================================
    198198
    199199END MODULE dynredem_mod   
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/friction.F90

    r5118 r5128  
    88  USE comconst_mod, ONLY: pi
    99  USE lmdz_iniprint, ONLY: lunout, prt_level
     10
     11
    1012  IMPLICIT NONE
    1113
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/gcm.F90

    r5118 r5128  
    2828  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    2929  USE lmdz_iniprint, ONLY: lunout, prt_level
     30
    3031
    3132  IMPLICIT NONE
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/groupe.F90

    r5119 r5128  
    55  USE comconst_mod, ONLY: ngroup
    66  USE lmdz_ssum_scopy, ONLY: scopy
     7
    78
    89  IMPLICIT NONE
     
    105106  CALL vitvert(zconvmm, wm)
    106107
    107 
    108108END SUBROUTINE  groupe
    109109
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/guide_mod.F90

    r5118 r5128  
    1616          nf90_64bit_offset, nf90_inq_dimid, nf90_inquire_dimension, nf90_put_var
    1717  USE lmdz_pres2lev, ONLY: pres2lev
     18
    1819
    1920  IMPLICIT NONE
     
    7576    USE serre_mod, ONLY: grossismx
    7677
     78
    7779    IMPLICIT NONE
    7880
     
    355357    USE comvert_mod, ONLY: ap, bp, preff, presnivs, pressure_exner
    356358    USE lmdz_iniprint, ONLY: lunout, prt_level
     359
    357360
    358361    IMPLICIT NONE
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/iniacademic.F90

    r5118 r5128  
    1919  USE lmdz_ran1, ONLY: ran1
    2020  USE lmdz_iniprint, ONLY: lunout, prt_level
     21
    2122
    2223  !   Author:    Frederic Hourdin      original: 15/01/93
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/integrd.F90

    r5123 r5128  
    1313  USE lmdz_iniprint, ONLY: lunout, prt_level
    1414  USE lmdz_ssum_scopy, ONLY: scopy, ssum
     15
    1516
    1617  IMPLICIT NONE
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/leapfrog.F90

    r5123 r5128  
    2828  USE lmdz_iniprint, ONLY: lunout, prt_level
    2929  USE lmdz_ssum_scopy, ONLY: scopy, ssum
     30
    3031
    3132  IMPLICIT NONE
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/paramet.h

    r5099 r5128  
    1818
    1919      PARAMETER( iip1= iim+1,iip2=iim+2,iip3=iim+3                       &
    20      &    ,jjp1=jjm+1-1/jjm)
     20          ,jjp1=jjm+1-1/jjm)
    2121      PARAMETER( llmp1 = llm+1,  llmp2 = llm+2, llmm1 = llm-1 )
    2222      PARAMETER( kftd  = iim/2 -ndm )
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/replay3d.F90

    r5117 r5128  
    2121        grossismx, grossismy, dzoomx, dzoomy,taux,tauy
    2222  USE mod_const_mpi, ONLY: comm_lmdz
     23
    2324
    2425  IMPLICIT NONE
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/vlspltqs.F90

    r5123 r5128  
    1616  !
    1717  ! pente_max facteur de limitation des pentes: 2 en general
    18   !                                            0 pour un schema amont
     18  !0 pour un schema amont
    1919  ! pbaru,pbarv,w flux de masse en u ,v ,w
    2020  ! pdt pas de temps
  • LMDZ6/branches/Amaury_dev/libf/dyn3d/wrgrads.f90

    r5117 r5128  
    33subroutine wrgrads(if, nl, field, name, titlevar)
    44  USE lmdz_formcoord, ONLY: formcoord
     5
     6
    57  IMPLICIT NONE
    68
Note: See TracChangeset for help on using the changeset viewer.